clang 19.0.0git
Public Member Functions | Friends | List of all members
clang::CapturedStmt::Capture Class Reference

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

#include "clang/AST/Stmt.h"

Public Member Functions

 Capture (SourceLocation Loc, VariableCaptureKind Kind, VarDecl *Var=nullptr)
 Create a new capture.
 
VariableCaptureKind getCaptureKind () const
 Determine the kind of capture.
 
SourceLocation getLocation () const
 Retrieve the source location at which the variable or 'this' was first used.
 
bool capturesThis () const
 Determine whether this capture handles the C++ 'this' pointer.
 
bool capturesVariable () const
 Determine whether this capture handles a variable (by reference).
 
bool capturesVariableByCopy () const
 Determine whether this capture handles a variable by copy.
 
bool capturesVariableArrayType () const
 Determine whether this capture handles a variable-length array type.
 
VarDeclgetCapturedVar () const
 Retrieve the declaration of the variable being captured.
 

Friends

class ASTStmtReader
 
class CapturedStmt
 

Detailed Description

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

Definition at line 3775 of file Stmt.h.

Constructor & Destructor Documentation

◆ Capture()

CapturedStmt::Capture::Capture ( SourceLocation  Loc,
VariableCaptureKind  Kind,
VarDecl Var = nullptr 
)

Create a new capture.

Parameters
LocThe source location associated with this capture.
KindThe kind of capture (this, ByRef, ...).
VarThe variable being captured, or null if capturing this.

Definition at line 1280 of file Stmt.cpp.

References clang::CapturedStmt::VCK_ByCopy, clang::CapturedStmt::VCK_ByRef, clang::CapturedStmt::VCK_This, and clang::CapturedStmt::VCK_VLAType.

Member Function Documentation

◆ capturesThis()

bool clang::CapturedStmt::Capture::capturesThis ( ) const
inline

Determine whether this capture handles the C++ 'this' pointer.

Definition at line 3803 of file Stmt.h.

References getCaptureKind(), and clang::CapturedStmt::VCK_This.

Referenced by emitTargetCallKernelLaunch().

◆ capturesVariable()

bool clang::CapturedStmt::Capture::capturesVariable ( ) const
inline

Determine whether this capture handles a variable (by reference).

Definition at line 3806 of file Stmt.h.

References getCaptureKind(), and clang::CapturedStmt::VCK_ByRef.

Referenced by emitTargetCallKernelLaunch().

◆ capturesVariableArrayType()

bool clang::CapturedStmt::Capture::capturesVariableArrayType ( ) const
inline

Determine whether this capture handles a variable-length array type.

Definition at line 3815 of file Stmt.h.

References getCaptureKind(), and clang::CapturedStmt::VCK_VLAType.

Referenced by emitTargetCallKernelLaunch().

◆ capturesVariableByCopy()

bool clang::CapturedStmt::Capture::capturesVariableByCopy ( ) const
inline

Determine whether this capture handles a variable by copy.

Definition at line 3809 of file Stmt.h.

References getCaptureKind(), and clang::CapturedStmt::VCK_ByCopy.

◆ getCapturedVar()

VarDecl * CapturedStmt::Capture::getCapturedVar ( ) const

Retrieve the declaration of the variable being captured.

This operation is only valid if this capture captures a variable.

Definition at line 1305 of file Stmt.cpp.

References clang::CapturedStmt::capturesVariable().

Referenced by emitTargetCallKernelLaunch().

◆ getCaptureKind()

CapturedStmt::VariableCaptureKind CapturedStmt::Capture::getCaptureKind ( ) const

Determine the kind of capture.

Definition at line 1301 of file Stmt.cpp.

Referenced by capturesThis(), capturesVariable(), capturesVariableArrayType(), and capturesVariableByCopy().

◆ getLocation()

SourceLocation clang::CapturedStmt::Capture::getLocation ( ) const
inline

Retrieve the source location at which the variable or 'this' was first used.

Definition at line 3800 of file Stmt.h.

Friends And Related Function Documentation

◆ ASTStmtReader

friend class ASTStmtReader
friend

Definition at line 3782 of file Stmt.h.

◆ CapturedStmt

friend class CapturedStmt
friend

Definition at line 3783 of file Stmt.h.


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