diff options
Diffstat (limited to 'llvm/lib/DebugInfo')
-rw-r--r-- | llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp | 8 | ||||
-rw-r--r-- | llvm/lib/DebugInfo/DWARF/DWARFVerifier.cpp | 7 |
2 files changed, 4 insertions, 11 deletions
diff --git a/llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp b/llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp index c2ba9e6027b..0ded97cabf2 100644 --- a/llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp +++ b/llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp @@ -556,14 +556,6 @@ Optional<uint64_t> DWARFDebugNames::Entry::getCUOffset() const { return NameIdx->getCUOffset(*Index); } -Optional<uint64_t> DWARFDebugNames::Entry::getDIESectionOffset() const { - Optional<uint64_t> CUOff = getCUOffset(); - Optional<uint64_t> DIEOff = getDIEUnitOffset(); - if (CUOff && DIEOff) - return *CUOff + *DIEOff; - return None; -} - void DWARFDebugNames::Entry::dump(ScopedPrinter &W) const { W.printHex("Abbrev", Abbr->Code); W.startLine() << formatv("Tag: {0}\n", Abbr->Tag); diff --git a/llvm/lib/DebugInfo/DWARF/DWARFVerifier.cpp b/llvm/lib/DebugInfo/DWARF/DWARFVerifier.cpp index fe44071d9a2..e456de5b103 100644 --- a/llvm/lib/DebugInfo/DWARF/DWARFVerifier.cpp +++ b/llvm/lib/DebugInfo/DWARF/DWARFVerifier.cpp @@ -1088,7 +1088,7 @@ unsigned DWARFVerifier::verifyNameIndexEntries( continue; } uint32_t CUOffset = NI.getCUOffset(CUIndex); - uint64_t DIEOffset = *EntryOr->getDIESectionOffset(); + uint64_t DIEOffset = CUOffset + *EntryOr->getDIEUnitOffset(); DWARFDie DIE = DCtx.getDIEForOffset(DIEOffset); if (!DIE) { error() << formatv("Name Index @ {0:x}: Entry @ {1:x} references a " @@ -1261,9 +1261,10 @@ unsigned DWARFVerifier::verifyNameIndexCompleteness( // Now we know that our Die should be present in the Index. Let's check if // that's the case. unsigned NumErrors = 0; + uint64_t DieUnitOffset = Die.getOffset() - Die.getDwarfUnit()->getOffset(); for (StringRef Name : EntryNames) { - if (none_of(NI.equal_range(Name), [&Die](const DWARFDebugNames::Entry &E) { - return E.getDIESectionOffset() == uint64_t(Die.getOffset()); + if (none_of(NI.equal_range(Name), [&](const DWARFDebugNames::Entry &E) { + return E.getDIEUnitOffset() == DieUnitOffset; })) { error() << formatv("Name Index @ {0:x}: Entry for DIE @ {1:x} ({2}) with " "name {3} missing.\n", |