]> git.proxmox.com Git - rustc.git/blob - src/llvm/test/tools/llvm-readobj/codeview-linetables.test
Imported Upstream version 1.0.0+dfsg1
[rustc.git] / src / llvm / test / tools / llvm-readobj / codeview-linetables.test
1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2 ; The following two object files were generated using the following command:
3 ; D:\> cl /Z7 /c source.c
4 ; with the following contents of D:\source.c:
5 ; void z(void);
6 ;
7 ; void x(void) {
8 ; z();
9 ; }
10 ;
11 ; void y(void) {
12 ; z();
13 ; }
14 ;
15 ; void f(void) {
16 ; x();
17 ; y();
18 ; z();
19 ; }
20 ; using 32-/64-bit versions of CL v17.00.61030 and v18.00.21005.1 respectively.
21 RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifunction-linetables.obj.coff-2012-i368 \
22 RUN: | FileCheck %s -check-prefix MFUN32
23 RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifunction-linetables.obj.coff-2013-i368 \
24 RUN: | FileCheck %s -check-prefix MFUN32
25 RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifunction-linetables.obj.coff-2012-x86_64 \
26 RUN: | FileCheck %s -check-prefix MFUN64
27 RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifunction-linetables.obj.coff-2013-x86_64 \
28 RUN: | FileCheck %s -check-prefix MFUN64
29
30 MFUN32: CodeViewLineTables [
31 MFUN32-NEXT: Magic: 0x4
32 MFUN32-NEXT: Subsection [
33 MFUN32-NEXT: Type: 0xF1
34 MFUN32-NEXT: PayloadSize: 0x52
35 MFUN32: ]
36 MFUN32-NEXT: Subsection [
37 MFUN32-NEXT: Type: 0xF5
38 MFUN32-NEXT: PayloadSize: 0x24
39 MFUN32: ]
40 MFUN32-NEXT: Subsection [
41 MFUN32-NEXT: Type: 0xF1
42 MFUN32-NEXT: PayloadSize: 0x4B
43 MFUN32: ProcStart {
44 MFUN32-NEXT: DisplayName: x
45 MFUN32-NEXT: Section: _x
46 MFUN32-NEXT: CodeSize: 0xA
47 MFUN32-NEXT: }
48 MFUN32-NEXT: ProcEnd
49 MFUN32: ]
50 MFUN32-NEXT: Subsection [
51 MFUN32-NEXT: Type: 0xF2
52 MFUN32-NEXT: PayloadSize: 0x30
53 MFUN32: FunctionName: _x
54 MFUN32-NEXT: ]
55 MFUN32-NEXT: Subsection [
56 MFUN32-NEXT: Type: 0xF5
57 MFUN32-NEXT: PayloadSize: 0x24
58 MFUN32: ]
59 MFUN32-NEXT: Subsection [
60 MFUN32-NEXT: Type: 0xF1
61 MFUN32-NEXT: PayloadSize: 0x4B
62 MFUN32: ProcStart {
63 MFUN32-NEXT: DisplayName: y
64 MFUN32-NEXT: Section: _y
65 MFUN32-NEXT: CodeSize: 0xA
66 MFUN32-NEXT: }
67 MFUN32-NEXT: ProcEnd
68 MFUN32: ]
69 MFUN32-NEXT: Subsection [
70 MFUN32-NEXT: Type: 0xF2
71 MFUN32-NEXT: PayloadSize: 0x30
72 MFUN32: FunctionName: _y
73 MFUN32-NEXT: ]
74 MFUN32-NEXT: Subsection [
75 MFUN32-NEXT: Type: 0xF5
76 MFUN32-NEXT: PayloadSize: 0x24
77 MFUN32: ]
78 MFUN32-NEXT: Subsection [
79 MFUN32-NEXT: Type: 0xF1
80 MFUN32-NEXT: PayloadSize: 0x4B
81 MFUN32: ProcStart {
82 MFUN32-NEXT: DisplayName: f
83 MFUN32-NEXT: Section: _f
84 MFUN32-NEXT: CodeSize: 0x14
85 MFUN32-NEXT: }
86 MFUN32-NEXT: ProcEnd
87 MFUN32: ]
88 MFUN32-NEXT: Subsection [
89 MFUN32-NEXT: Type: 0xF2
90 MFUN32-NEXT: PayloadSize: 0x40
91 MFUN32: FunctionName: _f
92 MFUN32-NEXT: ]
93 MFUN32-NEXT: Subsection [
94 MFUN32-NEXT: Type: 0xF4
95 MFUN32-NEXT: PayloadSize: 0x18
96 MFUN32: ]
97 MFUN32-NEXT: Subsection [
98 MFUN32-NEXT: Type: 0xF3
99 MFUN32-NEXT: PayloadSize: 0x46
100 MFUN32: ]
101 MFUN32-NEXT: Subsection [
102 MFUN32-NEXT: Type: 0xF1
103 MFUN32-NEXT: PayloadSize: 0x8
104 MFUN32: ]
105 MFUN32-NEXT: FunctionLineTable [
106 MFUN32-NEXT: FunctionName: _x
107 MFUN32-NEXT: CodeSize: 0xA
108 MFUN32-NEXT: FilenameSegment [
109 MFUN32-NEXT: Filename: d:\source.c
110 MFUN32-NEXT: +0x0: 3
111 MFUN32-NEXT: +0x3: 4
112 MFUN32-NEXT: +0x8: 5
113 MFUN32-NEXT: ]
114 MFUN32-NEXT: ]
115 MFUN32-NEXT: FunctionLineTable [
116 MFUN32-NEXT: FunctionName: _y
117 MFUN32-NEXT: CodeSize: 0xA
118 MFUN32-NEXT: FilenameSegment [
119 MFUN32-NEXT: Filename: d:\source.c
120 MFUN32-NEXT: +0x0: 7
121 MFUN32-NEXT: +0x3: 8
122 MFUN32-NEXT: +0x8: 9
123 MFUN32-NEXT: ]
124 MFUN32-NEXT: ]
125 MFUN32-NEXT: FunctionLineTable [
126 MFUN32-NEXT: FunctionName: _f
127 MFUN32-NEXT: CodeSize: 0x14
128 MFUN32-NEXT: FilenameSegment [
129 MFUN32-NEXT: Filename: d:\source.c
130 MFUN32-NEXT: +0x0: 11
131 MFUN32-NEXT: +0x3: 12
132 MFUN32-NEXT: +0x8: 13
133 MFUN32-NEXT: +0xD: 14
134 MFUN32-NEXT: +0x12: 15
135 MFUN32-NEXT: ]
136 MFUN32-NEXT: ]
137 MFUN32-NEXT: ]
138
139 MFUN64: CodeViewLineTables [
140 MFUN64-NEXT: Magic: 0x4
141 MFUN64-NEXT: Subsection [
142 MFUN64-NEXT: Type: 0xF1
143 MFUN64-NEXT: PayloadSize: 0x52
144 MFUN64: ]
145 MFUN64-NEXT: Subsection [
146 MFUN64-NEXT: Type: 0xF1
147 MFUN64-NEXT: PayloadSize: 0x4B
148 MFUN64: ProcStart {
149 MFUN64-NEXT: DisplayName: x
150 MFUN64-NEXT: Section: x
151 MFUN64-NEXT: CodeSize: 0xE
152 MFUN64-NEXT: }
153 MFUN64-NEXT: ProcEnd
154 MFUN64: ]
155 MFUN64-NEXT: Subsection [
156 MFUN64-NEXT: Type: 0xF2
157 MFUN64-NEXT: PayloadSize: 0x30
158 MFUN64: FunctionName: x
159 MFUN64-NEXT: ]
160 MFUN64-NEXT: Subsection [
161 MFUN64-NEXT: Type: 0xF1
162 MFUN64-NEXT: PayloadSize: 0x4B
163 MFUN64: ProcStart {
164 MFUN64-NEXT: DisplayName: y
165 MFUN64-NEXT: Section: y
166 MFUN64-NEXT: CodeSize: 0xE
167 MFUN64-NEXT: }
168 MFUN64-NEXT: ProcEnd
169 MFUN64: ]
170 MFUN64-NEXT: Subsection [
171 MFUN64-NEXT: Type: 0xF2
172 MFUN64-NEXT: PayloadSize: 0x30
173 MFUN64: FunctionName: y
174 MFUN64-NEXT: ]
175 MFUN64-NEXT: Subsection [
176 MFUN64-NEXT: Type: 0xF1
177 MFUN64-NEXT: PayloadSize: 0x4B
178 MFUN64: ProcStart {
179 MFUN64-NEXT: DisplayName: f
180 MFUN64-NEXT: Section: f
181 MFUN64-NEXT: CodeSize: 0x18
182 MFUN64-NEXT: }
183 MFUN64-NEXT: ProcEnd
184 MFUN64: ]
185 MFUN64-NEXT: Subsection [
186 MFUN64-NEXT: Type: 0xF2
187 MFUN64-NEXT: PayloadSize: 0x40
188 MFUN64: FunctionName: f
189 MFUN64-NEXT: ]
190 MFUN64-NEXT: Subsection [
191 MFUN64-NEXT: Type: 0xF4
192 MFUN64-NEXT: PayloadSize: 0x18
193 MFUN64: ]
194 MFUN64-NEXT: Subsection [
195 MFUN64-NEXT: Type: 0xF3
196 MFUN64-NEXT: PayloadSize: 0xD
197 MFUN64: ]
198 MFUN64-NEXT: Subsection [
199 MFUN64-NEXT: Type: 0xF1
200 MFUN64-NEXT: PayloadSize: 0x8
201 MFUN64: ]
202 MFUN64-NEXT: FunctionLineTable [
203 MFUN64-NEXT: FunctionName: x
204 MFUN64-NEXT: CodeSize: 0xE
205 MFUN64-NEXT: FilenameSegment [
206 MFUN64-NEXT: Filename: d:\source.c
207 MFUN64-NEXT: +0x0: 3
208 MFUN64-NEXT: +0x4: 4
209 MFUN64-NEXT: +0x9: 5
210 MFUN64-NEXT: ]
211 MFUN64-NEXT: ]
212 MFUN64-NEXT: FunctionLineTable [
213 MFUN64-NEXT: FunctionName: y
214 MFUN64-NEXT: CodeSize: 0xE
215 MFUN64-NEXT: FilenameSegment [
216 MFUN64-NEXT: Filename: d:\source.c
217 MFUN64-NEXT: +0x0: 7
218 MFUN64-NEXT: +0x4: 8
219 MFUN64-NEXT: +0x9: 9
220 MFUN64-NEXT: ]
221 MFUN64-NEXT: ]
222 MFUN64-NEXT: FunctionLineTable [
223 MFUN64-NEXT: FunctionName: f
224 MFUN64-NEXT: CodeSize: 0x18
225 MFUN64-NEXT: FilenameSegment [
226 MFUN64-NEXT: Filename: d:\source.c
227 MFUN64-NEXT: +0x0: 11
228 MFUN64-NEXT: +0x4: 12
229 MFUN64-NEXT: +0x9: 13
230 MFUN64-NEXT: +0xE: 14
231 MFUN64-NEXT: +0x13: 15
232 MFUN64-NEXT: ]
233 MFUN64-NEXT: ]
234 MFUN64-NEXT: ]
235
236 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
237 ; The following two object files were generated using the following command:
238 ; D:\> cl /Z7 /c input.c
239 ; with the following contents of D:\input.c:
240 ; void g(void);
241 ;
242 ; void f(void) {
243 ; #line 1 "one.c"
244 ; g();
245 ; #line 2 "two.c"
246 ; g();
247 ; #line 7 "one.c"
248 ; g();
249 ; }
250 ; using 32-/64-bit versions of CL v17.00.61030 and v18.00.21005.1 respectively.
251 RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifile-linetables.obj.coff-2012-i368 \
252 RUN: | FileCheck %s -check-prefix MFILE32
253 RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifile-linetables.obj.coff-2013-i368 \
254 RUN: | FileCheck %s -check-prefix MFILE32
255 RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifile-linetables.obj.coff-2012-x86_64 \
256 RUN: | FileCheck %s -check-prefix MFILE64
257 RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifile-linetables.obj.coff-2013-x86_64 \
258 RUN: | FileCheck %s -check-prefix MFILE64
259
260 MFILE32: CodeViewLineTables [
261 MFILE32-NEXT: Magic: 0x4
262 MFILE32-NEXT: Subsection [
263 MFILE32-NEXT: Type: 0xF1
264 MFILE32-NEXT: PayloadSize: 0x51
265 MFILE32: ]
266 MFILE32-NEXT: Subsection [
267 MFILE32-NEXT: Type: 0xF5
268 MFILE32-NEXT: PayloadSize: 0x24
269 MFILE32: ]
270 MFILE32-NEXT: Subsection [
271 MFILE32-NEXT: Type: 0xF1
272 MFILE32-NEXT: PayloadSize: 0x4B
273 MFILE32: ProcStart {
274 MFILE32-NEXT: DisplayName: f
275 MFILE32-NEXT: Section: _f
276 MFILE32-NEXT: CodeSize: 0x14
277 MFILE32-NEXT: }
278 MFILE32-NEXT: ProcEnd
279 MFILE32: ]
280 MFILE32-NEXT: Subsection [
281 MFILE32-NEXT: Type: 0xF2
282 MFILE32-NEXT: PayloadSize: 0x64
283 MFILE32: FunctionName: _f
284 MFILE32-NEXT: ]
285 MFILE32-NEXT: Subsection [
286 MFILE32-NEXT: Type: 0xF4
287 MFILE32-NEXT: PayloadSize: 0x28
288 MFILE32: ]
289 MFILE32-NEXT: Subsection [
290 MFILE32-NEXT: Type: 0xF3
291 MFILE32-NEXT: PayloadSize: 0x57
292 MFILE32: ]
293 MFILE32-NEXT: Subsection [
294 MFILE32-NEXT: Type: 0xF1
295 MFILE32-NEXT: PayloadSize: 0x8
296 MFILE32: ]
297 MFILE32-NEXT: FunctionLineTable [
298 MFILE32-NEXT: FunctionName: _f
299 MFILE32-NEXT: CodeSize: 0x14
300 MFILE32-NEXT: FilenameSegment [
301 MFILE32-NEXT: Filename: d:\input.c
302 MFILE32-NEXT: +0x0: 3
303 MFILE32-NEXT: ]
304 MFILE32-NEXT: FilenameSegment [
305 MFILE32-NEXT: Filename: d:\one.c
306 MFILE32-NEXT: +0x3: 1
307 MFILE32-NEXT: ]
308 MFILE32-NEXT: FilenameSegment [
309 MFILE32-NEXT: Filename: d:\two.c
310 MFILE32-NEXT: +0x8: 2
311 MFILE32-NEXT: ]
312 MFILE32-NEXT: FilenameSegment [
313 MFILE32-NEXT: Filename: d:\one.c
314 MFILE32-NEXT: +0xD: 7
315 MFILE32-NEXT: +0x12: 8
316 MFILE32-NEXT: ]
317 MFILE32-NEXT: ]
318 MFILE32-NEXT: ]
319
320 MFILE64: CodeViewLineTables [
321 MFILE64-NEXT: Magic: 0x4
322 MFILE64-NEXT: Subsection [
323 MFILE64-NEXT: Type: 0xF1
324 MFILE64-NEXT: PayloadSize: 0x51
325 MFILE64: ]
326 MFILE64-NEXT: Subsection [
327 MFILE64-NEXT: Type: 0xF1
328 MFILE64-NEXT: PayloadSize: 0x4B
329 MFILE64: ProcStart {
330 MFILE64-NEXT: DisplayName: f
331 MFILE64-NEXT: Section: f
332 MFILE64-NEXT: CodeSize: 0x18
333 MFILE64-NEXT: }
334 MFILE64-NEXT: ProcEnd
335 MFILE64: ]
336 MFILE64-NEXT: Subsection [
337 MFILE64-NEXT: Type: 0xF2
338 MFILE64-NEXT: PayloadSize: 0x64
339 MFILE64: FunctionName: f
340 MFILE64-NEXT: ]
341 MFILE64-NEXT: Subsection [
342 MFILE64-NEXT: Type: 0xF4
343 MFILE64-NEXT: PayloadSize: 0x28
344 MFILE64: ]
345 MFILE64-NEXT: Subsection [
346 MFILE64-NEXT: Type: 0xF3
347 MFILE64-NEXT: PayloadSize: 0x1E
348 MFILE64: ]
349 MFILE64-NEXT: Subsection [
350 MFILE64-NEXT: Type: 0xF1
351 MFILE64-NEXT: PayloadSize: 0x8
352 MFILE64: ]
353 MFILE64-NEXT: FunctionLineTable [
354 MFILE64-NEXT: FunctionName: f
355 MFILE64-NEXT: CodeSize: 0x18
356 MFILE64-NEXT: FilenameSegment [
357 MFILE64-NEXT: Filename: d:\input.c
358 MFILE64-NEXT: +0x0: 3
359 MFILE64-NEXT: ]
360 MFILE64-NEXT: FilenameSegment [
361 MFILE64-NEXT: Filename: d:\one.c
362 MFILE64-NEXT: +0x4: 1
363 MFILE64-NEXT: ]
364 MFILE64-NEXT: FilenameSegment [
365 MFILE64-NEXT: Filename: d:\two.c
366 MFILE64-NEXT: +0x9: 2
367 MFILE64-NEXT: ]
368 MFILE64-NEXT: FilenameSegment [
369 MFILE64-NEXT: Filename: d:\one.c
370 MFILE64-NEXT: +0xE: 7
371 MFILE64-NEXT: +0x13: 8
372 MFILE64-NEXT: ]
373 MFILE64-NEXT: ]
374 MFILE64-NEXT: ]
375
376 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
377 ; The following object files were generated using the following command:
378 ; C:\src> cl /Z7 /Gy /c test.cc
379 ; with the following contents of C:\src\test.cc:
380 ; int f()
381 ; {
382 ; return 0;
383 ; }
384 ;
385 ; int g()
386 ; {
387 ; return 0;
388 ; }
389 ; using 32-version of CL v17.00.61030 and v18.00.21005.1 respectively.
390 RUN: llvm-readobj -s -codeview-linetables %p/Inputs/comdat-function-linetables.obj.coff-2012-i386 \
391 RUN: | FileCheck %s -check-prefix MCOMDAT
392 RUN: llvm-readobj -s -codeview-linetables %p/Inputs/comdat-function-linetables.obj.coff-2013-i386 \
393 RUN: | FileCheck %s -check-prefix MCOMDAT
394
395 MCOMDAT: ProcStart {
396 MCOMDAT-NEXT: DisplayName: f
397 MCOMDAT-NEXT: Section: ?f@@YAHXZ
398 MCOMDAT-NEXT: CodeSize: 0x7
399 MCOMDAT-NEXT: }
400 MCOMDAT: FunctionLineTable [
401 MCOMDAT-NEXT: FunctionName: ?f@@YAHXZ
402 MCOMDAT-NEXT: CodeSize: 0x7
403 MCOMDAT-NEXT: FilenameSegment [
404 MCOMDAT-NEXT: Filename: c:\src\test.cc
405 MCOMDAT-NEXT: +0x0: 2
406 MCOMDAT-NEXT: +0x3: 3
407 MCOMDAT-NEXT: +0x5: 4
408 MCOMDAT-NEXT: ]
409 MCOMDAT-NEXT: ]
410 MCOMDAT: ProcStart {
411 MCOMDAT-NEXT: DisplayName: g
412 MCOMDAT-NEXT: Section: ?g@@YAHXZ
413 MCOMDAT-NEXT: CodeSize: 0x7
414 MCOMDAT-NEXT: }
415 MCOMDAT: FunctionLineTable [
416 MCOMDAT-NEXT: FunctionName: ?g@@YAHXZ
417 MCOMDAT-NEXT: CodeSize: 0x7
418 MCOMDAT-NEXT: FilenameSegment [
419 MCOMDAT-NEXT: Filename: c:\src\test.cc
420 MCOMDAT-NEXT: +0x0: 7
421 MCOMDAT-NEXT: +0x3: 8
422 MCOMDAT-NEXT: +0x5: 9
423 MCOMDAT-NEXT: ]
424 MCOMDAT-NEXT: ]