| # REQUIRES: default_triple | |
| # RUN: llvm-mc -dwarf-version 5 %s -filetype=obj -o - | llvm-dwarfdump -debug-line - | FileCheck %s | |
| # RUN: not llvm-mc -dwarf-version 4 %s -filetype=asm -o - 2>&1 | FileCheck %s -check-prefix=ERR | |
| # Darwin line table is stuck on DWARF v2. | |
| # XFAIL: darwin | |
| # Show that ".loc 0" works in DWARF v5, gets an error for earlier versions. | |
| .file 0 "root.cpp" | |
| .file 1 "header.h" | |
| .loc 0 10 0 | |
| .byte 0 | |
| .loc 1 20 0 | |
| .byte 0 | |
| # CHECK: file_names[ 0]: | |
| # CHECK-NEXT: name: "root.cpp" | |
| # CHECK: file_names[ 1]: | |
| # CHECK-NEXT: name: "header.h" | |
| # CHECK: Address Line Column File | |
| # CHECK-NEXT: ------- | |
| # CHECK-NEXT: 0x{{[0-9a-f]+}} 10 0 0 | |
| # CHECK-NEXT: 0x{{[0-9a-f]+}} 20 0 1 | |
| # CHECK-NEXT: 0x{{[0-9a-f]+}} 20 0 1 {{.*}} end_sequence | |
| # ERR: file number less than one in '.loc' directive | |
| # ERR-NEXT: .loc 0 10 0 | |
| # ERR-NEXT: ^ |