54 lines
2.1 KiB
Diff
54 lines
2.1 KiB
Diff
|
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
|
||
|
|