* sysdeps/ieee754/k_standard.c (__kernel_standard): Pole errors
authorUlrich Drepper <drepper@redhat.com>
Sat, 25 Apr 2009 08:12:24 +0000 (08:12 +0000)
committerUlrich Drepper <drepper@redhat.com>
Sat, 25 Apr 2009 08:12:24 +0000 (08:12 +0000)
for lgamma should se errno to ERANGE, not EDOM.
* math/libm-test.inc (lgamma_test): Check errno for pole errors.

ChangeLog
math/libm-test.inc
sysdeps/ieee754/k_standard.c

index 2d0c7cc..26cb92c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 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.
 
index 6d9a3ec..68f2f05 100644 (file)
@@ -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);
index d8fa2a4..a81da13 100644 (file)
@@ -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;