diff options
Diffstat (limited to 'lib/Module/Checks.cpp')
-rw-r--r-- | lib/Module/Checks.cpp | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/lib/Module/Checks.cpp b/lib/Module/Checks.cpp index bf37eea2..80b6b245 100644 --- a/lib/Module/Checks.cpp +++ b/lib/Module/Checks.cpp @@ -82,13 +82,13 @@ bool DivCheckPass::runOnModule(Module &M) { NULL); divZeroCheckFunction = cast<Function>(fc); } -#if LLVM_VERSION_CODE >= LLVM_VERSION(3, 0) - CallInst * ci = -#endif - CallInst::Create(divZeroCheckFunction, denominator, "", &*i); -#if LLVM_VERSION_CODE >= LLVM_VERSION(3, 0) + + CallInst * ci = CallInst::Create(divZeroCheckFunction, denominator, "", &*i); + + // Set debug location of checking call to that of the div/rem + // operation so error locations are reported in the correct + // location. ci->setDebugLoc(binOp->getDebugLoc()); -#endif moduleChanged = true; } } @@ -143,13 +143,14 @@ bool OvershiftCheckPass::runOnModule(Module &M) { } // Inject CallInstr to check if overshifting possible + CallInst* ci = #if LLVM_VERSION_CODE >= LLVM_VERSION(3, 0) - CallInst * ci = CallInst::Create(overshiftCheckFunction, args, "", &*i); - // set debug information from binary operand to preserve it - ci->setDebugLoc(binOp->getDebugLoc()); + CallInst::Create(overshiftCheckFunction, args, "", &*i); #else CallInst::Create(overshiftCheckFunction, args.begin(), args.end(), "", &*i); #endif + // set debug information from binary operand to preserve it + ci->setDebugLoc(binOp->getDebugLoc()); moduleChanged = true; } } |