llvm.org GIT mirror llvm / 9161b0e
[DWARF] Emit a split line table only if there are split type units. A .debug_info.dwo section doesn't use the .debug_line.dwo section. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@326395 91177308-0d34-0410-b5e6-96231b3b80d8 Paul Robinson 2 years ago
3 changed file(s) with 9 addition(s) and 0 deletion(s). Raw diff Collapse all Expand all
21042104
21052105 void DwarfDebug::emitDebugLineDWO() {
21062106 assert(useSplitDwarf() && "No split dwarf?");
2107 if (!HasSplitTypeUnits)
2108 return;
21072109 Asm->OutStreamer->SwitchSection(
21082110 Asm->getObjFileLowering().getDwarfLineDWOSection());
21092111 SplitTypeUnitFileTable.Emit(*Asm->OutStreamer, MCDwarfLineTableParams());
22192221 InfoHolder.computeSizeAndOffsetsForUnit(TU.first.get());
22202222 InfoHolder.emitUnit(TU.first.get(), useSplitDwarf());
22212223 }
2224 HasSplitTypeUnits = useSplitDwarf();
22222225 }
22232226 CU.addDIETypeSignature(RefDie, Signature);
22242227 }
273273 /// a monolithic sequence of string offsets.
274274 bool UseSegmentedStringOffsetsTable;
275275
276 /// Whether we have emitted any type units with split DWARF (and therefore
277 /// need to emit a line table to the .dwo file).
278 bool HasSplitTypeUnits = false;
279
276280 /// Separated Dwarf Variables
277281 /// In general these will all be for bits that are left in the
278282 /// original object file, rather than things that are meant
1515 ; CHECK: contents:
1616
1717 ; Don't emit DW_AT_addr_base when there are no addresses.
18 ; Also don't emit a split line table when there are no type units.
1819 ; FISSION-NOT: DW_AT_GNU_addr_base [DW_FORM_sec_offset]
20 ; FISSION-NOT: .debug_line.dwo contents:
1921
2022 !llvm.dbg.cu = !{!0}
2123 !llvm.module.flags = !{!5}