diff --git a/lib/std/builtin.zig b/lib/std/builtin.zig index 87e8e90df825b9f8d47aa2228e952588db7e52fc..c772d8e6f95003ed0b24959d2e4345a49d40e904 100644 --- a/lib/std/builtin.zig +++ b/lib/std/builtin.zig @@ -833,6 +833,7 @@ pub fn default_panic(msg: []const u8, error_return_trace: ?*StackTrace, ret_addr // Didn't have boot_services, just fallback to whatever. std.os.abort(); }, + .cuda => std.os.abort(), else => { const first_trace_addr = ret_addr orelse @returnAddress(); std.debug.panicImpl(error_return_trace, first_trace_addr, msg); diff --git a/lib/std/os.zig b/lib/std/os.zig index 9270a52adba1818567b5226ff4262587e30f9314..ba8f523fafdc63206e6c614f71845a2a93187525 100644 --- a/lib/std/os.zig +++ b/lib/std/os.zig @@ -500,10 +500,15 @@ pub fn abort() noreturn { @breakpoint(); exit(1); } + if (builtin.os.tag == .cuda) { + @"llvm.trap"(); + } system.abort(); } +extern fn @"llvm.trap"() noreturn; + pub const RaiseError = UnexpectedError; pub fn raise(sig: u8) RaiseError!void {