[llvm] [BOLT][DWARF] Fix parent chain in debug_names entries with forward declaration. (PR #93865)
Davide Italiano via llvm-commits
llvm-commits at lists.llvm.org
Mon Jun 3 17:08:46 PDT 2024
================
@@ -461,32 +461,42 @@ getUnitForOffset(DIEBuilder &Builder, DWARFContext &DWCtx,
return nullptr;
}
-uint32_t DIEBuilder::finalizeDIEs(
- DWARFUnit &CU, DIE &Die,
- std::vector<std::optional<BOLTDWARF5AccelTableData *>> &Parents,
- uint32_t &CurOffset) {
+uint32_t
+DIEBuilder::finalizeDIEs(DWARFUnit &CU, DIE &Die,
+ std::optional<BOLTDWARF5AccelTableData *> Parent,
+ uint32_t NumberParentsInChain, uint32_t &CurOffset) {
getState().DWARFDieAddressesParsed.erase(Die.getOffset());
uint32_t CurSize = 0;
Die.setOffset(CurOffset);
std::optional<BOLTDWARF5AccelTableData *> NameEntry =
DebugNamesTable.addAccelTableEntry(
CU, Die, SkeletonCU ? SkeletonCU->getDWOId() : std::nullopt,
- Parents.back());
+ NumberParentsInChain, Parent);
// It is possible that an indexed debugging information entry has a parent
// that is not indexed (for example, if its parent does not have a name
// attribute). In such a case, a parent attribute may point to a nameless
// index entry (that is, one that cannot be reached from any entry in the name
// table), or it may point to the nearest ancestor that does have an index
// entry.
+ // Although as discussed in https://github.com/llvm/llvm-project/pull/91808
----------------
dcci wrote:
I don't think we should include a GitHub link in here. It might become stale.
https://github.com/llvm/llvm-project/pull/93865
More information about the llvm-commits
mailing list