re PR libfortran/36657 (Namelist reading bug with string constant immediately followe...
authorJerry DeLisle <jvdelisle@gcc.gnu.org>
Sat, 28 Jun 2008 21:46:53 +0000 (21:46 +0000)
committerJerry DeLisle <jvdelisle@gcc.gnu.org>
Sat, 28 Jun 2008 21:46:53 +0000 (21:46 +0000)
2008-06-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR fortran/36657
* io/list_read.c (read_character): Check for '!' along with separators.
(find_nml_name): Likewise and eat the comment if found.

From-SVN: r137236

libgfortran/ChangeLog
libgfortran/io/list_read.c

index ac9e2710a28e40f69b60b4e55999a4a94e5b279b..69a205949bfebcc0a2cb6ca64022596d673b02a2 100644 (file)
@@ -1,3 +1,9 @@
+2008-06-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR fortran/36657
+       * io/list_read.c (read_character): Check for '!' along with separators.
+       (find_nml_name): Likewise and eat the comment if found.
+
 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 
        * configure: Regenerate.
index ffa23693a86d9d1b721ffd2d3fbf253fc8a1c0aa..82c288f6c6e1bf2ada72b3b06eff47ee4a63b3b1 100644 (file)
@@ -1083,7 +1083,7 @@ read_character (st_parameter_dt *dtp, int length __attribute__ ((unused)))
      invalid.  */
  done:
   c = next_char (dtp);
-  if (is_separator (c))
+  if (is_separator (c) || c == '!')
     {
       unget_char (dtp, c);
       eat_separator (dtp);
@@ -2916,13 +2916,14 @@ find_nml_name:
 
   /* A trailing space is required, we give a little lattitude here, 10.9.1.  */ 
   c = next_char (dtp);
-  if (!is_separator(c))
+  if (!is_separator(c) && c != '!')
     {
       unget_char (dtp, c);
       goto find_nml_name;
     }
 
-  eat_separator (dtp);
+  if (c == '!')
+    eat_line (dtp);
 
   /* Ready to read namelist objects.  If there is an error in input
      from stdin, output the error message and continue.  */