@@ -1951,8 +1951,7 @@ macro_rules! if_not_8_bit {
19511951    ( $_: ident,  $( $tt: tt) * )  => {  $( $tt) *  } ; 
19521952} 
19531953
1954- #[ cfg_attr( not( bootstrap) ,  cfg( target_has_atomic_load_store) ) ]  
1955- #[ cfg_attr( bootstrap,  cfg( target_has_atomic_load_store = "8" ) ) ]  
1954+ #[ cfg( target_has_atomic_load_store) ]  
19561955macro_rules!  atomic_int { 
19571956    ( $cfg_cas: meta, 
19581957     $cfg_align: meta, 
@@ -3125,8 +3124,7 @@ atomic_int_ptr_sized! {
31253124} 
31263125
31273126#[ inline]  
3128- #[ cfg_attr( not( bootstrap) ,  cfg( target_has_atomic) ) ]  
3129- #[ cfg_attr( bootstrap,  cfg( target_has_atomic = "8" ) ) ]  
3127+ #[ cfg( target_has_atomic) ]  
31303128fn  strongest_failure_ordering ( order :  Ordering )  -> Ordering  { 
31313129    match  order { 
31323130        Release  => Relaxed , 
@@ -3168,8 +3166,7 @@ unsafe fn atomic_load<T: Copy>(dst: *const T, order: Ordering) -> T {
31683166} 
31693167
31703168#[ inline]  
3171- #[ cfg_attr( not( bootstrap) ,  cfg( target_has_atomic) ) ]  
3172- #[ cfg_attr( bootstrap,  cfg( target_has_atomic = "8" ) ) ]  
3169+ #[ cfg( target_has_atomic) ]  
31733170#[ cfg_attr( miri,  track_caller) ]   // even without panics, this helps for Miri backtraces 
31743171unsafe  fn  atomic_swap < T :  Copy > ( dst :  * mut  T ,  val :  T ,  order :  Ordering )  -> T  { 
31753172    // SAFETY: the caller must uphold the safety contract for `atomic_swap`. 
@@ -3186,8 +3183,7 @@ unsafe fn atomic_swap<T: Copy>(dst: *mut T, val: T, order: Ordering) -> T {
31863183
31873184/// Returns the previous value (like __sync_fetch_and_add). 
31883185#[ inline]  
3189- #[ cfg_attr( not( bootstrap) ,  cfg( target_has_atomic) ) ]  
3190- #[ cfg_attr( bootstrap,  cfg( target_has_atomic = "8" ) ) ]  
3186+ #[ cfg( target_has_atomic) ]  
31913187#[ cfg_attr( miri,  track_caller) ]   // even without panics, this helps for Miri backtraces 
31923188unsafe  fn  atomic_add < T :  Copy > ( dst :  * mut  T ,  val :  T ,  order :  Ordering )  -> T  { 
31933189    // SAFETY: the caller must uphold the safety contract for `atomic_add`. 
@@ -3204,8 +3200,7 @@ unsafe fn atomic_add<T: Copy>(dst: *mut T, val: T, order: Ordering) -> T {
32043200
32053201/// Returns the previous value (like __sync_fetch_and_sub). 
32063202#[ inline]  
3207- #[ cfg_attr( not( bootstrap) ,  cfg( target_has_atomic) ) ]  
3208- #[ cfg_attr( bootstrap,  cfg( target_has_atomic = "8" ) ) ]  
3203+ #[ cfg( target_has_atomic) ]  
32093204#[ cfg_attr( miri,  track_caller) ]   // even without panics, this helps for Miri backtraces 
32103205unsafe  fn  atomic_sub < T :  Copy > ( dst :  * mut  T ,  val :  T ,  order :  Ordering )  -> T  { 
32113206    // SAFETY: the caller must uphold the safety contract for `atomic_sub`. 
@@ -3221,8 +3216,7 @@ unsafe fn atomic_sub<T: Copy>(dst: *mut T, val: T, order: Ordering) -> T {
32213216} 
32223217
32233218#[ inline]  
3224- #[ cfg_attr( not( bootstrap) ,  cfg( target_has_atomic) ) ]  
3225- #[ cfg_attr( bootstrap,  cfg( target_has_atomic = "8" ) ) ]  
3219+ #[ cfg( target_has_atomic) ]  
32263220#[ cfg_attr( miri,  track_caller) ]   // even without panics, this helps for Miri backtraces 
32273221unsafe  fn  atomic_compare_exchange < T :  Copy > ( 
32283222    dst :  * mut  T , 
@@ -3257,8 +3251,7 @@ unsafe fn atomic_compare_exchange<T: Copy>(
32573251} 
32583252
32593253#[ inline]  
3260- #[ cfg_attr( not( bootstrap) ,  cfg( target_has_atomic) ) ]  
3261- #[ cfg_attr( bootstrap,  cfg( target_has_atomic = "8" ) ) ]  
3254+ #[ cfg( target_has_atomic) ]  
32623255#[ cfg_attr( miri,  track_caller) ]   // even without panics, this helps for Miri backtraces 
32633256unsafe  fn  atomic_compare_exchange_weak < T :  Copy > ( 
32643257    dst :  * mut  T , 
@@ -3293,8 +3286,7 @@ unsafe fn atomic_compare_exchange_weak<T: Copy>(
32933286} 
32943287
32953288#[ inline]  
3296- #[ cfg_attr( not( bootstrap) ,  cfg( target_has_atomic) ) ]  
3297- #[ cfg_attr( bootstrap,  cfg( target_has_atomic = "8" ) ) ]  
3289+ #[ cfg( target_has_atomic) ]  
32983290#[ cfg_attr( miri,  track_caller) ]   // even without panics, this helps for Miri backtraces 
32993291unsafe  fn  atomic_and < T :  Copy > ( dst :  * mut  T ,  val :  T ,  order :  Ordering )  -> T  { 
33003292    // SAFETY: the caller must uphold the safety contract for `atomic_and` 
@@ -3310,8 +3302,7 @@ unsafe fn atomic_and<T: Copy>(dst: *mut T, val: T, order: Ordering) -> T {
33103302} 
33113303
33123304#[ inline]  
3313- #[ cfg_attr( not( bootstrap) ,  cfg( target_has_atomic) ) ]  
3314- #[ cfg_attr( bootstrap,  cfg( target_has_atomic = "8" ) ) ]  
3305+ #[ cfg( target_has_atomic) ]  
33153306#[ cfg_attr( miri,  track_caller) ]   // even without panics, this helps for Miri backtraces 
33163307unsafe  fn  atomic_nand < T :  Copy > ( dst :  * mut  T ,  val :  T ,  order :  Ordering )  -> T  { 
33173308    // SAFETY: the caller must uphold the safety contract for `atomic_nand` 
@@ -3327,8 +3318,7 @@ unsafe fn atomic_nand<T: Copy>(dst: *mut T, val: T, order: Ordering) -> T {
33273318} 
33283319
33293320#[ inline]  
3330- #[ cfg_attr( not( bootstrap) ,  cfg( target_has_atomic) ) ]  
3331- #[ cfg_attr( bootstrap,  cfg( target_has_atomic = "8" ) ) ]  
3321+ #[ cfg( target_has_atomic) ]  
33323322#[ cfg_attr( miri,  track_caller) ]   // even without panics, this helps for Miri backtraces 
33333323unsafe  fn  atomic_or < T :  Copy > ( dst :  * mut  T ,  val :  T ,  order :  Ordering )  -> T  { 
33343324    // SAFETY: the caller must uphold the safety contract for `atomic_or` 
@@ -3344,8 +3334,7 @@ unsafe fn atomic_or<T: Copy>(dst: *mut T, val: T, order: Ordering) -> T {
33443334} 
33453335
33463336#[ inline]  
3347- #[ cfg_attr( not( bootstrap) ,  cfg( target_has_atomic) ) ]  
3348- #[ cfg_attr( bootstrap,  cfg( target_has_atomic = "8" ) ) ]  
3337+ #[ cfg( target_has_atomic) ]  
33493338#[ cfg_attr( miri,  track_caller) ]   // even without panics, this helps for Miri backtraces 
33503339unsafe  fn  atomic_xor < T :  Copy > ( dst :  * mut  T ,  val :  T ,  order :  Ordering )  -> T  { 
33513340    // SAFETY: the caller must uphold the safety contract for `atomic_xor` 
@@ -3362,8 +3351,7 @@ unsafe fn atomic_xor<T: Copy>(dst: *mut T, val: T, order: Ordering) -> T {
33623351
33633352/// returns the max value (signed comparison) 
33643353#[ inline]  
3365- #[ cfg_attr( not( bootstrap) ,  cfg( target_has_atomic) ) ]  
3366- #[ cfg_attr( bootstrap,  cfg( target_has_atomic = "8" ) ) ]  
3354+ #[ cfg( target_has_atomic) ]  
33673355#[ cfg_attr( miri,  track_caller) ]   // even without panics, this helps for Miri backtraces 
33683356unsafe  fn  atomic_max < T :  Copy > ( dst :  * mut  T ,  val :  T ,  order :  Ordering )  -> T  { 
33693357    // SAFETY: the caller must uphold the safety contract for `atomic_max` 
@@ -3380,8 +3368,7 @@ unsafe fn atomic_max<T: Copy>(dst: *mut T, val: T, order: Ordering) -> T {
33803368
33813369/// returns the min value (signed comparison) 
33823370#[ inline]  
3383- #[ cfg_attr( not( bootstrap) ,  cfg( target_has_atomic) ) ]  
3384- #[ cfg_attr( bootstrap,  cfg( target_has_atomic = "8" ) ) ]  
3371+ #[ cfg( target_has_atomic) ]  
33853372#[ cfg_attr( miri,  track_caller) ]   // even without panics, this helps for Miri backtraces 
33863373unsafe  fn  atomic_min < T :  Copy > ( dst :  * mut  T ,  val :  T ,  order :  Ordering )  -> T  { 
33873374    // SAFETY: the caller must uphold the safety contract for `atomic_min` 
@@ -3398,8 +3385,7 @@ unsafe fn atomic_min<T: Copy>(dst: *mut T, val: T, order: Ordering) -> T {
33983385
33993386/// returns the max value (unsigned comparison) 
34003387#[ inline]  
3401- #[ cfg_attr( not( bootstrap) ,  cfg( target_has_atomic) ) ]  
3402- #[ cfg_attr( bootstrap,  cfg( target_has_atomic = "8" ) ) ]  
3388+ #[ cfg( target_has_atomic) ]  
34033389#[ cfg_attr( miri,  track_caller) ]   // even without panics, this helps for Miri backtraces 
34043390unsafe  fn  atomic_umax < T :  Copy > ( dst :  * mut  T ,  val :  T ,  order :  Ordering )  -> T  { 
34053391    // SAFETY: the caller must uphold the safety contract for `atomic_umax` 
@@ -3416,8 +3402,7 @@ unsafe fn atomic_umax<T: Copy>(dst: *mut T, val: T, order: Ordering) -> T {
34163402
34173403/// returns the min value (unsigned comparison) 
34183404#[ inline]  
3419- #[ cfg_attr( not( bootstrap) ,  cfg( target_has_atomic) ) ]  
3420- #[ cfg_attr( bootstrap,  cfg( target_has_atomic = "8" ) ) ]  
3405+ #[ cfg( target_has_atomic) ]  
34213406#[ cfg_attr( miri,  track_caller) ]   // even without panics, this helps for Miri backtraces 
34223407unsafe  fn  atomic_umin < T :  Copy > ( dst :  * mut  T ,  val :  T ,  order :  Ordering )  -> T  { 
34233408    // SAFETY: the caller must uphold the safety contract for `atomic_umin` 
0 commit comments