| ... | ... | @@ -5179,7 +5179,9 @@ fn switchExpr( |
| 5179 | 5179 | } |
| 5180 | 5180 | extra_index += body_len - 2; |
| 5181 | 5181 | const store_inst = scalar_cases_payload.items[extra_index]; |
| 5182 | | if (zir_tags[store_inst] != .store_to_block_ptr) { |
| 5182 | if (zir_tags[store_inst] != .store_to_block_ptr or |
| 5183 | zir_datas[store_inst].bin.lhs != block_scope.rl_ptr) |
| 5184 | { |
| 5183 | 5185 | extra_index += 2; |
| 5184 | 5186 | astgen.extra.appendSliceAssumeCapacity(scalar_cases_payload.items[0..extra_index]); |
| 5185 | 5187 | break :special_prong; |
| ... | ... | @@ -5220,7 +5222,9 @@ fn switchExpr( |
| 5220 | 5222 | } |
| 5221 | 5223 | extra_index += body_len - 2; |
| 5222 | 5224 | const store_inst = scalar_cases_payload.items[extra_index]; |
| 5223 | | if (zir_tags[store_inst] != .store_to_block_ptr) { |
| 5225 | if (zir_tags[store_inst] != .store_to_block_ptr or |
| 5226 | zir_datas[store_inst].bin.lhs != block_scope.rl_ptr) |
| 5227 | { |
| 5224 | 5228 | extra_index += 2; |
| 5225 | 5229 | astgen.extra.appendSliceAssumeCapacity(scalar_cases_payload.items[start_index..extra_index]); |
| 5226 | 5230 | continue; |
| ... | ... | @@ -5236,15 +5240,12 @@ fn switchExpr( |
| 5236 | 5240 | .rhs = zir_datas[break_inst].@"break".operand, |
| 5237 | 5241 | }; |
| 5238 | 5242 | zir_datas[break_inst].@"break".operand = parent_gz.indexToRef(store_inst); |
| 5239 | | } else if (zir_datas[store_inst].bin.lhs == block_scope.rl_ptr) { |
| 5243 | } else { |
| 5240 | 5244 | scalar_cases_payload.items[body_len_index] -= 1; |
| 5241 | 5245 | astgen.extra.appendSliceAssumeCapacity(scalar_cases_payload.items[start_index..extra_index]); |
| 5242 | 5246 | extra_index += 1; |
| 5243 | 5247 | astgen.extra.appendAssumeCapacity(scalar_cases_payload.items[extra_index]); |
| 5244 | 5248 | extra_index += 1; |
| 5245 | | } else { |
| 5246 | | extra_index += 2; |
| 5247 | | astgen.extra.appendSliceAssumeCapacity(scalar_cases_payload.items[start_index..extra_index]); |
| 5248 | 5249 | } |
| 5249 | 5250 | } |
| 5250 | 5251 | extra_index = 0; |
| ... | ... | @@ -5267,7 +5268,9 @@ fn switchExpr( |
| 5267 | 5268 | } |
| 5268 | 5269 | extra_index += body_len - 2; |
| 5269 | 5270 | const store_inst = multi_cases_payload.items[extra_index]; |
| 5270 | | if (zir_tags[store_inst] != .store_to_block_ptr) { |
| 5271 | if (zir_tags[store_inst] != .store_to_block_ptr or |
| 5272 | zir_datas[store_inst].bin.lhs != block_scope.rl_ptr) |
| 5273 | { |
| 5271 | 5274 | extra_index += 2; |
| 5272 | 5275 | astgen.extra.appendSliceAssumeCapacity(multi_cases_payload.items[start_index..extra_index]); |
| 5273 | 5276 | continue; |