| ! { 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 |