blob: 766d24546ab24d66bacc08bf5196a20dbab1384b [file] [log] [blame]
! { dg-do run }
! { dg-additional-options "-fcray-pointer" }
!
! PR fortran/106692 - Cray pointer comparison wrongly optimized away
!
! Contributed by Marek Polacek
program test
call test_cray()
call test_cray2()
end
subroutine test_cray()
pointer(ptrzz1 , zz1)
ptrzz1=0
if (ptrzz1 .ne. 0) then
print *, "test_cray: ptrzz1=", ptrzz1
stop 1
else
call shape_cray(zz1)
end if
end
subroutine shape_cray(zz1)
pointer(ptrzz , zz)
ptrzz=loc(zz1)
if (ptrzz .ne. 0) then
print *, "shape_cray: ptrzz=", ptrzz
stop 3
end if
end
subroutine test_cray2()
pointer(ptrzz1 , zz1)
ptrzz1=0
if (0 == ptrzz1) then
call shape_cray2(zz1)
else
print *, "test_cray2: ptrzz1=", ptrzz1
stop 2
end if
end
subroutine shape_cray2(zz1)
pointer(ptrzz , zz)
ptrzz=loc(zz1)
if (.not. (0 == ptrzz)) then
print *, "shape_cray2: ptrzz=", ptrzz
stop 4
end if
end