re PR fortran/13201 (PARAMETER variables of nonconstant shape are accepted)
authorTobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
Wed, 9 Jun 2004 12:35:39 +0000 (14:35 +0200)
committerTobias Schlüter <tobi@gcc.gnu.org>
Wed, 9 Jun 2004 12:35:39 +0000 (14:35 +0200)
PR fortran/13201
* resolve.c (resolve_symbol): Verify that parameter array has an
explicit shape. Fix typos and coding style issues in surrounding
lines.

From-SVN: r82830

gcc/fortran/ChangeLog
gcc/fortran/resolve.c

index 394ccc688c04d1e0bc1ecccba30f5902148bbf5a..9034b9564c80305025e98241919f58494ea77ff7 100644 (file)
@@ -1,4 +1,11 @@
-2004-06-05  Tobias Schlueter  <tobias.shclueter@physik.uni-muenchen.de>
+2004-06-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
+
+       PR fortran/13201
+       * resolve.c (resolve_symbol): Verify that parameter array has an
+       explicit shape. Fix typos and coding style issues in surrounding
+       lines.
+
+2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
 
        PR fortran/15478
        * gfortran.texi: The documentation doesn't contain infomration on
index ca9208f4cafb6e7600292ce24f555b9beb67fe7e..d33dcb211767bb308cd10994ec083ef7bae32d1e 100644 (file)
@@ -3736,14 +3736,22 @@ resolve_symbol (gfc_symbol * sym)
          || sym->as->type == AS_ASSUMED_SHAPE)
       && sym->attr.dummy == 0)
     {
-      gfc_error("Assumed %s array at %L must be a dummy argument",
-               sym->as->type == AS_ASSUMED_SIZE ? "size" : "shape",
-                &sym->declared_at);
+      gfc_error ("Assumed %s array at %L must be a dummy argument",
+                sym->as->type == AS_ASSUMED_SIZE ? "size" : "shape",
+                 &sym->declared_at);
+      return;
+    }
+
+  if (sym->attr.flavor == FL_PARAMETER
+      && sym->as != NULL && sym->as->type != AS_EXPLICIT)
+    {
+      gfc_error ("Parameter array '%s' at %L must have an explicit shape",
+                sym->name, &sym->declared_at);
       return;
     }
 
   /* Make sure that character string variables with assumed length are
-     dummy argument.  */
+     dummy arguments.  */
 
   if (sym->attr.flavor == FL_VARIABLE && !sym->attr.result
       && sym->ts.type == BT_CHARACTER