lib/sys/src/panic.zig
daab053ee43316e1809a84551d573ddd1e5bf3d2
1 const capabilities = @import("capabilities.zig");
2
3 pub const required_capabilities = capabilities.pure();
4
5 pub const no_libc = struct {
6 pub fn call(msg: []const u8, ra: ?usize) noreturn {
7 _ = msg;
8 _ = ra;
9 @trap();
10 }
11
12 pub fn sentinelMismatch(expected: anytype, found: @TypeOf(expected)) noreturn {
13 _ = found;
14 call("", null);
15 }
16
17 pub fn unwrapError(err: anyerror) noreturn {
18 _ = @errorName(err);
19 call("", null);
20 }
21
22 pub fn outOfBounds(index: usize, len: usize) noreturn {
23 _ = index;
24 _ = len;
25 call("", null);
26 }
27
28 pub fn startGreaterThanEnd(start: usize, end: usize) noreturn {
29 _ = start;
30 _ = end;
31 call("", null);
32 }
33
34 pub fn inactiveUnionField(active: anytype, accessed: @TypeOf(active)) noreturn {
35 _ = accessed;
36 call("", null);
37 }
38
39 pub fn sliceCastLenRemainder(src_len: usize) noreturn {
40 _ = src_len;
41 call("", null);
42 }
43
44 pub fn reachedUnreachable() noreturn {
45 call("", null);
46 }
47
48 pub fn unwrapNull() noreturn {
49 call("", null);
50 }
51
52 pub fn castToNull() noreturn {
53 call("", null);
54 }
55
56 pub fn incorrectAlignment() noreturn {
57 call("", null);
58 }
59
60 pub fn invalidErrorCode() noreturn {
61 call("", null);
62 }
63
64 pub fn integerOutOfBounds() noreturn {
65 call("", null);
66 }
67
68 pub fn integerOverflow() noreturn {
69 call("", null);
70 }
71
72 pub fn shlOverflow() noreturn {
73 call("", null);
74 }
75
76 pub fn shrOverflow() noreturn {
77 call("", null);
78 }
79
80 pub fn divideByZero() noreturn {
81 call("", null);
82 }
83
84 pub fn exactDivisionRemainder() noreturn {
85 call("", null);
86 }
87
88 pub fn integerPartOutOfBounds() noreturn {
89 call("", null);
90 }
91
92 pub fn corruptSwitch() noreturn {
93 call("", null);
94 }
95
96 pub fn shiftRhsTooBig() noreturn {
97 call("", null);
98 }
99
100 pub fn invalidEnumValue() noreturn {
101 call("", null);
102 }
103
104 pub fn forLenMismatch() noreturn {
105 call("", null);
106 }
107
108 pub fn copyLenMismatch() noreturn {
109 call("", null);
110 }
111
112 pub fn memcpyAlias() noreturn {
113 call("", null);
114 }
115
116 pub fn noreturnReturned() noreturn {
117 call("", null);
118 }
119 };