summaryrefslogtreecommitdiff
path: root/lib/DebugInfo/PDB/PDBSymbolTypeBaseClass.cpp
diff options
context:
space:
mode:
authorZachary Turner <zturner@google.com>2017-04-10 06:14:09 +0000
committerZachary Turner <zturner@google.com>2017-04-10 06:14:09 +0000
commit18fcab5833bde16b91d2d5d1c77a208bd28ea087 (patch)
tree7fbc10098074cdf15c72a04989db6f702dc766c7 /lib/DebugInfo/PDB/PDBSymbolTypeBaseClass.cpp
parent64aab18a2e5f64a800021995e7d212125a1948c4 (diff)
General usability improvements to generic PDB library.
1. Added some asserts to make sure concrete symbol types don't get constructed with RawSymbols that have an incompatible SymTag enum value. 2. Added new forwarding macros that auto-define an Id/Sym method pair whenever there is a method that returns a SymIndexId. Previously we would just provide one method that returned only the SymIndexId and it was up to the caller to use the Session object to get a pointer to the symbol. Now we automatically get both the method that returns the Id, as well as a method that returns the pointer directly with just one macro. 3. Added some methods for dumping straight to stdout that can be used from inside the debugger for diagnostics during a debug session. 4. Added a clone() method and a cast<T>() method to PDBSymbol that can shorten some usage patterns. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@299831 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/DebugInfo/PDB/PDBSymbolTypeBaseClass.cpp')
-rw-r--r--lib/DebugInfo/PDB/PDBSymbolTypeBaseClass.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/DebugInfo/PDB/PDBSymbolTypeBaseClass.cpp b/lib/DebugInfo/PDB/PDBSymbolTypeBaseClass.cpp
index 382c397b24d..0ee18d47162 100644
--- a/lib/DebugInfo/PDB/PDBSymbolTypeBaseClass.cpp
+++ b/lib/DebugInfo/PDB/PDBSymbolTypeBaseClass.cpp
@@ -19,7 +19,9 @@ using namespace llvm::pdb;
PDBSymbolTypeBaseClass::PDBSymbolTypeBaseClass(
const IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
- : PDBSymbol(PDBSession, std::move(Symbol)) {}
+ : PDBSymbol(PDBSession, std::move(Symbol)) {
+ assert(RawSymbol->getSymTag() == PDB_SymType::BaseClass);
+}
void PDBSymbolTypeBaseClass::dump(PDBSymDumper &Dumper) const {
Dumper.dump(*this);