commit 209e83f3950e8cb0daca389a4fa7cd79fe60394b (tree)
parent 8c96d0dddddfb4cd597661ff47551fcaf67cbf39
Author: Andrew Kelley <andrew@ziglang.org>
Date: Sat, 18 Feb 2023 11:56:05 -0700
AstGen: fix ZIR for for loops accessing instruction out of block
Diffstat:
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/AstGen.zig b/src/AstGen.zig
@@ -6413,6 +6413,8 @@ fn forExpr(
defer loop_scope.unstack();
defer loop_scope.labeled_breaks.deinit(gpa);
+ const index = try loop_scope.addUnNode(.load, index_ptr, node);
+
var cond_scope = parent_gz.makeSubBlock(&loop_scope.base);
defer cond_scope.unstack();
@@ -6420,7 +6422,6 @@ fn forExpr(
if (!any_len_checks) {
return astgen.failNode(node, "TODO: handle infinite for loop", .{});
}
- const index = try cond_scope.addUnNode(.load, index_ptr, node);
const cond = try cond_scope.addPlNode(.cmp_lt, node, Zir.Inst.Bin{
.lhs = index,
.rhs = len,
@@ -10695,7 +10696,6 @@ const Scope = struct {
@"function parameter",
@"local constant",
@"local variable",
- @"loop index capture",
@"switch tag capture",
capture,
};