diff options
author | Thomas Koenig <Thomas.Koenig@online.de> | 2005-05-12 17:50:33 +0000 |
---|---|---|
committer | Thomas Koenig <tkoenig@gcc.gnu.org> | 2005-05-12 17:50:33 +0000 |
commit | c42a19d5e3a8236af3b727cd708bac22a8608b9d (patch) | |
tree | 35e0ae8368fc459238e0ba93fbf129aef6b0c137 /libgfortran/io | |
parent | 7cc70b5e3c155ae457f89871dd7f644079f08a61 (diff) | |
download | gcc-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.c | 1 | ||||
-rw-r--r-- | libgfortran/io/unit.c | 3 | ||||
-rw-r--r-- | libgfortran/io/unix.c | 2 |
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; |