aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/resolve.c
diff options
context:
space:
mode:
authorJerry DeLisle <jvdelisle@gcc.gnu.org>2007-06-22 01:50:09 +0000
committerJerry DeLisle <jvdelisle@gcc.gnu.org>2007-06-22 01:50:09 +0000
commit79e7840d22610f67d5247c2ac73d908fbc77838a (patch)
treefe9a3d1004e1a4761c54706e236aad74348de33b /gcc/fortran/resolve.c
parent49d2bde811fc53f864e611151e7fda1e0a506ddf (diff)
downloadgcc-79e7840d22610f67d5247c2ac73d908fbc77838a.zip
gcc-79e7840d22610f67d5247c2ac73d908fbc77838a.tar.gz
gcc-79e7840d22610f67d5247c2ac73d908fbc77838a.tar.bz2
re PR fortran/31162 (missing warning for real do-loops with implicit typed variables)
2007-06-21 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR fortran/31162 * resolve.c (gfc_resolve_iterator_expr): Add check for REAL using gfc_notify_standard. (gfc_resolve_iterator): Remove check. (resolve_branch): Change "Obsolete" to "Deleted feature". * io.c (resolve_tag): Ditto. * match.c (gfc_match_pause, gfc_match_assign, gfc_match_goto): Ditto. From-SVN: r125938
Diffstat (limited to 'gcc/fortran/resolve.c')
-rw-r--r--gcc/fortran/resolve.c34
1 files changed, 20 insertions, 14 deletions
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index cbf4f7c..8b3b29e 100644
--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -3373,15 +3373,26 @@ gfc_resolve_iterator_expr (gfc_expr *expr, bool real_ok,
return FAILURE;
}
- if (!(expr->ts.type == BT_INTEGER
- || (expr->ts.type == BT_REAL && real_ok)))
+ if (expr->ts.type != BT_INTEGER)
{
- if (real_ok)
- gfc_error ("%s at %L must be INTEGER or REAL", _(name_msgid),
- &expr->where);
+ if (expr->ts.type == BT_REAL)
+ {
+ if (real_ok)
+ return gfc_notify_std (GFC_STD_F95_DEL,
+ "Deleted feature: %s at %L must be integer",
+ _(name_msgid), &expr->where);
+ else
+ {
+ gfc_error ("%s at %L must be INTEGER", _(name_msgid),
+ &expr->where);
+ return FAILURE;
+ }
+ }
else
- gfc_error ("%s at %L must be INTEGER", _(name_msgid), &expr->where);
- return FAILURE;
+ {
+ gfc_error ("%s at %L must be INTEGER", _(name_msgid), &expr->where);
+ return FAILURE;
+ }
}
return SUCCESS;
}
@@ -3393,11 +3404,6 @@ gfc_resolve_iterator_expr (gfc_expr *expr, bool real_ok,
try
gfc_resolve_iterator (gfc_iterator *iter, bool real_ok)
{
-
- if (iter->var->ts.type == BT_REAL)
- gfc_notify_std (GFC_STD_F95_DEL, "Obsolete: REAL DO loop iterator at %L",
- &iter->var->where);
-
if (gfc_resolve_iterator_expr (iter->var, real_ok, "Loop variable")
== FAILURE)
return FAILURE;
@@ -4572,7 +4578,7 @@ resolve_branch (gfc_st_label *label, gfc_code *code)
if (stack && stack->current->next->op == EXEC_NOP)
{
- gfc_notify_std (GFC_STD_F95_DEL, "Obsolete: GOTO at %L jumps to "
+ gfc_notify_std (GFC_STD_F95_DEL, "Deleted feature: GOTO at %L jumps to "
"END of construct at %L", &code->loc,
&stack->current->next->loc);
return; /* We know this is not an END DO. */
@@ -4586,7 +4592,7 @@ resolve_branch (gfc_st_label *label, gfc_code *code)
|| stack->current->op == EXEC_DO_WHILE)
&& stack->tail->here == label && stack->tail->op == EXEC_NOP)
{
- gfc_notify_std (GFC_STD_F95_DEL, "Obsolete: GOTO at %L jumps "
+ gfc_notify_std (GFC_STD_F95_DEL, "Deleted feature: GOTO at %L jumps "
"to END of construct at %L", &code->loc,
&stack->tail->loc);
return;