[clang] [Clang][OpenMP] Fixing Clang error for metadirective with multiple when clauses and no otherwise (PR #148583)

via cfe-commits cfe-commits at lists.llvm.org
Thu Jul 24 00:25:28 PDT 2025


================
@@ -108,6 +108,12 @@ void foo1(void) {
 						    : parallel) otherwise(parallel for)
   for (int i=0; i<10; i++)
     ;
+
+#pragma omp metadirective when(user = {condition(1)}              \
+                               : parallel for) when(implementation = {extension(match_none)} \
+                                                    : parallel)
+  for (int i=0; i<10; i++)
+    ;
----------------
Ritanya-B-Bharadwaj wrote:

Since there's no IR change involved and the bug occurs during parsing, I think it's appropriate to keep the test in the messages lit test. 
Also the issue being fixed here affects metadirectives that use non-constant conditions, like condition(x), where x is a variable or identifier. It doesn't occur with simple constants like condition(0) or condition(1).

https://github.com/llvm/llvm-project/pull/148583


More information about the cfe-commits mailing list