re PR fortran/38439 (I/O PD edit descriptor inconsistency)

2009-10-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/38439
	* io/format.c (parse_format_list): Correct logic for FMT_F reading vs
	writing. Code clean-up.

From-SVN: r152657
This commit is contained in:
Jerry DeLisle 2009-10-12 00:52:45 +00:00
parent f4089aae40
commit a30595bf43
2 changed files with 10 additions and 7 deletions

View File

@ -1,3 +1,9 @@
2009-10-11 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/38439
* io/format.c (parse_format_list): Correct logic for FMT_F reading vs
writing. Code clean-up.
2009-10-11 Jerry DeLisle <jvdelisle@gcc.gnu.org> 2009-10-11 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/38439 PR libgfortran/38439

View File

@ -933,7 +933,7 @@ parse_format_list (st_parameter_dt *dtp, bool *save_ok)
tail->u.real.d = fmt->value; tail->u.real.d = fmt->value;
break; break;
} }
if (t == FMT_F || dtp->u.p.mode == WRITING) if (t == FMT_F && dtp->u.p.mode == WRITING)
{ {
if (u != FMT_POSINT && u != FMT_ZERO) if (u != FMT_POSINT && u != FMT_ZERO)
{ {
@ -941,13 +941,10 @@ parse_format_list (st_parameter_dt *dtp, bool *save_ok)
goto finished; goto finished;
} }
} }
else else if (u != FMT_POSINT)
{ {
if (u != FMT_POSINT) fmt->error = posint_required;
{ goto finished;
fmt->error = posint_required;
goto finished;
}
} }
tail->u.real.w = fmt->value; tail->u.real.w = fmt->value;