summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRui Ueyama <ruiu@google.com>2016-05-04 21:05:11 +0000
committerRui Ueyama <ruiu@google.com>2016-05-04 21:05:11 +0000
commit0cfed297deab4872d7038f4919be38aee7252e29 (patch)
treecbac280dd4ee17b4f31d08e023cb88f628034b02
parent7e8c2858149cb738d6604227c293ac947325ff21 (diff)
downloadbcm5719-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.cpp9
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);
}
OpenPOWER on IntegriCloud