diff options
author | Chris Lattner <sabre@nondot.org> | 2009-02-12 07:06:42 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-02-12 07:06:42 +0000 |
commit | ed050df0ac190fb29ca729a261da9c5d4da6109f (patch) | |
tree | 7f90188dc6cb669c9d4787150dd9292df8c2f602 /lib/Transforms/Utils/InlineFunction.cpp | |
parent | 0cb92f88534434868229a134518166cb912300e6 (diff) | |
download | external_llvm-ed050df0ac190fb29ca729a261da9c5d4da6109f.zip external_llvm-ed050df0ac190fb29ca729a261da9c5d4da6109f.tar.gz external_llvm-ed050df0ac190fb29ca729a261da9c5d4da6109f.tar.bz2 |
Fix a nasty bug (PR3550) where the inline pass could incorrectly mark
calls with the tail marker when inlining them through an invoke. Patch,
testcase, and perfect analysis by Jay Foad!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64364 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms/Utils/InlineFunction.cpp')
-rw-r--r-- | lib/Transforms/Utils/InlineFunction.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/Transforms/Utils/InlineFunction.cpp b/lib/Transforms/Utils/InlineFunction.cpp index 758b97e..a96c7ce 100644 --- a/lib/Transforms/Utils/InlineFunction.cpp +++ b/lib/Transforms/Utils/InlineFunction.cpp @@ -203,10 +203,10 @@ bool llvm::InlineFunction(CallSite CS, CallGraph *CG, const TargetData *TD) { CalledFunc->getFunctionType()->isVarArg()) return false; - // If the call to the callee is a non-tail call, we must clear the 'tail' + // If the call to the callee is not a tail call, we must clear the 'tail' // flags on any calls that we inline. bool MustClearTailCallFlags = - isa<CallInst>(TheCall) && !cast<CallInst>(TheCall)->isTailCall(); + !(isa<CallInst>(TheCall) && cast<CallInst>(TheCall)->isTailCall()); // If the call to the callee cannot throw, set the 'nounwind' flag on any // calls that we inline. |