[Bug libfortran/20257] Fortran runtime error: End of record occurs when writing large arrays

jvdelisle at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Sat Apr 29 04:27:00 GMT 2006



------- Comment #11 from jvdelisle at gcc dot gnu dot org  2006-04-29 04:27 -------
Subject: Bug 20257

Author: jvdelisle
Date: Sat Apr 29 04:27:09 2006
New Revision: 113373

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=113373
Log:
2006-04-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

        PR libgfortran/20257
        * io/io.h: Add prototypes for get_internal_unit and free_internal_unit.
        * io/unit.c (get_internal_unit): Initialize unit number, not zero.
        (free_internal_unit): New function to consolidate freeing memory.
        (get_unit): Initialize internal_unit_desc to NULL when unit is
        external.
        * io/unix.c (mem_close): Check for not NULL before freeing memory.
        * io/transfer.c (read_block): Reset bytes_left and skip error if unit
        is preconnected and default record length is reached.
        (read_block_direct): Ditto.
        (write_block): Ditto.
        (write_buf): Ditto.
        (data_transfer_init): Only flush if not internal unit.
        (finalize_transfer): Ditto and delete code to free memory used by
        internal units.
        (st_read_done): Use new function - free_internal_unit.
        (st_write_done): Use new function - free_internal unit.

Modified:
    branches/gcc-4_1-branch/libgfortran/ChangeLog
    branches/gcc-4_1-branch/libgfortran/io/io.h
    branches/gcc-4_1-branch/libgfortran/io/transfer.c
    branches/gcc-4_1-branch/libgfortran/io/unit.c
    branches/gcc-4_1-branch/libgfortran/io/unix.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20257



More information about the Gcc-bugs mailing list