From nobody Mon Jul 17 05:25:37 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4R49XK62lvz4n8WT; Mon, 17 Jul 2023 05:25:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4R49XK5XMSz3vhl; Mon, 17 Jul 2023 05:25:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1689571537; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/bH05i4FzFUBNqdX5SSrrGYRQ8Np+YkRo92P9/NbQ3o=; b=ktM7qDqORCsBi8aD6OzaMkd1Q1j+wfWQFE3xo8HCrhz1Kx0UnMX+JcVmfWXtA12e9WrjIa 7temQswvMxBU+fd+tIjP1TCJvkVsfPaueA1UD1DlZvY+QfAbs1+TeVXHlVE1Cf+yly0EPc Ev49dpti2DYOh9vZd1v1/SP/JgST3C33kYkb4Vv25/DL1/Og/hI7mY+kpAUCxdurBe0QX7 Hq4aluUVfzs0fqLlQvwDelEs954Bx+AZnhGE9y7wr8A+UewCLX6jTGlbE+zUTnsm8+pUj0 kZv2aLgrXa6UBZRo3veiXmHP9BSjf6G6sRFeErWKPmNPyUHQhg2T8YJaX3wR9A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1689571537; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/bH05i4FzFUBNqdX5SSrrGYRQ8Np+YkRo92P9/NbQ3o=; b=I/4L0pH605VpbZFW2q1bvX8PXg+DLxslrENMVwpm5ySCU/j+QzY0wKwGE4Tb3rfagcOK53 d/5mtTz6H8Qje4Za8SxKQa2azSGp7yo9IrS7DigOgEBIOuDwEZCtwSPSJTZx+6qF7PhvUT XTG9awnW4gKMmW+rq6Bc8W3kg6DqHq/YMwEjk4BNVLKUypEZ1U5urumN+almbRZ8x/kcd1 PfP+DzA/WVPygrooCTyr4pH/Ozk+RG2LcrdHJHekLsRYtt89BmR8JT0ccMO9BbL1nd1ItH Oal0sn9OhRYXYTGvis7JHD/1XjdsiV9xwYvFrdIwJ8dp3TYRUy0bnO6eCCIw9w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1689571537; a=rsa-sha256; cv=none; b=lj+bhM+cQreoxEKEeeoMRMnEJB/HTTIb2FGqAGsXtmfqV5FouLC88mzS/zW5AozH2ozWXe OtYBFr51ICslxyPn1ooNFh/2rgvZsTV66FLWr/8Wooc055kpLyu/GldldII87cXIVyQTU9 qX2/H24wAmv6YI1VIVoNC+0PULETI6SGvBWWwcidleUoJ5CV+9x4jqo0F5sV5aXnUOvE3a P9CNxpUWWLin8N3GC+jhCL+j4eZTo5JTdy9Nk9jG0D8IZkOkxXtMyw0yCKoTGPaf1HbRFi mWzCwDY/mbEwAU1qBeiqmvLhHZZj8ZSZsSyBbu+3dvlZS6UIVzlzZbCpJoq97g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4R49XK4cTNz1BK7; Mon, 17 Jul 2023 05:25:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 36H5PbbR054299; Mon, 17 Jul 2023 05:25:37 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 36H5PbFo054298; Mon, 17 Jul 2023 05:25:37 GMT (envelope-from git) Date: Mon, 17 Jul 2023 05:25:37 GMT Message-Id: <202307170525.36H5PbFo054298@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Konstantin Belousov Subject: git: be4c7f273508 - main - libm: correctly test for for NaN and Infinity in sinpi(), cospi(), and tanpi() List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: be4c7f273508994638b68d2fae742be37d3cb117 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=be4c7f273508994638b68d2fae742be37d3cb117 commit be4c7f273508994638b68d2fae742be37d3cb117 Author: Steve Kargl AuthorDate: 2023-07-17 05:19:28 +0000 Commit: Konstantin Belousov CommitDate: 2023-07-17 05:23:27 +0000 libm: correctly test for for NaN and Infinity in sinpi(), cospi(), and tanpi() The current versions of lib/msun/src/s_cospi.c, s_sinpi.c and s_tanpi.c all exhibit the same defect. After checking for various numeric ranges, they check to see whether the input argument is a NaN or an Infinity. However, the code uses a value of 0x7f80000 instead of the correct value of 0x7ff00000. If you review s_cospif.c, s_sinpif.c, and s_tanpif.c, you will see that the equivalent statements in these functions are accurate and have appropriate source comments. The impact of these defects is to flag some valid input values as invalid and raise a pole error (divide by zero). Reported by: Paul Green PR: 272539 MFC after: 1 week --- lib/msun/src/s_cospi.c | 3 ++- lib/msun/src/s_sinpi.c | 3 ++- lib/msun/src/s_tanpi.c | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/msun/src/s_cospi.c b/lib/msun/src/s_cospi.c index 860219efd3e4..2e2f92733a86 100644 --- a/lib/msun/src/s_cospi.c +++ b/lib/msun/src/s_cospi.c @@ -138,7 +138,8 @@ cospi(double x) return (j0 & 1 ? -c : c); } - if (ix >= 0x7f800000) + /* x = +-inf or nan. */ + if (ix >= 0x7ff00000) return (vzero / vzero); /* diff --git a/lib/msun/src/s_sinpi.c b/lib/msun/src/s_sinpi.c index 858459a5fcb4..bc3759e567a3 100644 --- a/lib/msun/src/s_sinpi.c +++ b/lib/msun/src/s_sinpi.c @@ -155,7 +155,8 @@ sinpi(double x) return ((hx & 0x80000000) ? -s : s); } - if (ix >= 0x7f800000) + /* x = +-inf or nan. */ + if (ix >= 0x7ff00000) return (vzero / vzero); /* diff --git a/lib/msun/src/s_tanpi.c b/lib/msun/src/s_tanpi.c index 01d4c74367fd..f911d56156b3 100644 --- a/lib/msun/src/s_tanpi.c +++ b/lib/msun/src/s_tanpi.c @@ -163,7 +163,7 @@ tanpi(double x) } /* x = +-inf or nan. */ - if (ix >= 0x7f800000) + if (ix >= 0x7ff00000) return (vzero / vzero); /*