llvm-6502/test/DebugInfo/PDB/pdbdump-symbol-format.test
Zachary Turner b9c28bc7f1 [llvm-pdbdump] Display full enum definitions.
This will now display enum definitions both at the global
scope as well as nested inside of classes.  Additionally,
it will no longer display enums at the global scope if the
enum is nested.  Instead, it will omit the definition of
the enum globally and instead emit it in the corresponding
class definition.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@231215 91177308-0d34-0410-b5e6-96231b3b80d8
2015-03-04 06:09:53 +00:00

54 lines
2.4 KiB
Plaintext

; RUN: llvm-pdbdump -symbols %p/Inputs/symbolformat.pdb | FileCheck --check-prefix=SYM_FORMAT %s
; 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 __cdecl fpo_func(unsigned 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_FORMAT: Classes
; TYPES_FORMAT: struct A {
; TYPES_FORMAT: public:
; TYPES_FORMAT: virtual void PureFunc() = 0
; TYPES_FORMAT: virtual void VirtualFunc()
; TYPES_FORMAT: void RegularFunc()
; TYPES_FORMAT: }
; TYPES_FORMAT-DAG: struct MemberTest {
; TYPES_FORMAT: data +0x00 MemberTest::NestedEnum m_nested_enum
; TYPES_FORMAT: data +0x04 int m_typedef
; TYPES_FORMAT: data +0x08 bool m_bool
; TYPES_FORMAT: data +0x09 char m_char
; TYPES_FORMAT: data +0x0a wchar_t m_wchar_t
; TYPES_FORMAT: data +0x0c int m_int
; TYPES_FORMAT: data +0x10 unsigned m_unsigned
; TYPES_FORMAT: data +0x14 long m_long
; TYPES_FORMAT: data +0x18 unsigned long m_unsigned_long
; TYPES_FORMAT: data +0x20 __int64 m_int64
; TYPES_FORMAT: data +0x28 unsigned __int64 m_unsigned_int64
; TYPES_FORMAT: data +0x30 float m_float
; TYPES_FORMAT: data +0x38 double m_double
; TYPES_FORMAT: data +0x40 void (__cdecl *m_pfn_2_args)(int, double)
; TYPES_FORMAT: }
; GLOBALS: ---GLOBALS---
; GLOBALS-DAG: func [{{.*}}] (FPO) unsigned __cdecl fpo_func(unsigned n)
; GLOBALS-DAG: data [{{.*}}] static void* g_global_pointer
; GLOBALS-DAG: data [{{.*}}] static int g_global_int