From 14bc1986acab91dac7f14f5e977d88eac3071078 Mon Sep 17 00:00:00 2001 From: mikael Date: Thu, 3 Nov 2011 20:56:19 +0000 Subject: [PATCH] * trans-array.c (gfc_trans_preloop_setup): Use loop's dimension instead of array's dimention. Check that it is indeed the same. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180847 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/fortran/ChangeLog | 5 +++++ gcc/fortran/trans-array.c | 5 +++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 7c36e10..e800836 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,5 +1,10 @@ 2011-11-03 Mikael Morin + * trans-array.c (gfc_trans_preloop_setup): Use loop's dimension instead + of array's dimention. Check that it is indeed the same. + +2011-11-03 Mikael Morin + * trans-array.c (gfc_trans_preloop_setup): Remove redundant assertion. Special case outermost loop. diff --git a/gcc/fortran/trans-array.c b/gcc/fortran/trans-array.c index f5e30ae..476978e 100644 --- a/gcc/fortran/trans-array.c +++ b/gcc/fortran/trans-array.c @@ -2861,13 +2861,14 @@ gfc_trans_preloop_setup (gfc_loopinfo * loop, int dim, int flag, if (dim >= info->dimen) continue; + gcc_assert (info->dimen == loop->dimen); if (info->ref) ar = &info->ref->u.ar; else ar = NULL; - if (dim == info->dimen - 1) + if (dim == loop->dimen - 1) i = 0; else i = dim + 1; @@ -2876,7 +2877,7 @@ gfc_trans_preloop_setup (gfc_loopinfo * loop, int dim, int flag, gcc_assert (i == loop->order[i]); i = loop->order[i]; - if (dim == info->dimen - 1) + if (dim == loop->dimen - 1) { stride = gfc_conv_array_stride (info->descriptor, info->dim[i]); -- 2.7.4