! This checks that the "z = y" assignment is not considered copyable, as the ! array is of a derived type containing allocatable components. Hence, we ! we should expand the scalarized loop, which contains *two* memcpy calls. ! { dg-do compile } ! { dg-options "-O2 -fdump-tree-original" } type :: a integer, allocatable :: i(:) end type a type :: b type (a), allocatable :: at(:) end type b type(b) :: y(2), z(2) z = y end ! { dg-final { scan-tree-dump-times "memcpy" 2 "original" } } ! { dg-final { cleanup-tree-dump "original" } }