regression in list directed write
THOMAS Paul Richard
prthomas@drfccad.cea.fr
Tue Jan 11 11:14:00 GMT 2005
Andrew,
isfinite (real) is broken in all the Cygwin implementations of gcc but
isnan(real)works correctly.
Happily, finite( float or double ) works perfectly. I have tested it in
~/libgfortran/io/write.c and it corrects the problem with gfortran on both
i686 and Athlon. On Tru64, I do not seem able to stop the floating
exceptions that produce the output in question! Equally, I have been unable
to link C programmes to finite or infinite, so I do not know what the gcc
build is doing.
Perhaps a conditional modification is in order?
Could you please do the necessary incantations with your system?
The requisite patch is:
*** write.old Tue Jan 11 11:03:30 2005
--- ./gcc-4.0-20041205/libgfortran/io/write.c Tue Jan 11 11:00:38 2005
***************
*** 665,671 ****
if (f->format != FMT_B && f->format != FMT_O && f->format != FMT_Z)
{
! res = isfinite (n);
if (res == 0)
{
nb = f->u.real.w;
--- 665,671 ----
if (f->format != FMT_B && f->format != FMT_O && f->format != FMT_Z)
{
! res = finite (n);
if (res == 0)
{
nb = f->u.real.w;
More information about the Fortran
mailing list