authorgravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2023-04-30 21:13:29-04:00
committergravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2023-05-01 19:22:52-04:00
log0489a63a432b31ce0fd9d6ec6c8e2fb72a920573
treebd0436c79234fa936eb1b2f60edfa8f26433bd90
parent19bd7d12b0186f0e45c77c564251d6355966b2ef

Sema: use trap for backends that don't support panic_fn

Debuggers also catch trap, but the code is not allowed to continue.

1 files changed, 3 insertions(+), 6 deletions(-)

src/Sema.zig+3-6
......@@ -23287,8 +23287,7 @@ fn panicWithMsg(
2328723287 const arena = sema.arena;
2328823288
2328923289 if (!mod.backendSupportsFeature(.panic_fn)) {
23290 _ = try block.addNoOp(.breakpoint);
23291 _ = try block.addNoOp(.unreach);
23290 _ = try block.addNoOp(.trap);
2329223291 return;
2329323292 }
2329423293 const panic_fn = try sema.getBuiltin("panic");
......@@ -23336,8 +23335,7 @@ fn panicUnwrapError(
2333623335
2333723336 {
2333823337 if (!sema.mod.backendSupportsFeature(.panic_unwrap_error)) {
23339 _ = try fail_block.addNoOp(.breakpoint);
23340 _ = try fail_block.addNoOp(.unreach);
23338 _ = try fail_block.addNoOp(.trap);
2334123339 } else {
2334223340 const panic_fn = try sema.getBuiltin("panicUnwrapError");
2334323341 const err = try fail_block.addTyOp(unwrap_err_tag, Type.anyerror, operand);
......@@ -23462,8 +23460,7 @@ fn safetyCheckFormatted(
2346223460 defer fail_block.instructions.deinit(gpa);
2346323461
2346423462 if (!sema.mod.backendSupportsFeature(.safety_check_formatted)) {
23465 _ = try fail_block.addNoOp(.breakpoint);
23466 _ = try fail_block.addNoOp(.unreach);
23463 _ = try fail_block.addNoOp(.trap);
2346723464 } else {
2346823465 const panic_fn = try sema.getBuiltin(func);
2346923466 _ = try sema.analyzeCall(&fail_block, panic_fn, sema.src, sema.src, .auto, false, args, null);