diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/gomp/workshare1.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/gomp/workshare1.f90 | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/gomp/workshare1.f90 b/gcc/testsuite/gfortran.dg/gomp/workshare1.f90 new file mode 100644 index 000000000..ffbb1db82 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/gomp/workshare1.f90 @@ -0,0 +1,42 @@ +! { dg-do compile } + +interface + subroutine foo + end subroutine + function bar () + integer :: bar + end function bar + elemental function baz () + integer :: baz + end function baz +end interface + + integer :: i, j + real :: a, b (10), c + a = 0.5 + b = 0.25 +!$omp parallel workshare + a = sin (a) + b = sin (b) + forall (i = 1:10) b(i) = cos (b(i)) - 0.5 + j = baz () +!$omp parallel if (bar () .gt. 2) & +!$omp & num_threads (bar () + 1) + i = bar () +!$omp end parallel +!$omp parallel do schedule (static, bar () + 4) + do j = 1, 10 + i = bar () + end do +!$omp end parallel do +!$omp end parallel workshare +!$omp parallel workshare + call foo ! { dg-error "CALL statement" } + i = bar () ! { dg-error "non-ELEMENTAL" } +!$omp critical + i = bar () ! { dg-error "non-ELEMENTAL" } +!$omp end critical +!$omp atomic + j = j + bar () ! { dg-error "non-ELEMENTAL" } +!$omp end parallel workshare +end |