| ... | @@ -18486,6 +18486,9 @@ fn zirCondbr( | ... | @@ -18486,6 +18486,9 @@ fn zirCondbr( |
| 18486 | break :blk try sub_block.addTyOp(.unwrap_errunion_err, result_ty, err_operand); | 18486 | break :blk try sub_block.addTyOp(.unwrap_errunion_err, result_ty, err_operand); |
| 18487 | }; | 18487 | }; |
| 18488 | | 18488 | |
| | 18489 | // Reset, this may have been updated by the then block analysis |
| | 18490 | sub_block.error_return_trace_index = parent_block.error_return_trace_index; |
| | 18491 | |
| 18489 | const false_hint: std.builtin.BranchHint = if (err_cond != null and | 18492 | const false_hint: std.builtin.BranchHint = if (err_cond != null and |
| 18490 | try sema.maybeErrorUnwrap(&sub_block, else_body, err_cond.?, cond_src, false)) | 18493 | try sema.maybeErrorUnwrap(&sub_block, else_body, err_cond.?, cond_src, false)) |
| 18491 | h: { | 18494 | h: { |
| ... | @@ -18961,9 +18964,10 @@ fn restoreErrRetIndex(sema: *Sema, start_block: *Block, src: LazySrcLoc, target_ | ... | @@ -18961,9 +18964,10 @@ fn restoreErrRetIndex(sema: *Sema, start_block: *Block, src: LazySrcLoc, target_ |
| 18961 | while (true) { | 18964 | while (true) { |
| 18962 | if (block.label) |label| { | 18965 | if (block.label) |label| { |
| 18963 | if (label.zir_block == zir_block) { | 18966 | if (label.zir_block == zir_block) { |
| 18964 | const target_trace_index = if (block.parent) |parent_block| tgt: { | 18967 | const target_trace_index = if (block.parent) |parent_block| |
| 18965 | break :tgt parent_block.error_return_trace_index; | 18968 | parent_block.error_return_trace_index |
| 18966 | } else sema.error_return_trace_index_on_fn_entry; | 18969 | else |
| | 18970 | sema.error_return_trace_index_on_fn_entry; |
| 18967 | | 18971 | |
| 18968 | if (start_block.error_return_trace_index != target_trace_index) | 18972 | if (start_block.error_return_trace_index != target_trace_index) |
| 18969 | break :b target_trace_index; | 18973 | break :b target_trace_index; |