Print this page
11175 libm should use signbit() correctly
11188 c99 math macros should return strictly backward compatible values
*** 64,80 ****
* C99 7.12.3 classification macros
*/
#undef isnan
#undef isinf
#if __GNUC__ >= 4
- #define isnan(x) __builtin_isnan(x)
- #define isinf(x) __builtin_isinf(x)
#define fpclassify(x) __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, \
FP_SUBNORMAL, FP_ZERO, x)
! #define isfinite(x) __builtin_isfinite(x)
! #define isnormal(x) __builtin_isnormal(x)
! #define signbit(x) (__builtin_signbit(x) > 0)
#else /* __GNUC__ >= 4 */
#define isnan(x) __extension__( \
{ __typeof(x) __x_n = (x); \
__builtin_isunordered(__x_n, __x_n); })
#define isinf(x) __extension__( \
--- 64,80 ----
* C99 7.12.3 classification macros
*/
#undef isnan
#undef isinf
#if __GNUC__ >= 4
#define fpclassify(x) __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, \
FP_SUBNORMAL, FP_ZERO, x)
! #define isnan(x) __builtin_isnan(x)
! #define isinf(x) __builtin_isinf(x)
! #define isfinite(x) (__builtin_isfinite(x) != 0)
! #define isnormal(x) (__builtin_isnormal(x) != 0)
! #define signbit(x) (__builtin_signbit(x) != 0)
#else /* __GNUC__ >= 4 */
#define isnan(x) __extension__( \
{ __typeof(x) __x_n = (x); \
__builtin_isunordered(__x_n, __x_n); })
#define isinf(x) __extension__( \