summaryrefslogtreecommitdiff
path: root/sysdeps/alpha
diff options
context:
space:
mode:
authorRichard Henderson <rth@twiddle.net>2010-03-26 10:25:53 -0700
committerRichard Henderson <rth@twiddle.net>2010-03-26 13:17:51 -0700
commit6796df65e4d8320e1eb3b9e74dcd972a0bd6ae20 (patch)
treeca6ef9dfecb559922a25fb2b672da2c7ba214335 /sysdeps/alpha
parent01b32e7361d68ade13d88f7245af778bb3ba02fd (diff)
downloadglibc-6796df65e4d8320e1eb3b9e74dcd972a0bd6ae20.tar
glibc-6796df65e4d8320e1eb3b9e74dcd972a0bd6ae20.tar.gz
glibc-6796df65e4d8320e1eb3b9e74dcd972a0bd6ae20.tar.bz2
glibc-6796df65e4d8320e1eb3b9e74dcd972a0bd6ae20.zip
alpha: Fix the return type of the atomic.h macros.
Signed-off-by: Richard Henderson <rth@twiddle.net>
Diffstat (limited to 'sysdeps/alpha')
-rw-r--r--sysdeps/alpha/bits/atomic.h14
1 files changed, 7 insertions, 7 deletions
diff --git a/sysdeps/alpha/bits/atomic.h b/sysdeps/alpha/bits/atomic.h
index 36a740c758..602fde3ff9 100644
--- a/sysdeps/alpha/bits/atomic.h
+++ b/sysdeps/alpha/bits/atomic.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2003, 2010 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -221,7 +221,7 @@ typedef uintmax_t uatomic_max_t;
#define __arch_exchange_8_int(mem, value, mb1, mb2) \
({ \
- unsigned long __ret, __tmp, __addr64, __sval; \
+ unsigned long __tmp, __addr64, __sval; __typeof(*mem) __ret; \
__asm__ __volatile__ ( \
mb1 \
" andnot %[__addr8],7,%[__addr64]\n" \
@@ -244,7 +244,7 @@ typedef uintmax_t uatomic_max_t;
#define __arch_exchange_16_int(mem, value, mb1, mb2) \
({ \
- unsigned long __ret, __tmp, __addr64, __sval; \
+ unsigned long __tmp, __addr64, __sval; __typeof(*mem) __ret; \
__asm__ __volatile__ ( \
mb1 \
" andnot %[__addr16],7,%[__addr64]\n" \
@@ -267,7 +267,7 @@ typedef uintmax_t uatomic_max_t;
#define __arch_exchange_32_int(mem, value, mb1, mb2) \
({ \
- signed int __ret, __tmp; \
+ signed int __tmp; __typeof(*mem) __ret; \
__asm__ __volatile__ ( \
mb1 \
"1: ldl_l %[__ret],%[__mem]\n" \
@@ -284,7 +284,7 @@ typedef uintmax_t uatomic_max_t;
#define __arch_exchange_64_int(mem, value, mb1, mb2) \
({ \
- unsigned long __ret, __tmp; \
+ unsigned long __tmp; __typeof(*mem) __ret; \
__asm__ __volatile__ ( \
mb1 \
"1: ldq_l %[__ret],%[__mem]\n" \
@@ -316,7 +316,7 @@ typedef uintmax_t uatomic_max_t;
#define __arch_exchange_and_add_32_int(mem, value, mb1, mb2) \
({ \
- signed int __ret, __tmp; \
+ signed int __tmp; __typeof(*mem) __ret; \
__asm__ __volatile__ ( \
mb1 \
"1: ldl_l %[__ret],%[__mem]\n" \
@@ -333,7 +333,7 @@ typedef uintmax_t uatomic_max_t;
#define __arch_exchange_and_add_64_int(mem, value, mb1, mb2) \
({ \
- unsigned long __ret, __tmp; \
+ unsigned long __tmp; __typeof(*mem) __ret; \
__asm__ __volatile__ ( \
mb1 \
"1: ldq_l %[__ret],%[__mem]\n" \