------- Comment #2 from pault at gcc dot gnu dot org 2007-02-22 09:30 ------- (In reply to comment #1) This fixes it:
Index: gcc/fortran/check.c =================================================================== *** gcc/fortran/check.c (revision 122101) --- gcc/fortran/check.c (working copy) *************** dim_rank_check (gfc_expr *dim, gfc_expr *** 337,343 **** ar = gfc_find_array_ref (array); rank = array->rank; ! if (ar->as->type == AS_ASSUMED_SIZE && !allow_assumed) rank--; if (mpz_cmp_ui (dim->value.integer, 1) < 0 --- 337,346 ---- ar = gfc_find_array_ref (array); rank = array->rank; ! 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 As with other recent PRs, I cannot do anything with it for a bit - feel free to see it to completion. Paul -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30882