| ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
| ; 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: ] |