emitAbsValue(*MCOS,
MakeStartMinusEndExpr(*MCOS, *LineStartSym, *LineEndSym, 4), 4);
- unsigned LineTableVersion = context.getDwarfVersion();
-
- // On Darwin we default to v2 for anything before DWARF v5.
- if (context.getObjectFileInfo()->getTargetTriple().isOSDarwin() &&
- LineTableVersion < 5)
- LineTableVersion = 2;
-
// Next 2 bytes is the Version.
+ unsigned LineTableVersion = context.getDwarfVersion();
MCOS->EmitIntValue(LineTableVersion, 2);
// Keep track of the bytes between the very start and where the header length
; MD5 checksums provided by IR should be passed through to asm.
; They'll be emitted to an object file only for DWARF 5 or later.
-;
-; Note that on Darwin for DWARF 4 or earlier, the line table version is clamped
-; to version 2. However that doesn't affect the output checked in this test.
; REQUIRES: object-emission
; RUN: %llc_dwarf -dwarf-version 4 -filetype=asm -o - %s | FileCheck %s --check-prefix=ASM-4
; Source text provided by IR should be passed through to asm.
; It is emitted to an object file only for DWARF 5 or later.
-;
-; Note that on Darwin for DWARF 4 or earlier, the line table version is clamped
-; to version 2. However that doesn't affect the output checked in this test.
; REQUIRES: object-emission
; RUN: %llc_dwarf -dwarf-version 4 -filetype=asm -o - %s | FileCheck %s --check-prefix=ASM-4
; 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: 0x00000019
+; CHECK: total_length: 0x0000001a
; CHECK-NOT: file_names[
@i = external global i32
; CHECK: DW_AT_high_pc [DW_FORM_data4] (0x00000010)
; CHECK: DW_TAG_compile_unit
-; CHECK: DW_AT_stmt_list [DW_FORM_sec_offset] (0x0000003c)
+; CHECK: DW_AT_stmt_list [DW_FORM_sec_offset] (0x0000003d)
; CHECK: DW_AT_low_pc [DW_FORM_addr] (0x0000000000000010)
; CHECK: DW_AT_high_pc [DW_FORM_data4] (0x00000009)
; CHECK: DW_TAG_subprogram
; CHECK: .debug_line contents:
; CHECK-NEXT: debug_line[{{.*}}]
; CHECK-NEXT: Line table prologue:
-; CHECK-NEXT: total_length: 0x00000038
+; CHECK-NEXT: total_length: 0x00000039
; CHECK: file_names[ 1]:
; CHECK-NEXT: name: "simple.c"
; CHECK-NEXT: dir_index: 0
; CHECK: debug_line[{{.*}}]
; CHECK-NEXT: Line table prologue:
-; CHECK-NEXT: total_length: 0x00000039
+; CHECK-NEXT: total_length: 0x0000003a
; CHECK: file_names[ 1]:
; CHECK-NEXT: name: "simple2.c"
; CHECK-NEXT: dir_index: 0
// CHECK-NEXT: Name: __debug_line
// CHECK-NEXT: Segment: __DWARF
// CHECK-NEXT: Address: 0x1
-// CHECK-NEXT: Size: 0x28
+// CHECK-NEXT: Size: 0x29
// CHECK-NEXT: Offset: 237
// CHECK-NEXT: Alignment: 0
// CHECK-NEXT: RelocationOffset: 0x0
// CHECK-NEXT: Reserved1: 0x0
// CHECK-NEXT: Reserved2: 0x0
// CHECK-NEXT: SectionData (
-// CHECK-NEXT: 0000: 24000000 02001E00 00000101 FB0E0D00 |$...............|
-// CHECK-NEXT: 0010: 01010101 00000001 00000164 69720000 |...........dir..|
-// CHECK-NEXT: 0020: 666F6F00 01000000 |foo.....|
+// CHECK-NEXT: 000: 25000000 04001F00 00000101 01FB0E0D |%...............|
+// CHECK-NEXT: 010: 00010101 01000000 01000001 64697200 |............dir.|
+// CHECK-NEXT: 020: 00666F6F 00010000 00 |.foo.....|
// CHECK-NEXT: )
// CHECK-NEXT: }
// CHECK: .debug_line contents:
// CHECK: Line table prologue:
// We don't check the total_length as it includes lengths of temp paths
-// CHECK: version: 2
+// CHECK: version: 4
// 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
// 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: 0x3C
+// CHECK: Size: 0x3D
// CHECK: Offset: 237
// CHECK: Alignment: 0
// CHECK: RelocationOffset: 0x12C
// CHECK: Reserved1: 0x0
// CHECK: Reserved2: 0x0
// CHECK: SectionData (
-// CHECK: 0000: 38000000 02002100 00000101 FB0E0D00 |8.....!.........|
-// CHECK: 0010: 01010101 00000001 00000100 62617200 |............bar.|
-// CHECK: 0020: 00000066 6F6F0000 00000004 02000502 |...foo..........|
-// CHECK: 0030: 00000000 033F0102 01000101 |.....?......|
+// CHECK: 000: 39000000 04002200 00000101 01FB0E0D |9.....".........|
+// CHECK: 010: 00010101 01000000 01000001 00626172 |.............bar|
+// CHECK: 020: 00000000 666F6F00 00000000 04020005 |....foo.........|
+// CHECK: 030: 02000000 00033F01 02010001 01 |......?......|
// CHECK: )
// CHECK: }
// CHECK: ]
// CHECK: Relocations [
// CHECK: Section __debug_line {
-// CHECK: 0x30 0 2 0 GENERIC_RELOC_VANILLA 0 __text
+// CHECK: 0x31 0 2 0 GENERIC_RELOC_VANILLA 0 __text
// CHECK: }
// CHECK: ]