From: Mikael Morin Date: Tue, 18 Oct 2011 14:59:07 +0000 (+0000) Subject: re PR fortran/50420 ([Coarray] lcobound doesn't accept coarray subcomponents) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=411e1a0f5350182c7833016eff8f1459a92d7531;p=gcc.git re PR fortran/50420 ([Coarray] lcobound doesn't accept coarray subcomponents) PR fortran/50420 * trans-intrinsic.c (walk_coarray): Allow subreferences after a coarray object reference. From-SVN: r180146 --- diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index b1b0407fcc8..819369c2adc 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2011-10-18 Mikael Morin + + PR fortran/50420 + * trans-intrinsic.c (walk_coarray): Allow subreferences after a + coarray object reference. + 2011-10-18 Mikael Morin PR fortran/50420 diff --git a/gcc/fortran/trans-intrinsic.c b/gcc/fortran/trans-intrinsic.c index ed18bfa6bde..82bbb69f70d 100644 --- a/gcc/fortran/trans-intrinsic.c +++ b/gcc/fortran/trans-intrinsic.c @@ -943,10 +943,16 @@ walk_coarray (gfc_expr *e) ss = gfc_get_array_ss (gfc_ss_terminator, e, 0, GFC_SS_SECTION); ref = e->ref; - while (ref->next) - ref = ref->next; + while (ref) + { + if (ref->type == REF_ARRAY + && ref->u.ar.codimen > 0) + break; + + ref = ref->next; + } - gcc_assert (ref->type == REF_ARRAY && ref->u.ar.codimen > 0); + gcc_assert (ref != NULL); ref->u.ar.type = AR_FULL; ss->data.info.ref = ref; }