User account creation filtered due to spam.
The example is motivated by the discussion at
It seems as is using
type(T) :: X = t(tgt)
is (should be) valid while using
type(T), PARAMTER :: X = t(tgt)
is (should be) invalid.
Currently, gfortran rejects both. Note that this is a tracking bug as one seemingly needs to modify the wording to explicitly forbid the usage as PARAMETER, which is technically impossible to implement.
type(T) :: X = t(tgt) ! Check fails
Error: Parameter 'tgt' at (1) has not been declared or is a variable, which does not reduce to a constant expression
type :: t
integer, pointer :: P
end type t
integer, target, save :: tgt
type(T) :: X = t(tgt) ! (1) - a constness check fails
type(T) :: Y
Y = t(tgt) ! (2) Accepted
Y = t(P=tgt) ! (3) Accepted
*** This bug has been marked as a duplicate of bug 51266 ***