llvm-project/llvm/test/tools/llvm-readobj/codeview-linetables.test

587 lines
19 KiB
Plaintext

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