summaryrefslogtreecommitdiff
path: root/gcc/fortran/primary.c
diff options
context:
space:
mode:
authorkargl <kargl@138bc75d-0d04-0410-961f-82ee72b054a4>2005-03-05 23:35:44 +0000
committerkargl <kargl@138bc75d-0d04-0410-961f-82ee72b054a4>2005-03-05 23:35:44 +0000
commitdea4362cc0ec41e38b34331be2c5e2460dd5982c (patch)
treed8d5e2c7a1d0e5e4912a1628daff199bde036517 /gcc/fortran/primary.c
parent6003287601f491b20444ab3bcdc17ed6dec1f63c (diff)
downloadgcc-dea4362cc0ec41e38b34331be2c5e2460dd5982c.tar.gz
PR 19936
* 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
Diffstat (limited to 'gcc/fortran/primary.c')
-rw-r--r--gcc/fortran/primary.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/fortran/primary.c b/gcc/fortran/primary.c
index b87d72a1830..992bc5f0af7 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;