================ @@ -2013,6 +2064,184 @@ class OMPMergeableClause : public OMPClause { } }; +/// This represents the 'absent' clause in the '#pragma omp assume' +/// directive. +/// +/// \code +/// #pragma omp assume absent(<directive-name list>) +/// \endcode +/// In this example directive '#pragma omp assume' has an 'absent' clause. +class OMPAbsentClause final + : public OMPDirectiveListClause<OMPAbsentClause>, + private llvm::TrailingObjects<OMPAbsentClause, OpenMPDirectiveKind> { + friend OMPDirectiveListClause; + friend TrailingObjects; + +public: + /// Build 'absent' clause. + /// + /// \param StartLoc Starting location of the clause. + /// \param LParenLoc Location of '('. + /// \param EndLoc Ending location of the clause. + /// \param NumKinds Number of directive kinds listed in the clause. + OMPAbsentClause(SourceLocation StartLoc, SourceLocation LParenLoc, + SourceLocation EndLoc, unsigned NumKinds) + : OMPDirectiveListClause<OMPAbsentClause>( + llvm::omp::OMPC_absent, StartLoc, LParenLoc, EndLoc, NumKinds) {} + + /// Build an empty clause. + OMPAbsentClause(unsigned NumKinds) + : OMPDirectiveListClause<OMPAbsentClause>( + llvm::omp::OMPC_absent, SourceLocation(), SourceLocation(), + SourceLocation(), NumKinds) {} + ---------------- alexey-bataev wrote:
These constructions must be private/protected https://github.com/llvm/llvm-project/pull/92731 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits