diff options
| author | 2022-08-30 07:55:04 +0200 | |
|---|---|---|
| committer | 2022-08-30 07:55:04 +0200 | |
| commit | e4163c18cdc3522f24e459cd6ddde60edb1605e2 (patch) | |
| tree | 4ab7ec298ecec5b6939f6c093c23ecdb5378c4fe /src | |
| parent | fd3ddf0412f9e0861de823709677e65b49e5aebb (diff) | |
fix vararg
Diffstat (limited to 'src')
| -rw-r--r-- | src/llvm.cff | 13 |
1 files changed, 10 insertions, 3 deletions
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 { |