From 9968c00bdd7626249b6bd3f4df3f00da7406b0c1 Mon Sep 17 00:00:00 2001 From: Jiri Slaby Date: Fri, 15 Jun 2018 08:28:22 +0200 Subject: llvm38: archive child iterator changes After LLVM commit 25569fdcdab0, archive iterator returns object::Archive::Child instead of child_iterator, adapt to that. Signed-off-by: Jiri Slaby --- lib/Module/ModuleUtil.cpp | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'lib/Module') diff --git a/lib/Module/ModuleUtil.cpp b/lib/Module/ModuleUtil.cpp index 37c957ba..4912ca94 100644 --- a/lib/Module/ModuleUtil.cpp +++ b/lib/Module/ModuleUtil.cpp @@ -424,8 +424,19 @@ bool klee::loadFile(const std::string &fileName, LLVMContext &context, StringRef memberName; #if LLVM_VERSION_CODE >= LLVM_VERSION(3, 5) - ErrorOr memberNameErr = AI->getName(); - std::error_code ec = memberNameErr.getError(); + std::error_code ec; +#if LLVM_VERSION_CODE >= LLVM_VERSION(3, 8) + ErrorOr childOrErr = *AI; + ec = childOrErr.getError(); + if (ec) { + errorMsg = ec.message(); + return false; + } +#else + object::Archive::child_iterator childOrErr = AI; +#endif + ErrorOr memberNameErr = childOrErr->getName(); + ec = memberNameErr.getError(); if (!ec) { memberName = memberNameErr.get(); #else @@ -443,7 +454,7 @@ bool klee::loadFile(const std::string &fileName, LLVMContext &context, #if LLVM_VERSION_CODE >= LLVM_VERSION(3, 5) ErrorOr> child = - AI->getAsBinary(); + childOrErr->getAsBinary(); ec = child.getError(); #else OwningPtr child; @@ -452,7 +463,7 @@ bool klee::loadFile(const std::string &fileName, LLVMContext &context, 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 buff = AI->getMemoryBufferRef(); + ErrorOr buff = childOrErr->getMemoryBufferRef(); ec = buff.getError(); #elif LLVM_VERSION_CODE >= LLVM_VERSION(3, 5) ErrorOr> buffErr = -- cgit 1.4.1