parent
89a4c373d3
commit
15bf0c1541
@ -3147,6 +3147,9 @@ static IrInstruction *ir_gen_block(IrBuilder *irb, Scope *parent_scope, AstNode
|
||||
if (block_node->data.block.name == nullptr || incoming_blocks.length == 0) {
|
||||
return noreturn_return_value;
|
||||
}
|
||||
|
||||
ir_set_cursor_at_end_and_append_block(irb, scope_block->end_block);
|
||||
return ir_build_phi(irb, parent_scope, block_node, incoming_blocks.length, incoming_blocks.items, incoming_values.items);
|
||||
} else {
|
||||
incoming_blocks.append(irb->current_basic_block);
|
||||
incoming_values.append(ir_mark_gen(ir_build_const_void(irb, parent_scope, block_node)));
|
||||
|
@ -41,3 +41,14 @@ fn testBreakContInDefer(x: usize) void {
|
||||
assert(i == 5);
|
||||
}
|
||||
}
|
||||
|
||||
test "defer and labeled break" {
|
||||
var i = usize(0);
|
||||
|
||||
blk: {
|
||||
defer i += 1;
|
||||
break :blk;
|
||||
}
|
||||
|
||||
assert(i == 1);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user