summaryrefslogtreecommitdiff
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.