From 9b089e0545b2b8f6455c91584714e5ab918dfac6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20Schl=C3=BCter?= Date: Fri, 14 May 2004 15:46:05 +0200 Subject: re PR fortran/14066 (Infinite DO loops not recognized.) fortran: PR fortran/14066 * match.c (gfc_match_do): Allow infinite loops with label-do-stmt. Do not enforce space after comma. testsuite: PR fortran/14066 * gfortran.fortran-torture/compile/do_1.f90: New test. Also fixed date on previous ChangeLog entries. From-SVN: r81842 --- gcc/fortran/match.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'gcc/fortran/match.c') diff --git a/gcc/fortran/match.c b/gcc/fortran/match.c index 28fe7a6..fc5afbf 100644 --- a/gcc/fortran/match.c +++ b/gcc/fortran/match.c @@ -1203,6 +1203,10 @@ gfc_match_do (void) if (gfc_match (" do") != MATCH_YES) return MATCH_NO; + m = gfc_match_st_label (&label, 0); + if (m == MATCH_ERROR) + goto cleanup; + /* Match an infinite DO, make it like a DO WHILE(.TRUE.) */ if (gfc_match_eos () == MATCH_YES) @@ -1212,13 +1216,9 @@ gfc_match_do (void) goto done; } - m = gfc_match_st_label (&label, 0); - if (m == MATCH_ERROR) - goto cleanup; - - gfc_match_char (','); - - if (gfc_match ("% ") != MATCH_YES) + /* match an optional comma, if no comma is found a space is obligatory. */ + if (gfc_match_char(',') != MATCH_YES + && gfc_match ("% ") != MATCH_YES) return MATCH_NO; /* See if we have a DO WHILE. */ -- cgit v1.1