21 lines
559 B
Fortran
21 lines
559 B
Fortran
! 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" } }
|