AstGen: fix store_to_block_ptr elision for switch statements

to make sure it matches the expected block
This commit is contained in:
Andrew Kelley 2021-04-20 17:58:04 -07:00
parent a008fb0a71
commit c69a95f64b

View File

@ -4952,13 +4952,15 @@ fn switchExpr(
.rhs = zir_datas[break_inst].@"break".operand,
};
zir_datas[break_inst].@"break".operand = parent_gz.indexToRef(store_inst);
} else {
assert(zir_datas[store_inst].bin.lhs == block_scope.rl_ptr);
} else if (zir_datas[store_inst].bin.lhs == block_scope.rl_ptr) {
scalar_cases_payload.items[body_len_index] -= 1;
astgen.extra.appendSliceAssumeCapacity(scalar_cases_payload.items[start_index..extra_index]);
extra_index += 1;
astgen.extra.appendAssumeCapacity(scalar_cases_payload.items[extra_index]);
extra_index += 1;
} else {
extra_index += 2;
astgen.extra.appendSliceAssumeCapacity(scalar_cases_payload.items[start_index..extra_index]);
}
}
extra_index = 0;