diff options
Diffstat (limited to 'lld/lib/Passes/RoundTripYAMLPass.cpp')
| -rw-r--r-- | lld/lib/Passes/RoundTripYAMLPass.cpp | 11 |
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()); |

