[PATCH] D45924: Set calling convention for varargs
Aditya Kumar via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sat Apr 21 06:46:21 PDT 2018
hiraditya created this revision.
hiraditya added reviewers: tobiasvk, slarin, pranavb.
Varargs only follow C calling conventions.
Unfortunately, I do not have a test case for this. I just saw this while reading the code.
https://reviews.llvm.org/D45924
Files:
lib/Transforms/IPO/MergeSimilarFunctions.cpp
Index: lib/Transforms/IPO/MergeSimilarFunctions.cpp
===================================================================
--- lib/Transforms/IPO/MergeSimilarFunctions.cpp
+++ lib/Transforms/IPO/MergeSimilarFunctions.cpp
@@ -1830,7 +1830,10 @@
if (F1->hasSection())
NewF->setSection(F1->getSection());
- NewF->setCallingConv(CallingConv::Fast);
+ if (F1->getFunctionType()->isVarArg())
+ NewF->setCallingConv(CallingConv::C);
+ else
+ NewF->setCallingConv(CallingConv::Fast);
Function::arg_iterator DestI = NewF->arg_begin();
for (auto &Arg : F1->args()) {
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D45924.143446.patch
Type: text/x-patch
Size: 581 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180421/68a36dbc/attachment.bin>
More information about the llvm-commits
mailing list