From 24c749473a9e2eaeb1de804ec7567a4a933e5993 Mon Sep 17 00:00:00 2001 From: Guillaume Wenzek Date: Fri, 7 Oct 2022 14:31:15 +0200 Subject: [PATCH] implement os.abort and panic for cuda --- lib/std/builtin.zig | 1 + lib/std/os.zig | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/lib/std/builtin.zig b/lib/std/builtin.zig index 87e8e90df8..c772d8e6f9 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 9270a52adb..ba8f523faf 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 {