From dbe81a8b250a76985950ab1c9fd761145b0b67f2 Mon Sep 17 00:00:00 2001 From: Andreas Krebbel Date: Thu, 8 Jul 2004 19:58:56 +0000 Subject: [PATCH] re PR libfortran/16291 (F2003 formatting of Inf /Nan on irix6.5) PR fortran/16291 * libgfortran/io/write.c: (write_float): Added length check. Remove pointless memset calls. From-SVN: r84308 --- libgfortran/ChangeLog | 10 ++++++++-- libgfortran/io/write.c | 6 +++--- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index 14a6349f023..8458be34da2 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,9 @@ +2004-07-08 Andreas Krebbel + + PR fortran/16291 + * libgfortran/io/write.c: (write_float): Added length check. + Remove pointless memset calls. + 2004-07-04 Bud Davis Paul Brook @@ -5,9 +11,9 @@ * io/transfer.c(us_write): set recl for seq unform writes to max size. * io/transfer.c(data_transfer_init): handle un-opened seq unform unit. * io/unix.c(fd_alloc_w_at): handle requests at start, fd_flush at - right time. + right time. * io/unix.c(is_seekable): set based upon the file/device, not the - method being used to access it (fd or mmap). + method being used to access it (fd or mmap). * io/unix.c(fd_flush): don't set file_size if !seekable. * io/unix.c(fd_truncate: ditto. diff --git a/libgfortran/io/write.c b/libgfortran/io/write.c index 3602c1b9157..749a34a4834 100644 --- a/libgfortran/io/write.c +++ b/libgfortran/io/write.c @@ -535,10 +535,10 @@ write_float (fnode *f, const char *source, int len) memcpy(p + nb - 8, "Infinity", 8); else memcpy(p + nb - 3, "Inf", 3); - if (nb < 8) - memset(p + nb - 4, fin, 1); + if (nb < 8 && nb > 3) + p[nb - 4] = fin; else if (nb > 8) - memset(p + nb - 9, fin, 1); + p[nb - 9] = fin; } else memcpy(p + nb - 3, "NaN", 3); -- 2.30.2