blob: 81d193ad30efaf8ae8bf03e8c99f788522f7fb43 [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.
Fangrui Songe29e30b2019-05-01 05:27:20 +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
Fangrui Songe29e30b2019-05-01 05:27:20 +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
Fangrui Songe29e30b2019-05-01 05:27:20 +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
Fangrui Songe29e30b2019-05-01 05:27:20 +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 [
Reid Kleckner72e2ba72016-01-13 19:32:35 +000031MFUN32-NEXT: Section: .debug$S (2)
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +000032MFUN32-NEXT: Magic: 0x4
33MFUN32-NEXT: Subsection [
Reid Kleckner72e2ba72016-01-13 19:32:35 +000034MFUN32-NEXT: SubSectionType: Symbols (0xF1)
35MFUN32-NEXT: SubSectionSize: 0x52
36MFUN32: ]
Reid Kleckneraf49ecb2016-01-15 22:09:13 +000037MFUN32: Subsection [
Reid Kleckner72e2ba72016-01-13 19:32:35 +000038MFUN32-NEXT: SubSectionType: FrameData (0xF5)
39MFUN32-NEXT: SubSectionSize: 0x24
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +000040MFUN32: ]
Reid Kleckneraf49ecb2016-01-15 22:09:13 +000041MFUN32: Subsection [
Reid Kleckner72e2ba72016-01-13 19:32:35 +000042MFUN32-NEXT: SubSectionType: Symbols (0xF1)
43MFUN32-NEXT: SubSectionSize: 0x4B
Reid Kleckner8d8888f2017-07-11 23:41:41 +000044MFUN32: GlobalProcIdSym {
Reid Kleckner72e2ba72016-01-13 19:32:35 +000045MFUN32: CodeSize: 0xA
46MFUN32: DisplayName: x
47MFUN32: LinkageName: _x
48MFUN32: }
49MFUN32: ProcEnd
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +000050MFUN32: ]
Reid Kleckneraf49ecb2016-01-15 22:09:13 +000051MFUN32: Subsection [
Reid Kleckner72e2ba72016-01-13 19:32:35 +000052MFUN32-NEXT: SubSectionType: Lines (0xF2)
53MFUN32-NEXT: SubSectionSize: 0x30
Reid Kleckner7c0c0c02015-12-15 01:23:55 +000054MFUN32: LinkageName: _x
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +000055MFUN32-NEXT: ]
56MFUN32-NEXT: Subsection [
Reid Kleckner72e2ba72016-01-13 19:32:35 +000057MFUN32-NEXT: SubSectionType: FrameData (0xF5)
58MFUN32-NEXT: SubSectionSize: 0x24
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +000059MFUN32: ]
Reid Kleckneraf49ecb2016-01-15 22:09:13 +000060MFUN32: Subsection [
Reid Kleckner72e2ba72016-01-13 19:32:35 +000061MFUN32-NEXT: SubSectionType: Symbols (0xF1)
62MFUN32-NEXT: SubSectionSize: 0x4B
Reid Kleckner8d8888f2017-07-11 23:41:41 +000063MFUN32: GlobalProcIdSym {
Reid Kleckner72e2ba72016-01-13 19:32:35 +000064MFUN32: CodeSize: 0xA
65MFUN32: DisplayName: y
66MFUN32: LinkageName: _y
67MFUN32: }
68MFUN32: ProcEnd
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +000069MFUN32: ]
70MFUN32-NEXT: Subsection [
Reid Kleckner72e2ba72016-01-13 19:32:35 +000071MFUN32-NEXT: SubSectionType: Lines (0xF2)
72MFUN32-NEXT: SubSectionSize: 0x30
Reid Kleckner7c0c0c02015-12-15 01:23:55 +000073MFUN32: LinkageName: _y
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +000074MFUN32-NEXT: ]
75MFUN32-NEXT: Subsection [
Reid Kleckner72e2ba72016-01-13 19:32:35 +000076MFUN32-NEXT: SubSectionType: FrameData (0xF5)
77MFUN32-NEXT: SubSectionSize: 0x24
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +000078MFUN32: ]
Reid Kleckneraf49ecb2016-01-15 22:09:13 +000079MFUN32: Subsection [
Reid Kleckner72e2ba72016-01-13 19:32:35 +000080MFUN32-NEXT: SubSectionType: Symbols (0xF1)
81MFUN32-NEXT: SubSectionSize: 0x4B
Reid Kleckner8d8888f2017-07-11 23:41:41 +000082MFUN32: GlobalProcIdSym {
Reid Kleckner72e2ba72016-01-13 19:32:35 +000083MFUN32: CodeSize: 0x14
84MFUN32: DisplayName: f
85MFUN32: LinkageName: _f
86MFUN32: }
87MFUN32: ProcEnd
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +000088MFUN32: ]
Reid Kleckneraf49ecb2016-01-15 22:09:13 +000089MFUN32: Subsection [
Reid Kleckner72e2ba72016-01-13 19:32:35 +000090MFUN32-NEXT: SubSectionType: Lines (0xF2)
91MFUN32-NEXT: SubSectionSize: 0x40
Reid Kleckner7c0c0c02015-12-15 01:23:55 +000092MFUN32: LinkageName: _f
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +000093MFUN32-NEXT: ]
94MFUN32-NEXT: Subsection [
Reid Kleckner72e2ba72016-01-13 19:32:35 +000095MFUN32-NEXT: SubSectionType: FileChecksums (0xF4)
96MFUN32-NEXT: SubSectionSize: 0x18
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +000097MFUN32: ]
98MFUN32-NEXT: Subsection [
Reid Kleckner72e2ba72016-01-13 19:32:35 +000099MFUN32-NEXT: SubSectionType: StringTable (0xF3)
100MFUN32-NEXT: SubSectionSize: 0x46
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000101MFUN32: ]
102MFUN32-NEXT: Subsection [
Reid Kleckner72e2ba72016-01-13 19:32:35 +0000103MFUN32-NEXT: SubSectionType: Symbols (0xF1)
104MFUN32-NEXT: SubSectionSize: 0x8
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000105MFUN32: ]
106MFUN32-NEXT: FunctionLineTable [
David Majnemer04948362016-01-13 01:05:16 +0000107MFUN32-NEXT LinkageName: _x
108MFUN32-NEXT Flags: 0x0
109MFUN32-NEXT CodeSize: 0xA
110MFUN32-NEXT FilenameSegment [
111MFUN32-NEXT Filename: d:\source.c
112MFUN32-NEXT +0x0 [
113MFUN32-NEXT LineNumberStart: 3
114MFUN32-NEXT LineNumberEndDelta: 0
115MFUN32-NEXT IsStatement: Yes
116MFUN32-NEXT ]
117MFUN32-NEXT +0x3 [
118MFUN32-NEXT LineNumberStart: 4
119MFUN32-NEXT LineNumberEndDelta: 0
120MFUN32-NEXT IsStatement: Yes
121MFUN32-NEXT ]
122MFUN32-NEXT +0x8 [
123MFUN32-NEXT LineNumberStart: 5
124MFUN32-NEXT LineNumberEndDelta: 0
125MFUN32-NEXT IsStatement: Yes
126MFUN32-NEXT ]
127MFUN32-NEXT ]
128MFUN32-NEXT ]
129MFUN32-NEXT FunctionLineTable [
130MFUN32-NEXT LinkageName: _y
131MFUN32-NEXT Flags: 0x0
132MFUN32-NEXT CodeSize: 0xA
133MFUN32-NEXT FilenameSegment [
134MFUN32-NEXT Filename: d:\source.c
135MFUN32-NEXT +0x0 [
136MFUN32-NEXT LineNumberStart: 7
137MFUN32-NEXT LineNumberEndDelta: 0
138MFUN32-NEXT IsStatement: Yes
139MFUN32-NEXT ]
140MFUN32-NEXT +0x3 [
141MFUN32-NEXT LineNumberStart: 8
142MFUN32-NEXT LineNumberEndDelta: 0
143MFUN32-NEXT IsStatement: Yes
144MFUN32-NEXT ]
145MFUN32-NEXT +0x8 [
146MFUN32-NEXT LineNumberStart: 9
147MFUN32-NEXT LineNumberEndDelta: 0
148MFUN32-NEXT IsStatement: Yes
149MFUN32-NEXT ]
150MFUN32-NEXT ]
151MFUN32-NEXT ]
152MFUN32-NEXT FunctionLineTable [
153MFUN32-NEXT LinkageName: _f
154MFUN32-NEXT Flags: 0x0
155MFUN32-NEXT CodeSize: 0x14
156MFUN32-NEXT FilenameSegment [
157MFUN32-NEXT Filename: d:\source.c
158MFUN32-NEXT +0x0 [
159MFUN32-NEXT LineNumberStart: 11
160MFUN32-NEXT LineNumberEndDelta: 0
161MFUN32-NEXT IsStatement: Yes
162MFUN32-NEXT ]
163MFUN32-NEXT +0x3 [
164MFUN32-NEXT LineNumberStart: 12
165MFUN32-NEXT LineNumberEndDelta: 0
166MFUN32-NEXT IsStatement: Yes
167MFUN32-NEXT ]
168MFUN32-NEXT +0x8 [
169MFUN32-NEXT LineNumberStart: 13
170MFUN32-NEXT LineNumberEndDelta: 0
171MFUN32-NEXT IsStatement: Yes
172MFUN32-NEXT ]
173MFUN32-NEXT +0xD [
174MFUN32-NEXT LineNumberStart: 14
175MFUN32-NEXT LineNumberEndDelta: 0
176MFUN32-NEXT IsStatement: Yes
177MFUN32-NEXT ]
178MFUN32-NEXT +0x12 [
179MFUN32-NEXT LineNumberStart: 15
180MFUN32-NEXT LineNumberEndDelta: 0
181MFUN32-NEXT IsStatement: Yes
182MFUN32-NEXT ]
183MFUN32-NEXT ]
184MFUN32-NEXT ]
Reid Kleckner72e2ba72016-01-13 19:32:35 +0000185MFUN32: ]
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000186
Zachary Turner99f02152015-02-18 19:32:05 +0000187MFUN64: CodeViewDebugInfo [
Reid Kleckner72e2ba72016-01-13 19:32:35 +0000188MFUN64: Magic: 0x4
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000189MFUN64-NEXT: Subsection [
Reid Kleckner72e2ba72016-01-13 19:32:35 +0000190MFUN64-NEXT: SubSectionType: Symbols (0xF1)
191MFUN64-NEXT: SubSectionSize: 0x52
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000192MFUN64: ]
Reid Kleckner72e2ba72016-01-13 19:32:35 +0000193MFUN64: Subsection [
194MFUN64-NEXT: SubSectionType: Symbols (0xF1)
195MFUN64-NEXT: SubSectionSize: 0x4B
Reid Kleckner8d8888f2017-07-11 23:41:41 +0000196MFUN64: GlobalProcIdSym {
Reid Kleckner72e2ba72016-01-13 19:32:35 +0000197MFUN64: CodeSize: 0xE
198MFUN64: DisplayName: x
199MFUN64: LinkageName: x
200MFUN64: }
201MFUN64: ProcEnd
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000202MFUN64: ]
203MFUN64-NEXT: Subsection [
Reid Kleckner72e2ba72016-01-13 19:32:35 +0000204MFUN64-NEXT: SubSectionType: Lines (0xF2)
205MFUN64-NEXT: SubSectionSize: 0x30
Reid Kleckner7c0c0c02015-12-15 01:23:55 +0000206MFUN64: LinkageName: x
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000207MFUN64-NEXT: ]
208MFUN64-NEXT: Subsection [
Reid Kleckner72e2ba72016-01-13 19:32:35 +0000209MFUN64-NEXT: SubSectionType: Symbols (0xF1)
210MFUN64-NEXT: SubSectionSize: 0x4B
Reid Kleckner8d8888f2017-07-11 23:41:41 +0000211MFUN64: GlobalProcIdSym {
Reid Kleckner72e2ba72016-01-13 19:32:35 +0000212MFUN64: CodeSize: 0xE
213MFUN64: DisplayName: y
214MFUN64: LinkageName: y
215MFUN64: }
216MFUN64: ProcEnd
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000217MFUN64: ]
218MFUN64-NEXT: Subsection [
Reid Kleckner72e2ba72016-01-13 19:32:35 +0000219MFUN64-NEXT: SubSectionType: Lines (0xF2)
220MFUN64-NEXT: SubSectionSize: 0x30
Reid Kleckner7c0c0c02015-12-15 01:23:55 +0000221MFUN64: LinkageName: y
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000222MFUN64-NEXT: ]
223MFUN64-NEXT: Subsection [
Reid Kleckner72e2ba72016-01-13 19:32:35 +0000224MFUN64-NEXT: SubSectionType: Symbols (0xF1)
225MFUN64-NEXT: SubSectionSize: 0x4B
Reid Kleckner8d8888f2017-07-11 23:41:41 +0000226MFUN64: GlobalProcIdSym {
Reid Kleckner72e2ba72016-01-13 19:32:35 +0000227MFUN64: CodeSize: 0x18
228MFUN64: DisplayName: f
229MFUN64: LinkageName: f
230MFUN64: }
231MFUN64: ProcEnd
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000232MFUN64: ]
233MFUN64-NEXT: Subsection [
Reid Kleckner72e2ba72016-01-13 19:32:35 +0000234MFUN64-NEXT: SubSectionType: Lines (0xF2)
235MFUN64-NEXT: SubSectionSize: 0x40
Reid Kleckner7c0c0c02015-12-15 01:23:55 +0000236MFUN64: LinkageName: f
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000237MFUN64-NEXT: ]
238MFUN64-NEXT: Subsection [
Reid Kleckner72e2ba72016-01-13 19:32:35 +0000239MFUN64-NEXT: SubSectionType: FileChecksums (0xF4)
240MFUN64-NEXT: SubSectionSize: 0x18
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000241MFUN64: ]
242MFUN64-NEXT: Subsection [
Reid Kleckner72e2ba72016-01-13 19:32:35 +0000243MFUN64-NEXT: SubSectionType: StringTable (0xF3)
244MFUN64-NEXT: SubSectionSize: 0xD
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000245MFUN64: ]
246MFUN64-NEXT: Subsection [
Reid Kleckner72e2ba72016-01-13 19:32:35 +0000247MFUN64-NEXT: SubSectionType: Symbols (0xF1)
248MFUN64-NEXT: SubSectionSize: 0x8
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000249MFUN64: ]
250MFUN64-NEXT: FunctionLineTable [
Reid Kleckner7c0c0c02015-12-15 01:23:55 +0000251MFUN64-NEXT: LinkageName: x
David Majnemer3f49e662015-07-09 00:19:51 +0000252MFUN64-NEXT: Flags: 0x0
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000253MFUN64-NEXT: CodeSize: 0xE
254MFUN64-NEXT: FilenameSegment [
255MFUN64-NEXT: Filename: d:\source.c
David Majnemer04948362016-01-13 01:05:16 +0000256MFUN64-NEXT: +0x0 [
257MFUN64-NEXT: LineNumberStart: 3
258MFUN64-NEXT: LineNumberEndDelta: 0
259MFUN64-NEXT: IsStatement: Yes
260MFUN64-NEXT: ]
261MFUN64-NEXT: +0x4 [
262MFUN64-NEXT: LineNumberStart: 4
263MFUN64-NEXT: LineNumberEndDelta: 0
264MFUN64-NEXT: IsStatement: Yes
265MFUN64-NEXT: ]
266MFUN64-NEXT: +0x9 [
267MFUN64-NEXT: LineNumberStart: 5
268MFUN64-NEXT: LineNumberEndDelta: 0
269MFUN64-NEXT: IsStatement: Yes
270MFUN64-NEXT: ]
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000271MFUN64-NEXT: ]
272MFUN64-NEXT: ]
273MFUN64-NEXT: FunctionLineTable [
Reid Kleckner7c0c0c02015-12-15 01:23:55 +0000274MFUN64-NEXT: LinkageName: y
David Majnemer3f49e662015-07-09 00:19:51 +0000275MFUN64-NEXT: Flags: 0x0
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000276MFUN64-NEXT: CodeSize: 0xE
277MFUN64-NEXT: FilenameSegment [
278MFUN64-NEXT: Filename: d:\source.c
David Majnemer04948362016-01-13 01:05:16 +0000279MFUN64-NEXT: +0x0 [
280MFUN64-NEXT: LineNumberStart: 7
281MFUN64-NEXT: LineNumberEndDelta: 0
282MFUN64-NEXT: IsStatement: Yes
283MFUN64-NEXT: ]
284MFUN64-NEXT: +0x4 [
285MFUN64-NEXT: LineNumberStart: 8
286MFUN64-NEXT: LineNumberEndDelta: 0
287MFUN64-NEXT: IsStatement: Yes
288MFUN64-NEXT: ]
289MFUN64-NEXT: +0x9 [
290MFUN64-NEXT: LineNumberStart: 9
291MFUN64-NEXT: LineNumberEndDelta: 0
292MFUN64-NEXT: IsStatement: Yes
293MFUN64-NEXT: ]
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000294MFUN64-NEXT: ]
295MFUN64-NEXT: ]
296MFUN64-NEXT: FunctionLineTable [
Reid Kleckner7c0c0c02015-12-15 01:23:55 +0000297MFUN64-NEXT: LinkageName: f
David Majnemer3f49e662015-07-09 00:19:51 +0000298MFUN64-NEXT: Flags: 0x0
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000299MFUN64-NEXT: CodeSize: 0x18
300MFUN64-NEXT: FilenameSegment [
301MFUN64-NEXT: Filename: d:\source.c
David Majnemer04948362016-01-13 01:05:16 +0000302MFUN64-NEXT: +0x0 [
303MFUN64-NEXT: LineNumberStart: 11
304MFUN64-NEXT: LineNumberEndDelta: 0
305MFUN64-NEXT: IsStatement: Yes
306MFUN64-NEXT: ]
307MFUN64-NEXT: +0x4 [
308MFUN64-NEXT: LineNumberStart: 12
309MFUN64-NEXT: LineNumberEndDelta: 0
310MFUN64-NEXT: IsStatement: Yes
311MFUN64-NEXT: ]
312MFUN64-NEXT: +0x9 [
313MFUN64-NEXT: LineNumberStart: 13
314MFUN64-NEXT: LineNumberEndDelta: 0
315MFUN64-NEXT: IsStatement: Yes
316MFUN64-NEXT: ]
317MFUN64-NEXT: +0xE [
318MFUN64-NEXT: LineNumberStart: 14
319MFUN64-NEXT: LineNumberEndDelta: 0
320MFUN64-NEXT: IsStatement: Yes
321MFUN64-NEXT: ]
322MFUN64-NEXT: +0x13 [
323MFUN64-NEXT: LineNumberStart: 15
324MFUN64-NEXT: LineNumberEndDelta: 0
325MFUN64-NEXT: IsStatement: Yes
326MFUN64-NEXT: ]
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000327MFUN64-NEXT: ]
328MFUN64-NEXT: ]
Reid Kleckner72e2ba72016-01-13 19:32:35 +0000329MFUN64: ]
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000330
Timur Iskhodzhanov11603332014-10-06 16:59:44 +0000331;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
332; The following two object files were generated using the following command:
333; D:\> cl /Z7 /c input.c
334; with the following contents of D:\input.c:
335; void g(void);
336;
337; void f(void) {
338; #line 1 "one.c"
339; g();
340; #line 2 "two.c"
341; g();
342; #line 7 "one.c"
343; g();
344; }
Timur Iskhodzhanov1ee5ac82014-10-13 17:03:13 +0000345; using 32-/64-bit versions of CL v17.00.61030 and v18.00.21005.1 respectively.
Fangrui Songe29e30b2019-05-01 05:27:20 +0000346RUN: llvm-readobj -S --codeview --section-symbols %p/Inputs/multifile-linetables.obj.coff-2012-i368 \
Timur Iskhodzhanov1ee5ac82014-10-13 17:03:13 +0000347RUN: | FileCheck %s -check-prefix MFILE32
Fangrui Songe29e30b2019-05-01 05:27:20 +0000348RUN: llvm-readobj -S --codeview --section-symbols %p/Inputs/multifile-linetables.obj.coff-2013-i368 \
Timur Iskhodzhanov11603332014-10-06 16:59:44 +0000349RUN: | FileCheck %s -check-prefix MFILE32
Fangrui Songe29e30b2019-05-01 05:27:20 +0000350RUN: llvm-readobj -S --codeview --section-symbols %p/Inputs/multifile-linetables.obj.coff-2012-x86_64 \
Timur Iskhodzhanov1ee5ac82014-10-13 17:03:13 +0000351RUN: | FileCheck %s -check-prefix MFILE64
Fangrui Songe29e30b2019-05-01 05:27:20 +0000352RUN: llvm-readobj -S --codeview --section-symbols %p/Inputs/multifile-linetables.obj.coff-2013-x86_64 \
Timur Iskhodzhanov11603332014-10-06 16:59:44 +0000353RUN: | FileCheck %s -check-prefix MFILE64
354
Zachary Turner99f02152015-02-18 19:32:05 +0000355MFILE32: CodeViewDebugInfo [
Reid Kleckner72e2ba72016-01-13 19:32:35 +0000356MFILE32: Magic: 0x4
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000357MFILE32-NEXT: Subsection [
Reid Kleckner72e2ba72016-01-13 19:32:35 +0000358MFILE32-NEXT: SubSectionType: Symbols (0xF1)
359MFILE32-NEXT: SubSectionSize: 0x51
360MFILE32: ]
361MFILE32: Subsection [
362MFILE32-NEXT: SubSectionType: FrameData (0xF5)
363MFILE32-NEXT: SubSectionSize: 0x24
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000364MFILE32: ]
Reid Kleckneraf49ecb2016-01-15 22:09:13 +0000365MFILE32: Subsection [
Reid Kleckner72e2ba72016-01-13 19:32:35 +0000366MFILE32-NEXT: SubSectionType: Symbols (0xF1)
367MFILE32-NEXT: SubSectionSize: 0x4B
Reid Kleckner8d8888f2017-07-11 23:41:41 +0000368MFILE32: GlobalProcIdSym {
Reid Kleckner72e2ba72016-01-13 19:32:35 +0000369MFILE32: CodeSize: 0x14
370MFILE32: DisplayName: f
371MFILE32: LinkageName: _f
372MFILE32: }
373MFILE32: ProcEnd
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000374MFILE32: ]
375MFILE32-NEXT: Subsection [
Reid Kleckner72e2ba72016-01-13 19:32:35 +0000376MFILE32-NEXT: SubSectionType: Lines (0xF2)
377MFILE32-NEXT: SubSectionSize: 0x64
Reid Kleckner7c0c0c02015-12-15 01:23:55 +0000378MFILE32: LinkageName: _f
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000379MFILE32-NEXT: ]
380MFILE32-NEXT: Subsection [
Reid Kleckner72e2ba72016-01-13 19:32:35 +0000381MFILE32-NEXT: SubSectionType: FileChecksums (0xF4)
382MFILE32-NEXT: SubSectionSize: 0x28
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000383MFILE32: ]
384MFILE32-NEXT: Subsection [
Reid Kleckner72e2ba72016-01-13 19:32:35 +0000385MFILE32-NEXT: SubSectionType: StringTable (0xF3)
386MFILE32-NEXT: SubSectionSize: 0x57
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000387MFILE32: ]
388MFILE32-NEXT: Subsection [
Reid Kleckner72e2ba72016-01-13 19:32:35 +0000389MFILE32-NEXT: SubSectionType: Symbols (0xF1)
390MFILE32-NEXT: SubSectionSize: 0x8
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000391MFILE32: ]
392MFILE32-NEXT: FunctionLineTable [
Reid Kleckner7c0c0c02015-12-15 01:23:55 +0000393MFILE32-NEXT: LinkageName: _f
David Majnemer3f49e662015-07-09 00:19:51 +0000394MFILE32-NEXT: Flags: 0x0
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000395MFILE32-NEXT: CodeSize: 0x14
396MFILE32-NEXT: FilenameSegment [
397MFILE32-NEXT: Filename: d:\input.c
David Majnemer04948362016-01-13 01:05:16 +0000398MFILE32-NEXT: +0x0 [
399MFILE32-NEXT: LineNumberStart: 3
400MFILE32-NEXT: LineNumberEndDelta: 0
401MFILE32-NEXT: IsStatement: Yes
402MFILE32-NEXT: ]
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000403MFILE32-NEXT: ]
404MFILE32-NEXT: FilenameSegment [
405MFILE32-NEXT: Filename: d:\one.c
David Majnemer04948362016-01-13 01:05:16 +0000406MFILE32-NEXT: +0x3 [
407MFILE32-NEXT: LineNumberStart: 1
408MFILE32-NEXT: LineNumberEndDelta: 0
409MFILE32-NEXT: IsStatement: Yes
410MFILE32-NEXT: ]
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000411MFILE32-NEXT: ]
412MFILE32-NEXT: FilenameSegment [
413MFILE32-NEXT: Filename: d:\two.c
David Majnemer04948362016-01-13 01:05:16 +0000414MFILE32-NEXT: +0x8 [
415MFILE32-NEXT: LineNumberStart: 2
416MFILE32-NEXT: LineNumberEndDelta: 0
417MFILE32-NEXT: IsStatement: Yes
418MFILE32-NEXT: ]
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000419MFILE32-NEXT: ]
420MFILE32-NEXT: FilenameSegment [
421MFILE32-NEXT: Filename: d:\one.c
David Majnemer04948362016-01-13 01:05:16 +0000422MFILE32-NEXT: +0xD [
423MFILE32-NEXT: LineNumberStart: 7
424MFILE32-NEXT: LineNumberEndDelta: 0
425MFILE32-NEXT: IsStatement: Yes
426MFILE32-NEXT: ]
427MFILE32-NEXT: +0x12 [
428MFILE32-NEXT: LineNumberStart: 8
429MFILE32-NEXT: LineNumberEndDelta: 0
430MFILE32-NEXT: IsStatement: Yes
431MFILE32-NEXT: ]
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000432MFILE32-NEXT: ]
433MFILE32-NEXT: ]
Reid Kleckner72e2ba72016-01-13 19:32:35 +0000434MFILE32: ]
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000435
Zachary Turner99f02152015-02-18 19:32:05 +0000436MFILE64: CodeViewDebugInfo [
Reid Kleckner72e2ba72016-01-13 19:32:35 +0000437MFILE64: Magic: 0x4
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000438MFILE64-NEXT: Subsection [
Reid Kleckner72e2ba72016-01-13 19:32:35 +0000439MFILE64-NEXT: SubSectionType: Symbols (0xF1)
440MFILE64-NEXT: SubSectionSize: 0x51
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000441MFILE64: ]
Reid Kleckner72e2ba72016-01-13 19:32:35 +0000442MFILE64: Subsection [
443MFILE64-NEXT: SubSectionType: Symbols (0xF1)
444MFILE64-NEXT: SubSectionSize: 0x4B
Reid Kleckner8d8888f2017-07-11 23:41:41 +0000445MFILE64: GlobalProcIdSym {
Reid Kleckner72e2ba72016-01-13 19:32:35 +0000446MFILE64: CodeSize: 0x18
447MFILE64: DisplayName: f
448MFILE64: LinkageName: f
449MFILE64: }
450MFILE64: ProcEnd
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000451MFILE64: ]
452MFILE64-NEXT: Subsection [
Reid Kleckner72e2ba72016-01-13 19:32:35 +0000453MFILE64-NEXT: SubSectionType: Lines (0xF2)
454MFILE64-NEXT: SubSectionSize: 0x64
Reid Kleckner7c0c0c02015-12-15 01:23:55 +0000455MFILE64: LinkageName: f
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000456MFILE64-NEXT: ]
457MFILE64-NEXT: Subsection [
Reid Kleckner72e2ba72016-01-13 19:32:35 +0000458MFILE64-NEXT: SubSectionType: FileChecksums (0xF4)
459MFILE64-NEXT: SubSectionSize: 0x28
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000460MFILE64: ]
461MFILE64-NEXT: Subsection [
Reid Kleckner72e2ba72016-01-13 19:32:35 +0000462MFILE64-NEXT: SubSectionType: StringTable (0xF3)
463MFILE64-NEXT: SubSectionSize: 0x1E
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000464MFILE64: ]
465MFILE64-NEXT: Subsection [
Reid Kleckner72e2ba72016-01-13 19:32:35 +0000466MFILE64-NEXT: SubSectionType: Symbols (0xF1)
467MFILE64-NEXT: SubSectionSize: 0x8
Timur Iskhodzhanov48703be2013-12-19 11:37:14 +0000468MFILE64: ]
David Majnemer04948362016-01-13 01:05:16 +0000469MFILE64-NEXT: FunctionLineTable [
470MFILE64-NEXT: LinkageName: f
471MFILE64-NEXT: Flags: 0x0
472MFILE64-NEXT: CodeSize: 0x18
473MFILE64-NEXT: FilenameSegment [
474MFILE64-NEXT: Filename: d:\input.c
475MFILE64-NEXT: +0x0 [
476MFILE64-NEXT: LineNumberStart: 3
477MFILE64-NEXT: LineNumberEndDelta: 0
478MFILE64-NEXT: IsStatement: Yes
479MFILE64-NEXT: ]
480MFILE64-NEXT: ]
481MFILE64-NEXT: FilenameSegment [
482MFILE64-NEXT: Filename: d:\one.c
483MFILE64-NEXT: +0x4 [
484MFILE64-NEXT: LineNumberStart: 1
485MFILE64-NEXT: LineNumberEndDelta: 0
486MFILE64-NEXT: IsStatement: Yes
487MFILE64-NEXT: ]
488MFILE64-NEXT: ]
489MFILE64-NEXT: FilenameSegment [
490MFILE64-NEXT: Filename: d:\two.c
491MFILE64-NEXT: +0x9 [
492MFILE64-NEXT: LineNumberStart: 2
493MFILE64-NEXT: LineNumberEndDelta: 0
494MFILE64-NEXT: IsStatement: Yes
495MFILE64-NEXT: ]
496MFILE64-NEXT: ]
497MFILE64-NEXT: FilenameSegment [
498MFILE64-NEXT: Filename: d:\one.c
499MFILE64-NEXT: +0xE [
500MFILE64-NEXT: LineNumberStart: 7
501MFILE64-NEXT: LineNumberEndDelta: 0
502MFILE64-NEXT: IsStatement: Yes
503MFILE64-NEXT: ]
504MFILE64-NEXT: +0x13 [
505MFILE64-NEXT: LineNumberStart: 8
506MFILE64-NEXT: LineNumberEndDelta: 0
507MFILE64-NEXT: IsStatement: Yes
508MFILE64-NEXT: ]
509MFILE64-NEXT: ]
Reid Kleckner72e2ba72016-01-13 19:32:35 +0000510MFILE64: ]
Timur Iskhodzhanov11603332014-10-06 16:59:44 +0000511
512;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Timur Iskhodzhanov1ee5ac82014-10-13 17:03:13 +0000513; The following object files were generated using the following command:
Timur Iskhodzhanov11603332014-10-06 16:59:44 +0000514; C:\src> cl /Z7 /Gy /c test.cc
515; with the following contents of C:\src\test.cc:
516; int f()
517; {
518; return 0;
519; }
520;
521; int g()
522; {
523; return 0;
524; }
Timur Iskhodzhanov1ee5ac82014-10-13 17:03:13 +0000525; using 32-version of CL v17.00.61030 and v18.00.21005.1 respectively.
Fangrui Songe29e30b2019-05-01 05:27:20 +0000526RUN: llvm-readobj -S --codeview --section-symbols %p/Inputs/comdat-function-linetables.obj.coff-2012-i386 \
Timur Iskhodzhanov1ee5ac82014-10-13 17:03:13 +0000527RUN: | FileCheck %s -check-prefix MCOMDAT
Fangrui Songe29e30b2019-05-01 05:27:20 +0000528RUN: llvm-readobj -S --codeview --section-symbols %p/Inputs/comdat-function-linetables.obj.coff-2013-i386 \
Timur Iskhodzhanov11603332014-10-06 16:59:44 +0000529RUN: | FileCheck %s -check-prefix MCOMDAT
530
Reid Kleckner8d8888f2017-07-11 23:41:41 +0000531MCOMDAT: GlobalProcIdSym {
Reid Kleckner72e2ba72016-01-13 19:32:35 +0000532MCOMDAT: CodeSize: 0x7
533MCOMDAT: DisplayName: f
534MCOMDAT: LinkageName: ?f@@YAHXZ
535MCOMDAT: }
Timur Iskhodzhanov11603332014-10-06 16:59:44 +0000536MCOMDAT: FunctionLineTable [
Reid Kleckner7c0c0c02015-12-15 01:23:55 +0000537MCOMDAT-NEXT: LinkageName: ?f@@YAHXZ
David Majnemer3f49e662015-07-09 00:19:51 +0000538MCOMDAT-NEXT: Flags: 0x0
Timur Iskhodzhanov56af52f2014-10-23 22:25:31 +0000539MCOMDAT-NEXT: CodeSize: 0x7
540MCOMDAT-NEXT: FilenameSegment [
541MCOMDAT-NEXT: Filename: c:\src\test.cc
David Majnemer04948362016-01-13 01:05:16 +0000542MCOMDAT-NEXT: +0x0 [
543MCOMDAT-NEXT: LineNumberStart: 2
544MCOMDAT-NEXT: LineNumberEndDelta: 0
545MCOMDAT-NEXT: IsStatement: Yes
546MCOMDAT-NEXT: ]
547MCOMDAT-NEXT: +0x3 [
548MCOMDAT-NEXT: LineNumberStart: 3
549MCOMDAT-NEXT: LineNumberEndDelta: 0
550MCOMDAT-NEXT: IsStatement: Yes
551MCOMDAT-NEXT: ]
552MCOMDAT-NEXT: +0x5 [
553MCOMDAT-NEXT: LineNumberStart: 4
554MCOMDAT-NEXT: LineNumberEndDelta: 0
555MCOMDAT-NEXT: IsStatement: Yes
556MCOMDAT-NEXT: ]
Timur Iskhodzhanov56af52f2014-10-23 22:25:31 +0000557MCOMDAT-NEXT: ]
558MCOMDAT-NEXT: ]
Reid Kleckner8d8888f2017-07-11 23:41:41 +0000559MCOMDAT: GlobalProcIdSym {
Reid Kleckner72e2ba72016-01-13 19:32:35 +0000560MCOMDAT: CodeSize: 0x7
561MCOMDAT: DisplayName: g
562MCOMDAT: LinkageName: ?g@@YAHXZ
563MCOMDAT: }
Timur Iskhodzhanov11603332014-10-06 16:59:44 +0000564MCOMDAT: FunctionLineTable [
Reid Kleckner7c0c0c02015-12-15 01:23:55 +0000565MCOMDAT-NEXT: LinkageName: ?g@@YAHXZ
David Majnemer3f49e662015-07-09 00:19:51 +0000566MCOMDAT-NEXT: Flags: 0x0
Timur Iskhodzhanov56af52f2014-10-23 22:25:31 +0000567MCOMDAT-NEXT: CodeSize: 0x7
568MCOMDAT-NEXT: FilenameSegment [
569MCOMDAT-NEXT: Filename: c:\src\test.cc
David Majnemer04948362016-01-13 01:05:16 +0000570MCOMDAT-NEXT: +0x0 [
571MCOMDAT-NEXT: LineNumberStart: 7
572MCOMDAT-NEXT: LineNumberEndDelta: 0
573MCOMDAT-NEXT: IsStatement: Yes
574MCOMDAT-NEXT: ]
575MCOMDAT-NEXT: +0x3 [
576MCOMDAT-NEXT: LineNumberStart: 8
577MCOMDAT-NEXT: LineNumberEndDelta: 0
578MCOMDAT-NEXT: IsStatement: Yes
579MCOMDAT-NEXT: ]
580MCOMDAT-NEXT: +0x5 [
581MCOMDAT-NEXT: LineNumberStart: 9
582MCOMDAT-NEXT: LineNumberEndDelta: 0
583MCOMDAT-NEXT: IsStatement: Yes
584MCOMDAT-NEXT: ]
Timur Iskhodzhanov56af52f2014-10-23 22:25:31 +0000585MCOMDAT-NEXT: ]
586MCOMDAT-NEXT: ]