Index: primary.c =================================================================== RCS file: /cvs/gcc/gcc/gcc/fortran/primary.c,v retrieving revision 1.25 diff -c -p -r1.25 primary.c *** primary.c 25 Apr 2005 00:08:59 -0000 1.25 --- primary.c 13 Jun 2005 01:28:30 -0000 *************** gfc_match_rvalue (gfc_expr ** result) *** 1802,1809 **** break; case FL_PARAMETER: ! if (sym->value ! && sym->value->expr_type != EXPR_ARRAY) e = gfc_copy_expr (sym->value); else { --- 1802,1812 ---- break; case FL_PARAMETER: ! /* A statement of the form "REAL, parameter :: a(0:10) = 1" will ! end up here. Unfortunately, sym->value->expr_type is set to ! EXPR_CONSTANT, and so the if () branch would be followed without ! the !sym->as check. */ ! if (sym->value && sym->value->expr_type != EXPR_ARRAY && !sym->as) e = gfc_copy_expr (sym->value); else {