xref: /llvm-project/flang/test/Semantics/OpenMP/workshare03.f90 (revision 87452bcb806c9a45b09dab7c2e6594a7ebb085a2)
1! RUN: %python %S/../test_errors.py %s %flang -fopenmp
2! OpenMP Version 4.5
3! 2.7.4 workshare Construct
4! All array assignments, scalar assignments, and masked array assignments
5! must be intrinsic assignments.
6
7module defined_assign
8  interface assignment(=)
9    module procedure work_assign
10  end interface
11
12  contains
13    subroutine work_assign(a,b)
14      integer, intent(out) :: a
15      logical, intent(in) :: b(:)
16    end subroutine work_assign
17end module defined_assign
18
19program omp_workshare
20  use defined_assign
21
22  integer :: a, aa(10), bb(10)
23  logical :: l(10)
24  l = .TRUE.
25
26  !$omp workshare
27  !ERROR: Defined assignment statement is not allowed in a WORKSHARE construct
28  a = l
29  aa = bb
30  !$omp end workshare
31
32end program omp_workshare
33