From aaca11d8a11e4c04c7a5ed1db0adaf4a4c192853 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sat, 30 Sep 2000 22:03:51 +0000 Subject: Update. 2000-09-30 H.J. Lu * sysdeps/ieee754/ldbl-96/s_ceill.c (__ceill): Handle overflow. * sysdeps/ieee754/ldbl-96/s_floorl.c (__floorl): Likewise. 2000-09-29 H.J. Lu * math/libm-test.inc (init_max_error): Clear all exceptions before starting test. (acosh_test): Test for existence of function. (asinh_test): Likewise. (atan2_test): Likewise. (cabs_test): Likewise. (cacos_test): Likewise. (cacosh_test): Likewise. (casin_test): Likewise. (casinh_test): Likewise. (catan_test): Likewise. (catanh_test): Likewise. (ccos_test): Likewise. (ccosh_test): Likewise. (cexp_test): Likewise. (clog_test): Likewise. (clog10_test): Likewise. (cosh_test): Likewise. (cpow_test): Likewise. (csin_test): Likewise. (csinh_test): Likewise. (csqrt_test): Likewise. (ctan_test): Likewise. (ctanh_test): Likewise. (fmod_test): Likewise. (hypot_test): Likewise. (remainder_test): Likewise. (remquo_test): Likewise. (sincos_test): Likewise. (sinh_test): Likewise. (tanh_test): Likewise. 2000-09-29 H.J. Lu * sysdeps/ia64/ieee754.h: New file. * sysdeps/ia64/fpu/math_ldbl.h: New file. 2000-09-30 Jakub Jelinek * elf/ldconfig.h (FLAG_X8664_LIB64): Define. * sysdeps/unix/sysv/linux/i386/readelflib.c: New file. 2000-09-30 Ulrich Drepper * manual/charset.texi: Correct notations, reference to C90 amd 1, and some other details. * manual/ctype.texi: Likewise. Patches by Markus Kuhn . --- sysdeps/ieee754/ldbl-96/s_ceill.c | 9 +++++++-- sysdeps/ieee754/ldbl-96/s_floorl.c | 9 +++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) (limited to 'sysdeps/ieee754') diff --git a/sysdeps/ieee754/ldbl-96/s_ceill.c b/sysdeps/ieee754/ldbl-96/s_ceill.c index d53f3954ba..b99097f812 100644 --- a/sysdeps/ieee754/ldbl-96/s_ceill.c +++ b/sysdeps/ieee754/ldbl-96/s_ceill.c @@ -59,8 +59,13 @@ static long double huge = 1.0e4930; if(((i0&i)|i1)==0) return x; /* x is integral */ if(huge+x>0.0) { /* raise inexact flag */ if(sx==0) { - if (j0>0) i0 += (0x80000000)>>j0; - else ++se; + if (j0>0 && (i0+(0x80000000>>j0))>i0) + i0+=0x80000000>>j0; + else + { + i = 0x7fffffff; + ++se; + } } i0 &= (~i); i1=0; } diff --git a/sysdeps/ieee754/ldbl-96/s_floorl.c b/sysdeps/ieee754/ldbl-96/s_floorl.c index fb0c37e801..7115dbad9b 100644 --- a/sysdeps/ieee754/ldbl-96/s_floorl.c +++ b/sysdeps/ieee754/ldbl-96/s_floorl.c @@ -60,8 +60,13 @@ static long double huge = 1.0e4930; if(((i0&i)|i1)==0) return x; /* x is integral */ if(huge+x>0.0) { /* raise inexact flag */ if(sx) { - if (j0>0) i0 += (0x80000000)>>j0; - else ++se; + if (j0>0 && (i0+(0x80000000>>j0))>i0) + i0 += (0x80000000)>>j0; + else + { + i = 0x7fffffff; + ++se; + } } i0 &= (~i); i1=0; } -- cgit v1.2.3