http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49213
--- Comment #14 from janus at gcc dot gnu.org --- (In reply to janus from comment #13) > type(t) :: x = t(y) > 1 > Error: Parameter 'y' at (1) has not been declared or is a variable, which > does not reduce to a constant expression This error also occurs for the following non-polymorphic version ... type t integer, pointer :: j end type t integer, target :: i = 0 type(t) :: x = t(i) end ... which should be valid at least in F08.