klee/0006-llvm40-errorOr-and-similar.patch

54 lines
2.1 KiB
Diff
Raw Normal View History

From: Jiri Slaby <jirislaby@gmail.com>
Date: Wed, 7 Jun 2017 14:58:29 +0200
Subject: llvm40: errorOr and similar
Patch-mainline: no
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
---
lib/Module/ModuleUtil.cpp | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/lib/Module/ModuleUtil.cpp b/lib/Module/ModuleUtil.cpp
index c2792454d904..7f4bdb49380a 100644
--- a/lib/Module/ModuleUtil.cpp
+++ b/lib/Module/ModuleUtil.cpp
@@ -432,7 +432,7 @@ bool klee::loadFile(const std::string &fileName, LLVMContext &context,
if (auto archive = dyn_cast<object::Archive>(arch)) {
// Load all bitcode files into memory
#if LLVM_VERSION_CODE >= LLVM_VERSION(3, 9)
- Error Err;
+ Error Err = Error::success();
for (object::Archive::child_iterator AI = archive->child_begin(Err),
AE = archive->child_end();
AI != AE; ++AI)
@@ -460,8 +460,14 @@ bool klee::loadFile(const std::string &fileName, LLVMContext &context,
#else
object::Archive::child_iterator childOrErr = AI;
#endif
+#if LLVM_VERSION_CODE >= LLVM_VERSION(4, 0)
+ Expected<StringRef> memberNameErr = childOrErr->getName();
+ ec = memberNameErr ? std::error_code() :
+ errorToErrorCode(memberNameErr.takeError());
+#else
ErrorOr<StringRef> memberNameErr = childOrErr->getName();
ec = memberNameErr.getError();
+#endif
if (!ec) {
memberName = memberNameErr.get();
#else
@@ -492,7 +498,10 @@ bool klee::loadFile(const std::string &fileName, LLVMContext &context,
#endif
if (ec) {
// If we can't open as a binary object file its hopefully a bitcode file
-#if LLVM_VERSION_CODE >= LLVM_VERSION(3, 6)
+#if LLVM_VERSION_CODE >= LLVM_VERSION(4, 0)
+ Expected<MemoryBufferRef> buff = childOrErr->getMemoryBufferRef();
+ ec = buff ? std::error_code() : errorToErrorCode(buff.takeError());
+#elif LLVM_VERSION_CODE >= LLVM_VERSION(3, 6)
ErrorOr<MemoryBufferRef> buff = childOrErr->getMemoryBufferRef();
ec = buff.getError();
#elif LLVM_VERSION_CODE >= LLVM_VERSION(3, 5)
--
2.18.0