aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMatthew Borkowski <matthew.h.borkowski@gmail.com>2021-10-18 01:12:00 -0400
committerAndrew Kelley <andrew@ziglang.org>2021-10-18 13:18:47 -0400
commit79a3dfcfd8c822096ed40fbe6f930d614a8dcb40 (patch)
treed4885241b4f2c9987ce710ad38ea4cb3b01ff259 /src
parentcde3dd365e1fed806294eddc91700558d2135a64 (diff)
downloadzig-79a3dfcfd8c822096ed40fbe6f930d614a8dcb40.tar.gz
zig-79a3dfcfd8c822096ed40fbe6f930d614a8dcb40.zip
astgen.zig: fix false positive in breakExpr's checking for store_to_block_ptr
Diffstat (limited to 'src')
-rw-r--r--src/AstGen.zig4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/AstGen.zig b/src/AstGen.zig
index 44234d41f7..c76b421368 100644
--- a/src/AstGen.zig
+++ b/src/AstGen.zig
@@ -1691,9 +1691,9 @@ fn breakExpr(parent_gz: *GenZir, parent_scope: *Scope, node: Ast.Node.Index) Inn
return Zir.Inst.Ref.unreachable_value;
}
block_gz.break_count += 1;
- const prev_rvalue_rl_count = block_gz.rvalue_rl_count;
const operand = try expr(parent_gz, parent_scope, block_gz.break_result_loc, rhs);
- const have_store_to_block = block_gz.rvalue_rl_count != prev_rvalue_rl_count;
+ // if list grew as much as rvalue_rl_count, then a break inside operand already saved the store_to_block_ptr
+ const have_store_to_block = block_gz.rvalue_rl_count > block_gz.labeled_store_to_block_ptr_list.items.len;
const br = try parent_gz.addBreak(.@"break", block_inst, operand);