===================================================================
@@ -1686,8 +1686,6 @@ is_illegal_recursion (gfc_symbol* sym, gfc_namespace*
|| gfc_fl_struct (sym->attr.flavor))
return false;
- gcc_assert (sym->attr.flavor == FL_PROCEDURE);
-
/* If we've got an ENTRY, find real procedure. */
if (sym->attr.entry && sym->ns->entries)
proc_sym = sym->ns->entries->sym;
===================================================================
@@ -0,0 +1,8 @@
+! { dg-do compile }
+module m
+ integer :: n
+contains
+ subroutine s
+ character(n(3)) :: c ! { dg-error "not a function" }
+ end
+end