From e4163c18cdc3522f24e459cd6ddde60edb1605e2 Mon Sep 17 00:00:00 2001 From: lemon Date: Tue, 30 Aug 2022 07:55:04 +0200 Subject: fix vararg --- src/llvm.cff | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'src/llvm.cff') diff --git a/src/llvm.cff b/src/llvm.cff index 98f99ce..d8c8a32 100644 --- a/src/llvm.cff +++ b/src/llvm.cff @@ -114,9 +114,12 @@ fn gen(fmt *const u8, ...) void { if i < f.params.#len - 1 { gen(", "); } else if f.variadic { - gen(", ..."); + gen(", "); } } + if f.variadic { + gen("..."); + } gen(") "); case VaList; gen("%%.type.valist"); case else assert(#f, "type?"); @@ -1266,9 +1269,10 @@ extern fn llvm_genfn(externp bool, name *const u8, f *Fn) void { if f.paramnames[i] { gen(" %%%s", f.paramnames[i]); } - if i < f.paramnames.#len - 1 { + if i < f.paramnames.#len - 1 or f.variadic { gen(", "); } + if f.variadic { gen("..."); } } gen(") { \n"); let id = 0; @@ -1424,9 +1428,12 @@ extern fn llvm_fini() void { if i < f.params.#len - 1 { gen(", "); } else if f.variadic { - gen(", ..."); + gen(", "); } } + if f.variadic { + gen("..."); + } gen(");\n"); case else if !k.externp { -- cgit v1.2.3