https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91802

kargl at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P4
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2019-09-19
                 CC|                            |kargl at gcc dot gnu.org
           Assignee|unassigned at gcc dot gnu.org      |kargl at gcc dot gnu.org
     Ever confirmed|0                           |1

--- Comment #1 from kargl at gcc dot gnu.org ---
Index: gcc/fortran/decl.c
===================================================================
--- gcc/fortran/decl.c  (revision 275969)
+++ gcc/fortran/decl.c  (working copy)
@@ -8468,6 +8468,15 @@ attr_decl1 (void)
       goto cleanup;
     }

+  /* Check F2018:C822.  */
+  if (sym->attr.dimension && sym->attr.codimension
+      && sym->as && sym->as->rank + sym->as->corank > 15)
+    {
+      gfc_error ("rank + corank of %qs exceeds 15 at %C", sym->name);
+      m = MATCH_ERROR;
+      goto cleanup;
+    }
+
   if (sym->attr.cray_pointee && sym->as != NULL)
     {
       /* Fix the array spec.  */
Index: gcc/testsuite/gfortran.dg/pr91802.f90
===================================================================
--- gcc/testsuite/gfortran.dg/pr91802.f90       (nonexistent)
+++ gcc/testsuite/gfortran.dg/pr91802.f90       (working copy)
@@ -0,0 +1,9 @@
+! { dg-do compile }
+! { dg-options "-fcoarray=single" }
+! Code contributed by Gerhard Steinmetz
+! PR fortran/91802
+module m
+   real :: x
+   dimension ::   x(1,2,1,2,1,2,1,2)
+   codimension :: x[1,2,1,2,1,2,1,*] ! { dg-error "exceeds 15" }
+end

Reply via email to