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