OSDN Git Service

PR fortran/50420
authormikael <mikael@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 18 Oct 2011 15:11:21 +0000 (15:11 +0000)
committermikael <mikael@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 18 Oct 2011 15:11:21 +0000 (15:11 +0000)
* simplify.c (simplify_cobound): Accept non-last-in-ref-chain coarrays.
Don't set already set array ref.

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

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

index 18e209f..2421c03 100644 (file)
@@ -1,5 +1,11 @@
 2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>
 
 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.
 
 2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>
        * array.c (gfc_find_array_ref): Remove coarray-specific handling.
 
 2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>
index 13a9c51..63689bb 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:
          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;
                  goto done;
                }
              as = NULL;