blob: 7b9e743d84900bf4097b625c42c6d906c95d331d [file] [log] [blame]
Timur Iskhodzhanov11603332014-10-06 16:59:44 +00001;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Timur Iskhodzhanovd1711532014-09-23 13:49:51 +00002; 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; }
Timur Iskhodzhanov1ee5ac82014-10-13 17:03:13 +000020; using 32-/64-bit versions of CL v17.00.61030 and v18.00.21005.1 respectively.
21RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifunction-linetables.obj.coff-2012-i368 \
22RUN: | FileCheck %s -check-prefix MFUN32
Timur Iskhodzhanovd1711532014-09-23 13:49:51 +000023RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifunction-linetables.obj.coff-2013-i368 \
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +000024RUN: | FileCheck %s -check-prefix MFUN32
Timur Iskhodzhanov1ee5ac82014-10-13 17:03:13 +000025RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifunction-linetables.obj.coff-2012-x86_64 \
26RUN: | FileCheck %s -check-prefix MFUN64
Timur Iskhodzhanovd1711532014-09-23 13:49:51 +000027RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifunction-linetables.obj.coff-2013-x86_64 \
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +000028RUN: | FileCheck %s -check-prefix MFUN64
Timur Iskhodzhanovd1711532014-09-23 13:49:51 +000029
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +000030MFUN32: CodeViewLineTables [
31MFUN32-NEXT: Magic: 0x4
32MFUN32-NEXT: Subsection [
33MFUN32-NEXT: Type: 0xF1
34MFUN32-NEXT: PayloadSize: 0x52
35MFUN32: ]
36MFUN32-NEXT: Subsection [
37MFUN32-NEXT: Type: 0xF5
38MFUN32-NEXT: PayloadSize: 0x24
39MFUN32: ]
40MFUN32-NEXT: Subsection [
41MFUN32-NEXT: Type: 0xF1
42MFUN32-NEXT: PayloadSize: 0x4B
Timur Iskhodzhanov56af52f2014-10-23 22:25:31 +000043MFUN32: ProcStart {
44MFUN32-NEXT: FunctionName: x
45MFUN32-NEXT: Section: _x
46MFUN32-NEXT: CodeSize: 0xA
47MFUN32-NEXT: }
48MFUN32-NEXT: ProcEnd
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +000049MFUN32: ]
50MFUN32-NEXT: Subsection [
51MFUN32-NEXT: Type: 0xF2
52MFUN32-NEXT: PayloadSize: 0x30
53MFUN32: FunctionName: _x
54MFUN32-NEXT: ]
55MFUN32-NEXT: Subsection [
56MFUN32-NEXT: Type: 0xF5
57MFUN32-NEXT: PayloadSize: 0x24
58MFUN32: ]
59MFUN32-NEXT: Subsection [
60MFUN32-NEXT: Type: 0xF1
61MFUN32-NEXT: PayloadSize: 0x4B
Timur Iskhodzhanov56af52f2014-10-23 22:25:31 +000062MFUN32: ProcStart {
63MFUN32-NEXT: FunctionName: y
64MFUN32-NEXT: Section: _y
65MFUN32-NEXT: CodeSize: 0xA
66MFUN32-NEXT: }
67MFUN32-NEXT: ProcEnd
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +000068MFUN32: ]
69MFUN32-NEXT: Subsection [
70MFUN32-NEXT: Type: 0xF2
71MFUN32-NEXT: PayloadSize: 0x30
72MFUN32: FunctionName: _y
73MFUN32-NEXT: ]
74MFUN32-NEXT: Subsection [
75MFUN32-NEXT: Type: 0xF5
76MFUN32-NEXT: PayloadSize: 0x24
77MFUN32: ]
78MFUN32-NEXT: Subsection [
79MFUN32-NEXT: Type: 0xF1
80MFUN32-NEXT: PayloadSize: 0x4B
Timur Iskhodzhanov56af52f2014-10-23 22:25:31 +000081MFUN32: ProcStart {
82MFUN32-NEXT: FunctionName: f
83MFUN32-NEXT: Section: _f
84MFUN32-NEXT: CodeSize: 0x14
85MFUN32-NEXT: }
86MFUN32-NEXT: ProcEnd
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +000087MFUN32: ]
88MFUN32-NEXT: Subsection [
89MFUN32-NEXT: Type: 0xF2
90MFUN32-NEXT: PayloadSize: 0x40
91MFUN32: FunctionName: _f
92MFUN32-NEXT: ]
93MFUN32-NEXT: Subsection [
94MFUN32-NEXT: Type: 0xF4
95MFUN32-NEXT: PayloadSize: 0x18
96MFUN32: ]
97MFUN32-NEXT: Subsection [
98MFUN32-NEXT: Type: 0xF3
99MFUN32-NEXT: PayloadSize: 0x46
100MFUN32: ]
101MFUN32-NEXT: Subsection [
102MFUN32-NEXT: Type: 0xF1
103MFUN32-NEXT: PayloadSize: 0x8
104MFUN32: ]
105MFUN32-NEXT: FunctionLineTable [
106MFUN32-NEXT: FunctionName: _x
107MFUN32-NEXT: CodeSize: 0xA
108MFUN32-NEXT: FilenameSegment [
109MFUN32-NEXT: Filename: d:\source.c
110MFUN32-NEXT: +0x0: 3
111MFUN32-NEXT: +0x3: 4
112MFUN32-NEXT: +0x8: 5
113MFUN32-NEXT: ]
114MFUN32-NEXT: ]
115MFUN32-NEXT: FunctionLineTable [
116MFUN32-NEXT: FunctionName: _y
117MFUN32-NEXT: CodeSize: 0xA
118MFUN32-NEXT: FilenameSegment [
119MFUN32-NEXT: Filename: d:\source.c
120MFUN32-NEXT: +0x0: 7
121MFUN32-NEXT: +0x3: 8
122MFUN32-NEXT: +0x8: 9
123MFUN32-NEXT: ]
124MFUN32-NEXT: ]
125MFUN32-NEXT: FunctionLineTable [
126MFUN32-NEXT: FunctionName: _f
127MFUN32-NEXT: CodeSize: 0x14
128MFUN32-NEXT: FilenameSegment [
129MFUN32-NEXT: Filename: d:\source.c
130MFUN32-NEXT: +0x0: 11
131MFUN32-NEXT: +0x3: 12
132MFUN32-NEXT: +0x8: 13
133MFUN32-NEXT: +0xD: 14
134MFUN32-NEXT: +0x12: 15
135MFUN32-NEXT: ]
136MFUN32-NEXT: ]
137MFUN32-NEXT: ]
138
139MFUN64: CodeViewLineTables [
140MFUN64-NEXT: Magic: 0x4
141MFUN64-NEXT: Subsection [
142MFUN64-NEXT: Type: 0xF1
143MFUN64-NEXT: PayloadSize: 0x52
144MFUN64: ]
145MFUN64-NEXT: Subsection [
146MFUN64-NEXT: Type: 0xF1
147MFUN64-NEXT: PayloadSize: 0x4B
Timur Iskhodzhanov56af52f2014-10-23 22:25:31 +0000148MFUN64: ProcStart {
149MFUN64-NEXT: FunctionName: x
150MFUN64-NEXT: Section: x
151MFUN64-NEXT: CodeSize: 0xE
152MFUN64-NEXT: }
153MFUN64-NEXT: ProcEnd
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000154MFUN64: ]
155MFUN64-NEXT: Subsection [
156MFUN64-NEXT: Type: 0xF2
157MFUN64-NEXT: PayloadSize: 0x30
158MFUN64: FunctionName: x
159MFUN64-NEXT: ]
160MFUN64-NEXT: Subsection [
161MFUN64-NEXT: Type: 0xF1
162MFUN64-NEXT: PayloadSize: 0x4B
Timur Iskhodzhanov56af52f2014-10-23 22:25:31 +0000163MFUN64: ProcStart {
164MFUN64-NEXT: FunctionName: y
165MFUN64-NEXT: Section: y
166MFUN64-NEXT: CodeSize: 0xE
167MFUN64-NEXT: }
168MFUN64-NEXT: ProcEnd
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000169MFUN64: ]
170MFUN64-NEXT: Subsection [
171MFUN64-NEXT: Type: 0xF2
172MFUN64-NEXT: PayloadSize: 0x30
173MFUN64: FunctionName: y
174MFUN64-NEXT: ]
175MFUN64-NEXT: Subsection [
176MFUN64-NEXT: Type: 0xF1
177MFUN64-NEXT: PayloadSize: 0x4B
Timur Iskhodzhanov56af52f2014-10-23 22:25:31 +0000178MFUN64: ProcStart {
179MFUN64-NEXT: FunctionName: f
180MFUN64-NEXT: Section: f
181MFUN64-NEXT: CodeSize: 0x18
182MFUN64-NEXT: }
183MFUN64-NEXT: ProcEnd
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000184MFUN64: ]
185MFUN64-NEXT: Subsection [
186MFUN64-NEXT: Type: 0xF2
187MFUN64-NEXT: PayloadSize: 0x40
188MFUN64: FunctionName: f
189MFUN64-NEXT: ]
190MFUN64-NEXT: Subsection [
191MFUN64-NEXT: Type: 0xF4
192MFUN64-NEXT: PayloadSize: 0x18
193MFUN64: ]
194MFUN64-NEXT: Subsection [
195MFUN64-NEXT: Type: 0xF3
196MFUN64-NEXT: PayloadSize: 0xD
197MFUN64: ]
198MFUN64-NEXT: Subsection [
199MFUN64-NEXT: Type: 0xF1
200MFUN64-NEXT: PayloadSize: 0x8
201MFUN64: ]
202MFUN64-NEXT: FunctionLineTable [
203MFUN64-NEXT: FunctionName: x
204MFUN64-NEXT: CodeSize: 0xE
205MFUN64-NEXT: FilenameSegment [
206MFUN64-NEXT: Filename: d:\source.c
207MFUN64-NEXT: +0x0: 3
208MFUN64-NEXT: +0x4: 4
209MFUN64-NEXT: +0x9: 5
210MFUN64-NEXT: ]
211MFUN64-NEXT: ]
212MFUN64-NEXT: FunctionLineTable [
213MFUN64-NEXT: FunctionName: y
214MFUN64-NEXT: CodeSize: 0xE
215MFUN64-NEXT: FilenameSegment [
216MFUN64-NEXT: Filename: d:\source.c
217MFUN64-NEXT: +0x0: 7
218MFUN64-NEXT: +0x4: 8
219MFUN64-NEXT: +0x9: 9
220MFUN64-NEXT: ]
221MFUN64-NEXT: ]
222MFUN64-NEXT: FunctionLineTable [
223MFUN64-NEXT: FunctionName: f
224MFUN64-NEXT: CodeSize: 0x18
225MFUN64-NEXT: FilenameSegment [
226MFUN64-NEXT: Filename: d:\source.c
227MFUN64-NEXT: +0x0: 11
228MFUN64-NEXT: +0x4: 12
229MFUN64-NEXT: +0x9: 13
230MFUN64-NEXT: +0xE: 14
231MFUN64-NEXT: +0x13: 15
232MFUN64-NEXT: ]
233MFUN64-NEXT: ]
234MFUN64-NEXT: ]
235
Timur Iskhodzhanov11603332014-10-06 16:59:44 +0000236;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
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; }
Timur Iskhodzhanov1ee5ac82014-10-13 17:03:13 +0000250; using 32-/64-bit versions of CL v17.00.61030 and v18.00.21005.1 respectively.
251RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifile-linetables.obj.coff-2012-i368 \
252RUN: | FileCheck %s -check-prefix MFILE32
Timur Iskhodzhanov11603332014-10-06 16:59:44 +0000253RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifile-linetables.obj.coff-2013-i368 \
254RUN: | FileCheck %s -check-prefix MFILE32
Timur Iskhodzhanov1ee5ac82014-10-13 17:03:13 +0000255RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifile-linetables.obj.coff-2012-x86_64 \
256RUN: | FileCheck %s -check-prefix MFILE64
Timur Iskhodzhanov11603332014-10-06 16:59:44 +0000257RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifile-linetables.obj.coff-2013-x86_64 \
258RUN: | FileCheck %s -check-prefix MFILE64
259
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000260MFILE32: CodeViewLineTables [
261MFILE32-NEXT: Magic: 0x4
262MFILE32-NEXT: Subsection [
263MFILE32-NEXT: Type: 0xF1
264MFILE32-NEXT: PayloadSize: 0x51
265MFILE32: ]
266MFILE32-NEXT: Subsection [
267MFILE32-NEXT: Type: 0xF5
268MFILE32-NEXT: PayloadSize: 0x24
269MFILE32: ]
270MFILE32-NEXT: Subsection [
271MFILE32-NEXT: Type: 0xF1
272MFILE32-NEXT: PayloadSize: 0x4B
Timur Iskhodzhanov56af52f2014-10-23 22:25:31 +0000273MFILE32: ProcStart {
274MFILE32-NEXT: FunctionName: f
275MFILE32-NEXT: Section: _f
276MFILE32-NEXT: CodeSize: 0x14
277MFILE32-NEXT: }
278MFILE32-NEXT: ProcEnd
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000279MFILE32: ]
280MFILE32-NEXT: Subsection [
281MFILE32-NEXT: Type: 0xF2
282MFILE32-NEXT: PayloadSize: 0x64
283MFILE32: FunctionName: _f
284MFILE32-NEXT: ]
285MFILE32-NEXT: Subsection [
286MFILE32-NEXT: Type: 0xF4
287MFILE32-NEXT: PayloadSize: 0x28
288MFILE32: ]
289MFILE32-NEXT: Subsection [
290MFILE32-NEXT: Type: 0xF3
291MFILE32-NEXT: PayloadSize: 0x57
292MFILE32: ]
293MFILE32-NEXT: Subsection [
294MFILE32-NEXT: Type: 0xF1
295MFILE32-NEXT: PayloadSize: 0x8
296MFILE32: ]
297MFILE32-NEXT: FunctionLineTable [
298MFILE32-NEXT: FunctionName: _f
299MFILE32-NEXT: CodeSize: 0x14
300MFILE32-NEXT: FilenameSegment [
301MFILE32-NEXT: Filename: d:\input.c
302MFILE32-NEXT: +0x0: 3
303MFILE32-NEXT: ]
304MFILE32-NEXT: FilenameSegment [
305MFILE32-NEXT: Filename: d:\one.c
306MFILE32-NEXT: +0x3: 1
307MFILE32-NEXT: ]
308MFILE32-NEXT: FilenameSegment [
309MFILE32-NEXT: Filename: d:\two.c
310MFILE32-NEXT: +0x8: 2
311MFILE32-NEXT: ]
312MFILE32-NEXT: FilenameSegment [
313MFILE32-NEXT: Filename: d:\one.c
314MFILE32-NEXT: +0xD: 7
315MFILE32-NEXT: +0x12: 8
316MFILE32-NEXT: ]
317MFILE32-NEXT: ]
318MFILE32-NEXT: ]
319
320MFILE64: CodeViewLineTables [
321MFILE64-NEXT: Magic: 0x4
322MFILE64-NEXT: Subsection [
323MFILE64-NEXT: Type: 0xF1
324MFILE64-NEXT: PayloadSize: 0x51
325MFILE64: ]
326MFILE64-NEXT: Subsection [
327MFILE64-NEXT: Type: 0xF1
328MFILE64-NEXT: PayloadSize: 0x4B
Timur Iskhodzhanov56af52f2014-10-23 22:25:31 +0000329MFILE64: ProcStart {
330MFILE64-NEXT: FunctionName: f
331MFILE64-NEXT: Section: f
332MFILE64-NEXT: CodeSize: 0x18
333MFILE64-NEXT: }
334MFILE64-NEXT: ProcEnd
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000335MFILE64: ]
336MFILE64-NEXT: Subsection [
337MFILE64-NEXT: Type: 0xF2
338MFILE64-NEXT: PayloadSize: 0x64
339MFILE64: FunctionName: f
340MFILE64-NEXT: ]
341MFILE64-NEXT: Subsection [
342MFILE64-NEXT: Type: 0xF4
343MFILE64-NEXT: PayloadSize: 0x28
344MFILE64: ]
345MFILE64-NEXT: Subsection [
346MFILE64-NEXT: Type: 0xF3
347MFILE64-NEXT: PayloadSize: 0x1E
348MFILE64: ]
349MFILE64-NEXT: Subsection [
350MFILE64-NEXT: Type: 0xF1
351MFILE64-NEXT: PayloadSize: 0x8
352MFILE64: ]
353MFILE64-NEXT: FunctionLineTable [
354MFILE64-NEXT: FunctionName: f
355MFILE64-NEXT: CodeSize: 0x18
356MFILE64-NEXT: FilenameSegment [
357MFILE64-NEXT: Filename: d:\input.c
358MFILE64-NEXT: +0x0: 3
359MFILE64-NEXT: ]
360MFILE64-NEXT: FilenameSegment [
361MFILE64-NEXT: Filename: d:\one.c
362MFILE64-NEXT: +0x4: 1
363MFILE64-NEXT: ]
364MFILE64-NEXT: FilenameSegment [
365MFILE64-NEXT: Filename: d:\two.c
366MFILE64-NEXT: +0x9: 2
367MFILE64-NEXT: ]
368MFILE64-NEXT: FilenameSegment [
369MFILE64-NEXT: Filename: d:\one.c
370MFILE64-NEXT: +0xE: 7
371MFILE64-NEXT: +0x13: 8
372MFILE64-NEXT: ]
373MFILE64-NEXT: ]
374MFILE64-NEXT: ]
Timur Iskhodzhanov11603332014-10-06 16:59:44 +0000375
376;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Timur Iskhodzhanov1ee5ac82014-10-13 17:03:13 +0000377; The following object files were generated using the following command:
Timur Iskhodzhanov11603332014-10-06 16:59:44 +0000378; 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; }
Timur Iskhodzhanov1ee5ac82014-10-13 17:03:13 +0000389; using 32-version of CL v17.00.61030 and v18.00.21005.1 respectively.
390RUN: llvm-readobj -s -codeview-linetables %p/Inputs/comdat-function-linetables.obj.coff-2012-i386 \
391RUN: | FileCheck %s -check-prefix MCOMDAT
Timur Iskhodzhanov11603332014-10-06 16:59:44 +0000392RUN: llvm-readobj -s -codeview-linetables %p/Inputs/comdat-function-linetables.obj.coff-2013-i386 \
393RUN: | FileCheck %s -check-prefix MCOMDAT
394
Timur Iskhodzhanov56af52f2014-10-23 22:25:31 +0000395MCOMDAT: ProcStart {
396MCOMDAT-NEXT: FunctionName: f
397MCOMDAT-NEXT: Section: ?f@@YAHXZ
398MCOMDAT-NEXT: CodeSize: 0x7
399MCOMDAT-NEXT: }
Timur Iskhodzhanov11603332014-10-06 16:59:44 +0000400MCOMDAT: FunctionLineTable [
Timur Iskhodzhanov56af52f2014-10-23 22:25:31 +0000401MCOMDAT-NEXT: FunctionName: ?f@@YAHXZ
402MCOMDAT-NEXT: CodeSize: 0x7
403MCOMDAT-NEXT: FilenameSegment [
404MCOMDAT-NEXT: Filename: c:\src\test.cc
405MCOMDAT-NEXT: +0x0: 2
406MCOMDAT-NEXT: +0x3: 3
407MCOMDAT-NEXT: +0x5: 4
408MCOMDAT-NEXT: ]
409MCOMDAT-NEXT: ]
410MCOMDAT: ProcStart {
411MCOMDAT-NEXT: FunctionName: g
412MCOMDAT-NEXT: Section: ?g@@YAHXZ
413MCOMDAT-NEXT: CodeSize: 0x7
414MCOMDAT-NEXT: }
Timur Iskhodzhanov11603332014-10-06 16:59:44 +0000415MCOMDAT: FunctionLineTable [
Timur Iskhodzhanov56af52f2014-10-23 22:25:31 +0000416MCOMDAT-NEXT: FunctionName: ?g@@YAHXZ
417MCOMDAT-NEXT: CodeSize: 0x7
418MCOMDAT-NEXT: FilenameSegment [
419MCOMDAT-NEXT: Filename: c:\src\test.cc
420MCOMDAT-NEXT: +0x0: 7
421MCOMDAT-NEXT: +0x3: 8
422MCOMDAT-NEXT: +0x5: 9
423MCOMDAT-NEXT: ]
424MCOMDAT-NEXT: ]