587 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			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: ]
 |