]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
resolve.c (traverse_data_list): Rephrase error message for non-constant bounds in...
authorDaniel Franke <franke.daniel@gmail.com>
Wed, 5 May 2010 19:35:22 +0000 (15:35 -0400)
committerDaniel Franke <dfranke@gcc.gnu.org>
Wed, 5 May 2010 19:35:22 +0000 (15:35 -0400)
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

gcc/fortran/ChangeLog
gcc/fortran/resolve.c

index 090a4315c0c265acae309f9935ce53054af24477..5b6b42f8a804ef823e107773f1be10a805f40e4d 100644 (file)
@@ -1,3 +1,8 @@
+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
index 2c79863a718b12569c7da6fa6c26354cc685eb69..9852af8eac1c79b5ad0d7554526dd2c7cb347752 100644 (file)
@@ -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);