diff --git a/src/Sema.zig b/src/Sema.zig index 795f0c43fe..b7510cea54 100644 --- a/src/Sema.zig +++ b/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; } diff --git a/test/cases/compile_errors/@trap_comptime_call.zig b/test/cases/compile_errors/@trap_comptime_call.zig new file mode 100644 index 0000000000..4dabcfea83 --- /dev/null +++ b/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