summaryrefslogtreecommitdiffstats
path: root/llvm/test/DebugInfo/PDB/DIA/pdbdump-symbol-format.test
blob: 3761f789f597d2a7974d1e1e26f97e15224f6f47 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
; RUN: llvm-pdbdump -symbols %p/../Inputs/symbolformat.pdb | FileCheck --check-prefix=SYM_FORMAT %s
; RUN: llvm-pdbdump -types %p/../Inputs/symbolformat.pdb > %t.types
; RUN: FileCheck --check-prefix=TYPES_FORMAT %s < %t.types
; RUN: FileCheck --check-prefix=TYPES_1 %s < %t.types
; RUN: FileCheck --check-prefix=TYPES_2 %s < %t.types
; RUN: llvm-pdbdump -types %p/../Inputs/symbolformat.pdb | FileCheck --check-prefix=TYPES_FORMAT %s
; RUN: llvm-pdbdump -globals %p/../Inputs/symbolformat.pdb | FileCheck --check-prefix=GLOBALS %s

; The format is func [0x<rva_start>+<prologue_length> - 0x<rva_end>-<epilogue_length>]
; SYM_FORMAT: ---SYMBOLS---
; SYM_FORMAT: symbolformat-fpo.obj
; SYM_FORMAT-DAG: func [{{.*}}] (FPO) unsigned int __cdecl fpo_func(unsigned int n)
; SYM_FORMAT: symbolformat.obj
; SYM_FORMAT-DAG: func [{{.*}}] (EBP) int __cdecl _purecall()
; SYM_FORMAT-DAG: func [{{.*}}] (EBP) int __cdecl main(int argc, char** argv)
; SYM_FORMAT-DAG: func [{{.*}}] (EBP) void A::A()
; SYM_FORMAT-DAG: func [{{.*}}] (EBP) void B::B()
; SYM_FORMAT-DAG: thunk [{{.*}}] (Pcode) B::`vcall'{0}'
; SYM_FORMAT-DAG: func [{{.*}}] (EBP) virtual void B::PureFunc()
; SYM_FORMAT-DAG: func [{{.*}}] (EBP) void A::RegularFunc()
; SYM_FORMAT-DAG: func [{{.*}}] (EBP) virtual void A::VirtualFunc()

; TYPES_FORMAT: ---TYPES---
; TYPES_FORMAT: Enums
; TYPES_FORMAT-DAG: enum TestEnum
; TYPES_FORMAT-DAG: enum TestEnumClass
; TYPES_FORMAT: Typedefs
; TYPES_FORMAT-DAG: typedef int IntType
; TYPES_FORMAT-DAG: typedef class A ClassAType

; TYPES_1: Classes
; TYPES_1: struct A {
; TYPES_1: public:
; TYPES_1: virtual void PureFunc() = 0
; TYPES_1: virtual void VirtualFunc()
; TYPES_1: void RegularFunc()
; TYPES_1: }

; TYPES_2: Classes
; TYPES_2: struct MemberTest {
; TYPES_2: data +0x00 MemberTest::NestedEnum m_nested_enum
; TYPES_2: data +0x04 int m_typedef
; TYPES_2: data +0x08 bool m_bool
; TYPES_2: data +0x09 char m_char
; TYPES_2: data +0x0a wchar_t m_wchar_t
; TYPES_2: data +0x0c int m_int
; TYPES_2: data +0x10 unsigned int m_unsigned
; TYPES_2: data +0x14 long m_long
; TYPES_2: data +0x18 unsigned long m_unsigned_long
; TYPES_2: data +0x20 __int64 m_int64
; TYPES_2: data +0x28 unsigned __int64 m_unsigned_int64
; TYPES_2: data +0x30 float m_float
; TYPES_2: data +0x38 double m_double
; TYPES_2: data +0x40 void (__cdecl *m_pfn_2_args)(int, double)
; TYPES_2: }

; GLOBALS: ---GLOBALS---
; GLOBALS-DAG: func [{{.*}}] (FPO) unsigned int __cdecl fpo_func(unsigned int n)
; GLOBALS-DAG: data [{{.*}}] static void* g_global_pointer
; GLOBALS-DAG: data [{{.*}}] static int g_global_int
OpenPOWER on IntegriCloud