[clang] Adding support for iterator in motion clauses. (PR #159112)

Alexey Bataev via cfe-commits cfe-commits at lists.llvm.org
Fri Nov 14 06:47:52 PST 2025


================
@@ -4925,19 +4925,30 @@ bool Parser::ParseOpenMPVarList(OpenMPDirectiveKind DKind,
         break;
       Data.MotionModifiers.push_back(Modifier);
       Data.MotionModifiersLoc.push_back(Tok.getLocation());
-      ConsumeToken();
-      if (Modifier == OMPC_MOTION_MODIFIER_mapper) {
-        IsInvalidMapperModifier = parseMapperModifier(Data);
-        if (IsInvalidMapperModifier)
+      if (PP.getSpelling(Tok) == "iterator" && getLangOpts().OpenMP >= 51) {
+        ExprResult Tail;
+        EnterScope(Scope::OpenMPDirectiveScope | Scope::DeclScope);
+        Tail = ParseOpenMPIteratorsExpr();
+        Tail = Actions.ActOnFinishFullExpr(Tail.get(), T.getOpenLocation(),
+                                           /*DiscardedValue=*/false);
+        if (Tail.isUsable()) {
+          Data.IteratorExpr = Tail.get();
+        }
----------------
alexey-bataev wrote:

Drop braces

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


More information about the cfe-commits mailing list