aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorVeikka Tuominen <git@vexu.eu>2022-10-24 15:17:01 +0300
committerVeikka Tuominen <git@vexu.eu>2022-10-27 01:31:18 +0300
commit4fc944dde813638410850515b0d1b156e5b6e920 (patch)
tree57af939346f904b0da8348d10de6666a1e948022 /src
parentd773b7e71f8d9fd3d69c1f90cec9a941fc9f9a12 (diff)
downloadzig-4fc944dde813638410850515b0d1b156e5b6e920.tar.gz
zig-4fc944dde813638410850515b0d1b156e5b6e920.zip
translate-c: fix redefinition of label on left recursive comma operator
Closes #13239
Diffstat (limited to 'src')
-rw-r--r--src/translate_c.zig7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/translate_c.zig b/src/translate_c.zig
index 219635859c..7cc843e17c 100644
--- a/src/translate_c.zig
+++ b/src/translate_c.zig
@@ -5651,13 +5651,14 @@ const ParseError = Error || error{ParseError};
fn parseCExpr(c: *Context, m: *MacroCtx, scope: *Scope) ParseError!Node {
// TODO parseCAssignExpr here
- const node = try parseCCondExpr(c, m, scope);
+ var block_scope = try Scope.Block.init(c, scope, true);
+ defer block_scope.deinit();
+
+ const node = try parseCCondExpr(c, m, &block_scope.base);
if (m.next().? != .Comma) {
m.i -= 1;
return node;
}
- var block_scope = try Scope.Block.init(c, scope, true);
- defer block_scope.deinit();
var last = node;
while (true) {