re PR libfortran/26464 (Runtime I/O error/invald argument on READ)

2006-02-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	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
This commit is contained in:
Jerry DeLisle 2006-02-28 02:07:00 +00:00
parent f2b5129c6d
commit 9985dd8aaf
3 changed files with 13 additions and 3 deletions

View File

@ -1,3 +1,10 @@
2006-02-27 Jerry DeLisle <jvdelisle@gcc.gnu.org>
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 <jvdelisle@gcc.gnu.org>
PR libgfortran/26423

View File

@ -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)

View File

@ -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);