37 lines
835 B
Fortran
37 lines
835 B
Fortran
! { 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
|