1540e167dbed8e44969cdbdad4fa68e5f4cfd927
[oota-llvm.git] / test / DebugInfo / PDB / pdbdump-symbol-format.test
1 ; RUN: llvm-pdbdump -symbols %p/Inputs/symbolformat.pdb | FileCheck --check-prefix=SYM_FORMAT %s
2 ; RUN: llvm-pdbdump -types %p/Inputs/symbolformat.pdb | FileCheck --check-prefix=TYPES_FORMAT %s
3 ; RUN: llvm-pdbdump -types -class-definitions %p/Inputs/symbolformat.pdb | FileCheck --check-prefix=FULL_CLASS %s
4
5 ; The format is func [0x<rva_start>+<prologue_length> - 0x<rva_end>-<epilogue_length>]
6 ; SYM_FORMAT: symbolformat-fpo.obj
7 ; SYM_FORMAT-DAG: func [0x001130+0 - 0x001137-1] (FPO) uint32_t __cdecl fpo_func(uint32_t n)
8 ; SYM_FORMAT: symbolformat.obj
9 ; SYM_FORMAT-DAG: func [0x001140+3 - 0x001147-2] (EBP) int32_t __cdecl _purecall()
10 ; SYM_FORMAT-DAG: func [0x001150+6 - 0x0011b6-4] (EBP) int32_t __cdecl main(int32_t argc, char** argv)
11 ; SYM_FORMAT-DAG: func [0x0010b0+7 - 0x0010c7-4] (EBP) void A::A()
12 ; SYM_FORMAT-DAG: func [0x0011c0+7 - 0x0011f1-6] (EBP) void B::B()
13 ; SYM_FORMAT-DAG: thunk [0x000010f6 - 0x000010fa] (Pcode) B::`vcall'{0}'
14 ; SYM_FORMAT-DAG: func [0x001100+7 - 0x00110b-4] (EBP) virtual void B::PureFunc()
15 ; SYM_FORMAT-DAG: func [0x001110+7 - 0x00111b-4] (EBP) void A::RegularFunc()
16 ; SYM_FORMAT-DAG: func [0x001120+7 - 0x00112b-4] (EBP) virtual void A::VirtualFunc()
17
18 ; TYPES_FORMAT: Enums
19 ; TYPES_FORMAT-DAG: enum TestEnum
20 ; TYPES_FORMAT-DAG: enum TestEnumClass
21 ; TYPES_FORMAT: Function Signatures
22 ; TYPES_FORMAT-DAG: int32_t __cdecl ()
23 ; TYPES_FORMAT-DAG: int32_t __cdecl (int32_t, char**)
24 ; TYPES_FORMAT-DAG: void (A::)()
25 ; TYPES_FORMAT-DAG: void (B::)()
26 ; TYPES_FORMAT-DAG: void (B::)(B&)
27 ; TYPES_FORMAT-DAG: void (B::)()
28 ; TYPES_FORMAT-DAG: B& (B::)(B&)
29 ; TYPES_FORMAT-DAG: void (A::)(A&)
30 ; TYPES_FORMAT-DAG: void (A::)()
31 ; TYPES_FORMAT-DAG: A& (A::)(A&)
32 ; TYPES_FORMAT: Typedefs
33 ; TYPES_FORMAT-DAG: typedef int32_t IntType
34 ; TYPES_FORMAT-DAG: typedef class A ClassAType
35 ; TYPES_FORMAT: Classes
36 ; TYPES_FORMAT-DAG: class A
37 ; TYPES_FORMAT-DAG: class B
38
39 ; FULL_CLASS: Classes
40 ; FULL_CLASS-DAG: class A {
41 ; FULL_CLASS: public:
42 ; FULL_CLASS: virtual void PureFunc() = 0
43 ; FULL_CLASS: virtual void VirtualFunc()
44 ; FULL_CLASS: void RegularFunc()
45 ; FULL_CLASS: }
46 ; FULL_CLASS-DAG: class B {
47 ; FULL_CLASS: public:
48 ; FULL_CLASS: virtual void PureFunc()
49 ; FULL_CLASS: }