[clang] [OpenACC] Implement Sema work for OpenACC Clauses (PR #87821)

Erich Keane via cfe-commits cfe-commits at lists.llvm.org
Mon Apr 8 07:38:54 PDT 2024


================
@@ -82,22 +119,22 @@ bool SemaOpenACC::ActOnStartStmtDirective(OpenACCDirectiveKind K,
   return diagnoseConstructAppertainment(*this, K, StartLoc, /*IsStmt=*/true);
 }
 
-StmtResult SemaOpenACC::ActOnEndStmtDirective(OpenACCDirectiveKind K,
-                                              SourceLocation StartLoc,
-                                              SourceLocation EndLoc,
-                                              StmtResult AssocStmt) {
+StmtResult SemaOpenACC::ActOnEndStmtDirective(
+    OpenACCDirectiveKind K, SourceLocation StartLoc, SourceLocation EndLoc,
+    MutableArrayRef<OpenACCClause *> Clauses, StmtResult AssocStmt) {
----------------
erichkeane wrote:

The result of these changes is that the 'DestroyUnusedClauses' can no longer set the values to `nullptr`, and also 'deleting' stuff that were passed by an ArrayRef.  

This is actually ALSO causing me to think we should be passing this as an llvm::SmallVector (and moving it into here!) to make it clear that this function is stealing the 'ownership' of these things.  WDYT?

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


More information about the cfe-commits mailing list