blob: fbf31593157724b9c1c0da66864a40a233f3bd3d [file] [log] [blame]
! { dg-do compile }
! Check fix for pr71936.
! Contributed by Gerhard Steinmetz
program p
type t
end type
call test2()
call test4()
call test1()
call test3()
contains
function f_p()
class(t), pointer :: f_p(:)
nullify(f_p)
end
function f_a()
class(t), allocatable :: f_a(:)
end
subroutine test1()
class(t), allocatable :: x(:)
allocate (x, mold=f_a())
deallocate (x)
allocate (x, source=f_a())
end subroutine
subroutine test2()
class(t), pointer :: x(:)
allocate (x, mold=f_p())
deallocate (x)
allocate (x, source=f_p())
end
subroutine test3()
class(t), pointer :: x(:)
allocate (x, mold=f_a())
deallocate (x)
allocate (x, source=f_a())
end
subroutine test4()
class(t), allocatable :: x(:)
allocate (x, mold=f_p())
deallocate (x)
allocate (x, source=f_p())
end subroutine
end