//
//===----------------------------------------------------------------------===//
-#include <utility>
+#include "llvm/DebugInfo/PDB/PDBSymbolTypeUDT.h"
+#include "llvm/DebugInfo/PDB/IPDBSession.h"
#include "llvm/DebugInfo/PDB/PDBSymbol.h"
-#include "llvm/DebugInfo/PDB/PDBSymbolTypeUDT.h"
+
+#include <utility>
using namespace llvm;
: PDBSymbol(PDBSession, std::move(Symbol)) {}
void PDBSymbolTypeUDT::dump(raw_ostream &OS, int Indent,
- PDB_DumpLevel Level) const {}
+ PDB_DumpLevel Level, PDB_DumpFlags Flags) const {
+ OS << stream_indent(Indent);
+ if (Level >= PDB_DumpLevel::Normal)
+ OS << "class ";
+
+ if (isNested()) {
+ uint32_t ClassId = getClassParentId();
+ if (ClassId != 0) {
+ if (auto ClassParent = Session.getSymbolById(ClassId)) {
+ ClassParent->dump(OS, 0, Level, PDB_DF_Children);
+ OS << "::";
+ }
+ }
+ }
+ OS << getName();
+
+ if (Level >= PDB_DumpLevel::Normal)
+ OS << " (" << getLength() << " bytes)";
+}