https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84432
--- Comment #5 from Neil Carlson <neil.n.carlson at gmail dot com> --- No, both of those are valid. The constraint is on component initialization, and type parameters are *not* components. So something like this would be invalid by F08:C458 type t(a) integer, len :: a character(len=a) :: c = 'foo' end type