aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/resolve.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/fortran/resolve.c')
-rw-r--r--gcc/fortran/resolve.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index bb42404..3b0c12a 100644
--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -1155,6 +1155,9 @@ resolve_structure_cons (gfc_expr *expr, int init)
}
rank = comp->as ? comp->as->rank : 0;
+ if (comp->ts.type == BT_CLASS && CLASS_DATA (comp)->as)
+ rank = CLASS_DATA (comp)->as->rank;
+
if (cons->expr->expr_type != EXPR_NULL && rank != cons->expr->rank
&& (comp->attr.allocatable || cons->expr->rank))
{