]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR fortran/50420 ([Coarray] lcobound doesn't accept coarray subcomponents)
authorMikael Morin <mikael@gcc.gnu.org>
Tue, 18 Oct 2011 14:59:07 +0000 (14:59 +0000)
committerMikael Morin <mikael@gcc.gnu.org>
Tue, 18 Oct 2011 14:59:07 +0000 (14:59 +0000)
PR fortran/50420
* trans-intrinsic.c (walk_coarray): Allow subreferences after a
coarray object reference.

From-SVN: r180146

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

index b1b0407fcc8a5fdbf6e443eb59fe855452146902..819369c2adc15d135769f898e30002d8ebcabe24 100644 (file)
@@ -1,3 +1,9 @@
+2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>
+
+       PR fortran/50420
+       * trans-intrinsic.c (walk_coarray): Allow subreferences after a
+       coarray object reference.
+
 2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>
 
        PR fortran/50420
index ed18bfa6bdeaaaf34407d0b2b784247ec7cf417e..82bbb69f70d8d884fcbfc2ae92479a9415eb3581 100644 (file)
@@ -943,10 +943,16 @@ walk_coarray (gfc_expr *e)
       ss = gfc_get_array_ss (gfc_ss_terminator, e, 0, GFC_SS_SECTION);
 
       ref = e->ref;
-      while (ref->next)
-       ref = ref->next;
+      while (ref)
+       {
+         if (ref->type == REF_ARRAY
+             && ref->u.ar.codimen > 0)
+           break;
+
+         ref = ref->next;
+       }
 
-      gcc_assert (ref->type == REF_ARRAY && ref->u.ar.codimen > 0);
+      gcc_assert (ref != NULL);
       ref->u.ar.type = AR_FULL;
       ss->data.info.ref = ref;
     }