blob: 01bb58b01f268004decad05f5108a21d4cbe1f74 [file] [log] [blame]
Paul Robinson732e4432018-03-06 03:15:21 +00001// RUN: llvm-mc -triple x86_64-unknown-unknown -dwarf-version 5 -filetype=obj %s -o -| llvm-dwarfdump --debug-line --debug-line-str -v - | FileCheck %s
Scott Linderc16b9752018-02-23 23:13:18 +00002
3// Test combinations of options to the .file directive.
4
Paul Robinson01954692018-04-11 15:14:05 +00005 .file 1 "dir1/foo" md5 0xee87e05688663173cd6043a3a15bba6e source "void foo() {}"
6 .file 2 "dir2/bar" source "void bar() {}" md5 0x816225a0c90ca8948b70eb58be4d522f
Scott Linderc16b9752018-02-23 23:13:18 +00007 .loc 1 1 0
8 nop
9 .loc 2 1 0
10 nop
11
12# CHECK: debug_line[0x00000000]
13# CHECK: version: 5
Paul Robinsonb271f312018-03-29 17:16:41 +000014# CHECK: include_directories[ 0] = .debug_line_str[0x[[DIR0:[0-9a-f]+]]] = "{{.+}}"
Scott Linderc16b9752018-02-23 23:13:18 +000015# CHECK: include_directories[ 1] = .debug_line_str[0x[[DIR1:[0-9a-f]+]]] = "dir1"
16# CHECK: include_directories[ 2] = .debug_line_str[0x[[DIR2:[0-9a-f]+]]] = "dir2"
17# CHECK-NOT: include_directories
18# CHECK: file_names[ 0]:
Paul Robinsonf69316c2018-06-12 16:09:03 +000019# CHECK-NEXT: name: .debug_line_str[0x[[FILE0:[0-9a-f]+]]] = "foo"
20# CHECK-NEXT: dir_index: 1
Paul Robinsonb271f312018-03-29 17:16:41 +000021# CHECK-NEXT: md5_checksum:
Paul Robinsonf69316c2018-06-12 16:09:03 +000022# CHECK-NEXT: source: .debug_line_str[0x[[FILE0SRC:[0-9a-f]+]]] = "void foo() {}"
Paul Robinsonb271f312018-03-29 17:16:41 +000023# CHECK: file_names[ 1]:
Paul Robinsonf69316c2018-06-12 16:09:03 +000024# CHECK-NEXT: name: .debug_line_str[0x[[FILE0]]] = "foo"
Scott Linderc16b9752018-02-23 23:13:18 +000025# CHECK-NEXT: dir_index: 1
26# CHECK-NEXT: md5_checksum: ee87e05688663173cd6043a3a15bba6e
Paul Robinsonf69316c2018-06-12 16:09:03 +000027# CHECK-NEXT: source: .debug_line_str[0x[[FILE0SRC]]] = "void foo() {}"
Paul Robinsonb271f312018-03-29 17:16:41 +000028# CHECK: file_names[ 2]:
Scott Linderc16b9752018-02-23 23:13:18 +000029# CHECK-NEXT: name: .debug_line_str[0x[[FILE2:[0-9a-f]+]]] = "bar"
30# CHECK-NEXT: dir_index: 2
31# CHECK-NEXT: md5_checksum: 816225a0c90ca8948b70eb58be4d522f
32# CHECK-NEXT: source: .debug_line_str[0x[[FILE2SRC:[0-9a-f]+]]] = "void bar() {}"
33
34# CHECK: .debug_line_str contents:
Paul Robinsonb271f312018-03-29 17:16:41 +000035# CHECK-NEXT: 0x[[DIR0]]: "{{.+}}"
Scott Linderc16b9752018-02-23 23:13:18 +000036# CHECK-NEXT: 0x[[DIR1]]: "dir1"
37# CHECK-NEXT: 0x[[DIR2]]: "dir2"
Paul Robinsonf69316c2018-06-12 16:09:03 +000038# CHECK-NEXT: 0x[[FILE0]]: "foo"
39# CHECK-NEXT: 0x[[FILE0SRC]]: "void foo() {}"
Scott Linderc16b9752018-02-23 23:13:18 +000040# CHECK-NEXT: 0x[[FILE2]]: "bar"
41# CHECK-NEXT: 0x[[FILE2SRC]]: "void bar() {}"