summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
authorPaul Robinson <paul.robinson@sony.com>2018-03-29 17:16:41 +0000
committerPaul Robinson <paul.robinson@sony.com>2018-03-29 17:16:41 +0000
commitb271f31d8d31ad689958fb8ff75110c2db5515df (patch)
tree9fc7456a6408dc5f91f66d7975f02bfc378de9d6 /llvm/test
parent1b20416bfa4ed906d5b5f289aa8a4430b9620132 (diff)
downloadbcm5719-llvm-b271f31d8d31ad689958fb8ff75110c2db5515df.tar.gz
bcm5719-llvm-b271f31d8d31ad689958fb8ff75110c2db5515df.zip
Reapply "[DWARFv5] Emit file 0 to the line table."
DWARF v5 specifies that the root file (also given in the DW_AT_name attribute of the compilation unit DIE) should be emitted explicitly to the line table's list of files. This makes the line table more independent of the .debug_info section. We emit the new syntax only for DWARF v5 and later. Fixes the bug found by asan. Also XFAIL the new test for Darwin, which is stuck on DWARF v2, and fix up other tests so they stop failing on Windows. Last but not least, don't break "clang -g" of an assembler file that has .file directives in it. Differential Revision: https://reviews.llvm.org/D44054 llvm-svn: 328805
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/CodeGen/Generic/dwarf-md5.ll46
-rw-r--r--llvm/test/CodeGen/Generic/dwarf-source.ll41
-rw-r--r--llvm/test/DebugInfo/X86/dbg-file-name.ll2
-rw-r--r--llvm/test/DebugInfo/X86/inline-asm-locs.ll2
-rw-r--r--llvm/test/MC/ARM/dwarf-asm-multiple-sections.s4
-rw-r--r--llvm/test/MC/ELF/debug-file-options.s13
-rw-r--r--llvm/test/MC/ELF/debug-md5.s12
-rw-r--r--llvm/test/MC/ELF/debug-source.s12
-rw-r--r--llvm/test/MC/ELF/dwarf-file0.s19
9 files changed, 93 insertions, 58 deletions
diff --git a/llvm/test/CodeGen/Generic/dwarf-md5.ll b/llvm/test/CodeGen/Generic/dwarf-md5.ll
index b9977200de1..0f23b90cc85 100644
--- a/llvm/test/CodeGen/Generic/dwarf-md5.ll
+++ b/llvm/test/CodeGen/Generic/dwarf-md5.ll
@@ -5,31 +5,33 @@
; XFAIL: darwin
; REQUIRES: object-emission
-; RUN: %llc_dwarf -dwarf-version 4 -filetype=asm -o - %s | FileCheck %s --check-prefix=ASM
-; RUN: %llc_dwarf -dwarf-version 5 -filetype=asm -o - %s | FileCheck %s --check-prefix=ASM
+; RUN: %llc_dwarf -dwarf-version 4 -filetype=asm -o - %s | FileCheck %s --check-prefixes=ASM,ASM-4
+; RUN: %llc_dwarf -dwarf-version 5 -filetype=asm -o - %s | FileCheck %s --check-prefixes=ASM,ASM-5
; RUN: %llc_dwarf -dwarf-version 4 -filetype=obj -o %t4.o %s
-; RUN: llvm-dwarfdump -debug-line %t4.o | FileCheck %s --check-prefix=OBJ-4
+; RUN: llvm-dwarfdump -debug-line %t4.o | FileCheck %s --check-prefix=OBJ
; RUN: %llc_dwarf -dwarf-version 5 -filetype=obj -o %t5.o %s
-; RUN: llvm-dwarfdump -debug-line %t5.o | FileCheck %s --check-prefix=OBJ-5
+; RUN: llvm-dwarfdump -debug-line %t5.o | FileCheck %s --check-prefixes=OBJ,OBJ-5
-; FIXME: Need to convey the MD5 for the primary source file.
-; ASM: .file 1 ".{{/|\\\\}}t1.h" md5 "11111111111111111111111111111111"
-; ASM: .file 2 ".{{/|\\\\}}t2.h" md5 "22222222222222222222222222222222"
-
-; OBJ-4: file_names[ 1]:
-; OBJ-4-NEXT: name: "t1.h"
-; OBJ-4-NEXT: dir_index: 1
-; OBJ-4: file_names[ 2]:
-; OBJ-4-NEXT: name: "t2.h"
-; OBJ-4-NEXT: dir_index: 1
+; ASM-4-NOT: .file 0
+; ASM-5: .file 0 "/scratch{{[/\\]}}t.c" md5 "00000000000000000000000000000000"
+; ASM: .file 1 "/scratch{{[/\\]}}t1.h"
+; ASM-4-NOT: md5
+; ASM-5-SAME: md5 "11111111111111111111111111111111"
+; ASM: .file 2 "/scratch{{[/\\]}}t2.h"
+; ASM-4-NOT: md5
+; ASM-5-SAME: md5 "22222222222222222222222222222222"
; OBJ-5: file_names[ 0]:
-; OBJ-5-NEXT: name: "t1.h"
-; OBJ-5-NEXT: dir_index: 1
+; OBJ-5-NEXT: name: "t.c"
+; OBJ-5-NEXT: dir_index: 0
+; OBJ-5-NEXT: md5_checksum: 00000000000000000000000000000000
+; OBJ: file_names[ 1]:
+; OBJ-NEXT: name: "t1.h"
+; OBJ-NEXT: dir_index: 0
; OBJ-5-NEXT: md5_checksum: 11111111111111111111111111111111
-; OBJ-5: file_names[ 1]:
-; OBJ-5-NEXT: name: "t2.h"
-; OBJ-5-NEXT: dir_index: 1
+; OBJ: file_names[ 2]:
+; OBJ-NEXT: name: "t2.h"
+; OBJ-NEXT: dir_index: 0
; OBJ-5-NEXT: md5_checksum: 22222222222222222222222222222222
; ModuleID = 't.c'
@@ -45,14 +47,14 @@ source_filename = "t.c"
!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
!1 = distinct !DIGlobalVariable(name: "t1", scope: !2, file: !10, line: 1, type: !9, isLocal: false, isDefinition: true)
!2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 322159)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !5)
-!3 = !DIFile(filename: "t.c", directory: "/home/probinson/projects/scratch", checksumkind: CSK_MD5, checksum: "00000000000000000000000000000000")
+!3 = !DIFile(filename: "t.c", directory: "/scratch", checksumkind: CSK_MD5, checksum: "00000000000000000000000000000000")
!4 = !{}
!5 = !{!0, !6}
!6 = !DIGlobalVariableExpression(var: !7, expr: !DIExpression())
!7 = distinct !DIGlobalVariable(name: "t2", scope: !2, file: !8, line: 1, type: !9, isLocal: false, isDefinition: true)
-!8 = !DIFile(filename: "./t2.h", directory: "/home/probinson/projects/scratch", checksumkind: CSK_MD5, checksum: "22222222222222222222222222222222")
+!8 = !DIFile(filename: "t2.h", directory: "/scratch", checksumkind: CSK_MD5, checksum: "22222222222222222222222222222222")
!9 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)
-!10 = !DIFile(filename: "./t1.h", directory: "/home/probinson/projects/scratch", checksumkind: CSK_MD5, checksum: "11111111111111111111111111111111")
+!10 = !DIFile(filename: "t1.h", directory: "/scratch", checksumkind: CSK_MD5, checksum: "11111111111111111111111111111111")
!11 = !{i32 2, !"Dwarf Version", i32 4}
!12 = !{i32 2, !"Debug Info Version", i32 3}
!13 = !{i32 1, !"wchar_size", i32 4}
diff --git a/llvm/test/CodeGen/Generic/dwarf-source.ll b/llvm/test/CodeGen/Generic/dwarf-source.ll
index 9c34fc5285b..3f772d32ad1 100644
--- a/llvm/test/CodeGen/Generic/dwarf-source.ll
+++ b/llvm/test/CodeGen/Generic/dwarf-source.ll
@@ -6,32 +6,29 @@
; REQUIRES: object-emission
; RUN: %llc_dwarf -dwarf-version 4 -filetype=asm -o - %s | FileCheck %s --check-prefix=ASM
-; RUN: %llc_dwarf -dwarf-version 5 -filetype=asm -o - %s | FileCheck %s --check-prefix=ASM
+; RUN: %llc_dwarf -dwarf-version 5 -filetype=asm -o - %s | FileCheck %s --check-prefixes=ASM,ASM-5
; RUN: %llc_dwarf -dwarf-version 4 -filetype=obj -o %t4.o %s
-; RUN: llvm-dwarfdump -debug-line %t4.o | FileCheck %s --check-prefix=OBJ-4
+; RUN: llvm-dwarfdump -debug-line %t4.o | FileCheck %s --check-prefixes=OBJ,OBJ-4
; RUN: %llc_dwarf -dwarf-version 5 -filetype=obj -o %t5.o %s
-; RUN: llvm-dwarfdump -debug-line %t5.o | FileCheck %s --check-prefix=OBJ-5
+; RUN: llvm-dwarfdump -debug-line %t5.o | FileCheck %s --check-prefixes=OBJ,OBJ-5
-; FIXME: Need to convey the source for the primary source file.
-; ASM: .file 1 ".{{/|\\\\}}t1.h" source "11111111111111111111111111111111"
-; ASM: .file 2 ".{{/|\\\\}}t2.h" source "22222222222222222222222222222222"
-
-; OBJ-4: file_names[ 1]:
-; OBJ-4-NEXT: name: "t1.h"
-; OBJ-4-NEXT: dir_index: 1
-; OBJ-4-NOT: 11111111111111111111111111111111
-; OBJ-4: file_names[ 2]:
-; OBJ-4-NEXT: name: "t2.h"
-; OBJ-4-NEXT: dir_index: 1
-; OBJ-4-NOT: 22222222222222222222222222222222
+; ASM-5: .file 0 "/test{{[/\\]}}t.c" source "00000000000000000000000000000000"
+; ASM: .file 1 "/test{{[/\\]}}t1.h" source "11111111111111111111111111111111"
+; ASM: .file 2 "/test{{[/\\]}}t2.h" source "22222222222222222222222222222222"
; OBJ-5: file_names[ 0]:
-; OBJ-5-NEXT: name: "t1.h"
-; OBJ-5-NEXT: dir_index: 1
+; OBJ-5-NEXT: name: "t.c"
+; OBJ-5-NEXT: dir_index: 0
+; OBJ-5-NEXT: source: "00000000000000000000000000000000"
+; OBJ: file_names[ 1]:
+; OBJ-NEXT: name: "t1.h"
+; OBJ-NEXT: dir_index: 0
+; OBJ-4-NOT: 11111111111111111111111111111111
; OBJ-5-NEXT: source: "11111111111111111111111111111111"
-; OBJ-5: file_names[ 1]:
-; OBJ-5-NEXT: name: "t2.h"
-; OBJ-5-NEXT: dir_index: 1
+; OBJ: file_names[ 2]:
+; OBJ-NEXT: name: "t2.h"
+; OBJ-NEXT: dir_index: 0
+; OBJ-4-NOT: 22222222222222222222222222222222
; OBJ-5-NEXT: source: "22222222222222222222222222222222"
; ModuleID = 't.c'
@@ -52,9 +49,9 @@ source_filename = "t.c"
!5 = !{!0, !6}
!6 = !DIGlobalVariableExpression(var: !7, expr: !DIExpression())
!7 = distinct !DIGlobalVariable(name: "t2", scope: !2, file: !8, line: 1, type: !9, isLocal: false, isDefinition: true)
-!8 = !DIFile(filename: "./t2.h", directory: "/test", source: "22222222222222222222222222222222")
+!8 = !DIFile(filename: "t2.h", directory: "/test", source: "22222222222222222222222222222222")
!9 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)
-!10 = !DIFile(filename: "./t1.h", directory: "/test", source: "11111111111111111111111111111111")
+!10 = !DIFile(filename: "t1.h", directory: "/test", source: "11111111111111111111111111111111")
!11 = !{i32 2, !"Dwarf Version", i32 4}
!12 = !{i32 2, !"Debug Info Version", i32 3}
!13 = !{i32 1, !"wchar_size", i32 4}
diff --git a/llvm/test/DebugInfo/X86/dbg-file-name.ll b/llvm/test/DebugInfo/X86/dbg-file-name.ll
index 251952df191..633b9c069c5 100644
--- a/llvm/test/DebugInfo/X86/dbg-file-name.ll
+++ b/llvm/test/DebugInfo/X86/dbg-file-name.ll
@@ -2,7 +2,7 @@
; Verify that the file name is relative to the directory.
; rdar://problem/8884898
-; CHECK: file 1 "simple.c"
+; CHECK: file 1 "/Users/manav/one/two" "simple.c"
declare i32 @printf(i8*, ...) nounwind
diff --git a/llvm/test/DebugInfo/X86/inline-asm-locs.ll b/llvm/test/DebugInfo/X86/inline-asm-locs.ll
index 632aa0be623..5412c7f4133 100644
--- a/llvm/test/DebugInfo/X86/inline-asm-locs.ll
+++ b/llvm/test/DebugInfo/X86/inline-asm-locs.ll
@@ -22,7 +22,7 @@
; CHECK: .file 2 "B.asm"
; CHECK: .loc 1 111
; CHECK: .loc 2 222
-; CHECK: .file 3 "test.c"
+; CHECK: .file 3 "{{.*[/\\]}}test.c"
; CHECK: .loc 3 14 0
target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
diff --git a/llvm/test/MC/ARM/dwarf-asm-multiple-sections.s b/llvm/test/MC/ARM/dwarf-asm-multiple-sections.s
index 4c099acccd5..cff8f000731 100644
--- a/llvm/test/MC/ARM/dwarf-asm-multiple-sections.s
+++ b/llvm/test/MC/ARM/dwarf-asm-multiple-sections.s
@@ -54,9 +54,9 @@ b:
// DWARF-DL: .debug_line contents:
// DWARF-DL: version: [[DWVER]]
// DWARF-DL-5: address_size: 4
-// DWARF-DL-5: include_directories[ 0] = ""
+// DWARF-DL-5: include_directories[ 0] = "/tmp"
// DWARF-DL: file_names[ [[DWFILE]]]:
-// DWARF-DL: name: "<stdin>"
+// DWARF-DL: name: "{{(<stdin>|-)}}"
// DWARF-DL: 0x0000000000000000 17 0 1 0 0 is_stmt
// DWARF-DL-NEXT: 0x0000000000000004 17 0 1 0 0 is_stmt end_sequence
// DWARF-DL-NEXT: 0x0000000000000000 21 0 1 0 0 is_stmt
diff --git a/llvm/test/MC/ELF/debug-file-options.s b/llvm/test/MC/ELF/debug-file-options.s
index 3bcd131cc38..5c77a48ab72 100644
--- a/llvm/test/MC/ELF/debug-file-options.s
+++ b/llvm/test/MC/ELF/debug-file-options.s
@@ -11,25 +11,32 @@
# CHECK: debug_line[0x00000000]
# CHECK: version: 5
-# CHECK: include_directories[ 0] = .debug_line_str[0x[[DIR0:[0-9a-f]+]]] = ""
+# CHECK: include_directories[ 0] = .debug_line_str[0x[[DIR0:[0-9a-f]+]]] = "{{.+}}"
# CHECK: include_directories[ 1] = .debug_line_str[0x[[DIR1:[0-9a-f]+]]] = "dir1"
# CHECK: include_directories[ 2] = .debug_line_str[0x[[DIR2:[0-9a-f]+]]] = "dir2"
# CHECK-NOT: include_directories
# CHECK: file_names[ 0]:
+# CHECK-NEXT: name: .debug_line_str[0x[[FILE0:[0-9a-f]+]]] = "{{.+}}"
+# CHECK-NEXT: dir_index: 0
+# CHECK-NEXT: md5_checksum:
+# CHECK-NEXT: source: .debug_line_str[0x[[FILE0SRC:[0-9a-f]+]]] = ""
+# CHECK: file_names[ 1]:
# CHECK-NEXT: name: .debug_line_str[0x[[FILE1:[0-9a-f]+]]] = "foo"
# CHECK-NEXT: dir_index: 1
# CHECK-NEXT: md5_checksum: ee87e05688663173cd6043a3a15bba6e
# CHECK-NEXT: source: .debug_line_str[0x[[FILE1SRC:[0-9a-f]+]]] = "void foo() {}"
-# CHECK: file_names[ 1]:
+# CHECK: file_names[ 2]:
# CHECK-NEXT: name: .debug_line_str[0x[[FILE2:[0-9a-f]+]]] = "bar"
# CHECK-NEXT: dir_index: 2
# CHECK-NEXT: md5_checksum: 816225a0c90ca8948b70eb58be4d522f
# CHECK-NEXT: source: .debug_line_str[0x[[FILE2SRC:[0-9a-f]+]]] = "void bar() {}"
# CHECK: .debug_line_str contents:
-# CHECK-NEXT: 0x[[DIR0]]: ""
+# CHECK-NEXT: 0x[[DIR0]]: "{{.+}}"
# CHECK-NEXT: 0x[[DIR1]]: "dir1"
# CHECK-NEXT: 0x[[DIR2]]: "dir2"
+# CHECK-NEXT: 0x[[FILE0]]: "{{.+}}"
+# CHECK-NEXT: 0x[[FILE0SRC]]: ""
# CHECK-NEXT: 0x[[FILE1]]: "foo"
# CHECK-NEXT: 0x[[FILE1SRC]]: "void foo() {}"
# CHECK-NEXT: 0x[[FILE2]]: "bar"
diff --git a/llvm/test/MC/ELF/debug-md5.s b/llvm/test/MC/ELF/debug-md5.s
index f8f3bc1a362..658e02e5917 100644
--- a/llvm/test/MC/ELF/debug-md5.s
+++ b/llvm/test/MC/ELF/debug-md5.s
@@ -1,4 +1,4 @@
-// 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
+// RUN: llvm-mc -triple x86_64-unknown-unknown -dwarf-version 5 -fdebug-compilation-dir=/tmp -filetype=obj %s -o - | llvm-dwarfdump --debug-line --debug-line-str -v - | FileCheck %s
.file 1 "dir1/foo" md5 "00112233445566778899aabbccddeeff"
.file 2 "dir2" "bar" md5 "ffeeddccbbaa99887766554433221100"
@@ -9,22 +9,26 @@
# CHECK: debug_line[0x00000000]
# CHECK: version: 5
-# CHECK: include_directories[ 0] = .debug_line_str[0x[[DIR0:[0-9a-f]+]]] = ""
+# CHECK: include_directories[ 0] = .debug_line_str[0x[[DIR0:[0-9a-f]+]]] = "/tmp"
# CHECK: include_directories[ 1] = .debug_line_str[0x[[DIR1:[0-9a-f]+]]] = "dir1"
# CHECK: include_directories[ 2] = .debug_line_str[0x[[DIR2:[0-9a-f]+]]] = "dir2"
# CHECK-NOT: include_directories
# CHECK: file_names[ 0]:
+# CHECK-NEXT: name: .debug_line_str[0x[[FILE0:[0-9a-f]+]]] = "{{.+}}"
+# CHECK-NEXT: dir_index: 0
+# CHECK: file_names[ 1]:
# CHECK-NEXT: name: .debug_line_str[0x[[FILE1:[0-9a-f]+]]] = "foo"
# CHECK-NEXT: dir_index: 1
# CHECK-NEXT: md5_checksum: 00112233445566778899aabbccddeeff
-# CHECK: file_names[ 1]:
+# CHECK: file_names[ 2]:
# CHECK-NEXT: name: .debug_line_str[0x[[FILE2:[0-9a-f]+]]] = "bar"
# CHECK-NEXT: dir_index: 2
# CHECK-NEXT: md5_checksum: ffeeddccbbaa99887766554433221100
# CHECK: .debug_line_str contents:
-# CHECK-NEXT: 0x[[DIR0]]: ""
+# CHECK-NEXT: 0x[[DIR0]]: "/tmp"
# CHECK-NEXT: 0x[[DIR1]]: "dir1"
# CHECK-NEXT: 0x[[DIR2]]: "dir2"
+# CHECK-NEXT: 0x[[FILE0]]: "{{.+}}"
# CHECK-NEXT: 0x[[FILE1]]: "foo"
# CHECK-NEXT: 0x[[FILE2]]: "bar"
diff --git a/llvm/test/MC/ELF/debug-source.s b/llvm/test/MC/ELF/debug-source.s
index 0b919e15ddb..1cf39c7a9d2 100644
--- a/llvm/test/MC/ELF/debug-source.s
+++ b/llvm/test/MC/ELF/debug-source.s
@@ -9,23 +9,29 @@
# CHECK: debug_line[0x00000000]
# CHECK: version: 5
-# CHECK: include_directories[ 0] = .debug_line_str[0x[[DIR0:[0-9a-f]+]]] = ""
+# CHECK: include_directories[ 0] = .debug_line_str[0x[[DIR0:[0-9a-f]+]]] = "{{.+}}"
# CHECK: include_directories[ 1] = .debug_line_str[0x[[DIR1:[0-9a-f]+]]] = "dir1"
# CHECK: include_directories[ 2] = .debug_line_str[0x[[DIR2:[0-9a-f]+]]] = "dir2"
# CHECK-NOT: include_directories
# CHECK: file_names[ 0]:
+# CHECK-NEXT: name: .debug_line_str[0x[[FILE0:[0-9a-f]+]]] = "{{.+}}"
+# CHECK-NEXT: dir_index: 0
+# CHECK-NEXT: source: .debug_line_str[0x[[FILE0SRC:[0-9a-f]+]]] = ""
+# CHECK: file_names[ 1]:
# CHECK-NEXT: name: .debug_line_str[0x[[FILE1:[0-9a-f]+]]] = "foo"
# CHECK-NEXT: dir_index: 1
# CHECK-NEXT: source: .debug_line_str[0x[[FILE1SRC:[0-9a-f]+]]] = "void foo() {}"
-# CHECK: file_names[ 1]:
+# CHECK: file_names[ 2]:
# CHECK-NEXT: name: .debug_line_str[0x[[FILE2:[0-9a-f]+]]] = "bar"
# CHECK-NEXT: dir_index: 2
# CHECK-NEXT: source: .debug_line_str[0x[[FILE2SRC:[0-9a-f]+]]] = "void bar()\n{\n}"
# CHECK: .debug_line_str contents:
-# CHECK-NEXT: 0x[[DIR0]]: ""
+# CHECK-NEXT: 0x[[DIR0]]: "{{.+}}"
# CHECK-NEXT: 0x[[DIR1]]: "dir1"
# CHECK-NEXT: 0x[[DIR2]]: "dir2"
+# CHECK-NEXT: 0x[[FILE0]]: "{{.+}}"
+# CHECK-NEXT: 0x[[FILE0SRC]]: ""
# CHECK-NEXT: 0x[[FILE1]]: "foo"
# CHECK-NEXT: 0x[[FILE1SRC]]: "void foo() {}"
# CHECK-NEXT: 0x[[FILE2]]: "bar"
diff --git a/llvm/test/MC/ELF/dwarf-file0.s b/llvm/test/MC/ELF/dwarf-file0.s
new file mode 100644
index 00000000000..ae87df2a3f0
--- /dev/null
+++ b/llvm/test/MC/ELF/dwarf-file0.s
@@ -0,0 +1,19 @@
+# RUN: llvm-mc -dwarf-version 4 %s -filetype=obj -o - | llvm-dwarfdump -debug-line - | FileCheck %s --check-prefixes=CHECK,CHECK-4
+# RUN: llvm-mc -dwarf-version 5 %s -filetype=obj -o - | llvm-dwarfdump -debug-line - | FileCheck %s --check-prefixes=CHECK,CHECK-5
+# Darwin is stuck on DWARF v2.
+# XFAIL: darwin
+ .file 0 "root.cpp"
+ .file 1 "header.h"
+ .file 2 "root.cpp"
+# CHECK-5: include_directories[ 0] = ""
+# CHECK-4-NOT: include_directories
+# CHECK-4-NOT: file_names[ 0]
+# CHECK-5: file_names[ 0]:
+# CHECK-5-NEXT: name: "root.cpp"
+# CHECK-5-NEXT: dir_index: 0
+# CHECK: file_names[ 1]:
+# CHECK-NEXT: name: "header.h"
+# CHECK-NEXT: dir_index: 0
+# CHECK: file_names[ 2]:
+# CHECK-NEXT: name: "root.cpp"
+# CHECK-NEXT: dir_index: 0
OpenPOWER on IntegriCloud