Commit 9f309df2 by Jerry DeLisle

re PR fortran/38430 (gfortran.dg/streamio_1.f90, 10, 14, 2, 6 now fails)

2008-12-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/38430
	* io/transfer.c (data_transfer_init): Move constraint check for REC=
	and STREAM access into condition for other REC= constraints to simplify.
	Comment out this constraint to avoid breaking compatibility with 4.3
	until later.  Added a TODO for above comment and this one.
	Fix test for max pos.

From-SVN: r142575
parent 3033db1a
2008-12-08 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/38430
* io/transfer.c (data_transfer_init): Move constraint check for REC=
and STREAM access into condition for other REC= constraints to simplify.
Comment out this constraint to avoid breaking compatibility with 4.3
until later. Added a TODO for above comment and this one.
Fix test for max pos.
2008-12-06 Jerry DeLisle <jvdelisle@gcc.gnu.org> 2008-12-06 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/38291 PR libfortran/38291
......
...@@ -1986,15 +1986,6 @@ data_transfer_init (st_parameter_dt *dtp, int read_flag) ...@@ -1986,15 +1986,6 @@ data_transfer_init (st_parameter_dt *dtp, int read_flag)
return; return;
} }
if (dtp->u.p.current_unit->flags.access == ACCESS_STREAM
&& (cf & IOPARM_DT_HAS_REC) != 0)
{
generate_error (&dtp->common, LIBERROR_OPTION_CONFLICT,
"Record number not allowed for stream access "
"data transfer");
return;
}
/* Process the ADVANCE option. */ /* Process the ADVANCE option. */
dtp->u.p.advance_status dtp->u.p.advance_status
...@@ -2141,7 +2132,7 @@ data_transfer_init (st_parameter_dt *dtp, int read_flag) ...@@ -2141,7 +2132,7 @@ data_transfer_init (st_parameter_dt *dtp, int read_flag)
return; return;
} }
if (dtp->rec >= dtp->u.p.current_unit->maxrec) if (dtp->pos >= dtp->u.p.current_unit->maxrec)
{ {
generate_error (&dtp->common, LIBERROR_BAD_OPTION, generate_error (&dtp->common, LIBERROR_BAD_OPTION,
"POS=specifier too large"); "POS=specifier too large");
...@@ -2231,10 +2222,20 @@ data_transfer_init (st_parameter_dt *dtp, int read_flag) ...@@ -2231,10 +2222,20 @@ data_transfer_init (st_parameter_dt *dtp, int read_flag)
return; return;
} }
/* This is required to maintain compatibility between /* TODO: This is required to maintain compatibility between
4.3 and 4.4 runtime. */ 4.3 and 4.4 runtime. Remove when ABI changes from 4.3 */
if (is_stream_io (dtp)) if (is_stream_io (dtp))
dtp->u.p.current_unit->strm_pos = dtp->rec; dtp->u.p.current_unit->strm_pos = dtp->rec;
/* TODO: Un-comment this code when ABI changes from 4.3.
if (dtp->u.p.current_unit->flags.access == ACCESS_STREAM)
{
generate_error (&dtp->common, LIBERROR_OPTION_CONFLICT,
"Record number not allowed for stream access "
"data transfer");
return;
} */
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment