diff options
author | Paul Thomas <pault@gcc.gnu.org> | 2007-03-03 10:43:25 +0000 |
---|---|---|
committer | Tobias Burnus <burnus@gcc.gnu.org> | 2007-03-03 11:43:25 +0100 |
commit | 93a12e361d6df2710b636eeaf4902be483d63a99 (patch) | |
tree | c886adab40108136bc79257f3b231c3f844638cd /gcc/fortran | |
parent | 39b8cd70c25945a655f8262761036c215a60fd9c (diff) | |
download | gcc-93a12e361d6df2710b636eeaf4902be483d63a99.zip gcc-93a12e361d6df2710b636eeaf4902be483d63a99.tar.gz gcc-93a12e361d6df2710b636eeaf4902be483d63a99.tar.bz2 |
re PR fortran/30882 ([4.1 and 4.2 only] size with initialization expression value for dim= is rejected)
2007-03-03 Paul Thomas <pault@gcc.gnu.org>
PR fortran/30882
* check.c (dim_rank_check): The shape of subsections of
assumed-size arrays is known.
2007-03-03 Paul Thomas <pault@gcc.gnu.org>
PR fortran/30882
* gfortran.dg/size_dim.f90: New test.
-- Diese und die folgenden Zeilen werden ignoriert --
M gcc/testsuite/ChangeLog
A gcc/testsuite/gfortran.dg/size_dim.f90
M gcc/fortran/ChangeLog
M gcc/fortran/check.c
Co-Authored-By: Tobias Burnus <burnus@net-b.de>
From-SVN: r122503
Diffstat (limited to 'gcc/fortran')
-rw-r--r-- | gcc/fortran/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fortran/check.c | 5 |
2 files changed, 10 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index afd9d26..58b96b6 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2007-03-03 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/30882 + * check.c (dim_rank_check): The shape of subsections of + assumed-size arrays is known. + 2007-03-02 Paul Thomas <pault@gcc.gnu.org> Tobias Burnus <burnus@net-b.de> diff --git a/gcc/fortran/check.c b/gcc/fortran/check.c index 6e4d798..27becfcb 100644 --- a/gcc/fortran/check.c +++ b/gcc/fortran/check.c @@ -337,7 +337,10 @@ dim_rank_check (gfc_expr *dim, gfc_expr *array, int allow_assumed) ar = gfc_find_array_ref (array); rank = array->rank; - if (ar->as->type == AS_ASSUMED_SIZE && !allow_assumed) + if (ar->as->type == AS_ASSUMED_SIZE + && !allow_assumed + && ar->type != AR_ELEMENT + && ar->type != AR_SECTION) rank--; if (mpz_cmp_ui (dim->value.integer, 1) < 0 |