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