Now that array gfc_ss structs are initialized right after allocation,
especially their DIM and DIMEN fields are set properly, later initializations
of those fields are now redundant.

This patch removes such initializations and/or replaces them with asserts that
the value is already correct.
OK?
2011-08-30  Mikael Morin  <mikael.mo...@gcc.gnu.org>

        * trans-array.c (gfc_trans_constant_array_constructor): Remove
        superfluous initialisation of DIM field.
        (gfc_trans_array_constructor): Assert that DIMEN field is properly set.
        (gfc_conv_expr_descriptor): Ditto.
        * trans-expr.c (gfc_conv_procedure_call): Ditto.
commit 6513df3737d66218914900a23d6ad2c948a986c7
Author: Mikael Morin <mik@gimli.local>
Date:   Tue Jun 28 18:10:33 2011 +0200

    Transformation assignements en assertions
diff --git a/trans-array.c b/trans-array.c
index 80a6fe6..37cdeb5 100644
--- a/trans-array.c
+++ b/trans-array.c
@@ -1882,7 +1882,6 @@ gfc_trans_constant_array_constructor (gfc_loopinfo * loop,
       info->start[i] = gfc_index_zero_node;
       info->end[i] = gfc_index_zero_node;
       info->stride[i] = gfc_index_one_node;
-      info->dim[i] = i;
     }
 
   if (info->dimen > loop->temp_dim)
@@ -1961,7 +1960,7 @@ gfc_trans_array_constructor (gfc_loopinfo * loop, gfc_ss 
* ss, locus * where)
       first_len = true;
     }
 
-  ss->data.info.dimen = loop->dimen;
+  gcc_assert (ss->data.info.dimen == loop->dimen);
 
   c = ss->expr->value.constructor;
   if (ss->expr->ts.type == BT_CHARACTER)
@@ -5915,7 +5914,7 @@ gfc_conv_expr_descriptor (gfc_se * se, gfc_expr * expr, 
gfc_ss * ss)
                                      loop.dimen);
 
       se->string_length = loop.temp_ss->string_length;
-      loop.temp_ss->data.temp.dimen = loop.dimen;
+      gcc_assert (loop.temp_ss->data.temp.dimen == loop.dimen);
       loop.temp_ss->data.temp.codimen = loop.codimen;
       gfc_add_ss_to_loop (&loop, loop.temp_ss);
     }
diff --git a/trans-expr.c b/trans-expr.c
index 6a33719..131927c 100644
--- a/trans-expr.c
+++ b/trans-expr.c
@@ -3576,7 +3576,7 @@ gfc_conv_procedure_call (gfc_se * se, gfc_symbol * sym,
 
          /* Set the type of the array.  */
          tmp = gfc_typenode_for_spec (&comp->ts);
-         info->dimen = se->loop->dimen;
+         gcc_assert (info->dimen == se->loop->dimen);
 
          /* Evaluate the bounds of the result, if known.  */
          gfc_set_loop_bounds_from_array_spec (&mapping, se, comp->as);
@@ -3611,7 +3611,7 @@ gfc_conv_procedure_call (gfc_se * se, gfc_symbol * sym,
 
          /* Set the type of the array.  */
          tmp = gfc_typenode_for_spec (&ts);
-         info->dimen = se->loop->dimen;
+         gcc_assert (info->dimen == se->loop->dimen);
 
          /* Evaluate the bounds of the result, if known.  */
          gfc_set_loop_bounds_from_array_spec (&mapping, se, sym->result->as);

Reply via email to