class OMPAtomicDirective

Declaration

class OMPAtomicDirective : public OMPExecutableDirective { /* full declaration omitted */ };

Description

This represents '#pragma omp atomic' directive. In this example directive '#pragma omp atomic' has clause 'capture'.

Declared at: clang/include/clang/AST/StmtOpenMP.h:2894

Inherits from: OMPExecutableDirective

Member Variables

private struct FlagTy Flags

Inherited from OMPExecutableDirective:

protected Data = nullptr

Inherited from Stmt:

protected

Method Overview

  • public static clang::OMPAtomicDirective * Create(const clang::ASTContext & C, clang::SourceLocation StartLoc, clang::SourceLocation EndLoc, ArrayRef<clang::OMPClause *> Clauses, clang::Stmt * AssociatedStmt, clang::OMPAtomicDirective::Expressions Exprs)
  • public static clang::OMPAtomicDirective * CreateEmpty(const clang::ASTContext & C, unsigned int NumClauses, clang::Stmt::EmptyShell)
  • private OMPAtomicDirective()
  • private OMPAtomicDirective(clang::SourceLocation StartLoc, clang::SourceLocation EndLoc)
  • public static bool classof(const clang::Stmt * T)
  • public clang::Expr * getCondExpr() const
  • public clang::Expr * getCondExpr()
  • public clang::Expr * getD()
  • public clang::Expr * getD() const
  • public clang::Expr * getExpr()
  • public const clang::Expr * getExpr() const
  • public clang::Expr * getR()
  • public const clang::Expr * getR() const
  • public clang::Expr * getUpdateExpr()
  • public const clang::Expr * getUpdateExpr() const
  • public clang::Expr * getV()
  • public const clang::Expr * getV() const
  • public clang::Expr * getX()
  • public const clang::Expr * getX() const
  • public bool isFailOnly() const
  • public bool isPostfixUpdate() const
  • public bool isXLHSInRHSPart() const
  • private void setCond(clang::Expr * C)
  • private void setD(clang::Expr * D)
  • private void setExpr(clang::Expr * E)
  • private void setR(clang::Expr * R)
  • private void setUpdateExpr(clang::Expr * UE)
  • private void setV(clang::Expr * V)
  • private void setX(clang::Expr * X)

Inherited from OMPExecutableDirective:

Inherited from Stmt:

Methods

static clang::OMPAtomicDirective* Create(
    const clang::ASTContext& C,
    clang::SourceLocation StartLoc,
    clang::SourceLocation EndLoc,
    ArrayRef<clang::OMPClause*> Clauses,
    clang::Stmt* AssociatedStmt,
    clang::OMPAtomicDirective::Expressions Exprs)

Description

Creates directive with a list of \a 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').

Declared at: clang/include/clang/AST/StmtOpenMP.h:3004

Parameters

const clang::ASTContext& C
AST context.
clang::SourceLocation StartLoc
Starting location of the directive kind.
clang::SourceLocation EndLoc
Ending Location of the directive.
ArrayRef<clang::OMPClause*> Clauses
List of clauses.
clang::Stmt* AssociatedStmt
Statement, associated with the directive.
clang::OMPAtomicDirective::Expressions Exprs
Associated expressions or statements.

static clang::OMPAtomicDirective* CreateEmpty(
    const clang::ASTContext& C,
    unsigned int NumClauses,
    clang::Stmt::EmptyShell)

Description

Creates an empty directive with the place for \a NumClauses clauses.

Declared at: clang/include/clang/AST/StmtOpenMP.h:3016

Parameters

const clang::ASTContext& C
AST context.
unsigned int NumClauses
Number of clauses.
clang::Stmt::EmptyShell

OMPAtomicDirective()

Description

Build an empty directive.

Declared at: clang/include/clang/AST/StmtOpenMP.h:2934

OMPAtomicDirective(clang::SourceLocation StartLoc,
                   clang::SourceLocation EndLoc)

Description

Build directive with the given start and end location.

Declared at: clang/include/clang/AST/StmtOpenMP.h:2928

Parameters

clang::SourceLocation StartLoc
Starting location of the directive kind.
clang::SourceLocation EndLoc
Ending location of the directive.

static bool classof(const clang::Stmt* T)

Declared at: clang/include/clang/AST/StmtOpenMP.h:3083

Parameters

const clang::Stmt* T

clang::Expr* getCondExpr() const

Declared at: clang/include/clang/AST/StmtOpenMP.h:3079

clang::Expr* getCondExpr()

Description

Get the 'cond' part of the source atomic expression.

Declared at: clang/include/clang/AST/StmtOpenMP.h:3076

clang::Expr* getD()

Description

Get 'd' part of the associated expression/statement.

Declared at: clang/include/clang/AST/StmtOpenMP.h:3069

clang::Expr* getD() const

Declared at: clang/include/clang/AST/StmtOpenMP.h:3072

clang::Expr* getExpr()

Description

Get 'expr' part of the associated expression/statement.

Declared at: clang/include/clang/AST/StmtOpenMP.h:3062

const clang::Expr* getExpr() const

Declared at: clang/include/clang/AST/StmtOpenMP.h:3065

clang::Expr* getR()

Description

Get 'r' part of the associated expression/statement.

Declared at: clang/include/clang/AST/StmtOpenMP.h:3055

const clang::Expr* getR() const

Declared at: clang/include/clang/AST/StmtOpenMP.h:3058

clang::Expr* getUpdateExpr()

Description

Get helper expression of the form 'OpaqueValueExpr(x) binop OpaqueValueExpr(expr)' or 'OpaqueValueExpr(expr) binop OpaqueValueExpr(x)'.

Declared at: clang/include/clang/AST/StmtOpenMP.h:3029

const clang::Expr* getUpdateExpr() const

Declared at: clang/include/clang/AST/StmtOpenMP.h:3033

clang::Expr* getV()

Description

Get 'v' part of the associated expression/statement.

Declared at: clang/include/clang/AST/StmtOpenMP.h:3048

const clang::Expr* getV() const

Declared at: clang/include/clang/AST/StmtOpenMP.h:3051

clang::Expr* getX()

Description

Get 'x' part of the associated expression/statement.

Declared at: clang/include/clang/AST/StmtOpenMP.h:3020

const clang::Expr* getX() const

Declared at: clang/include/clang/AST/StmtOpenMP.h:3023

bool isFailOnly() const

Description

Return true if 'v' is updated only when the condition is evaluated false (compare capture only).

Declared at: clang/include/clang/AST/StmtOpenMP.h:3046

bool isPostfixUpdate() const

Description

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'.

Declared at: clang/include/clang/AST/StmtOpenMP.h:3043

bool isXLHSInRHSPart() const

Description

Return true if helper update expression has form 'OpaqueValueExpr(x) binop OpaqueValueExpr(expr)' and false if it has form 'OpaqueValueExpr(expr) binop OpaqueValueExpr(x)'.

Declared at: clang/include/clang/AST/StmtOpenMP.h:3040

void setCond(clang::Expr* C)

Description

Set conditional expression in `atomic compare`.

Declared at: clang/include/clang/AST/StmtOpenMP.h:2965

Parameters

clang::Expr* C

void setD(clang::Expr* D)

Description

Set 'd' part of the associated expression/statement.

Declared at: clang/include/clang/AST/StmtOpenMP.h:2963

Parameters

clang::Expr* D

void setExpr(clang::Expr* E)

Description

Set 'expr' part of the associated expression/statement.

Declared at: clang/include/clang/AST/StmtOpenMP.h:2961

Parameters

clang::Expr* E

void setR(clang::Expr* R)

Description

Set 'r' part of the associated expression/statement.

Declared at: clang/include/clang/AST/StmtOpenMP.h:2959

Parameters

clang::Expr* R

void setUpdateExpr(clang::Expr* UE)

Description

Set helper expression of the form 'OpaqueValueExpr(x) binop OpaqueValueExpr(expr)' or 'OpaqueValueExpr(expr) binop OpaqueValueExpr(x)'.

Declared at: clang/include/clang/AST/StmtOpenMP.h:2953

Parameters

clang::Expr* UE

void setV(clang::Expr* V)

Description

Set 'v' part of the associated expression/statement.

Declared at: clang/include/clang/AST/StmtOpenMP.h:2957

Parameters

clang::Expr* V

void setX(clang::Expr* X)

Description

Set 'x' part of the associated expression/statement.

Declared at: clang/include/clang/AST/StmtOpenMP.h:2949

Parameters

clang::Expr* X