[Bug fortran/32331] Better error message for variable bond of DATA implied do
dfranke at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Sat May 1 18:30:00 GMT 2010
------- Comment #1 from dfranke at gcc dot gnu dot org 2010-05-01 18:30 -------
How about this?
Index: resolve.c
===================================================================
--- resolve.c (revision 158958)
+++ resolve.c (working copy)
@@ -11824,6 +11827,7 @@ traverse_data_list (gfc_data_variable *v
gfc_try retval = SUCCESS;
mpz_init (frame.value);
+ mpz_init (trip);
start = gfc_copy_expr (var->iter.start);
end = gfc_copy_expr (var->iter.end);
@@ -11832,26 +11836,29 @@ traverse_data_list (gfc_data_variable *v
if (gfc_simplify_expr (start, 1) == FAILURE
|| start->expr_type != EXPR_CONSTANT)
{
- gfc_error ("iterator start at %L does not simplify", &start->where);
+ gfc_error ("start of implied-do loop at %L can not be "
+ "simplified to a constant value ", &start->where);
retval = FAILURE;
goto cleanup;
}
if (gfc_simplify_expr (end, 1) == FAILURE
|| end->expr_type != EXPR_CONSTANT)
{
- gfc_error ("iterator end at %L does not simplify", &end->where);
+ gfc_error ("end of implied-do loop at %L can not be "
+ "simplified to a constant value ", &start->where);
retval = FAILURE;
goto cleanup;
}
if (gfc_simplify_expr (step, 1) == FAILURE
|| step->expr_type != EXPR_CONSTANT)
{
- gfc_error ("iterator step at %L does not simplify", &step->where);
+ gfc_error ("step of implied-do loop at %L can not be "
+ "simplified to a constant value ", &start->where);
retval = FAILURE;
goto cleanup;
}
- mpz_init_set (trip, end->value.integer);
+ mpz_set (trip, end->value.integer);
mpz_sub (trip, trip, start->value.integer);
mpz_add (trip, trip, step->value.integer);
@@ -11867,7 +11874,6 @@ traverse_data_list (gfc_data_variable *v
{
if (traverse_data_var (var->list, where) == FAILURE)
{
- mpz_clear (trip);
retval = FAILURE;
goto cleanup;
}
@@ -11876,7 +11882,6 @@ traverse_data_list (gfc_data_variable *v
if (gfc_simplify_expr (e, 1) == FAILURE)
{
gfc_free_expr (e);
- mpz_clear (trip);
retval = FAILURE;
goto cleanup;
}
@@ -11886,9 +11891,9 @@ traverse_data_list (gfc_data_variable *v
mpz_sub_ui (trip, trip, 1);
}
- mpz_clear (trip);
cleanup:
mpz_clear (frame.value);
+ mpz_clear (trip);
gfc_free_expr (start);
gfc_free_expr (end);
--
dfranke at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |dfranke at gcc dot gnu dot
| |org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32331
More information about the Gcc-bugs
mailing list