------- Comment #4 from jvdelisle at gcc dot gnu dot org  2008-03-18 04:25 
-------
Naturally, the patch in comment #2 breaks namelist_44.f90  (I say that because,
after all, we are up to 44 namelist test cases, and about to go to 45 :) )

Nevertheless, this fixes it and passes regression.

Index: list_read.c
===================================================================
--- list_read.c (revision 133275)
+++ list_read.c (working copy)
@@ -356,6 +356,11 @@ eat_separator (st_parameter_dt *dtp)
                {
                  eat_line (dtp);
                  c = next_char (dtp);
+                 if (c == '!')
+                   {
+                     eat_line (dtp);
+                     c = next_char (dtp);
+                   }
                }
            }
          while (c == '\n' || c == '\r' || c == ' ');

eatline leaves us pointing to the first character of the next line, which we
then get, which causes the while loop to exit, followed by an unget.  So the
next get char will get a '!' which is nonsense and can not be matched.  The
patch circumvents this special case.

I will commit as obvious to trunk and then to 4.3 in a few days.


-- 


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

Reply via email to