re PR fortran/50420 ([Coarray] lcobound doesn't accept coarray subcomponents)
authorMikael Morin <mikael@gcc.gnu.org>
Tue, 18 Oct 2011 15:02:38 +0000 (15:02 +0000)
committerMikael Morin <mikael@gcc.gnu.org>
Tue, 18 Oct 2011 15:02:38 +0000 (15:02 +0000)
PR fortran/50420
* trans-intrinsic.c (walk_coarray): Change AR_ELEMENT to AR_SECTION.

PR fortran/50420
* trans-intrinsic.c (walk_coarray): Use gfc_walk_array_ref for
the scalarization chain initialization.

From-SVN: r180147

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

index 819369c2adc15d135769f898e30002d8ebcabe24..2b3ca85b6e15f395b44bef2aa382801a8980ee91 100644 (file)
@@ -1,3 +1,12 @@
+2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>
+
+       PR fortran/50420
+       * trans-intrinsic.c (walk_coarray): Change AR_ELEMENT to AR_SECTION.
+
+       PR fortran/50420
+       * trans-intrinsic.c (walk_coarray): Use gfc_walk_array_ref for
+       the scalarization chain initialization. 
+
 2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>
 
        PR fortran/50420
index 82bbb69f70d8d884fcbfc2ae92479a9415eb3581..83fc4fc52efaf59bb813a250ece5d06fa17b21aa 100644 (file)
@@ -940,8 +940,6 @@ walk_coarray (gfc_expr *e)
     {
       gfc_ref *ref;
 
-      ss = gfc_get_array_ss (gfc_ss_terminator, e, 0, GFC_SS_SECTION);
-
       ref = e->ref;
       while (ref)
        {
@@ -953,8 +951,9 @@ walk_coarray (gfc_expr *e)
        }
 
       gcc_assert (ref != NULL);
-      ref->u.ar.type = AR_FULL;
-      ss->data.info.ref = ref;
+      if (ref->u.ar.type == AR_ELEMENT)
+       ref->u.ar.type = AR_SECTION;
+      ss = gfc_reverse_ss (gfc_walk_array_ref (ss, e, ref));
     }
 
   return ss;