summaryrefslogtreecommitdiffstats
path: root/llvm/test/DebugInfo/PDB
diff options
context:
space:
mode:
authorZachary Turner <zturner@google.com>2018-09-07 23:21:33 +0000
committerZachary Turner <zturner@google.com>2018-09-07 23:21:33 +0000
commitda4b63ab9afede44bb063adf26d5e9e5f14818c2 (patch)
tree161b138a94040692344529a1273b55928b8e4975 /llvm/test/DebugInfo/PDB
parent28655081a476d8808e9e2c0900d4ca87fb17abe3 (diff)
downloadbcm5719-llvm-da4b63ab9afede44bb063adf26d5e9e5f14818c2.tar.gz
bcm5719-llvm-da4b63ab9afede44bb063adf26d5e9e5f14818c2.zip
[PDB] Support pointer types in the native reader.
In order to start testing this, I've added a new mode to llvm-pdbutil which is only really useful for writing tests. It just dumps the value of raw fields in record format. This isn't really ideal and it won't allow us to test some important cases, but it's better than nothing for now. llvm-svn: 341729
Diffstat (limited to 'llvm/test/DebugInfo/PDB')
-rw-r--r--llvm/test/DebugInfo/PDB/Native/pdb-native-compilands.test19
-rw-r--r--llvm/test/DebugInfo/PDB/Native/pdb-native-enums.test219
2 files changed, 238 insertions, 0 deletions
diff --git a/llvm/test/DebugInfo/PDB/Native/pdb-native-compilands.test b/llvm/test/DebugInfo/PDB/Native/pdb-native-compilands.test
index 2c7011c6570..028e3379377 100644
--- a/llvm/test/DebugInfo/PDB/Native/pdb-native-compilands.test
+++ b/llvm/test/DebugInfo/PDB/Native/pdb-native-compilands.test
@@ -3,6 +3,8 @@
; RUN: | FileCheck -check-prefix=EMPTY %s
; RUN: llvm-pdbutil pretty -native -compilands %p/../Inputs/big-read.pdb \
; RUN: | FileCheck -check-prefix=BIGREAD %s
+; RUN: llvm-pdbutil diadump -compilands %p/../Inputs/empty.pdb \
+; RUN: | FileCheck -check-prefix=DUMP %s
; Reference output was generated with the DIA reader to ensure that the
; `-native` option produces identical output. The paths output will have
@@ -63,3 +65,20 @@ BIGREAD: api-ms-win-crt-locale-l1-1-0.dll
BIGREAD: Import:api-ms-win-crt-heap-l1-1-0.dll
BIGREAD: api-ms-win-crt-heap-l1-1-0.dll
BIGREAD: * Linker *
+
+DUMP: {
+DUMP-NEXT: symIndexId: 1
+DUMP-NEXT: symTag: 2
+DUMP-NEXT: lexicalParentId: 2
+DUMP-NEXT: libraryName: d:\src\llvm\test\DebugInfo\PDB\Inputs\empty.obj
+DUMP-NEXT: name: d:\src\llvm\test\DebugInfo\PDB\Inputs\empty.obj
+DUMP-NEXT: editAndContinueEnabled: 0
+DUMP-NEXT: }
+DUMP-NEXT: {
+DUMP-NEXT: symIndexId: 3
+DUMP-NEXT: symTag: 2
+DUMP-NEXT: lexicalParentId: 2
+DUMP-NEXT: libraryName:
+DUMP-NEXT: name: * Linker *
+DUMP-NEXT: editAndContinueEnabled: 0
+DUMP-NEXT: } \ No newline at end of file
diff --git a/llvm/test/DebugInfo/PDB/Native/pdb-native-enums.test b/llvm/test/DebugInfo/PDB/Native/pdb-native-enums.test
index 90581537aa1..f175a87d38a 100644
--- a/llvm/test/DebugInfo/PDB/Native/pdb-native-enums.test
+++ b/llvm/test/DebugInfo/PDB/Native/pdb-native-enums.test
@@ -1,6 +1,225 @@
; Test that the native PDB reader can enumerate the enum types.
; RUN: llvm-pdbutil pretty -native -enums %p/../Inputs/every-type.pdb \
; RUN: | FileCheck -check-prefix=ENUMS %s
+; RUN: llvm-pdbutil diadump -native -enums %p/../Inputs/every-type.pdb \
+; RUN: | FileCheck -check-prefix=DUMP %s
ENUMS: enum FooClass::NestedEnum {
ENUMS-NEXT: }
+
+DUMP: {
+DUMP-NEXT: symIndexId: 2
+DUMP-NEXT: symTag: 12
+DUMP-NEXT: baseType: 6
+DUMP-NEXT: lexicalParentId: 0
+DUMP-NEXT: name: __vc_attributes::event_sourceAttribute::type_e
+DUMP-NEXT: typeId: 3
+DUMP-NEXT: length: 4
+DUMP-NEXT: constructor: 0
+DUMP-NEXT: constType: 0
+DUMP-NEXT: hasAssignmentOperator: 0
+DUMP-NEXT: hasCastOperator: 0
+DUMP-NEXT: hasNestedTypes: 0
+DUMP-NEXT: overloadedOperator: 0
+DUMP-NEXT: isInterfaceUdt: 0
+DUMP-NEXT: intrinsic: 0
+DUMP-NEXT: nested: 1
+DUMP-NEXT: packed: 0
+DUMP-NEXT: isRefUdt: 0
+DUMP-NEXT: scoped: 0
+DUMP-NEXT: unalignedType: 0
+DUMP-NEXT: isValueUdt: 0
+DUMP-NEXT: volatileType: 0
+DUMP-NEXT: }
+DUMP-NEXT: {
+DUMP-NEXT: symIndexId: 4
+DUMP-NEXT: symTag: 12
+DUMP-NEXT: baseType: 6
+DUMP-NEXT: lexicalParentId: 0
+DUMP-NEXT: name: __vc_attributes::event_sourceAttribute::optimize_e
+DUMP-NEXT: typeId: 3
+DUMP-NEXT: length: 4
+DUMP-NEXT: constructor: 0
+DUMP-NEXT: constType: 0
+DUMP-NEXT: hasAssignmentOperator: 0
+DUMP-NEXT: hasCastOperator: 0
+DUMP-NEXT: hasNestedTypes: 0
+DUMP-NEXT: overloadedOperator: 0
+DUMP-NEXT: isInterfaceUdt: 0
+DUMP-NEXT: intrinsic: 0
+DUMP-NEXT: nested: 1
+DUMP-NEXT: packed: 0
+DUMP-NEXT: isRefUdt: 0
+DUMP-NEXT: scoped: 0
+DUMP-NEXT: unalignedType: 0
+DUMP-NEXT: isValueUdt: 0
+DUMP-NEXT: volatileType: 0
+DUMP-NEXT: }
+DUMP-NEXT: {
+DUMP-NEXT: symIndexId: 5
+DUMP-NEXT: symTag: 12
+DUMP-NEXT: baseType: 6
+DUMP-NEXT: lexicalParentId: 0
+DUMP-NEXT: name: __vc_attributes::helper_attributes::v1_alttypeAttribute::type_e
+DUMP-NEXT: typeId: 3
+DUMP-NEXT: length: 4
+DUMP-NEXT: constructor: 0
+DUMP-NEXT: constType: 0
+DUMP-NEXT: hasAssignmentOperator: 0
+DUMP-NEXT: hasCastOperator: 0
+DUMP-NEXT: hasNestedTypes: 0
+DUMP-NEXT: overloadedOperator: 0
+DUMP-NEXT: isInterfaceUdt: 0
+DUMP-NEXT: intrinsic: 0
+DUMP-NEXT: nested: 1
+DUMP-NEXT: packed: 0
+DUMP-NEXT: isRefUdt: 0
+DUMP-NEXT: scoped: 0
+DUMP-NEXT: unalignedType: 0
+DUMP-NEXT: isValueUdt: 0
+DUMP-NEXT: volatileType: 0
+DUMP-NEXT: }
+DUMP-NEXT: {
+DUMP-NEXT: symIndexId: 6
+DUMP-NEXT: symTag: 12
+DUMP-NEXT: baseType: 6
+DUMP-NEXT: lexicalParentId: 0
+DUMP-NEXT: name: __vc_attributes::helper_attributes::usageAttribute::usage_e
+DUMP-NEXT: typeId: 3
+DUMP-NEXT: length: 4
+DUMP-NEXT: constructor: 0
+DUMP-NEXT: constType: 0
+DUMP-NEXT: hasAssignmentOperator: 0
+DUMP-NEXT: hasCastOperator: 0
+DUMP-NEXT: hasNestedTypes: 0
+DUMP-NEXT: overloadedOperator: 0
+DUMP-NEXT: isInterfaceUdt: 0
+DUMP-NEXT: intrinsic: 0
+DUMP-NEXT: nested: 1
+DUMP-NEXT: packed: 0
+DUMP-NEXT: isRefUdt: 0
+DUMP-NEXT: scoped: 0
+DUMP-NEXT: unalignedType: 0
+DUMP-NEXT: isValueUdt: 0
+DUMP-NEXT: volatileType: 0
+DUMP-NEXT: }
+DUMP-NEXT: {
+DUMP-NEXT: symIndexId: 7
+DUMP-NEXT: symTag: 12
+DUMP-NEXT: baseType: 6
+DUMP-NEXT: lexicalParentId: 0
+DUMP-NEXT: name: __vc_attributes::threadingAttribute::threading_e
+DUMP-NEXT: typeId: 3
+DUMP-NEXT: length: 4
+DUMP-NEXT: constructor: 0
+DUMP-NEXT: constType: 0
+DUMP-NEXT: hasAssignmentOperator: 0
+DUMP-NEXT: hasCastOperator: 0
+DUMP-NEXT: hasNestedTypes: 0
+DUMP-NEXT: overloadedOperator: 0
+DUMP-NEXT: isInterfaceUdt: 0
+DUMP-NEXT: intrinsic: 0
+DUMP-NEXT: nested: 1
+DUMP-NEXT: packed: 0
+DUMP-NEXT: isRefUdt: 0
+DUMP-NEXT: scoped: 0
+DUMP-NEXT: unalignedType: 0
+DUMP-NEXT: isValueUdt: 0
+DUMP-NEXT: volatileType: 0
+DUMP-NEXT: }
+DUMP-NEXT: {
+DUMP-NEXT: symIndexId: 8
+DUMP-NEXT: symTag: 12
+DUMP-NEXT: baseType: 6
+DUMP-NEXT: lexicalParentId: 0
+DUMP-NEXT: name: __vc_attributes::aggregatableAttribute::type_e
+DUMP-NEXT: typeId: 3
+DUMP-NEXT: length: 4
+DUMP-NEXT: constructor: 0
+DUMP-NEXT: constType: 0
+DUMP-NEXT: hasAssignmentOperator: 0
+DUMP-NEXT: hasCastOperator: 0
+DUMP-NEXT: hasNestedTypes: 0
+DUMP-NEXT: overloadedOperator: 0
+DUMP-NEXT: isInterfaceUdt: 0
+DUMP-NEXT: intrinsic: 0
+DUMP-NEXT: nested: 1
+DUMP-NEXT: packed: 0
+DUMP-NEXT: isRefUdt: 0
+DUMP-NEXT: scoped: 0
+DUMP-NEXT: unalignedType: 0
+DUMP-NEXT: isValueUdt: 0
+DUMP-NEXT: volatileType: 0
+DUMP-NEXT: }
+DUMP-NEXT: {
+DUMP-NEXT: symIndexId: 9
+DUMP-NEXT: symTag: 12
+DUMP-NEXT: baseType: 6
+DUMP-NEXT: lexicalParentId: 0
+DUMP-NEXT: name: __vc_attributes::event_receiverAttribute::type_e
+DUMP-NEXT: typeId: 3
+DUMP-NEXT: length: 4
+DUMP-NEXT: constructor: 0
+DUMP-NEXT: constType: 0
+DUMP-NEXT: hasAssignmentOperator: 0
+DUMP-NEXT: hasCastOperator: 0
+DUMP-NEXT: hasNestedTypes: 0
+DUMP-NEXT: overloadedOperator: 0
+DUMP-NEXT: isInterfaceUdt: 0
+DUMP-NEXT: intrinsic: 0
+DUMP-NEXT: nested: 1
+DUMP-NEXT: packed: 0
+DUMP-NEXT: isRefUdt: 0
+DUMP-NEXT: scoped: 0
+DUMP-NEXT: unalignedType: 0
+DUMP-NEXT: isValueUdt: 0
+DUMP-NEXT: volatileType: 0
+DUMP-NEXT: }
+DUMP-NEXT: {
+DUMP-NEXT: symIndexId: 10
+DUMP-NEXT: symTag: 12
+DUMP-NEXT: baseType: 6
+DUMP-NEXT: lexicalParentId: 0
+DUMP-NEXT: name: __vc_attributes::moduleAttribute::type_e
+DUMP-NEXT: typeId: 3
+DUMP-NEXT: length: 4
+DUMP-NEXT: constructor: 0
+DUMP-NEXT: constType: 0
+DUMP-NEXT: hasAssignmentOperator: 0
+DUMP-NEXT: hasCastOperator: 0
+DUMP-NEXT: hasNestedTypes: 0
+DUMP-NEXT: overloadedOperator: 0
+DUMP-NEXT: isInterfaceUdt: 0
+DUMP-NEXT: intrinsic: 0
+DUMP-NEXT: nested: 1
+DUMP-NEXT: packed: 0
+DUMP-NEXT: isRefUdt: 0
+DUMP-NEXT: scoped: 0
+DUMP-NEXT: unalignedType: 0
+DUMP-NEXT: isValueUdt: 0
+DUMP-NEXT: volatileType: 0
+DUMP-NEXT: }
+DUMP-NEXT: {
+DUMP-NEXT: symIndexId: 11
+DUMP-NEXT: symTag: 12
+DUMP-NEXT: baseType: 6
+DUMP-NEXT: lexicalParentId: 0
+DUMP-NEXT: name: FooClass::NestedEnum
+DUMP-NEXT: typeId: 3
+DUMP-NEXT: length: 4
+DUMP-NEXT: constructor: 0
+DUMP-NEXT: constType: 0
+DUMP-NEXT: hasAssignmentOperator: 0
+DUMP-NEXT: hasCastOperator: 0
+DUMP-NEXT: hasNestedTypes: 0
+DUMP-NEXT: overloadedOperator: 0
+DUMP-NEXT: isInterfaceUdt: 0
+DUMP-NEXT: intrinsic: 0
+DUMP-NEXT: nested: 1
+DUMP-NEXT: packed: 0
+DUMP-NEXT: isRefUdt: 0
+DUMP-NEXT: scoped: 0
+DUMP-NEXT: unalignedType: 0
+DUMP-NEXT: isValueUdt: 0
+DUMP-NEXT: volatileType: 0
+DUMP-NEXT: }
OpenPOWER on IntegriCloud