|
21 | 21 |
|
22 | 22 | #ifdef __CLC_HAS_ATOMIC |
23 | 23 |
|
24 | | -#ifndef __CLC_PTR_CASTTYPE |
25 | | -#define __CLC_PTR_CASTTYPE __CLC_GENTYPE |
| 24 | +#ifndef __CLC_CASTTYPE |
| 25 | +#define __CLC_CASTTYPE __CLC_GENTYPE |
26 | 26 | #endif |
27 | 27 |
|
28 | 28 | #ifndef __CLC_AS_RETTYPE |
29 | 29 | #define __CLC_AS_RETTYPE(x) x |
30 | 30 | #endif |
31 | 31 |
|
| 32 | +#ifndef __CLC_AS_CASTTYPE |
| 33 | +#define __CLC_AS_CASTTYPE(x) x |
| 34 | +#endif |
| 35 | + |
32 | 36 | #ifdef __CLC_NO_VALUE_ARG |
33 | 37 | #define __CLC_DEFINE_ATOMIC(ADDRSPACE) \ |
34 | 38 | _CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __CLC_FUNCTION( \ |
35 | 39 | volatile ADDRSPACE __CLC_GENTYPE *Ptr, int MemoryOrder, \ |
36 | 40 | int MemoryScope) { \ |
37 | 41 | return __CLC_AS_RETTYPE(__CLC_IMPL_FUNCTION( \ |
38 | | - (ADDRSPACE __CLC_PTR_CASTTYPE *)Ptr, MemoryOrder, MemoryScope)); \ |
| 42 | + (ADDRSPACE __CLC_CASTTYPE *)Ptr, MemoryOrder, MemoryScope)); \ |
39 | 43 | } |
40 | 44 | #elif defined(__CLC_INC_DEC) |
41 | 45 | #define __CLC_DEFINE_ATOMIC(ADDRSPACE) \ |
42 | 46 | _CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __CLC_FUNCTION( \ |
43 | 47 | volatile ADDRSPACE __CLC_GENTYPE *Ptr, int MemoryOrder, \ |
44 | 48 | int MemoryScope) { \ |
45 | | - return __CLC_AS_RETTYPE( \ |
46 | | - __CLC_IMPL_FUNCTION((ADDRSPACE __CLC_PTR_CASTTYPE *)Ptr, \ |
47 | | - (__CLC_GENTYPE)1, MemoryOrder, MemoryScope)); \ |
| 49 | + return __CLC_IMPL_FUNCTION(Ptr, (__CLC_GENTYPE)1, MemoryOrder, \ |
| 50 | + MemoryScope); \ |
48 | 51 | } |
49 | 52 | #elif defined(__CLC_RETURN_VOID) |
50 | 53 | #define __CLC_DEFINE_ATOMIC(ADDRSPACE) \ |
51 | 54 | _CLC_OVERLOAD _CLC_DEF void __CLC_FUNCTION( \ |
52 | 55 | volatile ADDRSPACE __CLC_GENTYPE *Ptr, __CLC_GENTYPE Value, \ |
53 | 56 | int MemoryOrder, int MemoryScope) { \ |
54 | | - __CLC_IMPL_FUNCTION((ADDRSPACE __CLC_PTR_CASTTYPE *)Ptr, Value, \ |
55 | | - MemoryOrder, MemoryScope); \ |
| 57 | + __CLC_IMPL_FUNCTION((ADDRSPACE __CLC_CASTTYPE *)Ptr, \ |
| 58 | + __CLC_AS_CASTTYPE(Value), MemoryOrder, MemoryScope); \ |
56 | 59 | } |
57 | 60 | #else |
58 | 61 | #define __CLC_DEFINE_ATOMIC(ADDRSPACE) \ |
59 | 62 | _CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __CLC_FUNCTION( \ |
60 | 63 | volatile ADDRSPACE __CLC_GENTYPE *Ptr, __CLC_GENTYPE Value, \ |
61 | 64 | int MemoryOrder, int MemoryScope) { \ |
62 | | - return __CLC_AS_RETTYPE( \ |
63 | | - __CLC_IMPL_FUNCTION((ADDRSPACE __CLC_PTR_CASTTYPE *)Ptr, Value, \ |
64 | | - MemoryOrder, MemoryScope)); \ |
| 65 | + return __CLC_AS_RETTYPE(__CLC_IMPL_FUNCTION( \ |
| 66 | + (ADDRSPACE __CLC_CASTTYPE *)Ptr, __CLC_AS_CASTTYPE(Value), \ |
| 67 | + MemoryOrder, MemoryScope)); \ |
65 | 68 | } |
66 | 69 | #endif |
67 | 70 |
|
|
0 commit comments