[dsymutil] Discard useless location attributes.
[oota-llvm.git] / test / tools / dsymutil / basic-linking.test
1 RUN: llvm-dsymutil -no-output -verbose -oso-prepend-path=%p %p/Inputs/basic.macho.x86_64 | FileCheck %s
2 RUN: llvm-dsymutil -no-output -verbose -oso-prepend-path=%p %p/Inputs/basic-lto.macho.x86_64 | FileCheck %s --check-prefix=CHECK-LTO
3 RUN: llvm-dsymutil -no-output -verbose -oso-prepend-path=%p %p/Inputs/basic-archive.macho.x86_64 | FileCheck %s --check-prefix=CHECK-ARCHIVE
4 RUN: llvm-dsymutil -no-output -verbose -oso-prepend-path=%p %p/Inputs/basic.macho.x86_64 %p/Inputs/basic-lto.macho.x86_64 %p/Inputs/basic-archive.macho.x86_64 | FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-LTO --check-prefix=CHECK-ARCHIVE 
5
6 This test check the basic Dwarf linking process through the debug dumps.
7
8 ================================= Simple link ================================
9 CHECK: DEBUG MAP OBJECT: {{.*}}basic1.macho.x86_64.o
10 CHECK: Input compilation unit:
11 CHECK-NEXT: TAG_compile_unit
12 CHECK-NOT: TAG
13 CHECK: AT_name {{.*}}basic1.c
14 CHECK-NOT: Found valid debug map entry
15 CHECK: Found valid debug map entry: _main       0000000000000000 => 0000000100000ea0
16 CHECK-NEXT: DW_TAG_subprogram
17 CHECK-NEXT:   DW_AT_name{{.*}}"main"
18
19 CHECK: DEBUG MAP OBJECT: {{.*}}basic2.macho.x86_64.o
20 CHECK: Input compilation unit:
21 CHECK-NEXT: TAG_compile_unit
22 CHECK-NOT: TAG
23 CHECK: AT_name {{.*}}basic2.c
24 CHECK-NOT: Found valid debug map entry
25 CHECK: Found valid debug map entry: _private_int        0000000000000560 => 0000000100001008
26 CHECK-NEXT: DW_TAG_variable
27 CHECK-NEXT:   DW_AT_name {{.*}}"private_int"
28 CHECK-NOT: Found valid debug map entry
29 CHECK: Found valid debug map entry: _baz        0000000000000310 => 0000000100001000
30 CHECK-NEXT: DW_TAG_variable
31 CHECK-NEXT:   DW_AT_name {{.*}}"baz"
32 CHECK-NOT: Found valid debug map entry
33 CHECK: Found valid debug map entry: _foo        0000000000000020 => 0000000100000ed0
34 CHECK-NEXT: DW_TAG_subprogram
35 CHECK-NEXT:   DW_AT_name {{.*}}"foo"
36 CHECK-NOT: Found valid debug map entry
37 CHECK: Found valid debug map entry: _inc        0000000000000070 => 0000000100000f20
38 CHECK-NEXT: DW_TAG_subprogram
39 CHECK-NEXT:   DW_AT_name {{.*}}"inc"
40
41 CHECK: DEBUG MAP OBJECT: {{.*}}basic3.macho.x86_64.o
42 CHECK: Input compilation unit:
43 CHECK-NEXT: TAG_compile_unit
44 CHECK-NOT: TAG
45 CHECK: AT_name {{.*}}basic3.c
46 CHECK-NOT: Found valid debug map entry
47 CHECK: Found valid debug map entry: _val        0000000000000004 => 0000000100001004
48 CHECK-NEXT: DW_TAG_variable
49 CHECK-NEXT:   DW_AT_name {{.*}}"val"
50 CHECK-NOT: Found valid debug map entry
51 CHECK: Found valid debug map entry: _bar        0000000000000020 => 0000000100000f40
52 CHECK-NEXT: DW_TAG_subprogram
53 CHECK-NEXT:   DW_AT_name {{.*}}"bar"
54 CHECK-NOT: Found valid debug map entry
55 CHECK: Found valid debug map entry: _inc        0000000000000070 => 0000000100000f90
56 CHECK-NEXT: DW_TAG_subprogram
57 CHECK-NEXT:   DW_AT_name {{.*}}"inc")
58
59
60 ================================= LTO link ================================
61 CHECK-LTO: DEBUG MAP OBJECT: {{.*}}basic-lto.macho.x86_64.o
62 CHECK-LTO: Input compilation unit:
63 CHECK-LTO-NEXT: TAG_compile_unit
64 CHECK-LTO-NOT: TAG
65 CHECK-LTO: AT_name {{.*}}basic1.c
66 CHECK-LTO: Input compilation unit:
67 CHECK-LTO-NEXT: TAG_compile_unit
68 CHECK-LTO-NOT: TAG
69 CHECK-LTO: AT_name {{.*}}basic2.c
70 CHECK-LTO: Input compilation unit:
71 CHECK-LTO-NEXT: TAG_compile_unit
72 CHECK-LTO-NOT: TAG
73 CHECK-LTO: AT_name {{.*}}basic3.c
74
75 CHECK-LTO-NOT: Found valid debug map entry
76 CHECK-LTO: Found valid debug map entry: _main   0000000000000000 => 0000000100000f40
77 CHECK-LTO-NEXT: DW_TAG_subprogram
78 CHECK-LTO-NEXT:   DW_AT_name {{.*}}"main"
79 CHECK-LTO-NOT: Found valid debug map entry
80 CHECK-LTO: Found valid debug map entry: _private_int    00000000000008e8 => 0000000100001008
81 CHECK-LTO-NEXT: DW_TAG_variable
82 CHECK-LTO-NEXT:   DW_AT_name {{.*}}"private_int"
83 CHECK-LTO-NOT: Found valid debug map entry
84 CHECK-LTO: Found valid debug map entry: _baz    0000000000000658 => 0000000100001000
85 CHECK-LTO-NEXT: DW_TAG_variable
86 CHECK-LTO-NEXT:   DW_AT_name {{.*}} "baz"
87 CHECK-LTO-NOT: Found valid debug map entry
88 CHECK-LTO: Found valid debug map entry: _foo    0000000000000010 => 0000000100000f50
89 CHECK-LTO-NEXT: DW_TAG_subprogram
90 CHECK-LTO-NEXT:   DW_AT_name {{.*}}"foo"
91 CHECK-LTO-NOT: Found valid debug map entry
92 CHECK-LTO: Found valid debug map entry: _val    00000000000008ec => 0000000100001004
93 CHECK-LTO-NEXT: DW_TAG_variable
94 CHECK-LTO-NEXT:   DW_AT_name {{.*}}"val"
95 CHECK-LTO-NOT: Found valid debug map entry
96 CHECK-LTO: Found valid debug map entry: _bar    0000000000000050 => 0000000100000f90
97 CHECK-LTO-NEXT: DW_TAG_subprogram
98 CHECK-LTO-NEXT:   DW_AT_name {{.*}}"bar"
99
100
101 ================================= Archive link ================================
102 CHECK-ARCHIVE: DEBUG MAP OBJECT: {{.*}}basic1.macho.x86_64.o
103 CHECK-ARCHIVE: Input compilation unit:
104 CHECK-ARCHIVE-NEXT: TAG_compile_unit
105 CHECK-ARCHIVE-NOT: TAG
106 CHECK-ARCHIVE: AT_name {{.*}}basic1.c
107 CHECK-ARCHIVE-NOT: Found valid debug map entry
108 CHECK-ARCHIVE: Found valid debug map entry: _main       0000000000000000 => 0000000100000ea0
109 CHECK-ARCHIVE-NEXT: DW_TAG_subprogram
110 CHECK-ARCHIVE-NEXT:   DW_AT_name{{.*}}"main"
111
112 CHECK-ARCHIVE: DEBUG MAP OBJECT: {{.*}}libbasic.a(basic2.macho.x86_64.o)
113 CHECK-ARCHIVE: Input compilation unit:
114 CHECK-ARCHIVE-NEXT: TAG_compile_unit
115 CHECK-ARCHIVE-NOT: TAG
116 CHECK-ARCHIVE: AT_name {{.*}}basic2.c
117 CHECK-ARCHIVE-NOT: Found valid debug map entry
118 CHECK-ARCHIVE: Found valid debug map entry: _private_int        0000000000000560 => 0000000100001004
119 CHECK-ARCHIVE-NEXT: DW_TAG_variable
120 CHECK-ARCHIVE-NEXT:   DW_AT_name {{.*}}"private_int"
121 CHECK-ARCHIVE-NOT: Found valid debug map entry
122 CHECK-ARCHIVE: Found valid debug map entry: _baz        0000000000000310 => 0000000100001000
123 CHECK-ARCHIVE-NEXT: DW_TAG_variable
124 CHECK-ARCHIVE-NEXT:   DW_AT_name {{.*}}"baz"
125 CHECK-ARCHIVE-NOT: Found valid debug map entry
126 CHECK-ARCHIVE: Found valid debug map entry: _foo        0000000000000020 => 0000000100000ed0
127 CHECK-ARCHIVE-NEXT: DW_TAG_subprogram
128 CHECK-ARCHIVE-NEXT:   DW_AT_name {{.*}}"foo"
129 CHECK-ARCHIVE-NOT: Found valid debug map entry
130 CHECK-ARCHIVE: Found valid debug map entry: _inc        0000000000000070 => 0000000100000f20
131 CHECK-ARCHIVE-NEXT: DW_TAG_subprogram
132 CHECK-ARCHIVE-NEXT:   DW_AT_name {{.*}}"inc"
133
134 CHECK-ARCHIVE: DEBUG MAP OBJECT: {{.*}}libbasic.a(basic3.macho.x86_64.o)
135 CHECK-ARCHIVE: Input compilation unit:
136 CHECK-ARCHIVE-NEXT: TAG_compile_unit
137 CHECK-ARCHIVE-NOT: TAG
138 CHECK-ARCHIVE: AT_name {{.*}}basic3.c
139 CHECK-ARCHIVE-NOT: Found valid debug map entry
140 CHECK-ARCHIVE: Found valid debug map entry: _val        0000000000000004 => 0000000100001008
141 CHECK-ARCHIVE-NEXT: DW_TAG_variable
142 CHECK-ARCHIVE-NEXT:   DW_AT_name {{.*}}"val"
143 CHECK-ARCHIVE-NOT: Found valid debug map entry
144 CHECK-ARCHIVE: Found valid debug map entry: _bar        0000000000000020 => 0000000100000f40
145 CHECK-ARCHIVE-NEXT: DW_TAG_subprogram
146 CHECK-ARCHIVE-NEXT:   DW_AT_name {{.*}}"bar"
147 CHECK-ARCHIVE-NOT: Found valid debug map entry
148 CHECK-ARCHIVE: Found valid debug map entry: _inc        0000000000000070 => 0000000100000f90
149 CHECK-ARCHIVE-NEXT: DW_TAG_subprogram
150 CHECK-ARCHIVE-NEXT:   DW_AT_name {{.*}}"inc")