This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[patch, fortran] PR32331 - improve error message
- From: Daniel Franke <franke dot daniel at gmail dot com>
- To: fortran at gcc dot gnu dot org
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Wed, 5 May 2010 21:12:51 +0200
- Subject: [patch, fortran] PR32331 - improve error message
Hi all.
This is a simple one. The message
Error: iterator end at (1) does not simplify
is not exactly easy to grasp at first. Attached patch rephrases this a bit to
Error: start of implied-do loop at (1) could not be
simplified to a constant value
No testcase as it only changes the wording of the error, no functionality.
2010-05-05 Daniel Franke <franke.daniel@gmail.com>
* resolve.c (traverse_data_list): Rephrase error message for
non-constant bounds in data-implied-do.
Regression tested on i686-pc-linux-gnu.
Ok for trunk?
Daniel
Index: resolve.c
===================================================================
--- resolve.c (revision 159076)
+++ resolve.c (working copy)
@@ -11837,6 +11837,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);
@@ -11845,26 +11846,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 could 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 could 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 could 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);
@@ -11880,7 +11884,6 @@ traverse_data_list (gfc_data_variable *v
{
if (traverse_data_var (var->list, where) == FAILURE)
{
- mpz_clear (trip);
retval = FAILURE;
goto cleanup;
}
@@ -11889,7 +11892,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;
}
@@ -11899,9 +11901,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);