From 7da941ccb0db7b2f19f6d6b5814c91abb26eefe1 Mon Sep 17 00:00:00 2001 From: mikael Date: Tue, 18 Oct 2011 15:02:38 +0000 Subject: [PATCH] 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180147 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/fortran/ChangeLog | 9 +++++++++ gcc/fortran/trans-intrinsic.c | 7 +++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 819369c2adc..2b3ca85b6e1 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,6 +1,15 @@ 2011-10-18 Mikael Morin 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 + + 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 82bbb69f70d..83fc4fc52ef 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; -- 2.11.0