OSDN Git Service

[PDB] Better support for enumerating pointer types.
authorZachary Turner <zturner@google.com>
Tue, 18 Sep 2018 16:35:05 +0000 (16:35 +0000)
committerZachary Turner <zturner@google.com>
Tue, 18 Sep 2018 16:35:05 +0000 (16:35 +0000)
commit0c5ced81dc276d038dd2cc862188eec7f7f0c7ce
treedb101966935018452f1d4be4e73be03a1e5655c0
parent00a938c3c1e9dbae2dd68defce80c6bc80a76715
[PDB] Better support for enumerating pointer types.

There were several issues with the previous implementation.

1) There were no tests.
2) We didn't support creating PDBSymbolTypePointer records for
   builtin types since those aren't described by LF_POINTER
   records.
3) We didn't support a wide enough variety of builtin types even
   ignoring pointers.

This patch fixes all of these issues.  In order to add tests,
it's helpful to be able to ignore the symbol index id hierarchy
because it makes the golden output from the DIA version not match
our output, so I've extended the dumper to disable dumping of id
fields.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@342493 91177308-0d34-0410-b5e6-96231b3b80d8
25 files changed:
include/llvm/DebugInfo/CodeView/TypeIndex.h
include/llvm/DebugInfo/PDB/DIA/DIARawSymbol.h
include/llvm/DebugInfo/PDB/IPDBRawSymbol.h
include/llvm/DebugInfo/PDB/Native/NativeCompilandSymbol.h
include/llvm/DebugInfo/PDB/Native/NativeRawSymbol.h
include/llvm/DebugInfo/PDB/Native/NativeSymbolEnumerator.h
include/llvm/DebugInfo/PDB/Native/NativeTypeBuiltin.h
include/llvm/DebugInfo/PDB/Native/NativeTypeEnum.h
include/llvm/DebugInfo/PDB/Native/NativeTypePointer.h
include/llvm/DebugInfo/PDB/PDBSymbol.h
lib/DebugInfo/PDB/DIA/DIARawSymbol.cpp
lib/DebugInfo/PDB/Native/NativeCompilandSymbol.cpp
lib/DebugInfo/PDB/Native/NativeRawSymbol.cpp
lib/DebugInfo/PDB/Native/NativeSymbolEnumerator.cpp
lib/DebugInfo/PDB/Native/NativeTypeBuiltin.cpp
lib/DebugInfo/PDB/Native/NativeTypeEnum.cpp
lib/DebugInfo/PDB/Native/NativeTypePointer.cpp
lib/DebugInfo/PDB/Native/SymbolCache.cpp
lib/DebugInfo/PDB/PDBSymbol.cpp
test/DebugInfo/PDB/Inputs/every-pointer.cpp [new file with mode: 0644]
test/DebugInfo/PDB/Inputs/every-pointer.pdb [new file with mode: 0644]
test/DebugInfo/PDB/Native/pdb-native-compilands.test
test/DebugInfo/PDB/Native/pdb-native-enums.test
test/DebugInfo/PDB/Native/pdb-native-pointers.test [new file with mode: 0644]
tools/llvm-pdbutil/llvm-pdbutil.cpp