blob: a1c6ab66b4caefab7e1a3b6ca45d7f59e79e53e2 [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.
Zachary Turner99f02152015-02-18 19:32:05 +000021RUN: llvm-readobj -s -codeview -section-symbols %p/Inputs/multifunction-linetables.obj.coff-2012-i368 \
Timur Iskhodzhanov1ee5ac82014-10-13 17:03:13 +000022RUN: | FileCheck %s -check-prefix MFUN32
Zachary Turner99f02152015-02-18 19:32:05 +000023RUN: llvm-readobj -s -codeview -section-symbols %p/Inputs/multifunction-linetables.obj.coff-2013-i368 \
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +000024RUN: | FileCheck %s -check-prefix MFUN32
Zachary Turner99f02152015-02-18 19:32:05 +000025RUN: llvm-readobj -s -codeview -section-symbols %p/Inputs/multifunction-linetables.obj.coff-2012-x86_64 \
Timur Iskhodzhanov1ee5ac82014-10-13 17:03:13 +000026RUN: | FileCheck %s -check-prefix MFUN64
Zachary Turner99f02152015-02-18 19:32:05 +000027RUN: llvm-readobj -s -codeview -section-symbols %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
Zachary Turner99f02152015-02-18 19:32:05 +000030MFUN32: CodeViewDebugInfo [
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +000031MFUN32-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 {
Timur Iskhodzhanova11b32b2014-11-12 20:10:09 +000044MFUN32-NEXT: DisplayName: x
Timur Iskhodzhanov56af52f2014-10-23 22:25:31 +000045MFUN32-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
Reid Kleckner7c0c0c02015-12-15 01:23:55 +000053MFUN32: LinkageName: _x
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +000054MFUN32-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 {
Timur Iskhodzhanova11b32b2014-11-12 20:10:09 +000063MFUN32-NEXT: DisplayName: y
Timur Iskhodzhanov56af52f2014-10-23 22:25:31 +000064MFUN32-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
Reid Kleckner7c0c0c02015-12-15 01:23:55 +000072MFUN32: LinkageName: _y
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +000073MFUN32-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 {
Timur Iskhodzhanova11b32b2014-11-12 20:10:09 +000082MFUN32-NEXT: DisplayName: f
Timur Iskhodzhanov56af52f2014-10-23 22:25:31 +000083MFUN32-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
Reid Kleckner7c0c0c02015-12-15 01:23:55 +000091MFUN32: LinkageName: _f
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +000092MFUN32-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 [
David Majnemer04948362016-01-13 01:05:16 +0000106MFUN32-NEXT LinkageName: _x
107MFUN32-NEXT Flags: 0x0
108MFUN32-NEXT CodeSize: 0xA
109MFUN32-NEXT FilenameSegment [
110MFUN32-NEXT Filename: d:\source.c
111MFUN32-NEXT +0x0 [
112MFUN32-NEXT LineNumberStart: 3
113MFUN32-NEXT LineNumberEndDelta: 0
114MFUN32-NEXT IsStatement: Yes
115MFUN32-NEXT ]
116MFUN32-NEXT +0x3 [
117MFUN32-NEXT LineNumberStart: 4
118MFUN32-NEXT LineNumberEndDelta: 0
119MFUN32-NEXT IsStatement: Yes
120MFUN32-NEXT ]
121MFUN32-NEXT +0x8 [
122MFUN32-NEXT LineNumberStart: 5
123MFUN32-NEXT LineNumberEndDelta: 0
124MFUN32-NEXT IsStatement: Yes
125MFUN32-NEXT ]
126MFUN32-NEXT ]
127MFUN32-NEXT ]
128MFUN32-NEXT FunctionLineTable [
129MFUN32-NEXT LinkageName: _y
130MFUN32-NEXT Flags: 0x0
131MFUN32-NEXT CodeSize: 0xA
132MFUN32-NEXT FilenameSegment [
133MFUN32-NEXT Filename: d:\source.c
134MFUN32-NEXT +0x0 [
135MFUN32-NEXT LineNumberStart: 7
136MFUN32-NEXT LineNumberEndDelta: 0
137MFUN32-NEXT IsStatement: Yes
138MFUN32-NEXT ]
139MFUN32-NEXT +0x3 [
140MFUN32-NEXT LineNumberStart: 8
141MFUN32-NEXT LineNumberEndDelta: 0
142MFUN32-NEXT IsStatement: Yes
143MFUN32-NEXT ]
144MFUN32-NEXT +0x8 [
145MFUN32-NEXT LineNumberStart: 9
146MFUN32-NEXT LineNumberEndDelta: 0
147MFUN32-NEXT IsStatement: Yes
148MFUN32-NEXT ]
149MFUN32-NEXT ]
150MFUN32-NEXT ]
151MFUN32-NEXT FunctionLineTable [
152MFUN32-NEXT LinkageName: _f
153MFUN32-NEXT Flags: 0x0
154MFUN32-NEXT CodeSize: 0x14
155MFUN32-NEXT FilenameSegment [
156MFUN32-NEXT Filename: d:\source.c
157MFUN32-NEXT +0x0 [
158MFUN32-NEXT LineNumberStart: 11
159MFUN32-NEXT LineNumberEndDelta: 0
160MFUN32-NEXT IsStatement: Yes
161MFUN32-NEXT ]
162MFUN32-NEXT +0x3 [
163MFUN32-NEXT LineNumberStart: 12
164MFUN32-NEXT LineNumberEndDelta: 0
165MFUN32-NEXT IsStatement: Yes
166MFUN32-NEXT ]
167MFUN32-NEXT +0x8 [
168MFUN32-NEXT LineNumberStart: 13
169MFUN32-NEXT LineNumberEndDelta: 0
170MFUN32-NEXT IsStatement: Yes
171MFUN32-NEXT ]
172MFUN32-NEXT +0xD [
173MFUN32-NEXT LineNumberStart: 14
174MFUN32-NEXT LineNumberEndDelta: 0
175MFUN32-NEXT IsStatement: Yes
176MFUN32-NEXT ]
177MFUN32-NEXT +0x12 [
178MFUN32-NEXT LineNumberStart: 15
179MFUN32-NEXT LineNumberEndDelta: 0
180MFUN32-NEXT IsStatement: Yes
181MFUN32-NEXT ]
182MFUN32-NEXT ]
183MFUN32-NEXT ]
184MFUN32-NEXT ]
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000185
Zachary Turner99f02152015-02-18 19:32:05 +0000186MFUN64: CodeViewDebugInfo [
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000187MFUN64-NEXT: Magic: 0x4
188MFUN64-NEXT: Subsection [
189MFUN64-NEXT: Type: 0xF1
190MFUN64-NEXT: PayloadSize: 0x52
191MFUN64: ]
192MFUN64-NEXT: Subsection [
193MFUN64-NEXT: Type: 0xF1
194MFUN64-NEXT: PayloadSize: 0x4B
Timur Iskhodzhanov56af52f2014-10-23 22:25:31 +0000195MFUN64: ProcStart {
Timur Iskhodzhanova11b32b2014-11-12 20:10:09 +0000196MFUN64-NEXT: DisplayName: x
Timur Iskhodzhanov56af52f2014-10-23 22:25:31 +0000197MFUN64-NEXT: Section: x
198MFUN64-NEXT: CodeSize: 0xE
199MFUN64-NEXT: }
200MFUN64-NEXT: ProcEnd
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000201MFUN64: ]
202MFUN64-NEXT: Subsection [
203MFUN64-NEXT: Type: 0xF2
204MFUN64-NEXT: PayloadSize: 0x30
Reid Kleckner7c0c0c02015-12-15 01:23:55 +0000205MFUN64: LinkageName: x
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000206MFUN64-NEXT: ]
207MFUN64-NEXT: Subsection [
208MFUN64-NEXT: Type: 0xF1
209MFUN64-NEXT: PayloadSize: 0x4B
Timur Iskhodzhanov56af52f2014-10-23 22:25:31 +0000210MFUN64: ProcStart {
Timur Iskhodzhanova11b32b2014-11-12 20:10:09 +0000211MFUN64-NEXT: DisplayName: y
Timur Iskhodzhanov56af52f2014-10-23 22:25:31 +0000212MFUN64-NEXT: Section: y
213MFUN64-NEXT: CodeSize: 0xE
214MFUN64-NEXT: }
215MFUN64-NEXT: ProcEnd
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000216MFUN64: ]
217MFUN64-NEXT: Subsection [
218MFUN64-NEXT: Type: 0xF2
219MFUN64-NEXT: PayloadSize: 0x30
Reid Kleckner7c0c0c02015-12-15 01:23:55 +0000220MFUN64: LinkageName: y
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000221MFUN64-NEXT: ]
222MFUN64-NEXT: Subsection [
223MFUN64-NEXT: Type: 0xF1
224MFUN64-NEXT: PayloadSize: 0x4B
Timur Iskhodzhanov56af52f2014-10-23 22:25:31 +0000225MFUN64: ProcStart {
Timur Iskhodzhanova11b32b2014-11-12 20:10:09 +0000226MFUN64-NEXT: DisplayName: f
Timur Iskhodzhanov56af52f2014-10-23 22:25:31 +0000227MFUN64-NEXT: Section: f
228MFUN64-NEXT: CodeSize: 0x18
229MFUN64-NEXT: }
230MFUN64-NEXT: ProcEnd
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000231MFUN64: ]
232MFUN64-NEXT: Subsection [
233MFUN64-NEXT: Type: 0xF2
234MFUN64-NEXT: PayloadSize: 0x40
Reid Kleckner7c0c0c02015-12-15 01:23:55 +0000235MFUN64: LinkageName: f
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000236MFUN64-NEXT: ]
237MFUN64-NEXT: Subsection [
238MFUN64-NEXT: Type: 0xF4
239MFUN64-NEXT: PayloadSize: 0x18
240MFUN64: ]
241MFUN64-NEXT: Subsection [
242MFUN64-NEXT: Type: 0xF3
243MFUN64-NEXT: PayloadSize: 0xD
244MFUN64: ]
245MFUN64-NEXT: Subsection [
246MFUN64-NEXT: Type: 0xF1
247MFUN64-NEXT: PayloadSize: 0x8
248MFUN64: ]
249MFUN64-NEXT: FunctionLineTable [
Reid Kleckner7c0c0c02015-12-15 01:23:55 +0000250MFUN64-NEXT: LinkageName: x
David Majnemer3f49e662015-07-09 00:19:51 +0000251MFUN64-NEXT: Flags: 0x0
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000252MFUN64-NEXT: CodeSize: 0xE
253MFUN64-NEXT: FilenameSegment [
254MFUN64-NEXT: Filename: d:\source.c
David Majnemer04948362016-01-13 01:05:16 +0000255MFUN64-NEXT: +0x0 [
256MFUN64-NEXT: LineNumberStart: 3
257MFUN64-NEXT: LineNumberEndDelta: 0
258MFUN64-NEXT: IsStatement: Yes
259MFUN64-NEXT: ]
260MFUN64-NEXT: +0x4 [
261MFUN64-NEXT: LineNumberStart: 4
262MFUN64-NEXT: LineNumberEndDelta: 0
263MFUN64-NEXT: IsStatement: Yes
264MFUN64-NEXT: ]
265MFUN64-NEXT: +0x9 [
266MFUN64-NEXT: LineNumberStart: 5
267MFUN64-NEXT: LineNumberEndDelta: 0
268MFUN64-NEXT: IsStatement: Yes
269MFUN64-NEXT: ]
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000270MFUN64-NEXT: ]
271MFUN64-NEXT: ]
272MFUN64-NEXT: FunctionLineTable [
Reid Kleckner7c0c0c02015-12-15 01:23:55 +0000273MFUN64-NEXT: LinkageName: y
David Majnemer3f49e662015-07-09 00:19:51 +0000274MFUN64-NEXT: Flags: 0x0
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000275MFUN64-NEXT: CodeSize: 0xE
276MFUN64-NEXT: FilenameSegment [
277MFUN64-NEXT: Filename: d:\source.c
David Majnemer04948362016-01-13 01:05:16 +0000278MFUN64-NEXT: +0x0 [
279MFUN64-NEXT: LineNumberStart: 7
280MFUN64-NEXT: LineNumberEndDelta: 0
281MFUN64-NEXT: IsStatement: Yes
282MFUN64-NEXT: ]
283MFUN64-NEXT: +0x4 [
284MFUN64-NEXT: LineNumberStart: 8
285MFUN64-NEXT: LineNumberEndDelta: 0
286MFUN64-NEXT: IsStatement: Yes
287MFUN64-NEXT: ]
288MFUN64-NEXT: +0x9 [
289MFUN64-NEXT: LineNumberStart: 9
290MFUN64-NEXT: LineNumberEndDelta: 0
291MFUN64-NEXT: IsStatement: Yes
292MFUN64-NEXT: ]
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000293MFUN64-NEXT: ]
294MFUN64-NEXT: ]
295MFUN64-NEXT: FunctionLineTable [
Reid Kleckner7c0c0c02015-12-15 01:23:55 +0000296MFUN64-NEXT: LinkageName: f
David Majnemer3f49e662015-07-09 00:19:51 +0000297MFUN64-NEXT: Flags: 0x0
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000298MFUN64-NEXT: CodeSize: 0x18
299MFUN64-NEXT: FilenameSegment [
300MFUN64-NEXT: Filename: d:\source.c
David Majnemer04948362016-01-13 01:05:16 +0000301MFUN64-NEXT: +0x0 [
302MFUN64-NEXT: LineNumberStart: 11
303MFUN64-NEXT: LineNumberEndDelta: 0
304MFUN64-NEXT: IsStatement: Yes
305MFUN64-NEXT: ]
306MFUN64-NEXT: +0x4 [
307MFUN64-NEXT: LineNumberStart: 12
308MFUN64-NEXT: LineNumberEndDelta: 0
309MFUN64-NEXT: IsStatement: Yes
310MFUN64-NEXT: ]
311MFUN64-NEXT: +0x9 [
312MFUN64-NEXT: LineNumberStart: 13
313MFUN64-NEXT: LineNumberEndDelta: 0
314MFUN64-NEXT: IsStatement: Yes
315MFUN64-NEXT: ]
316MFUN64-NEXT: +0xE [
317MFUN64-NEXT: LineNumberStart: 14
318MFUN64-NEXT: LineNumberEndDelta: 0
319MFUN64-NEXT: IsStatement: Yes
320MFUN64-NEXT: ]
321MFUN64-NEXT: +0x13 [
322MFUN64-NEXT: LineNumberStart: 15
323MFUN64-NEXT: LineNumberEndDelta: 0
324MFUN64-NEXT: IsStatement: Yes
325MFUN64-NEXT: ]
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000326MFUN64-NEXT: ]
327MFUN64-NEXT: ]
328MFUN64-NEXT: ]
329
Timur Iskhodzhanov11603332014-10-06 16:59:44 +0000330;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
331; The following two object files were generated using the following command:
332; D:\> cl /Z7 /c input.c
333; with the following contents of D:\input.c:
334; void g(void);
335;
336; void f(void) {
337; #line 1 "one.c"
338; g();
339; #line 2 "two.c"
340; g();
341; #line 7 "one.c"
342; g();
343; }
Timur Iskhodzhanov1ee5ac82014-10-13 17:03:13 +0000344; using 32-/64-bit versions of CL v17.00.61030 and v18.00.21005.1 respectively.
Zachary Turner99f02152015-02-18 19:32:05 +0000345RUN: llvm-readobj -s -codeview -section-symbols %p/Inputs/multifile-linetables.obj.coff-2012-i368 \
Timur Iskhodzhanov1ee5ac82014-10-13 17:03:13 +0000346RUN: | FileCheck %s -check-prefix MFILE32
Zachary Turner99f02152015-02-18 19:32:05 +0000347RUN: llvm-readobj -s -codeview -section-symbols %p/Inputs/multifile-linetables.obj.coff-2013-i368 \
Timur Iskhodzhanov11603332014-10-06 16:59:44 +0000348RUN: | FileCheck %s -check-prefix MFILE32
Zachary Turner99f02152015-02-18 19:32:05 +0000349RUN: llvm-readobj -s -codeview -section-symbols %p/Inputs/multifile-linetables.obj.coff-2012-x86_64 \
Timur Iskhodzhanov1ee5ac82014-10-13 17:03:13 +0000350RUN: | FileCheck %s -check-prefix MFILE64
Zachary Turner99f02152015-02-18 19:32:05 +0000351RUN: llvm-readobj -s -codeview -section-symbols %p/Inputs/multifile-linetables.obj.coff-2013-x86_64 \
Timur Iskhodzhanov11603332014-10-06 16:59:44 +0000352RUN: | FileCheck %s -check-prefix MFILE64
353
Zachary Turner99f02152015-02-18 19:32:05 +0000354MFILE32: CodeViewDebugInfo [
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000355MFILE32-NEXT: Magic: 0x4
356MFILE32-NEXT: Subsection [
357MFILE32-NEXT: Type: 0xF1
358MFILE32-NEXT: PayloadSize: 0x51
359MFILE32: ]
360MFILE32-NEXT: Subsection [
361MFILE32-NEXT: Type: 0xF5
362MFILE32-NEXT: PayloadSize: 0x24
363MFILE32: ]
364MFILE32-NEXT: Subsection [
365MFILE32-NEXT: Type: 0xF1
366MFILE32-NEXT: PayloadSize: 0x4B
Timur Iskhodzhanov56af52f2014-10-23 22:25:31 +0000367MFILE32: ProcStart {
Timur Iskhodzhanova11b32b2014-11-12 20:10:09 +0000368MFILE32-NEXT: DisplayName: f
Timur Iskhodzhanov56af52f2014-10-23 22:25:31 +0000369MFILE32-NEXT: Section: _f
370MFILE32-NEXT: CodeSize: 0x14
371MFILE32-NEXT: }
372MFILE32-NEXT: ProcEnd
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000373MFILE32: ]
374MFILE32-NEXT: Subsection [
375MFILE32-NEXT: Type: 0xF2
376MFILE32-NEXT: PayloadSize: 0x64
Reid Kleckner7c0c0c02015-12-15 01:23:55 +0000377MFILE32: LinkageName: _f
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000378MFILE32-NEXT: ]
379MFILE32-NEXT: Subsection [
380MFILE32-NEXT: Type: 0xF4
381MFILE32-NEXT: PayloadSize: 0x28
382MFILE32: ]
383MFILE32-NEXT: Subsection [
384MFILE32-NEXT: Type: 0xF3
385MFILE32-NEXT: PayloadSize: 0x57
386MFILE32: ]
387MFILE32-NEXT: Subsection [
388MFILE32-NEXT: Type: 0xF1
389MFILE32-NEXT: PayloadSize: 0x8
390MFILE32: ]
391MFILE32-NEXT: FunctionLineTable [
Reid Kleckner7c0c0c02015-12-15 01:23:55 +0000392MFILE32-NEXT: LinkageName: _f
David Majnemer3f49e662015-07-09 00:19:51 +0000393MFILE32-NEXT: Flags: 0x0
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000394MFILE32-NEXT: CodeSize: 0x14
395MFILE32-NEXT: FilenameSegment [
396MFILE32-NEXT: Filename: d:\input.c
David Majnemer04948362016-01-13 01:05:16 +0000397MFILE32-NEXT: +0x0 [
398MFILE32-NEXT: LineNumberStart: 3
399MFILE32-NEXT: LineNumberEndDelta: 0
400MFILE32-NEXT: IsStatement: Yes
401MFILE32-NEXT: ]
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000402MFILE32-NEXT: ]
403MFILE32-NEXT: FilenameSegment [
404MFILE32-NEXT: Filename: d:\one.c
David Majnemer04948362016-01-13 01:05:16 +0000405MFILE32-NEXT: +0x3 [
406MFILE32-NEXT: LineNumberStart: 1
407MFILE32-NEXT: LineNumberEndDelta: 0
408MFILE32-NEXT: IsStatement: Yes
409MFILE32-NEXT: ]
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000410MFILE32-NEXT: ]
411MFILE32-NEXT: FilenameSegment [
412MFILE32-NEXT: Filename: d:\two.c
David Majnemer04948362016-01-13 01:05:16 +0000413MFILE32-NEXT: +0x8 [
414MFILE32-NEXT: LineNumberStart: 2
415MFILE32-NEXT: LineNumberEndDelta: 0
416MFILE32-NEXT: IsStatement: Yes
417MFILE32-NEXT: ]
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000418MFILE32-NEXT: ]
419MFILE32-NEXT: FilenameSegment [
420MFILE32-NEXT: Filename: d:\one.c
David Majnemer04948362016-01-13 01:05:16 +0000421MFILE32-NEXT: +0xD [
422MFILE32-NEXT: LineNumberStart: 7
423MFILE32-NEXT: LineNumberEndDelta: 0
424MFILE32-NEXT: IsStatement: Yes
425MFILE32-NEXT: ]
426MFILE32-NEXT: +0x12 [
427MFILE32-NEXT: LineNumberStart: 8
428MFILE32-NEXT: LineNumberEndDelta: 0
429MFILE32-NEXT: IsStatement: Yes
430MFILE32-NEXT: ]
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000431MFILE32-NEXT: ]
432MFILE32-NEXT: ]
433MFILE32-NEXT: ]
434
Zachary Turner99f02152015-02-18 19:32:05 +0000435MFILE64: CodeViewDebugInfo [
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000436MFILE64-NEXT: Magic: 0x4
437MFILE64-NEXT: Subsection [
438MFILE64-NEXT: Type: 0xF1
439MFILE64-NEXT: PayloadSize: 0x51
440MFILE64: ]
441MFILE64-NEXT: Subsection [
442MFILE64-NEXT: Type: 0xF1
443MFILE64-NEXT: PayloadSize: 0x4B
Timur Iskhodzhanov56af52f2014-10-23 22:25:31 +0000444MFILE64: ProcStart {
Timur Iskhodzhanova11b32b2014-11-12 20:10:09 +0000445MFILE64-NEXT: DisplayName: f
Timur Iskhodzhanov56af52f2014-10-23 22:25:31 +0000446MFILE64-NEXT: Section: f
447MFILE64-NEXT: CodeSize: 0x18
448MFILE64-NEXT: }
449MFILE64-NEXT: ProcEnd
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000450MFILE64: ]
451MFILE64-NEXT: Subsection [
452MFILE64-NEXT: Type: 0xF2
453MFILE64-NEXT: PayloadSize: 0x64
Reid Kleckner7c0c0c02015-12-15 01:23:55 +0000454MFILE64: LinkageName: f
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000455MFILE64-NEXT: ]
456MFILE64-NEXT: Subsection [
457MFILE64-NEXT: Type: 0xF4
458MFILE64-NEXT: PayloadSize: 0x28
459MFILE64: ]
460MFILE64-NEXT: Subsection [
461MFILE64-NEXT: Type: 0xF3
462MFILE64-NEXT: PayloadSize: 0x1E
463MFILE64: ]
464MFILE64-NEXT: Subsection [
465MFILE64-NEXT: Type: 0xF1
466MFILE64-NEXT: PayloadSize: 0x8
467MFILE64: ]
David Majnemer04948362016-01-13 01:05:16 +0000468MFILE64-NEXT: FunctionLineTable [
469MFILE64-NEXT: LinkageName: f
470MFILE64-NEXT: Flags: 0x0
471MFILE64-NEXT: CodeSize: 0x18
472MFILE64-NEXT: FilenameSegment [
473MFILE64-NEXT: Filename: d:\input.c
474MFILE64-NEXT: +0x0 [
475MFILE64-NEXT: LineNumberStart: 3
476MFILE64-NEXT: LineNumberEndDelta: 0
477MFILE64-NEXT: IsStatement: Yes
478MFILE64-NEXT: ]
479MFILE64-NEXT: ]
480MFILE64-NEXT: FilenameSegment [
481MFILE64-NEXT: Filename: d:\one.c
482MFILE64-NEXT: +0x4 [
483MFILE64-NEXT: LineNumberStart: 1
484MFILE64-NEXT: LineNumberEndDelta: 0
485MFILE64-NEXT: IsStatement: Yes
486MFILE64-NEXT: ]
487MFILE64-NEXT: ]
488MFILE64-NEXT: FilenameSegment [
489MFILE64-NEXT: Filename: d:\two.c
490MFILE64-NEXT: +0x9 [
491MFILE64-NEXT: LineNumberStart: 2
492MFILE64-NEXT: LineNumberEndDelta: 0
493MFILE64-NEXT: IsStatement: Yes
494MFILE64-NEXT: ]
495MFILE64-NEXT: ]
496MFILE64-NEXT: FilenameSegment [
497MFILE64-NEXT: Filename: d:\one.c
498MFILE64-NEXT: +0xE [
499MFILE64-NEXT: LineNumberStart: 7
500MFILE64-NEXT: LineNumberEndDelta: 0
501MFILE64-NEXT: IsStatement: Yes
502MFILE64-NEXT: ]
503MFILE64-NEXT: +0x13 [
504MFILE64-NEXT: LineNumberStart: 8
505MFILE64-NEXT: LineNumberEndDelta: 0
506MFILE64-NEXT: IsStatement: Yes
507MFILE64-NEXT: ]
508MFILE64-NEXT: ]
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000509MFILE64-NEXT: ]
Timur Iskhodzhanov11603332014-10-06 16:59:44 +0000510
511;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Timur Iskhodzhanov1ee5ac82014-10-13 17:03:13 +0000512; The following object files were generated using the following command:
Timur Iskhodzhanov11603332014-10-06 16:59:44 +0000513; C:\src> cl /Z7 /Gy /c test.cc
514; with the following contents of C:\src\test.cc:
515; int f()
516; {
517; return 0;
518; }
519;
520; int g()
521; {
522; return 0;
523; }
Timur Iskhodzhanov1ee5ac82014-10-13 17:03:13 +0000524; using 32-version of CL v17.00.61030 and v18.00.21005.1 respectively.
Zachary Turner99f02152015-02-18 19:32:05 +0000525RUN: llvm-readobj -s -codeview -section-symbols %p/Inputs/comdat-function-linetables.obj.coff-2012-i386 \
Timur Iskhodzhanov1ee5ac82014-10-13 17:03:13 +0000526RUN: | FileCheck %s -check-prefix MCOMDAT
Zachary Turner99f02152015-02-18 19:32:05 +0000527RUN: llvm-readobj -s -codeview -section-symbols %p/Inputs/comdat-function-linetables.obj.coff-2013-i386 \
Timur Iskhodzhanov11603332014-10-06 16:59:44 +0000528RUN: | FileCheck %s -check-prefix MCOMDAT
529
Timur Iskhodzhanov56af52f2014-10-23 22:25:31 +0000530MCOMDAT: ProcStart {
Timur Iskhodzhanova11b32b2014-11-12 20:10:09 +0000531MCOMDAT-NEXT: DisplayName: f
Timur Iskhodzhanov56af52f2014-10-23 22:25:31 +0000532MCOMDAT-NEXT: Section: ?f@@YAHXZ
533MCOMDAT-NEXT: CodeSize: 0x7
534MCOMDAT-NEXT: }
Timur Iskhodzhanov11603332014-10-06 16:59:44 +0000535MCOMDAT: FunctionLineTable [
Reid Kleckner7c0c0c02015-12-15 01:23:55 +0000536MCOMDAT-NEXT: LinkageName: ?f@@YAHXZ
David Majnemer3f49e662015-07-09 00:19:51 +0000537MCOMDAT-NEXT: Flags: 0x0
Timur Iskhodzhanov56af52f2014-10-23 22:25:31 +0000538MCOMDAT-NEXT: CodeSize: 0x7
539MCOMDAT-NEXT: FilenameSegment [
540MCOMDAT-NEXT: Filename: c:\src\test.cc
David Majnemer04948362016-01-13 01:05:16 +0000541MCOMDAT-NEXT: +0x0 [
542MCOMDAT-NEXT: LineNumberStart: 2
543MCOMDAT-NEXT: LineNumberEndDelta: 0
544MCOMDAT-NEXT: IsStatement: Yes
545MCOMDAT-NEXT: ]
546MCOMDAT-NEXT: +0x3 [
547MCOMDAT-NEXT: LineNumberStart: 3
548MCOMDAT-NEXT: LineNumberEndDelta: 0
549MCOMDAT-NEXT: IsStatement: Yes
550MCOMDAT-NEXT: ]
551MCOMDAT-NEXT: +0x5 [
552MCOMDAT-NEXT: LineNumberStart: 4
553MCOMDAT-NEXT: LineNumberEndDelta: 0
554MCOMDAT-NEXT: IsStatement: Yes
555MCOMDAT-NEXT: ]
Timur Iskhodzhanov56af52f2014-10-23 22:25:31 +0000556MCOMDAT-NEXT: ]
557MCOMDAT-NEXT: ]
558MCOMDAT: ProcStart {
Timur Iskhodzhanova11b32b2014-11-12 20:10:09 +0000559MCOMDAT-NEXT: DisplayName: g
Timur Iskhodzhanov56af52f2014-10-23 22:25:31 +0000560MCOMDAT-NEXT: Section: ?g@@YAHXZ
561MCOMDAT-NEXT: CodeSize: 0x7
562MCOMDAT-NEXT: }
Timur Iskhodzhanov11603332014-10-06 16:59:44 +0000563MCOMDAT: FunctionLineTable [
Reid Kleckner7c0c0c02015-12-15 01:23:55 +0000564MCOMDAT-NEXT: LinkageName: ?g@@YAHXZ
David Majnemer3f49e662015-07-09 00:19:51 +0000565MCOMDAT-NEXT: Flags: 0x0
Timur Iskhodzhanov56af52f2014-10-23 22:25:31 +0000566MCOMDAT-NEXT: CodeSize: 0x7
567MCOMDAT-NEXT: FilenameSegment [
568MCOMDAT-NEXT: Filename: c:\src\test.cc
David Majnemer04948362016-01-13 01:05:16 +0000569MCOMDAT-NEXT: +0x0 [
570MCOMDAT-NEXT: LineNumberStart: 7
571MCOMDAT-NEXT: LineNumberEndDelta: 0
572MCOMDAT-NEXT: IsStatement: Yes
573MCOMDAT-NEXT: ]
574MCOMDAT-NEXT: +0x3 [
575MCOMDAT-NEXT: LineNumberStart: 8
576MCOMDAT-NEXT: LineNumberEndDelta: 0
577MCOMDAT-NEXT: IsStatement: Yes
578MCOMDAT-NEXT: ]
579MCOMDAT-NEXT: +0x5 [
580MCOMDAT-NEXT: LineNumberStart: 9
581MCOMDAT-NEXT: LineNumberEndDelta: 0
582MCOMDAT-NEXT: IsStatement: Yes
583MCOMDAT-NEXT: ]
Timur Iskhodzhanov56af52f2014-10-23 22:25:31 +0000584MCOMDAT-NEXT: ]
585MCOMDAT-NEXT: ]