Author: Krzysztof Parzyszek
Date: 2026-09-21T13:51:12-05:00
New Revision: b0d31f40189dbdcf8b62e2c6ef79b039c5202aba

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

LOG: [clang][OpenMP] ORDERED clause is allowed on FOR in 4.5+ (#225106)

Several compound directives containing FOR were missing the ORDERED
clause in the set of allowed (once) clauses.

Added: 
    

Modified: 
    clang/test/OpenMP/distribute_parallel_for_simd_loop_messages.cpp
    clang/test/OpenMP/target_teams_distribute_parallel_for_loop_messages.cpp
    clang/test/OpenMP/target_teams_distribute_parallel_for_messages.cpp
    
clang/test/OpenMP/target_teams_distribute_parallel_for_simd_loop_messages.cpp
    clang/test/OpenMP/target_teams_distribute_parallel_for_simd_messages.cpp
    clang/test/OpenMP/teams_distribute_parallel_for_loop_messages.cpp
    clang/test/OpenMP/teams_distribute_parallel_for_messages.cpp
    clang/test/OpenMP/teams_distribute_parallel_for_simd_loop_messages.cpp
    clang/test/OpenMP/teams_distribute_parallel_for_simd_messages.cpp
    llvm/include/llvm/Frontend/OpenMP/OMP.td

Removed: 
    


################################################################################
diff  --git a/clang/test/OpenMP/distribute_parallel_for_simd_loop_messages.cpp 
b/clang/test/OpenMP/distribute_parallel_for_simd_loop_messages.cpp
index 8195ed655f858..d9781482924d8 100644
--- a/clang/test/OpenMP/distribute_parallel_for_simd_loop_messages.cpp
+++ b/clang/test/OpenMP/distribute_parallel_for_simd_loop_messages.cpp
@@ -805,7 +805,7 @@ void test_loop_firstprivate_lastprivate() {
 void test_ordered() {
 #pragma omp target
 #pragma omp teams
-#pragma omp distribute parallel for simd ordered // expected-error 
{{unexpected OpenMP clause 'ordered' in directive '#pragma omp distribute 
parallel for simd'}}
+#pragma omp distribute parallel for simd ordered // OK
   for (int i = 0; i < 16; ++i)
     ;
 }

diff  --git 
a/clang/test/OpenMP/target_teams_distribute_parallel_for_loop_messages.cpp 
b/clang/test/OpenMP/target_teams_distribute_parallel_for_loop_messages.cpp
index 6e023066e2367..63126e4836956 100644
--- a/clang/test/OpenMP/target_teams_distribute_parallel_for_loop_messages.cpp
+++ b/clang/test/OpenMP/target_teams_distribute_parallel_for_loop_messages.cpp
@@ -616,7 +616,7 @@ void test_loop_firstprivate_lastprivate() {
 }
 
 void test_ordered() {
-#pragma omp target teams distribute parallel for ordered // expected-error 
{{unexpected OpenMP clause 'ordered' in directive '#pragma omp target teams 
distribute parallel for'}}
+#pragma omp target teams distribute parallel for ordered // OK
   for (int i = 0; i < 16; ++i)
     ;
 }

diff  --git 
a/clang/test/OpenMP/target_teams_distribute_parallel_for_messages.cpp 
b/clang/test/OpenMP/target_teams_distribute_parallel_for_messages.cpp
index b0ec2ba12f234..6ce13d7c35486 100644
--- a/clang/test/OpenMP/target_teams_distribute_parallel_for_messages.cpp
+++ b/clang/test/OpenMP/target_teams_distribute_parallel_for_messages.cpp
@@ -98,7 +98,7 @@ int main(int argc, char **argv) {
 }
 
 void test_ordered() {
-#pragma omp target teams distribute parallel for ordered // expected-error 
{{unexpected OpenMP clause 'ordered' in directive '#pragma omp target teams 
distribute parallel for'}}
+#pragma omp target teams distribute parallel for ordered // OK
   for (int i = 0; i < 16; ++i)
     ;
 #pragma omp target teams distribute parallel for order // omp45-error 
{{unexpected OpenMP clause 'order' in directive '#pragma omp target teams 
distribute parallel for'}} expected-error {{expected '(' after 'order'}}

diff  --git 
a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_loop_messages.cpp 
b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_loop_messages.cpp
index 605f82adb3de1..b36d93f783490 100644
--- 
a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_loop_messages.cpp
+++ 
b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_loop_messages.cpp
@@ -621,7 +621,7 @@ void test_loop_firstprivate_lastprivate() {
 }
 
 void test_ordered() {
-#pragma omp target teams distribute parallel for simd ordered // 
expected-error {{unexpected OpenMP clause 'ordered' in directive '#pragma omp 
target teams distribute parallel for simd'}}
+#pragma omp target teams distribute parallel for simd ordered // OK
   for (int i = 0; i < 16; ++i)
     ;
 }

diff  --git 
a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_messages.cpp 
b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_messages.cpp
index 3de30c3f6386b..be6f139a64558 100644
--- a/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_messages.cpp
+++ b/clang/test/OpenMP/target_teams_distribute_parallel_for_simd_messages.cpp
@@ -95,7 +95,7 @@ int main(int argc, char **argv) {
 }
 
 void test_ordered() {
-#pragma omp target teams distribute parallel for simd ordered // 
expected-error {{unexpected OpenMP clause 'ordered' in directive '#pragma omp 
target teams distribute parallel for simd'}}
+#pragma omp target teams distribute parallel for simd ordered // OK
   for (int i = 0; i < 16; ++i)
     ;
 }

diff  --git a/clang/test/OpenMP/teams_distribute_parallel_for_loop_messages.cpp 
b/clang/test/OpenMP/teams_distribute_parallel_for_loop_messages.cpp
index 67e3ce4dc1577..04353c29682d2 100644
--- a/clang/test/OpenMP/teams_distribute_parallel_for_loop_messages.cpp
+++ b/clang/test/OpenMP/teams_distribute_parallel_for_loop_messages.cpp
@@ -704,7 +704,7 @@ void test_loop_firstprivate_lastprivate() {
 
 void test_ordered() {
 #pragma omp target
-#pragma omp teams distribute parallel for ordered // expected-error 
{{unexpected OpenMP clause 'ordered' in directive '#pragma omp teams distribute 
parallel for'}}
+#pragma omp teams distribute parallel for ordered // OK
   for (int i = 0; i < 16; ++i)
     ;
 }

diff  --git a/clang/test/OpenMP/teams_distribute_parallel_for_messages.cpp 
b/clang/test/OpenMP/teams_distribute_parallel_for_messages.cpp
index df75759bcda99..8f4ff0f84bd85 100644
--- a/clang/test/OpenMP/teams_distribute_parallel_for_messages.cpp
+++ b/clang/test/OpenMP/teams_distribute_parallel_for_messages.cpp
@@ -119,7 +119,7 @@ int main(int argc, char **argv) {
 
 void test_ordered() {
 #pragma omp target
-#pragma omp teams distribute parallel for ordered // expected-error 
{{unexpected OpenMP clause 'ordered' in directive '#pragma omp teams distribute 
parallel for'}}
+#pragma omp teams distribute parallel for ordered // OK
   for (int i = 0; i < 16; ++i)
     ;
 #pragma omp target

diff  --git 
a/clang/test/OpenMP/teams_distribute_parallel_for_simd_loop_messages.cpp 
b/clang/test/OpenMP/teams_distribute_parallel_for_simd_loop_messages.cpp
index 7ee8b9c9d367f..16a899c84cdd4 100644
--- a/clang/test/OpenMP/teams_distribute_parallel_for_simd_loop_messages.cpp
+++ b/clang/test/OpenMP/teams_distribute_parallel_for_simd_loop_messages.cpp
@@ -706,7 +706,7 @@ void test_loop_firstprivate_lastprivate() {
 
 void test_ordered() {
 #pragma omp target
-#pragma omp teams distribute parallel for simd ordered // expected-error 
{{unexpected OpenMP clause 'ordered' in directive '#pragma omp teams distribute 
parallel for simd'}}
+#pragma omp teams distribute parallel for simd ordered // OK
   for (int i = 0; i < 16; ++i)
     ;
 }

diff  --git a/clang/test/OpenMP/teams_distribute_parallel_for_simd_messages.cpp 
b/clang/test/OpenMP/teams_distribute_parallel_for_simd_messages.cpp
index a94f64b38df8e..9250f0492643f 100644
--- a/clang/test/OpenMP/teams_distribute_parallel_for_simd_messages.cpp
+++ b/clang/test/OpenMP/teams_distribute_parallel_for_simd_messages.cpp
@@ -119,7 +119,7 @@ int main(int argc, char **argv) {
 
 void test_ordered() {
 #pragma omp target
-#pragma omp teams distribute parallel for simd ordered // expected-error 
{{unexpected OpenMP clause 'ordered' in directive '#pragma omp teams distribute 
parallel for simd'}}
+#pragma omp teams distribute parallel for simd ordered // OK
   for (int i = 0; i < 16; ++i)
     ;
 }

diff  --git a/llvm/include/llvm/Frontend/OpenMP/OMP.td 
b/llvm/include/llvm/Frontend/OpenMP/OMP.td
index 285a17d48757a..8b86278188843 100644
--- a/llvm/include/llvm/Frontend/OpenMP/OMP.td
+++ b/llvm/include/llvm/Frontend/OpenMP/OMP.td
@@ -1623,6 +1623,7 @@ def OMP_DistributeParallelFor
     VersionedClause<OMPC_Message, 60>,
     VersionedClause<OMPC_NumThreads>,
     VersionedClause<OMPC_Order, 50>,
+    VersionedClause<OMPC_Ordered>,
     VersionedClause<OMPC_ProcBind>,
     VersionedClause<OMPC_Schedule>,
     VersionedClause<OMPC_Severity, 60>,
@@ -1654,6 +1655,7 @@ def OMP_DistributeParallelForSimd
     VersionedClause<OMPC_Message, 60>,
     VersionedClause<OMPC_NumThreads>,
     VersionedClause<OMPC_Order, 50>,
+    VersionedClause<OMPC_Ordered>,
     VersionedClause<OMPC_ProcBind>,
     VersionedClause<OMPC_SafeLen>,
     VersionedClause<OMPC_Schedule>,
@@ -2687,6 +2689,7 @@ def OMP_TargetTeamsDistributeParallelFor
     VersionedClause<OMPC_NumThreads>,
     VersionedClause<OMPC_OMPX_DynCGroupMem>,
     VersionedClause<OMPC_Order, 50>,
+    VersionedClause<OMPC_Ordered>,
     VersionedClause<OMPC_ProcBind>,
     VersionedClause<OMPC_Schedule>,
     VersionedClause<OMPC_Severity, 60>,
@@ -2730,6 +2733,7 @@ def OMP_TargetTeamsDistributeParallelForSimd
     VersionedClause<OMPC_NumThreads>,
     VersionedClause<OMPC_OMPX_DynCGroupMem>,
     VersionedClause<OMPC_Order, 50>,
+    VersionedClause<OMPC_Ordered>,
     VersionedClause<OMPC_ProcBind>,
     VersionedClause<OMPC_SafeLen>,
     VersionedClause<OMPC_Schedule>,
@@ -2985,6 +2989,7 @@ def OMP_TeamsDistributeParallelFor
     VersionedClause<OMPC_NumTeams>,
     VersionedClause<OMPC_NumThreads>,
     VersionedClause<OMPC_Order, 50>,
+    VersionedClause<OMPC_Ordered>,
     VersionedClause<OMPC_ProcBind>,
     VersionedClause<OMPC_Schedule>,
     VersionedClause<OMPC_Severity, 60>,
@@ -3018,6 +3023,7 @@ def OMP_TeamsDistributeParallelForSimd
     VersionedClause<OMPC_NumTeams>,
     VersionedClause<OMPC_NumThreads>,
     VersionedClause<OMPC_Order, 50>,
+    VersionedClause<OMPC_Ordered>,
     VersionedClause<OMPC_ProcBind>,
     VersionedClause<OMPC_SafeLen>,
     VersionedClause<OMPC_Schedule>,


        
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to