summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-pdbdump
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/tools/llvm-pdbdump')
-rw-r--r--llvm/tools/llvm-pdbdump/BuiltinDumper.cpp3
-rw-r--r--llvm/tools/llvm-pdbdump/BuiltinDumper.h2
-rw-r--r--llvm/tools/llvm-pdbdump/ClassDefinitionDumper.cpp54
-rw-r--r--llvm/tools/llvm-pdbdump/ClassDefinitionDumper.h24
-rw-r--r--llvm/tools/llvm-pdbdump/CompilandDumper.cpp31
-rw-r--r--llvm/tools/llvm-pdbdump/CompilandDumper.h25
-rw-r--r--llvm/tools/llvm-pdbdump/FunctionDumper.cpp47
-rw-r--r--llvm/tools/llvm-pdbdump/FunctionDumper.h28
-rw-r--r--llvm/tools/llvm-pdbdump/TypeDumper.cpp21
-rw-r--r--llvm/tools/llvm-pdbdump/TypeDumper.h13
-rw-r--r--llvm/tools/llvm-pdbdump/TypedefDumper.cpp33
-rw-r--r--llvm/tools/llvm-pdbdump/TypedefDumper.h22
-rw-r--r--llvm/tools/llvm-pdbdump/VariableDumper.cpp47
-rw-r--r--llvm/tools/llvm-pdbdump/VariableDumper.h28
-rw-r--r--llvm/tools/llvm-pdbdump/llvm-pdbdump.cpp12
15 files changed, 154 insertions, 236 deletions
diff --git a/llvm/tools/llvm-pdbdump/BuiltinDumper.cpp b/llvm/tools/llvm-pdbdump/BuiltinDumper.cpp
index 03f3d42808b..1c1fe89c2cc 100644
--- a/llvm/tools/llvm-pdbdump/BuiltinDumper.cpp
+++ b/llvm/tools/llvm-pdbdump/BuiltinDumper.cpp
@@ -18,8 +18,7 @@ using namespace llvm;
BuiltinDumper::BuiltinDumper(LinePrinter &P)
: PDBSymDumper(false), Printer(P) {}
-void BuiltinDumper::start(const PDBSymbolTypeBuiltin &Symbol,
- llvm::raw_ostream &OS) {
+void BuiltinDumper::start(const PDBSymbolTypeBuiltin &Symbol) {
PDB_BuiltinType Type = Symbol.getBuiltinType();
switch (Type) {
case PDB_BuiltinType::Float:
diff --git a/llvm/tools/llvm-pdbdump/BuiltinDumper.h b/llvm/tools/llvm-pdbdump/BuiltinDumper.h
index 99e11a11445..8cf984a0ca6 100644
--- a/llvm/tools/llvm-pdbdump/BuiltinDumper.h
+++ b/llvm/tools/llvm-pdbdump/BuiltinDumper.h
@@ -20,7 +20,7 @@ class BuiltinDumper : public PDBSymDumper {
public:
BuiltinDumper(LinePrinter &P);
- void start(const PDBSymbolTypeBuiltin &Symbol, llvm::raw_ostream &OS);
+ void start(const PDBSymbolTypeBuiltin &Symbol);
private:
LinePrinter &Printer;
diff --git a/llvm/tools/llvm-pdbdump/ClassDefinitionDumper.cpp b/llvm/tools/llvm-pdbdump/ClassDefinitionDumper.cpp
index d6fcaea3eda..20e3fc4c795 100644
--- a/llvm/tools/llvm-pdbdump/ClassDefinitionDumper.cpp
+++ b/llvm/tools/llvm-pdbdump/ClassDefinitionDumper.cpp
@@ -31,15 +31,14 @@ using namespace llvm;
ClassDefinitionDumper::ClassDefinitionDumper(LinePrinter &P)
: PDBSymDumper(true), Printer(P) {}
-void ClassDefinitionDumper::start(const PDBSymbolTypeUDT &Class,
- raw_ostream &OS, int Indent) {
+void ClassDefinitionDumper::start(const PDBSymbolTypeUDT &Class) {
std::string Name = Class.getName();
WithColor(Printer, PDB_ColorItem::Keyword).get() << "class ";
WithColor(Printer, PDB_ColorItem::Type).get() << Class.getName();
Printer << " {";
auto Children = Class.findAllChildren();
if (Children->getChildCount() == 0) {
- OS << "}";
+ Printer << "}";
return;
}
@@ -78,22 +77,20 @@ void ClassDefinitionDumper::start(const PDBSymbolTypeUDT &Class,
}
int Count = 0;
- Count += dumpAccessGroup((PDB_MemberAccess)0, Groups[0], OS, Indent);
+ Count += dumpAccessGroup((PDB_MemberAccess)0, Groups[0]);
Count += dumpAccessGroup(PDB_MemberAccess::Public,
- Groups[(int)PDB_MemberAccess::Public], OS, Indent);
- Count +=
- dumpAccessGroup(PDB_MemberAccess::Protected,
- Groups[(int)PDB_MemberAccess::Protected], OS, Indent);
+ Groups[(int)PDB_MemberAccess::Public]);
+ Count += dumpAccessGroup(PDB_MemberAccess::Protected,
+ Groups[(int)PDB_MemberAccess::Protected]);
Count += dumpAccessGroup(PDB_MemberAccess::Private,
- Groups[(int)PDB_MemberAccess::Private], OS, Indent);
+ Groups[(int)PDB_MemberAccess::Private]);
if (Count > 0)
Printer.NewLine();
- OS << "}";
+ Printer << "}";
}
int ClassDefinitionDumper::dumpAccessGroup(PDB_MemberAccess Access,
- const SymbolGroup &Group,
- raw_ostream &OS, int Indent) {
+ const SymbolGroup &Group) {
if (Group.Functions.empty() && Group.Data.empty() && Group.Unknown.empty())
return 0;
@@ -115,46 +112,41 @@ int ClassDefinitionDumper::dumpAccessGroup(PDB_MemberAccess Access,
for (auto iter = Group.Functions.begin(), end = Group.Functions.end();
iter != end; ++iter) {
++Count;
- (*iter)->dump(OS, Indent + 2, *this);
+ (*iter)->dump(*this);
}
for (auto iter = Group.Data.begin(), end = Group.Data.end(); iter != end;
++iter) {
++Count;
- (*iter)->dump(OS, Indent + 2, *this);
+ (*iter)->dump(*this);
}
for (auto iter = Group.Unknown.begin(), end = Group.Unknown.end();
iter != end; ++iter) {
++Count;
- (*iter)->dump(OS, Indent + 2, *this);
+ (*iter)->dump(*this);
}
Printer.Unindent();
return Count;
}
-void ClassDefinitionDumper::dump(const PDBSymbolTypeBaseClass &Symbol,
- raw_ostream &OS, int Indent) {}
+void ClassDefinitionDumper::dump(const PDBSymbolTypeBaseClass &Symbol) {}
-void ClassDefinitionDumper::dump(const PDBSymbolData &Symbol, raw_ostream &OS,
- int Indent) {
+void ClassDefinitionDumper::dump(const PDBSymbolData &Symbol) {
VariableDumper Dumper(Printer);
- Dumper.start(Symbol, OS, Indent);
+ Dumper.start(Symbol);
}
-void ClassDefinitionDumper::dump(const PDBSymbolFunc &Symbol, raw_ostream &OS,
- int Indent) {
+void ClassDefinitionDumper::dump(const PDBSymbolFunc &Symbol) {
if (Printer.IsSymbolExcluded(Symbol.getName()))
return;
Printer.NewLine();
FunctionDumper Dumper(Printer);
- Dumper.start(Symbol, FunctionDumper::PointerType::None, OS, Indent);
+ Dumper.start(Symbol, FunctionDumper::PointerType::None);
}
-void ClassDefinitionDumper::dump(const PDBSymbolTypeVTable &Symbol,
- raw_ostream &OS, int Indent) {}
+void ClassDefinitionDumper::dump(const PDBSymbolTypeVTable &Symbol) {}
-void ClassDefinitionDumper::dump(const PDBSymbolTypeEnum &Symbol,
- raw_ostream &OS, int Indent) {
+void ClassDefinitionDumper::dump(const PDBSymbolTypeEnum &Symbol) {
if (Printer.IsTypeExcluded(Symbol.getName()))
return;
@@ -163,15 +155,13 @@ void ClassDefinitionDumper::dump(const PDBSymbolTypeEnum &Symbol,
WithColor(Printer, PDB_ColorItem::Type).get() << Symbol.getName();
}
-void ClassDefinitionDumper::dump(const PDBSymbolTypeTypedef &Symbol,
- raw_ostream &OS, int Indent) {
+void ClassDefinitionDumper::dump(const PDBSymbolTypeTypedef &Symbol) {
if (Printer.IsTypeExcluded(Symbol.getName()))
return;
Printer.NewLine();
TypedefDumper Dumper(Printer);
- Dumper.start(Symbol, OS, Indent);
+ Dumper.start(Symbol);
}
-void ClassDefinitionDumper::dump(const PDBSymbolTypeUDT &Symbol,
- raw_ostream &OS, int Indent) {}
+void ClassDefinitionDumper::dump(const PDBSymbolTypeUDT &Symbol) {}
diff --git a/llvm/tools/llvm-pdbdump/ClassDefinitionDumper.h b/llvm/tools/llvm-pdbdump/ClassDefinitionDumper.h
index 092e3b1f2e0..5b48ba879cf 100644
--- a/llvm/tools/llvm-pdbdump/ClassDefinitionDumper.h
+++ b/llvm/tools/llvm-pdbdump/ClassDefinitionDumper.h
@@ -26,20 +26,15 @@ class ClassDefinitionDumper : public PDBSymDumper {
public:
ClassDefinitionDumper(LinePrinter &P);
- void start(const PDBSymbolTypeUDT &Exe, raw_ostream &OS, int Indent);
+ void start(const PDBSymbolTypeUDT &Exe);
- void dump(const PDBSymbolTypeBaseClass &Symbol, raw_ostream &OS,
- int Indent) override;
- void dump(const PDBSymbolData &Symbol, raw_ostream &OS, int Indent) override;
- void dump(const PDBSymbolTypeEnum &Symbol, raw_ostream &OS,
- int Indent) override;
- void dump(const PDBSymbolFunc &Symbol, raw_ostream &OS, int Indent) override;
- void dump(const PDBSymbolTypeTypedef &Symbol, raw_ostream &OS,
- int Indent) override;
- void dump(const PDBSymbolTypeUDT &Symbol, raw_ostream &OS,
- int Indent) override;
- void dump(const PDBSymbolTypeVTable &Symbol, raw_ostream &OS,
- int Indent) override;
+ void dump(const PDBSymbolTypeBaseClass &Symbol) override;
+ void dump(const PDBSymbolData &Symbol) override;
+ void dump(const PDBSymbolTypeEnum &Symbol) override;
+ void dump(const PDBSymbolFunc &Symbol) override;
+ void dump(const PDBSymbolTypeTypedef &Symbol) override;
+ void dump(const PDBSymbolTypeUDT &Symbol) override;
+ void dump(const PDBSymbolTypeVTable &Symbol) override;
private:
LinePrinter &Printer;
@@ -60,8 +55,7 @@ private:
};
typedef std::unordered_map<int, SymbolGroup> SymbolGroupByAccess;
- int dumpAccessGroup(PDB_MemberAccess Access, const SymbolGroup &Group,
- raw_ostream &OS, int Indent);
+ int dumpAccessGroup(PDB_MemberAccess Access, const SymbolGroup &Group);
};
}
diff --git a/llvm/tools/llvm-pdbdump/CompilandDumper.cpp b/llvm/tools/llvm-pdbdump/CompilandDumper.cpp
index 14197a8b48e..accb2debd27 100644
--- a/llvm/tools/llvm-pdbdump/CompilandDumper.cpp
+++ b/llvm/tools/llvm-pdbdump/CompilandDumper.cpp
@@ -38,14 +38,11 @@ using namespace llvm;
CompilandDumper::CompilandDumper(LinePrinter &P)
: PDBSymDumper(true), Printer(P) {}
-void CompilandDumper::dump(const PDBSymbolCompilandDetails &Symbol,
- raw_ostream &OS, int Indent) {}
+void CompilandDumper::dump(const PDBSymbolCompilandDetails &Symbol) {}
-void CompilandDumper::dump(const PDBSymbolCompilandEnv &Symbol, raw_ostream &OS,
- int Indent) {}
+void CompilandDumper::dump(const PDBSymbolCompilandEnv &Symbol) {}
-void CompilandDumper::start(const PDBSymbolCompiland &Symbol, raw_ostream &OS,
- int Indent, bool Children) {
+void CompilandDumper::start(const PDBSymbolCompiland &Symbol, bool Children) {
std::string FullName = Symbol.getName();
if (Printer.IsCompilandExcluded(FullName))
return;
@@ -58,12 +55,11 @@ void CompilandDumper::start(const PDBSymbolCompiland &Symbol, raw_ostream &OS,
auto ChildrenEnum = Symbol.findAllChildren();
Printer.Indent();
while (auto Child = ChildrenEnum->getNext())
- Child->dump(OS, Indent + 2, *this);
+ Child->dump(*this);
Printer.Unindent();
}
-void CompilandDumper::dump(const PDBSymbolData &Symbol, raw_ostream &OS,
- int Indent) {
+void CompilandDumper::dump(const PDBSymbolData &Symbol) {
if (Printer.IsSymbolExcluded(Symbol.getName()))
return;
@@ -88,8 +84,7 @@ void CompilandDumper::dump(const PDBSymbolData &Symbol, raw_ostream &OS,
WithColor(Printer, PDB_ColorItem::Identifier).get() << Symbol.getName();
}
-void CompilandDumper::dump(const PDBSymbolFunc &Symbol, raw_ostream &OS,
- int Indent) {
+void CompilandDumper::dump(const PDBSymbolFunc &Symbol) {
if (Symbol.getLength() == 0)
return;
if (Printer.IsSymbolExcluded(Symbol.getName()))
@@ -97,11 +92,10 @@ void CompilandDumper::dump(const PDBSymbolFunc &Symbol, raw_ostream &OS,
Printer.NewLine();
FunctionDumper Dumper(Printer);
- Dumper.start(Symbol, FunctionDumper::PointerType::None, OS, Indent);
+ Dumper.start(Symbol, FunctionDumper::PointerType::None);
}
-void CompilandDumper::dump(const PDBSymbolLabel &Symbol, raw_ostream &OS,
- int Indent) {
+void CompilandDumper::dump(const PDBSymbolLabel &Symbol) {
if (Printer.IsSymbolExcluded(Symbol.getName()))
return;
@@ -112,8 +106,7 @@ void CompilandDumper::dump(const PDBSymbolLabel &Symbol, raw_ostream &OS,
WithColor(Printer, PDB_ColorItem::Identifier).get() << Symbol.getName();
}
-void CompilandDumper::dump(const PDBSymbolThunk &Symbol, raw_ostream &OS,
- int Indent) {
+void CompilandDumper::dump(const PDBSymbolThunk &Symbol) {
if (Printer.IsSymbolExcluded(Symbol.getName()))
return;
@@ -137,11 +130,9 @@ void CompilandDumper::dump(const PDBSymbolThunk &Symbol, raw_ostream &OS,
WithColor(Printer, PDB_ColorItem::Identifier).get() << Name;
}
-void CompilandDumper::dump(const PDBSymbolTypeTypedef &Symbol, raw_ostream &OS,
- int Indent) {}
+void CompilandDumper::dump(const PDBSymbolTypeTypedef &Symbol) {}
-void CompilandDumper::dump(const PDBSymbolUnknown &Symbol, raw_ostream &OS,
- int Indent) {
+void CompilandDumper::dump(const PDBSymbolUnknown &Symbol) {
Printer.NewLine();
Printer << "unknown (" << Symbol.getSymTag() << ")";
}
diff --git a/llvm/tools/llvm-pdbdump/CompilandDumper.h b/llvm/tools/llvm-pdbdump/CompilandDumper.h
index f17fa449327..0d1d27cd7a4 100644
--- a/llvm/tools/llvm-pdbdump/CompilandDumper.h
+++ b/llvm/tools/llvm-pdbdump/CompilandDumper.h
@@ -20,21 +20,16 @@ class CompilandDumper : public PDBSymDumper {
public:
CompilandDumper(LinePrinter &P);
- void start(const PDBSymbolCompiland &Symbol, raw_ostream &OS, int Indent,
- bool Children);
-
- void dump(const PDBSymbolCompilandDetails &Symbol, raw_ostream &OS,
- int Indent) override;
- void dump(const PDBSymbolCompilandEnv &Symbol, raw_ostream &OS,
- int Indent) override;
- void dump(const PDBSymbolData &Symbol, raw_ostream &OS, int Indent) override;
- void dump(const PDBSymbolFunc &Symbol, raw_ostream &OS, int Indent) override;
- void dump(const PDBSymbolLabel &Symbol, raw_ostream &OS, int Indent) override;
- void dump(const PDBSymbolThunk &Symbol, raw_ostream &OS, int Indent) override;
- void dump(const PDBSymbolTypeTypedef &Symbol, raw_ostream &OS,
- int Indent) override;
- void dump(const PDBSymbolUnknown &Symbol, raw_ostream &OS,
- int Indent) override;
+ void start(const PDBSymbolCompiland &Symbol, bool Children);
+
+ void dump(const PDBSymbolCompilandDetails &Symbol) override;
+ void dump(const PDBSymbolCompilandEnv &Symbol) override;
+ void dump(const PDBSymbolData &Symbol) override;
+ void dump(const PDBSymbolFunc &Symbol) override;
+ void dump(const PDBSymbolLabel &Symbol) override;
+ void dump(const PDBSymbolThunk &Symbol) override;
+ void dump(const PDBSymbolTypeTypedef &Symbol) override;
+ void dump(const PDBSymbolUnknown &Symbol) override;
private:
LinePrinter &Printer;
diff --git a/llvm/tools/llvm-pdbdump/FunctionDumper.cpp b/llvm/tools/llvm-pdbdump/FunctionDumper.cpp
index aafbbfa6468..ac7ab495756 100644
--- a/llvm/tools/llvm-pdbdump/FunctionDumper.cpp
+++ b/llvm/tools/llvm-pdbdump/FunctionDumper.cpp
@@ -48,10 +48,9 @@ FunctionDumper::FunctionDumper(LinePrinter &P)
: PDBSymDumper(true), Printer(P) {}
void FunctionDumper::start(const PDBSymbolTypeFunctionSig &Symbol,
- const char *Name, PointerType Pointer,
- raw_ostream &OS) {
+ const char *Name, PointerType Pointer) {
auto ReturnType = Symbol.getReturnType();
- ReturnType->dump(OS, 0, *this);
+ ReturnType->dump(*this);
Printer << " ";
uint32_t ClassParentId = Symbol.getClassParentId();
auto ClassParent =
@@ -96,7 +95,7 @@ void FunctionDumper::start(const PDBSymbolTypeFunctionSig &Symbol,
if (auto ChildEnum = Symbol.getArguments()) {
uint32_t Index = 0;
while (auto Arg = ChildEnum->getNext()) {
- Arg->dump(OS, 0, *this);
+ Arg->dump(*this);
if (++Index < ChildEnum->getChildCount())
Printer << ", ";
}
@@ -109,8 +108,7 @@ void FunctionDumper::start(const PDBSymbolTypeFunctionSig &Symbol,
WithColor(Printer, PDB_ColorItem::Keyword).get() << " volatile";
}
-void FunctionDumper::start(const PDBSymbolFunc &Symbol, PointerType Pointer,
- raw_ostream &OS, int Indent) {
+void FunctionDumper::start(const PDBSymbolFunc &Symbol, PointerType Pointer) {
uint32_t FuncStart = Symbol.getRelativeVirtualAddress();
uint32_t FuncEnd = FuncStart + Symbol.getLength();
@@ -150,7 +148,7 @@ void FunctionDumper::start(const PDBSymbolFunc &Symbol, PointerType Pointer,
}
auto ReturnType = Signature->getReturnType();
- ReturnType->dump(OS, 0, *this);
+ ReturnType->dump(*this);
Printer << " ";
auto ClassParent = Symbol.getClassParent();
@@ -177,7 +175,7 @@ void FunctionDumper::start(const PDBSymbolFunc &Symbol, PointerType Pointer,
uint32_t Index = 0;
while (auto Arg = Arguments->getNext()) {
auto ArgType = Arg->getType();
- ArgType->dump(OS, 0, *this);
+ ArgType->dump(*this);
WithColor(Printer, PDB_ColorItem::Identifier).get() << " "
<< Arg->getName();
if (++Index < Arguments->getChildCount())
@@ -193,50 +191,44 @@ void FunctionDumper::start(const PDBSymbolFunc &Symbol, PointerType Pointer,
Printer << " = 0";
}
-void FunctionDumper::dump(const PDBSymbolTypeArray &Symbol, raw_ostream &OS,
- int Indent) {
+void FunctionDumper::dump(const PDBSymbolTypeArray &Symbol) {
uint32_t ElementTypeId = Symbol.getTypeId();
auto ElementType = Symbol.getSession().getSymbolById(ElementTypeId);
if (!ElementType)
return;
- ElementType->dump(OS, 0, *this);
+ ElementType->dump(*this);
Printer << "[";
WithColor(Printer, PDB_ColorItem::LiteralValue).get() << Symbol.getLength();
Printer << "]";
}
-void FunctionDumper::dump(const PDBSymbolTypeBuiltin &Symbol, raw_ostream &OS,
- int Indent) {
+void FunctionDumper::dump(const PDBSymbolTypeBuiltin &Symbol) {
BuiltinDumper Dumper(Printer);
- Dumper.start(Symbol, OS);
+ Dumper.start(Symbol);
}
-void FunctionDumper::dump(const PDBSymbolTypeEnum &Symbol, raw_ostream &OS,
- int Indent) {
+void FunctionDumper::dump(const PDBSymbolTypeEnum &Symbol) {
dumpClassParentWithScopeOperator(Symbol, Printer, *this);
WithColor(Printer, PDB_ColorItem::Type).get() << Symbol.getName();
}
-void FunctionDumper::dump(const PDBSymbolTypeFunctionArg &Symbol,
- raw_ostream &OS, int Indent) {
+void FunctionDumper::dump(const PDBSymbolTypeFunctionArg &Symbol) {
// PDBSymbolTypeFunctionArg is just a shim over the real argument. Just drill
// through to the real thing and dump it.
uint32_t TypeId = Symbol.getTypeId();
auto Type = Symbol.getSession().getSymbolById(TypeId);
if (!Type)
return;
- Type->dump(OS, 0, *this);
+ Type->dump(*this);
}
-void FunctionDumper::dump(const PDBSymbolTypeTypedef &Symbol, raw_ostream &OS,
- int Indent) {
+void FunctionDumper::dump(const PDBSymbolTypeTypedef &Symbol) {
dumpClassParentWithScopeOperator(Symbol, Printer, *this);
WithColor(Printer, PDB_ColorItem::Type).get() << Symbol.getName();
}
-void FunctionDumper::dump(const PDBSymbolTypePointer &Symbol, raw_ostream &OS,
- int Indent) {
+void FunctionDumper::dump(const PDBSymbolTypePointer &Symbol) {
uint32_t PointeeId = Symbol.getTypeId();
auto PointeeType = Symbol.getSession().getSymbolById(PointeeId);
if (!PointeeType)
@@ -246,18 +238,17 @@ void FunctionDumper::dump(const PDBSymbolTypePointer &Symbol, raw_ostream &OS,
FunctionDumper NestedDumper(Printer);
PointerType Pointer =
Symbol.isReference() ? PointerType::Reference : PointerType::Pointer;
- NestedDumper.start(*FuncSig, nullptr, Pointer, OS);
+ NestedDumper.start(*FuncSig, nullptr, Pointer);
} else {
if (Symbol.isConstType())
WithColor(Printer, PDB_ColorItem::Keyword).get() << "const ";
if (Symbol.isVolatileType())
WithColor(Printer, PDB_ColorItem::Keyword).get() << "volatile ";
- PointeeType->dump(OS, Indent, *this);
- OS << (Symbol.isReference() ? "&" : "*");
+ PointeeType->dump(*this);
+ Printer << (Symbol.isReference() ? "&" : "*");
}
}
-void FunctionDumper::dump(const PDBSymbolTypeUDT &Symbol, raw_ostream &OS,
- int Indent) {
+void FunctionDumper::dump(const PDBSymbolTypeUDT &Symbol) {
WithColor(Printer, PDB_ColorItem::Type).get() << Symbol.getName();
}
diff --git a/llvm/tools/llvm-pdbdump/FunctionDumper.h b/llvm/tools/llvm-pdbdump/FunctionDumper.h
index 63fde6eb220..19a00145a1f 100644
--- a/llvm/tools/llvm-pdbdump/FunctionDumper.h
+++ b/llvm/tools/llvm-pdbdump/FunctionDumper.h
@@ -23,24 +23,16 @@ public:
enum class PointerType { None, Pointer, Reference };
void start(const PDBSymbolTypeFunctionSig &Symbol, const char *Name,
- PointerType Pointer, raw_ostream &OS);
- void start(const PDBSymbolFunc &Symbol, PointerType Pointer, raw_ostream &OS,
- int Indent);
-
- void dump(const PDBSymbolTypeArray &Symbol, raw_ostream &OS,
- int Indent) override;
- void dump(const PDBSymbolTypeBuiltin &Symbol, raw_ostream &OS,
- int Indent) override;
- void dump(const PDBSymbolTypeEnum &Symbol, raw_ostream &OS,
- int Indent) override;
- void dump(const PDBSymbolTypeFunctionArg &Symbol, raw_ostream &OS,
- int Indent) override;
- void dump(const PDBSymbolTypePointer &Symbol, raw_ostream &OS,
- int Indent) override;
- void dump(const PDBSymbolTypeTypedef &Symbol, raw_ostream &OS,
- int Indent) override;
- void dump(const PDBSymbolTypeUDT &Symbol, raw_ostream &OS,
- int Indent) override;
+ PointerType Pointer);
+ void start(const PDBSymbolFunc &Symbol, PointerType Pointer);
+
+ void dump(const PDBSymbolTypeArray &Symbol) override;
+ void dump(const PDBSymbolTypeBuiltin &Symbol) override;
+ void dump(const PDBSymbolTypeEnum &Symbol) override;
+ void dump(const PDBSymbolTypeFunctionArg &Symbol) override;
+ void dump(const PDBSymbolTypePointer &Symbol) override;
+ void dump(const PDBSymbolTypeTypedef &Symbol) override;
+ void dump(const PDBSymbolTypeUDT &Symbol) override;
private:
LinePrinter &Printer;
diff --git a/llvm/tools/llvm-pdbdump/TypeDumper.cpp b/llvm/tools/llvm-pdbdump/TypeDumper.cpp
index 8bca68e8d8b..cd0be1227ad 100644
--- a/llvm/tools/llvm-pdbdump/TypeDumper.cpp
+++ b/llvm/tools/llvm-pdbdump/TypeDumper.cpp
@@ -25,14 +25,14 @@ using namespace llvm;
TypeDumper::TypeDumper(LinePrinter &P, bool ClassDefs)
: PDBSymDumper(true), Printer(P), FullClassDefs(ClassDefs) {}
-void TypeDumper::start(const PDBSymbolExe &Exe, raw_ostream &OS, int Indent) {
+void TypeDumper::start(const PDBSymbolExe &Exe) {
auto Enums = Exe.findAllChildren<PDBSymbolTypeEnum>();
Printer.NewLine();
WithColor(Printer, PDB_ColorItem::Identifier).get() << "Enums";
Printer << ": (" << Enums->getChildCount() << " items)";
Printer.Indent();
while (auto Enum = Enums->getNext())
- Enum->dump(OS, Indent + 2, *this);
+ Enum->dump(*this);
Printer.Unindent();
auto Typedefs = Exe.findAllChildren<PDBSymbolTypeTypedef>();
@@ -41,7 +41,7 @@ void TypeDumper::start(const PDBSymbolExe &Exe, raw_ostream &OS, int Indent) {
Printer << ": (" << Typedefs->getChildCount() << " items)";
Printer.Indent();
while (auto Typedef = Typedefs->getNext())
- Typedef->dump(OS, Indent + 2, *this);
+ Typedef->dump(*this);
Printer.Unindent();
auto Classes = Exe.findAllChildren<PDBSymbolTypeUDT>();
@@ -50,12 +50,11 @@ void TypeDumper::start(const PDBSymbolExe &Exe, raw_ostream &OS, int Indent) {
Printer << ": (" << Classes->getChildCount() << " items)";
Printer.Indent();
while (auto Class = Classes->getNext())
- Class->dump(OS, Indent + 2, *this);
+ Class->dump(*this);
Printer.Unindent();
}
-void TypeDumper::dump(const PDBSymbolTypeEnum &Symbol, raw_ostream &OS,
- int Indent) {
+void TypeDumper::dump(const PDBSymbolTypeEnum &Symbol) {
if (Symbol.getUnmodifiedTypeId() != 0)
return;
if (Printer.IsTypeExcluded(Symbol.getName()))
@@ -66,18 +65,16 @@ void TypeDumper::dump(const PDBSymbolTypeEnum &Symbol, raw_ostream &OS,
WithColor(Printer, PDB_ColorItem::Identifier).get() << Symbol.getName();
}
-void TypeDumper::dump(const PDBSymbolTypeTypedef &Symbol, raw_ostream &OS,
- int Indent) {
+void TypeDumper::dump(const PDBSymbolTypeTypedef &Symbol) {
if (Printer.IsTypeExcluded(Symbol.getName()))
return;
Printer.NewLine();
TypedefDumper Dumper(Printer);
- Dumper.start(Symbol, OS, Indent);
+ Dumper.start(Symbol);
}
-void TypeDumper::dump(const PDBSymbolTypeUDT &Symbol, raw_ostream &OS,
- int Indent) {
+void TypeDumper::dump(const PDBSymbolTypeUDT &Symbol) {
if (Symbol.getUnmodifiedTypeId() != 0)
return;
if (Printer.IsTypeExcluded(Symbol.getName()))
@@ -87,7 +84,7 @@ void TypeDumper::dump(const PDBSymbolTypeUDT &Symbol, raw_ostream &OS,
if (FullClassDefs) {
ClassDefinitionDumper Dumper(Printer);
- Dumper.start(Symbol, OS, Indent);
+ Dumper.start(Symbol);
} else {
WithColor(Printer, PDB_ColorItem::Keyword).get() << "class ";
WithColor(Printer, PDB_ColorItem::Identifier).get() << Symbol.getName();
diff --git a/llvm/tools/llvm-pdbdump/TypeDumper.h b/llvm/tools/llvm-pdbdump/TypeDumper.h
index 51d2d4a5553..d63019be236 100644
--- a/llvm/tools/llvm-pdbdump/TypeDumper.h
+++ b/llvm/tools/llvm-pdbdump/TypeDumper.h
@@ -20,14 +20,11 @@ class TypeDumper : public PDBSymDumper {
public:
TypeDumper(LinePrinter &P, bool ClassDefs);
- void start(const PDBSymbolExe &Exe, raw_ostream &OS, int Indent);
-
- void dump(const PDBSymbolTypeEnum &Symbol, raw_ostream &OS,
- int Indent) override;
- void dump(const PDBSymbolTypeTypedef &Symbol, raw_ostream &OS,
- int Indent) override;
- void dump(const PDBSymbolTypeUDT &Symbol, raw_ostream &OS,
- int Indent) override;
+ void start(const PDBSymbolExe &Exe);
+
+ void dump(const PDBSymbolTypeEnum &Symbol) override;
+ void dump(const PDBSymbolTypeTypedef &Symbol) override;
+ void dump(const PDBSymbolTypeUDT &Symbol) override;
private:
LinePrinter &Printer;
diff --git a/llvm/tools/llvm-pdbdump/TypedefDumper.cpp b/llvm/tools/llvm-pdbdump/TypedefDumper.cpp
index 615b8d57aa1..5e4228c7c70 100644
--- a/llvm/tools/llvm-pdbdump/TypedefDumper.cpp
+++ b/llvm/tools/llvm-pdbdump/TypedefDumper.cpp
@@ -26,32 +26,27 @@ using namespace llvm;
TypedefDumper::TypedefDumper(LinePrinter &P) : PDBSymDumper(true), Printer(P) {}
-void TypedefDumper::start(const PDBSymbolTypeTypedef &Symbol, raw_ostream &OS,
- int Indent) {
+void TypedefDumper::start(const PDBSymbolTypeTypedef &Symbol) {
WithColor(Printer, PDB_ColorItem::Keyword).get() << "typedef ";
uint32_t TargetId = Symbol.getTypeId();
if (auto TypeSymbol = Symbol.getSession().getSymbolById(TargetId))
- TypeSymbol->dump(OS, 0, *this);
+ TypeSymbol->dump(*this);
WithColor(Printer, PDB_ColorItem::Type).get() << " " << Symbol.getName();
}
-void TypedefDumper::dump(const PDBSymbolTypeArray &Symbol, raw_ostream &OS,
- int Indent) {}
+void TypedefDumper::dump(const PDBSymbolTypeArray &Symbol) {}
-void TypedefDumper::dump(const PDBSymbolTypeBuiltin &Symbol, raw_ostream &OS,
- int Indent) {
+void TypedefDumper::dump(const PDBSymbolTypeBuiltin &Symbol) {
BuiltinDumper Dumper(Printer);
- Dumper.start(Symbol, OS);
+ Dumper.start(Symbol);
}
-void TypedefDumper::dump(const PDBSymbolTypeEnum &Symbol, raw_ostream &OS,
- int Indent) {
+void TypedefDumper::dump(const PDBSymbolTypeEnum &Symbol) {
WithColor(Printer, PDB_ColorItem::Keyword).get() << "enum ";
WithColor(Printer, PDB_ColorItem::Type).get() << " " << Symbol.getName();
}
-void TypedefDumper::dump(const PDBSymbolTypePointer &Symbol, raw_ostream &OS,
- int Indent) {
+void TypedefDumper::dump(const PDBSymbolTypePointer &Symbol) {
if (Symbol.isConstType())
WithColor(Printer, PDB_ColorItem::Keyword).get() << "const ";
if (Symbol.isVolatileType())
@@ -65,21 +60,19 @@ void TypedefDumper::dump(const PDBSymbolTypePointer &Symbol, raw_ostream &OS,
if (Symbol.isReference())
Pointer = FunctionDumper::PointerType::Reference;
FunctionDumper NestedDumper(Printer);
- NestedDumper.start(*FuncSig, nullptr, Pointer, OS);
+ NestedDumper.start(*FuncSig, nullptr, Pointer);
} else {
- PointeeType->dump(OS, Indent, *this);
- OS << ((Symbol.isReference()) ? "&" : "*");
+ PointeeType->dump(*this);
+ Printer << ((Symbol.isReference()) ? "&" : "*");
}
}
-void TypedefDumper::dump(const PDBSymbolTypeFunctionSig &Symbol,
- raw_ostream &OS, int Indent) {
+void TypedefDumper::dump(const PDBSymbolTypeFunctionSig &Symbol) {
FunctionDumper Dumper(Printer);
- Dumper.start(Symbol, nullptr, FunctionDumper::PointerType::None, OS);
+ Dumper.start(Symbol, nullptr, FunctionDumper::PointerType::None);
}
-void TypedefDumper::dump(const PDBSymbolTypeUDT &Symbol, raw_ostream &OS,
- int Indent) {
+void TypedefDumper::dump(const PDBSymbolTypeUDT &Symbol) {
WithColor(Printer, PDB_ColorItem::Keyword).get() << "class ";
WithColor(Printer, PDB_ColorItem::Type).get() << " " << Symbol.getName();
}
diff --git a/llvm/tools/llvm-pdbdump/TypedefDumper.h b/llvm/tools/llvm-pdbdump/TypedefDumper.h
index a5fcf2c4c98..8cd578cc6d2 100644
--- a/llvm/tools/llvm-pdbdump/TypedefDumper.h
+++ b/llvm/tools/llvm-pdbdump/TypedefDumper.h
@@ -20,20 +20,14 @@ class TypedefDumper : public PDBSymDumper {
public:
TypedefDumper(LinePrinter &P);
- void start(const PDBSymbolTypeTypedef &Symbol, raw_ostream &OS, int Indent);
-
- void dump(const PDBSymbolTypeArray &Symbol, raw_ostream &OS,
- int Indent) override;
- void dump(const PDBSymbolTypeBuiltin &Symbol, raw_ostream &OS,
- int Indent) override;
- void dump(const PDBSymbolTypeEnum &Symbol, raw_ostream &OS,
- int Indent) override;
- void dump(const PDBSymbolTypeFunctionSig &Symbol, raw_ostream &OS,
- int Indent) override;
- void dump(const PDBSymbolTypePointer &Symbol, raw_ostream &OS,
- int Indent) override;
- void dump(const PDBSymbolTypeUDT &Symbol, raw_ostream &OS,
- int Indent) override;
+ void start(const PDBSymbolTypeTypedef &Symbol);
+
+ void dump(const PDBSymbolTypeArray &Symbol) override;
+ void dump(const PDBSymbolTypeBuiltin &Symbol) override;
+ void dump(const PDBSymbolTypeEnum &Symbol) override;
+ void dump(const PDBSymbolTypeFunctionSig &Symbol) override;
+ void dump(const PDBSymbolTypePointer &Symbol) override;
+ void dump(const PDBSymbolTypeUDT &Symbol) override;
private:
LinePrinter &Printer;
diff --git a/llvm/tools/llvm-pdbdump/VariableDumper.cpp b/llvm/tools/llvm-pdbdump/VariableDumper.cpp
index ec72d16fef9..d520fd10099 100644
--- a/llvm/tools/llvm-pdbdump/VariableDumper.cpp
+++ b/llvm/tools/llvm-pdbdump/VariableDumper.cpp
@@ -30,8 +30,7 @@ using namespace llvm;
VariableDumper::VariableDumper(LinePrinter &P)
: PDBSymDumper(true), Printer(P) {}
-void VariableDumper::start(const PDBSymbolData &Var, raw_ostream &OS,
- int Indent) {
+void VariableDumper::start(const PDBSymbolData &Var) {
if (Printer.IsSymbolExcluded(Var.getName()))
return;
@@ -45,11 +44,11 @@ void VariableDumper::start(const PDBSymbolData &Var, raw_ostream &OS,
WithColor(Printer, PDB_ColorItem::Address).get()
<< "[" << format_hex(Var.getRelativeVirtualAddress(), 10) << "] ";
WithColor(Printer, PDB_ColorItem::Keyword).get() << "static ";
- dumpSymbolTypeAndName(*VarType, Var.getName(), OS);
+ dumpSymbolTypeAndName(*VarType, Var.getName());
break;
case PDB_LocType::Constant:
WithColor(Printer, PDB_ColorItem::Keyword).get() << "const ";
- dumpSymbolTypeAndName(*VarType, Var.getName(), OS);
+ dumpSymbolTypeAndName(*VarType, Var.getName());
Printer << "[";
WithColor(Printer, PDB_ColorItem::LiteralValue).get() << Var.getValue();
Printer << "]";
@@ -57,31 +56,27 @@ void VariableDumper::start(const PDBSymbolData &Var, raw_ostream &OS,
case PDB_LocType::ThisRel:
WithColor(Printer, PDB_ColorItem::Offset).get()
<< "+" << format_hex(Var.getOffset(), 4) << " ";
- dumpSymbolTypeAndName(*VarType, Var.getName(), OS);
+ dumpSymbolTypeAndName(*VarType, Var.getName());
break;
default:
- OS << "unknown(" << LocType << ") ";
+ Printer << "unknown(" << LocType << ") ";
WithColor(Printer, PDB_ColorItem::Identifier).get() << Var.getName();
break;
}
}
-void VariableDumper::dump(const PDBSymbolTypeBuiltin &Symbol, raw_ostream &OS,
- int Indent) {
+void VariableDumper::dump(const PDBSymbolTypeBuiltin &Symbol) {
BuiltinDumper Dumper(Printer);
- Dumper.start(Symbol, OS);
+ Dumper.start(Symbol);
}
-void VariableDumper::dump(const PDBSymbolTypeEnum &Symbol, raw_ostream &OS,
- int Indent) {
+void VariableDumper::dump(const PDBSymbolTypeEnum &Symbol) {
WithColor(Printer, PDB_ColorItem::Type).get() << Symbol.getName();
}
-void VariableDumper::dump(const PDBSymbolTypeFunctionSig &Symbol,
- raw_ostream &OS, int Indent) {}
+void VariableDumper::dump(const PDBSymbolTypeFunctionSig &Symbol) {}
-void VariableDumper::dump(const PDBSymbolTypePointer &Symbol, raw_ostream &OS,
- int Indent) {
+void VariableDumper::dump(const PDBSymbolTypePointer &Symbol) {
auto PointeeType = Symbol.getPointeeType();
if (!PointeeType)
return;
@@ -91,30 +86,28 @@ void VariableDumper::dump(const PDBSymbolTypePointer &Symbol, raw_ostream &OS,
FunctionDumper::PointerType Pointer =
Symbol.isReference() ? FunctionDumper::PointerType::Reference
: FunctionDumper::PointerType::Pointer;
- NestedDumper.start(*Func, Pointer, OS, Indent);
+ NestedDumper.start(*Func, Pointer);
} else {
if (Symbol.isConstType())
WithColor(Printer, PDB_ColorItem::Keyword).get() << "const ";
if (Symbol.isVolatileType())
WithColor(Printer, PDB_ColorItem::Keyword).get() << "volatile ";
- PointeeType->dump(OS, Indent, *this);
+ PointeeType->dump(*this);
Printer << (Symbol.isReference() ? "&" : "*");
}
}
-void VariableDumper::dump(const PDBSymbolTypeTypedef &Symbol, raw_ostream &OS,
- int Indent) {
+void VariableDumper::dump(const PDBSymbolTypeTypedef &Symbol) {
WithColor(Printer, PDB_ColorItem::Keyword).get() << "typedef ";
WithColor(Printer, PDB_ColorItem::Type).get() << Symbol.getName();
}
-void VariableDumper::dump(const PDBSymbolTypeUDT &Symbol, raw_ostream &OS,
- int Indent) {
+void VariableDumper::dump(const PDBSymbolTypeUDT &Symbol) {
WithColor(Printer, PDB_ColorItem::Type).get() << Symbol.getName();
}
void VariableDumper::dumpSymbolTypeAndName(const PDBSymbol &Type,
- StringRef Name, raw_ostream &OS) {
+ StringRef Name) {
if (auto *ArrayType = dyn_cast<PDBSymbolTypeArray>(&Type)) {
std::string IndexSpec;
raw_string_ostream IndexStream(IndexSpec);
@@ -126,19 +119,19 @@ void VariableDumper::dumpSymbolTypeAndName(const PDBSymbol &Type,
ElementType = NestedArray->getElementType();
}
IndexStream << "[" << ArrayType->getCount() << "]";
- ElementType->dump(OS, 0, *this);
+ ElementType->dump(*this);
WithColor(Printer, PDB_ColorItem::Identifier).get() << " " << Name;
Printer << IndexStream.str();
} else {
- if (!tryDumpFunctionPointer(Type, Name, OS)) {
- Type.dump(OS, 0, *this);
+ if (!tryDumpFunctionPointer(Type, Name)) {
+ Type.dump(*this);
WithColor(Printer, PDB_ColorItem::Identifier).get() << " " << Name;
}
}
}
bool VariableDumper::tryDumpFunctionPointer(const PDBSymbol &Type,
- StringRef Name, raw_ostream &OS) {
+ StringRef Name) {
// Function pointers come across as pointers to function signatures. But the
// signature carries no name, so we have to handle this case separately.
if (auto *PointerType = dyn_cast<PDBSymbolTypePointer>(&Type)) {
@@ -150,7 +143,7 @@ bool VariableDumper::tryDumpFunctionPointer(const PDBSymbol &Type,
if (PointerType->isReference())
PT = FunctionDumper::PointerType::Reference;
std::string NameStr(Name.begin(), Name.end());
- Dumper.start(*FunctionSig, NameStr.c_str(), PT, OS);
+ Dumper.start(*FunctionSig, NameStr.c_str(), PT);
return true;
}
}
diff --git a/llvm/tools/llvm-pdbdump/VariableDumper.h b/llvm/tools/llvm-pdbdump/VariableDumper.h
index 09f1314932a..db8d8ea0e43 100644
--- a/llvm/tools/llvm-pdbdump/VariableDumper.h
+++ b/llvm/tools/llvm-pdbdump/VariableDumper.h
@@ -21,26 +21,18 @@ class VariableDumper : public PDBSymDumper {
public:
VariableDumper(LinePrinter &P);
- void start(const PDBSymbolData &Var, raw_ostream &OS, int Indent);
-
- void dump(const PDBSymbolTypeBuiltin &Symbol, raw_ostream &OS,
- int Indent) override;
- void dump(const PDBSymbolTypeEnum &Symbol, raw_ostream &OS,
- int Indent) override;
- void dump(const PDBSymbolTypeFunctionSig &Symbol, raw_ostream &OS,
- int Indent) override;
- void dump(const PDBSymbolTypePointer &Symbol, raw_ostream &OS,
- int Indent) override;
- void dump(const PDBSymbolTypeTypedef &Symbol, raw_ostream &OS,
- int Indent) override;
- void dump(const PDBSymbolTypeUDT &Symbol, raw_ostream &OS,
- int Indent) override;
+ void start(const PDBSymbolData &Var);
+
+ void dump(const PDBSymbolTypeBuiltin &Symbol) override;
+ void dump(const PDBSymbolTypeEnum &Symbol) override;
+ void dump(const PDBSymbolTypeFunctionSig &Symbol) override;
+ void dump(const PDBSymbolTypePointer &Symbol) override;
+ void dump(const PDBSymbolTypeTypedef &Symbol) override;
+ void dump(const PDBSymbolTypeUDT &Symbol) override;
private:
- void dumpSymbolTypeAndName(const PDBSymbol &Type, StringRef Name,
- raw_ostream &OS);
- bool tryDumpFunctionPointer(const PDBSymbol &Type, StringRef Name,
- raw_ostream &OS);
+ void dumpSymbolTypeAndName(const PDBSymbol &Type, StringRef Name);
+ bool tryDumpFunctionPointer(const PDBSymbol &Type, StringRef Name);
LinePrinter &Printer;
};
diff --git a/llvm/tools/llvm-pdbdump/llvm-pdbdump.cpp b/llvm/tools/llvm-pdbdump/llvm-pdbdump.cpp
index 9ad79ad3b32..e1f0370b55a 100644
--- a/llvm/tools/llvm-pdbdump/llvm-pdbdump.cpp
+++ b/llvm/tools/llvm-pdbdump/llvm-pdbdump.cpp
@@ -150,7 +150,7 @@ static void dumpInput(StringRef Path) {
auto Compilands = GlobalScope->findAllChildren<PDBSymbolCompiland>();
CompilandDumper Dumper(Printer);
while (auto Compiland = Compilands->getNext())
- Dumper.start(*Compiland, outs(), 2, false);
+ Dumper.start(*Compiland, false);
Printer.Unindent();
}
@@ -159,7 +159,7 @@ static void dumpInput(StringRef Path) {
WithColor(Printer, PDB_ColorItem::SectionHeader).get() << "---TYPES---";
Printer.Indent();
TypeDumper Dumper(Printer, opts::ClassDefs);
- Dumper.start(*GlobalScope, outs(), 2);
+ Dumper.start(*GlobalScope);
Printer.Unindent();
}
@@ -170,7 +170,7 @@ static void dumpInput(StringRef Path) {
auto Compilands = GlobalScope->findAllChildren<PDBSymbolCompiland>();
CompilandDumper Dumper(Printer);
while (auto Compiland = Compilands->getNext())
- Dumper.start(*Compiland, outs(), 2, true);
+ Dumper.start(*Compiland, true);
Printer.Unindent();
}
@@ -183,20 +183,20 @@ static void dumpInput(StringRef Path) {
auto Functions = GlobalScope->findAllChildren<PDBSymbolFunc>();
while (auto Function = Functions->getNext()) {
Printer.NewLine();
- Dumper.start(*Function, FunctionDumper::PointerType::None, outs(), 2);
+ Dumper.start(*Function, FunctionDumper::PointerType::None);
}
}
{
auto Vars = GlobalScope->findAllChildren<PDBSymbolData>();
VariableDumper Dumper(Printer);
while (auto Var = Vars->getNext())
- Dumper.start(*Var, outs(), 2);
+ Dumper.start(*Var);
}
{
auto Thunks = GlobalScope->findAllChildren<PDBSymbolThunk>();
CompilandDumper Dumper(Printer);
while (auto Thunk = Thunks->getNext())
- Dumper.dump(*Thunk, outs(), 2);
+ Dumper.dump(*Thunk);
}
Printer.Unindent();
}
OpenPOWER on IntegriCloud