! { dg-do run } | |
! | |
! Test the fix for PR100040 | |
! | |
program foo_p | |
implicit none | |
integer, parameter :: n = 11 | |
type :: foo_t | |
integer :: i | |
end type foo_t | |
type(foo_t), parameter :: a = foo_t(n) | |
class(foo_t), allocatable :: pout | |
call foo_s(pout) | |
if(.not.allocated(pout)) stop 1 | |
if(pout%i/=n) stop 2 | |
contains | |
subroutine foo_s(that) | |
class(foo_t), allocatable, intent(out) :: that(..) | |
select rank(that) | |
rank(0) | |
that = a | |
rank default | |
stop 3 | |
end select | |
end subroutine foo_s | |
end program foo_p |