1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
! { dg-do compile }
! { dg-require-effective-target tls }
integer :: thrpriv, thr, i, j, s, g1, g2, m
integer, dimension (6) :: p
common /thrblk/ thr
common /gblk/ g1
save thrpriv, g2
!$omp threadprivate (/thrblk/, thrpriv)
s = 1
!$omp parallel do default (none) &
!$omp & private (p) shared (s) ! { dg-error "enclosing parallel" }
do i = 1, 64
call foo (thrpriv) ! Predetermined - threadprivate
call foo (thr) ! Predetermined - threadprivate
call foo (i) ! Predetermined - omp do iteration var
do j = 1, 64 ! Predetermined - sequential loop
call foo (j) ! iteration variable
end do
call bar ((/ (k * 4, k = 1, 8) /)) ! Predetermined - implied do
forall (l = 1 : i) &! Predetermined - forall indice
p(l) = 6 ! Explicitly determined - private
call foo (s) ! Explicitly determined - shared
call foo (g1) ! { dg-error "not specified in" }
call foo (g2) ! { dg-error "not specified in" }
call foo (m) ! { dg-error "not specified in" }
end do
end
|