Skip to content

Commit

Permalink
[MC/Dwarf] Use the older DWARF linetables format on Darwin.
Browse files Browse the repository at this point in the history
dsymutil doesn't yet understand the new format and the change,
among others, breaks a large fraction of the debugger tests on
mac OS.

rdar://problem/35856354

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@319995 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
dcci committed Dec 7, 2017
1 parent 9c87911 commit 01e7a56
Show file tree
Hide file tree
Showing 6 changed files with 19 additions and 16 deletions.
3 changes: 3 additions & 0 deletions lib/MC/MCDwarf.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -338,7 +338,10 @@ MCDwarfLineTableHeader::Emit(MCStreamer *MCOS, MCDwarfLineTableParams Params,
MakeStartMinusEndExpr(*MCOS, *LineStartSym, *LineEndSym, 4), 4);

// Next 2 bytes is the Version.
// FIXME: On Darwin we still default to V2.
unsigned LineTableVersion = context.getDwarfVersion();
if (context.getObjectFileInfo()->getTargetTriple().isOSDarwin())
LineTableVersion = 2;
MCOS->EmitIntValue(LineTableVersion, 2);

// Keep track of the bytes between the very start and where the header length
Expand Down
2 changes: 1 addition & 1 deletion test/DebugInfo/Generic/nodebug.ll
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
; Expect no line table entry since there are no functions and file references in this compile unit
; CHECK: .debug_line contents:
; CHECK: Line table prologue:
; CHECK: total_length: 0x0000001a
; CHECK: total_length: 0x00000019
; CHECK-NOT: file_names[

@i = external global i32
Expand Down
6 changes: 3 additions & 3 deletions test/DebugInfo/X86/stmt-list-multiple-compile-units.ll
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
; CHECK: DW_AT_high_pc [DW_FORM_data4] (0x00000010)

; CHECK: DW_TAG_compile_unit
; CHECK: DW_AT_stmt_list [DW_FORM_sec_offset] (0x0000003d)
; CHECK: DW_AT_stmt_list [DW_FORM_sec_offset] (0x0000003c)
; CHECK: DW_AT_low_pc [DW_FORM_addr] (0x0000000000000010)
; CHECK: DW_AT_high_pc [DW_FORM_data4] (0x00000009)
; CHECK: DW_TAG_subprogram
Expand All @@ -26,11 +26,11 @@
; CHECK: .debug_line contents:
; CHECK-NEXT: debug_line[{{.*}}]
; CHECK-NEXT: Line table prologue:
; CHECK-NEXT: total_length: 0x00000039
; CHECK-NEXT: total_length: 0x00000038
; CHECK: file_names[ 1] 0 0x00000000 0x00000000 simple.c
; CHECK: debug_line[{{.*}}]
; CHECK-NEXT: Line table prologue:
; CHECK-NEXT: total_length: 0x0000003a
; CHECK-NEXT: total_length: 0x00000039
; CHECK: file_names[ 1] 0 0x00000000 0x00000000 simple2.c
; CHECK-NOT: file_names

Expand Down
8 changes: 4 additions & 4 deletions test/MC/MachO/file.s
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
// CHECK-NEXT: Name: __debug_line
// CHECK-NEXT: Segment: __DWARF
// CHECK-NEXT: Address: 0x1
// CHECK-NEXT: Size: 0x29
// CHECK-NEXT: Size: 0x28
// CHECK-NEXT: Offset: 237
// CHECK-NEXT: Alignment: 0
// CHECK-NEXT: RelocationOffset: 0x0
Expand All @@ -20,8 +20,8 @@
// CHECK-NEXT: Reserved1: 0x0
// CHECK-NEXT: Reserved2: 0x0
// CHECK-NEXT: SectionData (
// CHECK-NEXT: 0000: 25000000 04001F00 00000101 01FB0E0D |%...............|
// CHECK-NEXT: 0010: 00010101 01000000 01000001 64697200 |............dir.|
// CHECK-NEXT: 0020: 00666F6F 00010000 00 |.foo.....|
// CHECK-NEXT: 0000: 24000000 02001E00 00000101 FB0E0D00 |$...............|
// CHECK-NEXT: 0010: 01010101 00000001 00000164 69720000 |...........dir..|
// CHECK-NEXT: 0020: 666F6F00 01000000 |foo.....|
// CHECK-NEXT: )
// CHECK-NEXT: }
2 changes: 1 addition & 1 deletion test/MC/MachO/gen-dwarf.s
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ _x: .long 1
// CHECK: .debug_line contents:
// CHECK: Line table prologue:
// We don't check the total_length as it includes lengths of temp paths
// CHECK: version: 4
// CHECK: version: 2
// We don't check the prologue_length as it too includes lengths of temp paths
// CHECK: min_inst_length: 1
// CHECK: default_is_stmt: 1
Expand Down
14 changes: 7 additions & 7 deletions test/MC/MachO/loc.s
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@
// CHECK: Name: __debug_line (5F 5F 64 65 62 75 67 5F 6C 69 6E 65 00 00 00 00)
// CHECK: Segment: __DWARF (5F 5F 44 57 41 52 46 00 00 00 00 00 00 00 00 00)
// CHECK: Address: 0x1
// CHECK: Size: 0x34
// CHECK: Size: 0x33
// CHECK: Offset: 237
// CHECK: Alignment: 0
// CHECK: RelocationOffset: 0x124
// CHECK: RelocationOffset: 0x120
// CHECK: RelocationCount: 1
// CHECK: Type: 0x0
// CHECK: Attributes [ (0x20000)
Expand All @@ -21,15 +21,15 @@
// CHECK: Reserved1: 0x0
// CHECK: Reserved2: 0x0
// CHECK: SectionData (
// CHECK: 0000: 30000000 04001B00 00000101 01FB0E0D |0...............|
// CHECK: 0010: 00010101 01000000 01000001 00666F6F |.............foo|
// CHECK: 0020: 00000000 00000502 00000000 033F0102 |.............?..|
// CHECK: 0030: 01000101
// CHECK: 0000: 2F000000 02001A00 00000101 FB0E0D00 |/...............|
// CHECK: 0010: 01010101 00000001 00000100 666F6F00 |............foo.|
// CHECK: 0020: 00000000 00050200 00000003 3F010201 |............?...|
// CHECK: 0030: 000101 |...|
// CHECK: )
// CHECK: }
// CHECK: ]
// CHECK: Relocations [
// CHECK: Section __debug_line {
// CHECK: 0x28 0 2 0 GENERIC_RELOC_VANILLA 0 __text
// CHECK: 0x27 0 2 0 GENERIC_RELOC_VANILLA 0 __text
// CHECK: }
// CHECK: ]

0 comments on commit 01e7a56

Please sign in to comment.