re PR libfortran/33595 (FAIL: gfortran.dg/nint_2.f90 -O0 execution test)

PR fortran/33595
	* intrinsics/c99_functions.c (round): Use floor instead of ceil.
	Revise checks to round up.
	(roundf): Likewise.

From-SVN: r145209
This commit is contained in:
John David Anglin 2009-03-28 21:15:45 +00:00 committed by John David Anglin
parent 8272d11d4a
commit 63f90eb7b0
2 changed files with 19 additions and 12 deletions

View File

@ -1,3 +1,10 @@
2009-03-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR fortran/33595
* intrinsics/c99_functions.c (round): Use floor instead of ceil.
Revise checks to round up.
(roundf): Likewise.
2009-03-28 Daniel Kraft <d@domob.eu>
* intrinsics/string_intrinsics.c: #include <assert.h>

View File

@ -571,16 +571,16 @@ round(double x)
if (x >= 0.0)
{
t = ceil(x);
if (t - x > 0.5)
t -= 1.0;
t = floor(x);
if (t - x <= -0.5)
t += 1.0;
return (t);
}
else
{
t = ceil(-x);
if (t + x > 0.5)
t -= 1.0;
t = floor(-x);
if (t + x <= -0.5)
t += 1.0;
return (-t);
}
}
@ -600,16 +600,16 @@ roundf(float x)
if (x >= 0.0)
{
t = ceilf(x);
if (t - x > 0.5)
t -= 1.0;
t = floorf(x);
if (t - x <= -0.5)
t += 1.0;
return (t);
}
else
{
t = ceilf(-x);
if (t + x > 0.5)
t -= 1.0;
t = floorf(-x);
if (t + x <= -0.5)
t += 1.0;
return (-t);
}
}