summaryrefslogtreecommitdiffstats
path: root/llvm/lib/DebugInfo
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/DebugInfo')
-rw-r--r--llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp8
-rw-r--r--llvm/lib/DebugInfo/DWARF/DWARFVerifier.cpp7
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",
OpenPOWER on IntegriCloud