From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2210) id 51B96386EC29; Tue, 27 Oct 2020 14:24:21 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 51B96386EC29 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Ken Brown To: cygwin-cvs@sourceware.org Subject: [newlib-cygwin] Cygwin: fix return value of sqrtl on negative infinity X-Act-Checkin: newlib-cygwin X-Git-Author: Ken Brown X-Git-Refname: refs/heads/master X-Git-Oldrev: 490d4862df73ffba39ba7d82c4b65c539d5e33f6 X-Git-Newrev: 262de3ecf08e8981a2b2d5949a3d31c613a36b2b Message-Id: <20201027142421.51B96386EC29@sourceware.org> Date: Tue, 27 Oct 2020 14:24:21 +0000 (GMT) X-BeenThere: cygwin-cvs@cygwin.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Cygwin core component git logs List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 Oct 2020 14:24:21 -0000 https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=262de3ecf08e8981a2b2d5949a3d31c613a36b2b commit 262de3ecf08e8981a2b2d5949a3d31c613a36b2b Author: Ken Brown Date: Tue Oct 27 09:52:48 2020 -0400 Cygwin: fix return value of sqrtl on negative infinity The return value is now -NaN. This fixes a bug in the mingw-w64 code that was imported into Cygwin. The fix is consistent with Posix and Linux. It is also consistent with the current mingw-w64 code, with one exception: The mingw-w64 code sets errno to EDOM if the input is -NaN, but this appears to differ from Posix and Linux. Addresses: https://cygwin.com/pipermail/cygwin/2020-October/246606.html Diff: --- winsup/cygwin/math/sqrt.def.h | 5 ++++- winsup/cygwin/release/3.2.0 | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/winsup/cygwin/math/sqrt.def.h b/winsup/cygwin/math/sqrt.def.h index cf8b5cbe6..3d1a00908 100644 --- a/winsup/cygwin/math/sqrt.def.h +++ b/winsup/cygwin/math/sqrt.def.h @@ -73,8 +73,11 @@ __FLT_ABI (sqrt) (__FLT_TYPE x) if (x_class == FP_ZERO) return __FLT_CST (-0.0); + if (x_class == FP_NAN) + return x; + errno = EDOM; - return x; + return -__FLT_NAN; } else if (x_class == FP_ZERO) return __FLT_CST (0.0); diff --git a/winsup/cygwin/release/3.2.0 b/winsup/cygwin/release/3.2.0 index 11de87dbc..22f78e7a7 100644 --- a/winsup/cygwin/release/3.2.0 +++ b/winsup/cygwin/release/3.2.0 @@ -37,5 +37,8 @@ Bug Fixes - Fix assertion failure on an invalid path under /proc//fd/. Addresses: https://cygwin.com/pipermail/cygwin/2020-September/246160.html -- Fix crash on stat(2)'ing /dev/ptmx on 32 bit +- Fix crash on stat(2)'ing /dev/ptmx on 32 bit. Addresses: https://cygwin.com/pipermail/cygwin/2020-September/246218.html + +- Fix return value of sqrtl on negative infinity. + Addresses: https://cygwin.com/pipermail/cygwin/2020-October/246606.html