Fix powerpc fpu_control.h namespace and parenthesis issues (bug 15966).

This commit is contained in:
Joseph Myers 2013-09-17 21:28:19 +00:00
parent cd90698b54
commit 11ca09e932
3 changed files with 22 additions and 13 deletions

View File

@ -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

2
NEWS
View File

@ -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

View 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. */