diff options
author | Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de> | 2004-06-15 23:50:50 +0200 |
---|---|---|
committer | Tobias Schlüter <tobi@gcc.gnu.org> | 2004-06-15 23:50:50 +0200 |
commit | 6ef4215401ab8001886973790886dfd75446c037 (patch) | |
tree | 91cec34fb614da23cba18dd77a187546799cb659 /gcc/fortran/match.c | |
parent | 0173bb6f2d715c4c3839c17e26a38bd522e07fa4 (diff) | |
download | gcc-6ef4215401ab8001886973790886dfd75446c037.zip gcc-6ef4215401ab8001886973790886dfd75446c037.tar.gz gcc-6ef4215401ab8001886973790886dfd75446c037.tar.bz2 |
re PR fortran/15962 (constant expression not recognized as such)
fortran/
PR fortran/15962
* match.c (match_case_selector): Call gfc_match_init_expr
instead of gfc_match_expr.
* resolve.c (validate_case_label_expr): No need to check for
constant, since it wouldn't have been matched with the fix to
match.c.
testsuite/
PR fortran/15962
* gfortran.fortran-torture/execute/select_1.f90: New test.
From-SVN: r83202
Diffstat (limited to 'gcc/fortran/match.c')
-rw-r--r-- | gcc/fortran/match.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/gcc/fortran/match.c b/gcc/fortran/match.c index 79a7e4c..bc2379d 100644 --- a/gcc/fortran/match.c +++ b/gcc/fortran/match.c @@ -3102,7 +3102,7 @@ match_case_selector (gfc_case ** cp) if (gfc_match_char (':') == MATCH_YES) { - m = gfc_match_expr (&c->high); + m = gfc_match_init_expr (&c->high); if (m == MATCH_NO) goto need_expr; if (m == MATCH_ERROR) @@ -3111,7 +3111,7 @@ match_case_selector (gfc_case ** cp) else { - m = gfc_match_expr (&c->low); + m = gfc_match_init_expr (&c->low); if (m == MATCH_ERROR) goto cleanup; if (m == MATCH_NO) @@ -3123,7 +3123,7 @@ match_case_selector (gfc_case ** cp) c->high = c->low; else { - m = gfc_match_expr (&c->high); + m = gfc_match_init_expr (&c->high); if (m == MATCH_ERROR) goto cleanup; /* MATCH_NO is fine. It's OK if nothing is there! */ @@ -3134,7 +3134,7 @@ match_case_selector (gfc_case ** cp) return MATCH_YES; need_expr: - gfc_error ("Expected expression in CASE at %C"); + gfc_error ("Expected initialization expression in CASE at %C"); cleanup: free_case (c); |