[OPENMP] Initial parsing and sema analysis for 'single' directive.

llvm-svn: 211774
diff --git a/clang/lib/Parse/ParseOpenMP.cpp b/clang/lib/Parse/ParseOpenMP.cpp
index 11e888e..102cab3 100644
--- a/clang/lib/Parse/ParseOpenMP.cpp
+++ b/clang/lib/Parse/ParseOpenMP.cpp
@@ -65,6 +65,7 @@
   case OMPD_for:
   case OMPD_sections:
   case OMPD_section:
+  case OMPD_single:
     Diag(Tok, diag::err_omp_unexpected_directive)
         << getOpenMPDirectiveName(DKind);
     break;
@@ -80,8 +81,8 @@
 ///         annot_pragma_openmp_end
 ///
 ///       executable-directive:
-///         annot_pragma_openmp 'parallel'|'simd'|'for'|'sections'|'section'
-///         {clause} annot_pragma_openmp_end
+///         annot_pragma_openmp 'parallel' | 'simd' | 'for' | 'sections' |
+///         'section' | 'single' {clause} annot_pragma_openmp_end
 ///
 StmtResult Parser::ParseOpenMPDeclarativeOrExecutableDirective() {
   assert(Tok.is(tok::annot_pragma_openmp) && "Not an OpenMP directive!");
@@ -121,6 +122,7 @@
   case OMPD_simd:
   case OMPD_for:
   case OMPD_sections:
+  case OMPD_single:
   case OMPD_section: {
     ConsumeToken();