re PR fortran/56743 (Namelist bug with comment and no blank)
authorJerry DeLisle <jvdelisle@gcc.gnu.org>
Tue, 21 Apr 2015 16:13:54 +0000 (16:13 +0000)
committerJerry DeLisle <jvdelisle@gcc.gnu.org>
Tue, 21 Apr 2015 16:13:54 +0000 (16:13 +0000)
2015-04-21 Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR libgfortran/56743
* io/list_read.c (CASE_SEPARATORS): Add case for '!'.
(is_separator): Add condition for '!'.
(eat_separator): Use notify_std to warn or errord if '!' is
encountered before a proper separator.

From-SVN: r222271

libgfortran/ChangeLog
libgfortran/io/list_read.c

index 9f53ae3e8afbce587259d76a01a42c17518b33fa..e17dcae46d384dd5a30b71a3c4c48568bb40caa4 100644 (file)
@@ -1,3 +1,11 @@
+2015-04-21 Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR libgfortran/56743
+       * io/list_read.c (CASE_SEPARATORS): Add case for '!'.
+       (is_separator): Add condition for '!'.
+       (eat_separator): Use notify_std to warn or errord if '!' is
+       encountered before a proper separator.
+
 2015-04-14 Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 
        PR libgfortran/65089
index 45243ed9f3931edd898b46b73ec3d9b84ec16ef9..a4a6dacb7a35e49c30e84c7e7637cde8118b9730 100644 (file)
@@ -53,12 +53,12 @@ typedef unsigned char uchar;
                       case '5': case '6': case '7': case '8': case '9'
 
 #define CASE_SEPARATORS  case ' ': case ',': case '/': case '\n': case '\t': \
-                         case '\r': case ';'
+                         case '\r': case ';': case '!'
 
 /* This macro assumes that we're operating on a variable.  */
 
 #define is_separator(c) (c == '/' ||  c == ',' || c == '\n' || c == ' ' \
-                         || c == '\t' || c == '\r' || c == ';')
+                         || c == '\t' || c == '\r' || c == ';' || c == '!')
 
 /* Maximum repeat count.  Less than ten times the maximum signed int32.  */
 
@@ -523,6 +523,9 @@ eat_separator (st_parameter_dt *dtp)
     case '!':
       if (dtp->u.p.namelist_mode)
        {                       /* Eat a namelist comment.  */
+         notify_std (&dtp->common, GFC_STD_GNU,
+                     "'!' in namelist is not a valid separator,"
+                     " try inserting a space");
          err = eat_line (dtp);
          if (err)
            return err;