OSDN Git Service

* expr.c (gfc_get_corank): Return 0 if input expression is not a
authormikael <mikael@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 7 Oct 2011 19:14:07 +0000 (19:14 +0000)
committermikael <mikael@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 7 Oct 2011 19:14:07 +0000 (19:14 +0000)
coarray.

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

gcc/fortran/ChangeLog
gcc/fortran/expr.c

index 9133321..4263f19 100644 (file)
@@ -1,5 +1,10 @@
 2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>
 
+       * expr.c (gfc_get_corank): Return 0 if input expression is not a
+       coarray.
+
+2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>
+
        * trans-array.c (gfc_conv_expr_descriptor): Simplify coarray
        descriptor setup code. 
 
index 813a99d..397dcdc 100644 (file)
@@ -4301,13 +4301,19 @@ gfc_get_corank (gfc_expr *e)
 {
   int corank;
   gfc_ref *ref;
+
+  if (!gfc_is_coarray (e))
+    return 0;
+
   corank = e->symtree->n.sym->as ? e->symtree->n.sym->as->corank : 0;
+
   for (ref = e->ref; ref; ref = ref->next)
     {
       if (ref->type == REF_ARRAY)
        corank = ref->u.ar.as->corank;
       gcc_assert (ref->type != REF_SUBSTRING);
     }
+
   return corank;
 }