[clang] f8c12ed - [OPENMP50]Add support for nested atomic and simd constructs in

Alexey Bataev via cfe-commits cfe-commits at lists.llvm.org
Mon Nov 11 11:39:00 PST 2019


Author: Alexey Bataev
Date: 2019-11-11T14:28:28-05:00
New Revision: f8c12edd1a5200abbbb2c8da754d6a3bfa7545a0

URL: https://github.com/llvm/llvm-project/commit/f8c12edd1a5200abbbb2c8da754d6a3bfa7545a0
DIFF: https://github.com/llvm/llvm-project/commit/f8c12edd1a5200abbbb2c8da754d6a3bfa7545a0.diff

LOG: [OPENMP50]Add support for nested atomic and simd constructs in
simd-based directives.

According to OpenMP 5.0 standard, ordered simd, atomic and simd
directives are allowed as nested directives in the simd-based
directives.

Added: 
    

Modified: 
    clang/include/clang/Basic/DiagnosticSemaKinds.td
    clang/lib/Sema/SemaOpenMP.cpp
    clang/test/OpenMP/nesting_of_regions.cpp

Removed: 
    


################################################################################
diff  --git a/clang/include/clang/Basic/DiagnosticSemaKinds.td b/clang/include/clang/Basic/DiagnosticSemaKinds.td
index 42df65217cbb..e5085c4ab4cc 100644
--- a/clang/include/clang/Basic/DiagnosticSemaKinds.td
+++ b/clang/include/clang/Basic/DiagnosticSemaKinds.td
@@ -9312,7 +9312,7 @@ def err_omp_prohibited_region : Error<
   "; perhaps you forget to enclose 'omp %3' directive into a target region?|"
   "; perhaps you forget to enclose 'omp %3' directive into a teams region?}2">;
 def err_omp_prohibited_region_simd : Error<
-  "OpenMP constructs may not be nested inside a simd region">;
+  "OpenMP constructs may not be nested inside a simd region%select{| except for ordered simd, simd or atomic directive}0">;
 def err_omp_prohibited_region_atomic : Error<
   "OpenMP constructs may not be nested inside an atomic region">;
 def err_omp_prohibited_region_critical_same_name : Error<

diff  --git a/clang/lib/Sema/SemaOpenMP.cpp b/clang/lib/Sema/SemaOpenMP.cpp
index 7ed582f8446f..5c1b39e0b392 100644
--- a/clang/lib/Sema/SemaOpenMP.cpp
+++ b/clang/lib/Sema/SemaOpenMP.cpp
@@ -3799,7 +3799,10 @@ static bool checkNestingOfRegions(Sema &SemaRef, const DSAStackTy *Stack,
       ShouldBeInTargetRegion,
       ShouldBeInTeamsRegion
     } Recommend = NoRecommend;
-    if (isOpenMPSimdDirective(ParentRegion) && CurrentRegion != OMPD_ordered) {
+    if (isOpenMPSimdDirective(ParentRegion) &&
+        ((SemaRef.LangOpts.OpenMP <= 45 && CurrentRegion != OMPD_ordered) ||
+         (SemaRef.LangOpts.OpenMP >= 50 && CurrentRegion != OMPD_ordered &&
+          CurrentRegion != OMPD_simd && CurrentRegion != OMPD_atomic))) {
       // OpenMP [2.16, Nesting of Regions]
       // OpenMP constructs may not be nested inside a simd region.
       // OpenMP [2.8.1,simd Construct, Restrictions]
@@ -3808,9 +3811,14 @@ static bool checkNestingOfRegions(Sema &SemaRef, const DSAStackTy *Stack,
       // Allowing a SIMD construct nested in another SIMD construct is an
       // extension. The OpenMP 4.5 spec does not allow it. Issue a warning
       // message.
+      // OpenMP 5.0 [2.9.3.1, simd Construct, Restrictions]
+      // The only OpenMP constructs that can be encountered during execution of
+      // a simd region are the atomic construct, the loop construct, the simd
+      // construct and the ordered construct with the simd clause.
       SemaRef.Diag(StartLoc, (CurrentRegion != OMPD_simd)
                                  ? diag::err_omp_prohibited_region_simd
-                                 : diag::warn_omp_nesting_simd);
+                                 : diag::warn_omp_nesting_simd)
+          << (SemaRef.LangOpts.OpenMP >= 50 ? 1 : 0);
       return CurrentRegion != OMPD_simd;
     }
     if (ParentRegion == OMPD_atomic) {
@@ -8165,7 +8173,8 @@ StmtResult Sema::ActOnOpenMPOrderedDirective(ArrayRef<OMPClause *> Clauses,
     // OpenMP [2.8.1,simd Construct, Restrictions]
     // An ordered construct with the simd clause is the only OpenMP construct
     // that can appear in the simd region.
-    Diag(StartLoc, diag::err_omp_prohibited_region_simd);
+    Diag(StartLoc, diag::err_omp_prohibited_region_simd)
+        << (LangOpts.OpenMP >= 50 ? 1 : 0);
     ErrorFound = true;
   } else if (DependFound && (TC || SC)) {
     Diag(DependFound->getBeginLoc(), diag::err_omp_depend_clause_thread_simd)

diff  --git a/clang/test/OpenMP/nesting_of_regions.cpp b/clang/test/OpenMP/nesting_of_regions.cpp
index fc9230c6870c..9aa7814c6c75 100644
--- a/clang/test/OpenMP/nesting_of_regions.cpp
+++ b/clang/test/OpenMP/nesting_of_regions.cpp
@@ -1,6 +1,8 @@
-// RUN: %clang_cc1 -fsyntax-only -fopenmp -verify %s
+// RUN: %clang_cc1 -fsyntax-only -fopenmp -verify=expected,omp45 %s
+// RUN: %clang_cc1 -fsyntax-only -fopenmp -fopenmp-version=50 -verify=expected,omp50 %s
 
-// RUN: %clang_cc1 -fsyntax-only -fopenmp-simd -verify %s
+// RUN: %clang_cc1 -fsyntax-only -fopenmp-simd -verify=expected,omp45 %s
+// RUN: %clang_cc1 -fsyntax-only -fopenmp-simd -fopenmp-version=50 -verify=expected,omp50 %s
 // SIMD-ONLY0-NOT: {{__kmpc|__tgt}}
 
 void bar();
@@ -227,7 +229,7 @@ void foo() {
   }
 #pragma omp simd
   for (int i = 0; i < 10; ++i) {
-#pragma omp simd // expected-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}
+#pragma omp simd // omp45-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}
     for (int i = 0; i < 10; ++i)
       ;
   }
@@ -341,7 +343,7 @@ void foo() {
   }
 #pragma omp simd
   for (int i = 0; i < 10; ++i) {
-#pragma omp atomic // expected-error {{OpenMP constructs may not be nested inside a simd region}}
+#pragma omp atomic // omp45-error {{OpenMP constructs may not be nested inside a simd region}}
     ++a;
   }
 #pragma omp simd
@@ -468,7 +470,7 @@ void foo() {
     for (int j = 0; j < 10; ++j)
       ;
   }
-  
+
 // FOR DIRECTIVE
 #pragma omp for
   for (int i = 0; i < 10; ++i) {
@@ -742,7 +744,7 @@ void foo() {
   }
 #pragma omp for simd
   for (int i = 0; i < 10; ++i) {
-#pragma omp simd // expected-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}
+#pragma omp simd // omp45-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}
     for (int i = 0; i < 10; ++i)
       ;
   }
@@ -856,7 +858,7 @@ void foo() {
   }
 #pragma omp for simd
   for (int i = 0; i < 10; ++i) {
-#pragma omp atomic // expected-error {{OpenMP constructs may not be nested inside a simd region}}
+#pragma omp atomic // omp45-error {{OpenMP constructs may not be nested inside a simd region}}
     ++a;
   }
 #pragma omp for simd
@@ -2647,7 +2649,7 @@ void foo() {
   }
 #pragma omp parallel for simd
   for (int i = 0; i < 10; ++i) {
-#pragma omp simd // expected-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}
+#pragma omp simd // omp45-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}
     for (int i = 0; i < 10; ++i)
       ;
   }
@@ -2779,7 +2781,7 @@ void foo() {
   }
 #pragma omp parallel for simd
   for (int i = 0; i < 10; ++i) {
-#pragma omp atomic // expected-error {{OpenMP constructs may not be nested inside a simd region}}
+#pragma omp atomic // omp45-error {{OpenMP constructs may not be nested inside a simd region}}
     ++a;
   }
 #pragma omp parallel for simd
@@ -4104,7 +4106,7 @@ void foo() {
     ++a;
   }
 #pragma omp target
-  { 
+  {
 #pragma omp distribute // expected-error {{region cannot be closely nested inside 'target' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}
     for (int i = 0; i < 10; ++i)
       ;
@@ -4122,79 +4124,79 @@ void foo() {
 #pragma omp target update to(a) // expected-error {{region cannot be nested inside 'target' region}}
   }
 #pragma omp target
-  { 
+  {
 #pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'target' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}
     for (int i = 0; i < 10; ++i)
       ;
   }
 #pragma omp target
-  { 
+  {
 #pragma omp distribute parallel for simd // expected-error {{region cannot be closely nested inside 'target' region; perhaps you forget to enclose 'omp distribute parallel for simd' directive into a teams region?}}
     for (int i = 0; i < 10; ++i)
       ;
   }
 #pragma omp target
-  { 
+  {
 #pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'target' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}
     for (int i = 0; i < 10; ++i)
       ;
   }
 #pragma omp target
-  { 
+  {
 #pragma omp target simd // expected-error {{region cannot be nested inside 'target' region}}
     for (int i = 0; i < 10; ++i)
       ;
   }
 #pragma omp target
-  { 
+  {
 #pragma omp teams distribute // OK
     for (int i = 0; i < 10; ++i)
       ;
   }
 #pragma omp target
-  { 
+  {
 #pragma omp teams distribute simd // OK
     for (int i = 0; i < 10; ++i)
       ;
   }
 #pragma omp target
-  { 
+  {
 #pragma omp teams distribute parallel for simd // OK
     for (int i = 0; i < 10; ++i)
       ;
   }
 #pragma omp target
-  { 
+  {
 #pragma omp teams distribute parallel for // OK
     for (int i = 0; i < 10; ++i)
       ;
   }
 #pragma omp target
-  { 
+  {
 #pragma omp target teams // expected-error {{region cannot be nested inside 'target' region}}
     for (int i = 0; i < 10; ++i)
       ;
   }
 #pragma omp target
-  { 
+  {
 #pragma omp target teams distribute // expected-error {{region cannot be nested inside 'target' region}}
     for (int i = 0; i < 10; ++i)
       ;
   }
 #pragma omp target
-  { 
+  {
 #pragma omp target teams distribute parallel for // expected-error {{region cannot be nested inside 'target' region}}
     for (int i = 0; i < 10; ++i)
       ;
   }
 #pragma omp target
-  { 
+  {
 #pragma omp target teams distribute parallel for simd // expected-error {{region cannot be nested inside 'target' region}}
     for (int i = 0; i < 10; ++i)
       ;
   }
 #pragma omp target
-  { 
+  {
 #pragma omp target teams distribute simd // expected-error {{region cannot be nested inside 'target' region}}
     for (int i = 0; i < 10; ++i)
       ;
@@ -4320,7 +4322,7 @@ void foo() {
     ++a;
   }
 #pragma omp target parallel
-  { 
+  {
 #pragma omp distribute // expected-error {{region cannot be closely nested inside 'target parallel' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}
     for (int i = 0; i < 10; ++i)
       ;
@@ -4338,78 +4340,78 @@ void foo() {
 #pragma omp target update to(a) // expected-error {{region cannot be nested inside 'target parallel' region}}
   }
 #pragma omp target parallel
-  { 
+  {
 #pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'target parallel' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}
     for (int i = 0; i < 10; ++i)
       ;
   }
 #pragma omp target parallel
-  { 
+  {
 #pragma omp distribute parallel for simd // expected-error {{region cannot be closely nested inside 'target parallel' region; perhaps you forget to enclose 'omp distribute parallel for simd' directive into a teams region?}}
     for (int i = 0; i < 10; ++i)
       ;
   }
 #pragma omp target parallel
-  { 
+  {
 #pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'target parallel' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}
     for (int i = 0; i < 10; ++i)
       ;
   }
 #pragma omp target parallel
-  { 
+  {
 #pragma omp target simd // expected-error {{region cannot be nested inside 'target parallel' region}}
     for (int i = 0; i < 10; ++i)
       ;
   }
 #pragma omp target parallel
-  { 
+  {
 #pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'target parallel' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}
     for (int i = 0; i < 10; ++i)
       ;
   }
 #pragma omp target parallel
-  { 
+  {
 #pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'target parallel' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}
     for (int i = 0; i < 10; ++i)
       ;
   }
 #pragma omp target parallel
-  { 
+  {
 #pragma omp teams distribute parallel for simd // expected-error {{region cannot be closely nested inside 'target parallel' region; perhaps you forget to enclose 'omp teams distribute parallel for simd' directive into a target region?}}
     for (int i = 0; i < 10; ++i)
       ;
   }
 #pragma omp target parallel
-  { 
+  {
 #pragma omp teams distribute parallel for // expected-error {{region cannot be closely nested inside 'target parallel' region; perhaps you forget to enclose 'omp teams distribute parallel for' directive into a target region?}}
     for (int i = 0; i < 10; ++i)
       ;
   }
 #pragma omp target parallel
-  { 
+  {
 #pragma omp target teams // expected-error {{region cannot be nested inside 'target parallel' region}}
     a++;
   }
 #pragma omp target parallel
-  { 
+  {
 #pragma omp target teams distribute // expected-error {{region cannot be nested inside 'target parallel' region}}
     for (int i = 0; i < 10; ++i)
       ;
   }
 #pragma omp target parallel
-  { 
+  {
 #pragma omp target teams distribute parallel for // expected-error {{region cannot be nested inside 'target parallel' region}}
     for (int i = 0; i < 10; ++i)
       ;
   }
 #pragma omp target parallel
-  { 
+  {
 #pragma omp target teams distribute parallel for simd // expected-error {{region cannot be nested inside 'target parallel' region}}
     for (int i = 0; i < 10; ++i)
       ;
   }
 #pragma omp target parallel
-  { 
+  {
 #pragma omp target teams distribute simd // expected-error {{region cannot be nested inside 'target parallel' region}}
     for (int i = 0; i < 10; ++i)
       ;
@@ -4611,60 +4613,60 @@ void foo() {
 #pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'target parallel for' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}
     for (int j = 0; j < 10; ++j)
       ;
-  }    
+  }
 #pragma omp target parallel for
   for (int i = 0; i < 10; ++i) {
 #pragma omp distribute parallel for simd // expected-error {{region cannot be closely nested inside 'target parallel for' region; perhaps you forget to enclose 'omp distribute parallel for simd' directive into a teams region?}}
     for (int j = 0; j < 10; ++j)
       ;
-  }    
+  }
 #pragma omp target parallel for
   for (int i = 0; i < 10; ++i) {
 #pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'target parallel for' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}
     for (int j = 0; j < 10; ++j)
       ;
-  }    
+  }
 #pragma omp target parallel for
   for (int i = 0; i < 10; ++i) {
 #pragma omp target simd // expected-error {{region cannot be nested inside 'target parallel for' region}}
     for (int j = 0; j < 10; ++j)
       ;
-  }    
+  }
 #pragma omp target parallel for
   for (int i = 0; i < 10; ++i) {
 #pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'target parallel for' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}
     for (int j = 0; j < 10; ++j)
       ;
-  }    
+  }
 #pragma omp target parallel for
   for (int i = 0; i < 10; ++i) {
 #pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'target parallel for' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}
     for (int j = 0; j < 10; ++j)
       ;
-  }    
+  }
 #pragma omp target parallel for
   for (int i = 0; i < 10; ++i) {
 #pragma omp teams distribute parallel for simd // expected-error {{region cannot be closely nested inside 'target parallel for' region; perhaps you forget to enclose 'omp teams distribute parallel for simd' directive into a target region?}}
     for (int j = 0; j < 10; ++j)
       ;
-  }    
+  }
 #pragma omp target parallel for
   for (int i = 0; i < 10; ++i) {
 #pragma omp teams distribute parallel for // expected-error {{region cannot be closely nested inside 'target parallel for' region; perhaps you forget to enclose 'omp teams distribute parallel for' directive into a target region?}}
     for (int j = 0; j < 10; ++j)
       ;
-  }    
+  }
 #pragma omp target parallel for
   for (int i = 0; i < 10; ++i) {
 #pragma omp target teams // expected-error {{region cannot be nested inside 'target parallel for' region}}
     a++;
-  }    
+  }
 #pragma omp target parallel for
   for (int i = 0; i < 10; ++i) {
 #pragma omp target teams distribute // expected-error {{region cannot be nested inside 'target parallel for' region}}
     for (int j = 0; j < 10; ++j)
       ;
-  }    
+  }
 #pragma omp target parallel for
   for (int i = 0; i < 10; ++i) {
 #pragma omp target teams distribute parallel for // expected-error {{region cannot be nested inside 'target parallel for' region}}
@@ -4685,7 +4687,7 @@ void foo() {
   }
 
 // TEAMS DIRECTIVE
-#pragma omp teams // expected-error {{orphaned 'omp teams' directives are prohibited; perhaps you forget to enclose the directive into a target region?}}
+#pragma omp teams // omp45-error {{orphaned 'omp teams' directives are prohibited; perhaps you forget to enclose the directive into a target region?}}
   bar();
 #pragma omp target
 #pragma omp teams
@@ -4847,7 +4849,7 @@ void foo() {
     ;
 #pragma omp distribute
   for (int j = 0; j < 10; ++j)
-    ;        
+    ;
 #pragma omp target
 #pragma omp teams
   {
@@ -4861,7 +4863,7 @@ void foo() {
     ;
 #pragma omp distribute parallel for
   for (int j = 0; j < 10; ++j)
-    ;  
+    ;
   }
 #pragma omp target
 #pragma omp teams
@@ -4871,7 +4873,7 @@ void foo() {
     ;
 #pragma omp distribute parallel for simd
   for (int j = 0; j < 10; ++j)
-    ;  
+    ;
   }
 #pragma omp target
 #pragma omp teams
@@ -4881,7 +4883,7 @@ void foo() {
     ;
 #pragma omp distribute simd
   for (int j = 0; j < 10; ++j)
-    ;  
+    ;
   }
 #pragma omp target
 #pragma omp teams
@@ -5247,7 +5249,7 @@ void foo() {
       ;
   }
 #pragma omp target
-#pragma omp teams  
+#pragma omp teams
 #pragma omp distribute
   for (int i = 0; i < 10; ++i) {
 #pragma omp parallel
@@ -5307,7 +5309,7 @@ void foo() {
     {
 #pragma omp single
       {
-	bar();
+        bar();
       }
     }
   }
@@ -5559,7 +5561,7 @@ void foo() {
       ;
   }
 #pragma omp target
-#pragma omp teams  
+#pragma omp teams
 #pragma omp distribute parallel for
   for (int i = 0; i < 10; ++i) {
 #pragma omp parallel
@@ -5619,7 +5621,7 @@ void foo() {
     {
 #pragma omp single
       {
-	bar();
+        bar();
       }
     }
   }
@@ -5856,9 +5858,9 @@ void foo() {
   }
 #pragma omp target
 #pragma omp teams
-#pragma omp distribute parallel for simd 
+#pragma omp distribute parallel for simd
   for (int i = 0; i < 10; ++i) {
-#pragma omp simd // expected-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}
+#pragma omp simd // omp45-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}
     for (int i = 0; i < 10; ++i)
       ;
   }
@@ -5871,7 +5873,7 @@ void foo() {
       ;
   }
 #pragma omp target
-#pragma omp teams  
+#pragma omp teams
 #pragma omp distribute parallel for simd
   for (int i = 0; i < 10; ++i) {
 #pragma omp parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}
@@ -5931,7 +5933,7 @@ void foo() {
     {
 #pragma omp single
       {
-	bar();
+        bar();
       }
     }
   }
@@ -6008,7 +6010,7 @@ void foo() {
 #pragma omp teams
 #pragma omp distribute parallel for simd
   for (int i = 0; i < 10; ++i) {
-#pragma omp atomic // expected-error {{OpenMP constructs may not be nested inside a simd region}}
+#pragma omp atomic // omp45-error {{OpenMP constructs may not be nested inside a simd region}}
     ++a;
   }
 #pragma omp target
@@ -6168,9 +6170,9 @@ void foo() {
     for (int i = 0; i < 10; ++i)
       ;
   }
-#pragma omp target simd 
+#pragma omp target simd
   for (int i = 0; i < 10; ++i) {
-#pragma omp simd // expected-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}
+#pragma omp simd // omp45-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}
     for (int i = 0; i < 10; ++i)
       ;
   }
@@ -6227,7 +6229,7 @@ void foo() {
     {
 #pragma omp single
       {
-	bar();
+        bar();
       }
     }
   }
@@ -6284,7 +6286,7 @@ void foo() {
   }
 #pragma omp target simd
   for (int i = 0; i < 10; ++i) {
-#pragma omp atomic // expected-error {{OpenMP constructs may not be nested inside a simd region}}
+#pragma omp atomic // omp45-error {{OpenMP constructs may not be nested inside a simd region}}
     ++a;
   }
 #pragma omp target simd
@@ -6373,7 +6375,7 @@ void foo() {
   }
 
 // TEAMS DISTRIBUTE DIRECTIVE
-#pragma omp teams distribute // expected-error {{orphaned 'omp teams distribute' directives are prohibited; perhaps you forget to enclose the directive into a target region?}}
+#pragma omp teams distribute // omp45-error {{orphaned 'omp teams distribute' directives are prohibited; perhaps you forget to enclose the directive into a target region?}}
   for (int i = 0; i < 10; ++i)
     ;
 #pragma omp target
@@ -6465,7 +6467,7 @@ void foo() {
     {
 #pragma omp single
       {
-	bar();
+        bar();
       }
     }
   }
@@ -6636,7 +6638,7 @@ void foo() {
   }
 
 // TEAMS DISTRIBUTE DIRECTIVE
-#pragma omp teams distribute // expected-error {{orphaned 'omp teams distribute' directives are prohibited; perhaps you forget to enclose the directive into a target region?}}
+#pragma omp teams distribute // omp45-error {{orphaned 'omp teams distribute' directives are prohibited; perhaps you forget to enclose the directive into a target region?}}
   for (int i = 0; i < 10; ++i)
     ;
 #pragma omp target
@@ -6728,7 +6730,7 @@ void foo() {
     {
 #pragma omp single
       {
-	bar();
+        bar();
       }
     }
   }
@@ -6919,7 +6921,7 @@ void foo() {
   }
 
 // TEAMS DISTRIBUTE SIMD DIRECTIVE
-#pragma omp teams distribute simd // expected-error {{orphaned 'omp teams distribute simd' directives are prohibited; perhaps you forget to enclose the directive into a target region?}}
+#pragma omp teams distribute simd // omp45-error {{orphaned 'omp teams distribute simd' directives are prohibited; perhaps you forget to enclose the directive into a target region?}}
   for (int i = 0; i < 10; ++i)
     ;
 #pragma omp target
@@ -6946,7 +6948,7 @@ void foo() {
 #pragma omp target
 #pragma omp teams distribute simd
   for (int i = 0; i < 10; ++i) {
-#pragma omp simd // expected-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}
+#pragma omp simd // omp45-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}
     for (int i = 0; i < 10; ++i)
       ;
   }
@@ -7011,7 +7013,7 @@ void foo() {
     {
 #pragma omp single
       {
-	bar();
+        bar();
       }
     }
   }
@@ -7078,7 +7080,7 @@ void foo() {
 #pragma omp target
 #pragma omp teams distribute simd
   for (int i = 0; i < 10; ++i) {
-#pragma omp atomic // expected-error {{OpenMP constructs may not be nested inside a simd region}}
+#pragma omp atomic // omp45-error {{OpenMP constructs may not be nested inside a simd region}}
     ++a;
   }
 #pragma omp target
@@ -7202,7 +7204,7 @@ void foo() {
   }
 
 // TEAMS DISTRIBUTE PARALLEL FOR SIMD DIRECTIVE
-#pragma omp teams distribute parallel for simd // expected-error {{orphaned 'omp teams distribute parallel for simd' directives are prohibited; perhaps you forget to enclose the directive into a target region?}}
+#pragma omp teams distribute parallel for simd // omp45-error {{orphaned 'omp teams distribute parallel for simd' directives are prohibited; perhaps you forget to enclose the directive into a target region?}}
   for (int i = 0; i < 10; ++i)
     ;
 #pragma omp target
@@ -7229,7 +7231,7 @@ void foo() {
 #pragma omp target
 #pragma omp teams distribute parallel for simd
   for (int i = 0; i < 10; ++i) {
-#pragma omp simd // expected-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}
+#pragma omp simd // omp45-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}
     for (int i = 0; i < 10; ++i)
       ;
   }
@@ -7294,7 +7296,7 @@ void foo() {
     {
 #pragma omp single
       {
-	bar();
+        bar();
       }
     }
   }
@@ -7361,7 +7363,7 @@ void foo() {
 #pragma omp target
 #pragma omp teams distribute parallel for simd
   for (int i = 0; i < 10; ++i) {
-#pragma omp atomic // expected-error {{OpenMP constructs may not be nested inside a simd region}}
+#pragma omp atomic // omp45-error {{OpenMP constructs may not be nested inside a simd region}}
     ++a;
   }
 #pragma omp target
@@ -7485,7 +7487,7 @@ void foo() {
   }
 
 // TEAMS DISTRIBUTE PARALLEL FOR DIRECTIVE
-#pragma omp teams distribute parallel for // expected-error {{orphaned 'omp teams distribute parallel for' directives are prohibited; perhaps you forget to enclose the directive into a target region?}}
+#pragma omp teams distribute parallel for // omp45-error {{orphaned 'omp teams distribute parallel for' directives are prohibited; perhaps you forget to enclose the directive into a target region?}}
   for (int i = 0; i < 10; ++i)
     ;
 #pragma omp target
@@ -7577,7 +7579,7 @@ void foo() {
     {
 #pragma omp single
       {
-	bar();
+        bar();
       }
     }
   }
@@ -7908,7 +7910,7 @@ void foo() {
     ;
 #pragma omp distribute parallel for
   for (int j = 0; j < 10; ++j)
-    ;  
+    ;
   }
 #pragma omp target teams
   {
@@ -7917,7 +7919,7 @@ void foo() {
     ;
 #pragma omp distribute parallel for simd
   for (int j = 0; j < 10; ++j)
-    ;  
+    ;
   }
 #pragma omp target teams
   {
@@ -7926,7 +7928,7 @@ void foo() {
     ;
 #pragma omp distribute simd
   for (int j = 0; j < 10; ++j)
-    ;  
+    ;
   }
 #pragma omp target teams
   {
@@ -8069,7 +8071,7 @@ void foo() {
     {
 #pragma omp single
       {
-	bar();
+        bar();
       }
     }
   }
@@ -8312,7 +8314,7 @@ void foo() {
     {
 #pragma omp single
       {
-	bar();
+        bar();
       }
     }
   }
@@ -8498,7 +8500,7 @@ void foo() {
   }
 #pragma omp target teams distribute parallel for simd
   for (int i = 0; i < 10; ++i) {
-#pragma omp simd // expected-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}
+#pragma omp simd // omp45-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}
     for (int i = 0; i < 10; ++i)
       ;
   }
@@ -8555,7 +8557,7 @@ void foo() {
     {
 #pragma omp single
       {
-	bar();
+        bar();
       }
     }
   }
@@ -8612,7 +8614,7 @@ void foo() {
   }
 #pragma omp target teams distribute parallel for simd
   for (int i = 0; i < 10; ++i) {
-#pragma omp atomic // expected-error {{OpenMP constructs may not be nested inside a simd region}}OK
+#pragma omp atomic // omp45-error {{OpenMP constructs may not be nested inside a simd region}}OK
     ++a;
   }
 #pragma omp target teams distribute parallel for simd
@@ -8741,7 +8743,7 @@ void foo() {
   }
 #pragma omp target teams distribute simd
   for (int i = 0; i < 10; ++i) {
-#pragma omp simd // expected-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}
+#pragma omp simd // omp45-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}
     for (int i = 0; i < 10; ++i)
       ;
   }
@@ -8798,7 +8800,7 @@ void foo() {
     {
 #pragma omp single
       {
-	bar();
+        bar();
       }
     }
   }
@@ -8855,7 +8857,7 @@ void foo() {
   }
 #pragma omp target teams distribute simd
   for (int i = 0; i < 10; ++i) {
-#pragma omp atomic // expected-error {{OpenMP constructs may not be nested inside a simd region}}OK
+#pragma omp atomic // omp45-error {{OpenMP constructs may not be nested inside a simd region}}OK
     ++a;
   }
 #pragma omp target teams distribute simd
@@ -9182,7 +9184,7 @@ void foo() {
   }
 #pragma omp simd
   for (int i = 0; i < 10; ++i) {
-#pragma omp simd // expected-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}
+#pragma omp simd // omp45-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}
     for (int i = 0; i < 10; ++i)
       ;
   }
@@ -9279,7 +9281,7 @@ void foo() {
   }
 #pragma omp simd
   for (int i = 0; i < 10; ++i) {
-#pragma omp atomic // expected-error {{OpenMP constructs may not be nested inside a simd region}}
+#pragma omp atomic // omp45-error {{OpenMP constructs may not be nested inside a simd region}}
     ++a;
   }
 #pragma omp simd
@@ -9672,7 +9674,7 @@ void foo() {
   }
 #pragma omp for simd
   for (int i = 0; i < 10; ++i) {
-#pragma omp simd // expected-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}
+#pragma omp simd // omp45-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}
     for (int i = 0; i < 10; ++i)
       ;
   }
@@ -9769,7 +9771,7 @@ void foo() {
   }
 #pragma omp for simd
   for (int i = 0; i < 10; ++i) {
-#pragma omp atomic // expected-error {{OpenMP constructs may not be nested inside a simd region}}
+#pragma omp atomic // omp45-error {{OpenMP constructs may not be nested inside a simd region}}
     ++a;
   }
 #pragma omp for simd
@@ -11541,7 +11543,7 @@ void foo() {
   }
 #pragma omp parallel for simd
   for (int i = 0; i < 10; ++i) {
-#pragma omp simd // expected-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}
+#pragma omp simd // omp45-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}
     for (int i = 0; i < 10; ++i)
       ;
   }
@@ -11673,7 +11675,7 @@ void foo() {
   }
 #pragma omp parallel for simd
   for (int i = 0; i < 10; ++i) {
-#pragma omp atomic // expected-error {{OpenMP constructs may not be nested inside a simd region}}
+#pragma omp atomic // omp45-error {{OpenMP constructs may not be nested inside a simd region}}
     ++a;
   }
 #pragma omp parallel for simd
@@ -12718,7 +12720,7 @@ void foo() {
     ++a;
   }
 #pragma omp target
-  { 
+  {
 #pragma omp distribute // expected-error {{region cannot be closely nested inside 'target' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}
     for (int i = 0; i < 10; ++i)
       ;
@@ -12731,78 +12733,78 @@ void foo() {
     a++;
   }
 #pragma omp target
-  { 
+  {
 #pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'target' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}
     for (int i = 0; i < 10; ++i)
       ;
   }
 #pragma omp target
-  { 
+  {
 #pragma omp distribute parallel for simd // expected-error {{region cannot be closely nested inside 'target' region; perhaps you forget to enclose 'omp distribute parallel for simd' directive into a teams region?}}
     for (int i = 0; i < 10; ++i)
       ;
   }
 #pragma omp target
-  { 
+  {
 #pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'target' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}
     for (int i = 0; i < 10; ++i)
       ;
   }
 #pragma omp target
-  { 
+  {
 #pragma omp target simd // expected-error {{region cannot be nested inside 'target' region}}
     for (int i = 0; i < 10; ++i)
       ;
   }
 #pragma omp target
-  { 
+  {
 #pragma omp teams distribute // OK
     for (int i = 0; i < 10; ++i)
       ;
   }
 #pragma omp target
-  { 
+  {
 #pragma omp teams distribute simd // OK
     for (int i = 0; i < 10; ++i)
       ;
   }
 #pragma omp target
-  { 
+  {
 #pragma omp teams distribute parallel for simd // OK
     for (int i = 0; i < 10; ++i)
       ;
   }
 #pragma omp target
-  { 
+  {
 #pragma omp teams distribute parallel for // OK
     for (int i = 0; i < 10; ++i)
       ;
   }
 #pragma omp target
-  { 
+  {
 #pragma omp target teams // expected-error {{region cannot be nested inside 'target' region}}
     a++;
   }
 #pragma omp target
-  { 
+  {
 #pragma omp target teams distribute // expected-error {{region cannot be nested inside 'target' region}}
     for (int i = 0; i < 10; ++i)
       ;
   }
 #pragma omp target
-  { 
+  {
 #pragma omp target teams distribute parallel for // expected-error {{region cannot be nested inside 'target' region}}
     for (int i = 0; i < 10; ++i)
       ;
   }
 #pragma omp target
-  { 
+  {
 #pragma omp target teams distribute parallel for simd // expected-error {{region cannot be nested inside 'target' region}}
     for (int i = 0; i < 10; ++i)
       ;
   }
 #pragma omp target
-  { 
+  {
 #pragma omp target teams distribute simd // expected-error {{region cannot be nested inside 'target' region}}
     for (int i = 0; i < 10; ++i)
       ;
@@ -12928,7 +12930,7 @@ void foo() {
     ++a;
   }
 #pragma omp target parallel
-  { 
+  {
 #pragma omp distribute // expected-error {{region cannot be closely nested inside 'target parallel' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}
     for (int i = 0; i < 10; ++i)
       ;
@@ -12946,78 +12948,78 @@ void foo() {
 #pragma omp target update to(a) // expected-error {{region cannot be nested inside 'target parallel' region}}
   }
 #pragma omp target parallel
-  { 
+  {
 #pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'target parallel' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}
     for (int i = 0; i < 10; ++i)
       ;
   }
 #pragma omp target parallel
-  { 
+  {
 #pragma omp distribute parallel for simd // expected-error {{region cannot be closely nested inside 'target parallel' region; perhaps you forget to enclose 'omp distribute parallel for simd' directive into a teams region?}}
     for (int i = 0; i < 10; ++i)
       ;
   }
 #pragma omp target parallel
-  { 
+  {
 #pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'target parallel' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}
     for (int i = 0; i < 10; ++i)
       ;
   }
 #pragma omp target parallel
-  { 
+  {
 #pragma omp target simd // expected-error {{region cannot be nested inside 'target parallel' regio}}
     for (int i = 0; i < 10; ++i)
       ;
   }
 #pragma omp target parallel
-  { 
+  {
 #pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'target parallel' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}
     for (int i = 0; i < 10; ++i)
       ;
   }
 #pragma omp target parallel
-  { 
+  {
 #pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'target parallel' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}
     for (int i = 0; i < 10; ++i)
       ;
   }
 #pragma omp target parallel
-  { 
+  {
 #pragma omp teams distribute parallel for simd // expected-error {{region cannot be closely nested inside 'target parallel' region; perhaps you forget to enclose 'omp teams distribute parallel for simd' directive into a target region?}}
     for (int i = 0; i < 10; ++i)
       ;
   }
 #pragma omp target parallel
-  { 
+  {
 #pragma omp teams distribute parallel for // expected-error {{region cannot be closely nested inside 'target parallel' region; perhaps you forget to enclose 'omp teams distribute parallel for' directive into a target region?}}
     for (int i = 0; i < 10; ++i)
       ;
   }
 #pragma omp target parallel
-  { 
+  {
 #pragma omp target teams // expected-error {{region cannot be nested inside 'target parallel' region}}
     a++;
   }
 #pragma omp target parallel
-  { 
+  {
 #pragma omp target teams distribute // expected-error {{region cannot be nested inside 'target parallel' region}}
     for (int i = 0; i < 10; ++i)
       ;
   }
 #pragma omp target parallel
-  { 
+  {
 #pragma omp target teams distribute parallel for // expected-error {{region cannot be nested inside 'target parallel' region}}
     for (int i = 0; i < 10; ++i)
       ;
   }
 #pragma omp target parallel
-  { 
+  {
 #pragma omp target teams distribute parallel for simd // expected-error {{region cannot be nested inside 'target parallel' region}}
     for (int i = 0; i < 10; ++i)
       ;
   }
 #pragma omp target parallel
-  { 
+  {
 #pragma omp target teams distribute simd // expected-error {{region cannot be nested inside 'target parallel' region}}
     for (int i = 0; i < 10; ++i)
       ;
@@ -13472,7 +13474,7 @@ void foo() {
     ;
 #pragma omp distribute parallel for
   for (int j = 0; j < 10; ++j)
-    ;  
+    ;
   }
 #pragma omp target
 #pragma omp teams
@@ -13482,7 +13484,7 @@ void foo() {
     ;
 #pragma omp distribute parallel for simd
   for (int j = 0; j < 10; ++j)
-    ;  
+    ;
   }
 #pragma omp target
 #pragma omp teams
@@ -13492,7 +13494,7 @@ void foo() {
     ;
 #pragma omp distribute simd
   for (int j = 0; j < 10; ++j)
-    ;  
+    ;
   }
 #pragma omp target
 #pragma omp teams
@@ -13858,7 +13860,7 @@ void foo() {
       ;
   }
 #pragma omp target
-#pragma omp teams  
+#pragma omp teams
 #pragma omp distribute
   for (int i = 0; i < 10; ++i) {
 #pragma omp parallel
@@ -13918,7 +13920,7 @@ void foo() {
     {
 #pragma omp single
       {
-	bar();
+        bar();
       }
     }
   }
@@ -14180,7 +14182,7 @@ void foo() {
       ;
   }
 #pragma omp target
-#pragma omp teams  
+#pragma omp teams
 #pragma omp distribute parallel for
   for (int i = 0; i < 10; ++i) {
 #pragma omp parallel
@@ -14240,7 +14242,7 @@ void foo() {
     {
 #pragma omp single
       {
-	bar();
+        bar();
       }
     }
   }
@@ -14487,7 +14489,7 @@ void foo() {
 #pragma omp teams
 #pragma omp distribute parallel for simd
   for (int i = 0; i < 10; ++i) {
-#pragma omp simd // expected-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}
+#pragma omp simd // omp45-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}
     for (int i = 0; i < 10; ++i)
       ;
   }
@@ -14500,7 +14502,7 @@ void foo() {
       ;
   }
 #pragma omp target
-#pragma omp teams  
+#pragma omp teams
 #pragma omp distribute parallel for simd
   for (int i = 0; i < 10; ++i) {
 #pragma omp parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}
@@ -14560,7 +14562,7 @@ void foo() {
     {
 #pragma omp single
       {
-	bar();
+        bar();
       }
     }
   }
@@ -14637,7 +14639,7 @@ void foo() {
 #pragma omp teams
 #pragma omp distribute parallel for simd
   for (int i = 0; i < 10; ++i) {
-#pragma omp atomic // expected-error {{OpenMP constructs may not be nested inside a simd region}}
+#pragma omp atomic // omp45-error {{OpenMP constructs may not be nested inside a simd region}}
     ++a;
   }
 #pragma omp target
@@ -14799,7 +14801,7 @@ void foo() {
 #pragma omp teams
 #pragma omp distribute simd
   for (int i = 0; i < 10; ++i) {
-#pragma omp simd // expected-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}
+#pragma omp simd // omp45-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}
     for (int i = 0; i < 10; ++i)
       ;
   }
@@ -14812,7 +14814,7 @@ void foo() {
       ;
   }
 #pragma omp target
-#pragma omp teams  
+#pragma omp teams
 #pragma omp distribute simd
   for (int i = 0; i < 10; ++i) {
 #pragma omp parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}
@@ -14872,7 +14874,7 @@ void foo() {
     {
 #pragma omp single
       {
-	bar();
+        bar();
       }
     }
   }
@@ -14949,7 +14951,7 @@ void foo() {
 #pragma omp teams
 #pragma omp distribute simd
   for (int i = 0; i < 10; ++i) {
-#pragma omp atomic // expected-error {{OpenMP constructs may not be nested inside a simd region}}
+#pragma omp atomic // omp45-error {{OpenMP constructs may not be nested inside a simd region}}
     ++a;
   }
 #pragma omp target
@@ -15103,7 +15105,7 @@ void foo() {
   }
 #pragma omp target simd
   for (int i = 0; i < 10; ++i) {
-#pragma omp simd // expected-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}
+#pragma omp simd // omp45-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}
     for (int i = 0; i < 10; ++i)
       ;
   }
@@ -15160,7 +15162,7 @@ void foo() {
     {
 #pragma omp single
       {
-	bar();
+        bar();
       }
     }
   }
@@ -15217,7 +15219,7 @@ void foo() {
   }
 #pragma omp target simd
   for (int i = 0; i < 10; ++i) {
-#pragma omp atomic // expected-error {{OpenMP constructs may not be nested inside a simd region}}
+#pragma omp atomic // omp45-error {{OpenMP constructs may not be nested inside a simd region}}
     ++a;
   }
 #pragma omp target simd
@@ -15317,7 +15319,7 @@ void foo() {
   }
 
 // TEAMS DISTRIBUTE DIRECTIVE
-#pragma omp teams distribute // expected-error {{orphaned 'omp teams distribute' directives are prohibited; perhaps you forget to enclose the directive into a target region?}}
+#pragma omp teams distribute // omp45-error {{orphaned 'omp teams distribute' directives are prohibited; perhaps you forget to enclose the directive into a target region?}}
   for (int i = 0; i < 10; ++i)
     ;
 #pragma omp target
@@ -15409,7 +15411,7 @@ void foo() {
     {
 #pragma omp single
       {
-	bar();
+        bar();
       }
     }
   }
@@ -15600,7 +15602,7 @@ void foo() {
   }
 
 // TEAMS DISTRIBUTE SIMD DIRECTIVE
-#pragma omp teams distribute simd // expected-error {{orphaned 'omp teams distribute simd' directives are prohibited; perhaps you forget to enclose the directive into a target region?}}
+#pragma omp teams distribute simd // omp45-error {{orphaned 'omp teams distribute simd' directives are prohibited; perhaps you forget to enclose the directive into a target region?}}
   for (int i = 0; i < 10; ++i)
     ;
 #pragma omp target
@@ -15627,7 +15629,7 @@ void foo() {
 #pragma omp target
 #pragma omp teams distribute simd
   for (int i = 0; i < 10; ++i) {
-#pragma omp simd // expected-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}
+#pragma omp simd // omp45-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}
     for (int i = 0; i < 10; ++i)
       ;
   }
@@ -15692,7 +15694,7 @@ void foo() {
     {
 #pragma omp single
       {
-	bar();
+        bar();
       }
     }
   }
@@ -15759,7 +15761,7 @@ void foo() {
 #pragma omp target
 #pragma omp teams distribute simd
   for (int i = 0; i < 10; ++i) {
-#pragma omp atomic // expected-error {{OpenMP constructs may not be nested inside a simd region}}
+#pragma omp atomic // omp45-error {{OpenMP constructs may not be nested inside a simd region}}
     ++a;
   }
 #pragma omp target
@@ -15883,7 +15885,7 @@ void foo() {
   }
 
 // TEAMS DISTRIBUTE PARALLEL FOR SIMD DIRECTIVE
-#pragma omp teams distribute parallel for simd // expected-error {{orphaned 'omp teams distribute parallel for simd' directives are prohibited; perhaps you forget to enclose the directive into a target region?}}
+#pragma omp teams distribute parallel for simd // omp45-error {{orphaned 'omp teams distribute parallel for simd' directives are prohibited; perhaps you forget to enclose the directive into a target region?}}
   for (int i = 0; i < 10; ++i)
     ;
 #pragma omp target
@@ -15910,7 +15912,7 @@ void foo() {
 #pragma omp target
 #pragma omp teams distribute parallel for simd
   for (int i = 0; i < 10; ++i) {
-#pragma omp simd // expected-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}
+#pragma omp simd // omp45-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}
     for (int i = 0; i < 10; ++i)
       ;
   }
@@ -15975,7 +15977,7 @@ void foo() {
     {
 #pragma omp single
       {
-	bar();
+        bar();
       }
     }
   }
@@ -16042,7 +16044,7 @@ void foo() {
 #pragma omp target
 #pragma omp teams distribute parallel for simd
   for (int i = 0; i < 10; ++i) {
-#pragma omp atomic // expected-error {{OpenMP constructs may not be nested inside a simd region}}
+#pragma omp atomic // omp45-error {{OpenMP constructs may not be nested inside a simd region}}
     ++a;
   }
 #pragma omp target
@@ -16166,7 +16168,7 @@ void foo() {
   }
 
 // TEAMS DISTRIBUTE PARALLEL FOR DIRECTIVE
-#pragma omp teams distribute parallel for // expected-error {{orphaned 'omp teams distribute parallel for' directives are prohibited; perhaps you forget to enclose the directive into a target region?}}
+#pragma omp teams distribute parallel for // omp45-error {{orphaned 'omp teams distribute parallel for' directives are prohibited; perhaps you forget to enclose the directive into a target region?}}
   for (int i = 0; i < 10; ++i)
     ;
 #pragma omp target
@@ -16258,7 +16260,7 @@ void foo() {
     {
 #pragma omp single
       {
-	bar();
+        bar();
       }
     }
   }
@@ -16589,7 +16591,7 @@ void foo() {
     ;
 #pragma omp distribute parallel for
   for (int j = 0; j < 10; ++j)
-    ;  
+    ;
   }
 #pragma omp target teams
   {
@@ -16598,7 +16600,7 @@ void foo() {
     ;
 #pragma omp distribute parallel for simd
   for (int j = 0; j < 10; ++j)
-    ;  
+    ;
   }
 #pragma omp target teams
   {
@@ -16607,7 +16609,7 @@ void foo() {
     ;
 #pragma omp distribute simd
   for (int j = 0; j < 10; ++j)
-    ;  
+    ;
   }
 #pragma omp target teams
   {
@@ -16750,7 +16752,7 @@ void foo() {
     {
 #pragma omp single
       {
-	bar();
+        bar();
       }
     }
   }
@@ -16993,7 +16995,7 @@ void foo() {
     {
 #pragma omp single
       {
-	bar();
+        bar();
       }
     }
   }
@@ -17179,7 +17181,7 @@ void foo() {
   }
 #pragma omp target teams distribute parallel for simd
   for (int i = 0; i < 10; ++i) {
-#pragma omp simd // expected-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}
+#pragma omp simd // omp45-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}
     for (int i = 0; i < 10; ++i)
       ;
   }
@@ -17236,7 +17238,7 @@ void foo() {
     {
 #pragma omp single
       {
-	bar();
+        bar();
       }
     }
   }
@@ -17293,7 +17295,7 @@ void foo() {
   }
 #pragma omp target teams distribute parallel for simd
   for (int i = 0; i < 10; ++i) {
-#pragma omp atomic // expected-error {{OpenMP constructs may not be nested inside a simd region}}OK
+#pragma omp atomic // omp45-error {{OpenMP constructs may not be nested inside a simd region}}OK
     ++a;
   }
 #pragma omp target teams distribute parallel for simd
@@ -17422,7 +17424,7 @@ void foo() {
   }
 #pragma omp target teams distribute simd
   for (int i = 0; i < 10; ++i) {
-#pragma omp simd // expected-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}
+#pragma omp simd // omp45-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}
     for (int i = 0; i < 10; ++i)
       ;
   }
@@ -17479,7 +17481,7 @@ void foo() {
     {
 #pragma omp single
       {
-	bar();
+        bar();
       }
     }
   }
@@ -17536,7 +17538,7 @@ void foo() {
   }
 #pragma omp target teams distribute simd
   for (int i = 0; i < 10; ++i) {
-#pragma omp atomic // expected-error {{OpenMP constructs may not be nested inside a simd region}}OK
+#pragma omp atomic // omp45-error {{OpenMP constructs may not be nested inside a simd region}}OK
     ++a;
   }
 #pragma omp target teams distribute simd


        


More information about the cfe-commits mailing list