summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/proc_ptr_5.f90
blob: 61cf8a35d10123d85306958a19957979992765c4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
! { dg-do run }
!
! NULL() initialization for PROCEDURE POINTERS
!
! Contributed by Tobias Burnus <burnus@gcc.gnu.org>

program main
implicit none
call test(.true.)
call test(.false.)

contains

integer function hello()
 hello = 42
end function hello

subroutine test(first)
 logical :: first
 integer :: i
 procedure(integer), pointer :: x => null()

 if(first) then
  if(associated(x)) call abort()
  x => hello
 else
  if(.not. associated(x)) call abort()
  i = x()
  if(i /= 42) call abort()
 end if
 end subroutine test

end program main