translate-c: fix fn_decl vs fn_proto

Regressed in 15603f403c9ca91f7530798a5a7751cace284a28.
This commit is contained in:
Andrew Kelley 2021-02-21 18:31:32 -07:00
parent c6efb23796
commit a17a5ca3a8
2 changed files with 9 additions and 8 deletions

View File

@ -2407,13 +2407,13 @@ fn renderFunc(c: *Context, node: Node) !NodeIndex {
});
};
const body = if (payload.body) |some|
try renderNode(c, some)
else if (payload.is_extern) blk: {
_ = try c.addToken(.semicolon, ";");
break :blk 0;
} else return fn_proto;
const payload_body = payload.body orelse {
if (payload.is_extern) {
_ = try c.addToken(.semicolon, ";");
}
return fn_proto;
};
const body = try renderNode(c, payload_body);
return c.addNode(.{
.tag = .fn_decl,
.main_token = fn_token,

View File

@ -3117,7 +3117,8 @@ pub fn addCases(cases: *tests.TranslateCContext) void {
\\}
});
// TODO fix zig fmt here
// TODO fix zig fmt here - it incorrectly inserts an additional indentation
// level inside blk_1.
// cases.add("nested assignment",
// \\int foo(int *p, int x) {
// \\ return *p++ = x;