Fix warnings from aborting MIPS atomic macros.
authorJoseph Myers <joseph@codesourcery.com>
Tue, 20 Nov 2012 00:56:29 +0000 (00:56 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Tue, 20 Nov 2012 00:56:29 +0000 (00:56 +0000)
ports/ChangeLog.mips
ports/sysdeps/mips/bits/atomic.h

index 7472aa3..2a77f26 100644 (file)
@@ -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
index c5a26b9..3466df7 100644 (file)
@@ -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"                                                      \