diff --git a/lld/ELF/Driver.cpp b/lld/ELF/Driver.cpp index a1c82954d1c8..9a6be7dc9884 100644 --- a/lld/ELF/Driver.cpp +++ b/lld/ELF/Driver.cpp @@ -254,9 +254,12 @@ void LinkerDriver::main(ArrayRef ArgsArr) { if (!Config->Reproduce.empty()) { std::error_code EC; - ReproduceArchive = llvm::make_unique( - Config->Reproduce + ".cpio", EC, fs::F_None); - check(EC); + std::string File = Config->Reproduce + ".cpio"; + ReproduceArchive = llvm::make_unique(File, EC, fs::F_None); + if (EC) { + error(EC, "--reproduce: failed to open " + File); + return; + } createResponseFile(Args); }