mirror of
https://github.com/RPCS3/llvm.git
synced 2025-02-19 10:15:00 +00:00
[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
This commit is contained in:
parent
b3505fe266
commit
9161b0eb01
@ -2105,6 +2105,8 @@ void DwarfDebug::emitDebugAbbrevDWO() {
|
||||
|
||||
void DwarfDebug::emitDebugLineDWO() {
|
||||
assert(useSplitDwarf() && "No split dwarf?");
|
||||
if (!HasSplitTypeUnits)
|
||||
return;
|
||||
Asm->OutStreamer->SwitchSection(
|
||||
Asm->getObjFileLowering().getDwarfLineDWOSection());
|
||||
SplitTypeUnitFileTable.Emit(*Asm->OutStreamer, MCDwarfLineTableParams());
|
||||
@ -2220,6 +2222,7 @@ void DwarfDebug::addDwarfTypeUnitType(DwarfCompileUnit &CU,
|
||||
InfoHolder.computeSizeAndOffsetsForUnit(TU.first.get());
|
||||
InfoHolder.emitUnit(TU.first.get(), useSplitDwarf());
|
||||
}
|
||||
HasSplitTypeUnits = useSplitDwarf();
|
||||
}
|
||||
CU.addDIETypeSignature(RefDie, Signature);
|
||||
}
|
||||
|
@ -274,6 +274,10 @@ class DwarfDebug : public DebugHandlerBase {
|
||||
/// a monolithic sequence of string offsets.
|
||||
bool UseSegmentedStringOffsetsTable;
|
||||
|
||||
/// Whether we have emitted any type units with split DWARF (and therefore
|
||||
/// need to emit a line table to the .dwo file).
|
||||
bool HasSplitTypeUnits = false;
|
||||
|
||||
/// Separated Dwarf Variables
|
||||
/// In general these will all be for bits that are left in the
|
||||
/// original object file, rather than things that are meant
|
||||
|
@ -16,7 +16,9 @@
|
||||
; CHECK: contents:
|
||||
|
||||
; Don't emit DW_AT_addr_base when there are no addresses.
|
||||
; Also don't emit a split line table when there are no type units.
|
||||
; FISSION-NOT: DW_AT_GNU_addr_base [DW_FORM_sec_offset]
|
||||
; FISSION-NOT: .debug_line.dwo contents:
|
||||
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!llvm.module.flags = !{!5}
|
||||
|
Loading…
x
Reference in New Issue
Block a user