blob: e1feafd2ba2ba2265ac3f1663dcd4f94857dcbb7 [file] [log] [blame]
! PR fortran/93329
! { dg-do compile { target fopenmp } }
! { dg-additional-options "-fopenmp" }
integer :: x, y, z
integer :: a(32)
!$acc kernels copyout(x)
!$omp target map(from:x) ! { dg-error "OMP TARGET directive cannot be specified within" }
x = 5
!$omp end target
!$acc end kernels
print *, x
!$acc kernels
!$omp atomic ! { dg-error "OMP ATOMIC directive cannot be specified within" }
x = x + 1
!$omp end atomic
!$acc end kernels
!$acc kernels
!$omp barrier ! { dg-error "OMP BARRIER directive cannot be specified within" }
!$acc end kernels
!$acc kernels
!$omp cancel parallel ! { dg-error "OMP CANCEL directive cannot be specified within" }
!$acc end kernels
!$acc kernels
!$omp cancellation point parallel ! { dg-error "OMP CANCELLATION POINT directive cannot be specified within" }
!$acc end kernels
!$acc kernels
!$omp flush ! { dg-error "OMP FLUSH directive cannot be specified within" }
!$acc end kernels
!$acc kernels
!$omp distribute ! { dg-error "OMP DISTRIBUTE directive cannot be specified within" }
do x = 0, 2
end do
!$acc end kernels
!$acc kernels
!$omp distribute parallel do ! { dg-error "OMP DISTRIBUTE PARALLEL DO directive cannot be specified within" }
do x = 0, 2
end do
!$acc end kernels
!$acc kernels
!$omp distribute parallel do simd ! { dg-error "OMP DISTRIBUTE PARALLEL DO SIMD directive cannot be specified within" }
do x = 0, 2
end do
!$acc end kernels
!$acc kernels
!$omp distribute simd ! { dg-error "OMP DISTRIBUTE SIMD directive cannot be specified within" }
do x = 0, 2
end do
!$acc end kernels
!$acc kernels
!$omp do simd ! { dg-error "OMP DO SIMD directive cannot be specified within" }
do x = 0, 2
end do
!$acc end kernels
!$acc kernels
!$omp simd ! { dg-error "OMP SIMD directive cannot be specified within" }
do x = 0, 2
end do
!$acc end kernels
!$acc kernels
!$omp target data map(from: x) ! { dg-error "OMP TARGET DATA directive cannot be specified within" }
!$omp end target data
!$acc end kernels
!$acc kernels
!$omp target enter data map(to: x) ! { dg-error "OMP TARGET ENTER DATA directive cannot be specified within" }
!$acc end kernels
!$acc kernels
!$omp target exit data map(from: x) ! { dg-error "OMP TARGET EXIT DATA directive cannot be specified within" }
!$acc end kernels
!$acc kernels
!!$omp target parallel
!!$omp end target parallel
!$acc end kernels
!$acc kernels
!$omp target parallel do ! { dg-error "OMP TARGET PARALLEL DO directive cannot be specified within" }
do x = 0, 2
end do
!$acc end kernels
!$acc kernels
!$omp target parallel do simd ! { dg-error "OMP TARGET PARALLEL DO SIMD directive cannot be specified within" }
do x = 0, 2
end do
!$acc end kernels
!$acc kernels
!!$omp target simd
! do x = 0, 2
! end do
!$acc end kernels
!$acc kernels
!$omp target teams ! { dg-error "OMP TARGET TEAMS directive cannot be specified within" }
!$omp end target teams
!$acc end kernels
!$acc kernels
!$omp target teams distribute ! { dg-error "OMP TARGET TEAMS DISTRIBUTE directive cannot be specified within" }
do x = 0, 2
end do
!$acc end kernels
!$acc kernels
!$omp target teams distribute parallel do ! { dg-error "OMP TARGET TEAMS DISTRIBUTE PARALLEL DO directive cannot be specified within" }
do x = 0, 2
end do
!$acc end kernels
!$acc kernels
!$omp target teams distribute parallel do simd ! { dg-error "OMP TARGET TEAMS DISTRIBUTE PARALLEL DO SIMD directive cannot be specified within" }
do x = 0, 2
end do
!$acc end kernels
!$acc kernels
!$omp target teams distribute simd ! { dg-error "OMP TARGET TEAMS DISTRIBUTE SIMD directive cannot be specified within" }
do x = 0, 2
end do
!$acc end kernels
!$acc kernels
!$omp target update to(x) ! { dg-error "OMP TARGET UPDATE directive cannot be specified within" }
!$acc end kernels
!$acc kernels
!$omp taskgroup ! { dg-error "OMP TASKGROUP directive cannot be specified within" }
!$omp end taskgroup
!$acc end kernels
!$acc kernels
!$omp taskloop ! { dg-error "OMP TASKLOOP directive cannot be specified within" }
do x = 0, 2
end do
!$acc end kernels
!$acc kernels
!$omp taskloop simd ! { dg-error "OMP TASKLOOP SIMD directive cannot be specified within" }
do x = 0, 2
end do
!$acc end kernels
!$acc kernels
!$omp taskwait ! { dg-error "OMP TASKWAIT directive cannot be specified within" }
!$acc end kernels
!$acc kernels
!$omp taskyield ! { dg-error "OMP TASKYIELD directive cannot be specified within" }
!$acc end kernels
!$acc kernels
!$omp teams ! { dg-error "OMP TEAMS directive cannot be specified within" }
!$omp end teams
!$acc end kernels
!$acc kernels
!$omp teams distribute ! { dg-error "OMP TEAMS DISTRIBUTE directive cannot be specified within" }
do x = 0, 2
end do
!$acc end kernels
!$acc kernels
!$omp teams distribute parallel do ! { dg-error "OMP TEAMS DISTRIBUTE PARALLEL DO directive cannot be specified within" }
do x = 0, 2
end do
!$acc end kernels
!$acc kernels
!$omp teams distribute parallel do simd ! { dg-error "OMP TEAMS DISTRIBUTE PARALLEL DO SIMD directive cannot be specified within" }
do x = 0, 2
end do
!$acc end kernels
!$acc kernels
!$omp teams distribute simd ! { dg-error "OMP TEAMS DISTRIBUTE SIMD directive cannot be specified within" }
do x = 0, 2
end do
!$acc end kernels
!$acc kernels
!$omp parallel do ! { dg-error "OMP PARALLEL DO directive cannot be specified within" }
do x = 0, 2
end do
!$acc end kernels
!$acc kernels
!$omp parallel do simd ! { dg-error "OMP PARALLEL DO SIMD directive cannot be specified within" }
do x = 0, 2
end do
!$acc end kernels
!$acc kernels
!$omp parallel ! { dg-error "OMP PARALLEL directive cannot be specified within" }
!$omp end parallel
!$acc end kernels
!$acc kernels
!$omp parallel sections ! { dg-error "OMP PARALLEL SECTIONS directive cannot be specified within" }
y = 1
!$omp section
z = 2
!$omp end parallel sections
!$acc end kernels
!$acc kernels
!$omp sections ! { dg-error "OMP SECTIONS directive cannot be specified within" }
y = 1
!$omp section
z = 2
!$omp end sections
!$acc end kernels
!$acc kernels
!$omp ordered ! { dg-error "OMP ORDERED directive cannot be specified within" }
!$omp end ordered
!$acc end kernels
!$acc kernels
!$omp critical ! { dg-error "OMP CRITICAL directive cannot be specified within" }
!$omp end critical
!$acc end kernels
!$acc kernels
!$omp master ! { dg-error "OMP MASTER directive cannot be specified within" }
!$omp end master
!$acc end kernels
!$acc kernels
!$omp single ! { dg-error "OMP SINGLE directive cannot be specified within" }
!$omp end single
!$acc end kernels
!$acc kernels
!$omp task ! { dg-error "OMP TASK directive cannot be specified within" }
!$omp end task
!$acc end kernels
!$acc kernels
!$omp workshare ! { dg-error "OMP WORKSHARE directive cannot be specified within" }
a(:) = 1
!$omp end workshare
!$acc end kernels
!$acc kernels
!$omp parallel workshare ! { dg-error "OMP PARALLEL WORKSHARE directive cannot be specified within" }
a(:) = 1
!$omp end parallel workshare
!$acc end kernels
!$acc kernels
!$omp do ! { dg-error "OMP DO directive cannot be specified within" }
do x = 0, 2
end do
!$acc end kernels
end