summaryrefslogtreecommitdiff
path: root/libgfortran
diff options
context:
space:
mode:
authorAndreas Krebbel <krebbel1@de.ibm.com>2004-07-08 19:58:56 +0000
committerPaul Brook <pbrook@gcc.gnu.org>2004-07-08 19:58:56 +0000
commitdbe81a8b250a76985950ab1c9fd761145b0b67f2 (patch)
treec36ea0df740fc8868e4aef1dd4a24f2b0573c7c5 /libgfortran
parent36c1b0def4a4672a93e846c610e19a1a15f4e17d (diff)
downloadgcc-dbe81a8b250a76985950ab1c9fd761145b0b67f2.tar.gz
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
Diffstat (limited to 'libgfortran')
-rw-r--r--libgfortran/ChangeLog10
-rw-r--r--libgfortran/io/write.c6
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 <krebbel1@de.ibm.com>
+
+ PR fortran/16291
+ * libgfortran/io/write.c: (write_float): Added length check.
+ Remove pointless memset calls.
+
2004-07-04 Bud Davis <bdavis9659@comcast.net>
Paul Brook <paul@codesourcery.com>
@@ -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);