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

Zahira Ammarguellat via cfe-commits cfe-commits at lists.llvm.org
Mon Jul 21 06:39:17 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++)
+    ;
----------------
zahiraam wrote:

I would suggest adding this:
`  #pragma omp metadirective when(user = {condition(0)}  \`
  `              : parallel for) when(user = {condition(0)} \`
  `              : target teams distribute parallel for)`
   `   for (int i = 0; i < 100; i++)`
  `      ;`

to `OpenMP/metadirective_otherwise.cpp` instead. You will need to edit the IR generated. 

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


More information about the cfe-commits mailing list