diff options
| author | Rafael Espindola <rafael.espindola@gmail.com> | 2015-08-13 00:31:46 +0000 |
|---|---|---|
| committer | Rafael Espindola <rafael.espindola@gmail.com> | 2015-08-13 00:31:46 +0000 |
| commit | bdc8f2fb83706d8e38b8c879194ebba772e1f17c (patch) | |
| tree | a71e306fbb89c17915085a8a3fbe24087569fd4a | |
| parent | 169284a67b1632a161e4970d06f2636cccb9005c (diff) | |
| download | bcm5719-llvm-bdc8f2fb83706d8e38b8c879194ebba772e1f17c.tar.gz bcm5719-llvm-bdc8f2fb83706d8e38b8c879194ebba772e1f17c.zip | |
Update for llvm api change.
llvm-svn: 244849
| -rw-r--r-- | lld/COFF/Writer.cpp | 7 | ||||
| -rw-r--r-- | lld/ELF/Writer.cpp | 7 | ||||
| -rw-r--r-- | lld/lib/ReaderWriter/ELF/OutputELFWriter.cpp | 9 | ||||
| -rw-r--r-- | lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryWriter.cpp | 11 |
4 files changed, 19 insertions, 15 deletions
diff --git a/lld/COFF/Writer.cpp b/lld/COFF/Writer.cpp index abb72f10888..e10ac9d87b8 100644 --- a/lld/COFF/Writer.cpp +++ b/lld/COFF/Writer.cpp @@ -688,9 +688,10 @@ template <typename PEHeaderTy> void Writer::writeHeader() { } void Writer::openFile(StringRef Path) { - std::error_code EC = FileOutputBuffer::create(Path, FileSize, Buffer, - FileOutputBuffer::F_executable); - error(EC, Twine("failed to open ") + Path); + ErrorOr<std::unique_ptr<FileOutputBuffer>> BufferOrErr = + FileOutputBuffer::create(Path, FileSize, FileOutputBuffer::F_executable); + error(BufferOrErr, Twine("failed to open ") + Path); + Buffer = std::move(*BufferOrErr); } void Writer::fixSafeSEHSymbols() { diff --git a/lld/ELF/Writer.cpp b/lld/ELF/Writer.cpp index 6c38c80d834..2f435101b3b 100644 --- a/lld/ELF/Writer.cpp +++ b/lld/ELF/Writer.cpp @@ -255,9 +255,10 @@ template <class ELFT> void Writer<ELFT>::writeHeader() { } template <class ELFT> void Writer<ELFT>::openFile(StringRef Path) { - std::error_code EC = FileOutputBuffer::create(Path, FileSize, Buffer, - FileOutputBuffer::F_executable); - error(EC, Twine("failed to open ") + Path); + ErrorOr<std::unique_ptr<FileOutputBuffer>> BufferOrErr = + FileOutputBuffer::create(Path, FileSize, FileOutputBuffer::F_executable); + error(BufferOrErr, Twine("failed to open ") + Path); + Buffer = std::move(*BufferOrErr); } // Write section contents to a mmap'ed file. 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(); |

