[flang][openacc] Allow multiple wait clauses
kernels loop and enter data had a too restrictive constraint for the wait clause.
The wait clause is allowed multiple times and not only once. This patch fix this problem.
Reviewed By: SouraVX
Differential Revision: https://reviews.llvm.org/D95469
GitOrigin-RevId: f30c523660106dd19072ae7baed72b18adfb0aa7
diff --git a/test/Semantics/OpenACC/acc-data.f90 b/test/Semantics/OpenACC/acc-data.f90
index 316f087..e9953e6 100644
--- a/test/Semantics/OpenACC/acc-data.f90
+++ b/test/Semantics/OpenACC/acc-data.f90
@@ -63,6 +63,8 @@
!$acc enter data create(aa) wait(wait1, wait2)
+ !$acc enter data create(aa) wait(wait1) wait(wait2)
+
!$acc enter data attach(bb)
!ERROR: At least one of COPYOUT, DELETE, DETACH clause must appear on the EXIT DATA directive
diff --git a/test/Semantics/OpenACC/acc-kernels-loop.f90 b/test/Semantics/OpenACC/acc-kernels-loop.f90
index bc48022..4ce039b 100644
--- a/test/Semantics/OpenACC/acc-kernels-loop.f90
+++ b/test/Semantics/OpenACC/acc-kernels-loop.f90
@@ -122,6 +122,11 @@
a(i) = 3.14
end do
+ !$acc kernels loop wait(wait1) wait(wait2)
+ do i = 1, N
+ a(i) = 3.14
+ end do
+
!$acc kernels loop wait(1, 2) async(3)
do i = 1, N
a(i) = 3.14