Commit a17a5ca3a8

Andrew Kelley <andrew@ziglang.org>
2021-02-22 02:31:32
translate-c: fix fn_decl vs fn_proto
Regressed in 15603f403c9ca91f7530798a5a7751cace284a28.
1 parent c6efb23
Changed files (2)
src
translate_c
test
src/translate_c/ast.zig
@@ -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,
test/translate_c.zig
@@ -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;