| // RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -s -sd | FileCheck %s | |
| // Test that .debug_line is populated. TODO: This test should really be using | |
| // llvm-dwarfdump, but it cannot parse this particular object file. The content | |
| // of .debug_line was checked using GNU binutils: | |
| // $ objdump --dwarf=decodedline debug-line.o | |
| // [...] | |
| // File name Line number Starting address | |
| // foo.c 4 0 | |
| // foo.c 5 0x4 | |
| // foo.c 6 0x5 | |
| // CHECK: Section { | |
| // CHECK: Name: .debug_line | |
| // CHECK-NEXT: Type: SHT_PROGBITS | |
| // CHECK-NEXT: Flags [ | |
| // CHECK-NEXT: ] | |
| // CHECK-NEXT: Address: 0x0 | |
| // CHECK-NEXT: Offset: | |
| // CHECK-NEXT: Size: 58 | |
| // CHECK-NEXT: Link: 0 | |
| // CHECK-NEXT: Info: 0 | |
| // CHECK-NEXT: AddressAlignment: 1 | |
| // CHECK-NEXT: EntrySize: 0 | |
| // CHECK-NEXT: SectionData ( | |
| // CHECK-NEXT: 0000: 36000000 04001D00 00000101 01FB0E0D | |
| // CHECK-NEXT: 0010: 00010101 01000000 01000001 00666F6F | |
| // CHECK-NEXT: 0020: 2E630000 00000000 09020000 00000000 | |
| // CHECK-NEXT: 0030: 0000154B 21020800 0101 | |
| // CHECK-NEXT: ) | |
| // CHECK-NEXT: } | |
| .section .debug_line,"",@progbits | |
| .text | |
| .file 1 "foo.c" | |
| .loc 1 4 0 | |
| subq $8, %rsp | |
| // Test that .loc works with values, not just instructions. | |
| .loc 1 5 0 | |
| .byte 0xc3 | |
| .loc 1 6 0 | |
| l: | |
| .quad l |