From: jsm28 Date: Fri, 28 Sep 2018 15:45:51 +0000 (+0000) Subject: Fix gcc.dg/torture/fp-int-convert.h for excess precision after PR c/87390. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=889eb06af35f084a0ab5ba6e0774bade4d5e3c53;p=thirdparty%2Fgcc.git Fix gcc.dg/torture/fp-int-convert.h for excess precision after PR c/87390. As reported in , some fp-int-convert tests fail after my fix for PR c/87390, in Arm / AArch64 configurations where _Float16 uses excess precision by default. The issue is comparisons of the results of a conversion by assignment (compile-time or run-time) from integer to floating-point with the original integer value; previously this would compare against an implicit compile-time conversion to the target type, but now, for C11 and later, it compares against an implicit compile-time conversion to a possibly wider evaluation format. This is fixed by adding casts to the test so that the comparison is with a value converted explicitly to the target type at compile time, without any use of a wider evaluation format. PR c/87390 * gcc.dg/torture/fp-int-convert.h (TEST_I_F_VAL): Convert integer values explicitly to target type for comparison. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264696 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 7e6796268eac..ff242d833ff2 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2018-09-28 Joseph Myers + + PR c/87390 + * gcc.dg/torture/fp-int-convert.h (TEST_I_F_VAL): Convert integer + values explicitly to target type for comparison. + 2018-09-28 Steve Ellcey PR testsuite/87433 diff --git a/gcc/testsuite/gcc.dg/torture/fp-int-convert.h b/gcc/testsuite/gcc.dg/torture/fp-int-convert.h index 2b904b6595c3..f0b3f3968fc3 100644 --- a/gcc/testsuite/gcc.dg/torture/fp-int-convert.h +++ b/gcc/testsuite/gcc.dg/torture/fp-int-convert.h @@ -90,6 +90,7 @@ do { \ if (ivin != (VAL) \ || ((PREC_OK) && ivout != ivin) \ || ((PREC_OK) && ivout != (VAL)) \ - || fv1 != (VAL) || fv2 != (VAL) || fv1 != fv2) \ + || fv1 != (FT) (VAL) || fv2 != (FT) (VAL) \ + || fv1 != fv2) \ abort (); \ } while (0)