Check in panic_utils.zig

This commit is contained in:
Ayaz Hafiz 2022-11-22 14:18:30 -06:00
parent 18713e2209
commit d7db10d7b5
No known key found for this signature in database
GPG key ID: 0E2A37416A25EF58

View file

@ -0,0 +1,16 @@
const std = @import("std");
const RocStr = @import("str.zig").RocStr;
const always_inline = std.builtin.CallOptions.Modifier.always_inline;
// Signals to the host that the program has panicked
extern fn roc_panic(msg: *const RocStr, tag_id: u32) callconv(.C) void;
pub fn panic_help(msg: []const u8, tag_id: u32) void {
var str = RocStr.init(msg.ptr, msg.len);
roc_panic(&str, tag_id);
}
// must export this explicitly because right now it is not used from zig code
pub fn panic(msg: *const RocStr, alignment: u32) callconv(.C) void {
return @call(.{ .modifier = always_inline }, roc_panic, .{ msg, alignment });
}