aboutsummaryrefslogtreecommitdiff
path: root/libgfortran/io
diff options
context:
space:
mode:
authorThomas Koenig <Thomas.Koenig@online.de>2005-05-12 17:50:33 +0000
committerThomas Koenig <tkoenig@gcc.gnu.org>2005-05-12 17:50:33 +0000
commitc42a19d5e3a8236af3b727cd708bac22a8608b9d (patch)
tree35e0ae8368fc459238e0ba93fbf129aef6b0c137 /libgfortran/io
parent7cc70b5e3c155ae457f89871dd7f644079f08a61 (diff)
downloadgcc-c42a19d5e3a8236af3b727cd708bac22a8608b9d.zip
gcc-c42a19d5e3a8236af3b727cd708bac22a8608b9d.tar.gz
gcc-c42a19d5e3a8236af3b727cd708bac22a8608b9d.tar.bz2
re PR libfortran/21324 (#undef GFC_CLEAR_MEMORY causes testsuite failures)
2005-05-12 Thomas Koenig <Thomas.Koenig@online.de> PR libfortran/21324 * runtime/memory.c: Don't define GFC_CLEAR_MEMORY (it's a performance hog). * io/open.c (new_unit): Zero freshly allocated memory for unit structure. * io/unit.c (init_units): Zero freshly allocated memory for STDIN, STDOUT and STDERR. * io/unix.c (open_internal): Zero freshly allocated memory for unix_stream. (fd_to_stream): Likewise. From-SVN: r99619
Diffstat (limited to 'libgfortran/io')
-rw-r--r--libgfortran/io/open.c1
-rw-r--r--libgfortran/io/unit.c3
-rw-r--r--libgfortran/io/unix.c2
3 files changed, 6 insertions, 0 deletions
diff --git a/libgfortran/io/open.c b/libgfortran/io/open.c
index 97bf6e4..f579f1f 100644
--- a/libgfortran/io/open.c
+++ b/libgfortran/io/open.c
@@ -351,6 +351,7 @@ new_unit (unit_flags * flags)
/* Create the unit structure. */
u = get_mem (sizeof (gfc_unit) + ioparm.file_len);
+ memset (u, '\0', sizeof (gfc_unit) + ioparm.file_len);
u->unit_number = ioparm.unit;
u->s = s;
diff --git a/libgfortran/io/unit.c b/libgfortran/io/unit.c
index ae0771f..f0d8dbe 100644
--- a/libgfortran/io/unit.c
+++ b/libgfortran/io/unit.c
@@ -295,6 +295,7 @@ init_units (void)
if (options.stdin_unit >= 0)
{ /* STDIN */
u = get_mem (sizeof (gfc_unit));
+ memset (u, '\0', sizeof (gfc_unit));
u->unit_number = options.stdin_unit;
u->s = input_stream ();
@@ -316,6 +317,7 @@ init_units (void)
if (options.stdout_unit >= 0)
{ /* STDOUT */
u = get_mem (sizeof (gfc_unit));
+ memset (u, '\0', sizeof (gfc_unit));
u->unit_number = options.stdout_unit;
u->s = output_stream ();
@@ -337,6 +339,7 @@ init_units (void)
if (options.stderr_unit >= 0)
{ /* STDERR */
u = get_mem (sizeof (gfc_unit));
+ memset (u, '\0', sizeof (gfc_unit));
u->unit_number = options.stderr_unit;
u->s = error_stream ();
diff --git a/libgfortran/io/unix.c b/libgfortran/io/unix.c
index 92eea53..2d8286c 100644
--- a/libgfortran/io/unix.c
+++ b/libgfortran/io/unix.c
@@ -872,6 +872,7 @@ open_internal (char *base, int length)
unix_stream *s;
s = get_mem (sizeof (unix_stream));
+ memset (s, '\0', sizeof (unix_stream));
s->buffer = base;
s->buffer_offset = 0;
@@ -900,6 +901,7 @@ fd_to_stream (int fd, int prot, int avoid_mmap)
unix_stream *s;
s = get_mem (sizeof (unix_stream));
+ memset (s, '\0', sizeof (unix_stream));
s->fd = fd;
s->buffer_offset = 0;