From: mikael Date: Thu, 9 Sep 2010 14:12:08 +0000 (+0000) Subject: 2010-09-09 Mikael Morin X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=eb8ae8fc718711519de1ff9dcc4285d7742dd642;p=thirdparty%2Fgcc.git 2010-09-09 Mikael Morin * trans-array.c (gfc_set_loop_bounds_from_array_spec): Get the array dimension from the dim array. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164109 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 2483ad9bea72..6525253fe544 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,8 @@ +2010-09-09 Mikael Morin + + * trans-array.c (gfc_set_loop_bounds_from_array_spec): + Get the array dimension from the dim array. + 2010-09-09 Mikael Morin * trans-array.c (gfc_trans_preloop_setup): Unconditionally use the diff --git a/gcc/fortran/trans-array.c b/gcc/fortran/trans-array.c index e0bc34fe3b02..a5da47412305 100644 --- a/gcc/fortran/trans-array.c +++ b/gcc/fortran/trans-array.c @@ -562,9 +562,11 @@ gfc_set_loop_bounds_from_array_spec (gfc_interface_mapping * mapping, tree tmp; if (as && as->type == AS_EXPLICIT) - for (dim = 0; dim < se->loop->dimen; dim++) + for (n = 0; n < se->loop->dimen; n++) { - n = se->loop->order[dim]; + dim = se->ss->data.info.dim[n]; + gcc_assert (dim < as->rank); + gcc_assert (se->loop->dimen == as->rank); if (se->loop->to[n] == NULL_TREE) { /* Evaluate the lower bound. */