@@ -2259,7 +2259,7 @@ fn strongest_failure_ordering(order: Ordering) -> Ordering {
22592259} 
22602260
22612261#[ inline]  
2262- unsafe  fn  atomic_store < T > ( dst :  * mut  T ,  val :  T ,  order :  Ordering )  { 
2262+ unsafe  fn  atomic_store < T :   Copy > ( dst :  * mut  T ,  val :  T ,  order :  Ordering )  { 
22632263    match  order { 
22642264        Release  => intrinsics:: atomic_store_rel ( dst,  val) , 
22652265        Relaxed  => intrinsics:: atomic_store_relaxed ( dst,  val) , 
@@ -2270,7 +2270,7 @@ unsafe fn atomic_store<T>(dst: *mut T, val: T, order: Ordering) {
22702270} 
22712271
22722272#[ inline]  
2273- unsafe  fn  atomic_load < T > ( dst :  * const  T ,  order :  Ordering )  -> T  { 
2273+ unsafe  fn  atomic_load < T :   Copy > ( dst :  * const  T ,  order :  Ordering )  -> T  { 
22742274    match  order { 
22752275        Acquire  => intrinsics:: atomic_load_acq ( dst) , 
22762276        Relaxed  => intrinsics:: atomic_load_relaxed ( dst) , 
@@ -2282,7 +2282,7 @@ unsafe fn atomic_load<T>(dst: *const T, order: Ordering) -> T {
22822282
22832283#[ inline]  
22842284#[ cfg( target_has_atomic = "8" ) ]  
2285- unsafe  fn  atomic_swap < T > ( dst :  * mut  T ,  val :  T ,  order :  Ordering )  -> T  { 
2285+ unsafe  fn  atomic_swap < T :   Copy > ( dst :  * mut  T ,  val :  T ,  order :  Ordering )  -> T  { 
22862286    match  order { 
22872287        Acquire  => intrinsics:: atomic_xchg_acq ( dst,  val) , 
22882288        Release  => intrinsics:: atomic_xchg_rel ( dst,  val) , 
@@ -2295,7 +2295,7 @@ unsafe fn atomic_swap<T>(dst: *mut T, val: T, order: Ordering) -> T {
22952295/// Returns the previous value (like __sync_fetch_and_add). 
22962296#[ inline]  
22972297#[ cfg( target_has_atomic = "8" ) ]  
2298- unsafe  fn  atomic_add < T > ( dst :  * mut  T ,  val :  T ,  order :  Ordering )  -> T  { 
2298+ unsafe  fn  atomic_add < T :   Copy > ( dst :  * mut  T ,  val :  T ,  order :  Ordering )  -> T  { 
22992299    match  order { 
23002300        Acquire  => intrinsics:: atomic_xadd_acq ( dst,  val) , 
23012301        Release  => intrinsics:: atomic_xadd_rel ( dst,  val) , 
@@ -2308,7 +2308,7 @@ unsafe fn atomic_add<T>(dst: *mut T, val: T, order: Ordering) -> T {
23082308/// Returns the previous value (like __sync_fetch_and_sub). 
23092309#[ inline]  
23102310#[ cfg( target_has_atomic = "8" ) ]  
2311- unsafe  fn  atomic_sub < T > ( dst :  * mut  T ,  val :  T ,  order :  Ordering )  -> T  { 
2311+ unsafe  fn  atomic_sub < T :   Copy > ( dst :  * mut  T ,  val :  T ,  order :  Ordering )  -> T  { 
23122312    match  order { 
23132313        Acquire  => intrinsics:: atomic_xsub_acq ( dst,  val) , 
23142314        Release  => intrinsics:: atomic_xsub_rel ( dst,  val) , 
@@ -2320,7 +2320,7 @@ unsafe fn atomic_sub<T>(dst: *mut T, val: T, order: Ordering) -> T {
23202320
23212321#[ inline]  
23222322#[ cfg( target_has_atomic = "8" ) ]  
2323- unsafe  fn  atomic_compare_exchange < T > ( 
2323+ unsafe  fn  atomic_compare_exchange < T :   Copy > ( 
23242324    dst :  * mut  T , 
23252325    old :  T , 
23262326    new :  T , 
@@ -2346,7 +2346,7 @@ unsafe fn atomic_compare_exchange<T>(
23462346
23472347#[ inline]  
23482348#[ cfg( target_has_atomic = "8" ) ]  
2349- unsafe  fn  atomic_compare_exchange_weak < T > ( 
2349+ unsafe  fn  atomic_compare_exchange_weak < T :   Copy > ( 
23502350    dst :  * mut  T , 
23512351    old :  T , 
23522352    new :  T , 
@@ -2372,7 +2372,7 @@ unsafe fn atomic_compare_exchange_weak<T>(
23722372
23732373#[ inline]  
23742374#[ cfg( target_has_atomic = "8" ) ]  
2375- unsafe  fn  atomic_and < T > ( dst :  * mut  T ,  val :  T ,  order :  Ordering )  -> T  { 
2375+ unsafe  fn  atomic_and < T :   Copy > ( dst :  * mut  T ,  val :  T ,  order :  Ordering )  -> T  { 
23762376    match  order { 
23772377        Acquire  => intrinsics:: atomic_and_acq ( dst,  val) , 
23782378        Release  => intrinsics:: atomic_and_rel ( dst,  val) , 
@@ -2384,7 +2384,7 @@ unsafe fn atomic_and<T>(dst: *mut T, val: T, order: Ordering) -> T {
23842384
23852385#[ inline]  
23862386#[ cfg( target_has_atomic = "8" ) ]  
2387- unsafe  fn  atomic_nand < T > ( dst :  * mut  T ,  val :  T ,  order :  Ordering )  -> T  { 
2387+ unsafe  fn  atomic_nand < T :   Copy > ( dst :  * mut  T ,  val :  T ,  order :  Ordering )  -> T  { 
23882388    match  order { 
23892389        Acquire  => intrinsics:: atomic_nand_acq ( dst,  val) , 
23902390        Release  => intrinsics:: atomic_nand_rel ( dst,  val) , 
@@ -2396,7 +2396,7 @@ unsafe fn atomic_nand<T>(dst: *mut T, val: T, order: Ordering) -> T {
23962396
23972397#[ inline]  
23982398#[ cfg( target_has_atomic = "8" ) ]  
2399- unsafe  fn  atomic_or < T > ( dst :  * mut  T ,  val :  T ,  order :  Ordering )  -> T  { 
2399+ unsafe  fn  atomic_or < T :   Copy > ( dst :  * mut  T ,  val :  T ,  order :  Ordering )  -> T  { 
24002400    match  order { 
24012401        Acquire  => intrinsics:: atomic_or_acq ( dst,  val) , 
24022402        Release  => intrinsics:: atomic_or_rel ( dst,  val) , 
@@ -2408,7 +2408,7 @@ unsafe fn atomic_or<T>(dst: *mut T, val: T, order: Ordering) -> T {
24082408
24092409#[ inline]  
24102410#[ cfg( target_has_atomic = "8" ) ]  
2411- unsafe  fn  atomic_xor < T > ( dst :  * mut  T ,  val :  T ,  order :  Ordering )  -> T  { 
2411+ unsafe  fn  atomic_xor < T :   Copy > ( dst :  * mut  T ,  val :  T ,  order :  Ordering )  -> T  { 
24122412    match  order { 
24132413        Acquire  => intrinsics:: atomic_xor_acq ( dst,  val) , 
24142414        Release  => intrinsics:: atomic_xor_rel ( dst,  val) , 
@@ -2421,7 +2421,7 @@ unsafe fn atomic_xor<T>(dst: *mut T, val: T, order: Ordering) -> T {
24212421/// returns the max value (signed comparison) 
24222422#[ inline]  
24232423#[ cfg( target_has_atomic = "8" ) ]  
2424- unsafe  fn  atomic_max < T > ( dst :  * mut  T ,  val :  T ,  order :  Ordering )  -> T  { 
2424+ unsafe  fn  atomic_max < T :   Copy > ( dst :  * mut  T ,  val :  T ,  order :  Ordering )  -> T  { 
24252425    match  order { 
24262426        Acquire  => intrinsics:: atomic_max_acq ( dst,  val) , 
24272427        Release  => intrinsics:: atomic_max_rel ( dst,  val) , 
@@ -2434,7 +2434,7 @@ unsafe fn atomic_max<T>(dst: *mut T, val: T, order: Ordering) -> T {
24342434/// returns the min value (signed comparison) 
24352435#[ inline]  
24362436#[ cfg( target_has_atomic = "8" ) ]  
2437- unsafe  fn  atomic_min < T > ( dst :  * mut  T ,  val :  T ,  order :  Ordering )  -> T  { 
2437+ unsafe  fn  atomic_min < T :   Copy > ( dst :  * mut  T ,  val :  T ,  order :  Ordering )  -> T  { 
24382438    match  order { 
24392439        Acquire  => intrinsics:: atomic_min_acq ( dst,  val) , 
24402440        Release  => intrinsics:: atomic_min_rel ( dst,  val) , 
@@ -2447,7 +2447,7 @@ unsafe fn atomic_min<T>(dst: *mut T, val: T, order: Ordering) -> T {
24472447/// returns the max value (unsigned comparison) 
24482448#[ inline]  
24492449#[ cfg( target_has_atomic = "8" ) ]  
2450- unsafe  fn  atomic_umax < T > ( dst :  * mut  T ,  val :  T ,  order :  Ordering )  -> T  { 
2450+ unsafe  fn  atomic_umax < T :   Copy > ( dst :  * mut  T ,  val :  T ,  order :  Ordering )  -> T  { 
24512451    match  order { 
24522452        Acquire  => intrinsics:: atomic_umax_acq ( dst,  val) , 
24532453        Release  => intrinsics:: atomic_umax_rel ( dst,  val) , 
@@ -2460,7 +2460,7 @@ unsafe fn atomic_umax<T>(dst: *mut T, val: T, order: Ordering) -> T {
24602460/// returns the min value (unsigned comparison) 
24612461#[ inline]  
24622462#[ cfg( target_has_atomic = "8" ) ]  
2463- unsafe  fn  atomic_umin < T > ( dst :  * mut  T ,  val :  T ,  order :  Ordering )  -> T  { 
2463+ unsafe  fn  atomic_umin < T :   Copy > ( dst :  * mut  T ,  val :  T ,  order :  Ordering )  -> T  { 
24642464    match  order { 
24652465        Acquire  => intrinsics:: atomic_umin_acq ( dst,  val) , 
24662466        Release  => intrinsics:: atomic_umin_rel ( dst,  val) , 
0 commit comments