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:
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) {