From 924dd674e2e584bbef5e7650f481e49829c8fe28 Mon Sep 17 00:00:00 2001 From: LemonBoy Date: Sun, 17 Nov 2019 16:55:38 +0100 Subject: Catch invalid type from peer resolution Fixes #3703 --- src/ir.cpp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/ir.cpp') diff --git a/src/ir.cpp b/src/ir.cpp index 99af2e7861..d50229925c 100644 --- a/src/ir.cpp +++ b/src/ir.cpp @@ -17695,6 +17695,8 @@ static IrInstruction *ir_analyze_instruction_phi(IrAnalyze *ira, IrInstructionPh peer_parent->resolved_type = ir_resolve_peer_types(ira, peer_parent->base.source_instruction->source_node, expected_type, instructions, peer_parent->peers.length); + if (type_is_invalid(peer_parent->resolved_type)) + return ira->codegen->invalid_instruction; // the logic below assumes there are no instructions in the new current basic block yet ir_assert(ira->new_irb.current_basic_block->instruction_list.length == 0, &phi_instruction->base); -- cgit v1.2.3