1! { dg-do run } 2! 3! PR fortran/87625 4! 5! Ensure that "var" gets allocated. 6! 7! Contributed by Tobias Burnus 8! 9program test 10 implicit none 11 type t 12 integer :: i 13 end type t 14 class(t), allocatable :: var(:) 15 call poly_init() 16 print *, var(:)%i 17 if (lbound(var, 1) /= 1 .and. ubound(var, 1) /= 2) call abort() 18 if (var(1)%i /= 11 .or. var(2)%i /= 12) call abort() 19 call poly_init2() 20 !print *, var(:)%i 21 if (lbound(var, 1) /= 1 .and. ubound(var, 1) /= 3) call abort() 22 if (var(1)%i /= 11 .or. var(2)%i /= 12 .or. var(3)%i /= 13) call abort() 23contains 24 subroutine poly_init() 25 !allocate(var(2)) 26 var = [t :: t(11), t(12)] 27 end subroutine poly_init 28 subroutine poly_init2() 29 var = [t :: t(11), t(12), t(13)] 30 end subroutine poly_init2 31 end program test 32