|
//! 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-10-12 02:30:39 UTC. |