summaryrefslogtreecommitdiffstats
path: root/llvm/test/DebugInfo/PDB
diff options
context:
space:
mode:
authorZachary Turner <zturner@google.com>2015-02-27 09:15:18 +0000
committerZachary Turner <zturner@google.com>2015-02-27 09:15:18 +0000
commitdb18f5ca76e4e699598867f67a343d0b01e3a054 (patch)
treec604fbd488cf1c1c3d6af3b392a4b001f5954aaa /llvm/test/DebugInfo/PDB
parentddc4d085cce9691b70e042dc9e03d795f33225c9 (diff)
downloadbcm5719-llvm-db18f5ca76e4e699598867f67a343d0b01e3a054.tar.gz
bcm5719-llvm-db18f5ca76e4e699598867f67a343d0b01e3a054.zip
[llvm-pdbdump] Add support for dumping global variables.
llvm-svn: 230744
Diffstat (limited to 'llvm/test/DebugInfo/PDB')
-rw-r--r--llvm/test/DebugInfo/PDB/Inputs/symbolformat.cpp3
-rw-r--r--llvm/test/DebugInfo/PDB/Inputs/symbolformat.pdbbin143360 -> 35840 bytes
-rw-r--r--llvm/test/DebugInfo/PDB/pdbdump-flags.test34
-rw-r--r--llvm/test/DebugInfo/PDB/pdbdump-symbol-format.test22
4 files changed, 34 insertions, 25 deletions
diff --git a/llvm/test/DebugInfo/PDB/Inputs/symbolformat.cpp b/llvm/test/DebugInfo/PDB/Inputs/symbolformat.cpp
index 237913e7221..5479b717cd9 100644
--- a/llvm/test/DebugInfo/PDB/Inputs/symbolformat.cpp
+++ b/llvm/test/DebugInfo/PDB/Inputs/symbolformat.cpp
@@ -55,6 +55,9 @@ struct MemberTest {
typedef int IntType;
typedef A ClassAType;
+int g_global_int;
+void *g_global_pointer = nullptr;
+
int main(int argc, char **argv) {
// Force symbol references so the linker generates debug info
B b;
diff --git a/llvm/test/DebugInfo/PDB/Inputs/symbolformat.pdb b/llvm/test/DebugInfo/PDB/Inputs/symbolformat.pdb
index 28832d4090f..53d8a1b31a3 100644
--- a/llvm/test/DebugInfo/PDB/Inputs/symbolformat.pdb
+++ b/llvm/test/DebugInfo/PDB/Inputs/symbolformat.pdb
Binary files differ
diff --git a/llvm/test/DebugInfo/PDB/pdbdump-flags.test b/llvm/test/DebugInfo/PDB/pdbdump-flags.test
index d8d38cb705e..badbf0784b5 100644
--- a/llvm/test/DebugInfo/PDB/pdbdump-flags.test
+++ b/llvm/test/DebugInfo/PDB/pdbdump-flags.test
@@ -1,32 +1,40 @@
; RUN: llvm-pdbdump %p/Inputs/empty.pdb | FileCheck %s -check-prefix=NO_ARGS
; RUN: llvm-pdbdump -types %p/Inputs/empty.pdb | FileCheck %s -check-prefix=TYPES
; RUN: llvm-pdbdump -compilands %p/Inputs/empty.pdb | FileCheck %s -check-prefix=COMPILANDS
-; RUN: llvm-pdbdump -types -compilands %p/Inputs/empty.pdb | FileCheck %s -check-prefix=BOTH
+; RUN: llvm-pdbdump -types -compilands %p/Inputs/empty.pdb | FileCheck %s -check-prefix=MULTIPLE
; Check that neither symbols nor compilands are dumped when neither argument specified.
; NO_ARGS: empty.pdb
; NO_ARGS: Guid: {0B355641-86A0-A249-896F-9988FAE52FF0}
; NO_ARGS: Attributes: HasPrivateSymbols
-; NO_ARGS-NOT: Dumping compilands
-; NO_ARGS-NOT: Dumping symbols
+; NO_ARGS-NOT: ---TYPES---
+; NO_ARGS-NOT: ---COMPILANDS---
+; NO_ARGS-NOT: ---GLOBALS---
+; NO_ARGS-NOT: ---SYMBOLS---
-; Check that only symbols are dumped when only -types is specified.
+; Check that only types are dumped when only -types is specified.
; TYPES: empty.pdb
; TYPES: Guid: {0B355641-86A0-A249-896F-9988FAE52FF0}
; TYPES: Attributes: HasPrivateSymbols
-; TYPES: Dumping types
-; TYPES-NOT: Dumping compilands
+; TYPES: ---TYPES---
+; TYPES-NOT: ---COMPILANDS---
+; TYPES-NOT: ---GLOBALS---
+; TYPES-NOT: ---SYMBOLS---
; Check that only compilands are dumped when only -compilands is specified.
; COMPILANDS: empty.pdb
; COMPILANDS: Guid: {0B355641-86A0-A249-896F-9988FAE52FF0}
; COMPILANDS: Attributes: HasPrivateSymbols
-; COMPILANDS-NOT: Dumping types
-; COMPILANDS: Dumping compilands
+; COMPILANDS: ---COMPILANDS---
+; COMPILANDS-NOT: ---TYPES---
+; COMPILANDS-NOT: ---GLOBALS---
+; COMPILANDS-NOT: ---SYMBOLS---
; Check that types and compilands are dumped when both arguments are specified.
-; BOTH: empty.pdb
-; BOTH: Guid: {0B355641-86A0-A249-896F-9988FAE52FF0}
-; BOTH: Attributes: HasPrivateSymbols
-; BOTH: Dumping types
-; BOTH: Dumping compilands
+; MULTIPLE: empty.pdb
+; MULTIPLE: Guid: {0B355641-86A0-A249-896F-9988FAE52FF0}
+; MULTIPLE: Attributes: HasPrivateSymbols
+; MULTIPLE: ---COMPILANDS---
+; MULTIPLE: ---TYPES---
+; MULTIPLE-NOT: ---GLOBALS---
+; MULTIPLE-NOT: ---SYMBOLS---
diff --git a/llvm/test/DebugInfo/PDB/pdbdump-symbol-format.test b/llvm/test/DebugInfo/PDB/pdbdump-symbol-format.test
index 5ed65642b7f..a34d46d8db6 100644
--- a/llvm/test/DebugInfo/PDB/pdbdump-symbol-format.test
+++ b/llvm/test/DebugInfo/PDB/pdbdump-symbol-format.test
@@ -1,8 +1,10 @@
; 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
+; 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
@@ -15,20 +17,10 @@
; 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: Function Signatures
-; TYPES_FORMAT-DAG: int __cdecl ()
-; TYPES_FORMAT-DAG: int __cdecl (int, 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 int IntType
; TYPES_FORMAT-DAG: typedef class A ClassAType
@@ -36,6 +28,7 @@
; TYPES_FORMAT-DAG: class A
; TYPES_FORMAT-DAG: class B
+; FULL_CLASS: ---TYPES---
; FULL_CLASS: Classes
; FULL_CLASS-DAG: class A {
; FULL_CLASS: public:
@@ -58,4 +51,9 @@
; FULL_CLASS: data +0x30 float m_float
; FULL_CLASS: data +0x38 double m_double
; FULL_CLASS: data +0x40 void (__cdecl *m_pfn_2_args)(int, double)
-; FULL_CLASS: } \ No newline at end of file
+; FULL_CLASS: }
+
+; 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
OpenPOWER on IntegriCloud