[flang-commits] [flang] [llvm] [flang][OpenMP] Track reachable metadirective replacements (PR #219014)
via flang-commits
flang-commits at lists.llvm.org
Fri Sep 11 22:52:30 PDT 2026
================
@@ -269,17 +270,19 @@ isVariantApplicableInContextHelper(const VariantMatchInfo &VMI,
TraitSet::construct &&
"Variant context is ill-formed!");
- // Verify the nesting.
+ // Verify the nesting. A failed match in match_any or match_none must not
+ // consume the remaining context, since a later selector property can
+ // still match.
+ unsigned SearchStart = ConstructIdx;
bool FoundInOrder = false;
while (!FoundInOrder && ConstructIdx != NoConstructTraits)
FoundInOrder = (Ctx.ConstructTraits[ConstructIdx++] == Property);
- if (ConstructMatches)
+ if (!FoundInOrder && MK != MK_ALL)
+ ConstructIdx = SearchStart;
+ if (ConstructMatches && FoundInOrder)
----------------
MattPD wrote:
Confirmed: The original repeated-PARALLEL case now gives the required COLLAPSE diagnostic.
https://github.com/llvm/llvm-project/pull/219014
More information about the flang-commits
mailing list