Commit 147a19a9 by Daniel Franke Committed by Daniel Franke

resolve.c (traverse_data_list): Rephrase error message for non-constant bounds in data-implied-do.

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.

From-SVN: r159080
parent 564a129d
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.
2010-05-05 Daniel Franke <franke.daniel@gmail.com>
PR fortran/24978
* gfortran.h: Removed repeat count from constructor, removed
all usages.
......
......@@ -11837,6 +11837,7 @@ traverse_data_list (gfc_data_variable *var, locus *where)
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 *var, locus *where)
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 *var, locus *where)
{
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 *var, locus *where)
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 *var, locus *where)
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);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment