[Bug libfortran/40334] [4.4/4.5 Regression] changed BACKSPACE behaviour at end of file.
jvdelisle at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Sat Jun 6 16:08:00 GMT 2009
------- Comment #4 from jvdelisle at gcc dot gnu dot org 2009-06-06 16:08 -------
In the test case, the the first EOF is generated in transfer.c (hit_eof) which
sets the end file conditions. The second EOF is generated in list_read.c:1689.
When returning from he error condition, the end file conditions are not set.
I have regtested this rough patch.
Index: list_read.c
===================================================================
--- list_read.c (revision 147996)
+++ list_read.c (working copy)
@@ -1687,6 +1687,11 @@ list_formatted_read_scalar (st_parameter
if (setjmp (eof_jump))
{
generate_error (&dtp->common, LIBERROR_END, NULL);
+ if (!is_internal_unit (dtp))
+ {
+ dtp->u.p.current_unit->endfile = AFTER_ENDFILE;
+ dtp->u.p.current_unit->current_record = 0;
+ }
goto cleanup;
}
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40334
More information about the Gcc-bugs
mailing list