diff options
Diffstat (limited to 'test/DebugInfo/PDB/pdbdump-symbol-format.test')
-rw-r--r-- | test/DebugInfo/PDB/pdbdump-symbol-format.test | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/test/DebugInfo/PDB/pdbdump-symbol-format.test b/test/DebugInfo/PDB/pdbdump-symbol-format.test new file mode 100644 index 0000000..1540e16 --- /dev/null +++ b/test/DebugInfo/PDB/pdbdump-symbol-format.test @@ -0,0 +1,49 @@ +; 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 -types -class-definitions %p/Inputs/symbolformat.pdb | FileCheck --check-prefix=FULL_CLASS %s + +; The format is func [0x<rva_start>+<prologue_length> - 0x<rva_end>-<epilogue_length>] +; SYM_FORMAT: symbolformat-fpo.obj +; SYM_FORMAT-DAG: func [0x001130+0 - 0x001137-1] (FPO) uint32_t __cdecl fpo_func(uint32_t n) +; SYM_FORMAT: symbolformat.obj +; SYM_FORMAT-DAG: func [0x001140+3 - 0x001147-2] (EBP) int32_t __cdecl _purecall() +; SYM_FORMAT-DAG: func [0x001150+6 - 0x0011b6-4] (EBP) int32_t __cdecl main(int32_t argc, char** argv) +; SYM_FORMAT-DAG: func [0x0010b0+7 - 0x0010c7-4] (EBP) void A::A() +; SYM_FORMAT-DAG: func [0x0011c0+7 - 0x0011f1-6] (EBP) void B::B() +; SYM_FORMAT-DAG: thunk [0x000010f6 - 0x000010fa] (Pcode) B::`vcall'{0}' +; SYM_FORMAT-DAG: func [0x001100+7 - 0x00110b-4] (EBP) virtual void B::PureFunc() +; SYM_FORMAT-DAG: func [0x001110+7 - 0x00111b-4] (EBP) void A::RegularFunc() +; SYM_FORMAT-DAG: func [0x001120+7 - 0x00112b-4] (EBP) virtual void A::VirtualFunc() + +; TYPES_FORMAT: Enums +; TYPES_FORMAT-DAG: enum TestEnum +; TYPES_FORMAT-DAG: enum TestEnumClass +; TYPES_FORMAT: Function Signatures +; TYPES_FORMAT-DAG: int32_t __cdecl () +; TYPES_FORMAT-DAG: int32_t __cdecl (int32_t, char**) +; TYPES_FORMAT-DAG: void (A::)() +; TYPES_FORMAT-DAG: void (B::)() +; TYPES_FORMAT-DAG: void (B::)(B&) +; TYPES_FORMAT-DAG: void (B::)() +; TYPES_FORMAT-DAG: B& (B::)(B&) +; TYPES_FORMAT-DAG: void (A::)(A&) +; TYPES_FORMAT-DAG: void (A::)() +; TYPES_FORMAT-DAG: A& (A::)(A&) +; TYPES_FORMAT: Typedefs +; TYPES_FORMAT-DAG: typedef int32_t IntType +; TYPES_FORMAT-DAG: typedef class A ClassAType +; TYPES_FORMAT: Classes +; TYPES_FORMAT-DAG: class A +; TYPES_FORMAT-DAG: class B + +; FULL_CLASS: Classes +; FULL_CLASS-DAG: class A { +; FULL_CLASS: public: +; FULL_CLASS: virtual void PureFunc() = 0 +; FULL_CLASS: virtual void VirtualFunc() +; FULL_CLASS: void RegularFunc() +; FULL_CLASS: } +; FULL_CLASS-DAG: class B { +; FULL_CLASS: public: +; FULL_CLASS: virtual void PureFunc() +; FULL_CLASS: }
\ No newline at end of file |