Don't call double rint from float powf.

Updated patch to use 0.0f in addition to calling rintf.

Tested same way as before, with a testcase that triggers the code and
make check.

OK?

	newlib/
	* libm/math/wf_pow.c (powf): Call rintf instead of rint.  Use 0.0f
	for compare.
This commit is contained in:
Jim Wilson 2017-12-12 11:38:01 -08:00 committed by Corinna Vinschen
parent efce18d754
commit c338bc2255
1 changed files with 2 additions and 2 deletions

View File

@ -127,11 +127,11 @@
if (_LIB_VERSION == _SVID_) { if (_LIB_VERSION == _SVID_) {
exc.retval = HUGE; exc.retval = HUGE;
y *= 0.5; y *= 0.5;
if(x<0.0&&rint(y)!=y) exc.retval = -HUGE; if(x<0.0f&&rintf(y)!=y) exc.retval = -HUGE;
} else { } else {
exc.retval = HUGE_VAL; exc.retval = HUGE_VAL;
y *= 0.5; y *= 0.5;
if(x<0.0&&rint(y)!=y) exc.retval = -HUGE_VAL; if(x<0.0f&&rintf(y)!=y) exc.retval = -HUGE_VAL;
} }
if (_LIB_VERSION == _POSIX_) if (_LIB_VERSION == _POSIX_)
errno = ERANGE; errno = ERANGE;