summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lld/lib/Passes/RoundTripNativePass.cpp7
-rw-r--r--lld/lib/Passes/RoundTripYAMLPass.cpp11
2 files changed, 11 insertions, 7 deletions
diff --git a/lld/lib/Passes/RoundTripNativePass.cpp b/lld/lib/Passes/RoundTripNativePass.cpp
index 78ad6ba2c5e..d1e4e661baf 100644
--- a/lld/lib/Passes/RoundTripNativePass.cpp
+++ b/lld/lib/Passes/RoundTripNativePass.cpp
@@ -41,8 +41,11 @@ void RoundTripNativePass::perform(std::unique_ptr<MutableFile> &mergedFile) {
std::unique_ptr<MemoryBuffer> mb(buff.take());
error_code ec = _context.registry().parseFile(mb, _nativeFile);
- assert(!ec && "native reader not registered");
- File *objFile = _nativeFile[0].get();
+ if (ec) {
+ // Note: we need a way for Passes to report errors.
+ llvm_unreachable("native reader not registered or read error");
+ }
+ File *objFile = _nativeFile[0].get();
mergedFile.reset(new FileToMutable(_context, *objFile));
llvm::sys::fs::remove(tmpNativeFile.str());
diff --git a/lld/lib/Passes/RoundTripYAMLPass.cpp b/lld/lib/Passes/RoundTripYAMLPass.cpp
index f2c859a5743..739ad7e5e10 100644
--- a/lld/lib/Passes/RoundTripYAMLPass.cpp
+++ b/lld/lib/Passes/RoundTripYAMLPass.cpp
@@ -46,11 +46,12 @@ void RoundTripYAMLPass::perform(std::unique_ptr<MutableFile> &mergedFile) {
if (buff->getBufferSize() < MAX_YAML_FILE_SIZE) {
std::unique_ptr<MemoryBuffer> mb(buff.take());
error_code ec = _context.registry().parseFile(mb, _yamlFile);
- assert(!ec && "yaml reader not registered");
- File *objFile = _yamlFile[0].get();
- const File *obj = dyn_cast<const File>(objFile);
- assert(obj && "yaml generated file is not an relocatable file");
- mergedFile.reset(new FileToMutable(_context, *obj));
+ if (ec) {
+ // Note: we need a way for Passes to report errors.
+ llvm_unreachable("yaml reader not registered or read error");
+ }
+ File *objFile = _yamlFile[0].get();
+ mergedFile.reset(new FileToMutable(_context, *objFile));
}
llvm::sys::fs::remove(tmpYAMLFile.str());
OpenPOWER on IntegriCloud