aboutsummaryrefslogtreecommitdiff
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.zip
glibc-11ca09e932517ea361cb9388bd35e1c7a957bfc3.tar.gz
glibc-11ca09e932517ea361cb9388bd35e1c7a957bfc3.tar.bz2
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 b6bf6c3..4090721 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 af58b75..e72e937 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 159543b..1a6d395 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. */