cfg out checks in add and sub but not offset

...because the checks in offset found bugs in a crater run.
This commit is contained in:
Ben Kimock 2024-10-06 23:36:22 -04:00
parent 6d246e47fb
commit 9d5c961fa4
2 changed files with 8 additions and 0 deletions

View File

@ -887,6 +887,7 @@ pub const fn guaranteed_ne(self, other: *const T) -> Option<bool>
where
T: Sized,
{
#[cfg(debug_assertions)]
#[inline]
const fn runtime_add_nowrap(this: *const (), count: usize, size: usize) -> bool {
#[inline]
@ -905,6 +906,7 @@ const fn comptime(_: *const (), _: usize, _: usize) -> bool {
intrinsics::const_eval_select((this, count, size), comptime, runtime)
}
#[cfg(debug_assertions)] // Expensive, and doesn't catch much in the wild.
ub_checks::assert_unsafe_precondition!(
check_language_ub,
"ptr::add requires that the address calculation does not overflow",
@ -993,6 +995,7 @@ const fn comptime(_: *const (), _: usize, _: usize) -> bool {
where
T: Sized,
{
#[cfg(debug_assertions)]
#[inline]
const fn runtime_sub_nowrap(this: *const (), count: usize, size: usize) -> bool {
#[inline]
@ -1010,6 +1013,7 @@ const fn comptime(_: *const (), _: usize, _: usize) -> bool {
intrinsics::const_eval_select((this, count, size), comptime, runtime)
}
#[cfg(debug_assertions)] // Expensive, and doesn't catch much in the wild.
ub_checks::assert_unsafe_precondition!(
check_language_ub,
"ptr::sub requires that the address calculation does not overflow",

View File

@ -971,6 +971,7 @@ pub const fn guaranteed_ne(self, other: *mut T) -> Option<bool>
where
T: Sized,
{
#[cfg(debug_assertions)]
#[inline]
const fn runtime_add_nowrap(this: *const (), count: usize, size: usize) -> bool {
#[inline]
@ -989,6 +990,7 @@ const fn comptime(_: *const (), _: usize, _: usize) -> bool {
intrinsics::const_eval_select((this, count, size), comptime, runtime)
}
#[cfg(debug_assertions)] // Expensive, and doesn't catch much in the wild.
ub_checks::assert_unsafe_precondition!(
check_language_ub,
"ptr::add requires that the address calculation does not overflow",
@ -1077,6 +1079,7 @@ const fn comptime(_: *const (), _: usize, _: usize) -> bool {
where
T: Sized,
{
#[cfg(debug_assertions)]
#[inline]
const fn runtime_sub_nowrap(this: *const (), count: usize, size: usize) -> bool {
#[inline]
@ -1094,6 +1097,7 @@ const fn comptime(_: *const (), _: usize, _: usize) -> bool {
intrinsics::const_eval_select((this, count, size), comptime, runtime)
}
#[cfg(debug_assertions)] // Expensive, and doesn't catch much in the wild.
ub_checks::assert_unsafe_precondition!(
check_language_ub,
"ptr::sub requires that the address calculation does not overflow",