diff options
| author | rgreenblatt <greenblattryan@gmail.com> | 2021-06-26 10:35:39 -0500 |
|---|---|---|
| committer | Veikka Tuominen <git@vexu.eu> | 2021-08-20 19:37:53 +0300 |
| commit | 2f1abd919a8465e515875cd08816778df795aabe (patch) | |
| tree | 4c8e605e1792dfed207954f43ecbe0ad1445647b | |
| parent | b2e970d157343919ea2be44b3ebe4c519324bd4e (diff) | |
| download | zig-2f1abd919a8465e515875cd08816778df795aabe.tar.gz zig-2f1abd919a8465e515875cd08816778df795aabe.zip | |
Fix issue where root.os.panic could return
| -rw-r--r-- | lib/std/builtin.zig | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/lib/std/builtin.zig b/lib/std/builtin.zig index 6643e07837..91b0adf0e4 100644 --- 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) { |
