commit 0489a63a432b31ce0fd9d6ec6c8e2fb72a920573 (tree)
parent 19bd7d12b0186f0e45c77c564251d6355966b2ef
Author: Jacob Young <jacobly0@users.noreply.github.com>
Date: Sun, 30 Apr 2023 21:13:29 -0400
Sema: use trap for backends that don't support panic_fn
Debuggers also catch trap, but the code is not allowed to continue.
Diffstat:
1 file changed, 3 insertions(+), 6 deletions(-)
diff --git a/src/Sema.zig b/src/Sema.zig
@@ -23287,8 +23287,7 @@ fn panicWithMsg(
const arena = sema.arena;
if (!mod.backendSupportsFeature(.panic_fn)) {
- _ = try block.addNoOp(.breakpoint);
- _ = try block.addNoOp(.unreach);
+ _ = try block.addNoOp(.trap);
return;
}
const panic_fn = try sema.getBuiltin("panic");
@@ -23336,8 +23335,7 @@ fn panicUnwrapError(
{
if (!sema.mod.backendSupportsFeature(.panic_unwrap_error)) {
- _ = try fail_block.addNoOp(.breakpoint);
- _ = try fail_block.addNoOp(.unreach);
+ _ = try fail_block.addNoOp(.trap);
} else {
const panic_fn = try sema.getBuiltin("panicUnwrapError");
const err = try fail_block.addTyOp(unwrap_err_tag, Type.anyerror, operand);
@@ -23462,8 +23460,7 @@ fn safetyCheckFormatted(
defer fail_block.instructions.deinit(gpa);
if (!sema.mod.backendSupportsFeature(.safety_check_formatted)) {
- _ = try fail_block.addNoOp(.breakpoint);
- _ = try fail_block.addNoOp(.unreach);
+ _ = try fail_block.addNoOp(.trap);
} else {
const panic_fn = try sema.getBuiltin(func);
_ = try sema.analyzeCall(&fail_block, panic_fn, sema.src, sema.src, .auto, false, args, null);