| ... | @@ -6493,14 +6493,18 @@ static TypeTableEntry *ir_analyze_instruction_phi(IrAnalyze *ira, IrInstructionP | ... | @@ -6493,14 +6493,18 @@ static TypeTableEntry *ir_analyze_instruction_phi(IrAnalyze *ira, IrInstructionP |
| 6493 | if (predecessor->ref_count == 0) | 6493 | if (predecessor->ref_count == 0) |
| 6494 | continue; | 6494 | continue; |
| 6495 | | 6495 | |
| 6496 | assert(predecessor->other); | | |
| 6497 | new_incoming_blocks.append(predecessor->other); | | |
| 6498 | | 6496 | |
| 6499 | IrInstruction *old_value = phi_instruction->incoming_values[i]; | 6497 | IrInstruction *old_value = phi_instruction->incoming_values[i]; |
| 6500 | assert(old_value); | 6498 | assert(old_value); |
| 6501 | IrInstruction *new_value = old_value->other; | 6499 | IrInstruction *new_value = old_value->other; |
| 6502 | if (!new_value || new_value->type_entry->id == TypeTableEntryIdInvalid) | 6500 | if (!new_value || new_value->type_entry->id == TypeTableEntryIdInvalid) |
| 6503 | return ira->codegen->builtin_types.entry_invalid; | 6501 | return ira->codegen->builtin_types.entry_invalid; |
| | 6502 | |
| | 6503 | if (new_value->type_entry->id == TypeTableEntryIdUnreachable) |
| | 6504 | continue; |
| | 6505 | |
| | 6506 | assert(predecessor->other); |
| | 6507 | new_incoming_blocks.append(predecessor->other); |
| 6504 | new_incoming_values.append(new_value); | 6508 | new_incoming_values.append(new_value); |
| 6505 | } | 6509 | } |
| 6506 | assert(new_incoming_blocks.length != 0); | 6510 | assert(new_incoming_blocks.length != 0); |