std_limits.h (__glibcpp_f32_infinity_bytes, [...]): Remove.

* include/std/std_limits.h (__glibcpp_f32_infinity_bytes,
        __glibcpp_f32_has_infinity, __glibcpp_f64_infinity_bytes,
        __glibcpp_f64_has_infinity, __glibcpp_f80_infinity_bytes,
        __glibcpp_f80_has_infinity, __glibcpp_f96_infinity_bytes,
        __glibcpp_f96_has_infinity, __glibcpp_f128_infinity_bytes,
        __glibcpp_f128_has_infinity, __glibcpp_float_infinity_bytes,
        __glibcpp_float_has_infinity, __glibcpp_double_infinity_bytes,
        __glibcpp_double_has_infinity, __glibcpp_long_double_infinity_bytes,
        __glibcpp_long_double_has_infinity): Remove.
        (std::numeric_limits<float>, std::numeric_limits<double>,
        std::numeric_limits<long double>): Use __builtin_huge_val
        to implement has_infinity and infinity().
        * src/limits.cc (__glibcpp_float_infinity, __glibcpp_double_infinity,
        __glibcpp_long_double_infinity): Remove.

From-SVN: r56821
This commit is contained in:
Richard Henderson 2002-09-04 16:22:18 -07:00 committed by Richard Henderson
parent ab5e26156f
commit 65e32b88a6
3 changed files with 26 additions and 94 deletions

View File

@ -1,3 +1,20 @@
2002-09-04 Richard Henderson <rth@redhat.com>
* include/std/std_limits.h (__glibcpp_f32_infinity_bytes,
__glibcpp_f32_has_infinity, __glibcpp_f64_infinity_bytes,
__glibcpp_f64_has_infinity, __glibcpp_f80_infinity_bytes,
__glibcpp_f80_has_infinity, __glibcpp_f96_infinity_bytes,
__glibcpp_f96_has_infinity, __glibcpp_f128_infinity_bytes,
__glibcpp_f128_has_infinity, __glibcpp_float_infinity_bytes,
__glibcpp_float_has_infinity, __glibcpp_double_infinity_bytes,
__glibcpp_double_has_infinity, __glibcpp_long_double_infinity_bytes,
__glibcpp_long_double_has_infinity): Remove.
(std::numeric_limits<float>, std::numeric_limits<double>,
std::numeric_limits<long double>): Use __builtin_huge_val
to implement has_infinity and infinity().
* src/limits.cc (__glibcpp_float_infinity, __glibcpp_double_infinity,
__glibcpp_long_double_infinity): Remove.
2002-09-03 Richard Henderson <rth@redhat.com>
* include/std/std_limits.h (__glibcpp_f32_min, __glibcpp_f32_max,

View File

@ -152,8 +152,6 @@
#define __glibcpp_f32_round_error 1.0F
#if __GCC_FLOAT_FORMAT__ == __IEEE_FORMAT__
# define __glibcpp_f32_infinity_bytes { 0x7f800000 }
# define __glibcpp_f32_has_infinity true
# define __glibcpp_f32_QNaN_bytes { 0x7fc00000 }
# define __glibcpp_f32_has_QNaN true
# define __glibcpp_f32_SNaN_bytes { 0x7f800001 }
@ -162,10 +160,6 @@
# define __glibcpp_f32_has_denorm denorm_present
# define __glibcpp_f32_is_iec559 true
#endif
#ifndef __glibcpp_f32_infinity_bytes
# define __glibcpp_f32_infinity_bytes { }
# define __glibcpp_f32_has_infinity false
#endif
#ifndef __glibcpp_f32_QNaN_bytes
# define __glibcpp_f32_QNaN_bytes { }
# define __glibcpp_f32_has_QNaN false
@ -184,26 +178,19 @@
#define __glibcpp_f64_round_error 1.0
#if __GCC_FLOAT_FORMAT__ == __IEEE_FORMAT__
# if __TARGET_FLOAT_WORDS_ORDER__ == __GCC_BIG_ENDIAN__
# define __glibcpp_f64_infinity_bytes { 0x7ff00000, 0x0 }
# define __glibcpp_f64_QNaN_bytes { 0x7ff80000, 0x0 }
# define __glibcpp_f64_SNaN_bytes { 0x7ff00000, 0x1 }
# define __glibcpp_f64_denorm_min_bytes { 0x0, 0x1 }
# else
# define __glibcpp_f64_infinity_bytes { 0x0, 0x7ff00000 }
# define __glibcpp_f64_QNaN_bytes { 0x0, 0x7ff80000 }
# define __glibcpp_f64_SNaN_bytes { 0x1, 0x7ff00000 }
# define __glibcpp_f64_denorm_min_bytes { 0x1, 0x0 }
# endif
# define __glibcpp_f64_has_infinity true
# define __glibcpp_f64_has_QNaN true
# define __glibcpp_f64_has_SNaN true
# define __glibcpp_f64_has_denorm denorm_present
# define __glibcpp_f64_is_iec559 true
#endif
#ifndef __glibcpp_f64_infinity_bytes
# define __glibcpp_f64_infinity_bytes { }
# define __glibcpp_f64_has_infinity false
#endif
#ifndef __glibcpp_f64_QNaN_bytes
# define __glibcpp_f64_QNaN_bytes { }
# define __glibcpp_f64_has_QNaN false
@ -222,8 +209,6 @@
#define __glibcpp_f80_round_error 1.0L
#if __GCC_FLOAT_FORMAT__ == __IEEE_FORMAT__
# if __TARGET_BYTES_ORDER__ == __GCC_BIG_ENDIAN__
# define __glibcpp_f80_infinity_bytes \
{ 0x7f, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }
# define __glibcpp_f80_QNaN_bytes \
{ 0x7f, 0xff, 0xC0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }
# define __glibcpp_f80_SNaN_bytes \
@ -231,8 +216,6 @@
# define __glibcpp_f80_denorm_min_bytes \
{ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1 }
# else
# define __glibcpp_f80_infinity_bytes \
{ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0xff, 0x7f }
# define __glibcpp_f80_QNaN_bytes \
{ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xC0, 0xff, 0x7f }
# define __glibcpp_f80_SNaN_bytes \
@ -240,16 +223,11 @@
# define __glibcpp_f80_denorm_min_bytes \
{ 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }
# endif
# define __glibcpp_f80_has_infinity true
# define __glibcpp_f80_has_QNaN true
# define __glibcpp_f80_has_SNaN true
# define __glibcpp_f80_has_denorm denorm_present
# define __glibcpp_f80_is_iec559 true
#endif
#ifndef __glibcpp_f80_infinity_bytes
# define __glibcpp_f80_infinity_bytes { }
# define __glibcpp_f80_has_infinity false
#endif
#ifndef __glibcpp_f80_QNaN_bytes
# define __glibcpp_f80_QNaN_bytes { }
# define __glibcpp_f80_has_QNaN false
@ -268,26 +246,19 @@
#define __glibcpp_f96_round_error 1.0L
#if __GCC_FLOAT_FORMAT__ == __IEEE_FORMAT__
# if __TARGET_BYTES_ORDER__ == __GCC_BIG_ENDIAN__
# define __glibcpp_f96_infinity_bytes { 0x7ff0000, 0x0, 0x0 }
# define __glibcpp_f96_QNaN_bytes { 0x7ff80000, 0x0, 0x0 }
# define __glibcpp_f96_SNaN_bytes { 0x7ff00000, 0x0, 0x1 }
# define __glibcpp_f96_denorm_min_bytes { 0x0, 0x0, 0x1 }
# else
# define __glibcpp_f96_infinity_bytes { 0x0, 0x0, 0x7ff0000 }
# define __glibcpp_f96_QNaN_bytes { 0x0, 0x0, 0x7ff80000 }
# define __glibcpp_f96_SNaN_bytes { 0x1, 0x0, 0x7ff00000 }
# define __glibcpp_f96_denorm_min_bytes { 0x1, 0x0, 0x0 }
# endif
# define __glibcpp_f96_has_infinity true
# define __glibcpp_f96_has_QNaN true
# define __glibcpp_f96_has_SNaN true
# define __glibcpp_f96_has_denorm denorm_present
# define __glibcpp_f96_is_iec559 true
#endif
#ifndef __glibcpp_f96_infinity_bytes
# define __glibcpp_f96_infinity_bytes { }
# define __glibcpp_f96_has_infinity false
#endif
#ifndef __glibcpp_f96_QNaN_bytes
# define __glibcpp_f96_QNaN_bytes { }
# define __glibcpp_f96_has_QNaN false
@ -303,25 +274,18 @@
#define __glibcpp_f128_round_error 1.0L
#if __GCC_FLOAT_FORMAT__ == __IEEE_FORMAT__
# if __TARGET_FLOAT_WORDS_ORDER__ == __GCC_BIG_ENDIAN__
# define __glibcpp_f128_infinity_bytes { 0x7fff0000, 0x0, 0x0, 0x0 }
# define __glibcpp_f128_QNaN_bytes { 0x7fff0800, 0x0, 0x0, 0x0 }
# define __glibcpp_f128_SNaN_bytes { 0x7fff0000, 0x0, 0x0, 0x1 }
# define __glibcpp_f128_denorm_min_bytes { 0x0, 0x0, 0x0, 0x1 }
# else
# define __glibcpp_f128_infinity_bytes { 0x0, 0x0, 0x0, 0x7fff0000 }
# define __glibcpp_f128_QNaN_bytes { 0x0, 0x0, 0x0, 0x7fff0800 }
# define __glibcpp_f128_SNaN_bytes { 0x1, 0x0, 0x0, 0x7fff0000 }
# define __glibcpp_f128_denorm_min_bytes { 0x1, 0x0, 0x0, 0x0 }
# endif
# define __glibcpp_f128_has_infinity true
# define __glibcpp_f128_has_QNaN true
# define __glibcpp_f128_has_SNaN true
# define __glibcpp_f128_has_denorm denorm_present
#endif
#ifndef __glibcpp_f128_infinity_bytes
# define __glibcpp_f128_infinity_bytes { }
# define __glibcpp_f128_has_infinity false
#endif
#ifndef __glibcpp_f128_QNaN_bytes
# define __glibcpp_f128_QNaN_bytes { }
# define __glibcpp_f128_has_QNaN false
@ -659,33 +623,27 @@
#if __FLOAT_BIT__ == 32
# define __glibcpp_float_round_error __glibcpp_f32_round_error
# define __glibcpp_float_infinity_bytes __glibcpp_f32_infinity_bytes
# define __glibcpp_float_QNaN_bytes __glibcpp_f32_QNaN_bytes
# define __glibcpp_float_SNaN_bytes __glibcpp_f32_SNaN_bytes
# define __glibcpp_float_denorm_min_bytes __glibcpp_f32_denorm_min_bytes
# define __glibcpp_float_has_infinity __glibcpp_f32_has_infinity
# define __glibcpp_float_has_QNaN __glibcpp_f32_has_QNaN
# define __glibcpp_float_has_SNaN __glibcpp_f32_has_SNaN
# define __glibcpp_float_has_denorm __glibcpp_f32_has_denorm
# define __glibcpp_float_is_iec559 __glibcpp_f32_is_iec559
#elif __FLOAT_BIT__ == 64
# define __glibcpp_float_round_error __glibcpp_f64_round_error
# define __glibcpp_float_infinity_bytes __glibcpp_f64_infinity_bytes
# define __glibcpp_float_QNaN_bytes __glibcpp_f64_QNaN_bytes
# define __glibcpp_float_SNaN_bytes __glibcpp_f64_SNaN_bytes
# define __glibcpp_float_denorm_min_bytes __glibcpp_f64_denorm_min_bytes
# define __glibcpp_float_has_infinity __glibcpp_f64_has_infinity
# define __glibcpp_float_has_QNaN __glibcpp_f64_has_QNaN
# define __glibcpp_float_has_SNaN __glibcpp_f64_has_SNaN
# define __glibcpp_float_has_denorm __glibcpp_f64_has_denorm
# define __glibcpp_float_is_iec559 __glibcpp_f64_is_iec559
#elif __FLOAT_BIT__ == 80
# define __glibcpp_float_round_error __glibcpp_f80_round_error
# define __glibcpp_float_infinity_bytes __glibcpp_f80_infinity_bytes
# define __glibcpp_float_QNaN_bytes __glibcpp_f80_QNaN_bytes
# define __glibcpp_float_SNaN_bytes __glibcpp_f80_SNaN_bytes
# define __glibcpp_float_denorm_min_bytes __glibcpp_f80_denorm_min_bytes
# define __glibcpp_float_has_infinity __glibcpp_f80_has_infinity
# define __glibcpp_float_has_QNaN __glibcpp_f80_has_QNaN
# define __glibcpp_float_has_SNaN __glibcpp_f80_has_SNaN
# define __glibcpp_float_has_denorm __glibcpp_f80_has_denorm
@ -696,11 +654,6 @@
// Default values. Should be overriden in configuration files if necessary.
#ifndef __glibcpp_float_infinity_bytes
# define __glibcpp_float_infinity_bytes { }
# define __glibcpp_float_has_infinty false
#endif
#ifndef __glibcpp_float_QNaN_bytes
# define __glibcpp_float_QNaN_bytes { }
# define __glibcpp_float_has_QNaN false
@ -748,33 +701,27 @@
#if __DOUBLE_BIT__ == 32
# define __glibcpp_double_round_error __glibcpp_f32_round_error
# define __glibcpp_double_infinity_bytes __glibcpp_f32_infinity_bytes
# define __glibcpp_double_QNaN_bytes __glibcpp_f32_QNaN_bytes
# define __glibcpp_double_SNaN_bytes __glibcpp_f32_SNaN_bytes
# define __glibcpp_double_denorm_min_bytes __glibcpp_f32_denorm_min_bytes
# define __glibcpp_double_has_infinity __glibcpp_f32_has_infinity
# define __glibcpp_double_has_QNaN __glibcpp_f32_has_QNaN
# define __glibcpp_double_has_SNaN __glibcpp_f32_has_SNaN
# define __glibcpp_double_has_denorm __glibcpp_f32_has_denorm
# define __glibcpp_double_is_iec559 __glibcpp_f32_is_iec559
#elif __DOUBLE_BIT__ == 64
# define __glibcpp_double_round_error __glibcpp_f64_round_error
# define __glibcpp_double_infinity_bytes __glibcpp_f64_infinity_bytes
# define __glibcpp_double_QNaN_bytes __glibcpp_f64_QNaN_bytes
# define __glibcpp_double_SNaN_bytes __glibcpp_f64_SNaN_bytes
# define __glibcpp_double_denorm_min_bytes __glibcpp_f64_denorm_min_bytes
# define __glibcpp_double_has_infinity __glibcpp_f64_has_infinity
# define __glibcpp_double_has_QNaN __glibcpp_f64_has_QNaN
# define __glibcpp_double_has_SNaN __glibcpp_f64_has_SNaN
# define __glibcpp_double_has_denorm __glibcpp_f64_has_denorm
# define __glibcpp_double_is_iec559 __glibcpp_f64_is_iec559
#elif __DOUBLE_BIT__ == 80
# define __glibcpp_double_round_error __glibcpp_f80_round_error
# define __glibcpp_double_infinity_bytes __glibcpp_f80_infinity_bytes
# define __glibcpp_double_QNaN_bytes __glibcpp_f80_QNaN_bytes
# define __glibcpp_double_SNaN_bytes __glibcpp_f80_SNaN_bytes
# define __glibcpp_double_denorm_min_bytes __glibcpp_f80_denorm_min_bytes
# define __glibcpp_double_has_infinity __glibcpp_f80_has_infinity
# define __glibcpp_double_has_QNaN __glibcpp_f80_has_QNaN
# define __glibcpp_double_has_SNaN __glibcpp_f80_has_SNaN
# define __glibcpp_double_has_denorm __glibcpp_f80_has_denorm
@ -785,11 +732,6 @@
// Default values. Should be overriden in configuration files if necessary.
#ifndef __glibcpp_double_infinity_bytes
# define __glibcpp_double_infinity_bytes { }
# define __glibcpp_double_has_infinty false
#endif
#ifndef __glibcpp_double_QNaN_bytes
# define __glibcpp_double_QNaN_bytes { }
# define __glibcpp_double_has_QNaN false
@ -837,55 +779,45 @@
#if __LONG_DOUBLE_BIT__ == 32
# define __glibcpp_long_double_round_error __glibcpp_f32_round_error
# define __glibcpp_long_double_infinity_bytes __glibcpp_f32_infinity_bytes
# define __glibcpp_long_double_QNaN_bytes __glibcpp_f32_QNaN_bytes
# define __glibcpp_long_double_SNaN_bytes __glibcpp_f32_SNaN_bytes
# define __glibcpp_long_double_denorm_min_bytes __glibcpp_f32_denorm_min_bytes
# define __glibcpp_long_double_has_infinity __glibcpp_f32_has_infinity
# define __glibcpp_long_double_has_QNaN __glibcpp_f32_has_QNaN
# define __glibcpp_long_double_has_SNaN __glibcpp_f32_has_SNaN
# define __glibcpp_long_double_has_denorm __glibcpp_f32_has_denorm
# define __glibcpp_long_double_is_iec559 __glibcpp_f32_is_iec559
#elif __LONG_DOUBLE_BIT__ == 64
# define __glibcpp_long_double_round_error __glibcpp_f64_round_error
# define __glibcpp_long_double_infinity_bytes __glibcpp_f64_infinity_bytes
# define __glibcpp_long_double_QNaN_bytes __glibcpp_f64_QNaN_bytes
# define __glibcpp_long_double_SNaN_bytes __glibcpp_f64_SNaN_bytes
# define __glibcpp_long_double_denorm_min_bytes __glibcpp_f64_denorm_min_bytes
# define __glibcpp_long_double_has_infinity __glibcpp_f64_has_infinity
# define __glibcpp_long_double_has_QNaN __glibcpp_f64_has_QNaN
# define __glibcpp_long_double_has_SNaN __glibcpp_f64_has_SNaN
# define __glibcpp_long_double_has_denorm __glibcpp_f64_has_denorm
# define __glibcpp_long_double_is_iec559 __glibcpp_f64_is_iec559
#elif __LONG_DOUBLE_BIT__ == 80
# define __glibcpp_long_double_round_error __glibcpp_f80_round_error
# define __glibcpp_long_double_infinity_bytes __glibcpp_f80_infinity_bytes
# define __glibcpp_long_double_QNaN_bytes __glibcpp_f80_QNaN_bytes
# define __glibcpp_long_double_SNaN_bytes __glibcpp_f80_SNaN_bytes
# define __glibcpp_long_double_denorm_min_bytes __glibcpp_f80_denorm_min_bytes
# define __glibcpp_long_double_has_infinity __glibcpp_f80_has_infinity
# define __glibcpp_long_double_has_QNaN __glibcpp_f80_has_QNaN
# define __glibcpp_long_double_has_SNaN __glibcpp_f80_has_SNaN
# define __glibcpp_long_double_has_denorm __glibcpp_f80_has_denorm
# define __glibcpp_long_double_is_iec559 __glibcpp_f80_is_iec559
#elif __LONG_DOUBLE_BIT__ == 96
# define __glibcpp_long_double_round_error __glibcpp_f96_round_error
# define __glibcpp_long_double_infinity_bytes __glibcpp_f96_infinity_bytes
# define __glibcpp_long_double_QNaN_bytes __glibcpp_f96_QNaN_bytes
# define __glibcpp_long_double_SNaN_bytes __glibcpp_f96_SNaN_bytes
# define __glibcpp_long_double_denorm_min_bytes __glibcpp_f96_denorm_min_bytes
# define __glibcpp_long_double_has_infinity __glibcpp_f96_has_infinity
# define __glibcpp_long_double_has_QNaN __glibcpp_f96_has_QNaN
# define __glibcpp_long_double_has_SNaN __glibcpp_f96_has_SNaN
# define __glibcpp_long_double_has_denorm __glibcpp_f96_has_denorm
# define __glibcpp_long_double_is_iec559 __glibcpp_f96_is_iec559
#elif __LONG_DOUBLE_BIT__ == 128
# define __glibcpp_long_double_round_error __glibcpp_f128_round_error
# define __glibcpp_long_double_infinity_bytes __glibcpp_f128_infinity_bytes
# define __glibcpp_long_double_QNaN_bytes __glibcpp_f128_QNaN_bytes
# define __glibcpp_long_double_SNaN_bytes __glibcpp_f128_SNaN_bytes
# define __glibcpp_long_double_denorm_min_bytes __glibcpp_f128_denorm_min_bytes
# define __glibcpp_long_double_has_infinity __glibcpp_f128_has_infinity
# define __glibcpp_long_double_has_QNaN __glibcpp_f128_has_QNaN
# define __glibcpp_long_double_has_SNaN __glibcpp_f128_has_SNaN
# define __glibcpp_long_double_has_denorm __glibcpp_f128_has_denorm
@ -896,11 +828,6 @@
// Default values. Should be overriden in configuration files if necessary.
#ifndef __glibcpp_long_double_infinity_bytes
# define __glibcpp_long_double_infinity_bytes { }
# define __glibcpp_long_double_has_infinty false
#endif
#ifndef __glibcpp_long_double_QNaN_bytes
# define __glibcpp_long_double_QNaN_bytes { }
# define __glibcpp_long_double_has_QNaN false
@ -989,17 +916,14 @@ namespace std
#endif
__attribute__((__aligned__(__alignof__(long double))));
extern const __float_storage __glibcpp_float_infinity;
extern const __float_storage __glibcpp_float_QNaN;
extern const __float_storage __glibcpp_float_SNaN;
extern const __float_storage __glibcpp_float_denorm_min;
extern const __double_storage __glibcpp_double_infinity;
extern const __double_storage __glibcpp_double_QNaN;
extern const __double_storage __glibcpp_double_SNaN;
extern const __double_storage __glibcpp_double_denorm_min;
extern const __long_double_storage __glibcpp_long_double_infinity;
extern const __long_double_storage __glibcpp_long_double_QNaN;
extern const __long_double_storage __glibcpp_long_double_SNaN;
extern const __long_double_storage __glibcpp_long_double_denorm_min;
@ -1830,14 +1754,15 @@ namespace std
static const int max_exponent = __FLT_MAX_EXP__;
static const int max_exponent10 = __FLT_MAX_10_EXP__;
static const bool has_infinity = __glibcpp_float_has_infinity;
static const bool has_infinity
= __builtin_huge_valf () / 2 == __builtin_huge_valf ();
static const bool has_quiet_NaN = __glibcpp_float_has_QNaN;
static const bool has_signaling_NaN = __glibcpp_float_has_SNaN;
static const float_denorm_style has_denorm = __glibcpp_float_has_denorm;
static const bool has_denorm_loss = __glibcpp_float_has_denorm_loss;
static float infinity() throw()
{ return *reinterpret_cast<const float*>(__glibcpp_float_infinity); }
{ return __builtin_huge_valf (); }
static float quiet_NaN() throw()
{ return *reinterpret_cast<const float*>(__glibcpp_float_QNaN); }
static float signaling_NaN() throw()
@ -1855,7 +1780,6 @@ namespace std
};
#undef __glibcpp_float_round_error
#undef __glibcpp_float_has_infinity
#undef __glibcpp_float_has_QNaN
#undef __glibcpp_float_has_SNaN
#undef __glibcpp_float_has_denorm
@ -1893,7 +1817,8 @@ namespace std
static const int max_exponent = __DBL_MAX_EXP__;
static const int max_exponent10 = __DBL_MAX_10_EXP__;
static const bool has_infinity = __glibcpp_double_has_infinity;
static const bool has_infinity
= __builtin_huge_val () / 2 == __builtin_huge_val ();
static const bool has_quiet_NaN = __glibcpp_double_has_QNaN;
static const bool has_signaling_NaN = __glibcpp_double_has_SNaN;
static const float_denorm_style has_denorm =
@ -1901,7 +1826,7 @@ namespace std
static const bool has_denorm_loss = __glibcpp_double_has_denorm_loss;
static double infinity() throw()
{ return *reinterpret_cast<const double*>(__glibcpp_double_infinity); }
{ return __builtin_huge_val(); }
static double quiet_NaN() throw()
{ return *reinterpret_cast<const double*>(__glibcpp_double_QNaN); }
static double signaling_NaN() throw()
@ -1920,7 +1845,6 @@ namespace std
};
#undef __glibcpp_double_round_error
#undef __glibcpp_double_has_infinity
#undef __glibcpp_double_has_QNaN
#undef __glibcpp_double_has_SNaN
#undef __glibcpp_double_has_denorm
@ -1959,7 +1883,8 @@ namespace std
static const int max_exponent = __LDBL_MAX_EXP__;
static const int max_exponent10 = __LDBL_MAX_10_EXP__;
static const bool has_infinity = __glibcpp_long_double_has_infinity;
static const bool has_infinity
= __builtin_huge_vall () / 2 == __builtin_huge_vall ();
static const bool has_quiet_NaN = __glibcpp_long_double_has_SNaN;
static const bool has_signaling_NaN = __glibcpp_long_double_has_SNaN;
static const float_denorm_style has_denorm =
@ -1968,10 +1893,7 @@ namespace std
__glibcpp_long_double_has_denorm_loss;
static long double infinity() throw()
{
return *reinterpret_cast<const long double*>
(__glibcpp_long_double_infinity);
}
{ return __builtin_huge_vall (); }
static long double quiet_NaN() throw()
{
@ -2002,7 +1924,6 @@ namespace std
};
#undef __glibcpp_long_double_round_error
#undef __glibcpp_long_double_has_infinity
#undef __glibcpp_long_double_has_QNaN
#undef __glibcpp_long_double_has_SNaN
#undef __glibcpp_long_double_has_denorm

View File

@ -38,22 +38,16 @@
namespace std
{
const __float_storage __glibcpp_float_infinity =
__glibcpp_float_infinity_bytes;
const __float_storage __glibcpp_float_QNaN = __glibcpp_float_QNaN_bytes;
const __float_storage __glibcpp_float_SNaN = __glibcpp_float_SNaN_bytes;
const __float_storage __glibcpp_float_denorm_min =
__glibcpp_float_denorm_min_bytes;
const __double_storage __glibcpp_double_infinity =
__glibcpp_double_infinity_bytes;
const __double_storage __glibcpp_double_QNaN = __glibcpp_double_QNaN_bytes;
const __double_storage __glibcpp_double_SNaN = __glibcpp_double_SNaN_bytes;
const __double_storage __glibcpp_double_denorm_min =
__glibcpp_double_denorm_min_bytes;
const __long_double_storage __glibcpp_long_double_infinity =
__glibcpp_long_double_infinity_bytes;
const __long_double_storage __glibcpp_long_double_QNaN =
__glibcpp_long_double_QNaN_bytes;
const __long_double_storage __glibcpp_long_double_SNaN =