From d94582eea410a04f9f84e39a54276a8418aa2dbb Mon Sep 17 00:00:00 2001 From: NimishMishra <42909663+NimishMishra@users.noreply.github.com> Date: Thu, 16 May 2024 07:28:40 -0700 Subject: [PATCH] [flang][OpenMP] Add test for checking overloaded operator in atomic update (#88471) Atomic update expression does not allow overloaded user-defined operators. This PR adds a test case for the same; the semantic check is already existent. --- .../OpenMP/atomic-update-overloaded-ops.f90 | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 flang/test/Semantics/OpenMP/atomic-update-overloaded-ops.f90 diff --git a/flang/test/Semantics/OpenMP/atomic-update-overloaded-ops.f90 b/flang/test/Semantics/OpenMP/atomic-update-overloaded-ops.f90 new file mode 100644 index 00000000000000..21a9b87d263459 --- /dev/null +++ b/flang/test/Semantics/OpenMP/atomic-update-overloaded-ops.f90 @@ -0,0 +1,31 @@ +! RUN: %python %S/../test_errors.py %s %flang_fc1 -fopenmp + +module new_operator + implicit none + + interface operator(.MYOPERATOR.) + module procedure myprocedure + end interface +contains + pure integer function myprocedure(param1, param2) + integer, intent(in) :: param1, param2 + myprocedure = param1 + param2 + end function +end module + +program sample + use new_operator + implicit none + integer :: x, y + + !$omp atomic update + x = x / y + + !$omp atomic update + !ERROR: Invalid or missing operator in atomic update statement + x = x .MYOPERATOR. y + + !$omp atomic + !ERROR: Invalid or missing operator in atomic update statement + x = x .MYOPERATOR. y +end program