blob: 28e34b7d4fb1981b4cf1b28bdfa46b1b8b81957b [file] [log] [blame]
Timur Iskhodzhanovd1711532014-09-23 13:49:51 +00001; The following two object files were generated using the following command:
2; D:\> cl /Z7 /c source.c
3; with the following contents of D:\source.c:
4; void z(void);
5;
6; void x(void) {
7; z();
8; }
9;
10; void y(void) {
11; z();
12; }
13;
14; void f(void) {
15; x();
16; y();
17; z();
18; }
19; using CL v18.00.21005.1 32-/64-bit versions respectively.
20RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifunction-linetables.obj.coff-2013-i368 \
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +000021RUN: | FileCheck %s -check-prefix MFUN32
Timur Iskhodzhanovd1711532014-09-23 13:49:51 +000022RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifunction-linetables.obj.coff-2013-x86_64 \
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +000023RUN: | FileCheck %s -check-prefix MFUN64
Timur Iskhodzhanovd1711532014-09-23 13:49:51 +000024
25; The following two object files were generated using the following command:
26; D:\> cl /Z7 /c input.c
27; with the following contents of D:\input.c:
28; void g(void);
29;
30; void f(void) {
31; #line 1 "one.c"
32; g();
33; #line 2 "two.c"
34; g();
35; #line 7 "one.c"
36; g();
37; }
38; using CL v18.00.21005.1 32-/64-bit versions respectively.
39RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifile-linetables.obj.coff-2013-i368 \
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +000040RUN: | FileCheck %s -check-prefix MFILE32
Timur Iskhodzhanovd1711532014-09-23 13:49:51 +000041RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifile-linetables.obj.coff-2013-x86_64 \
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +000042RUN: | FileCheck %s -check-prefix MFILE64
43
44MFUN32: CodeViewLineTables [
45MFUN32-NEXT: Magic: 0x4
46MFUN32-NEXT: Subsection [
47MFUN32-NEXT: Type: 0xF1
48MFUN32-NEXT: PayloadSize: 0x52
49MFUN32: ]
50MFUN32-NEXT: Subsection [
51MFUN32-NEXT: Type: 0xF5
52MFUN32-NEXT: PayloadSize: 0x24
53MFUN32: ]
54MFUN32-NEXT: Subsection [
55MFUN32-NEXT: Type: 0xF1
56MFUN32-NEXT: PayloadSize: 0x4B
57MFUN32: ]
58MFUN32-NEXT: Subsection [
59MFUN32-NEXT: Type: 0xF2
60MFUN32-NEXT: PayloadSize: 0x30
61MFUN32: FunctionName: _x
62MFUN32-NEXT: ]
63MFUN32-NEXT: Subsection [
64MFUN32-NEXT: Type: 0xF5
65MFUN32-NEXT: PayloadSize: 0x24
66MFUN32: ]
67MFUN32-NEXT: Subsection [
68MFUN32-NEXT: Type: 0xF1
69MFUN32-NEXT: PayloadSize: 0x4B
70MFUN32: ]
71MFUN32-NEXT: Subsection [
72MFUN32-NEXT: Type: 0xF2
73MFUN32-NEXT: PayloadSize: 0x30
74MFUN32: FunctionName: _y
75MFUN32-NEXT: ]
76MFUN32-NEXT: Subsection [
77MFUN32-NEXT: Type: 0xF5
78MFUN32-NEXT: PayloadSize: 0x24
79MFUN32: ]
80MFUN32-NEXT: Subsection [
81MFUN32-NEXT: Type: 0xF1
82MFUN32-NEXT: PayloadSize: 0x4B
83MFUN32: ]
84MFUN32-NEXT: Subsection [
85MFUN32-NEXT: Type: 0xF2
86MFUN32-NEXT: PayloadSize: 0x40
87MFUN32: FunctionName: _f
88MFUN32-NEXT: ]
89MFUN32-NEXT: Subsection [
90MFUN32-NEXT: Type: 0xF4
91MFUN32-NEXT: PayloadSize: 0x18
92MFUN32: ]
93MFUN32-NEXT: Subsection [
94MFUN32-NEXT: Type: 0xF3
95MFUN32-NEXT: PayloadSize: 0x46
96MFUN32: ]
97MFUN32-NEXT: Subsection [
98MFUN32-NEXT: Type: 0xF1
99MFUN32-NEXT: PayloadSize: 0x8
100MFUN32: ]
101MFUN32-NEXT: FunctionLineTable [
102MFUN32-NEXT: FunctionName: _x
103MFUN32-NEXT: CodeSize: 0xA
104MFUN32-NEXT: FilenameSegment [
105MFUN32-NEXT: Filename: d:\source.c
106MFUN32-NEXT: +0x0: 3
107MFUN32-NEXT: +0x3: 4
108MFUN32-NEXT: +0x8: 5
109MFUN32-NEXT: ]
110MFUN32-NEXT: ]
111MFUN32-NEXT: FunctionLineTable [
112MFUN32-NEXT: FunctionName: _y
113MFUN32-NEXT: CodeSize: 0xA
114MFUN32-NEXT: FilenameSegment [
115MFUN32-NEXT: Filename: d:\source.c
116MFUN32-NEXT: +0x0: 7
117MFUN32-NEXT: +0x3: 8
118MFUN32-NEXT: +0x8: 9
119MFUN32-NEXT: ]
120MFUN32-NEXT: ]
121MFUN32-NEXT: FunctionLineTable [
122MFUN32-NEXT: FunctionName: _f
123MFUN32-NEXT: CodeSize: 0x14
124MFUN32-NEXT: FilenameSegment [
125MFUN32-NEXT: Filename: d:\source.c
126MFUN32-NEXT: +0x0: 11
127MFUN32-NEXT: +0x3: 12
128MFUN32-NEXT: +0x8: 13
129MFUN32-NEXT: +0xD: 14
130MFUN32-NEXT: +0x12: 15
131MFUN32-NEXT: ]
132MFUN32-NEXT: ]
133MFUN32-NEXT: ]
134
135MFUN64: CodeViewLineTables [
136MFUN64-NEXT: Magic: 0x4
137MFUN64-NEXT: Subsection [
138MFUN64-NEXT: Type: 0xF1
139MFUN64-NEXT: PayloadSize: 0x52
140MFUN64: ]
141MFUN64-NEXT: Subsection [
142MFUN64-NEXT: Type: 0xF1
143MFUN64-NEXT: PayloadSize: 0x4B
144MFUN64: ]
145MFUN64-NEXT: Subsection [
146MFUN64-NEXT: Type: 0xF2
147MFUN64-NEXT: PayloadSize: 0x30
148MFUN64: FunctionName: x
149MFUN64-NEXT: ]
150MFUN64-NEXT: Subsection [
151MFUN64-NEXT: Type: 0xF1
152MFUN64-NEXT: PayloadSize: 0x4B
153MFUN64: ]
154MFUN64-NEXT: Subsection [
155MFUN64-NEXT: Type: 0xF2
156MFUN64-NEXT: PayloadSize: 0x30
157MFUN64: FunctionName: y
158MFUN64-NEXT: ]
159MFUN64-NEXT: Subsection [
160MFUN64-NEXT: Type: 0xF1
161MFUN64-NEXT: PayloadSize: 0x4B
162MFUN64: ]
163MFUN64-NEXT: Subsection [
164MFUN64-NEXT: Type: 0xF2
165MFUN64-NEXT: PayloadSize: 0x40
166MFUN64: FunctionName: f
167MFUN64-NEXT: ]
168MFUN64-NEXT: Subsection [
169MFUN64-NEXT: Type: 0xF4
170MFUN64-NEXT: PayloadSize: 0x18
171MFUN64: ]
172MFUN64-NEXT: Subsection [
173MFUN64-NEXT: Type: 0xF3
174MFUN64-NEXT: PayloadSize: 0xD
175MFUN64: ]
176MFUN64-NEXT: Subsection [
177MFUN64-NEXT: Type: 0xF1
178MFUN64-NEXT: PayloadSize: 0x8
179MFUN64: ]
180MFUN64-NEXT: FunctionLineTable [
181MFUN64-NEXT: FunctionName: x
182MFUN64-NEXT: CodeSize: 0xE
183MFUN64-NEXT: FilenameSegment [
184MFUN64-NEXT: Filename: d:\source.c
185MFUN64-NEXT: +0x0: 3
186MFUN64-NEXT: +0x4: 4
187MFUN64-NEXT: +0x9: 5
188MFUN64-NEXT: ]
189MFUN64-NEXT: ]
190MFUN64-NEXT: FunctionLineTable [
191MFUN64-NEXT: FunctionName: y
192MFUN64-NEXT: CodeSize: 0xE
193MFUN64-NEXT: FilenameSegment [
194MFUN64-NEXT: Filename: d:\source.c
195MFUN64-NEXT: +0x0: 7
196MFUN64-NEXT: +0x4: 8
197MFUN64-NEXT: +0x9: 9
198MFUN64-NEXT: ]
199MFUN64-NEXT: ]
200MFUN64-NEXT: FunctionLineTable [
201MFUN64-NEXT: FunctionName: f
202MFUN64-NEXT: CodeSize: 0x18
203MFUN64-NEXT: FilenameSegment [
204MFUN64-NEXT: Filename: d:\source.c
205MFUN64-NEXT: +0x0: 11
206MFUN64-NEXT: +0x4: 12
207MFUN64-NEXT: +0x9: 13
208MFUN64-NEXT: +0xE: 14
209MFUN64-NEXT: +0x13: 15
210MFUN64-NEXT: ]
211MFUN64-NEXT: ]
212MFUN64-NEXT: ]
213
214MFILE32: CodeViewLineTables [
215MFILE32-NEXT: Magic: 0x4
216MFILE32-NEXT: Subsection [
217MFILE32-NEXT: Type: 0xF1
218MFILE32-NEXT: PayloadSize: 0x51
219MFILE32: ]
220MFILE32-NEXT: Subsection [
221MFILE32-NEXT: Type: 0xF5
222MFILE32-NEXT: PayloadSize: 0x24
223MFILE32: ]
224MFILE32-NEXT: Subsection [
225MFILE32-NEXT: Type: 0xF1
226MFILE32-NEXT: PayloadSize: 0x4B
227MFILE32: ]
228MFILE32-NEXT: Subsection [
229MFILE32-NEXT: Type: 0xF2
230MFILE32-NEXT: PayloadSize: 0x64
231MFILE32: FunctionName: _f
232MFILE32-NEXT: ]
233MFILE32-NEXT: Subsection [
234MFILE32-NEXT: Type: 0xF4
235MFILE32-NEXT: PayloadSize: 0x28
236MFILE32: ]
237MFILE32-NEXT: Subsection [
238MFILE32-NEXT: Type: 0xF3
239MFILE32-NEXT: PayloadSize: 0x57
240MFILE32: ]
241MFILE32-NEXT: Subsection [
242MFILE32-NEXT: Type: 0xF1
243MFILE32-NEXT: PayloadSize: 0x8
244MFILE32: ]
245MFILE32-NEXT: FunctionLineTable [
246MFILE32-NEXT: FunctionName: _f
247MFILE32-NEXT: CodeSize: 0x14
248MFILE32-NEXT: FilenameSegment [
249MFILE32-NEXT: Filename: d:\input.c
250MFILE32-NEXT: +0x0: 3
251MFILE32-NEXT: ]
252MFILE32-NEXT: FilenameSegment [
253MFILE32-NEXT: Filename: d:\one.c
254MFILE32-NEXT: +0x3: 1
255MFILE32-NEXT: ]
256MFILE32-NEXT: FilenameSegment [
257MFILE32-NEXT: Filename: d:\two.c
258MFILE32-NEXT: +0x8: 2
259MFILE32-NEXT: ]
260MFILE32-NEXT: FilenameSegment [
261MFILE32-NEXT: Filename: d:\one.c
262MFILE32-NEXT: +0xD: 7
263MFILE32-NEXT: +0x12: 8
264MFILE32-NEXT: ]
265MFILE32-NEXT: ]
266MFILE32-NEXT: ]
267
268MFILE64: CodeViewLineTables [
269MFILE64-NEXT: Magic: 0x4
270MFILE64-NEXT: Subsection [
271MFILE64-NEXT: Type: 0xF1
272MFILE64-NEXT: PayloadSize: 0x51
273MFILE64: ]
274MFILE64-NEXT: Subsection [
275MFILE64-NEXT: Type: 0xF1
276MFILE64-NEXT: PayloadSize: 0x4B
277MFILE64: ]
278MFILE64-NEXT: Subsection [
279MFILE64-NEXT: Type: 0xF2
280MFILE64-NEXT: PayloadSize: 0x64
281MFILE64: FunctionName: f
282MFILE64-NEXT: ]
283MFILE64-NEXT: Subsection [
284MFILE64-NEXT: Type: 0xF4
285MFILE64-NEXT: PayloadSize: 0x28
286MFILE64: ]
287MFILE64-NEXT: Subsection [
288MFILE64-NEXT: Type: 0xF3
289MFILE64-NEXT: PayloadSize: 0x1E
290MFILE64: ]
291MFILE64-NEXT: Subsection [
292MFILE64-NEXT: Type: 0xF1
293MFILE64-NEXT: PayloadSize: 0x8
294MFILE64: ]
295MFILE64-NEXT: FunctionLineTable [
296MFILE64-NEXT: FunctionName: f
297MFILE64-NEXT: CodeSize: 0x18
298MFILE64-NEXT: FilenameSegment [
299MFILE64-NEXT: Filename: d:\input.c
300MFILE64-NEXT: +0x0: 3
301MFILE64-NEXT: ]
302MFILE64-NEXT: FilenameSegment [
303MFILE64-NEXT: Filename: d:\one.c
304MFILE64-NEXT: +0x4: 1
305MFILE64-NEXT: ]
306MFILE64-NEXT: FilenameSegment [
307MFILE64-NEXT: Filename: d:\two.c
308MFILE64-NEXT: +0x9: 2
309MFILE64-NEXT: ]
310MFILE64-NEXT: FilenameSegment [
311MFILE64-NEXT: Filename: d:\one.c
312MFILE64-NEXT: +0xE: 7
313MFILE64-NEXT: +0x13: 8
314MFILE64-NEXT: ]
315MFILE64-NEXT: ]
316MFILE64-NEXT: ]