zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit 2f1abd919a8465e515875cd08816778df795aabe (tree)
parent b2e970d157343919ea2be44b3ebe4c519324bd4e
Author: rgreenblatt <greenblattryan@gmail.com>
Date:   Sat, 26 Jun 2021 10:35:39 -0500

Fix issue where root.os.panic could return

Diffstat:
Mlib/std/builtin.zig | 11++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/lib/std/builtin.zig b/lib/std/builtin.zig @@ -671,7 +671,12 @@ pub const PanicFn = fn ([]const u8, ?*StackTrace) noreturn; /// This function is used by the Zig language code generation and /// therefore must be kept in sync with the compiler implementation. -pub const panic: PanicFn = if (@hasDecl(root, "panic")) root.panic else default_panic; +pub const panic: PanicFn = if (@hasDecl(root, "panic")) + root.panic +else if (@hasDecl(root, "os") and @hasDecl(root.os, "panic")) + root.os.panic +else + default_panic; /// This function is used by the Zig language code generation and /// therefore must be kept in sync with the compiler implementation. @@ -684,10 +689,6 @@ pub fn default_panic(msg: []const u8, error_return_trace: ?*StackTrace) noreturn @breakpoint(); } } - if (@hasDecl(root, "os") and @hasDecl(root.os, "panic")) { - root.os.panic(msg, error_return_trace); - unreachable; - } switch (os.tag) { .freestanding => { while (true) {