xref: /aosp_15_r20/external/llvm/test/tools/llvm-readobj/codeview-inlining.test (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; The following two object files were generated using the following command:
2*9880d681SAndroid Build Coastguard Worker;   $ cl /d2Zi+ /Zc:inline /O2 /Z7 /c t.cpp
3*9880d681SAndroid Build Coastguard Worker; The contents of t.cpp follow:
4*9880d681SAndroid Build Coastguard Worker;   static void bar() {
5*9880d681SAndroid Build Coastguard Worker;     __asm nop
6*9880d681SAndroid Build Coastguard Worker;   }
7*9880d681SAndroid Build Coastguard Worker;   static void baz() {
8*9880d681SAndroid Build Coastguard Worker;     __asm nop
9*9880d681SAndroid Build Coastguard Worker;   }
10*9880d681SAndroid Build Coastguard Worker;   static __forceinline void foo() {
11*9880d681SAndroid Build Coastguard Worker;     __asm nop
12*9880d681SAndroid Build Coastguard Worker;   #include "a.h"
13*9880d681SAndroid Build Coastguard Worker;   #include "b.h"
14*9880d681SAndroid Build Coastguard Worker;     __asm nop
15*9880d681SAndroid Build Coastguard Worker;     goto forwards;
16*9880d681SAndroid Build Coastguard Worker;
17*9880d681SAndroid Build Coastguard Worker;   backwards:
18*9880d681SAndroid Build Coastguard Worker;     __asm nop
19*9880d681SAndroid Build Coastguard Worker;     return;
20*9880d681SAndroid Build Coastguard Worker;
21*9880d681SAndroid Build Coastguard Worker;   forwards:
22*9880d681SAndroid Build Coastguard Worker;     __asm rep nop
23*9880d681SAndroid Build Coastguard Worker;     goto backwards;
24*9880d681SAndroid Build Coastguard Worker;   }
25*9880d681SAndroid Build Coastguard Worker;   int main() {
26*9880d681SAndroid Build Coastguard Worker;     bar();
27*9880d681SAndroid Build Coastguard Worker;     baz();
28*9880d681SAndroid Build Coastguard Worker;     foo();
29*9880d681SAndroid Build Coastguard Worker;   }
30*9880d681SAndroid Build Coastguard Worker;
31*9880d681SAndroid Build Coastguard Worker; Both a.h and b.h contain "__asm nop".
32*9880d681SAndroid Build Coastguard Worker
33*9880d681SAndroid Build Coastguard WorkerRUN: llvm-readobj -s -codeview -section-symbols %p/Inputs/codeview-inlining.obj.coff | FileCheck %s
34*9880d681SAndroid Build Coastguard Worker
35*9880d681SAndroid Build Coastguard Worker; FIXME: If we were more clever, we could turn FileIDs into paths.
36*9880d681SAndroid Build Coastguard Worker
37*9880d681SAndroid Build Coastguard Worker; CHECK:       SubSectionType: InlineeLines (0xF6)
38*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:  SubSectionSize: 0x3C
39*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:  InlineeSourceLine {
40*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    Inlinee: bar (0x1002)
41*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    FileID: d:\src\llvm\build\t.cpp (0x30)
42*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    SourceLineNum: 2
43*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ExtraFileCount: 0
44*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ExtraFiles [
45*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ]
46*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:  }
47*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:  InlineeSourceLine {
48*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    Inlinee: baz (0x1003)
49*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    FileID: d:\src\llvm\build\t.cpp (0x30)
50*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    SourceLineNum: 5
51*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ExtraFileCount: 0
52*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ExtraFiles [
53*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ]
54*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:  }
55*9880d681SAndroid Build Coastguard Worker;   The 'foo' inline site has extra files due to includes.
56*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:  InlineeSourceLine {
57*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    Inlinee: foo (0x1004)
58*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    FileID: d:\src\llvm\build\a.h (0x0)
59*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    SourceLineNum: 1
60*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ExtraFileCount: 2
61*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ExtraFiles [
62*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:      FileID: d:\src\llvm\build\b.h (0x18)
63*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:      FileID: d:\src\llvm\build\t.cpp (0x30)
64*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ]
65*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:  }
66