Recommit "rL366894: [yaml2obj] - Allow custom fields for the SHT_UNDEF sections."
[llvm-complete.git] / test / tools / llvm-readobj / codeview-linetables.test
blob81d193ad30efaf8ae8bf03e8c99f788522f7fb43
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);
7 ;   void x(void) {
8 ;     z();
9 ;   }
11 ;   void y(void) {
12 ;     z();
13 ;   }
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.
21 RUN: llvm-readobj -S --codeview --section-symbols %p/Inputs/multifunction-linetables.obj.coff-2012-i368 \
22 RUN:   | FileCheck %s -check-prefix MFUN32
23 RUN: llvm-readobj -S --codeview --section-symbols %p/Inputs/multifunction-linetables.obj.coff-2013-i368 \
24 RUN:   | FileCheck %s -check-prefix MFUN32
25 RUN: llvm-readobj -S --codeview --section-symbols %p/Inputs/multifunction-linetables.obj.coff-2012-x86_64 \
26 RUN:   | FileCheck %s -check-prefix MFUN64
27 RUN: llvm-readobj -S --codeview --section-symbols %p/Inputs/multifunction-linetables.obj.coff-2013-x86_64 \
28 RUN:   | FileCheck %s -check-prefix MFUN64
30 MFUN32:      CodeViewDebugInfo [
31 MFUN32-NEXT:   Section: .debug$S (2)
32 MFUN32-NEXT:   Magic: 0x4
33 MFUN32-NEXT:   Subsection [
34 MFUN32-NEXT:     SubSectionType: Symbols (0xF1)
35 MFUN32-NEXT:     SubSectionSize: 0x52
36 MFUN32:        ]
37 MFUN32:        Subsection [
38 MFUN32-NEXT:     SubSectionType: FrameData (0xF5)
39 MFUN32-NEXT:     SubSectionSize: 0x24
40 MFUN32:        ]
41 MFUN32:        Subsection [
42 MFUN32-NEXT:     SubSectionType: Symbols (0xF1)
43 MFUN32-NEXT:     SubSectionSize: 0x4B
44 MFUN32:          GlobalProcIdSym {
45 MFUN32:            CodeSize: 0xA
46 MFUN32:            DisplayName: x
47 MFUN32:            LinkageName: _x
48 MFUN32:          }
49 MFUN32:          ProcEnd
50 MFUN32:        ]
51 MFUN32:        Subsection [
52 MFUN32-NEXT:     SubSectionType: Lines (0xF2)
53 MFUN32-NEXT:     SubSectionSize: 0x30
54 MFUN32:          LinkageName: _x
55 MFUN32-NEXT:   ]
56 MFUN32-NEXT:   Subsection [
57 MFUN32-NEXT:     SubSectionType: FrameData (0xF5)
58 MFUN32-NEXT:     SubSectionSize: 0x24
59 MFUN32:        ]
60 MFUN32:        Subsection [
61 MFUN32-NEXT:     SubSectionType: Symbols (0xF1)
62 MFUN32-NEXT:     SubSectionSize: 0x4B
63 MFUN32:          GlobalProcIdSym {
64 MFUN32:            CodeSize: 0xA
65 MFUN32:            DisplayName: y
66 MFUN32:            LinkageName: _y
67 MFUN32:          }
68 MFUN32:          ProcEnd
69 MFUN32:        ]
70 MFUN32-NEXT:   Subsection [
71 MFUN32-NEXT:     SubSectionType: Lines (0xF2)
72 MFUN32-NEXT:     SubSectionSize: 0x30
73 MFUN32:          LinkageName: _y
74 MFUN32-NEXT:   ]
75 MFUN32-NEXT:   Subsection [
76 MFUN32-NEXT:     SubSectionType: FrameData (0xF5)
77 MFUN32-NEXT:     SubSectionSize: 0x24
78 MFUN32:        ]
79 MFUN32:        Subsection [
80 MFUN32-NEXT:     SubSectionType: Symbols (0xF1)
81 MFUN32-NEXT:     SubSectionSize: 0x4B
82 MFUN32:          GlobalProcIdSym {
83 MFUN32:            CodeSize: 0x14
84 MFUN32:            DisplayName: f
85 MFUN32:            LinkageName: _f
86 MFUN32:          }
87 MFUN32:          ProcEnd
88 MFUN32:        ]
89 MFUN32:        Subsection [
90 MFUN32-NEXT:     SubSectionType: Lines (0xF2)
91 MFUN32-NEXT:     SubSectionSize: 0x40
92 MFUN32:          LinkageName: _f
93 MFUN32-NEXT:   ]
94 MFUN32-NEXT:   Subsection [
95 MFUN32-NEXT:     SubSectionType: FileChecksums (0xF4)
96 MFUN32-NEXT:     SubSectionSize: 0x18
97 MFUN32:        ]
98 MFUN32-NEXT:   Subsection [
99 MFUN32-NEXT:     SubSectionType: StringTable (0xF3)
100 MFUN32-NEXT:     SubSectionSize: 0x46
101 MFUN32:        ]
102 MFUN32-NEXT:   Subsection [
103 MFUN32-NEXT:     SubSectionType: Symbols (0xF1)
104 MFUN32-NEXT:     SubSectionSize: 0x8
105 MFUN32:        ]
106 MFUN32-NEXT:   FunctionLineTable [
107 MFUN32-NEXT      LinkageName: _x
108 MFUN32-NEXT      Flags: 0x0
109 MFUN32-NEXT      CodeSize: 0xA
110 MFUN32-NEXT      FilenameSegment [
111 MFUN32-NEXT        Filename: d:\source.c
112 MFUN32-NEXT        +0x0 [
113 MFUN32-NEXT          LineNumberStart: 3
114 MFUN32-NEXT          LineNumberEndDelta: 0
115 MFUN32-NEXT          IsStatement: Yes
116 MFUN32-NEXT        ]
117 MFUN32-NEXT        +0x3 [
118 MFUN32-NEXT          LineNumberStart: 4
119 MFUN32-NEXT          LineNumberEndDelta: 0
120 MFUN32-NEXT          IsStatement: Yes
121 MFUN32-NEXT        ]
122 MFUN32-NEXT        +0x8 [
123 MFUN32-NEXT          LineNumberStart: 5
124 MFUN32-NEXT          LineNumberEndDelta: 0
125 MFUN32-NEXT          IsStatement: Yes
126 MFUN32-NEXT        ]
127 MFUN32-NEXT      ]
128 MFUN32-NEXT    ]
129 MFUN32-NEXT    FunctionLineTable [
130 MFUN32-NEXT      LinkageName: _y
131 MFUN32-NEXT      Flags: 0x0
132 MFUN32-NEXT      CodeSize: 0xA
133 MFUN32-NEXT      FilenameSegment [
134 MFUN32-NEXT        Filename: d:\source.c
135 MFUN32-NEXT        +0x0 [
136 MFUN32-NEXT          LineNumberStart: 7
137 MFUN32-NEXT          LineNumberEndDelta: 0
138 MFUN32-NEXT          IsStatement: Yes
139 MFUN32-NEXT        ]
140 MFUN32-NEXT        +0x3 [
141 MFUN32-NEXT          LineNumberStart: 8
142 MFUN32-NEXT          LineNumberEndDelta: 0
143 MFUN32-NEXT          IsStatement: Yes
144 MFUN32-NEXT        ]
145 MFUN32-NEXT        +0x8 [
146 MFUN32-NEXT          LineNumberStart: 9
147 MFUN32-NEXT          LineNumberEndDelta: 0
148 MFUN32-NEXT          IsStatement: Yes
149 MFUN32-NEXT        ]
150 MFUN32-NEXT      ]
151 MFUN32-NEXT    ]
152 MFUN32-NEXT    FunctionLineTable [
153 MFUN32-NEXT      LinkageName: _f
154 MFUN32-NEXT      Flags: 0x0
155 MFUN32-NEXT      CodeSize: 0x14
156 MFUN32-NEXT      FilenameSegment [
157 MFUN32-NEXT        Filename: d:\source.c
158 MFUN32-NEXT        +0x0 [
159 MFUN32-NEXT          LineNumberStart: 11
160 MFUN32-NEXT          LineNumberEndDelta: 0
161 MFUN32-NEXT          IsStatement: Yes
162 MFUN32-NEXT        ]
163 MFUN32-NEXT        +0x3 [
164 MFUN32-NEXT          LineNumberStart: 12
165 MFUN32-NEXT          LineNumberEndDelta: 0
166 MFUN32-NEXT          IsStatement: Yes
167 MFUN32-NEXT        ]
168 MFUN32-NEXT        +0x8 [
169 MFUN32-NEXT          LineNumberStart: 13
170 MFUN32-NEXT          LineNumberEndDelta: 0
171 MFUN32-NEXT          IsStatement: Yes
172 MFUN32-NEXT        ]
173 MFUN32-NEXT        +0xD [
174 MFUN32-NEXT          LineNumberStart: 14
175 MFUN32-NEXT          LineNumberEndDelta: 0
176 MFUN32-NEXT          IsStatement: Yes
177 MFUN32-NEXT        ]
178 MFUN32-NEXT        +0x12 [
179 MFUN32-NEXT          LineNumberStart: 15
180 MFUN32-NEXT          LineNumberEndDelta: 0
181 MFUN32-NEXT          IsStatement: Yes
182 MFUN32-NEXT        ]
183 MFUN32-NEXT      ]
184 MFUN32-NEXT    ]
185 MFUN32:      ]
187 MFUN64:      CodeViewDebugInfo [
188 MFUN64:        Magic: 0x4
189 MFUN64-NEXT:   Subsection [
190 MFUN64-NEXT:     SubSectionType: Symbols (0xF1)
191 MFUN64-NEXT:     SubSectionSize: 0x52
192 MFUN64:        ]
193 MFUN64:        Subsection [
194 MFUN64-NEXT:     SubSectionType: Symbols (0xF1)
195 MFUN64-NEXT:     SubSectionSize: 0x4B
196 MFUN64:          GlobalProcIdSym {
197 MFUN64:            CodeSize: 0xE
198 MFUN64:            DisplayName: x
199 MFUN64:            LinkageName: x
200 MFUN64:          }
201 MFUN64:          ProcEnd
202 MFUN64:        ]
203 MFUN64-NEXT:   Subsection [
204 MFUN64-NEXT:     SubSectionType: Lines (0xF2)
205 MFUN64-NEXT:     SubSectionSize: 0x30
206 MFUN64:          LinkageName: x
207 MFUN64-NEXT:   ]
208 MFUN64-NEXT:   Subsection [
209 MFUN64-NEXT:     SubSectionType: Symbols (0xF1)
210 MFUN64-NEXT:     SubSectionSize: 0x4B
211 MFUN64:          GlobalProcIdSym {
212 MFUN64:            CodeSize: 0xE
213 MFUN64:            DisplayName: y
214 MFUN64:            LinkageName: y
215 MFUN64:          }
216 MFUN64:          ProcEnd
217 MFUN64:        ]
218 MFUN64-NEXT:   Subsection [
219 MFUN64-NEXT:     SubSectionType: Lines (0xF2)
220 MFUN64-NEXT:     SubSectionSize: 0x30
221 MFUN64:          LinkageName: y
222 MFUN64-NEXT:   ]
223 MFUN64-NEXT:   Subsection [
224 MFUN64-NEXT:     SubSectionType: Symbols (0xF1)
225 MFUN64-NEXT:     SubSectionSize: 0x4B
226 MFUN64:          GlobalProcIdSym {
227 MFUN64:            CodeSize: 0x18
228 MFUN64:            DisplayName: f
229 MFUN64:            LinkageName: f
230 MFUN64:          }
231 MFUN64:          ProcEnd
232 MFUN64:        ]
233 MFUN64-NEXT:   Subsection [
234 MFUN64-NEXT:     SubSectionType: Lines (0xF2)
235 MFUN64-NEXT:     SubSectionSize: 0x40
236 MFUN64:          LinkageName: f
237 MFUN64-NEXT:   ]
238 MFUN64-NEXT:   Subsection [
239 MFUN64-NEXT:     SubSectionType: FileChecksums (0xF4)
240 MFUN64-NEXT:     SubSectionSize: 0x18
241 MFUN64:        ]
242 MFUN64-NEXT:   Subsection [
243 MFUN64-NEXT:     SubSectionType: StringTable (0xF3)
244 MFUN64-NEXT:     SubSectionSize: 0xD
245 MFUN64:        ]
246 MFUN64-NEXT:   Subsection [
247 MFUN64-NEXT:     SubSectionType: Symbols (0xF1)
248 MFUN64-NEXT:     SubSectionSize: 0x8
249 MFUN64:        ]
250 MFUN64-NEXT:   FunctionLineTable [
251 MFUN64-NEXT:     LinkageName: x
252 MFUN64-NEXT:     Flags: 0x0
253 MFUN64-NEXT:     CodeSize: 0xE
254 MFUN64-NEXT:     FilenameSegment [
255 MFUN64-NEXT:       Filename: d:\source.c
256 MFUN64-NEXT:       +0x0 [
257 MFUN64-NEXT:         LineNumberStart: 3
258 MFUN64-NEXT:         LineNumberEndDelta: 0
259 MFUN64-NEXT:         IsStatement: Yes
260 MFUN64-NEXT:       ]
261 MFUN64-NEXT:       +0x4 [
262 MFUN64-NEXT:         LineNumberStart: 4
263 MFUN64-NEXT:         LineNumberEndDelta: 0
264 MFUN64-NEXT:         IsStatement: Yes
265 MFUN64-NEXT:       ]
266 MFUN64-NEXT:       +0x9 [
267 MFUN64-NEXT:         LineNumberStart: 5
268 MFUN64-NEXT:         LineNumberEndDelta: 0
269 MFUN64-NEXT:         IsStatement: Yes
270 MFUN64-NEXT:       ]
271 MFUN64-NEXT:     ]
272 MFUN64-NEXT:   ]
273 MFUN64-NEXT:   FunctionLineTable [
274 MFUN64-NEXT:     LinkageName: y
275 MFUN64-NEXT:     Flags: 0x0
276 MFUN64-NEXT:     CodeSize: 0xE
277 MFUN64-NEXT:     FilenameSegment [
278 MFUN64-NEXT:       Filename: d:\source.c
279 MFUN64-NEXT:       +0x0 [
280 MFUN64-NEXT:         LineNumberStart: 7
281 MFUN64-NEXT:         LineNumberEndDelta: 0
282 MFUN64-NEXT:         IsStatement: Yes
283 MFUN64-NEXT:       ]
284 MFUN64-NEXT:       +0x4 [
285 MFUN64-NEXT:         LineNumberStart: 8
286 MFUN64-NEXT:         LineNumberEndDelta: 0
287 MFUN64-NEXT:         IsStatement: Yes
288 MFUN64-NEXT:       ]
289 MFUN64-NEXT:       +0x9 [
290 MFUN64-NEXT:         LineNumberStart: 9
291 MFUN64-NEXT:         LineNumberEndDelta: 0
292 MFUN64-NEXT:         IsStatement: Yes
293 MFUN64-NEXT:       ]
294 MFUN64-NEXT:     ]
295 MFUN64-NEXT:   ]
296 MFUN64-NEXT:   FunctionLineTable [
297 MFUN64-NEXT:     LinkageName: f
298 MFUN64-NEXT:     Flags: 0x0
299 MFUN64-NEXT:     CodeSize: 0x18
300 MFUN64-NEXT:     FilenameSegment [
301 MFUN64-NEXT:       Filename: d:\source.c
302 MFUN64-NEXT:       +0x0 [
303 MFUN64-NEXT:         LineNumberStart: 11
304 MFUN64-NEXT:         LineNumberEndDelta: 0
305 MFUN64-NEXT:         IsStatement: Yes
306 MFUN64-NEXT:       ]
307 MFUN64-NEXT:       +0x4 [
308 MFUN64-NEXT:         LineNumberStart: 12
309 MFUN64-NEXT:         LineNumberEndDelta: 0
310 MFUN64-NEXT:         IsStatement: Yes
311 MFUN64-NEXT:       ]
312 MFUN64-NEXT:       +0x9 [
313 MFUN64-NEXT:         LineNumberStart: 13
314 MFUN64-NEXT:         LineNumberEndDelta: 0
315 MFUN64-NEXT:         IsStatement: Yes
316 MFUN64-NEXT:       ]
317 MFUN64-NEXT:       +0xE [
318 MFUN64-NEXT:         LineNumberStart: 14
319 MFUN64-NEXT:         LineNumberEndDelta: 0
320 MFUN64-NEXT:         IsStatement: Yes
321 MFUN64-NEXT:       ]
322 MFUN64-NEXT:       +0x13 [
323 MFUN64-NEXT:         LineNumberStart: 15
324 MFUN64-NEXT:         LineNumberEndDelta: 0
325 MFUN64-NEXT:         IsStatement: Yes
326 MFUN64-NEXT:       ]
327 MFUN64-NEXT:     ]
328 MFUN64-NEXT:   ]
329 MFUN64:      ]
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);
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.
346 RUN: llvm-readobj -S --codeview --section-symbols %p/Inputs/multifile-linetables.obj.coff-2012-i368 \
347 RUN:   | FileCheck %s -check-prefix MFILE32
348 RUN: llvm-readobj -S --codeview --section-symbols %p/Inputs/multifile-linetables.obj.coff-2013-i368 \
349 RUN:   | FileCheck %s -check-prefix MFILE32
350 RUN: llvm-readobj -S --codeview --section-symbols %p/Inputs/multifile-linetables.obj.coff-2012-x86_64 \
351 RUN:   | FileCheck %s -check-prefix MFILE64
352 RUN: llvm-readobj -S --codeview --section-symbols %p/Inputs/multifile-linetables.obj.coff-2013-x86_64 \
353 RUN:   | FileCheck %s -check-prefix MFILE64
355 MFILE32:      CodeViewDebugInfo [
356 MFILE32:        Magic: 0x4
357 MFILE32-NEXT:   Subsection [
358 MFILE32-NEXT:     SubSectionType: Symbols (0xF1)
359 MFILE32-NEXT:     SubSectionSize: 0x51
360 MFILE32:        ]
361 MFILE32:        Subsection [
362 MFILE32-NEXT:     SubSectionType: FrameData (0xF5)
363 MFILE32-NEXT:     SubSectionSize: 0x24
364 MFILE32:        ]
365 MFILE32:        Subsection [
366 MFILE32-NEXT:     SubSectionType: Symbols (0xF1)
367 MFILE32-NEXT:     SubSectionSize: 0x4B
368 MFILE32:          GlobalProcIdSym {
369 MFILE32:            CodeSize: 0x14
370 MFILE32:            DisplayName: f
371 MFILE32:            LinkageName: _f
372 MFILE32:          }
373 MFILE32:          ProcEnd
374 MFILE32:        ]
375 MFILE32-NEXT:   Subsection [
376 MFILE32-NEXT:     SubSectionType: Lines (0xF2)
377 MFILE32-NEXT:     SubSectionSize: 0x64
378 MFILE32:          LinkageName: _f
379 MFILE32-NEXT:   ]
380 MFILE32-NEXT:   Subsection [
381 MFILE32-NEXT:     SubSectionType: FileChecksums (0xF4)
382 MFILE32-NEXT:     SubSectionSize: 0x28
383 MFILE32:        ]
384 MFILE32-NEXT:   Subsection [
385 MFILE32-NEXT:     SubSectionType: StringTable (0xF3)
386 MFILE32-NEXT:     SubSectionSize: 0x57
387 MFILE32:        ]
388 MFILE32-NEXT:   Subsection [
389 MFILE32-NEXT:     SubSectionType: Symbols (0xF1)
390 MFILE32-NEXT:     SubSectionSize: 0x8
391 MFILE32:        ]
392 MFILE32-NEXT:   FunctionLineTable [
393 MFILE32-NEXT:     LinkageName: _f
394 MFILE32-NEXT:     Flags: 0x0
395 MFILE32-NEXT:     CodeSize: 0x14
396 MFILE32-NEXT:     FilenameSegment [
397 MFILE32-NEXT:       Filename: d:\input.c
398 MFILE32-NEXT:       +0x0 [
399 MFILE32-NEXT:         LineNumberStart: 3
400 MFILE32-NEXT:         LineNumberEndDelta: 0
401 MFILE32-NEXT:         IsStatement: Yes
402 MFILE32-NEXT:       ]
403 MFILE32-NEXT:     ]
404 MFILE32-NEXT:     FilenameSegment [
405 MFILE32-NEXT:       Filename: d:\one.c
406 MFILE32-NEXT:       +0x3 [
407 MFILE32-NEXT:         LineNumberStart: 1
408 MFILE32-NEXT:         LineNumberEndDelta: 0
409 MFILE32-NEXT:         IsStatement: Yes
410 MFILE32-NEXT:       ]
411 MFILE32-NEXT:     ]
412 MFILE32-NEXT:     FilenameSegment [
413 MFILE32-NEXT:       Filename: d:\two.c
414 MFILE32-NEXT:       +0x8 [
415 MFILE32-NEXT:         LineNumberStart: 2
416 MFILE32-NEXT:         LineNumberEndDelta: 0
417 MFILE32-NEXT:         IsStatement: Yes
418 MFILE32-NEXT:       ]
419 MFILE32-NEXT:     ]
420 MFILE32-NEXT:     FilenameSegment [
421 MFILE32-NEXT:       Filename: d:\one.c
422 MFILE32-NEXT:       +0xD [
423 MFILE32-NEXT:         LineNumberStart: 7
424 MFILE32-NEXT:         LineNumberEndDelta: 0
425 MFILE32-NEXT:         IsStatement: Yes
426 MFILE32-NEXT:       ]
427 MFILE32-NEXT:       +0x12 [
428 MFILE32-NEXT:         LineNumberStart: 8
429 MFILE32-NEXT:         LineNumberEndDelta: 0
430 MFILE32-NEXT:         IsStatement: Yes
431 MFILE32-NEXT:       ]
432 MFILE32-NEXT:     ]
433 MFILE32-NEXT:   ]
434 MFILE32:      ]
436 MFILE64:      CodeViewDebugInfo [
437 MFILE64:        Magic: 0x4
438 MFILE64-NEXT:   Subsection [
439 MFILE64-NEXT:     SubSectionType: Symbols (0xF1)
440 MFILE64-NEXT:     SubSectionSize: 0x51
441 MFILE64:        ]
442 MFILE64:        Subsection [
443 MFILE64-NEXT:     SubSectionType: Symbols (0xF1)
444 MFILE64-NEXT:     SubSectionSize: 0x4B
445 MFILE64:          GlobalProcIdSym {
446 MFILE64:            CodeSize: 0x18
447 MFILE64:            DisplayName: f
448 MFILE64:            LinkageName: f
449 MFILE64:          }
450 MFILE64:          ProcEnd
451 MFILE64:        ]
452 MFILE64-NEXT:   Subsection [
453 MFILE64-NEXT:     SubSectionType: Lines (0xF2)
454 MFILE64-NEXT:     SubSectionSize: 0x64
455 MFILE64:          LinkageName: f
456 MFILE64-NEXT:   ]
457 MFILE64-NEXT:   Subsection [
458 MFILE64-NEXT:     SubSectionType: FileChecksums (0xF4)
459 MFILE64-NEXT:     SubSectionSize: 0x28
460 MFILE64:        ]
461 MFILE64-NEXT:   Subsection [
462 MFILE64-NEXT:     SubSectionType: StringTable (0xF3)
463 MFILE64-NEXT:     SubSectionSize: 0x1E
464 MFILE64:        ]
465 MFILE64-NEXT:   Subsection [
466 MFILE64-NEXT:     SubSectionType: Symbols (0xF1)
467 MFILE64-NEXT:     SubSectionSize: 0x8
468 MFILE64:        ]
469 MFILE64-NEXT:  FunctionLineTable [
470 MFILE64-NEXT:    LinkageName: f
471 MFILE64-NEXT:    Flags: 0x0
472 MFILE64-NEXT:    CodeSize: 0x18
473 MFILE64-NEXT:    FilenameSegment [
474 MFILE64-NEXT:      Filename: d:\input.c
475 MFILE64-NEXT:      +0x0 [
476 MFILE64-NEXT:        LineNumberStart: 3
477 MFILE64-NEXT:        LineNumberEndDelta: 0
478 MFILE64-NEXT:        IsStatement: Yes
479 MFILE64-NEXT:      ]
480 MFILE64-NEXT:    ]
481 MFILE64-NEXT:    FilenameSegment [
482 MFILE64-NEXT:      Filename: d:\one.c
483 MFILE64-NEXT:      +0x4 [
484 MFILE64-NEXT:        LineNumberStart: 1
485 MFILE64-NEXT:        LineNumberEndDelta: 0
486 MFILE64-NEXT:        IsStatement: Yes
487 MFILE64-NEXT:      ]
488 MFILE64-NEXT:    ]
489 MFILE64-NEXT:    FilenameSegment [
490 MFILE64-NEXT:      Filename: d:\two.c
491 MFILE64-NEXT:      +0x9 [
492 MFILE64-NEXT:        LineNumberStart: 2
493 MFILE64-NEXT:        LineNumberEndDelta: 0
494 MFILE64-NEXT:        IsStatement: Yes
495 MFILE64-NEXT:      ]
496 MFILE64-NEXT:    ]
497 MFILE64-NEXT:    FilenameSegment [
498 MFILE64-NEXT:      Filename: d:\one.c
499 MFILE64-NEXT:      +0xE [
500 MFILE64-NEXT:        LineNumberStart: 7
501 MFILE64-NEXT:        LineNumberEndDelta: 0
502 MFILE64-NEXT:        IsStatement: Yes
503 MFILE64-NEXT:      ]
504 MFILE64-NEXT:      +0x13 [
505 MFILE64-NEXT:        LineNumberStart: 8
506 MFILE64-NEXT:        LineNumberEndDelta: 0
507 MFILE64-NEXT:        IsStatement: Yes
508 MFILE64-NEXT:      ]
509 MFILE64-NEXT:    ]
510 MFILE64:      ]
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 ;   }
521 ;   int g()
522 ;   {
523 ;     return 0;
524 ;   }
525 ; using 32-version of CL v17.00.61030 and v18.00.21005.1 respectively.
526 RUN: llvm-readobj -S --codeview --section-symbols %p/Inputs/comdat-function-linetables.obj.coff-2012-i386 \
527 RUN:   | FileCheck %s -check-prefix MCOMDAT
528 RUN: llvm-readobj -S --codeview --section-symbols %p/Inputs/comdat-function-linetables.obj.coff-2013-i386 \
529 RUN:   | FileCheck %s -check-prefix MCOMDAT
531 MCOMDAT:      GlobalProcIdSym {
532 MCOMDAT:        CodeSize: 0x7
533 MCOMDAT:        DisplayName: f
534 MCOMDAT:        LinkageName: ?f@@YAHXZ
535 MCOMDAT:      }
536 MCOMDAT:      FunctionLineTable [
537 MCOMDAT-NEXT:   LinkageName: ?f@@YAHXZ
538 MCOMDAT-NEXT:   Flags: 0x0
539 MCOMDAT-NEXT:   CodeSize: 0x7
540 MCOMDAT-NEXT:   FilenameSegment [
541 MCOMDAT-NEXT:     Filename: c:\src\test.cc
542 MCOMDAT-NEXT:     +0x0 [
543 MCOMDAT-NEXT:       LineNumberStart: 2
544 MCOMDAT-NEXT:       LineNumberEndDelta: 0
545 MCOMDAT-NEXT:       IsStatement: Yes
546 MCOMDAT-NEXT:     ]
547 MCOMDAT-NEXT:     +0x3 [
548 MCOMDAT-NEXT:       LineNumberStart: 3
549 MCOMDAT-NEXT:       LineNumberEndDelta: 0
550 MCOMDAT-NEXT:       IsStatement: Yes
551 MCOMDAT-NEXT:     ]
552 MCOMDAT-NEXT:     +0x5 [
553 MCOMDAT-NEXT:       LineNumberStart: 4
554 MCOMDAT-NEXT:       LineNumberEndDelta: 0
555 MCOMDAT-NEXT:       IsStatement: Yes
556 MCOMDAT-NEXT:     ]
557 MCOMDAT-NEXT:   ]
558 MCOMDAT-NEXT: ]
559 MCOMDAT:      GlobalProcIdSym {
560 MCOMDAT:        CodeSize: 0x7
561 MCOMDAT:        DisplayName: g
562 MCOMDAT:        LinkageName: ?g@@YAHXZ
563 MCOMDAT:      }
564 MCOMDAT:      FunctionLineTable [
565 MCOMDAT-NEXT:   LinkageName: ?g@@YAHXZ
566 MCOMDAT-NEXT:   Flags: 0x0
567 MCOMDAT-NEXT:   CodeSize: 0x7
568 MCOMDAT-NEXT:   FilenameSegment [
569 MCOMDAT-NEXT:     Filename: c:\src\test.cc
570 MCOMDAT-NEXT:     +0x0 [
571 MCOMDAT-NEXT:       LineNumberStart: 7
572 MCOMDAT-NEXT:       LineNumberEndDelta: 0
573 MCOMDAT-NEXT:       IsStatement: Yes
574 MCOMDAT-NEXT:     ]
575 MCOMDAT-NEXT:     +0x3 [
576 MCOMDAT-NEXT:       LineNumberStart: 8
577 MCOMDAT-NEXT:       LineNumberEndDelta: 0
578 MCOMDAT-NEXT:       IsStatement: Yes
579 MCOMDAT-NEXT:     ]
580 MCOMDAT-NEXT:     +0x5 [
581 MCOMDAT-NEXT:       LineNumberStart: 9
582 MCOMDAT-NEXT:       LineNumberEndDelta: 0
583 MCOMDAT-NEXT:       IsStatement: Yes
584 MCOMDAT-NEXT:     ]
585 MCOMDAT-NEXT:   ]
586 MCOMDAT-NEXT: ]