aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
authorLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2017-03-19 01:32:01 +0100
committerLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2017-11-17 10:04:37 +0100
commit822c08b58bc6e31105c4186edda4ec97dd884d23 (patch)
treed5d0d874e1cfe3aefbda99c4eed2d3dad5de0854
parent2333d1ab660f41030b76f779a4e8e116e9aa8d4a (diff)
downloadsparse-dev-822c08b58bc6e31105c4186edda4ec97dd884d23.tar.gz
llvm: variadic functions are not being marked as such
It appears that when a function is compiled, its variadic flag is not being set in LLVM so LLVM complains when at call sites variable arguments are passed. Reported-by: Dibyendu Majumdar <mobile@majumdar.org.uk> Originally-by: Dibyendu Majumdar <mobile@majumdar.org.uk> Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
-rw-r--r--sparse-llvm.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sparse-llvm.c b/sparse-llvm.c
index 273e22d6..344934b0 100644
--- a/sparse-llvm.c
+++ b/sparse-llvm.c
@@ -1079,7 +1079,7 @@ static void output_fn(LLVMModuleRef module, struct entrypoint *ep)
name = show_ident(sym->ident);
- fun_type = LLVMFunctionType(ret_type, arg_types, nr_args, 0);
+ fun_type = LLVMFunctionType(ret_type, arg_types, nr_args, base_type->variadic);
function.fn = LLVMAddFunction(module, name, fun_type);
LLVMSetFunctionCallConv(function.fn, LLVMCCallConv);