authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2021-04-20 17:58:04-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2021-04-20 17:58:04-07:00
logc69a95f64bc616b9d4185687edeb08544e34a34c
tree0f75470619b6d5aea8cf90a55ac76919faf655e1
parenta008fb0a71657ad02a05e312680f960caded414f

AstGen: fix store_to_block_ptr elision for switch statements

to make sure it matches the expected block

1 files changed, 4 insertions(+), 2 deletions(-)

src/AstGen.zig+4-2
......@@ -4952,13 +4952,15 @@ fn switchExpr(
49524952 .rhs = zir_datas[break_inst].@"break".operand,
49534953 };
49544954 zir_datas[break_inst].@"break".operand = parent_gz.indexToRef(store_inst);
4955 } else {
4956 assert(zir_datas[store_inst].bin.lhs == block_scope.rl_ptr);
4955 } else if (zir_datas[store_inst].bin.lhs == block_scope.rl_ptr) {
49574956 scalar_cases_payload.items[body_len_index] -= 1;
49584957 astgen.extra.appendSliceAssumeCapacity(scalar_cases_payload.items[start_index..extra_index]);
49594958 extra_index += 1;
49604959 astgen.extra.appendAssumeCapacity(scalar_cases_payload.items[extra_index]);
49614960 extra_index += 1;
4961 } else {
4962 extra_index += 2;
4963 astgen.extra.appendSliceAssumeCapacity(scalar_cases_payload.items[start_index..extra_index]);
49624964 }
49634965 }
49644966 extra_index = 0;