diff --git a/compat/atomics/suncc/stdatomic.h b/compat/atomics/suncc/stdatomic.h index 32129aae53..aef498d022 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 bdd39337a3..9cfdaa523f 100644 --- a/compat/atomics/win32/stdatomic.h +++ b/compat/atomics/win32/stdatomic.h @@ -104,7 +104,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; }