OSDN Git Service

* trans-array.c (gfc_conv_ss_startstride): Access array bounds along
authormikael <mikael@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 3 Nov 2011 21:12:33 +0000 (21:12 +0000)
committermikael <mikael@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 3 Nov 2011 21:12:33 +0000 (21:12 +0000)
array dimensions instead of loop dimensions.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180852 138bc75d-0d04-0410-961f-82ee72b054a4

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

index a13e8ef..e9d3f81 100644 (file)
@@ -1,5 +1,10 @@
 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
 
+       * trans-array.c (gfc_conv_ss_startstride): Access array bounds along
+       array dimensions instead of loop dimensions.
+
+2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
+
        * trans-array.c (gfc_trans_preloop_setup): Assertify one condition.
 
 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
index 8359af2..f4d8a85 100644 (file)
@@ -3347,9 +3347,11 @@ done:
        case GFC_SS_FUNCTION:
          for (n = 0; n < ss->data.info.dimen; n++)
            {
-             ss->data.info.start[n] = gfc_index_zero_node;
-             ss->data.info.end[n] = gfc_index_zero_node;
-             ss->data.info.stride[n] = gfc_index_one_node;
+             int dim = ss->data.info.dim[n];
+
+             ss->data.info.start[dim]  = gfc_index_zero_node;
+             ss->data.info.end[dim]    = gfc_index_zero_node;
+             ss->data.info.stride[dim] = gfc_index_one_node;
            }
          break;