This is the mail archive of the fortran@gcc.gnu.org mailing list for the GNU Fortran project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Patch, Fortran, 4.8/4.9/5 Regression] PR59513 READ or WRITE not allowed after EOF


The attached patch allows the attempt to READ or WRITE after an EOF for legacy code. The runtime error is suppressed for -std=legacy and -std=gnu. For standard conformance the error is retained as is now.

Regression tested on x86-64.  Test case endfile_3.f90 is updated by the patch.

OK for trunk and then 4.9, 4.8?

Regards,

Jerry

2015-03-20 Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/59513
	* io/transfer.c (data_transfer_init): Only error if -std=f95 or
	higher.
Index: libgfortran/io/transfer.c
===================================================================
--- libgfortran/io/transfer.c	(revision 221543)
+++ libgfortran/io/transfer.c	(working copy)
@@ -2533,7 +2533,8 @@ data_transfer_init (st_parameter_dt *dtp, int read
 	  return;
 	}
 
-      if (dtp->u.p.current_unit->endfile == AFTER_ENDFILE)
+      if (!(compile_options.allow_std & GFC_STD_GNU) &&
+	  dtp->u.p.current_unit->endfile == AFTER_ENDFILE)
       	{
 	  generate_error (&dtp->common, LIBERROR_OPTION_CONFLICT,
 			"Sequential READ or WRITE not allowed after "
Index: gcc/testsuite/gfortran.dg/endfile_3.f90
===================================================================
--- gcc/testsuite/gfortran.dg/endfile_3.f90	(revision 221473)
+++ gcc/testsuite/gfortran.dg/endfile_3.f90	(working copy)
@@ -1,9 +1,10 @@
 ! { dg-do run { target fd_truncate } }
+! { dg-options -std=f95 }
 ! pr44477 READ/WRITE not allowed after ENDFILE 
 !-------------------------------------------
   open(10, form='formatted', &
     action='write', position='rewind', status="scratch")
   endfile(10)
-  write(10,'(a)') "aa" ! { dg-shouldfail "Cannot perform ENDFILE" }
+  write(10,'(a)')"aa"! { dg-shouldfail "not allowed after EOF marker" }
 end
 

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]