diff --git a/flang/test/Semantics/OpenMP/omp-device-constructs.f90 b/flang/test/Semantics/OpenMP/omp-device-constructs.f90 index 1b242657673ad..cbd377575339e 100644 --- a/flang/test/Semantics/OpenMP/omp-device-constructs.f90 +++ b/flang/test/Semantics/OpenMP/omp-device-constructs.f90 @@ -56,6 +56,19 @@ program main enddo !$omp end target + !$omp target thread_limit(4) + do i = 1, N + a = 3.14 + enddo + !$omp end target + + !ERROR: At most one THREAD_LIMIT clause can appear on the TARGET directive + !$omp target thread_limit(4) thread_limit(8) + do i = 1, N + a = 3.14 + enddo + !$omp end target + !$omp teams num_teams(3) thread_limit(10) default(shared) private(i) shared(a) do i = 1, N a = 3.14 diff --git a/llvm/include/llvm/Frontend/OpenMP/OMP.td b/llvm/include/llvm/Frontend/OpenMP/OMP.td index f2bd5b4c9eb88..0b90affb7a34d 100644 --- a/llvm/include/llvm/Frontend/OpenMP/OMP.td +++ b/llvm/include/llvm/Frontend/OpenMP/OMP.td @@ -625,6 +625,7 @@ def OMP_Target : Directive<"target"> { ]; let allowedOnceClauses = [ VersionedClause, + VersionedClause, VersionedClause, VersionedClause ];