llvm/llvm/test/MC/ELF/dwarf-loc0.s

# XFAIL: target={{.*}}-aix{{.*}}
# UNSUPPORTED: target={{.*}}-zos{{.*}}
# REQUIRES: object-emission
# RUN: llvm-mc -dwarf-version 5 --defsym FILE0=1 %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
# Show that ".loc 0" works in DWARF v5, gets an error for earlier versions.
.ifdef FILE0
        .file 0 "root.cpp"
.endif
        .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: ^