DebugInfo: Do not rely on the compilation dir (index 0) for files in line tables...
[oota-llvm.git] / test / DebugInfo / lto-comp-dir.ll
1 ; RUN: %llc_dwarf < %s -filetype=obj | llvm-dwarfdump -debug-dump=line - | FileCheck %s
2 ; RUN: %llc_dwarf < %s -filetype=asm | FileCheck --check-prefix=ASM %s
3
4 ; CHECK: .debug_line contents:
5 ; CHECK-NEXT: Line table prologue:
6 ; CHECK-NOT: include_directories
7 ; CHECK: file_names[   1]   0 {{.*}} a.cpp
8 ; CHECK-NOT: file_names
9
10 ; CHECK: Line table prologue:
11 ; CHECK-NOT: include_directories
12 ; CHECK: file_names[   1]   0 {{.*}} b.cpp
13 ; CHECK-NOT: file_names
14
15 ; ASM: .file   1 "/tmp/dbginfo/a/a.cpp"
16 ; ASM: .file   2 "/tmp/dbginfo/b/b.cpp"
17
18 ; Generated from the following source compiled to bitcode from within their
19 ; respective directories (with debug info) and linked together with llvm-link
20
21 ; a/a.cpp
22 ; void func() {
23 ; }
24
25 ; b/b.cpp
26 ; void func();
27 ; int main() {
28 ;   func();
29 ; }
30
31 ; Function Attrs: nounwind uwtable
32 define void @_Z4funcv() #0 {
33 entry:
34   ret void, !dbg !19
35 }
36
37 ; Function Attrs: uwtable
38 define i32 @main() #1 {
39 entry:
40   call void @_Z4funcv(), !dbg !20
41   ret i32 0, !dbg !21
42 }
43
44 attributes #0 = { nounwind uwtable "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
45 attributes #1 = { uwtable "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
46
47 !llvm.dbg.cu = !{!0, !8}
48 !llvm.module.flags = !{!16, !17}
49 !llvm.ident = !{!18, !18}
50
51 !0 = metadata !{i32 786449, metadata !1, i32 4, metadata !"clang version 3.5.0 ", i1 false, metadata !"", i32 0, metadata !2, metadata !2, metadata !3, metadata !2, metadata !2, metadata !"", i32 1}
52 !1 = metadata !{metadata !"a.cpp", metadata !"/tmp/dbginfo/a"}
53 !2 = metadata !{}
54 !3 = metadata !{metadata !4}
55 !4 = metadata !{i32 786478, metadata !1, metadata !5, metadata !"func", metadata !"func", metadata !"_Z4funcv", i32 1, metadata !6, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 false, void ()* @_Z4funcv, null, null, metadata !2, i32 1} ; [ DW_TAG_subprogram ] [line 1] [def] [func]
56 !5 = metadata !{i32 786473, metadata !1}          ; [ DW_TAG_file_type ] [/tmp/dbginfo/a/a.cpp]
57 !6 = metadata !{i32 786453, i32 0, null, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !7, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
58 !7 = metadata !{null}
59 !8 = metadata !{i32 786449, metadata !9, i32 4, metadata !"clang version 3.5.0 ", i1 false, metadata !"", i32 0, metadata !2, metadata !2, metadata !10, metadata !2, metadata !2, metadata !"", i32 1}
60 !9 = metadata !{metadata !"b.cpp", metadata !"/tmp/dbginfo/b"}
61 !10 = metadata !{metadata !11}
62 !11 = metadata !{i32 786478, metadata !9, metadata !12, metadata !"main", metadata !"main", metadata !"", i32 2, metadata !13, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 false, i32 ()* @main, null, null, metadata !2, i32 2} ; [ DW_TAG_subprogram ] [line 2] [def] [main]
63 !12 = metadata !{i32 786473, metadata !9}         ; [ DW_TAG_file_type ] [/tmp/dbginfo/b/b.cpp]
64 !13 = metadata !{i32 786453, i32 0, null, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !14, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
65 !14 = metadata !{metadata !15}
66 !15 = metadata !{i32 786468, null, null, metadata !"int", i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ] [int] [line 0, size 32, align 32, offset 0, enc DW_ATE_signed]
67 !16 = metadata !{i32 2, metadata !"Dwarf Version", i32 4}
68 !17 = metadata !{i32 1, metadata !"Debug Info Version", i32 1}
69 !18 = metadata !{metadata !"clang version 3.5.0 "}
70 !19 = metadata !{i32 2, i32 0, metadata !4, null}
71 !20 = metadata !{i32 3, i32 0, metadata !11, null}
72 !21 = metadata !{i32 4, i32 0, metadata !11, null}
73