From 4077d207437b94a2d07d76c93b6583d5920bf7a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20Schl=C3=BCter?= Date: Fri, 9 Jul 2004 23:20:50 +0200 Subject: re PR fortran/13201 (PARAMETER variables of nonconstant shape are accepted) PR fortran/13201 * resolve.c (resolve_symbol): Verify that the shape of a parameter array is not only explicit, but also constant. * array.c (gfc_is_compile_time_shape): New function. * gfortran.h (gfc_is_compile_time_shape): Add prototype. From-SVN: r84400 --- gcc/fortran/resolve.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'gcc/fortran/resolve.c') diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index a107095..81df9ef 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -3745,12 +3745,14 @@ resolve_symbol (gfc_symbol * sym) return; } - if (sym->attr.flavor == FL_PARAMETER - && sym->as != NULL && sym->as->type != AS_EXPLICIT) + /* A parameter array's shape needs to be constant. */ + + if (sym->attr.flavor == FL_PARAMETER && sym->as != NULL + && !gfc_is_compile_time_shape (sym->as)) { - gfc_error ("Parameter array '%s' at %L must have an explicit shape", - sym->name, &sym->declared_at); - return; + gfc_error ("Parameter array '%s' at %L cannot be automatic " + "or assumed shape", sym->name, &sym->declared_at); + return; } /* Make sure that character string variables with assumed length are -- cgit v1.1