diff options
author | Ulrich Drepper <drepper@redhat.com> | 2004-12-22 20:10:10 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2004-12-22 20:10:10 +0000 |
commit | a334319f6530564d22e775935d9c91663623a1b4 (patch) | |
tree | b5877475619e4c938e98757d518bb1e9cbead751 /math/test-misc.c | |
parent | 0ecb606cb6cf65de1d9fc8a919bceb4be476c602 (diff) | |
download | glibc-a334319f6530564d22e775935d9c91663623a1b4.tar glibc-a334319f6530564d22e775935d9c91663623a1b4.tar.gz glibc-a334319f6530564d22e775935d9c91663623a1b4.tar.bz2 glibc-a334319f6530564d22e775935d9c91663623a1b4.zip |
(CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4.
Diffstat (limited to 'math/test-misc.c')
-rw-r--r-- | math/test-misc.c | 114 |
1 files changed, 11 insertions, 103 deletions
diff --git a/math/test-misc.c b/math/test-misc.c index 862e11f0c3..fa958d486c 100644 --- a/math/test-misc.c +++ b/math/test-misc.c @@ -1,5 +1,5 @@ /* Miscellaneous tests which don't fit anywhere else. - Copyright (C) 2000, 2001, 2004, 2005, 2007 Free Software Foundation, Inc. + Copyright (C) 2000, 2001 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -44,6 +44,7 @@ main (void) } } +# if __GNUC__ >= 3 || __GNUC_MINOR__ >= 96 { long double x; long double m; @@ -51,17 +52,17 @@ main (void) int e; int i; -# if LDBL_MANT_DIG == 64 +# if LDBL_MANT_DIG == 64 m = 0xf.fffffffffffffffp-4L; -# elif LDBL_MANT_DIG == 106 +# elif LDBL_MANT_DIG == 106 /* This has to match the mantissa of LDBL_MAX which actually does have a missing bit in the middle. */ m = 0x1.fffffffffffff7ffffffffffff8p-1L; -# elif LDBL_MANT_DIG == 113 +# elif LDBL_MANT_DIG == 113 m = 0x1.ffffffffffffffffffffffffffffp-1L; -# else -# error "Please adjust" -# endif +# else +# error "Please adjust" +# endif for (i = LDBL_MAX_EXP, x = LDBL_MAX; i >= LDBL_MIN_EXP; --i, x /= 2.0L) { @@ -105,8 +106,9 @@ main (void) } } +# endif -# if 0 +#if 0 { int e; long double r = frexpl (LDBL_MIN * LDBL_EPSILON, &e); @@ -124,7 +126,7 @@ main (void) result = 1; } } -# endif +#endif #endif { @@ -1141,99 +1143,5 @@ main (void) } #endif - /* The tests here are very similar to tests earlier in this file, - the important difference is just that there are no intervening - union variables that cause some GCC versions to hide possible - bugs in nextafter* implementation. */ - if (nextafterf (nextafterf (FLT_MIN, FLT_MIN / 2.0), FLT_MIN) != FLT_MIN) - { - puts ("nextafterf FLT_MIN test failed"); - result = 1; - } - if (nextafterf (nextafterf (-FLT_MIN, -FLT_MIN / 2.0), -FLT_MIN) - != -FLT_MIN) - { - puts ("nextafterf -FLT_MIN test failed"); - result = 1; - } - if (nextafter (nextafter (DBL_MIN, DBL_MIN / 2.0), DBL_MIN) != DBL_MIN) - { - puts ("nextafter DBL_MIN test failed"); - result = 1; - } - if (nextafter (nextafter (-DBL_MIN, -DBL_MIN / 2.0), -DBL_MIN) != -DBL_MIN) - { - puts ("nextafter -DBL_MIN test failed"); - result = 1; - } -#ifndef NO_LONG_DOUBLE - if (nextafterl (nextafterl (LDBL_MIN, LDBL_MIN / 2.0), LDBL_MIN) - != LDBL_MIN) - { - puts ("nextafterl LDBL_MIN test failed"); - result = 1; - } - if (nextafterl (nextafterl (-LDBL_MIN, -LDBL_MIN / 2.0), -LDBL_MIN) - != -LDBL_MIN) - { - puts ("nextafterl -LDBL_MIN test failed"); - result = 1; - } -#endif - - volatile float f1 = FLT_MAX; - volatile float f2 = FLT_MAX / 2; - (void) &f1; - (void) &f2; - feclearexcept (FE_ALL_EXCEPT); - f2 += f1; - int fe = fetestexcept (FE_ALL_EXCEPT); - if (fe != (FE_OVERFLOW | FE_INEXACT)) - { - printf ("float overflow test failed: %x\n", fe); - result = 1; - } - - volatile double d1 = DBL_MAX; - volatile double d2 = DBL_MAX / 2; - (void) &d1; - (void) &d2; - feclearexcept (FE_ALL_EXCEPT); - d2 += d1; - fe = fetestexcept (FE_ALL_EXCEPT); - if (fe != (FE_OVERFLOW | FE_INEXACT)) - { - printf ("double overflow test failed: %x\n", fe); - result = 1; - } - -#ifndef NO_LONG_DOUBLE - volatile long double ld1 = LDBL_MAX; - volatile long double ld2 = LDBL_MAX / 2; - (void) &ld1; - (void) &ld2; - feclearexcept (FE_ALL_EXCEPT); - ld2 += ld1; - fe = fetestexcept (FE_ALL_EXCEPT); - if (fe != (FE_OVERFLOW | FE_INEXACT)) - { - printf ("long double overflow test failed: %x\n", fe); - result = 1; - } -#endif - -#if !defined NO_LONG_DOUBLE && LDBL_MANT_DIG == 113 - volatile long double ld3 = 0x1.0000000000010000000100000001p+1; - volatile long double ld4 = 0x1.0000000000000000000000000001p+1; - (void) &ld3; - (void) &ld4; - ld3 -= ld4; - if (ld3 != 0x1.0p-47) - { - printf ("long double subtraction test failed %.28La\n", ld3); - result = 1; - } -#endif - return result; } |