diff options
Diffstat (limited to 'llvm/lib/Object/Binary.cpp')
-rw-r--r-- | llvm/lib/Object/Binary.cpp | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/llvm/lib/Object/Binary.cpp b/llvm/lib/Object/Binary.cpp index a2b167a..723b279 100644 --- a/llvm/lib/Object/Binary.cpp +++ b/llvm/lib/Object/Binary.cpp @@ -36,13 +36,13 @@ StringRef Binary::getFileName() const { return Data.getBufferIdentifier(); } MemoryBufferRef Binary::getMemoryBufferRef() const { return Data; } -ErrorOr<std::unique_ptr<Binary>> object::createBinary(MemoryBufferRef Buffer, +Expected<std::unique_ptr<Binary>> object::createBinary(MemoryBufferRef Buffer, LLVMContext *Context) { sys::fs::file_magic Type = sys::fs::identify_magic(Buffer.getBuffer()); switch (Type) { case sys::fs::file_magic::archive: - return Archive::create(Buffer); + return errorOrToExpected(Archive::create(Buffer)); case sys::fs::file_magic::elf: case sys::fs::file_magic::elf_relocatable: case sys::fs::file_magic::elf_executable: @@ -65,26 +65,26 @@ ErrorOr<std::unique_ptr<Binary>> object::createBinary(MemoryBufferRef Buffer, case sys::fs::file_magic::bitcode: return ObjectFile::createSymbolicFile(Buffer, Type, Context); case sys::fs::file_magic::macho_universal_binary: - return MachOUniversalBinary::create(Buffer); + return errorOrToExpected(MachOUniversalBinary::create(Buffer)); case sys::fs::file_magic::unknown: case sys::fs::file_magic::windows_resource: // Unrecognized object file format. - return object_error::invalid_file_type; + return errorCodeToError(object_error::invalid_file_type); } llvm_unreachable("Unexpected Binary File Type"); } -ErrorOr<OwningBinary<Binary>> object::createBinary(StringRef Path) { +Expected<OwningBinary<Binary>> object::createBinary(StringRef Path) { ErrorOr<std::unique_ptr<MemoryBuffer>> FileOrErr = MemoryBuffer::getFileOrSTDIN(Path); if (std::error_code EC = FileOrErr.getError()) - return EC; + return errorCodeToError(EC); std::unique_ptr<MemoryBuffer> &Buffer = FileOrErr.get(); - ErrorOr<std::unique_ptr<Binary>> BinOrErr = + Expected<std::unique_ptr<Binary>> BinOrErr = createBinary(Buffer->getMemBufferRef()); - if (std::error_code EC = BinOrErr.getError()) - return EC; + if (!BinOrErr) + return BinOrErr.takeError(); std::unique_ptr<Binary> &Bin = BinOrErr.get(); return OwningBinary<Binary>(std::move(Bin), std::move(Buffer)); |