1! { dg-do compile }
2! { dg-options "-fopenmp -fcray-pointer" }
3
4  integer :: a, b, c, d, i
5  pointer (ip1, a)
6  pointer (ip2, b)
7  pointer (ip3, c)
8  pointer (ip4, d)
9
10!$omp parallel shared (a)	! { dg-error "Cray pointee 'a' in SHARED clause" }
11!$omp end parallel
12
13!$omp parallel private (b)	! { dg-error "Cray pointee 'b' in PRIVATE clause" }
14!$omp end parallel
15
16!$omp parallel firstprivate (c)	! { dg-error "Cray pointee 'c' in FIRSTPRIVATE clause" }
17!$omp end parallel
18
19!$omp parallel do lastprivate (d) ! { dg-error "Cray pointee 'd' in LASTPRIVATE clause" }
20  do i = 1, 10
21    if (i .eq. 10) d = 1
22  end do
23!$omp end parallel do
24
25!$omp parallel reduction (+: a)	! { dg-error "Cray pointee 'a' in REDUCTION clause" }
26!$omp end parallel
27
28  ip1 = loc (i)
29!$omp parallel shared (ip1)
30  a = 2
31!$omp end parallel
32
33!$omp parallel private (ip2, i)
34  ip2 = loc (i)
35  b = 1
36!$omp end parallel
37
38  ip3 = loc (i)
39!$omp parallel firstprivate (ip3)
40!$omp end parallel
41
42!$omp parallel do lastprivate (ip4)
43  do i = 1, 10
44    if (i .eq. 10) ip4 = loc (i)
45  end do
46!$omp end parallel do
47
48!$omp parallel reduction (+: ip1) ! { dg-error "Cray pointer 'ip1' in REDUCTION clause" }
49!$omp end parallel
50
51end
52