|
//! This namespace is the default one used by the Zig compiler to emit various //! kinds of safety panics, due to the logic in `std.builtin.panic`. //! //! Since Zig does not have interfaces, this file serves as an example template //! for users to provide their own alternative panic handling. //! //! As an alternative, see `std.debug.FullPanic`. |
call()Prints the message to stderr without a newline and then traps.
Explicit calls to |
const std = @import("../std.zig"); |
sentinelMismatch() |
/// Prints the message to stderr without a newline and then traps. /// /// Explicit calls to `@panic` lower to calling this function. pub fn call(msg: []const u8, ra: ?usize) noreturn { @branchHint(.cold); _ = ra; std.debug.lockStdErr(); const stderr = std.io.getStdErr(); stderr.writeAll(msg) catch {}; @trap(); } |
unwrapError() |
pub fn sentinelMismatch(expected: anytype, found: @TypeOf(expected)) noreturn { _ = found; call("sentinel mismatch", null); } |
outOfBounds() |
pub fn unwrapError(err: anyerror) noreturn { _ = &err; call("attempt to unwrap error", null); } |
startGreaterThanEnd() |
pub fn outOfBounds(index: usize, len: usize) noreturn { _ = index; _ = len; call("index out of bounds", null); } |
inactiveUnionField() |
pub fn startGreaterThanEnd(start: usize, end: usize) noreturn { _ = start; _ = end; call("start index is larger than end index", null); } |
sliceCastLenRemainder() |
pub fn inactiveUnionField(active: anytype, accessed: @TypeOf(active)) noreturn { _ = accessed; call("access of inactive union field", null); } |
reachedUnreachable() |
pub fn sliceCastLenRemainder(src_len: usize) noreturn { _ = src_len; call("slice length does not divide exactly into destination elements", null); } |
unwrapNull() |
pub fn reachedUnreachable() noreturn { call("reached unreachable code", null); } |
castToNull() |
pub fn unwrapNull() noreturn { call("attempt to use null value", null); } |
incorrectAlignment() |
pub fn castToNull() noreturn { call("cast causes pointer to be null", null); } |
invalidErrorCode() |
pub fn incorrectAlignment() noreturn { call("incorrect alignment", null); } |
castTruncatedData() |
pub fn invalidErrorCode() noreturn { call("invalid error code", null); } |
negativeToUnsigned() |
pub fn castTruncatedData() noreturn { call("integer cast truncated bits", null); } |
integerOverflow() |
pub fn negativeToUnsigned() noreturn { call("attempt to cast negative value to unsigned integer", null); } |
shlOverflow() |
pub fn integerOverflow() noreturn { call("integer overflow", null); } |
shrOverflow() |
pub fn shlOverflow() noreturn { call("left shift overflowed bits", null); } |
divideByZero() |
pub fn shrOverflow() noreturn { call("right shift overflowed bits", null); } |
exactDivisionRemainder() |
pub fn divideByZero() noreturn { call("division by zero", null); } |
integerPartOutOfBounds() |
pub fn exactDivisionRemainder() noreturn { call("exact division produced remainder", null); } |
corruptSwitch() |
pub fn integerPartOutOfBounds() noreturn { call("integer part of floating point value out of bounds", null); } |
shiftRhsTooBig() |
pub fn corruptSwitch() noreturn { call("switch on corrupt value", null); } |
invalidEnumValue() |
pub fn shiftRhsTooBig() noreturn { call("shift amount is greater than the type size", null); } |
forLenMismatch() |
pub fn invalidEnumValue() noreturn { call("invalid enum value", null); } |
memcpyLenMismatch() |
pub fn forLenMismatch() noreturn { call("for loop over objects with non-equal lengths", null); } |
memcpyAlias() |
pub fn memcpyLenMismatch() noreturn { call("@memcpy arguments have non-equal lengths", null); } |
noreturnReturned() |
pub fn memcpyAlias() noreturn { call("@memcpy arguments alias", null); } pub fn noreturnReturned() noreturn { call("'noreturn' function returned", null); } |
Generated by zstd-live on 2025-08-12 12:37:57 UTC. |