re PR fortran/65596 (NAMELIST bug with f2003: reads too far)

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

	PR libgfortran/65596
	* io/transfer.c (data_transfer_init): If in namelist mode and
	delimiter is not specified, set it to DELIM_QUOTE, independent
	of -std.
	* io/unit.c (init_units): Set flags.delim to the correct
	initial value of DELIM_UNSPECIFIED.

From-SVN: r221753
This commit is contained in:
Jerry DeLisle 2015-03-28 13:27:58 +00:00
parent 85b237bb66
commit d520fea881
3 changed files with 11 additions and 3 deletions

View File

@ -1,3 +1,12 @@
2015-03-28 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/65596
* io/transfer.c (data_transfer_init): If in namelist mode and
delimiter is not specified, set it to DELIM_QUOTE, independent
of -std.
* io/unit.c (init_units): Set flags.delim to the correct
initial value of DELIM_UNSPECIFIED.
2015-03-25 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/65541

View File

@ -2675,8 +2675,7 @@ data_transfer_init (st_parameter_dt *dtp, int read_flag)
if (dtp->u.p.current_unit->delim_status == DELIM_UNSPECIFIED)
{
if (ionml && dtp->u.p.current_unit->flags.delim == DELIM_UNSPECIFIED)
dtp->u.p.current_unit->delim_status =
compile_options.allow_std & GFC_STD_GNU ? DELIM_QUOTE : DELIM_NONE;
dtp->u.p.current_unit->delim_status = DELIM_QUOTE;
else
dtp->u.p.current_unit->delim_status = dtp->u.p.current_unit->flags.delim;
}

View File

@ -608,7 +608,7 @@ init_units (void)
u->flags.position = POSITION_ASIS;
u->flags.sign = SIGN_SUPPRESS;
u->flags.decimal = DECIMAL_POINT;
u->flags.delim = DECIMAL_UNSPECIFIED;
u->flags.delim = DELIM_UNSPECIFIED;
u->flags.encoding = ENCODING_DEFAULT;
u->flags.async = ASYNC_NO;
u->flags.round = ROUND_UNSPECIFIED;