OSDN Git Service

PR fortran/50420
authormikael <mikael@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 18 Oct 2011 15:02:38 +0000 (15:02 +0000)
committermikael <mikael@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 18 Oct 2011 15:02:38 +0000 (15:02 +0000)
* 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.

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

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

index 819369c..2b3ca85 100644 (file)
@@ -1,6 +1,15 @@
 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
        * trans-intrinsic.c (walk_coarray): Allow subreferences after a
        coarray object reference.
 
index 82bbb69..83fc4fc 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;