diff options
Diffstat (limited to 'src/Sema.zig')
| -rw-r--r-- | src/Sema.zig | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/Sema.zig b/src/Sema.zig index c64135f559..3c561821f4 100644 --- a/src/Sema.zig +++ b/src/Sema.zig @@ -4687,6 +4687,10 @@ fn resolveBlockBody( return sema.analyzeBlockBody(parent_block, src, child_block, merges); } else |err| switch (err) { error.ComptimeBreak => { + // Comptime control flow is happening, however child_block may still contain + // runtime instructions which need to be copied to the parent block. + try parent_block.instructions.appendSlice(sema.gpa, child_block.instructions.items); + const break_inst = sema.comptime_break_inst; const break_data = sema.code.instructions.items(.data)[break_inst].@"break"; if (break_data.block_inst == body_inst) { |
