diff --git a/flang/lib/Parser/openmp-parsers.cpp b/flang/lib/Parser/openmp-parsers.cpp
--- a/flang/lib/Parser/openmp-parsers.cpp
+++ b/flang/lib/Parser/openmp-parsers.cpp
@@ -610,7 +610,7 @@
 
 // 2.4 Requires construct
 TYPE_PARSER(sourced(construct<OpenMPRequiresConstruct>(
-    verbatim("REQUIRES"_tok), some(Parser<OmpClause>{} / maybe(","_tok)))))
+    verbatim("REQUIRES"_tok), Parser<OmpClauseList>{})))
 
 // 2.15.2 Threadprivate directive
 TYPE_PARSER(sourced(construct<OpenMPThreadprivate>(
diff --git a/flang/test/Semantics/OpenMP/requires.f90 b/flang/test/Semantics/OpenMP/requires.f90
--- a/flang/test/Semantics/OpenMP/requires.f90
+++ b/flang/test/Semantics/OpenMP/requires.f90
@@ -1,4 +1,7 @@
 ! RUN: %python %S/../test_errors.py %s %flang -fopenmp
 
-!$omp requires reverse_offload
+!$omp requires reverse_offload unified_shared_memory
+
+!ERROR: NOWAIT clause is not allowed on the REQUIRES directive
+!$omp requires nowait
 end