https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121435
kargls at comcast dot net changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |kargls at comcast dot net --- Comment #1 from kargls at comcast dot net --- It appears that default initialization is not occurring for the main program unit. Here's a slightly modified and expanded test. program foo integer, target :: v(5) = [1, 2, 3, 4, 5] type entry integer, pointer :: p(:) => v ! default initialization end type entry type(entry) test type(entry), allocatable :: d ! This causes a segfault at runtime, because default ! initialization is not occurring in the main program ! unit. ! ! if (any(v /= test%p)) stop 1 ! print *, test%p call bar(test) block ! def. init. occurs in block construct type(entry) b if (any(v /= b%p)) stop 3 end block ! def. init. occurs in allocation allocate(d) if (any(v /= d%p)) stop 4 contains ! def. init. occurs for intent(out) dummy argument subroutine bar(a) type(entry), intent(out) :: a if (any(v /= a%p)) stop 2 end subroutine bar end program foo