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: }
|