mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-15 04:30:12 +00:00
b1d6ad18ba
Column information is present in CodeView when the line table subsection has bit 0 set to 1 in it's flags field. The column information is represented as a pair of 16-bit quantities: a starting and ending column. This information is present at the end of the chunk, after all the line-PC pairs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@241764 91177308-0d34-0410-b5e6-96231b3b80d8
435 lines
13 KiB
Plaintext
435 lines
13 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: Magic: 0x4
|
|
MFUN32-NEXT: Subsection [
|
|
MFUN32-NEXT: Type: 0xF1
|
|
MFUN32-NEXT: PayloadSize: 0x52
|
|
MFUN32: ]
|
|
MFUN32-NEXT: Subsection [
|
|
MFUN32-NEXT: Type: 0xF5
|
|
MFUN32-NEXT: PayloadSize: 0x24
|
|
MFUN32: ]
|
|
MFUN32-NEXT: Subsection [
|
|
MFUN32-NEXT: Type: 0xF1
|
|
MFUN32-NEXT: PayloadSize: 0x4B
|
|
MFUN32: ProcStart {
|
|
MFUN32-NEXT: DisplayName: x
|
|
MFUN32-NEXT: Section: _x
|
|
MFUN32-NEXT: CodeSize: 0xA
|
|
MFUN32-NEXT: }
|
|
MFUN32-NEXT: ProcEnd
|
|
MFUN32: ]
|
|
MFUN32-NEXT: Subsection [
|
|
MFUN32-NEXT: Type: 0xF2
|
|
MFUN32-NEXT: PayloadSize: 0x30
|
|
MFUN32: FunctionName: _x
|
|
MFUN32-NEXT: ]
|
|
MFUN32-NEXT: Subsection [
|
|
MFUN32-NEXT: Type: 0xF5
|
|
MFUN32-NEXT: PayloadSize: 0x24
|
|
MFUN32: ]
|
|
MFUN32-NEXT: Subsection [
|
|
MFUN32-NEXT: Type: 0xF1
|
|
MFUN32-NEXT: PayloadSize: 0x4B
|
|
MFUN32: ProcStart {
|
|
MFUN32-NEXT: DisplayName: y
|
|
MFUN32-NEXT: Section: _y
|
|
MFUN32-NEXT: CodeSize: 0xA
|
|
MFUN32-NEXT: }
|
|
MFUN32-NEXT: ProcEnd
|
|
MFUN32: ]
|
|
MFUN32-NEXT: Subsection [
|
|
MFUN32-NEXT: Type: 0xF2
|
|
MFUN32-NEXT: PayloadSize: 0x30
|
|
MFUN32: FunctionName: _y
|
|
MFUN32-NEXT: ]
|
|
MFUN32-NEXT: Subsection [
|
|
MFUN32-NEXT: Type: 0xF5
|
|
MFUN32-NEXT: PayloadSize: 0x24
|
|
MFUN32: ]
|
|
MFUN32-NEXT: Subsection [
|
|
MFUN32-NEXT: Type: 0xF1
|
|
MFUN32-NEXT: PayloadSize: 0x4B
|
|
MFUN32: ProcStart {
|
|
MFUN32-NEXT: DisplayName: f
|
|
MFUN32-NEXT: Section: _f
|
|
MFUN32-NEXT: CodeSize: 0x14
|
|
MFUN32-NEXT: }
|
|
MFUN32-NEXT: ProcEnd
|
|
MFUN32: ]
|
|
MFUN32-NEXT: Subsection [
|
|
MFUN32-NEXT: Type: 0xF2
|
|
MFUN32-NEXT: PayloadSize: 0x40
|
|
MFUN32: FunctionName: _f
|
|
MFUN32-NEXT: ]
|
|
MFUN32-NEXT: Subsection [
|
|
MFUN32-NEXT: Type: 0xF4
|
|
MFUN32-NEXT: PayloadSize: 0x18
|
|
MFUN32: ]
|
|
MFUN32-NEXT: Subsection [
|
|
MFUN32-NEXT: Type: 0xF3
|
|
MFUN32-NEXT: PayloadSize: 0x46
|
|
MFUN32: ]
|
|
MFUN32-NEXT: Subsection [
|
|
MFUN32-NEXT: Type: 0xF1
|
|
MFUN32-NEXT: PayloadSize: 0x8
|
|
MFUN32: ]
|
|
MFUN32-NEXT: FunctionLineTable [
|
|
MFUN32-NEXT: FunctionName: _x
|
|
MFUN32-NEXT: Flags: 0x0
|
|
MFUN32-NEXT: CodeSize: 0xA
|
|
MFUN32-NEXT: FilenameSegment [
|
|
MFUN32-NEXT: Filename: d:\source.c
|
|
MFUN32-NEXT: +0x0: 3
|
|
MFUN32-NEXT: +0x3: 4
|
|
MFUN32-NEXT: +0x8: 5
|
|
MFUN32-NEXT: ]
|
|
MFUN32-NEXT: ]
|
|
MFUN32-NEXT: FunctionLineTable [
|
|
MFUN32-NEXT: FunctionName: _y
|
|
MFUN32-NEXT: Flags: 0x0
|
|
MFUN32-NEXT: CodeSize: 0xA
|
|
MFUN32-NEXT: FilenameSegment [
|
|
MFUN32-NEXT: Filename: d:\source.c
|
|
MFUN32-NEXT: +0x0: 7
|
|
MFUN32-NEXT: +0x3: 8
|
|
MFUN32-NEXT: +0x8: 9
|
|
MFUN32-NEXT: ]
|
|
MFUN32-NEXT: ]
|
|
MFUN32-NEXT: FunctionLineTable [
|
|
MFUN32-NEXT: FunctionName: _f
|
|
MFUN32-NEXT: Flags: 0x0
|
|
MFUN32-NEXT: CodeSize: 0x14
|
|
MFUN32-NEXT: FilenameSegment [
|
|
MFUN32-NEXT: Filename: d:\source.c
|
|
MFUN32-NEXT: +0x0: 11
|
|
MFUN32-NEXT: +0x3: 12
|
|
MFUN32-NEXT: +0x8: 13
|
|
MFUN32-NEXT: +0xD: 14
|
|
MFUN32-NEXT: +0x12: 15
|
|
MFUN32-NEXT: ]
|
|
MFUN32-NEXT: ]
|
|
MFUN32-NEXT: ]
|
|
|
|
MFUN64: CodeViewDebugInfo [
|
|
MFUN64-NEXT: Magic: 0x4
|
|
MFUN64-NEXT: Subsection [
|
|
MFUN64-NEXT: Type: 0xF1
|
|
MFUN64-NEXT: PayloadSize: 0x52
|
|
MFUN64: ]
|
|
MFUN64-NEXT: Subsection [
|
|
MFUN64-NEXT: Type: 0xF1
|
|
MFUN64-NEXT: PayloadSize: 0x4B
|
|
MFUN64: ProcStart {
|
|
MFUN64-NEXT: DisplayName: x
|
|
MFUN64-NEXT: Section: x
|
|
MFUN64-NEXT: CodeSize: 0xE
|
|
MFUN64-NEXT: }
|
|
MFUN64-NEXT: ProcEnd
|
|
MFUN64: ]
|
|
MFUN64-NEXT: Subsection [
|
|
MFUN64-NEXT: Type: 0xF2
|
|
MFUN64-NEXT: PayloadSize: 0x30
|
|
MFUN64: FunctionName: x
|
|
MFUN64-NEXT: ]
|
|
MFUN64-NEXT: Subsection [
|
|
MFUN64-NEXT: Type: 0xF1
|
|
MFUN64-NEXT: PayloadSize: 0x4B
|
|
MFUN64: ProcStart {
|
|
MFUN64-NEXT: DisplayName: y
|
|
MFUN64-NEXT: Section: y
|
|
MFUN64-NEXT: CodeSize: 0xE
|
|
MFUN64-NEXT: }
|
|
MFUN64-NEXT: ProcEnd
|
|
MFUN64: ]
|
|
MFUN64-NEXT: Subsection [
|
|
MFUN64-NEXT: Type: 0xF2
|
|
MFUN64-NEXT: PayloadSize: 0x30
|
|
MFUN64: FunctionName: y
|
|
MFUN64-NEXT: ]
|
|
MFUN64-NEXT: Subsection [
|
|
MFUN64-NEXT: Type: 0xF1
|
|
MFUN64-NEXT: PayloadSize: 0x4B
|
|
MFUN64: ProcStart {
|
|
MFUN64-NEXT: DisplayName: f
|
|
MFUN64-NEXT: Section: f
|
|
MFUN64-NEXT: CodeSize: 0x18
|
|
MFUN64-NEXT: }
|
|
MFUN64-NEXT: ProcEnd
|
|
MFUN64: ]
|
|
MFUN64-NEXT: Subsection [
|
|
MFUN64-NEXT: Type: 0xF2
|
|
MFUN64-NEXT: PayloadSize: 0x40
|
|
MFUN64: FunctionName: f
|
|
MFUN64-NEXT: ]
|
|
MFUN64-NEXT: Subsection [
|
|
MFUN64-NEXT: Type: 0xF4
|
|
MFUN64-NEXT: PayloadSize: 0x18
|
|
MFUN64: ]
|
|
MFUN64-NEXT: Subsection [
|
|
MFUN64-NEXT: Type: 0xF3
|
|
MFUN64-NEXT: PayloadSize: 0xD
|
|
MFUN64: ]
|
|
MFUN64-NEXT: Subsection [
|
|
MFUN64-NEXT: Type: 0xF1
|
|
MFUN64-NEXT: PayloadSize: 0x8
|
|
MFUN64: ]
|
|
MFUN64-NEXT: FunctionLineTable [
|
|
MFUN64-NEXT: FunctionName: x
|
|
MFUN64-NEXT: Flags: 0x0
|
|
MFUN64-NEXT: CodeSize: 0xE
|
|
MFUN64-NEXT: FilenameSegment [
|
|
MFUN64-NEXT: Filename: d:\source.c
|
|
MFUN64-NEXT: +0x0: 3
|
|
MFUN64-NEXT: +0x4: 4
|
|
MFUN64-NEXT: +0x9: 5
|
|
MFUN64-NEXT: ]
|
|
MFUN64-NEXT: ]
|
|
MFUN64-NEXT: FunctionLineTable [
|
|
MFUN64-NEXT: FunctionName: y
|
|
MFUN64-NEXT: Flags: 0x0
|
|
MFUN64-NEXT: CodeSize: 0xE
|
|
MFUN64-NEXT: FilenameSegment [
|
|
MFUN64-NEXT: Filename: d:\source.c
|
|
MFUN64-NEXT: +0x0: 7
|
|
MFUN64-NEXT: +0x4: 8
|
|
MFUN64-NEXT: +0x9: 9
|
|
MFUN64-NEXT: ]
|
|
MFUN64-NEXT: ]
|
|
MFUN64-NEXT: FunctionLineTable [
|
|
MFUN64-NEXT: FunctionName: f
|
|
MFUN64-NEXT: Flags: 0x0
|
|
MFUN64-NEXT: CodeSize: 0x18
|
|
MFUN64-NEXT: FilenameSegment [
|
|
MFUN64-NEXT: Filename: d:\source.c
|
|
MFUN64-NEXT: +0x0: 11
|
|
MFUN64-NEXT: +0x4: 12
|
|
MFUN64-NEXT: +0x9: 13
|
|
MFUN64-NEXT: +0xE: 14
|
|
MFUN64-NEXT: +0x13: 15
|
|
MFUN64-NEXT: ]
|
|
MFUN64-NEXT: ]
|
|
MFUN64-NEXT: ]
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
; 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-NEXT: Magic: 0x4
|
|
MFILE32-NEXT: Subsection [
|
|
MFILE32-NEXT: Type: 0xF1
|
|
MFILE32-NEXT: PayloadSize: 0x51
|
|
MFILE32: ]
|
|
MFILE32-NEXT: Subsection [
|
|
MFILE32-NEXT: Type: 0xF5
|
|
MFILE32-NEXT: PayloadSize: 0x24
|
|
MFILE32: ]
|
|
MFILE32-NEXT: Subsection [
|
|
MFILE32-NEXT: Type: 0xF1
|
|
MFILE32-NEXT: PayloadSize: 0x4B
|
|
MFILE32: ProcStart {
|
|
MFILE32-NEXT: DisplayName: f
|
|
MFILE32-NEXT: Section: _f
|
|
MFILE32-NEXT: CodeSize: 0x14
|
|
MFILE32-NEXT: }
|
|
MFILE32-NEXT: ProcEnd
|
|
MFILE32: ]
|
|
MFILE32-NEXT: Subsection [
|
|
MFILE32-NEXT: Type: 0xF2
|
|
MFILE32-NEXT: PayloadSize: 0x64
|
|
MFILE32: FunctionName: _f
|
|
MFILE32-NEXT: ]
|
|
MFILE32-NEXT: Subsection [
|
|
MFILE32-NEXT: Type: 0xF4
|
|
MFILE32-NEXT: PayloadSize: 0x28
|
|
MFILE32: ]
|
|
MFILE32-NEXT: Subsection [
|
|
MFILE32-NEXT: Type: 0xF3
|
|
MFILE32-NEXT: PayloadSize: 0x57
|
|
MFILE32: ]
|
|
MFILE32-NEXT: Subsection [
|
|
MFILE32-NEXT: Type: 0xF1
|
|
MFILE32-NEXT: PayloadSize: 0x8
|
|
MFILE32: ]
|
|
MFILE32-NEXT: FunctionLineTable [
|
|
MFILE32-NEXT: FunctionName: _f
|
|
MFILE32-NEXT: Flags: 0x0
|
|
MFILE32-NEXT: CodeSize: 0x14
|
|
MFILE32-NEXT: FilenameSegment [
|
|
MFILE32-NEXT: Filename: d:\input.c
|
|
MFILE32-NEXT: +0x0: 3
|
|
MFILE32-NEXT: ]
|
|
MFILE32-NEXT: FilenameSegment [
|
|
MFILE32-NEXT: Filename: d:\one.c
|
|
MFILE32-NEXT: +0x3: 1
|
|
MFILE32-NEXT: ]
|
|
MFILE32-NEXT: FilenameSegment [
|
|
MFILE32-NEXT: Filename: d:\two.c
|
|
MFILE32-NEXT: +0x8: 2
|
|
MFILE32-NEXT: ]
|
|
MFILE32-NEXT: FilenameSegment [
|
|
MFILE32-NEXT: Filename: d:\one.c
|
|
MFILE32-NEXT: +0xD: 7
|
|
MFILE32-NEXT: +0x12: 8
|
|
MFILE32-NEXT: ]
|
|
MFILE32-NEXT: ]
|
|
MFILE32-NEXT: ]
|
|
|
|
MFILE64: CodeViewDebugInfo [
|
|
MFILE64-NEXT: Magic: 0x4
|
|
MFILE64-NEXT: Subsection [
|
|
MFILE64-NEXT: Type: 0xF1
|
|
MFILE64-NEXT: PayloadSize: 0x51
|
|
MFILE64: ]
|
|
MFILE64-NEXT: Subsection [
|
|
MFILE64-NEXT: Type: 0xF1
|
|
MFILE64-NEXT: PayloadSize: 0x4B
|
|
MFILE64: ProcStart {
|
|
MFILE64-NEXT: DisplayName: f
|
|
MFILE64-NEXT: Section: f
|
|
MFILE64-NEXT: CodeSize: 0x18
|
|
MFILE64-NEXT: }
|
|
MFILE64-NEXT: ProcEnd
|
|
MFILE64: ]
|
|
MFILE64-NEXT: Subsection [
|
|
MFILE64-NEXT: Type: 0xF2
|
|
MFILE64-NEXT: PayloadSize: 0x64
|
|
MFILE64: FunctionName: f
|
|
MFILE64-NEXT: ]
|
|
MFILE64-NEXT: Subsection [
|
|
MFILE64-NEXT: Type: 0xF4
|
|
MFILE64-NEXT: PayloadSize: 0x28
|
|
MFILE64: ]
|
|
MFILE64-NEXT: Subsection [
|
|
MFILE64-NEXT: Type: 0xF3
|
|
MFILE64-NEXT: PayloadSize: 0x1E
|
|
MFILE64: ]
|
|
MFILE64-NEXT: Subsection [
|
|
MFILE64-NEXT: Type: 0xF1
|
|
MFILE64-NEXT: PayloadSize: 0x8
|
|
MFILE64: ]
|
|
MFILE64-NEXT: FunctionLineTable [
|
|
MFILE64-NEXT: FunctionName: f
|
|
MFILE64-NEXT: Flags: 0x0
|
|
MFILE64-NEXT: CodeSize: 0x18
|
|
MFILE64-NEXT: FilenameSegment [
|
|
MFILE64-NEXT: Filename: d:\input.c
|
|
MFILE64-NEXT: +0x0: 3
|
|
MFILE64-NEXT: ]
|
|
MFILE64-NEXT: FilenameSegment [
|
|
MFILE64-NEXT: Filename: d:\one.c
|
|
MFILE64-NEXT: +0x4: 1
|
|
MFILE64-NEXT: ]
|
|
MFILE64-NEXT: FilenameSegment [
|
|
MFILE64-NEXT: Filename: d:\two.c
|
|
MFILE64-NEXT: +0x9: 2
|
|
MFILE64-NEXT: ]
|
|
MFILE64-NEXT: FilenameSegment [
|
|
MFILE64-NEXT: Filename: d:\one.c
|
|
MFILE64-NEXT: +0xE: 7
|
|
MFILE64-NEXT: +0x13: 8
|
|
MFILE64-NEXT: ]
|
|
MFILE64-NEXT: ]
|
|
MFILE64-NEXT: ]
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
; 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: ProcStart {
|
|
MCOMDAT-NEXT: DisplayName: f
|
|
MCOMDAT-NEXT: Section: ?f@@YAHXZ
|
|
MCOMDAT-NEXT: CodeSize: 0x7
|
|
MCOMDAT-NEXT: }
|
|
MCOMDAT: FunctionLineTable [
|
|
MCOMDAT-NEXT: FunctionName: ?f@@YAHXZ
|
|
MCOMDAT-NEXT: Flags: 0x0
|
|
MCOMDAT-NEXT: CodeSize: 0x7
|
|
MCOMDAT-NEXT: FilenameSegment [
|
|
MCOMDAT-NEXT: Filename: c:\src\test.cc
|
|
MCOMDAT-NEXT: +0x0: 2
|
|
MCOMDAT-NEXT: +0x3: 3
|
|
MCOMDAT-NEXT: +0x5: 4
|
|
MCOMDAT-NEXT: ]
|
|
MCOMDAT-NEXT: ]
|
|
MCOMDAT: ProcStart {
|
|
MCOMDAT-NEXT: DisplayName: g
|
|
MCOMDAT-NEXT: Section: ?g@@YAHXZ
|
|
MCOMDAT-NEXT: CodeSize: 0x7
|
|
MCOMDAT-NEXT: }
|
|
MCOMDAT: FunctionLineTable [
|
|
MCOMDAT-NEXT: FunctionName: ?g@@YAHXZ
|
|
MCOMDAT-NEXT: Flags: 0x0
|
|
MCOMDAT-NEXT: CodeSize: 0x7
|
|
MCOMDAT-NEXT: FilenameSegment [
|
|
MCOMDAT-NEXT: Filename: c:\src\test.cc
|
|
MCOMDAT-NEXT: +0x0: 7
|
|
MCOMDAT-NEXT: +0x3: 8
|
|
MCOMDAT-NEXT: +0x5: 9
|
|
MCOMDAT-NEXT: ]
|
|
MCOMDAT-NEXT: ]
|