authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2021-03-23 15:32:25-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2021-03-23 15:32:25-07:00
logaa46a705ad998636443e744b63471bf0864e90c9
tree633cea6691c79c375a43a0f47fe966fcdf1a6d4a
parentaf73f79490aa9b998bfe1e3a6f9353742289f1bd

astgen: finishThenElseBlock: fix putting store_to_block_ptr in wrong block


1 files changed, 11 insertions(+), 6 deletions(-)

src/astgen.zig+11-6
......@@ -1732,9 +1732,10 @@ fn orelseCatchExpr(
17321732
17331733 return finishThenElseBlock(
17341734 mod,
1735 &block_scope,
1735 scope,
17361736 rl,
17371737 node,
1738 &block_scope,
17381739 &then_scope,
17391740 &else_scope,
17401741 condbr,
......@@ -1750,9 +1751,10 @@ fn orelseCatchExpr(
17501751
17511752fn finishThenElseBlock(
17521753 mod: *Module,
1753 block_scope: *Scope.GenZir,
1754 parent_scope: *Scope,
17541755 rl: ResultLoc,
17551756 node: ast.Node.Index,
1757 block_scope: *Scope.GenZir,
17561758 then_scope: *Scope.GenZir,
17571759 else_scope: *Scope.GenZir,
17581760 condbr: zir.Inst.Index,
......@@ -1830,7 +1832,7 @@ fn finishThenElseBlock(
18301832 const block_ref = wzc.ref_start_index + main_block;
18311833 switch (rl) {
18321834 .ref => return block_ref,
1833 else => return rvalue(mod, &block_scope.base, rl, block_ref, node),
1835 else => return rvalue(mod, parent_scope, rl, block_ref, node),
18341836 }
18351837 },
18361838 }
......@@ -2066,9 +2068,10 @@ fn ifExpr(
20662068
20672069 return finishThenElseBlock(
20682070 mod,
2069 &block_scope,
2071 scope,
20702072 rl,
20712073 node,
2074 &block_scope,
20722075 &then_scope,
20732076 &else_scope,
20742077 condbr,
......@@ -2277,9 +2280,10 @@ fn whileExpr(
22772280 }
22782281 return finishThenElseBlock(
22792282 mod,
2280 &loop_scope,
2283 scope,
22812284 rl,
22822285 node,
2286 &loop_scope,
22832287 &then_scope,
22842288 &else_scope,
22852289 condbr,
......@@ -2476,9 +2480,10 @@ fn forExpr(
24762480 }
24772481 return finishThenElseBlock(
24782482 mod,
2479 &loop_scope,
2483 scope,
24802484 rl,
24812485 node,
2486 &loop_scope,
24822487 &then_scope,
24832488 &else_scope,
24842489 condbr,