Commit 3dd067fa2b
Changed files (2)
src-self-hosted
test
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
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) {}
\\ }
\\}
});