• 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:   Section: .debug$S (2)
32MFUN32-NEXT:   Magic: 0x4
33MFUN32-NEXT:   Subsection [
34MFUN32-NEXT:     SubSectionType: Symbols (0xF1)
35MFUN32-NEXT:     SubSectionSize: 0x52
36MFUN32:        ]
37MFUN32:        Subsection [
38MFUN32-NEXT:     SubSectionType: FrameData (0xF5)
39MFUN32-NEXT:     SubSectionSize: 0x24
40MFUN32:        ]
41MFUN32:        Subsection [
42MFUN32-NEXT:     SubSectionType: Symbols (0xF1)
43MFUN32-NEXT:     SubSectionSize: 0x4B
44MFUN32:          ProcStart {
45MFUN32:            CodeSize: 0xA
46MFUN32:            DisplayName: x
47MFUN32:            LinkageName: _x
48MFUN32:          }
49MFUN32:          ProcEnd
50MFUN32:        ]
51MFUN32:        Subsection [
52MFUN32-NEXT:     SubSectionType: Lines (0xF2)
53MFUN32-NEXT:     SubSectionSize: 0x30
54MFUN32:          LinkageName: _x
55MFUN32-NEXT:   ]
56MFUN32-NEXT:   Subsection [
57MFUN32-NEXT:     SubSectionType: FrameData (0xF5)
58MFUN32-NEXT:     SubSectionSize: 0x24
59MFUN32:        ]
60MFUN32:        Subsection [
61MFUN32-NEXT:     SubSectionType: Symbols (0xF1)
62MFUN32-NEXT:     SubSectionSize: 0x4B
63MFUN32:          ProcStart {
64MFUN32:            CodeSize: 0xA
65MFUN32:            DisplayName: y
66MFUN32:            LinkageName: _y
67MFUN32:          }
68MFUN32:          ProcEnd
69MFUN32:        ]
70MFUN32-NEXT:   Subsection [
71MFUN32-NEXT:     SubSectionType: Lines (0xF2)
72MFUN32-NEXT:     SubSectionSize: 0x30
73MFUN32:          LinkageName: _y
74MFUN32-NEXT:   ]
75MFUN32-NEXT:   Subsection [
76MFUN32-NEXT:     SubSectionType: FrameData (0xF5)
77MFUN32-NEXT:     SubSectionSize: 0x24
78MFUN32:        ]
79MFUN32:        Subsection [
80MFUN32-NEXT:     SubSectionType: Symbols (0xF1)
81MFUN32-NEXT:     SubSectionSize: 0x4B
82MFUN32:          ProcStart {
83MFUN32:            CodeSize: 0x14
84MFUN32:            DisplayName: f
85MFUN32:            LinkageName: _f
86MFUN32:          }
87MFUN32:          ProcEnd
88MFUN32:        ]
89MFUN32:        Subsection [
90MFUN32-NEXT:     SubSectionType: Lines (0xF2)
91MFUN32-NEXT:     SubSectionSize: 0x40
92MFUN32:          LinkageName: _f
93MFUN32-NEXT:   ]
94MFUN32-NEXT:   Subsection [
95MFUN32-NEXT:     SubSectionType: FileChecksums (0xF4)
96MFUN32-NEXT:     SubSectionSize: 0x18
97MFUN32:        ]
98MFUN32-NEXT:   Subsection [
99MFUN32-NEXT:     SubSectionType: StringTable (0xF3)
100MFUN32-NEXT:     SubSectionSize: 0x46
101MFUN32:        ]
102MFUN32-NEXT:   Subsection [
103MFUN32-NEXT:     SubSectionType: Symbols (0xF1)
104MFUN32-NEXT:     SubSectionSize: 0x8
105MFUN32:        ]
106MFUN32-NEXT:   FunctionLineTable [
107MFUN32-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    ]
185MFUN32:      ]
186
187MFUN64:      CodeViewDebugInfo [
188MFUN64:        Magic: 0x4
189MFUN64-NEXT:   Subsection [
190MFUN64-NEXT:     SubSectionType: Symbols (0xF1)
191MFUN64-NEXT:     SubSectionSize: 0x52
192MFUN64:        ]
193MFUN64:        Subsection [
194MFUN64-NEXT:     SubSectionType: Symbols (0xF1)
195MFUN64-NEXT:     SubSectionSize: 0x4B
196MFUN64:          ProcStart {
197MFUN64:            CodeSize: 0xE
198MFUN64:            DisplayName: x
199MFUN64:            LinkageName: x
200MFUN64:          }
201MFUN64:          ProcEnd
202MFUN64:        ]
203MFUN64-NEXT:   Subsection [
204MFUN64-NEXT:     SubSectionType: Lines (0xF2)
205MFUN64-NEXT:     SubSectionSize: 0x30
206MFUN64:          LinkageName: x
207MFUN64-NEXT:   ]
208MFUN64-NEXT:   Subsection [
209MFUN64-NEXT:     SubSectionType: Symbols (0xF1)
210MFUN64-NEXT:     SubSectionSize: 0x4B
211MFUN64:          ProcStart {
212MFUN64:            CodeSize: 0xE
213MFUN64:            DisplayName: y
214MFUN64:            LinkageName: y
215MFUN64:          }
216MFUN64:          ProcEnd
217MFUN64:        ]
218MFUN64-NEXT:   Subsection [
219MFUN64-NEXT:     SubSectionType: Lines (0xF2)
220MFUN64-NEXT:     SubSectionSize: 0x30
221MFUN64:          LinkageName: y
222MFUN64-NEXT:   ]
223MFUN64-NEXT:   Subsection [
224MFUN64-NEXT:     SubSectionType: Symbols (0xF1)
225MFUN64-NEXT:     SubSectionSize: 0x4B
226MFUN64:          ProcStart {
227MFUN64:            CodeSize: 0x18
228MFUN64:            DisplayName: f
229MFUN64:            LinkageName: f
230MFUN64:          }
231MFUN64:          ProcEnd
232MFUN64:        ]
233MFUN64-NEXT:   Subsection [
234MFUN64-NEXT:     SubSectionType: Lines (0xF2)
235MFUN64-NEXT:     SubSectionSize: 0x40
236MFUN64:          LinkageName: f
237MFUN64-NEXT:   ]
238MFUN64-NEXT:   Subsection [
239MFUN64-NEXT:     SubSectionType: FileChecksums (0xF4)
240MFUN64-NEXT:     SubSectionSize: 0x18
241MFUN64:        ]
242MFUN64-NEXT:   Subsection [
243MFUN64-NEXT:     SubSectionType: StringTable (0xF3)
244MFUN64-NEXT:     SubSectionSize: 0xD
245MFUN64:        ]
246MFUN64-NEXT:   Subsection [
247MFUN64-NEXT:     SubSectionType: Symbols (0xF1)
248MFUN64-NEXT:     SubSectionSize: 0x8
249MFUN64:        ]
250MFUN64-NEXT:   FunctionLineTable [
251MFUN64-NEXT:     LinkageName: x
252MFUN64-NEXT:     Flags: 0x0
253MFUN64-NEXT:     CodeSize: 0xE
254MFUN64-NEXT:     FilenameSegment [
255MFUN64-NEXT:       Filename: d:\source.c
256MFUN64-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:       ]
271MFUN64-NEXT:     ]
272MFUN64-NEXT:   ]
273MFUN64-NEXT:   FunctionLineTable [
274MFUN64-NEXT:     LinkageName: y
275MFUN64-NEXT:     Flags: 0x0
276MFUN64-NEXT:     CodeSize: 0xE
277MFUN64-NEXT:     FilenameSegment [
278MFUN64-NEXT:       Filename: d:\source.c
279MFUN64-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:       ]
294MFUN64-NEXT:     ]
295MFUN64-NEXT:   ]
296MFUN64-NEXT:   FunctionLineTable [
297MFUN64-NEXT:     LinkageName: f
298MFUN64-NEXT:     Flags: 0x0
299MFUN64-NEXT:     CodeSize: 0x18
300MFUN64-NEXT:     FilenameSegment [
301MFUN64-NEXT:       Filename: d:\source.c
302MFUN64-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:       ]
327MFUN64-NEXT:     ]
328MFUN64-NEXT:   ]
329MFUN64:      ]
330
331;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
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;   }
345; using 32-/64-bit versions of CL v17.00.61030 and v18.00.21005.1 respectively.
346RUN: llvm-readobj -s -codeview -section-symbols %p/Inputs/multifile-linetables.obj.coff-2012-i368 \
347RUN:   | FileCheck %s -check-prefix MFILE32
348RUN: llvm-readobj -s -codeview -section-symbols %p/Inputs/multifile-linetables.obj.coff-2013-i368 \
349RUN:   | FileCheck %s -check-prefix MFILE32
350RUN: llvm-readobj -s -codeview -section-symbols %p/Inputs/multifile-linetables.obj.coff-2012-x86_64 \
351RUN:   | FileCheck %s -check-prefix MFILE64
352RUN: llvm-readobj -s -codeview -section-symbols %p/Inputs/multifile-linetables.obj.coff-2013-x86_64 \
353RUN:   | FileCheck %s -check-prefix MFILE64
354
355MFILE32:      CodeViewDebugInfo [
356MFILE32:        Magic: 0x4
357MFILE32-NEXT:   Subsection [
358MFILE32-NEXT:     SubSectionType: Symbols (0xF1)
359MFILE32-NEXT:     SubSectionSize: 0x51
360MFILE32:        ]
361MFILE32:        Subsection [
362MFILE32-NEXT:     SubSectionType: FrameData (0xF5)
363MFILE32-NEXT:     SubSectionSize: 0x24
364MFILE32:        ]
365MFILE32:        Subsection [
366MFILE32-NEXT:     SubSectionType: Symbols (0xF1)
367MFILE32-NEXT:     SubSectionSize: 0x4B
368MFILE32:          ProcStart {
369MFILE32:            CodeSize: 0x14
370MFILE32:            DisplayName: f
371MFILE32:            LinkageName: _f
372MFILE32:          }
373MFILE32:          ProcEnd
374MFILE32:        ]
375MFILE32-NEXT:   Subsection [
376MFILE32-NEXT:     SubSectionType: Lines (0xF2)
377MFILE32-NEXT:     SubSectionSize: 0x64
378MFILE32:          LinkageName: _f
379MFILE32-NEXT:   ]
380MFILE32-NEXT:   Subsection [
381MFILE32-NEXT:     SubSectionType: FileChecksums (0xF4)
382MFILE32-NEXT:     SubSectionSize: 0x28
383MFILE32:        ]
384MFILE32-NEXT:   Subsection [
385MFILE32-NEXT:     SubSectionType: StringTable (0xF3)
386MFILE32-NEXT:     SubSectionSize: 0x57
387MFILE32:        ]
388MFILE32-NEXT:   Subsection [
389MFILE32-NEXT:     SubSectionType: Symbols (0xF1)
390MFILE32-NEXT:     SubSectionSize: 0x8
391MFILE32:        ]
392MFILE32-NEXT:   FunctionLineTable [
393MFILE32-NEXT:     LinkageName: _f
394MFILE32-NEXT:     Flags: 0x0
395MFILE32-NEXT:     CodeSize: 0x14
396MFILE32-NEXT:     FilenameSegment [
397MFILE32-NEXT:       Filename: d:\input.c
398MFILE32-NEXT:       +0x0 [
399MFILE32-NEXT:         LineNumberStart: 3
400MFILE32-NEXT:         LineNumberEndDelta: 0
401MFILE32-NEXT:         IsStatement: Yes
402MFILE32-NEXT:       ]
403MFILE32-NEXT:     ]
404MFILE32-NEXT:     FilenameSegment [
405MFILE32-NEXT:       Filename: d:\one.c
406MFILE32-NEXT:       +0x3 [
407MFILE32-NEXT:         LineNumberStart: 1
408MFILE32-NEXT:         LineNumberEndDelta: 0
409MFILE32-NEXT:         IsStatement: Yes
410MFILE32-NEXT:       ]
411MFILE32-NEXT:     ]
412MFILE32-NEXT:     FilenameSegment [
413MFILE32-NEXT:       Filename: d:\two.c
414MFILE32-NEXT:       +0x8 [
415MFILE32-NEXT:         LineNumberStart: 2
416MFILE32-NEXT:         LineNumberEndDelta: 0
417MFILE32-NEXT:         IsStatement: Yes
418MFILE32-NEXT:       ]
419MFILE32-NEXT:     ]
420MFILE32-NEXT:     FilenameSegment [
421MFILE32-NEXT:       Filename: d:\one.c
422MFILE32-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:       ]
432MFILE32-NEXT:     ]
433MFILE32-NEXT:   ]
434MFILE32:      ]
435
436MFILE64:      CodeViewDebugInfo [
437MFILE64:        Magic: 0x4
438MFILE64-NEXT:   Subsection [
439MFILE64-NEXT:     SubSectionType: Symbols (0xF1)
440MFILE64-NEXT:     SubSectionSize: 0x51
441MFILE64:        ]
442MFILE64:        Subsection [
443MFILE64-NEXT:     SubSectionType: Symbols (0xF1)
444MFILE64-NEXT:     SubSectionSize: 0x4B
445MFILE64:          ProcStart {
446MFILE64:            CodeSize: 0x18
447MFILE64:            DisplayName: f
448MFILE64:            LinkageName: f
449MFILE64:          }
450MFILE64:          ProcEnd
451MFILE64:        ]
452MFILE64-NEXT:   Subsection [
453MFILE64-NEXT:     SubSectionType: Lines (0xF2)
454MFILE64-NEXT:     SubSectionSize: 0x64
455MFILE64:          LinkageName: f
456MFILE64-NEXT:   ]
457MFILE64-NEXT:   Subsection [
458MFILE64-NEXT:     SubSectionType: FileChecksums (0xF4)
459MFILE64-NEXT:     SubSectionSize: 0x28
460MFILE64:        ]
461MFILE64-NEXT:   Subsection [
462MFILE64-NEXT:     SubSectionType: StringTable (0xF3)
463MFILE64-NEXT:     SubSectionSize: 0x1E
464MFILE64:        ]
465MFILE64-NEXT:   Subsection [
466MFILE64-NEXT:     SubSectionType: Symbols (0xF1)
467MFILE64-NEXT:     SubSectionSize: 0x8
468MFILE64:        ]
469MFILE64-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:    ]
510MFILE64:      ]
511
512;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
513; The following object files were generated using the following command:
514;   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;   }
525; using 32-version of CL v17.00.61030 and v18.00.21005.1 respectively.
526RUN: llvm-readobj -s -codeview -section-symbols %p/Inputs/comdat-function-linetables.obj.coff-2012-i386 \
527RUN:   | FileCheck %s -check-prefix MCOMDAT
528RUN: llvm-readobj -s -codeview -section-symbols %p/Inputs/comdat-function-linetables.obj.coff-2013-i386 \
529RUN:   | FileCheck %s -check-prefix MCOMDAT
530
531MCOMDAT:      ProcStart {
532MCOMDAT:        CodeSize: 0x7
533MCOMDAT:        DisplayName: f
534MCOMDAT:        LinkageName: ?f@@YAHXZ
535MCOMDAT:      }
536MCOMDAT:      FunctionLineTable [
537MCOMDAT-NEXT:   LinkageName: ?f@@YAHXZ
538MCOMDAT-NEXT:   Flags: 0x0
539MCOMDAT-NEXT:   CodeSize: 0x7
540MCOMDAT-NEXT:   FilenameSegment [
541MCOMDAT-NEXT:     Filename: c:\src\test.cc
542MCOMDAT-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:     ]
557MCOMDAT-NEXT:   ]
558MCOMDAT-NEXT: ]
559MCOMDAT:      ProcStart {
560MCOMDAT:        CodeSize: 0x7
561MCOMDAT:        DisplayName: g
562MCOMDAT:        LinkageName: ?g@@YAHXZ
563MCOMDAT:      }
564MCOMDAT:      FunctionLineTable [
565MCOMDAT-NEXT:   LinkageName: ?g@@YAHXZ
566MCOMDAT-NEXT:   Flags: 0x0
567MCOMDAT-NEXT:   CodeSize: 0x7
568MCOMDAT-NEXT:   FilenameSegment [
569MCOMDAT-NEXT:     Filename: c:\src\test.cc
570MCOMDAT-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:     ]
585MCOMDAT-NEXT:   ]
586MCOMDAT-NEXT: ]
587