diff options
author | Zachary Turner <zturner@google.com> | 2017-04-24 17:47:24 +0000 |
---|---|---|
committer | Zachary Turner <zturner@google.com> | 2017-04-24 17:47:24 +0000 |
commit | 1690164cac96cf3670f380a74b27443c71b6a32e (patch) | |
tree | 199cc2fd16d66ae9664d50afbfdf01eb536276a5 /llvm/tools/llvm-pdbdump/PrettyVariableDumper.cpp | |
parent | cadadabb7664407be7553363e1a580f92d681548 (diff) | |
download | bcm5719-llvm-1690164cac96cf3670f380a74b27443c71b6a32e.tar.gz bcm5719-llvm-1690164cac96cf3670f380a74b27443c71b6a32e.zip |
[llvm-pdbdump] Re-write the record layout code to be more resilient.
This reworks the way virtual bases are handled, and also the way
padding is detected across multiple levels of aggregates, producing
a much more accurate result.
llvm-svn: 301203
Diffstat (limited to 'llvm/tools/llvm-pdbdump/PrettyVariableDumper.cpp')
-rw-r--r-- | llvm/tools/llvm-pdbdump/PrettyVariableDumper.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/llvm/tools/llvm-pdbdump/PrettyVariableDumper.cpp b/llvm/tools/llvm-pdbdump/PrettyVariableDumper.cpp index 76a0d23bf87..70925f4b03d 100644 --- a/llvm/tools/llvm-pdbdump/PrettyVariableDumper.cpp +++ b/llvm/tools/llvm-pdbdump/PrettyVariableDumper.cpp @@ -91,6 +91,14 @@ void VariableDumper::start(const PDBSymbolData &Var, uint32_t Offset) { } } +void VariableDumper::startVbptr(uint32_t Offset, uint32_t Size) { + Printer.NewLine(); + Printer << "vbptr "; + + WithColor(Printer, PDB_ColorItem::Offset).get() + << "+" << format_hex(Offset, 4) << " [sizeof=" << Size << "] "; +} + void VariableDumper::start(const PDBSymbolTypeVTable &Var, uint32_t Offset) { Printer.NewLine(); Printer << "vfptr "; |