summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-libs/tapi/files/tapi-1.30-llvm-new-error-api.patch')
-rw-r--r--sys-libs/tapi/files/tapi-1.30-llvm-new-error-api.patch65
1 files changed, 65 insertions, 0 deletions
diff --git a/sys-libs/tapi/files/tapi-1.30-llvm-new-error-api.patch b/sys-libs/tapi/files/tapi-1.30-llvm-new-error-api.patch
new file mode 100644
index 000000000000..814ca30879a0
--- /dev/null
+++ b/sys-libs/tapi/files/tapi-1.30-llvm-new-error-api.patch
@@ -0,0 +1,65 @@
+--- libtapi-1.30/lib/Core/MachODylibReader.cpp.orig 2017-02-11 21:36:40.000000000 +0100
++++ libtapi-1.30/lib/Core/MachODylibReader.cpp 2017-02-11 21:48:25.000000000 +0100
+@@ -37,7 +37,11 @@
+ }
+
+ auto binaryOrErr = createBinary(bufferRef);
++#if LLVM_NEW_ERROR_API
++ if (binaryOrErr.takeError())
++#else
+ if (binaryOrErr.getError())
++#endif
+ return FileType::Invalid;
+
+ Binary &bin = *binaryOrErr.get();
+@@ -49,7 +53,11 @@
+ for (auto OI = UB->begin_objects(), OE = UB->end_objects(); OI != OE; ++OI) {
+ auto objOrErr = OI->getAsObjectFile();
+ // Ignore archives.
++#if LLVM_NEW_ERROR_API
++ if (objOrErr.takeError())
++#else
+ if (objOrErr.getError())
++#endif
+ continue;
+
+ auto &obj = *objOrErr.get();
+@@ -228,7 +236,11 @@
+ ? SymbolFlags::WeakReferenced
+ : SymbolFlags::None;
+ auto symbolName = symbol.getName();
++#if LLVM_NEW_ERROR_API
++ if (symbolName.takeError())
++#else
+ if (symbolName.getError())
++#endif
+ continue;
+
+ StringRef name;
+@@ -244,8 +256,14 @@
+ file->setPath(memBuffer.getBufferIdentifier());
+
+ auto binaryOrErr = createBinary(memBuffer);
++// no way to figure this out from the headers :-(
++#if LLVM_NEW_ERROR_API
++ if (auto ec = binaryOrErr.takeError()) {
++ file->setErrorCode(llvm::errorToErrorCode(std::move(ec)));
++#else
+ if (auto ec = binaryOrErr.getError()) {
+ file->setErrorCode(ec);
++#endif
+ return std::move(file);
+ }
+
+@@ -263,7 +281,11 @@
+ auto objOrErr = OI->getAsObjectFile();
+
+ // Ignore archives.
++#if LLVM_NEW_ERROR_API
++ if (objOrErr.takeError())
++#else
+ if (objOrErr.getError())
++#endif
+ continue;
+
+ auto &object = *objOrErr.get();