diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2021-03-06 13:35:48 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-03-06 13:35:48 -0800 |
| commit | 34cb5934ddd7c79fb96ffed87768764247740260 (patch) | |
| tree | d4ca1d9e3c6a335caf311de1383e45758f221438 /src/codegen/c.zig | |
| parent | 9f722f43ac449caa0e09c1b7bb1bad0581ef323d (diff) | |
| parent | 8c6e7fb2c7488faab0c41a4ea241f0110237ce91 (diff) | |
| download | zig-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.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(')'); } |
