summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-pdbdump/PrettyVariableDumper.cpp
diff options
context:
space:
mode:
authorZachary Turner <zturner@google.com>2017-04-24 17:47:24 +0000
committerZachary Turner <zturner@google.com>2017-04-24 17:47:24 +0000
commit1690164cac96cf3670f380a74b27443c71b6a32e (patch)
tree199cc2fd16d66ae9664d50afbfdf01eb536276a5 /llvm/tools/llvm-pdbdump/PrettyVariableDumper.cpp
parentcadadabb7664407be7553363e1a580f92d681548 (diff)
downloadbcm5719-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.cpp8
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 ";
OpenPOWER on IntegriCloud