aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/trans-intrinsic.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/fortran/trans-intrinsic.c')
-rw-r--r--gcc/fortran/trans-intrinsic.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/gcc/fortran/trans-intrinsic.c b/gcc/fortran/trans-intrinsic.c
index 82bbb69..83fc4fc 100644
--- a/gcc/fortran/trans-intrinsic.c
+++ b/gcc/fortran/trans-intrinsic.c
@@ -940,8 +940,6 @@ walk_coarray (gfc_expr *e)
{
gfc_ref *ref;
- ss = gfc_get_array_ss (gfc_ss_terminator, e, 0, GFC_SS_SECTION);
-
ref = e->ref;
while (ref)
{
@@ -953,8 +951,9 @@ walk_coarray (gfc_expr *e)
}
gcc_assert (ref != NULL);
- ref->u.ar.type = AR_FULL;
- ss->data.info.ref = ref;
+ if (ref->u.ar.type == AR_ELEMENT)
+ ref->u.ar.type = AR_SECTION;
+ ss = gfc_reverse_ss (gfc_walk_array_ref (ss, e, ref));
}
return ss;