================
@@ -5080,6 +5080,55 @@ bool Parser::ParseOpenMPVarList(OpenMPDirectiveKind 
DKind,
           Diag(Tok, diag::err_modifier_expected_colon) << "fallback";
       }
     }
+  } // Handle num_teams clause with optional lower-bound:upper-bound syntax
+  if (Kind == OMPC_num_teams && !Tok.is(tok::r_paren) &&
+      !Tok.is(tok::annot_pragma_openmp_end)) {
+    // Look ahead to detect top-level colon
+    TentativeParsingAction TPA(*this);
+    bool HasColon = false;
+    int Depth = 0;
+
+    while (!Tok.is(tok::annot_pragma_openmp_end)) {
+      if (Tok.is(tok::l_paren))
+        Depth++;
----------------
alexey-bataev wrote:

Why do you need to track parens here? I think, it also should be handled by 
expression parsing

https://github.com/llvm/llvm-project/pull/180608
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to