| ... | @@ -1443,9 +1443,7 @@ fn analyzeBodyInner( | ... | @@ -1443,9 +1443,7 @@ fn analyzeBodyInner( |
| 1443 | continue; | 1443 | continue; |
| 1444 | }, | 1444 | }, |
| 1445 | .breakpoint => { | 1445 | .breakpoint => { |
| 1446 | if (!block.isComptime()) { | 1446 | try sema.zirBreakpoint(block, extended); |
| 1447 | _ = try block.addNoOp(.breakpoint); | | |
| 1448 | } | | |
| 1449 | i += 1; | 1447 | i += 1; |
| 1450 | continue; | 1448 | continue; |
| 1451 | }, | 1449 | }, |
| ... | @@ -5082,6 +5080,14 @@ fn zirTrap(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!void { | ... | @@ -5082,6 +5080,14 @@ fn zirTrap(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!void { |
| 5082 | _ = try block.addNoOp(.trap); | 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 | fn zirLoop(sema: *Sema, parent_block: *Block, inst: Zir.Inst.Index) CompileError!Air.Inst.Ref { | 5091 | fn zirLoop(sema: *Sema, parent_block: *Block, inst: Zir.Inst.Index) CompileError!Air.Inst.Ref { |
| 5086 | const pt = sema.pt; | 5092 | const pt = sema.pt; |
| 5087 | const zcu = pt.zcu; | 5093 | const zcu = pt.zcu; |