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> 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 PR fortran/24978
* gfortran.h: Removed repeat count from constructor, removed * gfortran.h: Removed repeat count from constructor, removed
all usages. all usages.
......
...@@ -11837,6 +11837,7 @@ traverse_data_list (gfc_data_variable *var, locus *where) ...@@ -11837,6 +11837,7 @@ traverse_data_list (gfc_data_variable *var, locus *where)
gfc_try retval = SUCCESS; gfc_try retval = SUCCESS;
mpz_init (frame.value); mpz_init (frame.value);
mpz_init (trip);
start = gfc_copy_expr (var->iter.start); start = gfc_copy_expr (var->iter.start);
end = gfc_copy_expr (var->iter.end); end = gfc_copy_expr (var->iter.end);
...@@ -11845,26 +11846,29 @@ traverse_data_list (gfc_data_variable *var, locus *where) ...@@ -11845,26 +11846,29 @@ traverse_data_list (gfc_data_variable *var, locus *where)
if (gfc_simplify_expr (start, 1) == FAILURE if (gfc_simplify_expr (start, 1) == FAILURE
|| start->expr_type != EXPR_CONSTANT) || 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; retval = FAILURE;
goto cleanup; goto cleanup;
} }
if (gfc_simplify_expr (end, 1) == FAILURE if (gfc_simplify_expr (end, 1) == FAILURE
|| end->expr_type != EXPR_CONSTANT) || 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; retval = FAILURE;
goto cleanup; goto cleanup;
} }
if (gfc_simplify_expr (step, 1) == FAILURE if (gfc_simplify_expr (step, 1) == FAILURE
|| step->expr_type != EXPR_CONSTANT) || 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; retval = FAILURE;
goto cleanup; goto cleanup;
} }
mpz_init_set (trip, end->value.integer); mpz_set (trip, end->value.integer);
mpz_sub (trip, trip, start->value.integer); mpz_sub (trip, trip, start->value.integer);
mpz_add (trip, trip, step->value.integer); mpz_add (trip, trip, step->value.integer);
...@@ -11880,7 +11884,6 @@ traverse_data_list (gfc_data_variable *var, locus *where) ...@@ -11880,7 +11884,6 @@ traverse_data_list (gfc_data_variable *var, locus *where)
{ {
if (traverse_data_var (var->list, where) == FAILURE) if (traverse_data_var (var->list, where) == FAILURE)
{ {
mpz_clear (trip);
retval = FAILURE; retval = FAILURE;
goto cleanup; goto cleanup;
} }
...@@ -11889,7 +11892,6 @@ traverse_data_list (gfc_data_variable *var, locus *where) ...@@ -11889,7 +11892,6 @@ traverse_data_list (gfc_data_variable *var, locus *where)
if (gfc_simplify_expr (e, 1) == FAILURE) if (gfc_simplify_expr (e, 1) == FAILURE)
{ {
gfc_free_expr (e); gfc_free_expr (e);
mpz_clear (trip);
retval = FAILURE; retval = FAILURE;
goto cleanup; goto cleanup;
} }
...@@ -11899,9 +11901,9 @@ traverse_data_list (gfc_data_variable *var, locus *where) ...@@ -11899,9 +11901,9 @@ traverse_data_list (gfc_data_variable *var, locus *where)
mpz_sub_ui (trip, trip, 1); mpz_sub_ui (trip, trip, 1);
} }
mpz_clear (trip);
cleanup: cleanup:
mpz_clear (frame.value); mpz_clear (frame.value);
mpz_clear (trip);
gfc_free_expr (start); gfc_free_expr (start);
gfc_free_expr (end); 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