clang  3.7.0
Classes | Public Member Functions | Static Public Member Functions | Protected Member Functions | Friends | List of all members
clang::OMPExecutableDirective Class Reference

This is a basic class for representing single OpenMP executable directive. More...

#include <StmtOpenMP.h>

Inheritance diagram for clang::OMPExecutableDirective:
[legend]
Collaboration diagram for clang::OMPExecutableDirective:
[legend]

Classes

struct  ClauseKindFilter
 
class  filtered_clause_iterator
 Iterates over a filtered subrange of clauses applied to a directive. More...
 

Public Member Functions

template<typename Fn >
filtered_clause_iterator< Fn > getFilteredClauses (Fn &&fn) const
 
filtered_clause_iterator
< ClauseKindFilter
getClausesOfKind (OpenMPClauseKind Kind) const
 
const OMPClausegetSingleClause (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...
 
OMPClausegetClause (unsigned i) const
 Returns specified clause. More...
 
bool hasAssociatedStmt () const
 Returns true if directive has associated statement. More...
 
StmtgetAssociatedStmt () 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 bool classof (const Stmt *S)
 

Protected Member Functions

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

Friends

class ASTStmtReader
 

Detailed Description

This is a basic class for representing single OpenMP executable directive.

Definition at line 33 of file StmtOpenMP.h.

Constructor & Destructor Documentation

template<typename T >
clang::OMPExecutableDirective::OMPExecutableDirective ( const T *  ,
StmtClass  SC,
OpenMPDirectiveKind  K,
SourceLocation  StartLoc,
SourceLocation  EndLoc,
unsigned  NumClauses,
unsigned  NumChildren 
)
inlineprotected

Build instance of directive of class K.

Parameters
SCStatement class.
KKind of OpenMP directive.
StartLocStarting location of the directive (directive keyword).
EndLocEnding location of the directive.

Definition at line 67 of file StmtOpenMP.h.

Member Function Documentation

child_range clang::OMPExecutableDirective::children ( )
inline

Definition at line 196 of file StmtOpenMP.h.

References hasAssociatedStmt().

static bool clang::OMPExecutableDirective::classof ( const Stmt S)
inlinestatic

Definition at line 191 of file StmtOpenMP.h.

ArrayRef<OMPClause *> clang::OMPExecutableDirective::clauses ( )
inline
ArrayRef<OMPClause *> clang::OMPExecutableDirective::clauses ( ) const
inline

Definition at line 205 of file StmtOpenMP.h.

Stmt* clang::OMPExecutableDirective::getAssociatedStmt ( ) const
inline
OMPClause* clang::OMPExecutableDirective::getClause ( unsigned  i) const
inline

Returns specified clause.

Parameters
iNumber of clause.

Definition at line 178 of file StmtOpenMP.h.

References clauses().

filtered_clause_iterator<ClauseKindFilter> clang::OMPExecutableDirective::getClausesOfKind ( OpenMPClauseKind  Kind) const
inline
OpenMPDirectiveKind clang::OMPExecutableDirective::getDirectiveKind ( ) const
inline
template<typename Fn >
filtered_clause_iterator<Fn> clang::OMPExecutableDirective::getFilteredClauses ( Fn &&  fn) const
inline

Definition at line 134 of file StmtOpenMP.h.

References clauses().

Referenced by getClausesOfKind().

SourceLocation clang::OMPExecutableDirective::getLocEnd ( ) const
inline
SourceLocation clang::OMPExecutableDirective::getLocStart ( ) const
inline
unsigned clang::OMPExecutableDirective::getNumClauses ( ) const
inline

Get number of clauses.

Definition at line 172 of file StmtOpenMP.h.

Referenced by setClauses().

const OMPClause * OMPExecutableDirective::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.

Definition at line 1615 of file Stmt.cpp.

References getClausesOfKind().

Referenced by emitCommonOMPParallelDirective(), clang::CodeGen::CodeGenFunction::EmitOMPAtomicDirective(), clang::CodeGen::CodeGenFunction::EmitOMPFlushDirective(), clang::CodeGen::CodeGenFunction::EmitOMPForDirective(), clang::CodeGen::CodeGenFunction::EmitOMPForSimdDirective(), clang::CodeGen::CodeGenFunction::EmitOMPReductionClauseFinal(), clang::CodeGen::CodeGenFunction::EmitOMPSectionsDirective(), clang::CodeGen::CodeGenFunction::EmitOMPSingleDirective(), emitSafelenClause(), and emitScheduleClause().

bool clang::OMPExecutableDirective::hasAssociatedStmt ( ) const
inline

Returns true if directive has associated statement.

Definition at line 181 of file StmtOpenMP.h.

Referenced by children(), getAssociatedStmt(), setAssociatedStmt(), and clang::TreeTransform< Derived >::TransformOMPExecutableDirective().

void clang::OMPExecutableDirective::setAssociatedStmt ( Stmt S)
inlineprotected
void OMPExecutableDirective::setClauses ( ArrayRef< OMPClause * >  Clauses)
protected
void clang::OMPExecutableDirective::setLocEnd ( SourceLocation  Loc)
inline

Set ending location of directive.

Parameters
LocNew ending location of directive.

Definition at line 169 of file StmtOpenMP.h.

void clang::OMPExecutableDirective::setLocStart ( SourceLocation  Loc)
inline

Set starting location of directive kind.

Parameters
LocNew starting location of directive.

Definition at line 164 of file StmtOpenMP.h.

Friends And Related Function Documentation

friend class ASTStmtReader
friend

Definition at line 34 of file StmtOpenMP.h.


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