! { dg-do run } ! { dg-options "-fcray-pointer" } ! Test the fix for a runtime error ! Contributed by Mike Kumbera program bob implicit none integer*8 ipfoo integer n,m,i,j real*8 foo common /ipdata/ ipfoo common /ipsize/ n,m POINTER ( ipfoo, foo(3,7) ) n=3 m=7 ipfoo=malloc(8*n*m) do i=1,n do j=1,m foo(i,j)=1.d0 end do end do call use_foo() end program bob subroutine use_foo() implicit none integer n,m,i,j integer*8 ipfoo common /ipdata/ ipfoo common /ipsize/ n,m real*8 foo,boo !fails if * is the last dimension POINTER ( ipfoo, foo(n,*) ) !works if the last dimension is specified !POINTER ( ipfoo, foo(n,m) ) boo=0.d0 do i=1,n do j=1,m boo=foo(i,j)+1.0 if (abs (boo - 2.0) .gt. 1e-6) call abort end do end do end subroutine use_foo