https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68225
--- Comment #5 from Gerhard Steinmetz <gerhard.steinmetz.fort...@t-online.de> --- $ cat yy0.f90 program p type t integer, allocatable :: a(:) end type type(t) :: x x = t() print *, allocated(x%a), x%a end $ gfortran -g -O0 -Wall -fcheck=all yy0.f90 $ a.out F --- $ cat yy1.f90 program p type t integer, allocatable :: a(:) end type type(t) :: x x = t([1, 2]) print *, allocated(x%a), x%a end $ gfortran -g -O0 -Wall -fcheck=all yy1.f90 $ a.out T 1 2 --- $ cat zz0.f90 program p type t integer, allocatable :: a(:) end type type, extends(t) :: t2 integer, allocatable :: b(:) end type type(t2) :: x x = t2() print *, allocated(x%a), x%a print *, allocated(x%b), x%b end $ gfortran -g -O0 -Wall -fcheck=all zz0.f90 $ a.out F F --- $ cat zz1.f90 program p type t integer, allocatable :: a(:) end type type, extends(t) :: t2 integer, allocatable :: b(:) end type type(t2) :: x x = t2([1]) print *, allocated(x%a), x%a print *, allocated(x%b), x%b end $ gfortran -g -O0 -Wall -fcheck=all zz1.f90 $ a.out T 1 F --- $ cat zz2.f90 program p type t integer, allocatable :: a(:) end type type, extends(t) :: t2 integer, allocatable :: b(:) end type type(t2) :: x x = t2(null(), [1, 2]) print *, allocated(x%a), x%a print *, allocated(x%b), x%b end $ gfortran -g -O0 -Wall -fcheck=all zz2.f90 $ a.out F T 1 2