summaryrefslogtreecommitdiffstats
path: root/lld/lib/ReaderWriter
diff options
context:
space:
mode:
Diffstat (limited to 'lld/lib/ReaderWriter')
-rw-r--r--lld/lib/ReaderWriter/ELF/OutputELFWriter.cpp9
-rw-r--r--lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryWriter.cpp11
2 files changed, 11 insertions, 9 deletions
diff --git a/lld/lib/ReaderWriter/ELF/OutputELFWriter.cpp b/lld/lib/ReaderWriter/ELF/OutputELFWriter.cpp
index 78729393393..5d1addd304b 100644
--- a/lld/lib/ReaderWriter/ELF/OutputELFWriter.cpp
+++ b/lld/lib/ReaderWriter/ELF/OutputELFWriter.cpp
@@ -422,11 +422,14 @@ template <class ELFT> uint64_t OutputELFWriter<ELFT>::outputFileSize() const {
template <class ELFT>
std::error_code OutputELFWriter<ELFT>::writeOutput(const File &file,
StringRef path) {
- std::unique_ptr<FileOutputBuffer> buffer;
+
ScopedTask createOutputTask(getDefaultDomain(), "ELF Writer Create Output");
- if (std::error_code ec = FileOutputBuffer::create(
- path, outputFileSize(), buffer, FileOutputBuffer::F_executable))
+ ErrorOr<std::unique_ptr<FileOutputBuffer>> bufferOrErr =
+ FileOutputBuffer::create(path, outputFileSize(),
+ FileOutputBuffer::F_executable);
+ if (std::error_code ec = bufferOrErr.getError())
return ec;
+ std::unique_ptr<FileOutputBuffer> &buffer = *bufferOrErr;
createOutputTask.end();
ScopedTask writeTask(getDefaultDomain(), "ELF Writer write to memory");
diff --git a/lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryWriter.cpp b/lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryWriter.cpp
index 550051871b7..908945d7f8a 100644
--- a/lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryWriter.cpp
+++ b/lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryWriter.cpp
@@ -1309,19 +1309,18 @@ std::error_code MachOFileLayout::writeBinary(StringRef path) {
if (_ec)
return _ec;
// Create FileOutputBuffer with calculated size.
- std::unique_ptr<llvm::FileOutputBuffer> fob;
unsigned flags = 0;
if (_file.fileType != llvm::MachO::MH_OBJECT)
flags = llvm::FileOutputBuffer::F_executable;
- std::error_code ec;
- ec = llvm::FileOutputBuffer::create(path, size(), fob, flags);
- if (ec)
+ ErrorOr<std::unique_ptr<llvm::FileOutputBuffer>> fobOrErr =
+ llvm::FileOutputBuffer::create(path, size(), flags);
+ if (std::error_code ec = fobOrErr.getError())
return ec;
-
+ std::unique_ptr<llvm::FileOutputBuffer> &fob = *fobOrErr;
// Write content.
_buffer = fob->getBufferStart();
writeMachHeader();
- ec = writeLoadCommands();
+ std::error_code ec = writeLoadCommands();
if (ec)
return ec;
writeSectionContent();
OpenPOWER on IntegriCloud