diff --git a/compat/atomics/suncc/stdatomic.h b/compat/atomics/suncc/stdatomic.h index 4a864a4ae9..0cf89e0f78 100644 --- a/compat/atomics/suncc/stdatomic.h +++ b/compat/atomics/suncc/stdatomic.h @@ -108,7 +108,7 @@ static inline int atomic_compare_exchange_strong(intptr_t *object, intptr_t *exp intptr_t desired) { intptr_t old = *expected; - *expected = atomic_cas_ptr(object, old, desired); + *expected = (intptr_t)atomic_cas_ptr(object, (void *)old, (void *)desired); return *expected == old; } diff --git a/compat/atomics/win32/stdatomic.h b/compat/atomics/win32/stdatomic.h index 092f453978..bb8e6e7e15 100644 --- a/compat/atomics/win32/stdatomic.h +++ b/compat/atomics/win32/stdatomic.h @@ -105,7 +105,8 @@ static inline int atomic_compare_exchange_strong(intptr_t *object, intptr_t *exp intptr_t desired) { intptr_t old = *expected; - *expected = InterlockedCompareExchangePointer(object, desired, old); + *expected = (intptr_t)InterlockedCompareExchangePointer( + (PVOID *)object, (PVOID)desired, (PVOID)old); return *expected == old; }