From: Jerry DeLisle Date: Tue, 28 Feb 2006 02:07:00 +0000 (+0000) Subject: re PR libfortran/26464 (Runtime I/O error/invald argument on READ) X-Git-Tag: releases/gcc-4.2.0~3942 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9985dd8aafd954ba667b41ab3816e9da2bb7027f;p=thirdparty%2Fgcc.git re PR libfortran/26464 (Runtime I/O error/invald argument on READ) 2006-02-27 Jerry DeLisle PR libgfortran/26464 * io/file_pos.c (st_backspace): Flush and truncate file when in AFTER_ENDFILE condition. * io/transfer.c (st_read_done): Remove flush, no longer needed. From-SVN: r111506 --- diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index a570af48c759..136e85090c26 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,10 @@ +2006-02-27 Jerry DeLisle + + PR libgfortran/26464 + * io/file_pos.c (st_backspace): Flush and truncate file + when in AFTER_ENDFILE condition. + * io/transfer.c (st_read_done): Remove flush, no longer needed. + 2006-02-24 Jerry DeLisle PR libgfortran/26423 diff --git a/libgfortran/io/file_pos.c b/libgfortran/io/file_pos.c index ba8f63172214..8bd364c43842 100644 --- a/libgfortran/io/file_pos.c +++ b/libgfortran/io/file_pos.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2002-2003, 2005 Free Software Foundation, Inc. +/* Copyright (C) 2002-2003, 2005, 2006 Free Software Foundation, Inc. Contributed by Andy Vaught and Janne Blomqvist This file is part of the GNU Fortran runtime library (libgfortran). @@ -161,7 +161,11 @@ st_backspace (st_parameter_filepos *fpp) /* Check for special cases involving the ENDFILE record first. */ if (u->endfile == AFTER_ENDFILE) - u->endfile = AT_ENDFILE; + { + u->endfile = AT_ENDFILE; + flush (u->s); + struncate (u->s); + } else { if (file_position (u->s) == 0) diff --git a/libgfortran/io/transfer.c b/libgfortran/io/transfer.c index 093852a99ec7..72becd139726 100644 --- a/libgfortran/io/transfer.c +++ b/libgfortran/io/transfer.c @@ -2159,7 +2159,6 @@ export_proto(st_read_done); void st_read_done (st_parameter_dt *dtp) { - flush(dtp->u.p.current_unit->s); finalize_transfer (dtp); free_format_data (dtp); free_ionml (dtp);