}
// For now only turn on CU ranges if we've explicitly asked for it,
- // we have -ffunction-sections enabled, or we've emitted a function
- // into a unique section. At this point all sections should be finalized
- // except for dwarf sections.
- HasCURanges = DwarfCURanges || UsedNonDefaultText ||
+ // we have -ffunction-sections enabled, we've emitted a function
+ // into a unique section, or we're using LTO. If we're using LTO then
+ // we can't know that any particular function in the module is correlated
+ // to a particular CU and so we need to be conservative. At this point all
+ // sections should be finalized except for dwarf sections.
+ HasCURanges = DwarfCURanges || UsedNonDefaultText || (CUMap.size() > 1) ||
TargetMachine::getFunctionSections();
}
; CHECK: .debug_info contents:
; CHECK: DW_TAG_compile_unit
; CHECK: DW_AT_stmt_list [DW_FORM_sec_offset] (0x00000000)
-; CHECK: DW_AT_low_pc [DW_FORM_addr] (0x0000000000000000)
+; CHECK: DW_AT_ranges [DW_FORM_sec_offset] (0x00000000)
; CHECK: DW_TAG_compile_unit
; CHECK: DW_AT_stmt_list [DW_FORM_sec_offset] (0x0000003c)
-; CHECK: DW_AT_low_pc [DW_FORM_addr] (0x0000000000000000)
+; CHECK: DW_AT_ranges [DW_FORM_sec_offset] (0x00000020)
; CHECK: .debug_line contents:
; CHECK-NEXT: Line table prologue:
; DWARF3: .debug_info contents:
; DWARF3: DW_TAG_compile_unit
-; DWARF3: DW_AT_stmt_list [DW_FORM_data4] (0x00000000)
-; DWARF3: DW_AT_low_pc [DW_FORM_addr] (0x0000000000000000)
+; DWARF3: DW_AT_stmt_list [DW_FORM_data4] (0x00000000)
+; DWARF3: DW_AT_ranges [DW_FORM_data4] (0x00000000)
; DWARF3: DW_TAG_compile_unit
; DWARF3: DW_AT_stmt_list [DW_FORM_data4] (0x0000003c)
-; DWARF3: DW_AT_low_pc [DW_FORM_addr] (0x0000000000000000)
+; DWARF3: DW_AT_ranges [DW_FORM_data4] (0x00000020)
; DWARF3: .debug_line contents:
; DWARF3-NEXT: Line table prologue: