trans-array.c (gfc_conv_section_startstride): Factor common array ref references.

* trans-array.c (gfc_conv_section_startstride): Factor common
	array ref references.

From-SVN: r179679
This commit is contained in:
Mikael Morin 2011-10-07 21:33:10 +02:00 committed by Mikael Morin
parent a7525708c6
commit 3ca398580d
2 changed files with 12 additions and 5 deletions

View File

@ -1,3 +1,8 @@
2011-10-07 Mikael Morin <mikael.morin@sfr.fr>
* trans-array.c (gfc_conv_section_startstride): Factor common
array ref references.
2011-10-07 Mikael Morin <mikael.morin@sfr.fr> 2011-10-07 Mikael Morin <mikael.morin@sfr.fr>
* trans-array.c (gfc_conv_expr_descriptor): Use codim instead of * trans-array.c (gfc_conv_expr_descriptor): Use codim instead of

View File

@ -3187,12 +3187,14 @@ gfc_conv_section_startstride (gfc_loopinfo * loop, gfc_ss * ss, int dim,
tree desc; tree desc;
gfc_se se; gfc_se se;
gfc_ss_info *info; gfc_ss_info *info;
gfc_array_ref *ar;
gcc_assert (ss->type == GFC_SS_SECTION); gcc_assert (ss->type == GFC_SS_SECTION);
info = &ss->data.info; info = &ss->data.info;
ar = &info->ref->u.ar;
if (info->ref->u.ar.dimen_type[dim] == DIMEN_VECTOR) if (ar->dimen_type[dim] == DIMEN_VECTOR)
{ {
/* We use a zero-based index to access the vector. */ /* We use a zero-based index to access the vector. */
info->start[dim] = gfc_index_zero_node; info->start[dim] = gfc_index_zero_node;
@ -3202,12 +3204,12 @@ gfc_conv_section_startstride (gfc_loopinfo * loop, gfc_ss * ss, int dim,
return; return;
} }
gcc_assert (info->ref->u.ar.dimen_type[dim] == DIMEN_RANGE); gcc_assert (ar->dimen_type[dim] == DIMEN_RANGE);
desc = info->descriptor; desc = info->descriptor;
start = info->ref->u.ar.start[dim]; start = ar->start[dim];
end = info->ref->u.ar.end[dim]; end = ar->end[dim];
if (!coarray) if (!coarray)
stride = info->ref->u.ar.stride[dim]; stride = ar->stride[dim];
/* Calculate the start of the range. For vector subscripts this will /* Calculate the start of the range. For vector subscripts this will
be the range of the vector. */ be the range of the vector. */