diff options
author | Mikael Morin <mikael@gcc.gnu.org> | 2011-10-18 15:02:38 +0000 |
---|---|---|
committer | Mikael Morin <mikael@gcc.gnu.org> | 2011-10-18 15:02:38 +0000 |
commit | 6cab5e07b00571596966f764d7d37c6b58bbcdca (patch) | |
tree | 676ec71d78e336ae5a90852a5dadb2ff175e7b53 | |
parent | 411e1a0f5350182c7833016eff8f1459a92d7531 (diff) | |
download | gcc-6cab5e07b00571596966f764d7d37c6b58bbcdca.zip gcc-6cab5e07b00571596966f764d7d37c6b58bbcdca.tar.gz gcc-6cab5e07b00571596966f764d7d37c6b58bbcdca.tar.bz2 |
re PR fortran/50420 ([Coarray] lcobound doesn't accept coarray subcomponents)
PR fortran/50420
* trans-intrinsic.c (walk_coarray): Change AR_ELEMENT to AR_SECTION.
PR fortran/50420
* trans-intrinsic.c (walk_coarray): Use gfc_walk_array_ref for
the scalarization chain initialization.
From-SVN: r180147
-rw-r--r-- | gcc/fortran/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/fortran/trans-intrinsic.c | 7 |
2 files changed, 12 insertions, 4 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 819369c..2b3ca85 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,6 +1,15 @@ 2011-10-18 Mikael Morin <mikael@gcc.gnu.org> PR fortran/50420 + * trans-intrinsic.c (walk_coarray): Change AR_ELEMENT to AR_SECTION. + + PR fortran/50420 + * trans-intrinsic.c (walk_coarray): Use gfc_walk_array_ref for + the scalarization chain initialization. + +2011-10-18 Mikael Morin <mikael@gcc.gnu.org> + + PR fortran/50420 * trans-intrinsic.c (walk_coarray): Allow subreferences after a coarray object reference. 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; |