------- Comment #8 from burnus at gcc dot gnu dot org  2008-03-19 18:29 -------
> So this is why I suspect the read_logical may have an off by one leftover
I think you are right. In that sense it is an only bug which was only exposed
by the new NaN support.

Not very elegent, but the following works. One should probably do an audit of
all l_push_char. The following works here, but I do not understand why element
[0] was '\0' and not something else.

Index: libgfortran/io/list_read.c
===================================================================
--- libgfortran/io/list_read.c  (Revision 133342)
+++ libgfortran/io/list_read.c  (Arbeitskopie)
@@ -680,6 +680,7 @@ read_logical (st_parameter_dt *dtp, int
       break;

     CASE_SEPARATORS:
+      dtp->u.p.item_count--;
       unget_char (dtp, c);
       eat_separator (dtp);
       return;                  /* Null value.  */
@@ -741,6 +742,7 @@ read_logical (st_parameter_dt *dtp, int

  bad_logical:

+  dtp->u.p.item_count--;
   free_line (dtp);

   if (nml_bad_return (dtp, c))


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35627

Reply via email to