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);