! { dg-do compile } ! { dg-options "-O2" } program test call test2 () contains subroutine test2 () type t integer, allocatable :: x end type t type t2 class(t), allocatable :: a end type t2 type(t2) :: one, two allocate (two%a) one = two end subroutine test2 end program test