From 209e83f3950e8cb0daca389a4fa7cd79fe60394b Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Sat, 18 Feb 2023 11:56:05 -0700 Subject: [PATCH] AstGen: fix ZIR for for loops accessing instruction out of block --- src/AstGen.zig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/AstGen.zig b/src/AstGen.zig index 9b96b16677..b4fda8e274 100644 --- 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, };