Home | History | Annotate | Download | only in llvm-readobj
      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.
     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
     29 
     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:          ProcStart {
     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:          ProcStart {
     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:          ProcStart {
     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:      ]
    186 
    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:          ProcStart {
    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:          ProcStart {
    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:          ProcStart {
    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:      ]
    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.
    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
    354 
    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:          ProcStart {
    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:      ]
    435 
    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:          ProcStart {
    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:      ]
    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.
    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
    530 
    531 MCOMDAT:      ProcStart {
    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:      ProcStart {
    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: ]
    587