blob: 1843ea7eb69284a09907060bd67190a851525412 [file] [log] [blame]
! { dg- do run }
!
! Test the fix for PR78641 in which an ICE occured on assignment
! of a class array constructor to a derived type array.
!
! Contributed by Damian Rouson <damian@sourceryinstitute.org>
!
implicit none
type foo
integer :: i = 99
end type
type(foo) :: bar(4)
class(foo), allocatable :: barfoo
allocate(barfoo,source = f(11))
bar = [f(33), [f(22), barfoo], f(1)]
if (any (bar%i .ne. [33, 22, 11, 1])) call abort
deallocate (barfoo)
contains
function f(arg) result(foobar)
class(foo), allocatable :: foobar
integer :: arg
allocate(foobar,source = foo(arg))
end function
end program