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