aboutsummaryrefslogtreecommitdiff
path: root/src/codegen/c.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/codegen/c.zig')
-rw-r--r--src/codegen/c.zig9
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(')');
}