mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 13:10:10 +01:00
util/u_atomic: fix return type of p_atomic_{inc,dec}_return() and p_atomic_{cmp,}xchg()
We're trying to cast the return type to the type of the var, but instead we were casting `sizeof(*v)`. Fixes:6df72e970c("util: Make u_atomic.h typeless.") Fixes:0a7f17cf5b("util/u_atomic: add p_atomic_xchg") Signed-off-by: Eric Engestrom <eric.engestrom@intel.com> Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
This commit is contained in:
parent
d3b06a199e
commit
aaab70035a
1 changed files with 4 additions and 4 deletions
|
|
@ -182,7 +182,7 @@
|
|||
sizeof(*v) == sizeof(uint64_t) ? atomic_inc_64((uint64_t *)(v)) : \
|
||||
(assert(!"should not get here"), 0))
|
||||
|
||||
#define p_atomic_inc_return(v) ((__typeof(*v)) \
|
||||
#define p_atomic_inc_return(v) (__typeof(*v))( \
|
||||
sizeof(*v) == sizeof(uint8_t) ? atomic_inc_8_nv ((uint8_t *)(v)) : \
|
||||
sizeof(*v) == sizeof(uint16_t) ? atomic_inc_16_nv((uint16_t *)(v)) : \
|
||||
sizeof(*v) == sizeof(uint32_t) ? atomic_inc_32_nv((uint32_t *)(v)) : \
|
||||
|
|
@ -196,7 +196,7 @@
|
|||
sizeof(*v) == sizeof(uint64_t) ? atomic_dec_64((uint64_t *)(v)) : \
|
||||
(assert(!"should not get here"), 0))
|
||||
|
||||
#define p_atomic_dec_return(v) ((__typeof(*v)) \
|
||||
#define p_atomic_dec_return(v) (__typeof(*v))( \
|
||||
sizeof(*v) == sizeof(uint8_t) ? atomic_dec_8_nv ((uint8_t *)(v)) : \
|
||||
sizeof(*v) == sizeof(uint16_t) ? atomic_dec_16_nv((uint16_t *)(v)) : \
|
||||
sizeof(*v) == sizeof(uint32_t) ? atomic_dec_32_nv((uint32_t *)(v)) : \
|
||||
|
|
@ -210,7 +210,7 @@
|
|||
sizeof(*v) == sizeof(uint64_t) ? atomic_add_64((uint64_t *)(v), (i)) : \
|
||||
(assert(!"should not get here"), 0))
|
||||
|
||||
#define p_atomic_cmpxchg(v, old, _new) ((__typeof(*v)) \
|
||||
#define p_atomic_cmpxchg(v, old, _new) (__typeof(*v))( \
|
||||
sizeof(*v) == sizeof(uint8_t) ? atomic_cas_8 ((uint8_t *)(v), (uint8_t )(old), (uint8_t )(_new)) : \
|
||||
sizeof(*v) == sizeof(uint16_t) ? atomic_cas_16((uint16_t *)(v), (uint16_t)(old), (uint16_t)(_new)) : \
|
||||
sizeof(*v) == sizeof(uint32_t) ? atomic_cas_32((uint32_t *)(v), (uint32_t)(old), (uint32_t)(_new)) : \
|
||||
|
|
@ -246,7 +246,7 @@ static inline uint64_t p_atomic_xchg_64(uint64_t *v, uint64_t i)
|
|||
return actual;
|
||||
}
|
||||
|
||||
#define p_atomic_xchg(v, i) ((__typeof(*(v))) \
|
||||
#define p_atomic_xchg(v, i) (__typeof(*(v)))( \
|
||||
sizeof(*(v)) == sizeof(uint32_t) ? p_atomic_xchg_32((uint32_t *)(v), (uint32_t)(i)) : \
|
||||
sizeof(*(v)) == sizeof(uint64_t) ? p_atomic_xchg_64((uint64_t *)(v), (uint64_t)(i)) : \
|
||||
(assert(!"should not get here"), 0))
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue