Fix powerpc fpu_control.h namespace and parenthesis issues (bug 15966).
authorJoseph Myers <joseph@codesourcery.com>
Tue, 17 Sep 2013 21:28:19 +0000 (21:28 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Tue, 17 Sep 2013 21:28:19 +0000 (21:28 +0000)
ChangeLog
NEWS
sysdeps/powerpc/fpu_control.h

index b6bf6c3..4090721 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2013-09-17  Joseph Myers  <joseph@codesourcery.com>
+
+       [BZ #15966]
+       * sysdeps/powerpc/fpu_control.h [!_SOFT_FLOAT && !__NO_FPRS__]
+       (_FPU_GETCW): Use initial "__" on variable and field names but not
+       on macro parameter name.
+       [!_SOFT_FLOAT && !__NO_FPRS__] (_FPU_SETCW): Likewise.  Use
+       parentheses around reference to macro parameter.
+
 2013-09-13  Richard Sandiford  <richard@codesourcery.com>
 
        * locale/programs/ld-ctype.c (find_idx): Use uint32_t in
diff --git a/NEWS b/NEWS
index af58b75..e72e937 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -11,7 +11,7 @@ Version 2.19
 
   14155, 14699, 15427, 15522, 15531, 15532, 15736, 15748, 15749, 15797,
   15844, 15849, 15855, 15856, 15857, 15867, 15886, 15887, 15890, 15892,
-  15893, 15895, 15897, 15905, 15909, 15921, 15939.
+  15893, 15895, 15897, 15905, 15909, 15921, 15939, 15966.
 
 * CVE-2013-4237 The readdir_r function could write more than NAME_MAX bytes
   to the d_name member of struct dirent, or omit the terminating NUL
index 159543b..1a6d395 100644 (file)
@@ -59,18 +59,18 @@ extern fpu_control_t __fpu_control;
 typedef unsigned int fpu_control_t __attribute__ ((__mode__ (__SI__)));
 
 /* Macros for accessing the hardware control word.  */
-# define _FPU_GETCW(__cw) ( { \
-  union { double d; fpu_control_t cw[2]; } \
-    tmp __attribute__ ((__aligned__(8))); \
-  __asm__ ("mffs 0; stfd%U0 0,%0" : "=m" (tmp.d) : : "fr0"); \
-  (__cw)=tmp.cw[1]; \
-  tmp.cw[1]; } )
-# define _FPU_SETCW(__cw) { \
-  union { double d; fpu_control_t cw[2]; } \
-    tmp __attribute__ ((__aligned__(8))); \
-  tmp.cw[0] = 0xFFF80000; /* More-or-less arbitrary; this is a QNaN. */ \
-  tmp.cw[1] = __cw; \
-  __asm__ ("lfd%U0 0,%0; mtfsf 255,0" : : "m" (tmp.d) : "fr0"); \
+# define _FPU_GETCW(cw) ( { \
+  union { double __d; fpu_control_t __cw[2]; } \
+    __tmp __attribute__ ((__aligned__(8))); \
+  __asm__ ("mffs 0; stfd%U0 0,%0" : "=m" (__tmp.__d) : : "fr0"); \
+  (cw) = __tmp.__cw[1]; \
+  __tmp.__cw[1]; } )
+# define _FPU_SETCW(cw) { \
+  union { double __d; fpu_control_t __cw[2]; } \
+    __tmp __attribute__ ((__aligned__(8))); \
+  __tmp.__cw[0] = 0xFFF80000; /* More-or-less arbitrary; this is a QNaN. */ \
+  __tmp.__cw[1] = (cw);                                                        \
+  __asm__ ("lfd%U0 0,%0; mtfsf 255,0" : : "m" (__tmp.__d) : "fr0"); \
 }
 
 /* Default control word set at startup.  */