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 -globals %p/Inputs/symbolformat.pdb | FileCheck --check-prefix=GLOBALS %s 4 5; The format is func [0x<rva_start>+<prologue_length> - 0x<rva_end>-<epilogue_length>] 6; SYM_FORMAT: ---SYMBOLS--- 7; SYM_FORMAT: symbolformat-fpo.obj 8; SYM_FORMAT-DAG: func [{{.*}}] (FPO) unsigned __cdecl fpo_func(unsigned n) 9; SYM_FORMAT: symbolformat.obj 10; SYM_FORMAT-DAG: func [{{.*}}] (EBP) int __cdecl _purecall() 11; SYM_FORMAT-DAG: func [{{.*}}] (EBP) int __cdecl main(int argc, char** argv) 12; SYM_FORMAT-DAG: func [{{.*}}] (EBP) void A::A() 13; SYM_FORMAT-DAG: func [{{.*}}] (EBP) void B::B() 14; SYM_FORMAT-DAG: thunk [{{.*}}] (Pcode) B::`vcall'{0}' 15; SYM_FORMAT-DAG: func [{{.*}}] (EBP) virtual void B::PureFunc() 16; SYM_FORMAT-DAG: func [{{.*}}] (EBP) void A::RegularFunc() 17; SYM_FORMAT-DAG: func [{{.*}}] (EBP) virtual void A::VirtualFunc() 18 19; TYPES_FORMAT: ---TYPES--- 20; TYPES_FORMAT: Enums 21; TYPES_FORMAT-DAG: enum TestEnum 22; TYPES_FORMAT-DAG: enum TestEnumClass 23; TYPES_FORMAT: Typedefs 24; TYPES_FORMAT-DAG: typedef int IntType 25; TYPES_FORMAT-DAG: typedef class A ClassAType 26; TYPES_FORMAT: Classes 27; TYPES_FORMAT: struct A { 28; TYPES_FORMAT: public: 29; TYPES_FORMAT: virtual void PureFunc() = 0 30; TYPES_FORMAT: virtual void VirtualFunc() 31; TYPES_FORMAT: void RegularFunc() 32; TYPES_FORMAT: } 33; TYPES_FORMAT-DAG: struct MemberTest { 34; TYPES_FORMAT: data +0x00 MemberTest::NestedEnum m_nested_enum 35; TYPES_FORMAT: data +0x04 int m_typedef 36; TYPES_FORMAT: data +0x08 bool m_bool 37; TYPES_FORMAT: data +0x09 char m_char 38; TYPES_FORMAT: data +0x0a wchar_t m_wchar_t 39; TYPES_FORMAT: data +0x0c int m_int 40; TYPES_FORMAT: data +0x10 unsigned m_unsigned 41; TYPES_FORMAT: data +0x14 long m_long 42; TYPES_FORMAT: data +0x18 unsigned long m_unsigned_long 43; TYPES_FORMAT: data +0x20 __int64 m_int64 44; TYPES_FORMAT: data +0x28 unsigned __int64 m_unsigned_int64 45; TYPES_FORMAT: data +0x30 float m_float 46; TYPES_FORMAT: data +0x38 double m_double 47; TYPES_FORMAT: data +0x40 void (__cdecl *m_pfn_2_args)(int, double) 48; TYPES_FORMAT: } 49 50; GLOBALS: ---GLOBALS--- 51; GLOBALS-DAG: func [{{.*}}] (FPO) unsigned __cdecl fpo_func(unsigned n) 52; GLOBALS-DAG: data [{{.*}}] static void* g_global_pointer 53; GLOBALS-DAG: data [{{.*}}] static int g_global_int 54