diff options
Diffstat (limited to 'llvm/tools/llvm-pdbdump/PrettyClassLayoutTextDumper.cpp')
-rw-r--r-- | llvm/tools/llvm-pdbdump/PrettyClassLayoutTextDumper.cpp | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/llvm/tools/llvm-pdbdump/PrettyClassLayoutTextDumper.cpp b/llvm/tools/llvm-pdbdump/PrettyClassLayoutTextDumper.cpp index 02f31108b0d..ccfd38c1e3c 100644 --- a/llvm/tools/llvm-pdbdump/PrettyClassLayoutTextDumper.cpp +++ b/llvm/tools/llvm-pdbdump/PrettyClassLayoutTextDumper.cpp @@ -59,14 +59,17 @@ bool PrettyClassLayoutTextDumper::start(const ClassLayout &Layout) { NextUnusedByte = UseMap.find_next_unset(Off); } } - LayoutItem->getSymbol().dump(*this); + if (auto Sym = LayoutItem->getSymbol()) + Sym->dump(*this); } - if (NextUnusedByte >= 0 && Layout.getClassSize() > 1) { - uint32_t Amount = Layout.getClassSize() - NextUnusedByte; - Printer.NewLine(); - WithColor(Printer, PDB_ColorItem::Padding).get() << "<padding> (" << Amount - << " bytes)"; + if (NextUnusedByte >= 0 && Layout.getSize() > 1) { + uint32_t Amount = Layout.getSize() - NextUnusedByte; + if (Amount > 0) { + Printer.NewLine(); + WithColor(Printer, PDB_ColorItem::Padding).get() << "<padding> (" + << Amount << " bytes)"; + } DumpedAnything = true; } @@ -116,4 +119,6 @@ void PrettyClassLayoutTextDumper::dump(const PDBSymbolTypeTypedef &Symbol) { Dumper.start(Symbol); } +void PrettyClassLayoutTextDumper::dump(const PDBSymbolTypeBuiltin &Symbol) {} + void PrettyClassLayoutTextDumper::dump(const PDBSymbolTypeUDT &Symbol) {} |