OSDN Git Service

PR 19936
authorkargl <kargl@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 5 Mar 2005 23:35:44 +0000 (23:35 +0000)
committerkargl <kargl@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 5 Mar 2005 23:35:44 +0000 (23:35 +0000)
* primary.c (match_complex_constant): Mangled complex constant may
be an implied do-loop.  Give implied do-loop matcher a chance.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@95951 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/fortran/ChangeLog
gcc/fortran/primary.c

index 514b29a..a39f8a5 100644 (file)
@@ -1,3 +1,10 @@
+2005-03-05  Steven G. Kargl  <kargls@comcast.net>
+
+       PR 19936
+       * primary.c (match_complex_constant): Mangled complex constant may
+       be an implied do-loop.  Give implied do-loop matcher a chance.
+
+
 2005-03-05  Steven G. Kargl  <kargls@comcast.net> 
 
        PR fortran/19754
index b87d72a..992bc5f 100644 (file)
@@ -1074,7 +1074,17 @@ match_complex_constant (gfc_expr ** result)
 
   m = gfc_match_char (')');
   if (m == MATCH_NO)
+    {
+      /* Give the matcher for implied do-loops a chance to run.  This
+        yields a much saner error message for (/ (i, 4=i, 6) /).  */
+      if (gfc_peek_char () == '=')
+       {
+         m = MATCH_ERROR;
+         goto cleanup;
+       }
+      else
     goto syntax;
+    }
 
   if (m == MATCH_ERROR)
     goto cleanup;