aboutsummaryrefslogtreecommitdiff
path: root/src/Sema.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/Sema.zig')
-rw-r--r--src/Sema.zig4
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) {