assignment_1.f90   [plain text]


! { dg-do run }
! { dg-options -Wsurprising }
integer, pointer :: p
integer, target :: t, s

! The tests for character pointers are currently commented out,
! because they don't yet work correctly.
! This is PR 17192
!!$character*5, pointer :: d
!!$character*5, target :: c, e

t = 1
p => s
! We didn't dereference the pointer in the following line.
p = f() ! { dg-warning "POINTER valued function" "" }
p = p+1
if (p.ne.2) call abort()
if (p.ne.s) call abort()

!!$! verify that we also dereference correctly the result of a function 
!!$! which returns its result by reference
!!$c = "Hallo"
!!$d => e
!!$d = g() !  dg-warning "POINTER valued function" "" 
!!$if (d.ne."Hallo") call abort()

contains
function f()
integer, pointer :: f
f => t
end function f
!!$function g()
!!$character, pointer :: g
!!$g => c
!!$end function g
end