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)))