diff options
| author | bors <bors@rust-lang.org> | 2023-11-26 06:44:03 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2023-11-26 06:44:03 +0000 |
| commit | 9529a5d2655f6974c2ee16e91c5db548a3daea03 (patch) | |
| tree | 1275e675688466510f052288c394c735b5432659 /library/core/src/ptr | |
| parent | 5c97719393b093997a03d7bb5d8a01d712c66c0e (diff) | |
| parent | 2c03f21d1f28d0fd7ca0475be434b1f6a303c992 (diff) | |
Auto merge of #110303 - nbdd0121:master, r=Mark-Simulacrum
Add `debug_assert_nounwind` and convert `assert_unsafe_precondition` `assert_unsafe_precondition` checks non-CTFE-evaluable conditions in runtime and performs no-op in compile time, while many of its current usage can be checked during const eval.
Diffstat (limited to 'library/core/src/ptr')
| -rw-r--r-- | library/core/src/ptr/alignment.rs | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/library/core/src/ptr/alignment.rs b/library/core/src/ptr/alignment.rs index e578d2257f6..ce176e6fc18 100644 --- a/library/core/src/ptr/alignment.rs +++ b/library/core/src/ptr/alignment.rs @@ -1,5 +1,4 @@ use crate::convert::{TryFrom, TryInto}; -use crate::intrinsics::assert_unsafe_precondition; use crate::num::NonZeroUsize; use crate::{cmp, fmt, hash, mem, num}; @@ -77,13 +76,10 @@ impl Alignment { #[rustc_const_unstable(feature = "ptr_alignment_type", issue = "102070")] #[inline] pub const unsafe fn new_unchecked(align: usize) -> Self { - // SAFETY: Precondition passed to the caller. - unsafe { - assert_unsafe_precondition!( - "Alignment::new_unchecked requires a power of two", - (align: usize) => align.is_power_of_two() - ) - }; + crate::panic::debug_assert_nounwind!( + align.is_power_of_two(), + "Alignment::new_unchecked requires a power of two" + ); // SAFETY: By precondition, this must be a power of two, and // our variants encompass all possible powers of two. |
