Rewrite llvm-pdbdump in terms of LLVMDebugInfoPDB.
[oota-llvm.git] / lib / DebugInfo / PDB / PDBSymbolTypeTypedef.cpp
index 8b4fd5d4bb41df238f19d1f6d58073b9ed307a2a..74cfeebbb0527821acc952a9c3398c020a22fcd5 100644 (file)
 
 #include <utility>
 
+#include "llvm/DebugInfo/PDB/IPDBSession.h"
 #include "llvm/DebugInfo/PDB/PDBSymbol.h"
 #include "llvm/DebugInfo/PDB/PDBSymbolTypeTypedef.h"
-
+#include "llvm/DebugInfo/PDB/PDBSymbolTypeUDT.h"
 using namespace llvm;
 
 PDBSymbolTypeTypedef::PDBSymbolTypeTypedef(
     const IPDBSession &PDBSession, std::unique_ptr<IPDBRawSymbol> Symbol)
     : PDBSymbol(PDBSession, std::move(Symbol)) {}
 
-void PDBSymbolTypeTypedef::dump(llvm::raw_ostream &OS) const {}
+void PDBSymbolTypeTypedef::dump(raw_ostream &OS, int Indent,
+                                PDB_DumpLevel Level) const {
+  OS.indent(Indent);
+  OS << "typedef:" << getName() << " -> ";
+  std::string TargetTypeName;
+  auto TypeSymbol = Session.getSymbolById(getTypeId());
+  if (PDBSymbolTypeUDT *UDT = dyn_cast<PDBSymbolTypeUDT>(TypeSymbol.get())) {
+    TargetTypeName = UDT->getName();
+  }
+  OS << TargetTypeName << "\n";
+}