Commit ec934c6d32

Bogdan Romanyuk <wrongnull@gmail.com>
2023-11-10 12:18:43
disallow calling @trap at comptime
1 parent 03adafd
Changed files (2)
src
test
cases
src/Sema.zig
@@ -5620,6 +5620,8 @@ fn zirTrap(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Zir.In
     const src_node = sema.code.instructions.items(.data)[@intFromEnum(inst)].node;
     const src = LazySrcLoc.nodeOffset(src_node);
     sema.src = src;
+    if (block.is_comptime)
+        return sema.fail(block, src, "encountered @trap at comptime", .{});
     _ = try block.addNoOp(.trap);
     return always_noreturn;
 }
test/cases/compile_errors/@trap_comptime_call.zig
@@ -0,0 +1,9 @@
+pub fn entry() void {
+    comptime @trap();
+}
+
+// error
+// backend=stage2
+// target=native
+//
+// :2:14: error: encountered @trap at comptime