summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2012-11-20 00:56:29 +0000
committerJoseph Myers <joseph@codesourcery.com>2012-11-20 00:56:29 +0000
commitbd077d205aab57df26d5b2b3f1766c52b8dd7583 (patch)
tree3134e38bf3f73fc1710d41d2616ad9606d43dfb8
parentbe14d48f5add22dd5b2615730fb9a72c48c5ae68 (diff)
Fix warnings from aborting MIPS atomic macros.
-rw-r--r--ports/ChangeLog.mips10
-rw-r--r--ports/sysdeps/mips/bits/atomic.h6
2 files changed, 13 insertions, 3 deletions
diff --git a/ports/ChangeLog.mips b/ports/ChangeLog.mips
index 7472aa3c7c..2a77f26978 100644
--- a/ports/ChangeLog.mips
+++ b/ports/ChangeLog.mips
@@ -1,3 +1,13 @@
+2012-11-20 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/mips/bits/atomic.h [!__GNUC_PREREQ (4, 8)]
+ (__arch_compare_and_exchange_xxx_8_int): Separate assignments to
+ __prev and __cmp. Cast __cmp to void.
+ [!__GNUC_PREREQ (4, 8)] (__arch_compare_and_exchange_xxx_16_int):
+ Likewise.
+ [!__GNUC_PREREQ (4, 8) && _MIPS_SIM == _ABIO32]
+ (__arch_compare_and_exchange_xxx_64_int): Likewise.
+
2012-11-19 Joseph Myers <joseph@codesourcery.com>
* sysdeps/mips/dl-machine.h (RESOLVE_GOTSYM): Declare VERSION
diff --git a/ports/sysdeps/mips/bits/atomic.h b/ports/sysdeps/mips/bits/atomic.h
index c5a26b927d..3466df749f 100644
--- a/ports/sysdeps/mips/bits/atomic.h
+++ b/ports/sysdeps/mips/bits/atomic.h
@@ -209,10 +209,10 @@ typedef uintmax_t uatomic_max_t;
in which values are returned. */
# define __arch_compare_and_exchange_xxx_8_int(mem, newval, oldval, rel, acq) \
- (abort (), __prev = __cmp = 0)
+ (abort (), __prev = 0, __cmp = 0, (void) __cmp)
# define __arch_compare_and_exchange_xxx_16_int(mem, newval, oldval, rel, acq) \
- (abort (), __prev = __cmp = 0)
+ (abort (), __prev = 0, __cmp = 0, (void) __cmp)
# define __arch_compare_and_exchange_xxx_32_int(mem, newval, oldval, rel, acq) \
__asm__ __volatile__ ( \
@@ -236,7 +236,7 @@ typedef uintmax_t uatomic_max_t;
# if _MIPS_SIM == _ABIO32
/* We can't do an atomic 64-bit operation in O32. */
# define __arch_compare_and_exchange_xxx_64_int(mem, newval, oldval, rel, acq) \
- (abort (), __prev = __cmp = 0)
+ (abort (), __prev = 0, __cmp = 0, (void) __cmp)
# else
# define __arch_compare_and_exchange_xxx_64_int(mem, newval, oldval, rel, acq) \
__asm__ __volatile__ ("\n" \