OBS-URL: https://build.opensuse.org/package/show/devel:tools:statica/klee?expand=0&rev=51
62 lines
2.2 KiB
Diff
62 lines
2.2 KiB
Diff
From: Jiri Slaby <jirislaby@gmail.com>
|
|
Date: Fri, 15 Jun 2018 08:28:22 +0200
|
|
Subject: llvm38: archive child iterator changes
|
|
Patch-mainline: no
|
|
|
|
After LLVM commit 25569fdcdab0, archive iterator returns
|
|
object::Archive::Child instead of child_iterator, adapt to that.
|
|
|
|
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
|
|
---
|
|
lib/Module/ModuleUtil.cpp | 20 ++++++++++++++++----
|
|
1 file changed, 16 insertions(+), 4 deletions(-)
|
|
|
|
diff --git a/lib/Module/ModuleUtil.cpp b/lib/Module/ModuleUtil.cpp
|
|
index 025b7374fcf9..e6d592b135b6 100644
|
|
--- a/lib/Module/ModuleUtil.cpp
|
|
+++ b/lib/Module/ModuleUtil.cpp
|
|
@@ -207,8 +207,19 @@ static bool linkBCA(object::Archive* archive, Module* composite, std::string& er
|
|
|
|
StringRef memberName;
|
|
#if LLVM_VERSION_CODE >= LLVM_VERSION(3, 5)
|
|
- ErrorOr<StringRef> memberNameErr = AI->getName();
|
|
- std::error_code ec = memberNameErr.getError();
|
|
+ std::error_code ec;
|
|
+#if LLVM_VERSION_CODE >= LLVM_VERSION(3, 8)
|
|
+ ErrorOr<object::Archive::Child> childErr = *AI;
|
|
+ ec = childErr.getError();
|
|
+ if (ec) {
|
|
+ errorMessage = ec.message();
|
|
+ return false;
|
|
+ }
|
|
+#else
|
|
+ object::Archive::child_iterator childErr = AI;
|
|
+#endif
|
|
+ ErrorOr<StringRef> memberNameErr = childErr->getName();
|
|
+ ec = memberNameErr.getError();
|
|
if (!ec) {
|
|
memberName = memberNameErr.get();
|
|
#else
|
|
@@ -226,7 +237,8 @@ static bool linkBCA(object::Archive* archive, Module* composite, std::string& er
|
|
}
|
|
|
|
#if LLVM_VERSION_CODE >= LLVM_VERSION(3, 5)
|
|
- ErrorOr<std::unique_ptr<llvm::object::Binary> > child = AI->getAsBinary();
|
|
+ ErrorOr<std::unique_ptr<llvm::object::Binary> > child =
|
|
+ childErr->getAsBinary();
|
|
ec = child.getError();
|
|
#else
|
|
OwningPtr<object::Binary> child;
|
|
@@ -235,7 +247,7 @@ static bool linkBCA(object::Archive* archive, Module* composite, std::string& er
|
|
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)
|
|
- ErrorOr<MemoryBufferRef> buff = AI->getMemoryBufferRef();
|
|
+ ErrorOr<MemoryBufferRef> buff = childErr->getMemoryBufferRef();
|
|
ec = buff.getError();
|
|
#elif LLVM_VERSION_CODE >= LLVM_VERSION(3, 5)
|
|
ErrorOr<std::unique_ptr<MemoryBuffer> > buffErr = AI->getMemoryBuffer();
|
|
--
|
|
2.17.1
|
|
|