! { dg-do run } ! { dg-options "-fdefault-integer-8 -O2" } ! Tests the fix for PR34143, where the implicit type ! conversion in the derived type constructor would fail, ! when 'yy' was not allocated. The testscase is an ! extract from alloc_comp_constructor.f90. ! ! Reported by Thomas Koenig ! Program test_constructor implicit none type :: thytype integer(4) :: a(2,2) end type thytype type :: mytype integer(4), allocatable :: a(:, :) type(thytype), allocatable :: q(:) end type mytype integer, allocatable :: yy(:,:) type (thytype), allocatable :: bar(:) call non_alloc call alloc contains subroutine non_alloc type (mytype) :: x x = mytype(yy, bar) if (allocated (x%a) .or. allocated (x%q)) call abort end subroutine non_alloc subroutine alloc type (mytype) :: x allocate (yy(2,2)) allocate (bar(2)) yy = reshape ([10,20,30,40],[2,2]) bar = thytype (reshape ([1,2,3,4],[2,2])) x = mytype(yy, bar) if (.not.allocated (x%a) .or. .not.allocated (x%q)) call abort end subroutine alloc end program test_constructor