diff options
Diffstat (limited to 'src/codegen')
| -rw-r--r-- | src/codegen/c.zig | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/codegen/c.zig b/src/codegen/c.zig index a885b984ac..1a323441d9 100644 --- a/src/codegen/c.zig +++ b/src/codegen/c.zig @@ -215,8 +215,9 @@ pub const DeclGen = struct { try dg.renderType(w, tv.ty.fnReturnType()); const decl_name = mem.span(dg.decl.name); try w.print(" {s}(", .{decl_name}); - var param_len = tv.ty.fnParamLen(); - if (param_len == 0) + const param_len = tv.ty.fnParamLen(); + const is_var_args = tv.ty.fnIsVarArgs(); + if (param_len == 0 and !is_var_args) try w.writeAll("void") else { var index: usize = 0; @@ -228,6 +229,10 @@ pub const DeclGen = struct { try w.print(" a{d}", .{index}); } } + if (is_var_args) { + if (param_len != 0) try w.writeAll(", "); + try w.writeAll("..."); + } try w.writeByte(')'); } |
