From: Steven G. Kargl Date: Sat, 5 Mar 2005 23:35:44 +0000 (+0000) Subject: re PR fortran/19936 (confused error message about implied do loop) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=87ebdf2fabc94752156aa882c6a2214d36af8c4e;p=gcc.git re PR fortran/19936 (confused error message about implied do loop) PR 19936 * primary.c (match_complex_constant): Mangled complex constant may be an implied do-loop. Give implied do-loop matcher a chance. From-SVN: r95951 --- diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 514b29ad346..a39f8a5c370 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,10 @@ +2005-03-05 Steven G. Kargl + + 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 PR fortran/19754 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;