]> 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 15:11:21 +0000 (15:11 +0000)
committerMikael Morin <mikael@gcc.gnu.org>
Tue, 18 Oct 2011 15:11:21 +0000 (15:11 +0000)
PR fortran/50420
* simplify.c (simplify_cobound): Accept non-last-in-ref-chain coarrays.
Don't set already set array ref.

From-SVN: r180150

gcc/fortran/ChangeLog
gcc/fortran/simplify.c

index 18e209f63be0fc9f90316568bf9016daaf1506e4..2421c03fe76d1f3cd6c7813cf0cd87f256f0da09 100644 (file)
@@ -1,3 +1,9 @@
+2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>
+
+       PR fortran/50420
+       * simplify.c (simplify_cobound): Accept non-last-in-ref-chain coarrays.
+       Don't set already set array ref.
+
 2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>
 
        * array.c (gfc_find_array_ref): Remove coarray-specific handling.
index 13a9c5147c0dd824d040d1624ade486af11454c7..63689bb700c24450265552915f20a69135c1362d 100644 (file)
@@ -3512,11 +3512,9 @@ simplify_cobound (gfc_expr *array, gfc_expr *dim, gfc_expr *kind, int upper)
          switch (ref->u.ar.type)
            {
            case AR_ELEMENT:
-             if (ref->next == NULL)
+             if (ref->u.ar.as->corank > 0)
                {
-                 gcc_assert (ref->u.ar.as->corank > 0
-                             && ref->u.ar.as->rank == 0);
-                 as = ref->u.ar.as;
+                 gcc_assert (as == ref->u.ar.as);
                  goto done;
                }
              as = NULL;