aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMikael Morin <mikael@gcc.gnu.org>2011-10-18 14:55:48 +0000
committerMikael Morin <mikael@gcc.gnu.org>2011-10-18 14:55:48 +0000
commit6b81e94de1454dbe12edac8ba9192b8da01783e8 (patch)
treefd31db403bdf8599be5ff9f3971441afedbe32e5
parent42ac5ee1287b6c9931a7e67c96f05fffb9b5b022 (diff)
downloadgcc-6b81e94de1454dbe12edac8ba9192b8da01783e8.zip
gcc-6b81e94de1454dbe12edac8ba9192b8da01783e8.tar.gz
gcc-6b81e94de1454dbe12edac8ba9192b8da01783e8.tar.bz2
re PR fortran/50420 ([Coarray] lcobound doesn't accept coarray subcomponents)
PR fortran/50420 * trans-array.c (gfc_walk_array_ref): Allow zero rank arrays if they are coarrays. From-SVN: r180145
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/trans-array.c6
2 files changed, 10 insertions, 2 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 67e2bcf..b1b0407 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,5 +1,11 @@
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.
+
+2011-10-18 Mikael Morin <mikael@gcc.gnu.org>
+
* trans-array.h (gfc_walk_array_ref): New prototype.
* trans-array.c (gfc_walk_array_ref): New function, containing
all but the beginning of gfc_walk_variable_expr's code.
diff --git a/gcc/fortran/trans-array.c b/gcc/fortran/trans-array.c
index 89528b4..3472804 100644
--- a/gcc/fortran/trans-array.c
+++ b/gcc/fortran/trans-array.c
@@ -7700,8 +7700,10 @@ gfc_walk_array_ref (gfc_ss * ss, gfc_expr * expr, gfc_ref * ref)
gcc_unreachable ();
}
}
- /* We should have at least one non-elemental dimension. */
- gcc_assert (newss->data.info.dimen > 0);
+ /* We should have at least one non-elemental dimension,
+ unless we are creating a descriptor for a (scalar) coarray. */
+ gcc_assert (newss->data.info.dimen > 0
+ || newss->data.info.ref->u.ar.as->corank > 0);
ss = newss;
break;