2009-04-25 Ulrich Drepper <drepper@redhat.com>
+ * 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.
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);
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);
__set_errno (ERANGE);
}
break;
-
+
/* #### Last used is 50/150/250 ### */
}
return exc.retval;