summaryrefslogtreecommitdiffstats
path: root/lld/lib/Passes/RoundTripYAMLPass.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lld/lib/Passes/RoundTripYAMLPass.cpp')
-rw-r--r--lld/lib/Passes/RoundTripYAMLPass.cpp11
1 files changed, 6 insertions, 5 deletions
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