diff options
-rw-r--r-- | ChangeLog | 18 | ||||
-rw-r--r-- | sysdeps/generic/math_private.h | 10 | ||||
-rw-r--r-- | sysdeps/m68k/coldfire/nofpu/math_private.h | 8 | ||||
-rw-r--r-- | sysdeps/microblaze/math_private.h | 8 | ||||
-rw-r--r-- | sysdeps/nios2/math_private.h | 8 | ||||
-rw-r--r-- | sysdeps/tile/math_private.h | 4 |
6 files changed, 31 insertions, 25 deletions
diff --git a/ChangeLog b/ChangeLog index e1262c65f1..4a574f52c3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,23 @@ 2018-02-01 Joseph Myers <joseph@codesourcery.com> + * sysdeps/generic/math_private.h [FE_ALL_EXCEPT == 0] + (feraiseexcept): New macro. + [FE_ALL_EXCEPT == 0] (__feraiseexcept): Likewise. + * sysdeps/m68k/coldfire/nofpu/math_private.h (feraiseexcept): + Remove macro. + (__feraiseexcept): Likewise. + (feclearexcept): Likewise. + * sysdeps/microblaze/math_private.h (feraiseexcept): Likewise. + (__feraiseexcept): Likewise. + (feclearexcept): Likewise. + * sysdeps/nios2/math_private.h (feraiseexcept): Likewise. + (__feraiseexcept): Likewise. + (feclearexcept): Likewise. + * sysdeps/tile/math_private.h (feraiseexcept): Likewise. + (__feraiseexcept): Likewise. + (feclearexcept): Likewise. + (fetestexcept): Likewise. + * sysdeps/m68k/coldfire/math-tests.h: New file. * sysdeps/m68k/fpu/bits/fenv.h: Move to .... diff --git a/sysdeps/generic/math_private.h b/sysdeps/generic/math_private.h index e4b9d8697f..acfbd9b6cc 100644 --- a/sysdeps/generic/math_private.h +++ b/sysdeps/generic/math_private.h @@ -644,4 +644,14 @@ libc_feresetround_noex_ctx (struct rm_ctx *ctx) SET_RESTORE_ROUND_GENERIC (RM, libc_feholdsetround_53bit, \ libc_feresetround_53bit) +/* When no floating-point exceptions are defined in <fenv.h>, make + feraiseexcept ignore its argument so that unconditional + feraiseexcept calls do not cause errors for undefined exceptions. + Define it to expand to a void expression so that any calls testing + the result of feraiseexcept do produce errors. */ +#if FE_ALL_EXCEPT == 0 +# define feraiseexcept(excepts) ((void) 0) +# define __feraiseexcept(excepts) ((void) 0) +#endif + #endif /* _MATH_PRIVATE_H_ */ diff --git a/sysdeps/m68k/coldfire/nofpu/math_private.h b/sysdeps/m68k/coldfire/nofpu/math_private.h index 879577b551..951f026eac 100644 --- a/sysdeps/m68k/coldfire/nofpu/math_private.h +++ b/sysdeps/m68k/coldfire/nofpu/math_private.h @@ -30,9 +30,7 @@ success in every case. The overrides for libc_ functions must happen before we include - the generic math_private.h, and the overrides for regular - <fenv.h> functions must happen afterwards, to avoid clashing with - the declarations of those functions. */ + the generic math_private.h. */ #define libc_fesetround(rnd) ({ 0; }) #define libc_fetestexcept(exc) ({ 0; }) @@ -45,8 +43,4 @@ #include_next <math_private.h> -#define feraiseexcept(excepts) ({ 0; }) -#define __feraiseexcept(excepts) ({ 0; }) -#define feclearexcept(exc) ({ 0; }) - #endif diff --git a/sysdeps/microblaze/math_private.h b/sysdeps/microblaze/math_private.h index d82e8bf820..1a2c521c07 100644 --- a/sysdeps/microblaze/math_private.h +++ b/sysdeps/microblaze/math_private.h @@ -17,9 +17,7 @@ success in every case. The overrides for libc_ functions must happen before we include - the generic math_private.h, and the overrides for regular - <fenv.h> functions must happen afterwards, to avoid clashing with - the declarations of those functions. */ + the generic math_private.h. */ #define libc_fesetround(rnd) ({ 0; }) #define libc_fetestexcept(exc) ({ 0; }) @@ -32,8 +30,4 @@ #include_next <math_private.h> -#define feraiseexcept(excepts) ({ 0; }) -#define __feraiseexcept(excepts) ({ 0; }) -#define feclearexcept(exc) ({ 0; }) - #endif diff --git a/sysdeps/nios2/math_private.h b/sysdeps/nios2/math_private.h index 373da2a621..25140416a8 100644 --- a/sysdeps/nios2/math_private.h +++ b/sysdeps/nios2/math_private.h @@ -16,9 +16,7 @@ success in every case. The overrides for libc_ functions must happen before we include - the generic math_private.h, and the overrides for regular - <fenv.h> functions must happen afterwards, to avoid clashing with - the declarations of those functions. */ + the generic math_private.h. */ #define libc_fesetround(rnd) ({ 0; }) #define libc_fetestexcept(exc) ({ 0; }) @@ -31,8 +29,4 @@ #include_next <math_private.h> -#define feraiseexcept(excepts) ({ 0; }) -#define __feraiseexcept(excepts) ({ 0; }) -#define feclearexcept(exc) ({ 0; }) - #endif diff --git a/sysdeps/tile/math_private.h b/sysdeps/tile/math_private.h index 99daec4093..6dc43f4228 100644 --- a/sysdeps/tile/math_private.h +++ b/sysdeps/tile/math_private.h @@ -26,10 +26,6 @@ #include_next <math_private.h> -#define feraiseexcept(excepts) ({ 0; }) -#define __feraiseexcept(excepts) ({ 0; }) -#define feclearexcept(exc) ({ 0; }) -#define fetestexcept(exc) ({ 0; }) extern inline int fegetenv (fenv_t *__e) { return 0; } extern inline int __fegetenv (fenv_t *__e) { return 0; } extern inline int fesetenv (const fenv_t *__e) { return 0; } |