| ... | ... | @@ -24232,11 +24232,13 @@ static IrInstruction *ir_analyze_instruction_end_expr(IrAnalyze *ira, IrInstruct |
| 24232 | 24232 | |
| 24233 | 24233 | static IrInstruction *ir_analyze_instruction_bit_cast_src(IrAnalyze *ira, IrInstructionBitCastSrc *instruction) { |
| 24234 | 24234 | IrInstruction *operand = instruction->operand->child; |
| 24235 | | if (type_is_invalid(operand->value.type) || |
| 24236 | | instruction->result_loc_bit_cast->parent->gen_instruction == nullptr) |
| 24237 | | { |
| 24235 | if (type_is_invalid(operand->value.type)) |
| 24238 | 24236 | return operand; |
| 24239 | | } |
| 24237 | |
| 24238 | IrInstruction *result_loc = ir_resolve_result(ira, &instruction->base, |
| 24239 | &instruction->result_loc_bit_cast->base, operand->value.type, operand); |
| 24240 | if (result_loc != nullptr && (type_is_invalid(result_loc->value.type) || instr_is_unreachable(result_loc))) |
| 24241 | return result_loc; |
| 24240 | 24242 | |
| 24241 | 24243 | return instruction->result_loc_bit_cast->parent->gen_instruction; |
| 24242 | 24244 | } |