clang API Documentation

Classes | Public Types | Public Member Functions | Static Public Member Functions | Friends
clang::CapturedStmt Class Reference

This captures a statement into a function. For example, the following pragma annotated compound statement can be represented as a CapturedStmt, and this compound statement is the body of an anonymous outlined function. More...

#include <Stmt.h>

Inheritance diagram for clang::CapturedStmt:
Inheritance graph
[legend]
Collaboration diagram for clang::CapturedStmt:
Collaboration graph
[legend]

List of all members.

Classes

class  Capture
 Describes the capture of either a variable, or 'this', or variable-length array type. More...

Public Types

enum  VariableCaptureKind { VCK_This, VCK_ByRef, VCK_VLAType }
 The different capture forms: by 'this', by reference, capture for variable-length array type etc. More...
typedef Capturecapture_iterator
 An iterator that walks over the captures.
typedef const Captureconst_capture_iterator
typedef llvm::iterator_range
< capture_iterator
capture_range
typedef llvm::iterator_range
< const_capture_iterator
capture_const_range
typedef Expr ** capture_init_iterator
 Iterator that walks over the capture initialization arguments.
typedef llvm::iterator_range
< capture_init_iterator
capture_init_range

Public Member Functions

StmtgetCapturedStmt ()
 Retrieve the statement being captured.
const StmtgetCapturedStmt () const
CapturedDeclgetCapturedDecl ()
 Retrieve the outlined function declaration.
const CapturedDeclgetCapturedDecl () const
void setCapturedDecl (CapturedDecl *D)
 Set the outlined function declaration.
CapturedRegionKind getCapturedRegionKind () const
 Retrieve the captured region kind.
void setCapturedRegionKind (CapturedRegionKind Kind)
 Set the captured region kind.
const RecordDeclgetCapturedRecordDecl () const
 Retrieve the record declaration for captured variables.
void setCapturedRecordDecl (RecordDecl *D)
 Set the record declaration for captured variables.
bool capturesVariable (const VarDecl *Var) const
 True if this variable has been captured.
capture_range captures ()
capture_const_range captures () const
capture_iterator capture_begin ()
 Retrieve an iterator pointing to the first capture.
const_capture_iterator capture_begin () const
capture_iterator capture_end () const
 Retrieve an iterator pointing past the end of the sequence of captures.
unsigned capture_size () const
 Retrieve the number of captures, including 'this'.
capture_init_range capture_inits () const
capture_init_iterator capture_init_begin () const
 Retrieve the first initialization argument.
capture_init_iterator capture_init_end () const
 Retrieve the iterator pointing one past the last initialization argument.
SourceLocation getLocStart () const LLVM_READONLY
SourceLocation getLocEnd () const LLVM_READONLY
SourceRange getSourceRange () const LLVM_READONLY
child_range children ()

Static Public Member Functions

static CapturedStmtCreate (const ASTContext &Context, Stmt *S, CapturedRegionKind Kind, ArrayRef< Capture > Captures, ArrayRef< Expr * > CaptureInits, CapturedDecl *CD, RecordDecl *RD)
static CapturedStmtCreateDeserialized (const ASTContext &Context, unsigned NumCaptures)
static bool classof (const Stmt *T)

Friends

class ASTStmtReader

Detailed Description

This captures a statement into a function. For example, the following pragma annotated compound statement can be represented as a CapturedStmt, and this compound statement is the body of an anonymous outlined function.

 #pragma omp parallel
 {
   compute();
 }

Definition at line 1983 of file Stmt.h.


Member Typedef Documentation

Definition at line 2135 of file Stmt.h.

Iterator that walks over the capture initialization arguments.

Definition at line 2158 of file Stmt.h.

Definition at line 2159 of file Stmt.h.

An iterator that walks over the captures.

Definition at line 2132 of file Stmt.h.

Definition at line 2134 of file Stmt.h.

Definition at line 2133 of file Stmt.h.


Member Enumeration Documentation

The different capture forms: by 'this', by reference, capture for variable-length array type etc.

Enumerator:
VCK_This 
VCK_ByRef 
VCK_VLAType 

Definition at line 1987 of file Stmt.h.


Member Function Documentation

Retrieve an iterator pointing to the first capture.

Definition at line 2145 of file Stmt.h.

Referenced by captures(), and clang::CodeGen::CodeGenFunction::CGCapturedStmtInfo::CGCapturedStmtInfo().

Definition at line 2146 of file Stmt.h.

Retrieve an iterator pointing past the end of the sequence of captures.

Definition at line 2150 of file Stmt.h.

Referenced by captures(), and clang::CodeGen::CodeGenFunction::CGCapturedStmtInfo::CGCapturedStmtInfo().

Retrieve the first initialization argument.

Definition at line 2166 of file Stmt.h.

Referenced by capture_init_end(), capture_inits(), and clang::CodeGen::CodeGenFunction::InitCapturedStruct().

Retrieve the iterator pointing one past the last initialization argument.

Definition at line 2172 of file Stmt.h.

References capture_init_begin().

Referenced by capture_inits(), and clang::CodeGen::CodeGenFunction::InitCapturedStruct().

Definition at line 2161 of file Stmt.h.

References capture_init_begin(), and capture_init_end().

Retrieve the number of captures, including 'this'.

Definition at line 2155 of file Stmt.h.

Definition at line 2137 of file Stmt.h.

References capture_begin(), and capture_end().

Referenced by capturesVariable().

Definition at line 2140 of file Stmt.h.

References capture_begin(), and capture_end().

True if this variable has been captured.

Definition at line 1154 of file Stmt.cpp.

References captures().

Reimplemented from clang::Stmt.

Definition at line 1149 of file Stmt.cpp.

static bool clang::CapturedStmt::classof ( const Stmt T) [inline, static]

Definition at line 2186 of file Stmt.h.

References clang::Stmt::getStmtClass().

CapturedStmt * CapturedStmt::Create ( const ASTContext Context,
Stmt S,
CapturedRegionKind  Kind,
ArrayRef< Capture Captures,
ArrayRef< Expr * >  CaptureInits,
CapturedDecl CD,
RecordDecl RD 
) [static]

Definition at line 1108 of file Stmt.cpp.

References clang::ASTContext::Allocate().

Referenced by clang::Sema::ActOnCapturedRegionEnd().

CapturedStmt * CapturedStmt::CreateDeserialized ( const ASTContext Context,
unsigned  NumCaptures 
) [static]

Definition at line 1136 of file Stmt.cpp.

References clang::ASTContext::Allocate().

Definition at line 2099 of file Stmt.h.

References getCapturedDecl().

Retrieve the captured region kind.

Definition at line 2110 of file Stmt.h.

Referenced by clang::CodeGen::CodeGenFunction::EmitStmt().

Retrieve the statement being captured.

Definition at line 2092 of file Stmt.h.

Referenced by clang::Sema::ActOnCapturedRegionEnd(), getCapturedStmt(), getLocEnd(), getLocStart(), and getSourceRange().

const Stmt* clang::CapturedStmt::getCapturedStmt ( ) const [inline]

Definition at line 2093 of file Stmt.h.

References getCapturedStmt().

Reimplemented from clang::Stmt.

Definition at line 2179 of file Stmt.h.

References getCapturedStmt(), and clang::Stmt::getLocEnd().

Reimplemented from clang::Stmt.

Definition at line 2176 of file Stmt.h.

References getCapturedStmt(), and clang::Stmt::getLocStart().

Referenced by clang::CodeGen::CodeGenFunction::GenerateCapturedStmtFunction().

SourceLocation tokens are not useful in isolation - they are low level value objects created/interpreted by SourceManager. We assume AST clients will have a pointer to the respective SourceManager.

Reimplemented from clang::Stmt.

Definition at line 2182 of file Stmt.h.

References getCapturedStmt(), and clang::Stmt::getSourceRange().

Set the outlined function declaration.

Definition at line 2104 of file Stmt.h.

Set the record declaration for captured variables.

Definition at line 2123 of file Stmt.h.

Set the captured region kind.

Definition at line 2115 of file Stmt.h.


Friends And Related Function Documentation

friend class ASTStmtReader [friend]

Reimplemented from clang::Stmt.

Definition at line 2192 of file Stmt.h.


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