diff options
Diffstat (limited to 'llvm/lib/Transforms/Scalar/InstructionCombining.cpp')
| -rw-r--r-- | llvm/lib/Transforms/Scalar/InstructionCombining.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/Scalar/InstructionCombining.cpp b/llvm/lib/Transforms/Scalar/InstructionCombining.cpp index 2077b329160..218910feb20 100644 --- a/llvm/lib/Transforms/Scalar/InstructionCombining.cpp +++ b/llvm/lib/Transforms/Scalar/InstructionCombining.cpp @@ -4271,10 +4271,12 @@ bool InstCombiner::transformConstExprCastCall(CallSite CS) { if (InvokeInst *II = dyn_cast<InvokeInst>(Caller)) { NC = new InvokeInst(Callee, II->getNormalDest(), II->getUnwindDest(), Args, Caller->getName(), Caller); + cast<InvokeInst>(II)->setCallingConv(II->getCallingConv()); } else { NC = new CallInst(Callee, Args, Caller->getName(), Caller); if (cast<CallInst>(Caller)->isTailCall()) cast<CallInst>(NC)->setTailCall(); + cast<CallInst>(NC)->setCallingConv(cast<CallInst>(Caller)->getCallingConv()); } // Insert a cast of the return type as necessary... |

