aboutsummaryrefslogtreecommitdiff
path: root/src/codegen/c.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2021-03-06 13:35:48 -0800
committerGitHub <noreply@github.com>2021-03-06 13:35:48 -0800
commit34cb5934ddd7c79fb96ffed87768764247740260 (patch)
treed4ca1d9e3c6a335caf311de1383e45758f221438 /src/codegen/c.zig
parent9f722f43ac449caa0e09c1b7bb1bad0581ef323d (diff)
parent8c6e7fb2c7488faab0c41a4ea241f0110237ce91 (diff)
downloadzig-34cb5934ddd7c79fb96ffed87768764247740260.tar.gz
zig-34cb5934ddd7c79fb96ffed87768764247740260.zip
Merge pull request #7910 from Vexu/stage2-async
Stage2: astgen async stuff, implement var args functions
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(')');
}