| ... | ... | @@ -1443,9 +1443,7 @@ fn analyzeBodyInner( |
| 1443 | 1443 | continue; |
| 1444 | 1444 | }, |
| 1445 | 1445 | .breakpoint => { |
| 1446 | | if (!block.isComptime()) { |
| 1447 | | _ = try block.addNoOp(.breakpoint); |
| 1448 | | } |
| 1446 | try sema.zirBreakpoint(block, extended); |
| 1449 | 1447 | i += 1; |
| 1450 | 1448 | continue; |
| 1451 | 1449 | }, |
| ... | ... | @@ -5082,6 +5080,14 @@ fn zirTrap(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!void { |
| 5082 | 5080 | _ = try block.addNoOp(.trap); |
| 5083 | 5081 | } |
| 5084 | 5082 | |
| 5083 | fn zirBreakpoint(sema: *Sema, block: *Block, extended: Zir.Inst.Extended.InstData) CompileError!void { |
| 5084 | const src_node: std.zig.Ast.Node.Offset = @enumFromInt(@as(i32, @bitCast(extended.operand))); |
| 5085 | const src = block.nodeOffset(src_node); |
| 5086 | if (block.isComptime()) |
| 5087 | return sema.fail(block, src, "encountered @breakpoint at comptime", .{}); |
| 5088 | _ = try block.addNoOp(.breakpoint); |
| 5089 | } |
| 5090 | |
| 5085 | 5091 | fn zirLoop(sema: *Sema, parent_block: *Block, inst: Zir.Inst.Index) CompileError!Air.Inst.Ref { |
| 5086 | 5092 | const pt = sema.pt; |
| 5087 | 5093 | const zcu = pt.zcu; |