diff options
author | Mikael Morin <mikael@gcc.gnu.org> | 2011-10-18 14:59:07 +0000 |
---|---|---|
committer | Mikael Morin <mikael@gcc.gnu.org> | 2011-10-18 14:59:07 +0000 |
commit | 411e1a0f5350182c7833016eff8f1459a92d7531 (patch) | |
tree | 782e5e6b8a8037324df9a9edab0435621ed3cf7e /gcc | |
parent | 6b81e94de1454dbe12edac8ba9192b8da01783e8 (diff) | |
download | gcc-411e1a0f5350182c7833016eff8f1459a92d7531.zip gcc-411e1a0f5350182c7833016eff8f1459a92d7531.tar.gz gcc-411e1a0f5350182c7833016eff8f1459a92d7531.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fortran/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fortran/trans-intrinsic.c | 12 |
2 files changed, 15 insertions, 3 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index b1b0407..819369c 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,6 +1,12 @@ 2011-10-18 Mikael Morin <mikael@gcc.gnu.org> PR fortran/50420 + * trans-intrinsic.c (walk_coarray): Allow subreferences after a + coarray object reference. + +2011-10-18 Mikael Morin <mikael@gcc.gnu.org> + + PR fortran/50420 * trans-array.c (gfc_walk_array_ref): Allow zero rank arrays if they are coarrays. diff --git a/gcc/fortran/trans-intrinsic.c b/gcc/fortran/trans-intrinsic.c index ed18bfa..82bbb69 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; } |