From ff044b1f695ae99fe9e2d61e8694d1170635a8e0 Mon Sep 17 00:00:00 2001 From: Lang Hames Date: Fri, 25 Mar 2016 23:11:52 +0000 Subject: [PATCH] [Object] Make createMachOObjectFile return Expected<...> rather than ErrorOr<...>. llvm-svn: 264473 --- llvm/include/llvm/Object/ObjectFile.h | 2 +- llvm/lib/Object/MachOObjectFile.cpp | 17 +++++++---------- llvm/lib/Object/MachOUniversal.cpp | 2 +- llvm/lib/Object/ObjectFile.cpp | 2 +- 4 files changed, 10 insertions(+), 13 deletions(-) diff --git a/llvm/include/llvm/Object/ObjectFile.h b/llvm/include/llvm/Object/ObjectFile.h index 6aeeb87..5c875a2 100644 --- a/llvm/include/llvm/Object/ObjectFile.h +++ b/llvm/include/llvm/Object/ObjectFile.h @@ -296,7 +296,7 @@ public: static ErrorOr> createELFObjectFile(MemoryBufferRef Object); - static ErrorOr> + static Expected> createMachOObjectFile(MemoryBufferRef Object); }; diff --git a/llvm/lib/Object/MachOObjectFile.cpp b/llvm/lib/Object/MachOObjectFile.cpp index 50f0dd3..864d76f 100644 --- a/llvm/lib/Object/MachOObjectFile.cpp +++ b/llvm/lib/Object/MachOObjectFile.cpp @@ -2421,21 +2421,18 @@ bool MachOObjectFile::isRelocatableObject() const { return getHeader().filetype == MachO::MH_OBJECT; } -ErrorOr> +Expected> ObjectFile::createMachOObjectFile(MemoryBufferRef Buffer) { StringRef Magic = Buffer.getBuffer().slice(0, 4); if (Magic == "\xFE\xED\xFA\xCE") - return expectedToErrorOr( - MachOObjectFile::create(Buffer, false, false)); + return MachOObjectFile::create(Buffer, false, false); else if (Magic == "\xCE\xFA\xED\xFE") - return expectedToErrorOr( - MachOObjectFile::create(Buffer, true, false)); + return MachOObjectFile::create(Buffer, true, false); else if (Magic == "\xFE\xED\xFA\xCF") - return expectedToErrorOr( - MachOObjectFile::create(Buffer, false, true)); + return MachOObjectFile::create(Buffer, false, true); else if (Magic == "\xCF\xFA\xED\xFE") - return expectedToErrorOr( - MachOObjectFile::create(Buffer, true, true)); + return MachOObjectFile::create(Buffer, true, true); //else - return object_error::parse_failed; + return malformedError(Buffer.getBufferIdentifier(), + "Unrecognized MachO magic number"); } diff --git a/llvm/lib/Object/MachOUniversal.cpp b/llvm/lib/Object/MachOUniversal.cpp index a1c83b9..df25f74 100644 --- a/llvm/lib/Object/MachOUniversal.cpp +++ b/llvm/lib/Object/MachOUniversal.cpp @@ -76,7 +76,7 @@ MachOUniversalBinary::ObjectForArch::getAsObjectFile() const { StringRef ObjectData = ParentData.substr(Header.offset, Header.size); StringRef ObjectName = Parent->getFileName(); MemoryBufferRef ObjBuffer(ObjectData, ObjectName); - return ObjectFile::createMachOObjectFile(ObjBuffer); + return expectedToErrorOr(ObjectFile::createMachOObjectFile(ObjBuffer)); } ErrorOr> diff --git a/llvm/lib/Object/ObjectFile.cpp b/llvm/lib/Object/ObjectFile.cpp index 860cefa..ceb933f 100644 --- a/llvm/lib/Object/ObjectFile.cpp +++ b/llvm/lib/Object/ObjectFile.cpp @@ -96,7 +96,7 @@ ObjectFile::createObjectFile(MemoryBufferRef Object, sys::fs::file_magic Type) { case sys::fs::file_magic::macho_dynamically_linked_shared_lib_stub: case sys::fs::file_magic::macho_dsym_companion: case sys::fs::file_magic::macho_kext_bundle: - return createMachOObjectFile(Object); + return expectedToErrorOr(createMachOObjectFile(Object)); case sys::fs::file_magic::coff_object: case sys::fs::file_magic::coff_import_library: case sys::fs::file_magic::pecoff_executable: -- 2.7.4