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 };