From f4e7849fa9fcd5ff0d7318f9d3d13fada6e4b317 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Storsj=C3=B6?= Date: Mon, 29 Jul 2019 23:48:01 +0300 Subject: [PATCH] Cygwin: math: Fix the return value for tgammal for zero and negative integers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit For zero, it should return HUGE_VAL (INFINITY), for negative integers, it should return NAN. Signed-off-by: Martin Storsjö --- winsup/cygwin/math/tgammal.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/winsup/cygwin/math/tgammal.c b/winsup/cygwin/math/tgammal.c index 99408eed7..25a37eaeb 100644 --- a/winsup/cygwin/math/tgammal.c +++ b/winsup/cygwin/math/tgammal.c @@ -285,6 +285,9 @@ long double __tgammal_r(long double x, int* sgngaml) return (x); #endif #endif + if (x == 0.0L) + return copysignl(HUGE_VALL, x); + q = fabsl(x); if (q > 13.0L) @@ -299,8 +302,8 @@ long double __tgammal_r(long double x, int* sgngaml) gsing: _SET_ERRNO(EDOM); mtherr("tgammal", SING); -#ifdef INFINITIES - return (INFINITYL); +#ifdef NANS + return (NAN); #else return (*sgngaml * MAXNUML); #endif