29 lines
1023 B
Fortran
29 lines
1023 B
Fortran
! { dg-do compile }
|
|
! { dg-require-effective-target tls_native }
|
|
|
|
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
|