@@ -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