[patch, libgfortran] PR47778 reading two arrays of structures from namelist fails

Tobias Burnus burnus@net-b.de
Sun Feb 27 17:39:00 GMT 2011


Jerry DeLisle wrote:
> The attached patch fixes this bug by resetting the pprev_nl pointer to 
> NULL when the rank of the previous object read was zero.  pprev_nl is 
> used to track multiple reads from the same namelist variable.
> Regression tested on x86-64.
> OK for trunk?  I suggest we should back port to 4.5 and possibly earlier.

OK for 4.6 and for 4.4/4.5.

>          }
> +      if (prev_nl && prev_nl->var_rank == 0)
> +    prev_nl = NULL;

I wonder whether a comment would help to understand the code.

> --- io/list_read.c    (revision 170543)
> +++ io/list_read.c    (working copy)
> @@ -2985,6 +2985,9 @@
>  {
>    int c;
>    char nml_err_msg[200];
> +
> +  snprintf (nml_err_msg, sizeof nml_err_msg, "Internal namelist read 
> error");

Is there a reason that you do not use:

    char nml_err_msg[200] = "Internal namelist read error";

That looks simpler too me.

Tobias



More information about the Fortran mailing list