summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorLang Hames <lhames@gmail.com>2016-03-25 23:11:52 +0000
committerLang Hames <lhames@gmail.com>2016-03-25 23:11:52 +0000
commitff044b1f695ae99fe9e2d61e8694d1170635a8e0 (patch)
treecc8f8f3e7fb55d26881d5b24cfc2c763fc4dc641 /llvm/lib
parentb5681138e41ea0c2712c6bf1b770f66391f45216 (diff)
downloadbcm5719-llvm-ff044b1f695ae99fe9e2d61e8694d1170635a8e0.tar.gz
bcm5719-llvm-ff044b1f695ae99fe9e2d61e8694d1170635a8e0.zip
[Object] Make createMachOObjectFile return Expected<...> rather than
ErrorOr<...>. llvm-svn: 264473
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Object/MachOObjectFile.cpp17
-rw-r--r--llvm/lib/Object/MachOUniversal.cpp2
-rw-r--r--llvm/lib/Object/ObjectFile.cpp2
3 files changed, 9 insertions, 12 deletions
diff --git a/llvm/lib/Object/MachOObjectFile.cpp b/llvm/lib/Object/MachOObjectFile.cpp
index 50f0dd3dc4e..864d76f7112 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<std::unique_ptr<MachOObjectFile>>
+Expected<std::unique_ptr<MachOObjectFile>>
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 a1c83b9b7f8..df25f7416b3 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<std::unique_ptr<Archive>>
diff --git a/llvm/lib/Object/ObjectFile.cpp b/llvm/lib/Object/ObjectFile.cpp
index 860cefa113c..ceb933f4341 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:
OpenPOWER on IntegriCloud