diff --git a/flang/test/Semantics/OpenMP/omp-device-constructs.f90 b/flang/test/Semantics/OpenMP/omp-device-constructs.f90 --- a/flang/test/Semantics/OpenMP/omp-device-constructs.f90 +++ b/flang/test/Semantics/OpenMP/omp-device-constructs.f90 @@ -56,6 +56,19 @@ 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 --- a/llvm/include/llvm/Frontend/OpenMP/OMP.td +++ b/llvm/include/llvm/Frontend/OpenMP/OMP.td @@ -625,6 +625,7 @@ ]; let allowedOnceClauses = [ VersionedClause, + VersionedClause, VersionedClause, VersionedClause ];