diff options
author | Zachary Turner <zturner@google.com> | 2016-06-16 18:00:28 +0000 |
---|---|---|
committer | Zachary Turner <zturner@google.com> | 2016-06-16 18:00:28 +0000 |
commit | 1f6372c429ce6b85a572c213d53f0ed8d293ff38 (patch) | |
tree | a33b3e57a928e737d700244cb33760c425ccf2a6 /llvm/tools/llvm-pdbdump/LLVMOutputStyle.cpp | |
parent | 41315f787374e8542faa18d423784bc6c3545790 (diff) | |
download | bcm5719-llvm-1f6372c429ce6b85a572c213d53f0ed8d293ff38.tar.gz bcm5719-llvm-1f6372c429ce6b85a572c213d53f0ed8d293ff38.zip |
[pdb] Change type visitor pattern to be dynamic.
This allows better catching of compiler errors since we can use
the override keyword to verify that methods are actually
overridden.
Also in this patch I've changed from storing a boolean Error
code everywhere to returning an llvm::Error, to propagate richer
error information up the call stack.
Reviewed By: ruiu, rnk
Differential Revision: http://reviews.llvm.org/D21410
llvm-svn: 272926
Diffstat (limited to 'llvm/tools/llvm-pdbdump/LLVMOutputStyle.cpp')
-rw-r--r-- | llvm/tools/llvm-pdbdump/LLVMOutputStyle.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/llvm/tools/llvm-pdbdump/LLVMOutputStyle.cpp b/llvm/tools/llvm-pdbdump/LLVMOutputStyle.cpp index 4df324f3444..2ae63e04882 100644 --- a/llvm/tools/llvm-pdbdump/LLVMOutputStyle.cpp +++ b/llvm/tools/llvm-pdbdump/LLVMOutputStyle.cpp @@ -328,8 +328,10 @@ Error LLVMOutputStyle::dumpTpiStream(uint32_t StreamIdx) { for (auto &Type : Tpi->types(&HadError)) { DictScope DD(P, ""); - if (DumpRecords) - TD.dump(Type); + if (DumpRecords) { + if (auto EC = TD.dump(Type)) + return EC; + } if (DumpRecordBytes) P.printBinaryBlock("Bytes", Type.Data); @@ -347,8 +349,10 @@ Error LLVMOutputStyle::dumpTpiStream(uint32_t StreamIdx) { TD.setPrinter(nullptr); bool HadError = false; - for (auto &Type : Tpi->types(&HadError)) - TD.dump(Type); + for (auto &Type : Tpi->types(&HadError)) { + if (auto EC = TD.dump(Type)) + return EC; + } TD.setPrinter(OldP); dumpTpiHash(P, *Tpi); |