crayptr1.f90   [plain text]


! { dg-do compile }
! { dg-options "-fopenmp -fcray-pointer" }

  integer :: a, b, c, d, i
  pointer (ip1, a)
  pointer (ip2, b)
  pointer (ip3, c)
  pointer (ip4, d)

!$omp parallel shared (a)	! { dg-error "Cray pointee 'a' in SHARED clause" }
!$omp end parallel

!$omp parallel private (b)	! { dg-error "Cray pointee 'b' in PRIVATE clause" }
!$omp end parallel

!$omp parallel firstprivate (c)	! { dg-error "Cray pointee 'c' in FIRSTPRIVATE clause" }
!$omp end parallel

!$omp parallel do lastprivate (d) ! { dg-error "Cray pointee 'd' in LASTPRIVATE clause" }
  do i = 1, 10
    if (i .eq. 10) d = 1
  end do
!$omp end parallel do

!$omp parallel reduction (+: a)	! { dg-error "Cray pointee 'a' in REDUCTION clause" }
!$omp end parallel

  ip1 = loc (i)
!$omp parallel shared (ip1)
  a = 2
!$omp end parallel

!$omp parallel private (ip2, i)
  ip2 = loc (i)
  b = 1
!$omp end parallel

  ip3 = loc (i)
!$omp parallel firstprivate (ip3) ! { dg-error "Cray pointer 'ip3' in FIRSTPRIVATE clause" }
!$omp end parallel

!$omp parallel do lastprivate (ip4) ! { dg-error "Cray pointer 'ip4' in LASTPRIVATE clause" }
  do i = 1, 10
    if (i .eq. 10) ip4 = loc (i)
  end do
!$omp end parallel do

!$omp parallel reduction (+: ip1) ! { dg-error "Cray pointer 'ip1' in REDUCTION clause" }
!$omp end parallel

end