[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