| ... | @@ -5462,8 +5462,10 @@ static IrInstruction *ir_gen_while_expr(IrBuilder *irb, Scope *scope, AstNode *n | ... | @@ -5462,8 +5462,10 @@ static IrInstruction *ir_gen_while_expr(IrBuilder *irb, Scope *scope, AstNode *n |
| 5462 | IrInstruction *expr_result = ir_gen_node(irb, continue_expr_node, payload_scope); | 5462 | IrInstruction *expr_result = ir_gen_node(irb, continue_expr_node, payload_scope); |
| 5463 | if (expr_result == irb->codegen->invalid_instruction) | 5463 | if (expr_result == irb->codegen->invalid_instruction) |
| 5464 | return expr_result; | 5464 | return expr_result; |
| 5465 | if (!instr_is_unreachable(expr_result)) | 5465 | if (!instr_is_unreachable(expr_result)) { |
| | 5466 | ir_mark_gen(ir_build_check_statement_is_void(irb, payload_scope, continue_expr_node, expr_result)); |
| 5466 | ir_mark_gen(ir_build_br(irb, payload_scope, node, cond_block, is_comptime)); | 5467 | ir_mark_gen(ir_build_br(irb, payload_scope, node, cond_block, is_comptime)); |
| | 5468 | } |
| 5467 | } | 5469 | } |
| 5468 | | 5470 | |
| 5469 | ir_set_cursor_at_end_and_append_block(irb, else_block); | 5471 | ir_set_cursor_at_end_and_append_block(irb, else_block); |
| ... | @@ -5544,8 +5546,10 @@ static IrInstruction *ir_gen_while_expr(IrBuilder *irb, Scope *scope, AstNode *n | ... | @@ -5544,8 +5546,10 @@ static IrInstruction *ir_gen_while_expr(IrBuilder *irb, Scope *scope, AstNode *n |
| 5544 | IrInstruction *expr_result = ir_gen_node(irb, continue_expr_node, child_scope); | 5546 | IrInstruction *expr_result = ir_gen_node(irb, continue_expr_node, child_scope); |
| 5545 | if (expr_result == irb->codegen->invalid_instruction) | 5547 | if (expr_result == irb->codegen->invalid_instruction) |
| 5546 | return expr_result; | 5548 | return expr_result; |
| 5547 | if (!instr_is_unreachable(expr_result)) | 5549 | if (!instr_is_unreachable(expr_result)) { |
| | 5550 | ir_mark_gen(ir_build_check_statement_is_void(irb, child_scope, continue_expr_node, expr_result)); |
| 5548 | ir_mark_gen(ir_build_br(irb, child_scope, node, cond_block, is_comptime)); | 5551 | ir_mark_gen(ir_build_br(irb, child_scope, node, cond_block, is_comptime)); |
| | 5552 | } |
| 5549 | } | 5553 | } |
| 5550 | | 5554 | |
| 5551 | IrInstruction *else_result = nullptr; | 5555 | IrInstruction *else_result = nullptr; |
| ... | @@ -5609,8 +5613,10 @@ static IrInstruction *ir_gen_while_expr(IrBuilder *irb, Scope *scope, AstNode *n | ... | @@ -5609,8 +5613,10 @@ static IrInstruction *ir_gen_while_expr(IrBuilder *irb, Scope *scope, AstNode *n |
| 5609 | IrInstruction *expr_result = ir_gen_node(irb, continue_expr_node, subexpr_scope); | 5613 | IrInstruction *expr_result = ir_gen_node(irb, continue_expr_node, subexpr_scope); |
| 5610 | if (expr_result == irb->codegen->invalid_instruction) | 5614 | if (expr_result == irb->codegen->invalid_instruction) |
| 5611 | return expr_result; | 5615 | return expr_result; |
| 5612 | if (!instr_is_unreachable(expr_result)) | 5616 | if (!instr_is_unreachable(expr_result)) { |
| | 5617 | ir_mark_gen(ir_build_check_statement_is_void(irb, scope, continue_expr_node, expr_result)); |
| 5613 | ir_mark_gen(ir_build_br(irb, scope, node, cond_block, is_comptime)); | 5618 | ir_mark_gen(ir_build_br(irb, scope, node, cond_block, is_comptime)); |
| | 5619 | } |
| 5614 | } | 5620 | } |
| 5615 | | 5621 | |
| 5616 | IrInstruction *else_result = nullptr; | 5622 | IrInstruction *else_result = nullptr; |