aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/fortran/ChangeLog7
-rw-r--r--gcc/fortran/primary.c10
2 files changed, 17 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 514b29a..a39f8a5 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -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
diff --git a/gcc/fortran/primary.c b/gcc/fortran/primary.c
index b87d72a..992bc5f 100644
--- a/gcc/fortran/primary.c
+++ b/gcc/fortran/primary.c
@@ -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;