Commit f88b523065
Changed files (4)
src
test
src/Sema.zig
@@ -1292,9 +1292,7 @@ fn analyzeBodyInner(
continue;
},
.breakpoint => {
- if (!block.is_comptime) {
- _ = try block.addNoOp(.breakpoint);
- }
+ try sema.zirBreakpoint(block, extended);
i += 1;
continue;
},
@@ -5620,6 +5618,13 @@ fn zirTrap(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Zir.In
return always_noreturn;
}
+fn zirBreakpoint(sema: *Sema, block: *Block, extended: Zir.Inst.Extended.InstData) CompileError!void {
+ const src = LazySrcLoc.nodeOffset(@bitCast(extended.operand));
+ if (block.is_comptime)
+ return sema.fail(block, src, "encountered @breakpoint at comptime", .{});
+ _ = try block.addNoOp(.breakpoint);
+}
+
fn zirLoop(sema: *Sema, parent_block: *Block, inst: Zir.Inst.Index) CompileError!Air.Inst.Ref {
const tracy = trace(@src());
defer tracy.end();
test/cases/compile_errors/@trap_comptime_call.zig
@@ -1,9 +0,0 @@
-export fn entry() void {
- comptime @trap();
-}
-
-// error
-// backend=stage2
-// target=native
-//
-// :2:14: error: encountered @trap at comptime
test/cases/compile_errors/panic_called_at_compile_time.zig
@@ -1,13 +0,0 @@
-export fn entry() void {
- comptime {
- @panic(
- "aoeu",
- );
- }
-}
-
-// error
-// backend=stage2
-// target=native
-//
-// :3:9: error: encountered @panic at comptime
test/cases/compile_errors/runtime-only_builtins_called_at_comptime.zig
@@ -0,0 +1,20 @@
+test "comptime @panic call" {
+ comptime @panic("amogus");
+}
+
+test "comptime @trap call" {
+ comptime @trap();
+}
+
+test "comptime @breakpoint call" {
+ comptime @breakpoint();
+}
+
+// error
+// backend=stage2
+// target=native
+// is_test=true
+//
+// :2:14: error: encountered @panic at comptime
+// :6:14: error: encountered @trap at comptime
+// :10:14: error: encountered @breakpoint at comptime