@@ -2259,7 +2259,7 @@ fn strongest_failure_ordering(order: Ordering) -> Ordering {
2259
2259
}
2260
2260
2261
2261
#[ 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 ) {
2263
2263
match order {
2264
2264
Release => intrinsics:: atomic_store_rel ( dst, val) ,
2265
2265
Relaxed => intrinsics:: atomic_store_relaxed ( dst, val) ,
@@ -2270,7 +2270,7 @@ unsafe fn atomic_store<T>(dst: *mut T, val: T, order: Ordering) {
2270
2270
}
2271
2271
2272
2272
#[ 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 {
2274
2274
match order {
2275
2275
Acquire => intrinsics:: atomic_load_acq ( dst) ,
2276
2276
Relaxed => intrinsics:: atomic_load_relaxed ( dst) ,
@@ -2282,7 +2282,7 @@ unsafe fn atomic_load<T>(dst: *const T, order: Ordering) -> T {
2282
2282
2283
2283
#[ inline]
2284
2284
#[ 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 {
2286
2286
match order {
2287
2287
Acquire => intrinsics:: atomic_xchg_acq ( dst, val) ,
2288
2288
Release => intrinsics:: atomic_xchg_rel ( dst, val) ,
@@ -2295,7 +2295,7 @@ unsafe fn atomic_swap<T>(dst: *mut T, val: T, order: Ordering) -> T {
2295
2295
/// Returns the previous value (like __sync_fetch_and_add).
2296
2296
#[ inline]
2297
2297
#[ 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 {
2299
2299
match order {
2300
2300
Acquire => intrinsics:: atomic_xadd_acq ( dst, val) ,
2301
2301
Release => intrinsics:: atomic_xadd_rel ( dst, val) ,
@@ -2308,7 +2308,7 @@ unsafe fn atomic_add<T>(dst: *mut T, val: T, order: Ordering) -> T {
2308
2308
/// Returns the previous value (like __sync_fetch_and_sub).
2309
2309
#[ inline]
2310
2310
#[ 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 {
2312
2312
match order {
2313
2313
Acquire => intrinsics:: atomic_xsub_acq ( dst, val) ,
2314
2314
Release => intrinsics:: atomic_xsub_rel ( dst, val) ,
@@ -2320,7 +2320,7 @@ unsafe fn atomic_sub<T>(dst: *mut T, val: T, order: Ordering) -> T {
2320
2320
2321
2321
#[ inline]
2322
2322
#[ cfg( target_has_atomic = "8" ) ]
2323
- unsafe fn atomic_compare_exchange < T > (
2323
+ unsafe fn atomic_compare_exchange < T : Copy > (
2324
2324
dst : * mut T ,
2325
2325
old : T ,
2326
2326
new : T ,
@@ -2346,7 +2346,7 @@ unsafe fn atomic_compare_exchange<T>(
2346
2346
2347
2347
#[ inline]
2348
2348
#[ cfg( target_has_atomic = "8" ) ]
2349
- unsafe fn atomic_compare_exchange_weak < T > (
2349
+ unsafe fn atomic_compare_exchange_weak < T : Copy > (
2350
2350
dst : * mut T ,
2351
2351
old : T ,
2352
2352
new : T ,
@@ -2372,7 +2372,7 @@ unsafe fn atomic_compare_exchange_weak<T>(
2372
2372
2373
2373
#[ inline]
2374
2374
#[ 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 {
2376
2376
match order {
2377
2377
Acquire => intrinsics:: atomic_and_acq ( dst, val) ,
2378
2378
Release => intrinsics:: atomic_and_rel ( dst, val) ,
@@ -2384,7 +2384,7 @@ unsafe fn atomic_and<T>(dst: *mut T, val: T, order: Ordering) -> T {
2384
2384
2385
2385
#[ inline]
2386
2386
#[ 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 {
2388
2388
match order {
2389
2389
Acquire => intrinsics:: atomic_nand_acq ( dst, val) ,
2390
2390
Release => intrinsics:: atomic_nand_rel ( dst, val) ,
@@ -2396,7 +2396,7 @@ unsafe fn atomic_nand<T>(dst: *mut T, val: T, order: Ordering) -> T {
2396
2396
2397
2397
#[ inline]
2398
2398
#[ 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 {
2400
2400
match order {
2401
2401
Acquire => intrinsics:: atomic_or_acq ( dst, val) ,
2402
2402
Release => intrinsics:: atomic_or_rel ( dst, val) ,
@@ -2408,7 +2408,7 @@ unsafe fn atomic_or<T>(dst: *mut T, val: T, order: Ordering) -> T {
2408
2408
2409
2409
#[ inline]
2410
2410
#[ 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 {
2412
2412
match order {
2413
2413
Acquire => intrinsics:: atomic_xor_acq ( dst, val) ,
2414
2414
Release => intrinsics:: atomic_xor_rel ( dst, val) ,
@@ -2421,7 +2421,7 @@ unsafe fn atomic_xor<T>(dst: *mut T, val: T, order: Ordering) -> T {
2421
2421
/// returns the max value (signed comparison)
2422
2422
#[ inline]
2423
2423
#[ 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 {
2425
2425
match order {
2426
2426
Acquire => intrinsics:: atomic_max_acq ( dst, val) ,
2427
2427
Release => intrinsics:: atomic_max_rel ( dst, val) ,
@@ -2434,7 +2434,7 @@ unsafe fn atomic_max<T>(dst: *mut T, val: T, order: Ordering) -> T {
2434
2434
/// returns the min value (signed comparison)
2435
2435
#[ inline]
2436
2436
#[ 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 {
2438
2438
match order {
2439
2439
Acquire => intrinsics:: atomic_min_acq ( dst, val) ,
2440
2440
Release => intrinsics:: atomic_min_rel ( dst, val) ,
@@ -2447,7 +2447,7 @@ unsafe fn atomic_min<T>(dst: *mut T, val: T, order: Ordering) -> T {
2447
2447
/// returns the max value (unsigned comparison)
2448
2448
#[ inline]
2449
2449
#[ 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 {
2451
2451
match order {
2452
2452
Acquire => intrinsics:: atomic_umax_acq ( dst, val) ,
2453
2453
Release => intrinsics:: atomic_umax_rel ( dst, val) ,
@@ -2460,7 +2460,7 @@ unsafe fn atomic_umax<T>(dst: *mut T, val: T, order: Ordering) -> T {
2460
2460
/// returns the min value (unsigned comparison)
2461
2461
#[ inline]
2462
2462
#[ 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 {
2464
2464
match order {
2465
2465
Acquire => intrinsics:: atomic_umin_acq ( dst, val) ,
2466
2466
Release => intrinsics:: atomic_umin_rel ( dst, val) ,
0 commit comments