clang 19.0.0git
|
#include "clang/Sema/SemaOpenACC.h"
Classes | |
class | OpenACCParsedClause |
A type to represent all the data for an OpenACC Clause that has been parsed, but not yet created/semantically analyzed. More... | |
Public Member Functions | |
SemaOpenACC (Sema &S) | |
OpenACCClause * | ActOnClause (ArrayRef< const OpenACCClause * > ExistingClauses, OpenACCParsedClause &Clause) |
Called after parsing an OpenACC Clause so that it can be checked. | |
void | ActOnConstruct (OpenACCDirectiveKind K, SourceLocation StartLoc) |
Called after the construct has been parsed, but clauses haven't been parsed. | |
bool | ActOnStartStmtDirective (OpenACCDirectiveKind K, SourceLocation StartLoc) |
Called after the directive, including its clauses, have been parsed and parsing has consumed the 'annot_pragma_openacc_end' token. | |
bool | ActOnStartDeclDirective (OpenACCDirectiveKind K, SourceLocation StartLoc) |
Called after the directive, including its clauses, have been parsed and parsing has consumed the 'annot_pragma_openacc_end' token. | |
StmtResult | ActOnAssociatedStmt (OpenACCDirectiveKind K, StmtResult AssocStmt) |
Called when we encounter an associated statement for our construct, this should check legality of the statement as it appertains to this Construct. | |
StmtResult | ActOnEndStmtDirective (OpenACCDirectiveKind K, SourceLocation StartLoc, SourceLocation EndLoc, ArrayRef< OpenACCClause * > Clauses, StmtResult AssocStmt) |
Called after the directive has been completely parsed, including the declaration group or associated statement. | |
DeclGroupRef | ActOnEndDeclDirective () |
Called after the directive has been completely parsed, including the declaration group or associated statement. | |
ExprResult | ActOnIntExpr (OpenACCDirectiveKind DK, OpenACCClauseKind CK, SourceLocation Loc, Expr *IntExpr) |
Called when encountering an 'int-expr' for OpenACC, and manages conversions and diagnostics to 'int'. | |
ExprResult | ActOnVar (Expr *VarExpr) |
Called when encountering a 'var' for OpenACC, ensures it is actually a declaration reference to a variable of the correct type. | |
ExprResult | ActOnArraySectionExpr (Expr *Base, SourceLocation LBLoc, Expr *LowerBound, SourceLocation ColonLocFirst, Expr *Length, SourceLocation RBLoc) |
Checks and creates an Array Section used in an OpenACC construct/clause. | |
Public Member Functions inherited from clang::SemaBase | |
SemaBase (Sema &S) | |
ASTContext & | getASTContext () const |
DiagnosticsEngine & | getDiagnostics () const |
const LangOptions & | getLangOpts () const |
SemaDiagnosticBuilder | Diag (SourceLocation Loc, unsigned DiagID, bool DeferHint=false) |
Emit a diagnostic. | |
SemaDiagnosticBuilder | Diag (SourceLocation Loc, const PartialDiagnostic &PD, bool DeferHint=false) |
Emit a partial diagnostic. | |
Additional Inherited Members | |
Public Attributes inherited from clang::SemaBase | |
Sema & | SemaRef |
Definition at line 27 of file SemaOpenACC.h.
SemaOpenACC::SemaOpenACC | ( | Sema & | S | ) |
Definition at line 142 of file SemaOpenACC.cpp.
ExprResult SemaOpenACC::ActOnArraySectionExpr | ( | Expr * | Base, |
SourceLocation | LBLoc, | ||
Expr * | LowerBound, | ||
SourceLocation | ColonLocFirst, | ||
Expr * | Length, | ||
SourceLocation | RBLoc | ||
) |
Checks and creates an Array Section used in an OpenACC construct/clause.
Definition at line 499 of file SemaOpenACC.cpp.
References clang::ASTContext::ArraySectionTy, clang::SemaBase::getASTContext(), clang::OK_Ordinary, and clang::VK_LValue.
Referenced by clang::Sema::ActOnArraySubscriptExpr(), and clang::TreeTransform< Derived >::RebuildArraySectionExpr().
StmtResult SemaOpenACC::ActOnAssociatedStmt | ( | OpenACCDirectiveKind | K, |
StmtResult | AssocStmt | ||
) |
Called when we encounter an associated statement for our construct, this should check legality of the statement as it appertains to this Construct.
Definition at line 540 of file SemaOpenACC.cpp.
References clang::Kernels, clang::Parallel, and clang::Serial.
Referenced by clang::Parser::ParseOpenACCDirectiveStmt().
OpenACCClause * SemaOpenACC::ActOnClause | ( | ArrayRef< const OpenACCClause * > | ExistingClauses, |
OpenACCParsedClause & | Clause | ||
) |
Called after parsing an OpenACC Clause so that it can be checked.
Definition at line 145 of file SemaOpenACC.cpp.
References clang::OpenACCDefaultClause::Create(), clang::OpenACCNumGangsClause::Create(), clang::OpenACCPrivateClause::Create(), clang::OpenACCIfClause::Create(), clang::OpenACCSelfClause::Create(), clang::OpenACCNumWorkersClause::Create(), clang::OpenACCVectorLengthClause::Create(), clang::Default, clang::SemaBase::Diag(), clang::SemaBase::getASTContext(), clang::SemaOpenACC::OpenACCParsedClause::getBeginLoc(), clang::SemaOpenACC::OpenACCParsedClause::getClauseKind(), clang::SemaOpenACC::OpenACCParsedClause::getConditionExpr(), clang::SemaOpenACC::OpenACCParsedClause::getDefaultClauseKind(), clang::SemaOpenACC::OpenACCParsedClause::getDirectiveKind(), clang::SemaOpenACC::OpenACCParsedClause::getEndLoc(), clang::SemaOpenACC::OpenACCParsedClause::getIntExprs(), clang::SemaOpenACC::OpenACCParsedClause::getLParenLoc(), clang::SemaOpenACC::OpenACCParsedClause::getVarList(), clang::If, clang::Invalid, clang::isOpenACCComputeDirectiveKind(), clang::NumGangs, clang::NumWorkers, clang::Parallel, clang::ParallelLoop, clang::Private, clang::Self, and clang::VectorLength.
void SemaOpenACC::ActOnConstruct | ( | OpenACCDirectiveKind | K, |
SourceLocation | StartLoc | ||
) |
Called after the construct has been parsed, but clauses haven't been parsed.
This allows us to diagnose not-implemented, as well as set up any state required for parsing the clauses.
Definition at line 342 of file SemaOpenACC.cpp.
References clang::SemaBase::Diag(), clang::Invalid, clang::Kernels, clang::Parallel, and clang::Serial.
DeclGroupRef SemaOpenACC::ActOnEndDeclDirective | ( | ) |
Called after the directive has been completely parsed, including the declaration group or associated statement.
Definition at line 567 of file SemaOpenACC.cpp.
StmtResult SemaOpenACC::ActOnEndStmtDirective | ( | OpenACCDirectiveKind | K, |
SourceLocation | StartLoc, | ||
SourceLocation | EndLoc, | ||
ArrayRef< OpenACCClause * > | Clauses, | ||
StmtResult | AssocStmt | ||
) |
Called after the directive has been completely parsed, including the declaration group or associated statement.
Definition at line 519 of file SemaOpenACC.cpp.
References clang::OpenACCComputeConstruct::Create(), clang::ActionResult< PtrTy, Compress >::get(), clang::SemaBase::getASTContext(), clang::Invalid, clang::ActionResult< PtrTy, Compress >::isUsable(), clang::Kernels, clang::Parallel, clang::Serial, clang::StmtEmpty(), and clang::StmtError().
Referenced by clang::Parser::ParseOpenACCDirectiveStmt(), and clang::TreeTransform< Derived >::RebuildOpenACCComputeConstruct().
ExprResult SemaOpenACC::ActOnIntExpr | ( | OpenACCDirectiveKind | DK, |
OpenACCClauseKind | CK, | ||
SourceLocation | Loc, | ||
Expr * | IntExpr | ||
) |
Called when encountering an 'int-expr' for OpenACC, and manages conversions and diagnostics to 'int'.
Definition at line 363 of file SemaOpenACC.cpp.
References clang::SemaBase::Diag(), clang::ExprError(), clang::ActionResult< PtrTy, Compress >::get(), clang::Decl::getLocation(), clang::Stmt::getSourceRange(), clang::Expr::getType(), clang::Invalid, clang::Type::isEnumeralType(), clang::Type::isIntegerType(), clang::ActionResult< PtrTy, Compress >::isInvalid(), clang::Expr::isTypeDependent(), clang::ast_matchers::match(), clang::Sema::PerformContextualImplicitConversion(), clang::SemaBase::SemaRef, and clang::T.
bool SemaOpenACC::ActOnStartDeclDirective | ( | OpenACCDirectiveKind | K, |
SourceLocation | StartLoc | ||
) |
Called after the directive, including its clauses, have been parsed and parsing has consumed the 'annot_pragma_openacc_end' token.
This DOES happen before any associated declarations or statements have been parsed. This function is only called when we are parsing a 'Decl' context.
Definition at line 562 of file SemaOpenACC.cpp.
bool SemaOpenACC::ActOnStartStmtDirective | ( | OpenACCDirectiveKind | K, |
SourceLocation | StartLoc | ||
) |
Called after the directive, including its clauses, have been parsed and parsing has consumed the 'annot_pragma_openacc_end' token.
This DOES happen before any associated declarations or statements have been parsed. This function is only called when we are parsing a 'statement' context.
Definition at line 514 of file SemaOpenACC.cpp.
ExprResult SemaOpenACC::ActOnVar | ( | Expr * | VarExpr | ) |
Called when encountering a 'var' for OpenACC, ensures it is actually a declaration reference to a variable of the correct type.
Definition at line 453 of file SemaOpenACC.cpp.
References clang::SemaBase::Diag(), clang::ExprError(), clang::Expr::getExprLoc(), and clang::Expr::IgnoreParenImpCasts().