git: ac76bc1145dd - main - Fix lib/msun's ctrig_test/test_inf_inputs test case with clang >= 10

Dimitry Andric dim at FreeBSD.org
Tue Feb 9 21:07:30 UTC 2021


The branch main has been updated by dim:

URL: https://cgit.FreeBSD.org/src/commit/?id=ac76bc1145dd7f4476e5d982ce8f355f71015713

commit ac76bc1145dd7f4476e5d982ce8f355f71015713
Author:     Dimitry Andric <dim at FreeBSD.org>
AuthorDate: 2021-02-09 21:06:51 +0000
Commit:     Dimitry Andric <dim at FreeBSD.org>
CommitDate: 2021-02-09 21:07:05 +0000

    Fix lib/msun's ctrig_test/test_inf_inputs test case with clang >= 10
    
    This sprinkles a few strategic volatiles in an attempt to defeat clang's
    optimization interfering with the expected floating-point exception
    flags.
    
    Reported by:    lwhsu
    PR:             244732
    MFC after:      3 days
---
 lib/msun/src/s_ccoshf.c     | 2 +-
 lib/msun/src/s_ctanh.c      | 2 +-
 lib/msun/src/s_ctanhf.c     | 2 +-
 lib/msun/tests/ctrig_test.c | 3 ---
 4 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/lib/msun/src/s_ccoshf.c b/lib/msun/src/s_ccoshf.c
index 5d7a09ba5f8d..e72395c277d5 100644
--- a/lib/msun/src/s_ccoshf.c
+++ b/lib/msun/src/s_ccoshf.c
@@ -43,7 +43,7 @@ static const float huge = 0x1p127;
 float complex
 ccoshf(float complex z)
 {
-	float x, y, h;
+	volatile float x, y, h;
 	int32_t hx, hy, ix, iy;
 
 	x = crealf(z);
diff --git a/lib/msun/src/s_ctanh.c b/lib/msun/src/s_ctanh.c
index 88afeb50e26e..13eb9d40b678 100644
--- a/lib/msun/src/s_ctanh.c
+++ b/lib/msun/src/s_ctanh.c
@@ -76,7 +76,7 @@ __FBSDID("$FreeBSD$");
 double complex
 ctanh(double complex z)
 {
-	double x, y;
+	volatile double x, y;
 	double t, beta, s, rho, denom;
 	uint32_t hx, ix, lx;
 
diff --git a/lib/msun/src/s_ctanhf.c b/lib/msun/src/s_ctanhf.c
index d2bd0b6786f0..7d375eafd2ae 100644
--- a/lib/msun/src/s_ctanhf.c
+++ b/lib/msun/src/s_ctanhf.c
@@ -41,7 +41,7 @@ __FBSDID("$FreeBSD$");
 float complex
 ctanhf(float complex z)
 {
-	float x, y;
+	volatile float x, y;
 	float t, beta, s, rho, denom;
 	uint32_t hx, ix;
 
diff --git a/lib/msun/tests/ctrig_test.c b/lib/msun/tests/ctrig_test.c
index effc4cfce281..45b2b78b0416 100644
--- a/lib/msun/tests/ctrig_test.c
+++ b/lib/msun/tests/ctrig_test.c
@@ -248,9 +248,6 @@ ATF_TC_BODY(test_inf_inputs, tc)
 	long double complex z, c, s;
 	unsigned i;
 
-	if (atf_tc_get_config_var_as_bool_wd(tc, "ci", false))
-		atf_tc_expect_fail("https://bugs.freebsd.org/244732");
-
 	/*
 	 * IN		CSINH		CCOSH		CTANH
 	 * Inf,Inf	+-Inf,NaN inval	+-Inf,NaN inval	1,+-0


More information about the dev-commits-src-main mailing list