[DWARFv5] Re-enable dumping a line table with no CU.
r323476 added support for DW_FORM_line_strp, and incorrectly made that
depend on having a DWARFUnit available. We shouldn't be tracking
.debug_line_str in DWARFUnit after all. After this patch, I can do an
NFC follow up and undo a bunch of the "plumbing" part of r323476.
Differential Revision: https://reviews.llvm.org/D42609
llvm-svn: 323691
diff --git a/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp b/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp
index decf7a2..e159303 100644
--- a/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp
+++ b/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp
@@ -387,7 +387,7 @@
if (DumpOffset && Offset != *DumpOffset) {
// Find the size of this part of the line table section and skip it.
unsigned OldOffset = Offset;
- LineTable.Prologue.parse(LineData, &Offset, U);
+ LineTable.Prologue.parse(LineData, &Offset, *this, U);
Offset = OldOffset + LineTable.Prologue.TotalLength +
LineTable.Prologue.sizeofTotalLength();
continue;
@@ -397,9 +397,9 @@
OS << "debug_line[" << format("0x%8.8x", Offset) << "]\n";
unsigned OldOffset = Offset;
if (DumpOpts.Verbose) {
- LineTable.parse(LineData, &Offset, U, &OS);
+ LineTable.parse(LineData, &Offset, *this, U, &OS);
} else {
- LineTable.parse(LineData, &Offset, U);
+ LineTable.parse(LineData, &Offset, *this, U);
LineTable.dump(OS);
}
// Check for unparseable prologue, to avoid infinite loops.
@@ -422,7 +422,7 @@
U = It->second;
DWARFDebugLine::LineTable LineTable;
unsigned OldOffset = Offset;
- if (!LineTable.Prologue.parse(LineData, &Offset, U))
+ if (!LineTable.Prologue.parse(LineData, &Offset, *this, U))
break;
if (!DumpOffset || OldOffset == *DumpOffset)
LineTable.dump(OS);
@@ -781,7 +781,7 @@
// We have to parse it first.
DWARFDataExtractor lineData(*DObj, U->getLineSection(), isLittleEndian(),
U->getAddressByteSize());
- return Line->getOrParseLineTable(lineData, stmtOffset, U);
+ return Line->getOrParseLineTable(lineData, stmtOffset, *this, U);
}
void DWARFContext::parseCompileUnits() {