diff options
Diffstat (limited to 'llvm/test/tools/llvm-readobj/COFF/codeview-linetables.test')
| -rw-r--r-- | llvm/test/tools/llvm-readobj/COFF/codeview-linetables.test | 586 |
1 files changed, 586 insertions, 0 deletions
diff --git a/llvm/test/tools/llvm-readobj/COFF/codeview-linetables.test b/llvm/test/tools/llvm-readobj/COFF/codeview-linetables.test new file mode 100644 index 00000000000..81d193ad30e --- /dev/null +++ b/llvm/test/tools/llvm-readobj/COFF/codeview-linetables.test @@ -0,0 +1,586 @@ +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; 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: ] |

