Commit a30595bf by Jerry DeLisle

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
parent f4089aae
2009-10-11 Jerry DeLisle <jvdelisle@gcc.gnu.org> 2009-10-11 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/38439 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>
PR libgfortran/38439
* io/format.c (parse_format_list): Add check for tokens not allowed * io/format.c (parse_format_list): Add check for tokens not allowed
after P specifier. Fix comments. Remove un-needed code. Fix the after P specifier. Fix comments. Remove un-needed code. Fix the
default exponent list. Correct pointer assignment error. default exponent list. Correct pointer assignment error.
......
...@@ -933,7 +933,7 @@ parse_format_list (st_parameter_dt *dtp, bool *save_ok) ...@@ -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) ...@@ -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;
......
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