summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-pdbdump/LLVMOutputStyle.cpp
diff options
context:
space:
mode:
authorZachary Turner <zturner@google.com>2016-06-16 18:00:28 +0000
committerZachary Turner <zturner@google.com>2016-06-16 18:00:28 +0000
commit1f6372c429ce6b85a572c213d53f0ed8d293ff38 (patch)
treea33b3e57a928e737d700244cb33760c425ccf2a6 /llvm/tools/llvm-pdbdump/LLVMOutputStyle.cpp
parent41315f787374e8542faa18d423784bc6c3545790 (diff)
downloadbcm5719-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.cpp12
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);
OpenPOWER on IntegriCloud