[llvm] b0d31f4 - [clang][OpenMP] ORDERED clause is allowed on FOR in 4.5+ (#225106)

via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 21 11:51:20 PDT 2026


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>,


        


More information about the llvm-commits mailing list