summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-objcopy/llvm-objcopy.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2017-11-08 21:15:21 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2017-11-08 21:15:21 +0000
commit85593c239873f5743cc748a85446d6d25de9ed1c (patch)
tree7ae94d504a52208c419b94b676dc940184ba817e /llvm/tools/llvm-objcopy/llvm-objcopy.cpp
parentedf782f0d046ec79e84041ab42415c17cefc0335 (diff)
downloadbcm5719-llvm-85593c239873f5743cc748a85446d6d25de9ed1c.tar.gz
bcm5719-llvm-85593c239873f5743cc748a85446d6d25de9ed1c.zip
Make sure an error is always handled.
llvm-svn: 317724
Diffstat (limited to 'llvm/tools/llvm-objcopy/llvm-objcopy.cpp')
-rw-r--r--llvm/tools/llvm-objcopy/llvm-objcopy.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/llvm/tools/llvm-objcopy/llvm-objcopy.cpp b/llvm/tools/llvm-objcopy/llvm-objcopy.cpp
index c923f902db8..54186f63c07 100644
--- a/llvm/tools/llvm-objcopy/llvm-objcopy.cpp
+++ b/llvm/tools/llvm-objcopy/llvm-objcopy.cpp
@@ -116,10 +116,11 @@ void WriteObjectFile(const Object<ELFT> &Obj, StringRef File) {
Expected<std::unique_ptr<FileOutputBuffer>> BufferOrErr =
FileOutputBuffer::create(File, Obj.totalSize(),
FileOutputBuffer::F_executable);
- if (BufferOrErr.takeError())
+ handleAllErrors(BufferOrErr.takeError(), [](const ErrorInfoBase &) {
error("failed to open " + OutputFilename);
- else
- Buffer = std::move(*BufferOrErr);
+ });
+ Buffer = std::move(*BufferOrErr);
+
Obj.write(*Buffer);
if (auto E = Buffer->commit())
reportError(File, errorToErrorCode(std::move(E)));
OpenPOWER on IntegriCloud