clang
3.7.0
|
This represents '#pragma omp atomic' directive. More...
#include <StmtOpenMP.h>
Public Member Functions | |
Expr * | getX () |
Get 'x' part of the associated expression/statement. More... | |
const Expr * | getX () const |
Expr * | getUpdateExpr () |
Get helper expression of the form 'OpaqueValueExpr(x) binop OpaqueValueExpr(expr)' or 'OpaqueValueExpr(expr) binop OpaqueValueExpr(x)'. More... | |
const Expr * | getUpdateExpr () const |
bool | isXLHSInRHSPart () const |
Return true if helper update expression has form 'OpaqueValueExpr(x) binop OpaqueValueExpr(expr)' and false if it has form 'OpaqueValueExpr(expr) binop OpaqueValueExpr(x)'. More... | |
bool | isPostfixUpdate () const |
Return true if 'v' expression must be updated to original value of 'x', false if 'v' must be updated to the new value of 'x'. More... | |
Expr * | getV () |
Get 'v' part of the associated expression/statement. More... | |
const Expr * | getV () const |
Expr * | getExpr () |
Get 'expr' part of the associated expression/statement. More... | |
const Expr * | getExpr () const |
![]() | |
template<typename Fn > | |
filtered_clause_iterator< Fn > | getFilteredClauses (Fn &&fn) const |
filtered_clause_iterator < ClauseKindFilter > | getClausesOfKind (OpenMPClauseKind Kind) const |
const OMPClause * | getSingleClause (OpenMPClauseKind K) const |
Gets a single clause of the specified kind K associated with the current directive iff there is only one clause of this kind (and assertion is fired if there is more than one clause is associated with the directive). Returns nullptr if no clause of kind K is associated with the directive. More... | |
SourceLocation | getLocStart () const |
Returns starting location of directive kind. More... | |
SourceLocation | getLocEnd () const |
Returns ending location of directive. More... | |
void | setLocStart (SourceLocation Loc) |
Set starting location of directive kind. More... | |
void | setLocEnd (SourceLocation Loc) |
Set ending location of directive. More... | |
unsigned | getNumClauses () const |
Get number of clauses. More... | |
OMPClause * | getClause (unsigned i) const |
Returns specified clause. More... | |
bool | hasAssociatedStmt () const |
Returns true if directive has associated statement. More... | |
Stmt * | getAssociatedStmt () const |
Returns statement associated with the directive. More... | |
OpenMPDirectiveKind | getDirectiveKind () const |
child_range | children () |
ArrayRef< OMPClause * > | clauses () |
ArrayRef< OMPClause * > | clauses () const |
Static Public Member Functions | |
static OMPAtomicDirective * | Create (const ASTContext &C, SourceLocation StartLoc, SourceLocation EndLoc, ArrayRef< OMPClause * > Clauses, Stmt *AssociatedStmt, Expr *X, Expr *V, Expr *E, Expr *UE, bool IsXLHSInRHSPart, bool IsPostfixUpdate) |
Creates directive with a list of Clauses and 'x', 'v' and 'expr' parts of the atomic construct (see Section 2.12.6, atomic Construct, for detailed description of 'x', 'v' and 'expr'). More... | |
static OMPAtomicDirective * | CreateEmpty (const ASTContext &C, unsigned NumClauses, EmptyShell) |
Creates an empty directive with the place for NumClauses clauses. More... | |
static bool | classof (const Stmt *T) |
![]() | |
static bool | classof (const Stmt *S) |
Friends | |
class | ASTStmtReader |
Additional Inherited Members | |
![]() | |
template<typename T > | |
OMPExecutableDirective (const T *, StmtClass SC, OpenMPDirectiveKind K, SourceLocation StartLoc, SourceLocation EndLoc, unsigned NumClauses, unsigned NumChildren) | |
Build instance of directive of class K. More... | |
void | setClauses (ArrayRef< OMPClause * > Clauses) |
Sets the list of variables for this clause. More... | |
void | setAssociatedStmt (Stmt *S) |
Set the associated statement for the directive. More... | |
This represents '#pragma omp atomic' directive.
In this example directive '#pragma omp atomic' has clause 'capture'.
Definition at line 1637 of file StmtOpenMP.h.
Definition at line 1758 of file StmtOpenMP.h.
|
static |
Creates directive with a list of Clauses and 'x', 'v' and 'expr' parts of the atomic construct (see Section 2.12.6, atomic Construct, for detailed description of 'x', 'v' and 'expr').
C | AST context. |
StartLoc | Starting location of the directive kind. |
EndLoc | Ending Location of the directive. |
Clauses | List of clauses. |
AssociatedStmt | Statement, associated with the directive. |
X | 'x' part of the associated expression/statement. |
V | 'v' part of the associated expression/statement. |
E | 'expr' part of the associated expression/statement. |
UE | Helper expression of the form 'OpaqueValueExpr(x) binop OpaqueValueExpr(expr)' or 'OpaqueValueExpr(expr) binop OpaqueValueExpr(x)'. |
IsXLHSInRHSPart | true if UE has the first form and false if the second. |
IsPostfixUpdate | true if original value of 'x' must be stored in 'v', not an updated one. |
Definition at line 2184 of file Stmt.cpp.
References clang::ASTContext::Allocate(), clang::OMPExecutableDirective::setAssociatedStmt(), and clang::OMPExecutableDirective::setClauses().
Referenced by clang::Sema::ActOnOpenMPAtomicDirective().
|
static |
Creates an empty directive with the place for NumClauses clauses.
C | AST context. |
NumClauses | Number of clauses. |
Definition at line 2205 of file Stmt.cpp.
References clang::ASTContext::Allocate().
|
inline |
Get 'expr' part of the associated expression/statement.
Definition at line 1753 of file StmtOpenMP.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPAtomicDirective().
|
inline |
Definition at line 1754 of file StmtOpenMP.h.
|
inline |
Get helper expression of the form 'OpaqueValueExpr(x) binop OpaqueValueExpr(expr)' or 'OpaqueValueExpr(expr) binop OpaqueValueExpr(x)'.
Definition at line 1734 of file StmtOpenMP.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPAtomicDirective().
|
inline |
Definition at line 1737 of file StmtOpenMP.h.
|
inline |
Get 'v' part of the associated expression/statement.
Definition at line 1748 of file StmtOpenMP.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPAtomicDirective().
|
inline |
Definition at line 1749 of file StmtOpenMP.h.
|
inline |
Get 'x' part of the associated expression/statement.
Definition at line 1727 of file StmtOpenMP.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPAtomicDirective().
|
inline |
Definition at line 1728 of file StmtOpenMP.h.
|
inline |
Return true if 'v' expression must be updated to original value of 'x', false if 'v' must be updated to the new value of 'x'.
Definition at line 1746 of file StmtOpenMP.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPAtomicDirective().
|
inline |
Return true if helper update expression has form 'OpaqueValueExpr(x) binop OpaqueValueExpr(expr)' and false if it has form 'OpaqueValueExpr(expr) binop OpaqueValueExpr(x)'.
Definition at line 1743 of file StmtOpenMP.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPAtomicDirective().
|
friend |
Definition at line 1638 of file StmtOpenMP.h.