diff options
Diffstat (limited to 'lib/Module/KModule.cpp')
-rw-r--r-- | lib/Module/KModule.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/Module/KModule.cpp b/lib/Module/KModule.cpp index 04c8f09f..b16be68a 100644 --- a/lib/Module/KModule.cpp +++ b/lib/Module/KModule.cpp @@ -27,7 +27,9 @@ #else #include "llvm/Bitcode/ReaderWriter.h" #endif +#if LLVM_VERSION_CODE < LLVM_VERSION(8, 0) #include "llvm/IR/CallSite.h" +#endif #include "llvm/IR/DataLayout.h" #include "llvm/IR/IRBuilder.h" #include "llvm/IR/Instructions.h" @@ -471,13 +473,17 @@ KFunction::KFunction(llvm::Function *_function, ki->dest = registerMap[inst]; if (isa<CallInst>(it) || isa<InvokeInst>(it)) { - CallSite cs(inst); +#if LLVM_VERSION_CODE >= LLVM_VERSION(8, 0) + const CallBase &cs = cast<CallBase>(*inst); +#else + const CallSite cs(inst); +#endif unsigned numArgs = cs.arg_size(); ki->operands = new int[numArgs+1]; ki->operands[0] = getOperandNum(cs.getCalledValue(), registerMap, km, ki); for (unsigned j=0; j<numArgs; j++) { - Value *v = cs.getArgument(j); + Value *v = cs.getArgOperand(j); ki->operands[j+1] = getOperandNum(v, registerMap, km, ki); } } else { |