1! { dg-do run }
2! Test functions returning array pointers
3program ret_pointer_1
4  integer, pointer, dimension(:) :: a
5  integer, target, dimension(2) :: b
6  integer, pointer, dimension (:) :: p
7
8  a => NULL()
9  a => foo()
10  p => b
11  if (.not. associated (a, p)) call abort
12contains
13subroutine bar(p)
14  integer, pointer, dimension(:) :: p
15end subroutine
16function foo() result(r)
17  integer, pointer, dimension(:) :: r
18
19  r => b
20end function
21end program
22
23