diff options
author | Rui Ueyama <ruiu@google.com> | 2016-05-04 21:05:11 +0000 |
---|---|---|
committer | Rui Ueyama <ruiu@google.com> | 2016-05-04 21:05:11 +0000 |
commit | 0cfed297deab4872d7038f4919be38aee7252e29 (patch) | |
tree | cbac280dd4ee17b4f31d08e023cb88f628034b02 | |
parent | 7e8c2858149cb738d6604227c293ac947325ff21 (diff) | |
download | bcm5719-llvm-0cfed297deab4872d7038f4919be38aee7252e29.tar.gz bcm5719-llvm-0cfed297deab4872d7038f4919be38aee7252e29.zip |
Handle errors on file opening as soft error.
Also improves the error message. Previously it would just print out
the cause (e.g. "permission denied"). Now it prints out something like
"--reproduce: failed to open foo.cpio: permission denied".
llvm-svn: 268551
-rw-r--r-- | lld/ELF/Driver.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/lld/ELF/Driver.cpp b/lld/ELF/Driver.cpp index a1c82954d1c..9a6be7dc988 100644 --- a/lld/ELF/Driver.cpp +++ b/lld/ELF/Driver.cpp @@ -254,9 +254,12 @@ void LinkerDriver::main(ArrayRef<const char *> ArgsArr) { if (!Config->Reproduce.empty()) { std::error_code EC; - ReproduceArchive = llvm::make_unique<raw_fd_ostream>( - Config->Reproduce + ".cpio", EC, fs::F_None); - check(EC); + std::string File = Config->Reproduce + ".cpio"; + ReproduceArchive = llvm::make_unique<raw_fd_ostream>(File, EC, fs::F_None); + if (EC) { + error(EC, "--reproduce: failed to open " + File); + return; + } createResponseFile(Args); } |