about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2013-09-17 21:28:19 +0000
committerJoseph Myers <joseph@codesourcery.com>2013-09-17 21:28:19 +0000
commit11ca09e932517ea361cb9388bd35e1c7a957bfc3 (patch)
tree1888eb0d4f3d40df6cd44377b023159317f7c441
parentcd90698b541046c22544c2c057a4676368fd1d7f (diff)
downloadglibc-11ca09e932517ea361cb9388bd35e1c7a957bfc3.tar.gz
glibc-11ca09e932517ea361cb9388bd35e1c7a957bfc3.tar.xz
glibc-11ca09e932517ea361cb9388bd35e1c7a957bfc3.zip
Fix powerpc fpu_control.h namespace and parenthesis issues (bug 15966).
-rw-r--r--ChangeLog9
-rw-r--r--NEWS2
-rw-r--r--sysdeps/powerpc/fpu_control.h24
3 files changed, 22 insertions, 13 deletions
diff --git a/ChangeLog b/ChangeLog
index b6bf6c3262..40907210b6 100644
--- 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 af58b752ea..e72e937436 100644
--- 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
diff --git a/sysdeps/powerpc/fpu_control.h b/sysdeps/powerpc/fpu_control.h
index 159543beed..1a6d395ca8 100644
--- a/sysdeps/powerpc/fpu_control.h
+++ b/sysdeps/powerpc/fpu_control.h
@@ -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.  */