diff options
Diffstat (limited to 'llvm/tools/llvm-objcopy')
-rw-r--r-- | llvm/tools/llvm-objcopy/llvm-objcopy.cpp | 7 |
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))); |