aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/match.c
diff options
context:
space:
mode:
authorTobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>2004-06-15 23:50:50 +0200
committerTobias Schlüter <tobi@gcc.gnu.org>2004-06-15 23:50:50 +0200
commit6ef4215401ab8001886973790886dfd75446c037 (patch)
tree91cec34fb614da23cba18dd77a187546799cb659 /gcc/fortran/match.c
parent0173bb6f2d715c4c3839c17e26a38bd522e07fa4 (diff)
downloadgcc-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.c8
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);