about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/hppa/bits/atomic.h
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix/sysv/linux/hppa/bits/atomic.h')
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/atomic.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/atomic.h b/sysdeps/unix/sysv/linux/hppa/bits/atomic.h
index 9550196f77..abde83e2f9 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/atomic.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/atomic.h
@@ -67,7 +67,7 @@ typedef uintmax_t uatomic_max_t;
 # define atomic_compare_and_exchange_val_acq(mem, newval, oldval)	\
   ({									\
      volatile int lws_errno;						\
-     volatile int lws_ret;						\
+     __typeof__ (*mem) lws_ret;						\
      asm volatile(							\
 	"0:					\n\t"			\
 	"copy	%2, %%r26			\n\t"			\
@@ -96,10 +96,10 @@ typedef uintmax_t uatomic_max_t;
 
 # define atomic_compare_and_exchange_bool_acq(mem, newval, oldval)	\
   ({									\
-     int ret;								\
+     __typeof__ (*mem) ret;						\
      ret = atomic_compare_and_exchange_val_acq(mem, newval, oldval);	\
      /* Return 1 if it was already acquired.  */			\
-     (ret != (int)oldval);						\
+     (ret != oldval);							\
    })
 #else
 # error __ASSUME_LWS_CAS is required to build glibc.