From: Ulrich Drepper Date: Sat, 25 Apr 2009 08:12:24 +0000 (+0000) Subject: * sysdeps/ieee754/k_standard.c (__kernel_standard): Pole errors X-Git-Tag: cvs/fedora-glibc-20090427T1419~21 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e971e76d8d248ce128641983e90b7cf6e81f2e4e;p=platform%2Fupstream%2Fglibc.git * sysdeps/ieee754/k_standard.c (__kernel_standard): Pole errors for lgamma should se errno to ERANGE, not EDOM. * math/libm-test.inc (lgamma_test): Check errno for pole errors. --- diff --git a/ChangeLog b/ChangeLog index 2d0c7cc..26cb92c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2009-04-25 Ulrich Drepper + * sysdeps/ieee754/k_standard.c (__kernel_standard): Pole errors + for lgamma should se errno to ERANGE, not EDOM. + * math/libm-test.inc (lgamma_test): Check errno for pole errors. + * sysdeps/generic/stdint.h (WINT_MAX): Define as 2147483647 since this is the maximum UCS4 value. diff --git a/math/libm-test.inc b/math/libm-test.inc index 6d9a3ec..68f2f05 100644 --- a/math/libm-test.inc +++ b/math/libm-test.inc @@ -3241,7 +3241,9 @@ lgamma_test (void) TEST_f_f (lgamma, nan_value, nan_value); /* lgamma (x) == +inf plus divide by zero exception for integer x <= 0. */ + errno = 0; TEST_f_f (lgamma, -3, plus_infty, DIVIDE_BY_ZERO_EXCEPTION); + check_int ("errno for lgamma(-integer) == ERANGE", errno, ERANGE, 0, 0, 0); TEST_f_f (lgamma, minus_infty, plus_infty); TEST_f_f1 (lgamma, 1, 0, 1); diff --git a/sysdeps/ieee754/k_standard.c b/sysdeps/ieee754/k_standard.c index d8fa2a4..a81da13 100644 --- a/sysdeps/ieee754/k_standard.c +++ b/sysdeps/ieee754/k_standard.c @@ -383,7 +383,7 @@ static double zero = 0.0; /* used as const */ else exc.retval = HUGE_VAL; if (_LIB_VERSION == _POSIX_) - __set_errno (EDOM); + __set_errno (ERANGE); else if (!matherr(&exc)) { if (_LIB_VERSION == _SVID_) { (void) WRITE2("lgamma: SING error\n", 19); @@ -990,7 +990,7 @@ static double zero = 0.0; /* used as const */ __set_errno (ERANGE); } break; - + /* #### Last used is 50/150/250 ### */ } return exc.retval;