1program main
2  implicit none
3  real, dimension (:), pointer :: x
4  x => null ()
5  x => test ()
6  if (.not. associated (x)) call abort
7  if (size (x) .ne. 10) call abort
8contains
9  function test()
10    real, dimension (:), pointer :: test
11    if (associated (x)) call abort
12    allocate (test (10))
13    if (associated (x)) call abort
14  end function test
15end program main
16