================
@@ -156,6 +156,64 @@ class OpenACCSelfClause : public 
OpenACCClauseWithCondition {
                                    Expr *ConditionExpr, SourceLocation EndLoc);
 };
 
+/// Represents one of a handful of classes that have integer expressions.
+/// Semantically, many only permit a single expression, with a few that permit
+/// up to 3.
+class OpenACCClauseWithIntExprs : public OpenACCClauseWithParams {
+  llvm::SmallVector<Expr *> IntExprs;
----------------
erichkeane wrote:

There are OTHER clauses coming in the future that use multiple `Exprs`, so I'm 
designing the class hierarchy to handle that as well.  The intent is for THIS 
class to be the base for all that have `IntExprs`, but the one I am 
implementing NOW is only a 'single' Expr*.

So my intent is that I WILL use the trailing-storage on the ones that take 
multiples (and have now done the changes so that will be possible, by making 
this an arrayref), but as an optimization, just use a DataMember for the 
'special cases' where there is only 1.

https://github.com/llvm/llvm-project/pull/89151
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to