From 3dd067fa2bd3e19abf49462d5c7140c22aac966e Mon Sep 17 00:00:00 2001 From: Vexu Date: Thu, 2 Jan 2020 16:28:01 +0200 Subject: [PATCH] translate-c fix increment rendering issues --- src-self-hosted/translate_c.zig | 6 ++++-- test/translate_c.zig | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src-self-hosted/translate_c.zig b/src-self-hosted/translate_c.zig index dfb0277ccb..b49989732e 100644 --- a/src-self-hosted/translate_c.zig +++ b/src-self-hosted/translate_c.zig @@ -2478,7 +2478,8 @@ fn transCreatePreCrement( const expr = try transExpr(rp, scope, op_expr, .used, .r_value); const token = try appendToken(rp.c, op_tok_id, bytes); const one = try transCreateNodeInt(rp.c, 1); - _ = try appendToken(rp.c, .Semicolon, ";"); + if (scope.id != .Condition) + _ = try appendToken(rp.c, .Semicolon, ";"); return transCreateNodeInfixOp(rp, scope, expr, op, token, one, .used, false); } // worst case @@ -2542,7 +2543,8 @@ fn transCreatePostCrement( const expr = try transExpr(rp, scope, op_expr, .used, .r_value); const token = try appendToken(rp.c, op_tok_id, bytes); const one = try transCreateNodeInt(rp.c, 1); - _ = try appendToken(rp.c, .Semicolon, ";"); + if (scope.id != .Condition) + _ = try appendToken(rp.c, .Semicolon, ";"); return transCreateNodeInfixOp(rp, scope, expr, op, token, one, .used, false); } // worst case diff --git a/test/translate_c.zig b/test/translate_c.zig index 3c027cce26..ab6dcf9f02 100644 --- a/test/translate_c.zig +++ b/test/translate_c.zig @@ -585,13 +585,13 @@ pub fn addCases(cases: *tests.TranslateCContext) void { cases.add("for loop", \\void foo(void) { - \\ for (int i = 0; i; i = i + 1) { } + \\ for (int i = 0; i; i++) { } \\} , &[_][]const u8{ \\pub export fn foo() void { \\ { \\ var i: c_int = 0; - \\ while (i != 0) : (i = (i + @as(c_int, 1))) {} + \\ while (i != 0) : (i += 1) {} \\ } \\} });