! { 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 |