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

--- Comment #2 from anlauf at gcc dot gnu.org ---
This has nothing to do with character at all.  Same issue with:

program p
  implicit none
  type t
     integer, allocatable :: x(n) ! { dg-error "must have a deferred shape" }
  end type
end


I am regtesting the following patch:

diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index 3929ddff849..d1ba20cc3c0 100644
--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -14723,6 +14735,9 @@ resolve_component (gfc_component *c, gfc_symbol *sym)
         && sym != c->ts.u.derived)
     add_dt_to_dt_list (c->ts.u.derived);

+  if (c->as && c->as->type != AS_DEFERRED && c->attr.allocatable)
+    return false;
+
   if (!gfc_resolve_array_spec (c->as,
                                !(c->attr.pointer || c->attr.proc_pointer
                                  || c->attr.allocatable)))

Reply via email to