diff --git a/flang/test/Semantics/OpenACC/acc-data.f90 b/flang/test/Semantics/OpenACC/acc-data.f90 --- a/flang/test/Semantics/OpenACC/acc-data.f90 +++ b/flang/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/flang/test/Semantics/OpenACC/acc-kernels-loop.f90 b/flang/test/Semantics/OpenACC/acc-kernels-loop.f90 --- a/flang/test/Semantics/OpenACC/acc-kernels-loop.f90 +++ b/flang/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 diff --git a/llvm/include/llvm/Frontend/OpenACC/ACC.td b/llvm/include/llvm/Frontend/OpenACC/ACC.td --- a/llvm/include/llvm/Frontend/OpenACC/ACC.td +++ b/llvm/include/llvm/Frontend/OpenACC/ACC.td @@ -477,10 +477,12 @@ // 2.14.6 def ACC_EnterData : Directive<"enter data"> { + let allowedClauses = [ + VersionedClause + ]; let allowedOnceClauses = [ VersionedClause, - VersionedClause, - VersionedClause + VersionedClause ]; let requiredClauses = [ VersionedClause, @@ -529,7 +531,8 @@ VersionedClause, VersionedClause, VersionedClause, - VersionedClause + VersionedClause, + VersionedClause ]; let allowedOnceClauses = [ VersionedClause, @@ -544,7 +547,6 @@ VersionedClause, VersionedClause, VersionedClause, - VersionedClause, VersionedClause ]; let allowedExclusiveClauses = [