diff options
author | Tobias Burnus <burnus@net-b.de> | 2011-05-19 22:53:33 +0200 |
---|---|---|
committer | Tobias Burnus <burnus@gcc.gnu.org> | 2011-05-19 22:53:33 +0200 |
commit | 4409de247c778276c0445f3d9f8817562f152b78 (patch) | |
tree | ca76ae70170c060df3f7975deb2b3d441d0d1798 /gcc/fortran/trans-array.c | |
parent | 664e12c1265280786f83d8fd1ec1ebbf50c153c0 (diff) | |
download | gcc-4409de247c778276c0445f3d9f8817562f152b78.zip gcc-4409de247c778276c0445f3d9f8817562f152b78.tar.gz gcc-4409de247c778276c0445f3d9f8817562f152b78.tar.bz2 |
re PR fortran/18918 (Eventually support Fortran 2008's coarrays [co-arrays])
2011-06-19 Tobias Burnus <burnus@net-b.de>
PR fortran/18918
* trans-types.c (gfc_get_element_type): Handle scalar coarrays.
(gfc_get_nodesc_array_type): Make a variant-type copy for scalar
coarrays.
* trans.c (gfc_build_array_ref): Return original type not
* variant
copy for scalar coarrays.
* trans-array.c (gfc_conv_array_ref): Ditto.
2011-06-19 Tobias Burnus <burnus@net-b.de>
PR fortran/18918
* gfortran.dg/coarray_21.f90: New.
From-SVN: r173920
Diffstat (limited to 'gcc/fortran/trans-array.c')
-rw-r--r-- | gcc/fortran/trans-array.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/fortran/trans-array.c b/gcc/fortran/trans-array.c index 1a4ab39..78d65a6 100644 --- a/gcc/fortran/trans-array.c +++ b/gcc/fortran/trans-array.c @@ -2621,7 +2621,12 @@ gfc_conv_array_ref (gfc_se * se, gfc_array_ref * ar, gfc_symbol * sym, gfc_se tmpse; if (ar->dimen == 0) - return; + { + gcc_assert (ar->codimen); + /* Use the actual tree type and not the wrapped coarray. */ + se->expr = fold_convert (TREE_TYPE (TREE_TYPE (se->expr)), se->expr); + return; + } /* Handle scalarized references separately. */ if (ar->type != AR_ELEMENT) |