mirror of git://gcc.gnu.org/git/gcc.git
re PR fortran/56660 (Fails to read NAMELIST with certain form array syntax)
2013-04-01 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libfortran/56660 * io/list_read.c (nml_read_obj): Do not reset the read error flag inside nml_read_obj. If the read error flag is found set just exit. Fix some whitespace on comments. (nml_read_obj_data): Reset the read error flag before the first call to nml_read_object. From-SVN: r197321
This commit is contained in:
parent
a71751232c
commit
ba82932537
|
|
@ -1,3 +1,12 @@
|
||||||
|
2013-04-01 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
||||||
|
|
||||||
|
PR libfortran/56660
|
||||||
|
* io/list_read.c (nml_read_obj): Do not reset the read error flag
|
||||||
|
inside nml_read_obj. If the read error flag is found set just exit.
|
||||||
|
Fix some whitespace on comments.
|
||||||
|
(nml_read_obj_data): Reset the read error flag before the first call
|
||||||
|
to nml_read_object.
|
||||||
|
|
||||||
2013-03-31 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
2013-03-31 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
||||||
|
|
||||||
PR libfortran/56786
|
PR libfortran/56786
|
||||||
|
|
|
||||||
|
|
@ -2490,9 +2490,9 @@ nml_read_obj (st_parameter_dt *dtp, namelist_info * nl, index_type offset,
|
||||||
size_t obj_name_len;
|
size_t obj_name_len;
|
||||||
void * pdata;
|
void * pdata;
|
||||||
|
|
||||||
/* This object not touched in name parsing. */
|
/* If we have encountered a previous read error or this object has not been
|
||||||
|
touched in name parsing, just return. */
|
||||||
if (!nl->touched)
|
if (dtp->u.p.nml_read_error || !nl->touched)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
dtp->u.p.repeat_count = 0;
|
dtp->u.p.repeat_count = 0;
|
||||||
|
|
@ -2532,10 +2532,8 @@ nml_read_obj (st_parameter_dt *dtp, namelist_info * nl, index_type offset,
|
||||||
- GFC_DESCRIPTOR_LBOUND(nl,dim))
|
- GFC_DESCRIPTOR_LBOUND(nl,dim))
|
||||||
* GFC_DESCRIPTOR_STRIDE(nl,dim) * nl->size);
|
* GFC_DESCRIPTOR_STRIDE(nl,dim) * nl->size);
|
||||||
|
|
||||||
/* Reset the error flag and try to read next value, if
|
/* If we are finished with the repeat count, try to read next value. */
|
||||||
dtp->u.p.repeat_count=0 */
|
|
||||||
|
|
||||||
dtp->u.p.nml_read_error = 0;
|
|
||||||
nml_carry = 0;
|
nml_carry = 0;
|
||||||
if (--dtp->u.p.repeat_count <= 0)
|
if (--dtp->u.p.repeat_count <= 0)
|
||||||
{
|
{
|
||||||
|
|
@ -2564,8 +2562,8 @@ nml_read_obj (st_parameter_dt *dtp, namelist_info * nl, index_type offset,
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BT_REAL:
|
case BT_REAL:
|
||||||
/* Need to copy data back from the real location to the temp in order
|
/* Need to copy data back from the real location to the temp in
|
||||||
to handle nml reads into arrays. */
|
order to handle nml reads into arrays. */
|
||||||
read_real (dtp, pdata, len);
|
read_real (dtp, pdata, len);
|
||||||
memcpy (dtp->u.p.value, pdata, dlen);
|
memcpy (dtp->u.p.value, pdata, dlen);
|
||||||
break;
|
break;
|
||||||
|
|
@ -3022,6 +3020,7 @@ get_name:
|
||||||
nl = first_nl;
|
nl = first_nl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dtp->u.p.nml_read_error = 0;
|
||||||
if (!nml_read_obj (dtp, nl, 0, pprev_nl, nml_err_msg, nml_err_msg_size,
|
if (!nml_read_obj (dtp, nl, 0, pprev_nl, nml_err_msg, nml_err_msg_size,
|
||||||
clow, chigh))
|
clow, chigh))
|
||||||
goto nml_err_ret;
|
goto nml_err_ret;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue