summaryrefslogtreecommitdiffstats
path: root/llvm/tools
diff options
context:
space:
mode:
authorZachary Turner <zturner@google.com>2016-06-16 18:22:27 +0000
committerZachary Turner <zturner@google.com>2016-06-16 18:22:27 +0000
commit01ee3dae043e305adaf2f8b46dffdbfe901ce24e (patch)
treec89a93cda93a6c76eb0b6e07cef4d32d450fb9ff /llvm/tools
parent5a07687a8e0c670352063b5eca7a4aa6baa546e5 (diff)
downloadbcm5719-llvm-01ee3dae043e305adaf2f8b46dffdbfe901ce24e.tar.gz
bcm5719-llvm-01ee3dae043e305adaf2f8b46dffdbfe901ce24e.zip
Resubmit "[pdb] Change type visitor pattern to be dynamic."
There was a regression introduced during type stream merging when visiting a field list record. This has been fixed in this patch. llvm-svn: 272929
Diffstat (limited to 'llvm/tools')
-rw-r--r--llvm/tools/llvm-pdbdump/LLVMOutputStyle.cpp12
-rw-r--r--llvm/tools/llvm-readobj/COFFDumper.cpp8
2 files changed, 12 insertions, 8 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);
diff --git a/llvm/tools/llvm-readobj/COFFDumper.cpp b/llvm/tools/llvm-readobj/COFFDumper.cpp
index dc7fe0e33ec..0202e0316ee 100644
--- a/llvm/tools/llvm-readobj/COFFDumper.cpp
+++ b/llvm/tools/llvm-readobj/COFFDumper.cpp
@@ -1108,9 +1108,9 @@ void COFFDumper::printCodeViewTypeSection(StringRef SectionName,
if (Magic != COFF::DEBUG_SECTION_MAGIC)
return error(object_error::parse_failed);
- if (!CVTD.dump({Data.bytes_begin(), Data.bytes_end()})) {
+ if (auto EC = CVTD.dump({Data.bytes_begin(), Data.bytes_end()})) {
W.flush();
- error(object_error::parse_failed);
+ error(llvm::errorToErrorCode(std::move(EC)));
}
}
@@ -1555,8 +1555,8 @@ void llvm::dumpCodeViewMergedTypes(
Buf.append(Record.begin(), Record.end());
});
CVTypeDumper CVTD(&Writer, opts::CodeViewSubsectionBytes);
- if (!CVTD.dump({Buf.str().bytes_begin(), Buf.str().bytes_end()})) {
+ if (auto EC = CVTD.dump({Buf.str().bytes_begin(), Buf.str().bytes_end()})) {
Writer.flush();
- error(object_error::parse_failed);
+ error(llvm::errorToErrorCode(std::move(EC)));
}
}
OpenPOWER on IntegriCloud