authorgravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2020-01-02 16:28:01+02:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-01-02 10:47:14-05:00
log3dd067fa2bd3e19abf49462d5c7140c22aac966e
treeaff44909c9fa68afb8d5af3ee674a99bb96e58d2
parentde894f2bde4ce708206a8161dc0c98cb8f5bcb67

translate-c fix increment rendering issues


2 files changed, 6 insertions(+), 4 deletions(-)

src-self-hosted/translate_c.zig+4-2
......@@ -2478,7 +2478,8 @@ fn transCreatePreCrement(
24782478 const expr = try transExpr(rp, scope, op_expr, .used, .r_value);
24792479 const token = try appendToken(rp.c, op_tok_id, bytes);
24802480 const one = try transCreateNodeInt(rp.c, 1);
2481 _ = try appendToken(rp.c, .Semicolon, ";");
2481 if (scope.id != .Condition)
2482 _ = try appendToken(rp.c, .Semicolon, ";");
24822483 return transCreateNodeInfixOp(rp, scope, expr, op, token, one, .used, false);
24832484 }
24842485 // worst case
......@@ -2542,7 +2543,8 @@ fn transCreatePostCrement(
25422543 const expr = try transExpr(rp, scope, op_expr, .used, .r_value);
25432544 const token = try appendToken(rp.c, op_tok_id, bytes);
25442545 const one = try transCreateNodeInt(rp.c, 1);
2545 _ = try appendToken(rp.c, .Semicolon, ";");
2546 if (scope.id != .Condition)
2547 _ = try appendToken(rp.c, .Semicolon, ";");
25462548 return transCreateNodeInfixOp(rp, scope, expr, op, token, one, .used, false);
25472549 }
25482550 // worst case
test/translate_c.zig+2-2
......@@ -585,13 +585,13 @@ pub fn addCases(cases: *tests.TranslateCContext) void {
585585
586586 cases.add("for loop",
587587 \\void foo(void) {
588 \\ for (int i = 0; i; i = i + 1) { }
588 \\ for (int i = 0; i; i++) { }
589589 \\}
590590 , &[_][]const u8{
591591 \\pub export fn foo() void {
592592 \\ {
593593 \\ var i: c_int = 0;
594 \\ while (i != 0) : (i = (i + @as(c_int, 1))) {}
594 \\ while (i != 0) : (i += 1) {}
595595 \\ }
596596 \\}
597597 });