diff options
Diffstat (limited to 'gcc/fortran/resolve.c')
-rw-r--r-- | gcc/fortran/resolve.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index 1641eb6..b6d21ad 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -16327,7 +16327,7 @@ traverse_data_list (gfc_data_variable *var, locus *where) || end->expr_type != EXPR_CONSTANT) { gfc_error ("end of implied-do loop at %L could not be " - "simplified to a constant value", &start->where); + "simplified to a constant value", &end->where); retval = false; goto cleanup; } @@ -16335,7 +16335,14 @@ traverse_data_list (gfc_data_variable *var, locus *where) || step->expr_type != EXPR_CONSTANT) { gfc_error ("step of implied-do loop at %L could not be " - "simplified to a constant value", &start->where); + "simplified to a constant value", &step->where); + retval = false; + goto cleanup; + } + if (mpz_cmp_si (step->value.integer, 0) == 0) + { + gfc_error ("step of implied-do loop at %L shall not be zero", + &step->where); retval = false; goto cleanup; } |