From b99f6ff534f02cdb001f229c6883af97e1ed91fb Mon Sep 17 00:00:00 2001 From: Adrian Johnson Date: Thu, 25 Jul 2024 08:14:34 +0930 Subject: [PATCH] Fix MSYS clang build error ../src/cairo-atomic-private.h:210:43: warning: incompatible pointer types passing 'void **' to param eter of type 'cairo_atomic_intptr_t *' (aka 'long long *') [-Wincompatible-pointer-types] 210 | return __atomic_compare_exchange_n(x, &expected, newv, 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ _CST); | ^~~~~~~~~ ../src/cairo-atomic-private.h:210:54: error: incompatible pointer to integer conversion passing 'voi d *' to parameter of type 'cairo_atomic_intptr_t' (aka 'long long') [-Wint-conversion] 210 | return __atomic_compare_exchange_n(x, &expected, newv, 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ _CST); | ^~~~ ../src/cairo-atomic-private.h:220:43: warning: incompatible pointer types passing 'void **' to param eter of type 'cairo_atomic_intptr_t *' (aka 'long long *') [-Wincompatible-pointer-types] 220 | (void) __atomic_compare_exchange_n(x, &expected, newv, 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ _CST); | ^~~~~~~~~ ../src/cairo-atomic-private.h:220:54: error: incompatible pointer to integer conversion passing 'voi d *' to parameter of type 'cairo_atomic_intptr_t' (aka 'long long') [-Wint-conversion] 220 | (void) __atomic_compare_exchange_n(x, &expected, newv, 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ _CST); | ^~~~ --- src/cairo-atomic-private.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/cairo-atomic-private.h b/src/cairo-atomic-private.h index feba95691..32cf58b63 100644 --- a/src/cairo-atomic-private.h +++ b/src/cairo-atomic-private.h @@ -206,8 +206,8 @@ _cairo_atomic_int_cmpxchg_return_old_impl(cairo_atomic_int_t *x, static cairo_always_inline cairo_bool_t _cairo_atomic_ptr_cmpxchg_impl(cairo_atomic_intptr_t *x, void *oldv, void *newv) { - void *expected = oldv; - return __atomic_compare_exchange_n(x, &expected, newv, 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); + intptr_t expected = (intptr_t)oldv; + return __atomic_compare_exchange_n(x, &expected, (intptr_t)newv, 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); } #define _cairo_atomic_ptr_cmpxchg(x, oldv, newv) \ @@ -216,9 +216,9 @@ _cairo_atomic_ptr_cmpxchg_impl(cairo_atomic_intptr_t *x, void *oldv, void *newv) static cairo_always_inline void * _cairo_atomic_ptr_cmpxchg_return_old_impl(cairo_atomic_intptr_t *x, void *oldv, void *newv) { - void *expected = oldv; - (void) __atomic_compare_exchange_n(x, &expected, newv, 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); - return expected; + intptr_t expected = (intptr_t)oldv; + (void) __atomic_compare_exchange_n(x, &expected, (intptr_t)newv, 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); + return (void*)expected; } #define _cairo_atomic_ptr_cmpxchg_return_old(x, oldv, newv) \