|  | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | 
|  | ; The following two object files were generated using the following command: | 
|  | ;   D:\> cl /Z7 /c source.c | 
|  | ; with the following contents of D:\source.c: | 
|  | ;   void z(void); | 
|  | ; | 
|  | ;   void x(void) { | 
|  | ;     z(); | 
|  | ;   } | 
|  | ; | 
|  | ;   void y(void) { | 
|  | ;     z(); | 
|  | ;   } | 
|  | ; | 
|  | ;   void f(void) { | 
|  | ;     x(); | 
|  | ;     y(); | 
|  | ;     z(); | 
|  | ;   } | 
|  | ; using 32-/64-bit versions of CL v17.00.61030 and v18.00.21005.1 respectively. | 
|  | RUN: llvm-readobj -s -codeview -section-symbols %p/Inputs/multifunction-linetables.obj.coff-2012-i368 \ | 
|  | RUN:   | FileCheck %s -check-prefix MFUN32 | 
|  | RUN: llvm-readobj -s -codeview -section-symbols %p/Inputs/multifunction-linetables.obj.coff-2013-i368 \ | 
|  | RUN:   | FileCheck %s -check-prefix MFUN32 | 
|  | RUN: llvm-readobj -s -codeview -section-symbols %p/Inputs/multifunction-linetables.obj.coff-2012-x86_64 \ | 
|  | RUN:   | FileCheck %s -check-prefix MFUN64 | 
|  | RUN: llvm-readobj -s -codeview -section-symbols %p/Inputs/multifunction-linetables.obj.coff-2013-x86_64 \ | 
|  | RUN:   | FileCheck %s -check-prefix MFUN64 | 
|  |  | 
|  | MFUN32:      CodeViewDebugInfo [ | 
|  | MFUN32-NEXT:   Section: .debug$S (2) | 
|  | MFUN32-NEXT:   Magic: 0x4 | 
|  | MFUN32-NEXT:   Subsection [ | 
|  | MFUN32-NEXT:     SubSectionType: Symbols (0xF1) | 
|  | MFUN32-NEXT:     SubSectionSize: 0x52 | 
|  | MFUN32:        ] | 
|  | MFUN32:        Subsection [ | 
|  | MFUN32-NEXT:     SubSectionType: FrameData (0xF5) | 
|  | MFUN32-NEXT:     SubSectionSize: 0x24 | 
|  | MFUN32:        ] | 
|  | MFUN32:        Subsection [ | 
|  | MFUN32-NEXT:     SubSectionType: Symbols (0xF1) | 
|  | MFUN32-NEXT:     SubSectionSize: 0x4B | 
|  | MFUN32:          GlobalProcIdSym { | 
|  | MFUN32:            CodeSize: 0xA | 
|  | MFUN32:            DisplayName: x | 
|  | MFUN32:            LinkageName: _x | 
|  | MFUN32:          } | 
|  | MFUN32:          ProcEnd | 
|  | MFUN32:        ] | 
|  | MFUN32:        Subsection [ | 
|  | MFUN32-NEXT:     SubSectionType: Lines (0xF2) | 
|  | MFUN32-NEXT:     SubSectionSize: 0x30 | 
|  | MFUN32:          LinkageName: _x | 
|  | MFUN32-NEXT:   ] | 
|  | MFUN32-NEXT:   Subsection [ | 
|  | MFUN32-NEXT:     SubSectionType: FrameData (0xF5) | 
|  | MFUN32-NEXT:     SubSectionSize: 0x24 | 
|  | MFUN32:        ] | 
|  | MFUN32:        Subsection [ | 
|  | MFUN32-NEXT:     SubSectionType: Symbols (0xF1) | 
|  | MFUN32-NEXT:     SubSectionSize: 0x4B | 
|  | MFUN32:          GlobalProcIdSym { | 
|  | MFUN32:            CodeSize: 0xA | 
|  | MFUN32:            DisplayName: y | 
|  | MFUN32:            LinkageName: _y | 
|  | MFUN32:          } | 
|  | MFUN32:          ProcEnd | 
|  | MFUN32:        ] | 
|  | MFUN32-NEXT:   Subsection [ | 
|  | MFUN32-NEXT:     SubSectionType: Lines (0xF2) | 
|  | MFUN32-NEXT:     SubSectionSize: 0x30 | 
|  | MFUN32:          LinkageName: _y | 
|  | MFUN32-NEXT:   ] | 
|  | MFUN32-NEXT:   Subsection [ | 
|  | MFUN32-NEXT:     SubSectionType: FrameData (0xF5) | 
|  | MFUN32-NEXT:     SubSectionSize: 0x24 | 
|  | MFUN32:        ] | 
|  | MFUN32:        Subsection [ | 
|  | MFUN32-NEXT:     SubSectionType: Symbols (0xF1) | 
|  | MFUN32-NEXT:     SubSectionSize: 0x4B | 
|  | MFUN32:          GlobalProcIdSym { | 
|  | MFUN32:            CodeSize: 0x14 | 
|  | MFUN32:            DisplayName: f | 
|  | MFUN32:            LinkageName: _f | 
|  | MFUN32:          } | 
|  | MFUN32:          ProcEnd | 
|  | MFUN32:        ] | 
|  | MFUN32:        Subsection [ | 
|  | MFUN32-NEXT:     SubSectionType: Lines (0xF2) | 
|  | MFUN32-NEXT:     SubSectionSize: 0x40 | 
|  | MFUN32:          LinkageName: _f | 
|  | MFUN32-NEXT:   ] | 
|  | MFUN32-NEXT:   Subsection [ | 
|  | MFUN32-NEXT:     SubSectionType: FileChecksums (0xF4) | 
|  | MFUN32-NEXT:     SubSectionSize: 0x18 | 
|  | MFUN32:        ] | 
|  | MFUN32-NEXT:   Subsection [ | 
|  | MFUN32-NEXT:     SubSectionType: StringTable (0xF3) | 
|  | MFUN32-NEXT:     SubSectionSize: 0x46 | 
|  | MFUN32:        ] | 
|  | MFUN32-NEXT:   Subsection [ | 
|  | MFUN32-NEXT:     SubSectionType: Symbols (0xF1) | 
|  | MFUN32-NEXT:     SubSectionSize: 0x8 | 
|  | MFUN32:        ] | 
|  | MFUN32-NEXT:   FunctionLineTable [ | 
|  | MFUN32-NEXT      LinkageName: _x | 
|  | MFUN32-NEXT      Flags: 0x0 | 
|  | MFUN32-NEXT      CodeSize: 0xA | 
|  | MFUN32-NEXT      FilenameSegment [ | 
|  | MFUN32-NEXT        Filename: d:\source.c | 
|  | MFUN32-NEXT        +0x0 [ | 
|  | MFUN32-NEXT          LineNumberStart: 3 | 
|  | MFUN32-NEXT          LineNumberEndDelta: 0 | 
|  | MFUN32-NEXT          IsStatement: Yes | 
|  | MFUN32-NEXT        ] | 
|  | MFUN32-NEXT        +0x3 [ | 
|  | MFUN32-NEXT          LineNumberStart: 4 | 
|  | MFUN32-NEXT          LineNumberEndDelta: 0 | 
|  | MFUN32-NEXT          IsStatement: Yes | 
|  | MFUN32-NEXT        ] | 
|  | MFUN32-NEXT        +0x8 [ | 
|  | MFUN32-NEXT          LineNumberStart: 5 | 
|  | MFUN32-NEXT          LineNumberEndDelta: 0 | 
|  | MFUN32-NEXT          IsStatement: Yes | 
|  | MFUN32-NEXT        ] | 
|  | MFUN32-NEXT      ] | 
|  | MFUN32-NEXT    ] | 
|  | MFUN32-NEXT    FunctionLineTable [ | 
|  | MFUN32-NEXT      LinkageName: _y | 
|  | MFUN32-NEXT      Flags: 0x0 | 
|  | MFUN32-NEXT      CodeSize: 0xA | 
|  | MFUN32-NEXT      FilenameSegment [ | 
|  | MFUN32-NEXT        Filename: d:\source.c | 
|  | MFUN32-NEXT        +0x0 [ | 
|  | MFUN32-NEXT          LineNumberStart: 7 | 
|  | MFUN32-NEXT          LineNumberEndDelta: 0 | 
|  | MFUN32-NEXT          IsStatement: Yes | 
|  | MFUN32-NEXT        ] | 
|  | MFUN32-NEXT        +0x3 [ | 
|  | MFUN32-NEXT          LineNumberStart: 8 | 
|  | MFUN32-NEXT          LineNumberEndDelta: 0 | 
|  | MFUN32-NEXT          IsStatement: Yes | 
|  | MFUN32-NEXT        ] | 
|  | MFUN32-NEXT        +0x8 [ | 
|  | MFUN32-NEXT          LineNumberStart: 9 | 
|  | MFUN32-NEXT          LineNumberEndDelta: 0 | 
|  | MFUN32-NEXT          IsStatement: Yes | 
|  | MFUN32-NEXT        ] | 
|  | MFUN32-NEXT      ] | 
|  | MFUN32-NEXT    ] | 
|  | MFUN32-NEXT    FunctionLineTable [ | 
|  | MFUN32-NEXT      LinkageName: _f | 
|  | MFUN32-NEXT      Flags: 0x0 | 
|  | MFUN32-NEXT      CodeSize: 0x14 | 
|  | MFUN32-NEXT      FilenameSegment [ | 
|  | MFUN32-NEXT        Filename: d:\source.c | 
|  | MFUN32-NEXT        +0x0 [ | 
|  | MFUN32-NEXT          LineNumberStart: 11 | 
|  | MFUN32-NEXT          LineNumberEndDelta: 0 | 
|  | MFUN32-NEXT          IsStatement: Yes | 
|  | MFUN32-NEXT        ] | 
|  | MFUN32-NEXT        +0x3 [ | 
|  | MFUN32-NEXT          LineNumberStart: 12 | 
|  | MFUN32-NEXT          LineNumberEndDelta: 0 | 
|  | MFUN32-NEXT          IsStatement: Yes | 
|  | MFUN32-NEXT        ] | 
|  | MFUN32-NEXT        +0x8 [ | 
|  | MFUN32-NEXT          LineNumberStart: 13 | 
|  | MFUN32-NEXT          LineNumberEndDelta: 0 | 
|  | MFUN32-NEXT          IsStatement: Yes | 
|  | MFUN32-NEXT        ] | 
|  | MFUN32-NEXT        +0xD [ | 
|  | MFUN32-NEXT          LineNumberStart: 14 | 
|  | MFUN32-NEXT          LineNumberEndDelta: 0 | 
|  | MFUN32-NEXT          IsStatement: Yes | 
|  | MFUN32-NEXT        ] | 
|  | MFUN32-NEXT        +0x12 [ | 
|  | MFUN32-NEXT          LineNumberStart: 15 | 
|  | MFUN32-NEXT          LineNumberEndDelta: 0 | 
|  | MFUN32-NEXT          IsStatement: Yes | 
|  | MFUN32-NEXT        ] | 
|  | MFUN32-NEXT      ] | 
|  | MFUN32-NEXT    ] | 
|  | MFUN32:      ] | 
|  |  | 
|  | MFUN64:      CodeViewDebugInfo [ | 
|  | MFUN64:        Magic: 0x4 | 
|  | MFUN64-NEXT:   Subsection [ | 
|  | MFUN64-NEXT:     SubSectionType: Symbols (0xF1) | 
|  | MFUN64-NEXT:     SubSectionSize: 0x52 | 
|  | MFUN64:        ] | 
|  | MFUN64:        Subsection [ | 
|  | MFUN64-NEXT:     SubSectionType: Symbols (0xF1) | 
|  | MFUN64-NEXT:     SubSectionSize: 0x4B | 
|  | MFUN64:          GlobalProcIdSym { | 
|  | MFUN64:            CodeSize: 0xE | 
|  | MFUN64:            DisplayName: x | 
|  | MFUN64:            LinkageName: x | 
|  | MFUN64:          } | 
|  | MFUN64:          ProcEnd | 
|  | MFUN64:        ] | 
|  | MFUN64-NEXT:   Subsection [ | 
|  | MFUN64-NEXT:     SubSectionType: Lines (0xF2) | 
|  | MFUN64-NEXT:     SubSectionSize: 0x30 | 
|  | MFUN64:          LinkageName: x | 
|  | MFUN64-NEXT:   ] | 
|  | MFUN64-NEXT:   Subsection [ | 
|  | MFUN64-NEXT:     SubSectionType: Symbols (0xF1) | 
|  | MFUN64-NEXT:     SubSectionSize: 0x4B | 
|  | MFUN64:          GlobalProcIdSym { | 
|  | MFUN64:            CodeSize: 0xE | 
|  | MFUN64:            DisplayName: y | 
|  | MFUN64:            LinkageName: y | 
|  | MFUN64:          } | 
|  | MFUN64:          ProcEnd | 
|  | MFUN64:        ] | 
|  | MFUN64-NEXT:   Subsection [ | 
|  | MFUN64-NEXT:     SubSectionType: Lines (0xF2) | 
|  | MFUN64-NEXT:     SubSectionSize: 0x30 | 
|  | MFUN64:          LinkageName: y | 
|  | MFUN64-NEXT:   ] | 
|  | MFUN64-NEXT:   Subsection [ | 
|  | MFUN64-NEXT:     SubSectionType: Symbols (0xF1) | 
|  | MFUN64-NEXT:     SubSectionSize: 0x4B | 
|  | MFUN64:          GlobalProcIdSym { | 
|  | MFUN64:            CodeSize: 0x18 | 
|  | MFUN64:            DisplayName: f | 
|  | MFUN64:            LinkageName: f | 
|  | MFUN64:          } | 
|  | MFUN64:          ProcEnd | 
|  | MFUN64:        ] | 
|  | MFUN64-NEXT:   Subsection [ | 
|  | MFUN64-NEXT:     SubSectionType: Lines (0xF2) | 
|  | MFUN64-NEXT:     SubSectionSize: 0x40 | 
|  | MFUN64:          LinkageName: f | 
|  | MFUN64-NEXT:   ] | 
|  | MFUN64-NEXT:   Subsection [ | 
|  | MFUN64-NEXT:     SubSectionType: FileChecksums (0xF4) | 
|  | MFUN64-NEXT:     SubSectionSize: 0x18 | 
|  | MFUN64:        ] | 
|  | MFUN64-NEXT:   Subsection [ | 
|  | MFUN64-NEXT:     SubSectionType: StringTable (0xF3) | 
|  | MFUN64-NEXT:     SubSectionSize: 0xD | 
|  | MFUN64:        ] | 
|  | MFUN64-NEXT:   Subsection [ | 
|  | MFUN64-NEXT:     SubSectionType: Symbols (0xF1) | 
|  | MFUN64-NEXT:     SubSectionSize: 0x8 | 
|  | MFUN64:        ] | 
|  | MFUN64-NEXT:   FunctionLineTable [ | 
|  | MFUN64-NEXT:     LinkageName: x | 
|  | MFUN64-NEXT:     Flags: 0x0 | 
|  | MFUN64-NEXT:     CodeSize: 0xE | 
|  | MFUN64-NEXT:     FilenameSegment [ | 
|  | MFUN64-NEXT:       Filename: d:\source.c | 
|  | MFUN64-NEXT:       +0x0 [ | 
|  | MFUN64-NEXT:         LineNumberStart: 3 | 
|  | MFUN64-NEXT:         LineNumberEndDelta: 0 | 
|  | MFUN64-NEXT:         IsStatement: Yes | 
|  | MFUN64-NEXT:       ] | 
|  | MFUN64-NEXT:       +0x4 [ | 
|  | MFUN64-NEXT:         LineNumberStart: 4 | 
|  | MFUN64-NEXT:         LineNumberEndDelta: 0 | 
|  | MFUN64-NEXT:         IsStatement: Yes | 
|  | MFUN64-NEXT:       ] | 
|  | MFUN64-NEXT:       +0x9 [ | 
|  | MFUN64-NEXT:         LineNumberStart: 5 | 
|  | MFUN64-NEXT:         LineNumberEndDelta: 0 | 
|  | MFUN64-NEXT:         IsStatement: Yes | 
|  | MFUN64-NEXT:       ] | 
|  | MFUN64-NEXT:     ] | 
|  | MFUN64-NEXT:   ] | 
|  | MFUN64-NEXT:   FunctionLineTable [ | 
|  | MFUN64-NEXT:     LinkageName: y | 
|  | MFUN64-NEXT:     Flags: 0x0 | 
|  | MFUN64-NEXT:     CodeSize: 0xE | 
|  | MFUN64-NEXT:     FilenameSegment [ | 
|  | MFUN64-NEXT:       Filename: d:\source.c | 
|  | MFUN64-NEXT:       +0x0 [ | 
|  | MFUN64-NEXT:         LineNumberStart: 7 | 
|  | MFUN64-NEXT:         LineNumberEndDelta: 0 | 
|  | MFUN64-NEXT:         IsStatement: Yes | 
|  | MFUN64-NEXT:       ] | 
|  | MFUN64-NEXT:       +0x4 [ | 
|  | MFUN64-NEXT:         LineNumberStart: 8 | 
|  | MFUN64-NEXT:         LineNumberEndDelta: 0 | 
|  | MFUN64-NEXT:         IsStatement: Yes | 
|  | MFUN64-NEXT:       ] | 
|  | MFUN64-NEXT:       +0x9 [ | 
|  | MFUN64-NEXT:         LineNumberStart: 9 | 
|  | MFUN64-NEXT:         LineNumberEndDelta: 0 | 
|  | MFUN64-NEXT:         IsStatement: Yes | 
|  | MFUN64-NEXT:       ] | 
|  | MFUN64-NEXT:     ] | 
|  | MFUN64-NEXT:   ] | 
|  | MFUN64-NEXT:   FunctionLineTable [ | 
|  | MFUN64-NEXT:     LinkageName: f | 
|  | MFUN64-NEXT:     Flags: 0x0 | 
|  | MFUN64-NEXT:     CodeSize: 0x18 | 
|  | MFUN64-NEXT:     FilenameSegment [ | 
|  | MFUN64-NEXT:       Filename: d:\source.c | 
|  | MFUN64-NEXT:       +0x0 [ | 
|  | MFUN64-NEXT:         LineNumberStart: 11 | 
|  | MFUN64-NEXT:         LineNumberEndDelta: 0 | 
|  | MFUN64-NEXT:         IsStatement: Yes | 
|  | MFUN64-NEXT:       ] | 
|  | MFUN64-NEXT:       +0x4 [ | 
|  | MFUN64-NEXT:         LineNumberStart: 12 | 
|  | MFUN64-NEXT:         LineNumberEndDelta: 0 | 
|  | MFUN64-NEXT:         IsStatement: Yes | 
|  | MFUN64-NEXT:       ] | 
|  | MFUN64-NEXT:       +0x9 [ | 
|  | MFUN64-NEXT:         LineNumberStart: 13 | 
|  | MFUN64-NEXT:         LineNumberEndDelta: 0 | 
|  | MFUN64-NEXT:         IsStatement: Yes | 
|  | MFUN64-NEXT:       ] | 
|  | MFUN64-NEXT:       +0xE [ | 
|  | MFUN64-NEXT:         LineNumberStart: 14 | 
|  | MFUN64-NEXT:         LineNumberEndDelta: 0 | 
|  | MFUN64-NEXT:         IsStatement: Yes | 
|  | MFUN64-NEXT:       ] | 
|  | MFUN64-NEXT:       +0x13 [ | 
|  | MFUN64-NEXT:         LineNumberStart: 15 | 
|  | MFUN64-NEXT:         LineNumberEndDelta: 0 | 
|  | MFUN64-NEXT:         IsStatement: Yes | 
|  | MFUN64-NEXT:       ] | 
|  | MFUN64-NEXT:     ] | 
|  | MFUN64-NEXT:   ] | 
|  | MFUN64:      ] | 
|  |  | 
|  | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | 
|  | ; The following two object files were generated using the following command: | 
|  | ;   D:\> cl /Z7 /c input.c | 
|  | ; with the following contents of D:\input.c: | 
|  | ;   void g(void); | 
|  | ; | 
|  | ;   void f(void) { | 
|  | ;   #line 1 "one.c" | 
|  | ;     g(); | 
|  | ;   #line 2 "two.c" | 
|  | ;     g(); | 
|  | ;   #line 7 "one.c" | 
|  | ;     g(); | 
|  | ;   } | 
|  | ; using 32-/64-bit versions of CL v17.00.61030 and v18.00.21005.1 respectively. | 
|  | RUN: llvm-readobj -s -codeview -section-symbols %p/Inputs/multifile-linetables.obj.coff-2012-i368 \ | 
|  | RUN:   | FileCheck %s -check-prefix MFILE32 | 
|  | RUN: llvm-readobj -s -codeview -section-symbols %p/Inputs/multifile-linetables.obj.coff-2013-i368 \ | 
|  | RUN:   | FileCheck %s -check-prefix MFILE32 | 
|  | RUN: llvm-readobj -s -codeview -section-symbols %p/Inputs/multifile-linetables.obj.coff-2012-x86_64 \ | 
|  | RUN:   | FileCheck %s -check-prefix MFILE64 | 
|  | RUN: llvm-readobj -s -codeview -section-symbols %p/Inputs/multifile-linetables.obj.coff-2013-x86_64 \ | 
|  | RUN:   | FileCheck %s -check-prefix MFILE64 | 
|  |  | 
|  | MFILE32:      CodeViewDebugInfo [ | 
|  | MFILE32:        Magic: 0x4 | 
|  | MFILE32-NEXT:   Subsection [ | 
|  | MFILE32-NEXT:     SubSectionType: Symbols (0xF1) | 
|  | MFILE32-NEXT:     SubSectionSize: 0x51 | 
|  | MFILE32:        ] | 
|  | MFILE32:        Subsection [ | 
|  | MFILE32-NEXT:     SubSectionType: FrameData (0xF5) | 
|  | MFILE32-NEXT:     SubSectionSize: 0x24 | 
|  | MFILE32:        ] | 
|  | MFILE32:        Subsection [ | 
|  | MFILE32-NEXT:     SubSectionType: Symbols (0xF1) | 
|  | MFILE32-NEXT:     SubSectionSize: 0x4B | 
|  | MFILE32:          GlobalProcIdSym { | 
|  | MFILE32:            CodeSize: 0x14 | 
|  | MFILE32:            DisplayName: f | 
|  | MFILE32:            LinkageName: _f | 
|  | MFILE32:          } | 
|  | MFILE32:          ProcEnd | 
|  | MFILE32:        ] | 
|  | MFILE32-NEXT:   Subsection [ | 
|  | MFILE32-NEXT:     SubSectionType: Lines (0xF2) | 
|  | MFILE32-NEXT:     SubSectionSize: 0x64 | 
|  | MFILE32:          LinkageName: _f | 
|  | MFILE32-NEXT:   ] | 
|  | MFILE32-NEXT:   Subsection [ | 
|  | MFILE32-NEXT:     SubSectionType: FileChecksums (0xF4) | 
|  | MFILE32-NEXT:     SubSectionSize: 0x28 | 
|  | MFILE32:        ] | 
|  | MFILE32-NEXT:   Subsection [ | 
|  | MFILE32-NEXT:     SubSectionType: StringTable (0xF3) | 
|  | MFILE32-NEXT:     SubSectionSize: 0x57 | 
|  | MFILE32:        ] | 
|  | MFILE32-NEXT:   Subsection [ | 
|  | MFILE32-NEXT:     SubSectionType: Symbols (0xF1) | 
|  | MFILE32-NEXT:     SubSectionSize: 0x8 | 
|  | MFILE32:        ] | 
|  | MFILE32-NEXT:   FunctionLineTable [ | 
|  | MFILE32-NEXT:     LinkageName: _f | 
|  | MFILE32-NEXT:     Flags: 0x0 | 
|  | MFILE32-NEXT:     CodeSize: 0x14 | 
|  | MFILE32-NEXT:     FilenameSegment [ | 
|  | MFILE32-NEXT:       Filename: d:\input.c | 
|  | MFILE32-NEXT:       +0x0 [ | 
|  | MFILE32-NEXT:         LineNumberStart: 3 | 
|  | MFILE32-NEXT:         LineNumberEndDelta: 0 | 
|  | MFILE32-NEXT:         IsStatement: Yes | 
|  | MFILE32-NEXT:       ] | 
|  | MFILE32-NEXT:     ] | 
|  | MFILE32-NEXT:     FilenameSegment [ | 
|  | MFILE32-NEXT:       Filename: d:\one.c | 
|  | MFILE32-NEXT:       +0x3 [ | 
|  | MFILE32-NEXT:         LineNumberStart: 1 | 
|  | MFILE32-NEXT:         LineNumberEndDelta: 0 | 
|  | MFILE32-NEXT:         IsStatement: Yes | 
|  | MFILE32-NEXT:       ] | 
|  | MFILE32-NEXT:     ] | 
|  | MFILE32-NEXT:     FilenameSegment [ | 
|  | MFILE32-NEXT:       Filename: d:\two.c | 
|  | MFILE32-NEXT:       +0x8 [ | 
|  | MFILE32-NEXT:         LineNumberStart: 2 | 
|  | MFILE32-NEXT:         LineNumberEndDelta: 0 | 
|  | MFILE32-NEXT:         IsStatement: Yes | 
|  | MFILE32-NEXT:       ] | 
|  | MFILE32-NEXT:     ] | 
|  | MFILE32-NEXT:     FilenameSegment [ | 
|  | MFILE32-NEXT:       Filename: d:\one.c | 
|  | MFILE32-NEXT:       +0xD [ | 
|  | MFILE32-NEXT:         LineNumberStart: 7 | 
|  | MFILE32-NEXT:         LineNumberEndDelta: 0 | 
|  | MFILE32-NEXT:         IsStatement: Yes | 
|  | MFILE32-NEXT:       ] | 
|  | MFILE32-NEXT:       +0x12 [ | 
|  | MFILE32-NEXT:         LineNumberStart: 8 | 
|  | MFILE32-NEXT:         LineNumberEndDelta: 0 | 
|  | MFILE32-NEXT:         IsStatement: Yes | 
|  | MFILE32-NEXT:       ] | 
|  | MFILE32-NEXT:     ] | 
|  | MFILE32-NEXT:   ] | 
|  | MFILE32:      ] | 
|  |  | 
|  | MFILE64:      CodeViewDebugInfo [ | 
|  | MFILE64:        Magic: 0x4 | 
|  | MFILE64-NEXT:   Subsection [ | 
|  | MFILE64-NEXT:     SubSectionType: Symbols (0xF1) | 
|  | MFILE64-NEXT:     SubSectionSize: 0x51 | 
|  | MFILE64:        ] | 
|  | MFILE64:        Subsection [ | 
|  | MFILE64-NEXT:     SubSectionType: Symbols (0xF1) | 
|  | MFILE64-NEXT:     SubSectionSize: 0x4B | 
|  | MFILE64:          GlobalProcIdSym { | 
|  | MFILE64:            CodeSize: 0x18 | 
|  | MFILE64:            DisplayName: f | 
|  | MFILE64:            LinkageName: f | 
|  | MFILE64:          } | 
|  | MFILE64:          ProcEnd | 
|  | MFILE64:        ] | 
|  | MFILE64-NEXT:   Subsection [ | 
|  | MFILE64-NEXT:     SubSectionType: Lines (0xF2) | 
|  | MFILE64-NEXT:     SubSectionSize: 0x64 | 
|  | MFILE64:          LinkageName: f | 
|  | MFILE64-NEXT:   ] | 
|  | MFILE64-NEXT:   Subsection [ | 
|  | MFILE64-NEXT:     SubSectionType: FileChecksums (0xF4) | 
|  | MFILE64-NEXT:     SubSectionSize: 0x28 | 
|  | MFILE64:        ] | 
|  | MFILE64-NEXT:   Subsection [ | 
|  | MFILE64-NEXT:     SubSectionType: StringTable (0xF3) | 
|  | MFILE64-NEXT:     SubSectionSize: 0x1E | 
|  | MFILE64:        ] | 
|  | MFILE64-NEXT:   Subsection [ | 
|  | MFILE64-NEXT:     SubSectionType: Symbols (0xF1) | 
|  | MFILE64-NEXT:     SubSectionSize: 0x8 | 
|  | MFILE64:        ] | 
|  | MFILE64-NEXT:  FunctionLineTable [ | 
|  | MFILE64-NEXT:    LinkageName: f | 
|  | MFILE64-NEXT:    Flags: 0x0 | 
|  | MFILE64-NEXT:    CodeSize: 0x18 | 
|  | MFILE64-NEXT:    FilenameSegment [ | 
|  | MFILE64-NEXT:      Filename: d:\input.c | 
|  | MFILE64-NEXT:      +0x0 [ | 
|  | MFILE64-NEXT:        LineNumberStart: 3 | 
|  | MFILE64-NEXT:        LineNumberEndDelta: 0 | 
|  | MFILE64-NEXT:        IsStatement: Yes | 
|  | MFILE64-NEXT:      ] | 
|  | MFILE64-NEXT:    ] | 
|  | MFILE64-NEXT:    FilenameSegment [ | 
|  | MFILE64-NEXT:      Filename: d:\one.c | 
|  | MFILE64-NEXT:      +0x4 [ | 
|  | MFILE64-NEXT:        LineNumberStart: 1 | 
|  | MFILE64-NEXT:        LineNumberEndDelta: 0 | 
|  | MFILE64-NEXT:        IsStatement: Yes | 
|  | MFILE64-NEXT:      ] | 
|  | MFILE64-NEXT:    ] | 
|  | MFILE64-NEXT:    FilenameSegment [ | 
|  | MFILE64-NEXT:      Filename: d:\two.c | 
|  | MFILE64-NEXT:      +0x9 [ | 
|  | MFILE64-NEXT:        LineNumberStart: 2 | 
|  | MFILE64-NEXT:        LineNumberEndDelta: 0 | 
|  | MFILE64-NEXT:        IsStatement: Yes | 
|  | MFILE64-NEXT:      ] | 
|  | MFILE64-NEXT:    ] | 
|  | MFILE64-NEXT:    FilenameSegment [ | 
|  | MFILE64-NEXT:      Filename: d:\one.c | 
|  | MFILE64-NEXT:      +0xE [ | 
|  | MFILE64-NEXT:        LineNumberStart: 7 | 
|  | MFILE64-NEXT:        LineNumberEndDelta: 0 | 
|  | MFILE64-NEXT:        IsStatement: Yes | 
|  | MFILE64-NEXT:      ] | 
|  | MFILE64-NEXT:      +0x13 [ | 
|  | MFILE64-NEXT:        LineNumberStart: 8 | 
|  | MFILE64-NEXT:        LineNumberEndDelta: 0 | 
|  | MFILE64-NEXT:        IsStatement: Yes | 
|  | MFILE64-NEXT:      ] | 
|  | MFILE64-NEXT:    ] | 
|  | MFILE64:      ] | 
|  |  | 
|  | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | 
|  | ; The following object files were generated using the following command: | 
|  | ;   C:\src> cl /Z7 /Gy /c test.cc | 
|  | ; with the following contents of C:\src\test.cc: | 
|  | ;   int f() | 
|  | ;   { | 
|  | ;     return 0; | 
|  | ;   } | 
|  | ; | 
|  | ;   int g() | 
|  | ;   { | 
|  | ;     return 0; | 
|  | ;   } | 
|  | ; using 32-version of CL v17.00.61030 and v18.00.21005.1 respectively. | 
|  | RUN: llvm-readobj -s -codeview -section-symbols %p/Inputs/comdat-function-linetables.obj.coff-2012-i386 \ | 
|  | RUN:   | FileCheck %s -check-prefix MCOMDAT | 
|  | RUN: llvm-readobj -s -codeview -section-symbols %p/Inputs/comdat-function-linetables.obj.coff-2013-i386 \ | 
|  | RUN:   | FileCheck %s -check-prefix MCOMDAT | 
|  |  | 
|  | MCOMDAT:      GlobalProcIdSym { | 
|  | MCOMDAT:        CodeSize: 0x7 | 
|  | MCOMDAT:        DisplayName: f | 
|  | MCOMDAT:        LinkageName: ?f@@YAHXZ | 
|  | MCOMDAT:      } | 
|  | MCOMDAT:      FunctionLineTable [ | 
|  | MCOMDAT-NEXT:   LinkageName: ?f@@YAHXZ | 
|  | MCOMDAT-NEXT:   Flags: 0x0 | 
|  | MCOMDAT-NEXT:   CodeSize: 0x7 | 
|  | MCOMDAT-NEXT:   FilenameSegment [ | 
|  | MCOMDAT-NEXT:     Filename: c:\src\test.cc | 
|  | MCOMDAT-NEXT:     +0x0 [ | 
|  | MCOMDAT-NEXT:       LineNumberStart: 2 | 
|  | MCOMDAT-NEXT:       LineNumberEndDelta: 0 | 
|  | MCOMDAT-NEXT:       IsStatement: Yes | 
|  | MCOMDAT-NEXT:     ] | 
|  | MCOMDAT-NEXT:     +0x3 [ | 
|  | MCOMDAT-NEXT:       LineNumberStart: 3 | 
|  | MCOMDAT-NEXT:       LineNumberEndDelta: 0 | 
|  | MCOMDAT-NEXT:       IsStatement: Yes | 
|  | MCOMDAT-NEXT:     ] | 
|  | MCOMDAT-NEXT:     +0x5 [ | 
|  | MCOMDAT-NEXT:       LineNumberStart: 4 | 
|  | MCOMDAT-NEXT:       LineNumberEndDelta: 0 | 
|  | MCOMDAT-NEXT:       IsStatement: Yes | 
|  | MCOMDAT-NEXT:     ] | 
|  | MCOMDAT-NEXT:   ] | 
|  | MCOMDAT-NEXT: ] | 
|  | MCOMDAT:      GlobalProcIdSym { | 
|  | MCOMDAT:        CodeSize: 0x7 | 
|  | MCOMDAT:        DisplayName: g | 
|  | MCOMDAT:        LinkageName: ?g@@YAHXZ | 
|  | MCOMDAT:      } | 
|  | MCOMDAT:      FunctionLineTable [ | 
|  | MCOMDAT-NEXT:   LinkageName: ?g@@YAHXZ | 
|  | MCOMDAT-NEXT:   Flags: 0x0 | 
|  | MCOMDAT-NEXT:   CodeSize: 0x7 | 
|  | MCOMDAT-NEXT:   FilenameSegment [ | 
|  | MCOMDAT-NEXT:     Filename: c:\src\test.cc | 
|  | MCOMDAT-NEXT:     +0x0 [ | 
|  | MCOMDAT-NEXT:       LineNumberStart: 7 | 
|  | MCOMDAT-NEXT:       LineNumberEndDelta: 0 | 
|  | MCOMDAT-NEXT:       IsStatement: Yes | 
|  | MCOMDAT-NEXT:     ] | 
|  | MCOMDAT-NEXT:     +0x3 [ | 
|  | MCOMDAT-NEXT:       LineNumberStart: 8 | 
|  | MCOMDAT-NEXT:       LineNumberEndDelta: 0 | 
|  | MCOMDAT-NEXT:       IsStatement: Yes | 
|  | MCOMDAT-NEXT:     ] | 
|  | MCOMDAT-NEXT:     +0x5 [ | 
|  | MCOMDAT-NEXT:       LineNumberStart: 9 | 
|  | MCOMDAT-NEXT:       LineNumberEndDelta: 0 | 
|  | MCOMDAT-NEXT:       IsStatement: Yes | 
|  | MCOMDAT-NEXT:     ] | 
|  | MCOMDAT-NEXT:   ] | 
|  | MCOMDAT-NEXT: ] |