trans-array.c (gfc_trans_preloop_setup): Unconditionally use the dim array to get...
authorMikael Morin <mikael@gcc.gnu.org>
Thu, 9 Sep 2010 13:54:34 +0000 (13:54 +0000)
committerMikael Morin <mikael@gcc.gnu.org>
Thu, 9 Sep 2010 13:54:34 +0000 (13:54 +0000)
2010-09-09  Mikael Morin  <mikael@gcc.gnu.org>

* trans-array.c (gfc_trans_preloop_setup): Unconditionally use the
dim array to get the stride in the innermost loop.

From-SVN: r164103

gcc/fortran/ChangeLog
gcc/fortran/trans-array.c

index 07228f6..2483ad9 100644 (file)
@@ -1,5 +1,10 @@
 2010-09-09  Mikael Morin  <mikael@gcc.gnu.org>
 
+       * trans-array.c (gfc_trans_preloop_setup): Unconditionally use the
+       dim array to get the stride in the innermost loop.
+
+2010-09-09  Mikael Morin  <mikael@gcc.gnu.org>
+
        * trans-array.c (gfc_trans_create_temp_array): Don't set dim array.
        (gfc_conv_loop_setup, gfc_walk_function_expr): Set dim array.
        * trans-intrinsic.c (gfc_walk_intrinsic_libfunc): Ditto.
index c9e72f6..e0bc34f 100644 (file)
@@ -2772,16 +2772,17 @@ gfc_trans_preloop_setup (gfc_loopinfo * loop, int dim, int flag,
                                                  info->offset, index);
                  info->offset = gfc_evaluate_now (info->offset, pblock);
                }
-
-             i = loop->order[0];
-             stride = gfc_conv_array_stride (info->descriptor, info->dim[i]);
            }
-         else
-           stride = gfc_conv_array_stride (info->descriptor, 0);
+
+         i = loop->order[0];
+         /* For the time being, the innermost loop is unconditionally on
+            the first dimension of the scalarization loop.  */
+         gcc_assert (i == 0);
+         stride = gfc_conv_array_stride (info->descriptor, info->dim[i]);
 
          /* Calculate the stride of the innermost loop.  Hopefully this will
-             allow the backend optimizers to do their stuff more effectively.
-           */
+            allow the backend optimizers to do their stuff more effectively.
+          */
          info->stride0 = gfc_evaluate_now (stride, pblock);
        }
       else