Commit db8c074476

Andrew Kelley <andrew@ziglang.org>
2024-09-27 01:46:02
fix still calling std.builtin.panic sometimes
1 parent 1b491e6
Changed files (3)
lib/std/builtin.zig
@@ -770,7 +770,7 @@ pub const panic: PanicFn = if (@hasDecl(root, "panic"))
 else if (@hasDecl(root, "os") and @hasDecl(root.os, "panic"))
     root.os.panic
 else
-    std.debug.defaultPanic;
+    Panic.call;
 
 /// This namespace is used by the Zig compiler to emit various kinds of safety
 /// panics. These can be overridden by making a public `Panic` namespace in the
src/Sema.zig
@@ -27639,7 +27639,7 @@ fn prepareSimplePanic(sema: *Sema, block: *Block, src: LazySrcLoc) !void {
     const zcu = pt.zcu;
 
     if (zcu.panic_func_index == .none) {
-        const fn_ref = try sema.analyzeNavVal(block, src, try pt.getBuiltinNav("panic"));
+        const fn_ref = try sema.getBuiltinInnerAsInst(block, src, "Panic", "call");
         const fn_val = try sema.resolveConstValue(block, src, fn_ref, .{
             .needed_comptime_reason = "panic handler must be comptime-known",
         });
src/Zcu.zig
@@ -2918,8 +2918,9 @@ pub fn addGlobalAssembly(zcu: *Zcu, cau: InternPool.Cau.Index, source: []const u
 }
 
 pub const Feature = enum {
-    /// When this feature is enabled, Sema will emit calls to `std.builtin.panic`
-    /// for things like safety checks and unreachables. Otherwise traps will be emitted.
+    /// When this feature is enabled, Sema will emit calls to
+    /// `std.builtin.Panic` functions for things like safety checks and
+    /// unreachables. Otherwise traps will be emitted.
     panic_fn,
     /// When this feature is enabled, Sema will insert tracer functions for gathering a stack
     /// trace for error returns.