66 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
; The following two object files were generated using the following command:
 | 
						|
;   $ cl /d2Zi+ /Zc:inline /O2 /Z7 /c t.cpp
 | 
						|
; The contents of t.cpp follow:
 | 
						|
;   static void bar() {
 | 
						|
;     __asm nop
 | 
						|
;   }
 | 
						|
;   static void baz() {
 | 
						|
;     __asm nop
 | 
						|
;   }
 | 
						|
;   static __forceinline void foo() {
 | 
						|
;     __asm nop
 | 
						|
;   #include "a.h"
 | 
						|
;   #include "b.h"
 | 
						|
;     __asm nop
 | 
						|
;     goto forwards;
 | 
						|
;
 | 
						|
;   backwards:
 | 
						|
;     __asm nop
 | 
						|
;     return;
 | 
						|
;
 | 
						|
;   forwards:
 | 
						|
;     __asm rep nop
 | 
						|
;     goto backwards;
 | 
						|
;   }
 | 
						|
;   int main() {
 | 
						|
;     bar();
 | 
						|
;     baz();
 | 
						|
;     foo();
 | 
						|
;   }
 | 
						|
;
 | 
						|
; Both a.h and b.h contain "__asm nop".
 | 
						|
 | 
						|
RUN: llvm-readobj -s -codeview -section-symbols %p/Inputs/codeview-inlining.obj.coff | FileCheck %s
 | 
						|
 | 
						|
; FIXME: If we were more clever, we could turn FileIDs into paths.
 | 
						|
 | 
						|
; CHECK:       SubSectionType: InlineeLines (0xF6)
 | 
						|
; CHECK-NEXT:  SubSectionSize: 0x3C
 | 
						|
; CHECK-NEXT:  InlineeSourceLine {
 | 
						|
; CHECK-NEXT:    Inlinee: bar (0x1002)
 | 
						|
; CHECK-NEXT:    FileID: d:\src\llvm\build\t.cpp (0x30)
 | 
						|
; CHECK-NEXT:    SourceLineNum: 2
 | 
						|
; CHECK-NEXT:    ExtraFileCount: 0
 | 
						|
; CHECK-NEXT:    ExtraFiles [
 | 
						|
; CHECK-NEXT:    ]
 | 
						|
; CHECK-NEXT:  }
 | 
						|
; CHECK-NEXT:  InlineeSourceLine {
 | 
						|
; CHECK-NEXT:    Inlinee: baz (0x1003)
 | 
						|
; CHECK-NEXT:    FileID: d:\src\llvm\build\t.cpp (0x30)
 | 
						|
; CHECK-NEXT:    SourceLineNum: 5
 | 
						|
; CHECK-NEXT:    ExtraFileCount: 0
 | 
						|
; CHECK-NEXT:    ExtraFiles [
 | 
						|
; CHECK-NEXT:    ]
 | 
						|
; CHECK-NEXT:  }
 | 
						|
;   The 'foo' inline site has extra files due to includes.
 | 
						|
; CHECK-NEXT:  InlineeSourceLine {
 | 
						|
; CHECK-NEXT:    Inlinee: foo (0x1004)
 | 
						|
; CHECK-NEXT:    FileID: d:\src\llvm\build\a.h (0x0)
 | 
						|
; CHECK-NEXT:    SourceLineNum: 1
 | 
						|
; CHECK-NEXT:    ExtraFileCount: 2
 | 
						|
; CHECK-NEXT:    ExtraFiles [
 | 
						|
; CHECK-NEXT:      FileID: d:\src\llvm\build\b.h (0x18)
 | 
						|
; CHECK-NEXT:      FileID: d:\src\llvm\build\t.cpp (0x30)
 | 
						|
; CHECK-NEXT:    ]
 | 
						|
; CHECK-NEXT:  }
 |