xref: /llvm-project/flang/test/Semantics/OpenMP/atomic-update-overloaded-ops.f90 (revision d94582eea410a04f9f84e39a54276a8418aa2dbb)
1! RUN: %python %S/../test_errors.py %s %flang_fc1 -fopenmp
2
3module new_operator
4    implicit none
5
6    interface operator(.MYOPERATOR.)
7       module procedure myprocedure
8    end interface
9contains
10    pure integer function myprocedure(param1, param2)
11        integer, intent(in) :: param1, param2
12        myprocedure = param1 + param2
13    end function
14end module
15
16program sample
17    use new_operator
18    implicit none
19    integer :: x, y
20
21    !$omp atomic update
22        x = x / y
23
24    !$omp atomic update
25    !ERROR: Invalid or missing operator in atomic update statement
26        x = x .MYOPERATOR. y
27
28    !$omp atomic
29    !ERROR: Invalid or missing operator in atomic update statement
30        x = x .MYOPERATOR. y
31end program
32