about summary refs log tree commit diff homepage
path: root/lib/Module/LowerSwitch.cpp
diff options
context:
space:
mode:
authorJiri Slaby <jirislaby@gmail.com>2017-02-23 17:41:33 +0100
committerJiri Slaby <jirislaby@gmail.com>2017-02-28 18:28:06 +0100
commitb7a6aec4eeb4cbbc71d4747d2aa6d25dda41d5d1 (patch)
treee49d673744e699506506cbe0a3dc29c215170877 /lib/Module/LowerSwitch.cpp
parente21bf6f653b9c602fe21b74ff7c389aa2430b386 (diff)
downloadklee-b7a6aec4eeb4cbbc71d4747d2aa6d25dda41d5d1.tar.gz
convert iterators using static_cast
Newer versions of LLVM do not allow to implicitly cast iterators to
pointers where they point. So convert all such uses to explicit
static_cast, the same as LLVM code does.

Otherwise we see errors like:
lib/Core/Executor.cpp:548:15: error: no viable conversion from 'Module::iterator' (aka 'ilist_iterator<llvm::Function>') to 'llvm::Function *'
    Function *f = i;
              ^   ~

Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Diffstat (limited to 'lib/Module/LowerSwitch.cpp')
-rw-r--r--lib/Module/LowerSwitch.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/Module/LowerSwitch.cpp b/lib/Module/LowerSwitch.cpp
index 7f28748a..5cc6b991 100644
--- a/lib/Module/LowerSwitch.cpp
+++ b/lib/Module/LowerSwitch.cpp
@@ -44,7 +44,8 @@ bool LowerSwitchPass::runOnFunction(Function &F) {
   bool changed = false;
 
   for (Function::iterator I = F.begin(), E = F.end(); I != E; ) {
-    BasicBlock *cur = I++; // Advance over block so we don't traverse new blocks
+    BasicBlock *cur = static_cast<BasicBlock *>(I);
+    I++; // Advance over block so we don't traverse new blocks
 
     if (SwitchInst *SI = dyn_cast<SwitchInst>(cur->getTerminator())) {
       changed = true;