@@ -2389,7 +2389,7 @@ pub const fn bitreverse<T: Copy>(_x: T) -> T {
23892389/// large and difficult to optimize.
23902390///
23912391/// The stabilized version of this intrinsic is [`Ord::cmp`].
2392- #[ rustc_const_unstable( feature = "const_three_way_compare" , issue = "none" ) ]
2392+ #[ cfg_attr ( bootstrap , rustc_const_unstable( feature = "const_three_way_compare" , issue = "none" ) ) ]
23932393#[ rustc_intrinsic]
23942394#[ rustc_intrinsic_must_be_overridden]
23952395pub const fn three_way_compare < T : Copy > ( _lhs : T , _rhss : T ) -> crate :: cmp:: Ordering {
@@ -2457,7 +2457,7 @@ pub const fn mul_with_overflow<T: Copy>(_x: T, _y: T) -> (T, bool) {
24572457/// `x % y != 0` or `y == 0` or `x == T::MIN && y == -1`
24582458///
24592459/// This intrinsic does not have a stable counterpart.
2460- #[ rustc_const_unstable( feature = "const_exact_div" , issue = "none" ) ]
2460+ #[ cfg_attr ( bootstrap , rustc_const_unstable( feature = "const_exact_div" , issue = "none" ) ) ]
24612461#[ rustc_nounwind]
24622462#[ rustc_intrinsic]
24632463#[ rustc_intrinsic_must_be_overridden]
@@ -2784,7 +2784,7 @@ pub const unsafe fn ptr_offset_from<T>(_ptr: *const T, _base: *const T) -> isize
27842784}
27852785
27862786/// See documentation of `<*const T>::sub_ptr` for details.
2787- #[ rustc_const_unstable( feature = "const_ptr_sub_ptr" , issue = "95892" ) ]
2787+ #[ cfg_attr ( bootstrap , rustc_const_unstable( feature = "const_ptr_sub_ptr" , issue = "95892" ) ) ]
27882788#[ rustc_nounwind]
27892789#[ rustc_intrinsic]
27902790#[ rustc_intrinsic_must_be_overridden]
@@ -2796,8 +2796,7 @@ pub const unsafe fn ptr_offset_from_unsigned<T>(_ptr: *const T, _base: *const T)
27962796/// Returns `2` if the result is unknown.
27972797/// Returns `1` if the pointers are guaranteed equal
27982798/// Returns `0` if the pointers are guaranteed inequal
2799- #[ rustc_const_unstable( feature = "const_raw_ptr_comparison" , issue = "53020" ) ]
2800- #[ unstable( feature = "core_intrinsics" , issue = "none" ) ]
2799+ #[ cfg_attr( bootstrap, rustc_const_unstable( feature = "const_raw_ptr_comparison" , issue = "53020" ) ) ]
28012800#[ rustc_intrinsic]
28022801#[ rustc_nounwind]
28032802#[ rustc_do_not_const_check]
@@ -2830,7 +2829,7 @@ pub const fn ptr_guaranteed_cmp<T>(ptr: *const T, other: *const T) -> u8 {
28302829///
28312830/// (The implementation is allowed to branch on the results of comparisons,
28322831/// which is UB if any of their inputs are `undef`.)
2833- #[ rustc_const_unstable( feature = "const_intrinsic_raw_eq" , issue = "none" ) ]
2832+ #[ cfg_attr ( bootstrap , rustc_const_unstable( feature = "const_intrinsic_raw_eq" , issue = "none" ) ) ]
28342833#[ rustc_nounwind]
28352834#[ rustc_intrinsic]
28362835#[ rustc_intrinsic_must_be_overridden]
@@ -2852,7 +2851,10 @@ pub const unsafe fn raw_eq<T>(_a: &T, _b: &T) -> bool {
28522851/// that differs. That allows optimizations that can read in large chunks.
28532852///
28542853/// [valid]: crate::ptr#safety
2855- #[ rustc_const_unstable( feature = "const_intrinsic_compare_bytes" , issue = "none" ) ]
2854+ #[ cfg_attr(
2855+ bootstrap,
2856+ rustc_const_unstable( feature = "const_intrinsic_compare_bytes" , issue = "none" )
2857+ ) ]
28562858#[ rustc_nounwind]
28572859#[ rustc_intrinsic]
28582860#[ rustc_intrinsic_must_be_overridden]
@@ -2863,7 +2865,7 @@ pub const unsafe fn compare_bytes(_left: *const u8, _right: *const u8, _bytes: u
28632865/// See documentation of [`std::hint::black_box`] for details.
28642866///
28652867/// [`std::hint::black_box`]: crate::hint::black_box
2866- #[ rustc_const_unstable( feature = "const_black_box" , issue = "none" ) ]
2868+ #[ cfg_attr ( bootstrap , rustc_const_unstable( feature = "const_black_box" , issue = "none" ) ) ]
28672869#[ rustc_nounwind]
28682870#[ rustc_intrinsic]
28692871#[ rustc_intrinsic_must_be_overridden]
@@ -3036,7 +3038,7 @@ pub const fn is_val_statically_known<T: Copy>(_arg: T) -> bool {
30363038#[ rustc_nounwind]
30373039#[ inline]
30383040#[ rustc_intrinsic]
3039- // This has fallback `const fn` MIR, so shouldn't need stability, see #122652
3041+ // Const-unstable because `swap_nonoverlapping` is const-unstable.
30403042#[ rustc_const_unstable( feature = "const_typed_swap" , issue = "none" ) ]
30413043pub const unsafe fn typed_swap < T > ( x : * mut T , y : * mut T ) {
30423044 // SAFETY: The caller provided single non-overlapping items behind
@@ -3059,7 +3061,6 @@ pub const unsafe fn typed_swap<T>(x: *mut T, y: *mut T) {
30593061/// primarily used by [`ub_checks::assert_unsafe_precondition`].
30603062#[ cfg_attr( bootstrap, rustc_const_unstable( feature = "const_ub_checks" , issue = "none" ) ) ]
30613063#[ cfg_attr( not( bootstrap) , rustc_const_stable_intrinsic) ] // just for UB checks
3062- #[ unstable( feature = "core_intrinsics" , issue = "none" ) ]
30633064#[ inline( always) ]
30643065#[ rustc_intrinsic]
30653066pub const fn ub_checks ( ) -> bool {
@@ -3075,7 +3076,6 @@ pub const fn ub_checks() -> bool {
30753076/// - At compile time, a compile error occurs if this constraint is violated.
30763077/// - At runtime, it is not checked.
30773078#[ rustc_const_unstable( feature = "const_heap" , issue = "79597" ) ]
3078- #[ unstable( feature = "core_intrinsics" , issue = "none" ) ]
30793079#[ rustc_nounwind]
30803080#[ rustc_intrinsic]
30813081#[ miri:: intrinsic_fallback_is_spec]
@@ -3175,7 +3175,7 @@ pub const fn min_align_of<T>() -> usize {
31753175/// It's "tracking issue" is [#91971](https://github.com/rust-lang/rust/issues/91971).
31763176#[ rustc_nounwind]
31773177#[ unstable( feature = "core_intrinsics" , issue = "none" ) ]
3178- #[ rustc_const_unstable( feature = "const_pref_align_of" , issue = "91971" ) ]
3178+ #[ cfg_attr ( bootstrap , rustc_const_unstable( feature = "const_pref_align_of" , issue = "91971" ) ) ]
31793179#[ rustc_intrinsic]
31803180#[ rustc_intrinsic_must_be_overridden]
31813181pub const unsafe fn pref_align_of < T > ( ) -> usize {
@@ -3193,7 +3193,7 @@ pub const unsafe fn pref_align_of<T>() -> usize {
31933193/// The to-be-stabilized version of this intrinsic is [`crate::mem::variant_count`].
31943194#[ rustc_nounwind]
31953195#[ unstable( feature = "core_intrinsics" , issue = "none" ) ]
3196- #[ rustc_const_unstable( feature = "variant_count" , issue = "73662" ) ]
3196+ #[ cfg_attr ( bootstrap , rustc_const_unstable( feature = "variant_count" , issue = "73662" ) ) ]
31973197#[ rustc_intrinsic]
31983198#[ rustc_intrinsic_must_be_overridden]
31993199pub const fn variant_count < T > ( ) -> usize {
@@ -3209,7 +3209,7 @@ pub const fn variant_count<T>() -> usize {
32093209/// See [`crate::mem::size_of_val_raw`] for safety conditions.
32103210#[ rustc_nounwind]
32113211#[ unstable( feature = "core_intrinsics" , issue = "none" ) ]
3212- #[ rustc_const_unstable( feature = "const_size_of_val" , issue = "46571" ) ]
3212+ #[ cfg_attr ( bootstrap , rustc_const_unstable( feature = "const_size_of_val" , issue = "46571" ) ) ]
32133213#[ rustc_intrinsic]
32143214#[ rustc_intrinsic_must_be_overridden]
32153215pub const unsafe fn size_of_val < T : ?Sized > ( _ptr : * const T ) -> usize {
@@ -3225,7 +3225,7 @@ pub const unsafe fn size_of_val<T: ?Sized>(_ptr: *const T) -> usize {
32253225/// See [`crate::mem::align_of_val_raw`] for safety conditions.
32263226#[ rustc_nounwind]
32273227#[ unstable( feature = "core_intrinsics" , issue = "none" ) ]
3228- #[ rustc_const_unstable( feature = "const_align_of_val" , issue = "46571" ) ]
3228+ #[ cfg_attr ( bootstrap , rustc_const_unstable( feature = "const_align_of_val" , issue = "46571" ) ) ]
32293229#[ rustc_intrinsic]
32303230#[ rustc_intrinsic_must_be_overridden]
32313231pub const unsafe fn min_align_of_val < T : ?Sized > ( _ptr : * const T ) -> usize {
@@ -3242,7 +3242,7 @@ pub const unsafe fn min_align_of_val<T: ?Sized>(_ptr: *const T) -> usize {
32423242/// The stabilized version of this intrinsic is [`core::any::type_name`].
32433243#[ rustc_nounwind]
32443244#[ unstable( feature = "core_intrinsics" , issue = "none" ) ]
3245- #[ rustc_const_unstable( feature = "const_type_name" , issue = "63084" ) ]
3245+ #[ cfg_attr ( bootstrap , rustc_const_unstable( feature = "const_type_name" , issue = "63084" ) ) ]
32463246#[ rustc_intrinsic]
32473247#[ rustc_intrinsic_must_be_overridden]
32483248pub const fn type_name < T : ?Sized > ( ) -> & ' static str {
@@ -3261,7 +3261,7 @@ pub const fn type_name<T: ?Sized>() -> &'static str {
32613261/// The stabilized version of this intrinsic is [`core::any::TypeId::of`].
32623262#[ rustc_nounwind]
32633263#[ unstable( feature = "core_intrinsics" , issue = "none" ) ]
3264- #[ rustc_const_unstable( feature = "const_type_id" , issue = "77125" ) ]
3264+ #[ cfg_attr ( bootstrap , rustc_const_unstable( feature = "const_type_id" , issue = "77125" ) ) ]
32653265#[ rustc_intrinsic]
32663266#[ rustc_intrinsic_must_be_overridden]
32673267pub const fn type_id < T : ?Sized + ' static > ( ) -> u128 {
@@ -3636,8 +3636,7 @@ pub const unsafe fn write_bytes<T>(dst: *mut T, val: u8, count: usize) {
36363636/// The stabilized version of this intrinsic is
36373637/// [`f16::min`]
36383638#[ rustc_nounwind]
3639- // #[rustc_const_unstable(feature = "const_float_methods", issue = "130843")]
3640- #[ rustc_const_unstable( feature = "f16" , issue = "116909" ) ]
3639+ #[ cfg_attr( bootstrap, rustc_const_unstable( feature = "f16" , issue = "116909" ) ) ]
36413640#[ rustc_intrinsic]
36423641#[ rustc_intrinsic_must_be_overridden]
36433642pub const fn minnumf16 ( _x : f16 , _y : f16 ) -> f16 {
@@ -3654,7 +3653,7 @@ pub const fn minnumf16(_x: f16, _y: f16) -> f16 {
36543653/// The stabilized version of this intrinsic is
36553654/// [`f32::min`]
36563655#[ rustc_nounwind]
3657- #[ rustc_const_unstable( feature = "const_float_methods" , issue = "130843" ) ]
3656+ #[ cfg_attr ( bootstrap , rustc_const_unstable( feature = "const_float_methods" , issue = "130843" ) ) ]
36583657#[ rustc_intrinsic]
36593658#[ rustc_intrinsic_must_be_overridden]
36603659pub const fn minnumf32 ( _x : f32 , _y : f32 ) -> f32 {
@@ -3671,7 +3670,7 @@ pub const fn minnumf32(_x: f32, _y: f32) -> f32 {
36713670/// The stabilized version of this intrinsic is
36723671/// [`f64::min`]
36733672#[ rustc_nounwind]
3674- #[ rustc_const_unstable( feature = "const_float_methods" , issue = "130843" ) ]
3673+ #[ cfg_attr ( bootstrap , rustc_const_unstable( feature = "const_float_methods" , issue = "130843" ) ) ]
36753674#[ rustc_intrinsic]
36763675#[ rustc_intrinsic_must_be_overridden]
36773676pub const fn minnumf64 ( _x : f64 , _y : f64 ) -> f64 {
@@ -3688,8 +3687,7 @@ pub const fn minnumf64(_x: f64, _y: f64) -> f64 {
36883687/// The stabilized version of this intrinsic is
36893688/// [`f128::min`]
36903689#[ rustc_nounwind]
3691- // #[rustc_const_unstable(feature = "const_float_methods", issue = "130843")]
3692- #[ rustc_const_unstable( feature = "f128" , issue = "116909" ) ]
3690+ #[ cfg_attr( bootstrap, rustc_const_unstable( feature = "f128" , issue = "116909" ) ) ]
36933691#[ rustc_intrinsic]
36943692#[ rustc_intrinsic_must_be_overridden]
36953693pub const fn minnumf128 ( _x : f128 , _y : f128 ) -> f128 {
@@ -3706,8 +3704,7 @@ pub const fn minnumf128(_x: f128, _y: f128) -> f128 {
37063704/// The stabilized version of this intrinsic is
37073705/// [`f16::max`]
37083706#[ rustc_nounwind]
3709- // #[rustc_const_unstable(feature = "const_float_methods", issue = "130843")]
3710- #[ rustc_const_unstable( feature = "f16" , issue = "116909" ) ]
3707+ #[ cfg_attr( bootstrap, rustc_const_unstable( feature = "f16" , issue = "116909" ) ) ]
37113708#[ rustc_intrinsic]
37123709#[ rustc_intrinsic_must_be_overridden]
37133710pub const fn maxnumf16 ( _x : f16 , _y : f16 ) -> f16 {
@@ -3724,7 +3721,7 @@ pub const fn maxnumf16(_x: f16, _y: f16) -> f16 {
37243721/// The stabilized version of this intrinsic is
37253722/// [`f32::max`]
37263723#[ rustc_nounwind]
3727- #[ rustc_const_unstable( feature = "const_float_methods" , issue = "130843" ) ]
3724+ #[ cfg_attr ( bootstrap , rustc_const_unstable( feature = "const_float_methods" , issue = "130843" ) ) ]
37283725#[ rustc_intrinsic]
37293726#[ rustc_intrinsic_must_be_overridden]
37303727pub const fn maxnumf32 ( _x : f32 , _y : f32 ) -> f32 {
@@ -3741,7 +3738,7 @@ pub const fn maxnumf32(_x: f32, _y: f32) -> f32 {
37413738/// The stabilized version of this intrinsic is
37423739/// [`f64::max`]
37433740#[ rustc_nounwind]
3744- #[ rustc_const_unstable( feature = "const_float_methods" , issue = "130843" ) ]
3741+ #[ cfg_attr ( bootstrap , rustc_const_unstable( feature = "const_float_methods" , issue = "130843" ) ) ]
37453742#[ rustc_intrinsic]
37463743#[ rustc_intrinsic_must_be_overridden]
37473744pub const fn maxnumf64 ( _x : f64 , _y : f64 ) -> f64 {
@@ -3758,8 +3755,7 @@ pub const fn maxnumf64(_x: f64, _y: f64) -> f64 {
37583755/// The stabilized version of this intrinsic is
37593756/// [`f128::max`]
37603757#[ rustc_nounwind]
3761- // #[rustc_const_unstable(feature = "const_float_methods", issue = "130843")]
3762- #[ rustc_const_unstable( feature = "f128" , issue = "116909" ) ]
3758+ #[ cfg_attr( bootstrap, rustc_const_unstable( feature = "f128" , issue = "116909" ) ) ]
37633759#[ rustc_intrinsic]
37643760#[ rustc_intrinsic_must_be_overridden]
37653761pub const fn maxnumf128 ( _x : f128 , _y : f128 ) -> f128 {
@@ -3771,8 +3767,7 @@ pub const fn maxnumf128(_x: f128, _y: f128) -> f128 {
37713767/// The stabilized version of this intrinsic is
37723768/// [`f16::abs`](../../std/primitive.f16.html#method.abs)
37733769#[ rustc_nounwind]
3774- // #[rustc_const_unstable(feature = "const_float_methods", issue = "130843")]
3775- #[ rustc_const_unstable( feature = "f16" , issue = "116909" ) ]
3770+ #[ cfg_attr( bootstrap, rustc_const_unstable( feature = "f16" , issue = "116909" ) ) ]
37763771#[ rustc_intrinsic]
37773772#[ rustc_intrinsic_must_be_overridden]
37783773pub const unsafe fn fabsf16 ( _x : f16 ) -> f16 {
@@ -3784,7 +3779,7 @@ pub const unsafe fn fabsf16(_x: f16) -> f16 {
37843779/// The stabilized version of this intrinsic is
37853780/// [`f32::abs`](../../std/primitive.f32.html#method.abs)
37863781#[ rustc_nounwind]
3787- #[ rustc_const_unstable( feature = "const_float_methods" , issue = "130843" ) ]
3782+ #[ cfg_attr ( bootstrap , rustc_const_unstable( feature = "const_float_methods" , issue = "130843" ) ) ]
37883783#[ rustc_intrinsic]
37893784#[ rustc_intrinsic_must_be_overridden]
37903785pub const unsafe fn fabsf32 ( _x : f32 ) -> f32 {
@@ -3796,7 +3791,7 @@ pub const unsafe fn fabsf32(_x: f32) -> f32 {
37963791/// The stabilized version of this intrinsic is
37973792/// [`f64::abs`](../../std/primitive.f64.html#method.abs)
37983793#[ rustc_nounwind]
3799- #[ rustc_const_unstable( feature = "const_float_methods" , issue = "130843" ) ]
3794+ #[ cfg_attr ( bootstrap , rustc_const_unstable( feature = "const_float_methods" , issue = "130843" ) ) ]
38003795#[ rustc_intrinsic]
38013796#[ rustc_intrinsic_must_be_overridden]
38023797pub const unsafe fn fabsf64 ( _x : f64 ) -> f64 {
@@ -3808,8 +3803,7 @@ pub const unsafe fn fabsf64(_x: f64) -> f64 {
38083803/// The stabilized version of this intrinsic is
38093804/// [`f128::abs`](../../std/primitive.f128.html#method.abs)
38103805#[ rustc_nounwind]
3811- // #[rustc_const_unstable(feature = "const_float_methods", issue = "130843")]
3812- #[ rustc_const_unstable( feature = "f128" , issue = "116909" ) ]
3806+ #[ cfg_attr( bootstrap, rustc_const_unstable( feature = "f128" , issue = "116909" ) ) ]
38133807#[ rustc_intrinsic]
38143808#[ rustc_intrinsic_must_be_overridden]
38153809pub const unsafe fn fabsf128 ( _x : f128 ) -> f128 {
@@ -3821,8 +3815,7 @@ pub const unsafe fn fabsf128(_x: f128) -> f128 {
38213815/// The stabilized version of this intrinsic is
38223816/// [`f16::copysign`](../../std/primitive.f16.html#method.copysign)
38233817#[ rustc_nounwind]
3824- // #[rustc_const_unstable(feature = "const_float_methods", issue = "130843")]
3825- #[ rustc_const_unstable( feature = "f16" , issue = "116909" ) ]
3818+ #[ cfg_attr( bootstrap, rustc_const_unstable( feature = "f16" , issue = "116909" ) ) ]
38263819#[ rustc_intrinsic]
38273820#[ rustc_intrinsic_must_be_overridden]
38283821pub const unsafe fn copysignf16 ( _x : f16 , _y : f16 ) -> f16 {
@@ -3834,7 +3827,7 @@ pub const unsafe fn copysignf16(_x: f16, _y: f16) -> f16 {
38343827/// The stabilized version of this intrinsic is
38353828/// [`f32::copysign`](../../std/primitive.f32.html#method.copysign)
38363829#[ rustc_nounwind]
3837- #[ rustc_const_unstable( feature = "const_float_methods" , issue = "130843" ) ]
3830+ #[ cfg_attr ( bootstrap , rustc_const_unstable( feature = "const_float_methods" , issue = "130843" ) ) ]
38383831#[ rustc_intrinsic]
38393832#[ rustc_intrinsic_must_be_overridden]
38403833pub const unsafe fn copysignf32 ( _x : f32 , _y : f32 ) -> f32 {
@@ -3845,7 +3838,7 @@ pub const unsafe fn copysignf32(_x: f32, _y: f32) -> f32 {
38453838/// The stabilized version of this intrinsic is
38463839/// [`f64::copysign`](../../std/primitive.f64.html#method.copysign)
38473840#[ rustc_nounwind]
3848- #[ rustc_const_unstable( feature = "const_float_methods" , issue = "130843" ) ]
3841+ #[ cfg_attr ( bootstrap , rustc_const_unstable( feature = "const_float_methods" , issue = "130843" ) ) ]
38493842#[ rustc_intrinsic]
38503843#[ rustc_intrinsic_must_be_overridden]
38513844pub const unsafe fn copysignf64 ( _x : f64 , _y : f64 ) -> f64 {
@@ -3857,8 +3850,7 @@ pub const unsafe fn copysignf64(_x: f64, _y: f64) -> f64 {
38573850/// The stabilized version of this intrinsic is
38583851/// [`f128::copysign`](../../std/primitive.f128.html#method.copysign)
38593852#[ rustc_nounwind]
3860- // #[rustc_const_unstable(feature = "const_float_methods", issue = "130843")]
3861- #[ rustc_const_unstable( feature = "f128" , issue = "116909" ) ]
3853+ #[ cfg_attr( bootstrap, rustc_const_unstable( feature = "f128" , issue = "116909" ) ) ]
38623854#[ rustc_intrinsic]
38633855#[ rustc_intrinsic_must_be_overridden]
38643856pub const unsafe fn copysignf128 ( _x : f128 , _y : f128 ) -> f128 {
0 commit comments