OSDN Git Service

[PDB] Make the native reader support enumerators.
authorZachary Turner <zturner@google.com>
Mon, 17 Sep 2018 21:08:11 +0000 (21:08 +0000)
committerZachary Turner <zturner@google.com>
Mon, 17 Sep 2018 21:08:11 +0000 (21:08 +0000)
commit8d5fd87893bf8355546410637e36bc8b2246d91b
treef8f3f85abbbb48c7b09a6462163d578f1c0e08d8
parenta3a0a03db2148b2b9ef187f2e04b5dbdb9b07f18
[PDB] Make the native reader support enumerators.

Previously we would dump the names of enum types, but not their
enumerator values.  This adds support for enumerator values.  In
doing so, we have to introduce a general purpose mechanism for
caching symbol indices of field list members.  Unlike global
types, FieldList members do not have a TypeIndex.  So instead,
we identify them by the pair {TypeIndexOfFieldList, IndexInFieldList}.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@342415 91177308-0d34-0410-b5e6-96231b3b80d8
15 files changed:
include/llvm/DebugInfo/PDB/IPDBEnumChildren.h
include/llvm/DebugInfo/PDB/Native/NativeSymbolEnumerator.h [new file with mode: 0644]
include/llvm/DebugInfo/PDB/Native/NativeTypeEnum.h
include/llvm/DebugInfo/PDB/Native/SymbolCache.h
include/llvm/DebugInfo/PDB/PDBTypes.h
lib/DebugInfo/PDB/CMakeLists.txt
lib/DebugInfo/PDB/DIA/DIARawSymbol.cpp
lib/DebugInfo/PDB/Native/NativeSymbolEnumerator.cpp [new file with mode: 0644]
lib/DebugInfo/PDB/Native/NativeTypeEnum.cpp
lib/DebugInfo/PDB/Native/SymbolCache.cpp
lib/DebugInfo/PDB/PDBExtras.cpp
test/DebugInfo/PDB/Inputs/every-enum.cpp [new file with mode: 0644]
test/DebugInfo/PDB/Inputs/every-enum.pdb [new file with mode: 0644]
test/DebugInfo/PDB/Native/pdb-native-enums.test
tools/llvm-pdbutil/llvm-pdbutil.cpp