diff options
| author | Zachary Turner <zturner@google.com> | 2018-09-07 23:21:33 +0000 |
|---|---|---|
| committer | Zachary Turner <zturner@google.com> | 2018-09-07 23:21:33 +0000 |
| commit | da4b63ab9afede44bb063adf26d5e9e5f14818c2 (patch) | |
| tree | 161b138a94040692344529a1273b55928b8e4975 /llvm/test/DebugInfo/PDB | |
| parent | 28655081a476d8808e9e2c0900d4ca87fb17abe3 (diff) | |
| download | bcm5719-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.test | 19 | ||||
| -rw-r--r-- | llvm/test/DebugInfo/PDB/Native/pdb-native-enums.test | 219 |
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: } |

