summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-pdbdump/LLVMOutputStyle.cpp
diff options
context:
space:
mode:
authorRui Ueyama <ruiu@google.com>2016-06-03 20:48:51 +0000
committerRui Ueyama <ruiu@google.com>2016-06-03 20:48:51 +0000
commitfd97bf1f766550b1fefebbdf8aa29c2e8649fd3d (patch)
treefd4159f3f9245f2f8b201975021e71d982184bb1 /llvm/tools/llvm-pdbdump/LLVMOutputStyle.cpp
parentbc929e47659dcf318641892f44f424e07e1bc051 (diff)
downloadbcm5719-llvm-fd97bf1f766550b1fefebbdf8aa29c2e8649fd3d.tar.gz
bcm5719-llvm-fd97bf1f766550b1fefebbdf8aa29c2e8649fd3d.zip
pdbdump: print out TPI hashes.
Differential Revision: http://reviews.llvm.org/D20945 llvm-svn: 271736
Diffstat (limited to 'llvm/tools/llvm-pdbdump/LLVMOutputStyle.cpp')
-rw-r--r--llvm/tools/llvm-pdbdump/LLVMOutputStyle.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/llvm/tools/llvm-pdbdump/LLVMOutputStyle.cpp b/llvm/tools/llvm-pdbdump/LLVMOutputStyle.cpp
index 75e8815de95..2c3dabf613b 100644
--- a/llvm/tools/llvm-pdbdump/LLVMOutputStyle.cpp
+++ b/llvm/tools/llvm-pdbdump/LLVMOutputStyle.cpp
@@ -264,6 +264,23 @@ Error LLVMOutputStyle::dumpNamedStream() {
return Error::success();
}
+static void printTypeIndexOffset(raw_ostream &OS,
+ const TypeIndexOffset &TIOff) {
+ OS << "{" << TIOff.Type.getIndex() << ", " << TIOff.Offset << "}";
+}
+
+static void dumpTpiHash(ScopedPrinter &P, TpiStream &Tpi) {
+ if (!opts::DumpTpiHash)
+ return;
+ DictScope DD(P, "Hash");
+ codeview::FixedStreamArray<support::ulittle32_t> S = Tpi.getHashValues();
+ P.printList("Values", Tpi.getHashValues());
+ P.printList("Type Index Offsets", Tpi.getTypeIndexOffsets(),
+ printTypeIndexOffset);
+ P.printList("Hash Adjustments", Tpi.getHashAdjustments(),
+ printTypeIndexOffset);
+}
+
Error LLVMOutputStyle::dumpTpiStream(uint32_t StreamIdx) {
assert(StreamIdx == StreamTPI || StreamIdx == StreamIPI);
@@ -309,6 +326,7 @@ Error LLVMOutputStyle::dumpTpiStream(uint32_t StreamIdx) {
if (DumpRecordBytes)
P.printBinaryBlock("Bytes", Type.Data);
}
+ dumpTpiHash(P, Tpi);
if (HadError)
return make_error<RawError>(raw_error_code::corrupt_file,
"TPI stream contained corrupt record");
@@ -325,6 +343,7 @@ Error LLVMOutputStyle::dumpTpiStream(uint32_t StreamIdx) {
TD.dump(Type);
TD.setPrinter(OldP);
+ dumpTpiHash(P, Tpi);
if (HadError)
return make_error<RawError>(raw_error_code::corrupt_file,
"TPI stream contained corrupt record");
OpenPOWER on IntegriCloud