zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

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:
Msrc/AstGen.zig | 4++--
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, };