blob: a1bfca02d89a9666e5b43f87ce8d3abbb99f0f44 [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
43MFUN32: ]
44MFUN32-NEXT: Subsection [
45MFUN32-NEXT: Type: 0xF2
46MFUN32-NEXT: PayloadSize: 0x30
47MFUN32: FunctionName: _x
48MFUN32-NEXT: ]
49MFUN32-NEXT: Subsection [
50MFUN32-NEXT: Type: 0xF5
51MFUN32-NEXT: PayloadSize: 0x24
52MFUN32: ]
53MFUN32-NEXT: Subsection [
54MFUN32-NEXT: Type: 0xF1
55MFUN32-NEXT: PayloadSize: 0x4B
56MFUN32: ]
57MFUN32-NEXT: Subsection [
58MFUN32-NEXT: Type: 0xF2
59MFUN32-NEXT: PayloadSize: 0x30
60MFUN32: FunctionName: _y
61MFUN32-NEXT: ]
62MFUN32-NEXT: Subsection [
63MFUN32-NEXT: Type: 0xF5
64MFUN32-NEXT: PayloadSize: 0x24
65MFUN32: ]
66MFUN32-NEXT: Subsection [
67MFUN32-NEXT: Type: 0xF1
68MFUN32-NEXT: PayloadSize: 0x4B
69MFUN32: ]
70MFUN32-NEXT: Subsection [
71MFUN32-NEXT: Type: 0xF2
72MFUN32-NEXT: PayloadSize: 0x40
73MFUN32: FunctionName: _f
74MFUN32-NEXT: ]
75MFUN32-NEXT: Subsection [
76MFUN32-NEXT: Type: 0xF4
77MFUN32-NEXT: PayloadSize: 0x18
78MFUN32: ]
79MFUN32-NEXT: Subsection [
80MFUN32-NEXT: Type: 0xF3
81MFUN32-NEXT: PayloadSize: 0x46
82MFUN32: ]
83MFUN32-NEXT: Subsection [
84MFUN32-NEXT: Type: 0xF1
85MFUN32-NEXT: PayloadSize: 0x8
86MFUN32: ]
87MFUN32-NEXT: FunctionLineTable [
88MFUN32-NEXT: FunctionName: _x
89MFUN32-NEXT: CodeSize: 0xA
90MFUN32-NEXT: FilenameSegment [
91MFUN32-NEXT: Filename: d:\source.c
92MFUN32-NEXT: +0x0: 3
93MFUN32-NEXT: +0x3: 4
94MFUN32-NEXT: +0x8: 5
95MFUN32-NEXT: ]
96MFUN32-NEXT: ]
97MFUN32-NEXT: FunctionLineTable [
98MFUN32-NEXT: FunctionName: _y
99MFUN32-NEXT: CodeSize: 0xA
100MFUN32-NEXT: FilenameSegment [
101MFUN32-NEXT: Filename: d:\source.c
102MFUN32-NEXT: +0x0: 7
103MFUN32-NEXT: +0x3: 8
104MFUN32-NEXT: +0x8: 9
105MFUN32-NEXT: ]
106MFUN32-NEXT: ]
107MFUN32-NEXT: FunctionLineTable [
108MFUN32-NEXT: FunctionName: _f
109MFUN32-NEXT: CodeSize: 0x14
110MFUN32-NEXT: FilenameSegment [
111MFUN32-NEXT: Filename: d:\source.c
112MFUN32-NEXT: +0x0: 11
113MFUN32-NEXT: +0x3: 12
114MFUN32-NEXT: +0x8: 13
115MFUN32-NEXT: +0xD: 14
116MFUN32-NEXT: +0x12: 15
117MFUN32-NEXT: ]
118MFUN32-NEXT: ]
119MFUN32-NEXT: ]
120
121MFUN64: CodeViewLineTables [
122MFUN64-NEXT: Magic: 0x4
123MFUN64-NEXT: Subsection [
124MFUN64-NEXT: Type: 0xF1
125MFUN64-NEXT: PayloadSize: 0x52
126MFUN64: ]
127MFUN64-NEXT: Subsection [
128MFUN64-NEXT: Type: 0xF1
129MFUN64-NEXT: PayloadSize: 0x4B
130MFUN64: ]
131MFUN64-NEXT: Subsection [
132MFUN64-NEXT: Type: 0xF2
133MFUN64-NEXT: PayloadSize: 0x30
134MFUN64: FunctionName: x
135MFUN64-NEXT: ]
136MFUN64-NEXT: Subsection [
137MFUN64-NEXT: Type: 0xF1
138MFUN64-NEXT: PayloadSize: 0x4B
139MFUN64: ]
140MFUN64-NEXT: Subsection [
141MFUN64-NEXT: Type: 0xF2
142MFUN64-NEXT: PayloadSize: 0x30
143MFUN64: FunctionName: y
144MFUN64-NEXT: ]
145MFUN64-NEXT: Subsection [
146MFUN64-NEXT: Type: 0xF1
147MFUN64-NEXT: PayloadSize: 0x4B
148MFUN64: ]
149MFUN64-NEXT: Subsection [
150MFUN64-NEXT: Type: 0xF2
151MFUN64-NEXT: PayloadSize: 0x40
152MFUN64: FunctionName: f
153MFUN64-NEXT: ]
154MFUN64-NEXT: Subsection [
155MFUN64-NEXT: Type: 0xF4
156MFUN64-NEXT: PayloadSize: 0x18
157MFUN64: ]
158MFUN64-NEXT: Subsection [
159MFUN64-NEXT: Type: 0xF3
160MFUN64-NEXT: PayloadSize: 0xD
161MFUN64: ]
162MFUN64-NEXT: Subsection [
163MFUN64-NEXT: Type: 0xF1
164MFUN64-NEXT: PayloadSize: 0x8
165MFUN64: ]
166MFUN64-NEXT: FunctionLineTable [
167MFUN64-NEXT: FunctionName: x
168MFUN64-NEXT: CodeSize: 0xE
169MFUN64-NEXT: FilenameSegment [
170MFUN64-NEXT: Filename: d:\source.c
171MFUN64-NEXT: +0x0: 3
172MFUN64-NEXT: +0x4: 4
173MFUN64-NEXT: +0x9: 5
174MFUN64-NEXT: ]
175MFUN64-NEXT: ]
176MFUN64-NEXT: FunctionLineTable [
177MFUN64-NEXT: FunctionName: y
178MFUN64-NEXT: CodeSize: 0xE
179MFUN64-NEXT: FilenameSegment [
180MFUN64-NEXT: Filename: d:\source.c
181MFUN64-NEXT: +0x0: 7
182MFUN64-NEXT: +0x4: 8
183MFUN64-NEXT: +0x9: 9
184MFUN64-NEXT: ]
185MFUN64-NEXT: ]
186MFUN64-NEXT: FunctionLineTable [
187MFUN64-NEXT: FunctionName: f
188MFUN64-NEXT: CodeSize: 0x18
189MFUN64-NEXT: FilenameSegment [
190MFUN64-NEXT: Filename: d:\source.c
191MFUN64-NEXT: +0x0: 11
192MFUN64-NEXT: +0x4: 12
193MFUN64-NEXT: +0x9: 13
194MFUN64-NEXT: +0xE: 14
195MFUN64-NEXT: +0x13: 15
196MFUN64-NEXT: ]
197MFUN64-NEXT: ]
198MFUN64-NEXT: ]
199
Timur Iskhodzhanov11603332014-10-06 16:59:44 +0000200;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
201; The following two object files were generated using the following command:
202; D:\> cl /Z7 /c input.c
203; with the following contents of D:\input.c:
204; void g(void);
205;
206; void f(void) {
207; #line 1 "one.c"
208; g();
209; #line 2 "two.c"
210; g();
211; #line 7 "one.c"
212; g();
213; }
Timur Iskhodzhanov1ee5ac82014-10-13 17:03:13 +0000214; using 32-/64-bit versions of CL v17.00.61030 and v18.00.21005.1 respectively.
215RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifile-linetables.obj.coff-2012-i368 \
216RUN: | FileCheck %s -check-prefix MFILE32
Timur Iskhodzhanov11603332014-10-06 16:59:44 +0000217RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifile-linetables.obj.coff-2013-i368 \
218RUN: | FileCheck %s -check-prefix MFILE32
Timur Iskhodzhanov1ee5ac82014-10-13 17:03:13 +0000219RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifile-linetables.obj.coff-2012-x86_64 \
220RUN: | FileCheck %s -check-prefix MFILE64
Timur Iskhodzhanov11603332014-10-06 16:59:44 +0000221RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifile-linetables.obj.coff-2013-x86_64 \
222RUN: | FileCheck %s -check-prefix MFILE64
223
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000224MFILE32: CodeViewLineTables [
225MFILE32-NEXT: Magic: 0x4
226MFILE32-NEXT: Subsection [
227MFILE32-NEXT: Type: 0xF1
228MFILE32-NEXT: PayloadSize: 0x51
229MFILE32: ]
230MFILE32-NEXT: Subsection [
231MFILE32-NEXT: Type: 0xF5
232MFILE32-NEXT: PayloadSize: 0x24
233MFILE32: ]
234MFILE32-NEXT: Subsection [
235MFILE32-NEXT: Type: 0xF1
236MFILE32-NEXT: PayloadSize: 0x4B
237MFILE32: ]
238MFILE32-NEXT: Subsection [
239MFILE32-NEXT: Type: 0xF2
240MFILE32-NEXT: PayloadSize: 0x64
241MFILE32: FunctionName: _f
242MFILE32-NEXT: ]
243MFILE32-NEXT: Subsection [
244MFILE32-NEXT: Type: 0xF4
245MFILE32-NEXT: PayloadSize: 0x28
246MFILE32: ]
247MFILE32-NEXT: Subsection [
248MFILE32-NEXT: Type: 0xF3
249MFILE32-NEXT: PayloadSize: 0x57
250MFILE32: ]
251MFILE32-NEXT: Subsection [
252MFILE32-NEXT: Type: 0xF1
253MFILE32-NEXT: PayloadSize: 0x8
254MFILE32: ]
255MFILE32-NEXT: FunctionLineTable [
256MFILE32-NEXT: FunctionName: _f
257MFILE32-NEXT: CodeSize: 0x14
258MFILE32-NEXT: FilenameSegment [
259MFILE32-NEXT: Filename: d:\input.c
260MFILE32-NEXT: +0x0: 3
261MFILE32-NEXT: ]
262MFILE32-NEXT: FilenameSegment [
263MFILE32-NEXT: Filename: d:\one.c
264MFILE32-NEXT: +0x3: 1
265MFILE32-NEXT: ]
266MFILE32-NEXT: FilenameSegment [
267MFILE32-NEXT: Filename: d:\two.c
268MFILE32-NEXT: +0x8: 2
269MFILE32-NEXT: ]
270MFILE32-NEXT: FilenameSegment [
271MFILE32-NEXT: Filename: d:\one.c
272MFILE32-NEXT: +0xD: 7
273MFILE32-NEXT: +0x12: 8
274MFILE32-NEXT: ]
275MFILE32-NEXT: ]
276MFILE32-NEXT: ]
277
278MFILE64: CodeViewLineTables [
279MFILE64-NEXT: Magic: 0x4
280MFILE64-NEXT: Subsection [
281MFILE64-NEXT: Type: 0xF1
282MFILE64-NEXT: PayloadSize: 0x51
283MFILE64: ]
284MFILE64-NEXT: Subsection [
285MFILE64-NEXT: Type: 0xF1
286MFILE64-NEXT: PayloadSize: 0x4B
287MFILE64: ]
288MFILE64-NEXT: Subsection [
289MFILE64-NEXT: Type: 0xF2
290MFILE64-NEXT: PayloadSize: 0x64
291MFILE64: FunctionName: f
292MFILE64-NEXT: ]
293MFILE64-NEXT: Subsection [
294MFILE64-NEXT: Type: 0xF4
295MFILE64-NEXT: PayloadSize: 0x28
296MFILE64: ]
297MFILE64-NEXT: Subsection [
298MFILE64-NEXT: Type: 0xF3
299MFILE64-NEXT: PayloadSize: 0x1E
300MFILE64: ]
301MFILE64-NEXT: Subsection [
302MFILE64-NEXT: Type: 0xF1
303MFILE64-NEXT: PayloadSize: 0x8
304MFILE64: ]
305MFILE64-NEXT: FunctionLineTable [
306MFILE64-NEXT: FunctionName: f
307MFILE64-NEXT: CodeSize: 0x18
308MFILE64-NEXT: FilenameSegment [
309MFILE64-NEXT: Filename: d:\input.c
310MFILE64-NEXT: +0x0: 3
311MFILE64-NEXT: ]
312MFILE64-NEXT: FilenameSegment [
313MFILE64-NEXT: Filename: d:\one.c
314MFILE64-NEXT: +0x4: 1
315MFILE64-NEXT: ]
316MFILE64-NEXT: FilenameSegment [
317MFILE64-NEXT: Filename: d:\two.c
318MFILE64-NEXT: +0x9: 2
319MFILE64-NEXT: ]
320MFILE64-NEXT: FilenameSegment [
321MFILE64-NEXT: Filename: d:\one.c
322MFILE64-NEXT: +0xE: 7
323MFILE64-NEXT: +0x13: 8
324MFILE64-NEXT: ]
325MFILE64-NEXT: ]
326MFILE64-NEXT: ]
Timur Iskhodzhanov11603332014-10-06 16:59:44 +0000327
328;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Timur Iskhodzhanov1ee5ac82014-10-13 17:03:13 +0000329; The following object files were generated using the following command:
Timur Iskhodzhanov11603332014-10-06 16:59:44 +0000330; C:\src> cl /Z7 /Gy /c test.cc
331; with the following contents of C:\src\test.cc:
332; int f()
333; {
334; return 0;
335; }
336;
337; int g()
338; {
339; return 0;
340; }
Timur Iskhodzhanov1ee5ac82014-10-13 17:03:13 +0000341; using 32-version of CL v17.00.61030 and v18.00.21005.1 respectively.
342RUN: llvm-readobj -s -codeview-linetables %p/Inputs/comdat-function-linetables.obj.coff-2012-i386 \
343RUN: | FileCheck %s -check-prefix MCOMDAT
Timur Iskhodzhanov11603332014-10-06 16:59:44 +0000344RUN: llvm-readobj -s -codeview-linetables %p/Inputs/comdat-function-linetables.obj.coff-2013-i386 \
345RUN: | FileCheck %s -check-prefix MCOMDAT
346
347MCOMDAT: FunctionLineTable [
348MCOMDAT-NEXT: FunctionName: ?f@@YAHXZ
349MCOMDAT-NEXT: CodeSize: 0x7
350MCOMDAT-NEXT: FilenameSegment [
351MCOMDAT-NEXT: Filename: c:\src\test.cc
352MCOMDAT-NEXT: +0x0: 2
353MCOMDAT-NEXT: +0x3: 3
354MCOMDAT-NEXT: +0x5: 4
355MCOMDAT-NEXT: ]
356MCOMDAT-NEXT: ]
357MCOMDAT: FunctionLineTable [
358MCOMDAT-NEXT: FunctionName: ?g@@YAHXZ
359MCOMDAT-NEXT: CodeSize: 0x7
360MCOMDAT-NEXT: FilenameSegment [
361MCOMDAT-NEXT: Filename: c:\src\test.cc
362MCOMDAT-NEXT: +0x0: 7
363MCOMDAT-NEXT: +0x3: 8
364MCOMDAT-NEXT: +0x5: 9
365MCOMDAT-NEXT: ]
366MCOMDAT-NEXT: ]