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 | feb129e81335b72154c03b686432215e892dfaac (patch) | |
tree | 9cd38d98391003289c6d1b3140fe332a925512f2 /llvm/lib/Transforms/Utils/InlineFunction.cpp | |
parent | 096f44de615482a5e698cec21fd293998aa2aa15 (diff) | |
download | bcm5719-llvm-feb129e81335b72154c03b686432215e892dfaac.tar.gz bcm5719-llvm-feb129e81335b72154c03b686432215e892dfaac.zip |
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!
llvm-svn: 64364
Diffstat (limited to 'llvm/lib/Transforms/Utils/InlineFunction.cpp')
-rw-r--r-- | llvm/lib/Transforms/Utils/InlineFunction.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/Transforms/Utils/InlineFunction.cpp b/llvm/lib/Transforms/Utils/InlineFunction.cpp index 758b97ea915..a96c7ceaa8e 100644 --- a/llvm/lib/Transforms/Utils/InlineFunction.cpp +++ b/llvm/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. |