authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2023-03-04 14:41:17-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2023-03-05 17:29:28-07:00
log8558983c865b6d7ec8a692bd1027443109058cf6
tree755f438b1bb25a03f10469e5b87c30718aa17eed
parentcdb9cc8f6bda4b4faa270278e3b67c4ef9246a84

std.os.abort: take advantage of `@trap`


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

lib/std/os.zig+3-13
...@@ -575,22 +575,12 @@ pub fn abort() noreturn {...@@ -575,22 +575,12 @@ pub fn abort() noreturn {
575 raise(SIG.KILL) catch {};575 raise(SIG.KILL) catch {};
576 exit(127); // Pid 1 might not be signalled in some containers.576 exit(127); // Pid 1 might not be signalled in some containers.
577 }577 }
578 if (builtin.os.tag == .uefi) {578 switch (builtin.os.tag) {
579 exit(0); // TODO choose appropriate exit code579 .uefi, .wasi, .cuda => @trap(),
580 }580 else => system.abort(),
581 if (builtin.os.tag == .wasi) {
582 exit(1);
583 }
584 if (builtin.os.tag == .cuda) {
585 // TODO: introduce `@trap` instead of abusing https://github.com/ziglang/zig/issues/2291
586 @"llvm.trap"();
587 }581 }
588
589 system.abort();
590}582}
591583
592extern fn @"llvm.trap"() noreturn;
593
594pub const RaiseError = UnexpectedError;584pub const RaiseError = UnexpectedError;
595585
596pub fn raise(sig: u8) RaiseError!void {586pub fn raise(sig: u8) RaiseError!void {