clang 19.0.0git
Classes | Public Member Functions | List of all members
clang::SemaOpenACC Class Reference

#include "clang/Sema/SemaOpenACC.h"

Inheritance diagram for clang::SemaOpenACC:
Inheritance graph
[legend]

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)
 
OpenACCClauseActOnClause (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)
 
ASTContextgetASTContext () const
 
DiagnosticsEnginegetDiagnostics () const
 
const LangOptionsgetLangOpts () 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
SemaSemaRef
 

Detailed Description

Definition at line 27 of file SemaOpenACC.h.

Constructor & Destructor Documentation

◆ SemaOpenACC()

SemaOpenACC::SemaOpenACC ( Sema S)

Definition at line 142 of file SemaOpenACC.cpp.

Member Function Documentation

◆ ActOnArraySectionExpr()

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().

◆ ActOnAssociatedStmt()

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().

◆ ActOnClause()

OpenACCClause * SemaOpenACC::ActOnClause ( ArrayRef< const OpenACCClause * >  ExistingClauses,
OpenACCParsedClause Clause 
)

◆ ActOnConstruct()

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.

◆ ActOnEndDeclDirective()

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.

◆ ActOnEndStmtDirective()

StmtResult SemaOpenACC::ActOnEndStmtDirective ( OpenACCDirectiveKind  K,
SourceLocation  StartLoc,
SourceLocation  EndLoc,
ArrayRef< OpenACCClause * >  Clauses,
StmtResult  AssocStmt 
)

◆ ActOnIntExpr()

ExprResult SemaOpenACC::ActOnIntExpr ( OpenACCDirectiveKind  DK,
OpenACCClauseKind  CK,
SourceLocation  Loc,
Expr IntExpr 
)

◆ ActOnStartDeclDirective()

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.

◆ ActOnStartStmtDirective()

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.

◆ ActOnVar()

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().


The documentation for this class was generated from the following files: