clang 20.0.0git
|
#include "clang/Sema/ScopeInfo.h"
Public Types | |
enum | IsThisCapture { ThisCapture } |
enum | IsVLACapture { VLACapture } |
Public Member Functions | |
Capture (ValueDecl *Var, bool Block, bool ByRef, bool IsNested, SourceLocation Loc, SourceLocation EllipsisLoc, QualType CaptureType, bool Invalid) | |
Capture (IsThisCapture, bool IsNested, SourceLocation Loc, QualType CaptureType, const bool ByCopy, bool Invalid) | |
Capture (IsVLACapture, const VariableArrayType *VLA, bool IsNested, SourceLocation Loc, QualType CaptureType) | |
bool | isThisCapture () const |
bool | isVariableCapture () const |
bool | isCopyCapture () const |
bool | isReferenceCapture () const |
bool | isBlockCapture () const |
bool | isVLATypeCapture () const |
bool | isNested () const |
bool | isInvalid () const |
bool | isInitCapture () const |
Determine whether this capture is an init-capture. | |
bool | isODRUsed () const |
bool | isNonODRUsed () const |
void | markUsed (bool IsODRUse) |
ValueDecl * | getVariable () const |
const VariableArrayType * | getCapturedVLAType () const |
SourceLocation | getLocation () const |
Retrieve the location at which this variable was captured. | |
SourceLocation | getEllipsisLoc () const |
Retrieve the source location of the ellipsis, whose presence indicates that the capture is a pack expansion. | |
QualType | getCaptureType () const |
Retrieve the capture type for this capture, which is effectively the type of the non-static data member in the lambda/block structure that would store this capture. | |
Definition at line 559 of file ScopeInfo.h.
Enumerator | |
---|---|
ThisCapture |
Definition at line 634 of file ScopeInfo.h.
Enumerator | |
---|---|
VLACapture |
Definition at line 642 of file ScopeInfo.h.
|
inline |
Definition at line 624 of file ScopeInfo.h.
References Loc.
|
inline |
Definition at line 635 of file ScopeInfo.h.
References Loc.
|
inline |
Definition at line 643 of file ScopeInfo.h.
References Loc.
|
inline |
Definition at line 680 of file ScopeInfo.h.
References CapturedVLA, and isVLATypeCapture().
Referenced by clang::Sema::BuildCaptureField().
|
inline |
Retrieve the capture type for this capture, which is effectively the type of the non-static data member in the lambda/block structure that would store this capture.
Definition at line 695 of file ScopeInfo.h.
Referenced by clang::Sema::ActOnBlockStmtExpr(), clang::Sema::BuildCaptureField(), clang::Sema::BuildCaptureInit(), clang::Sema::CaptureHasSideEffects(), and isVariableAlreadyCapturedInScopeInfo().
|
inline |
Retrieve the source location of the ellipsis, whose presence indicates that the capture is a pack expansion.
Definition at line 690 of file ScopeInfo.h.
Referenced by clang::ASTRecordWriter::AddCXXDefinitionData(), and clang::Sema::BuildLambdaExpr().
|
inline |
Retrieve the location at which this variable was captured.
Definition at line 686 of file ScopeInfo.h.
References Loc.
Referenced by clang::Sema::ActOnBlockStmtExpr(), clang::Sema::ActOnLambdaExpressionAfterIntroducer(), clang::ASTRecordWriter::AddCXXDefinitionData(), buildCapturedStmtCaptureList(), clang::Sema::BuildCaptureField(), clang::Sema::BuildCaptureInit(), clang::Sema::BuildLambdaExpr(), clang::SemaCUDA::CheckLambdaCapture(), clang::Sema::DiagnoseUnusedLambdaCapture(), and getCaptureLocation().
|
inline |
Definition at line 675 of file ScopeInfo.h.
References CapturedVar, and isVariableCapture().
Referenced by clang::Sema::ActOnBlockStmtExpr(), buildCapturedStmtCaptureList(), clang::Sema::BuildCaptureField(), clang::Sema::BuildCaptureInit(), clang::Sema::BuildLambdaExpr(), clang::Sema::CaptureHasSideEffects(), clang::SemaCUDA::CheckLambdaCapture(), clang::Sema::DiagnoseUnusedLambdaCapture(), and getCaptureLocation().
|
inline |
Definition at line 656 of file ScopeInfo.h.
Referenced by clang::Sema::ActOnBlockStmtExpr(), and clang::Sema::BuildLambdaExpr().
|
inline |
Definition at line 654 of file ScopeInfo.h.
Referenced by clang::Sema::ActOnBlockStmtExpr(), clang::Sema::BuildCaptureInit(), buildLambdaCaptureFixit(), clang::Sema::BuildLambdaExpr(), clang::Sema::CaptureHasSideEffects(), and isVariableAlreadyCapturedInScopeInfo().
bool Capture::isInitCapture | ( | ) | const |
Determine whether this capture is an init-capture.
Definition at line 223 of file ScopeInfo.cpp.
Referenced by clang::Sema::BuildCaptureInit(), clang::Sema::BuildLambdaExpr(), clang::Sema::CaptureHasSideEffects(), and clang::Sema::DiagnoseUnusedLambdaCapture().
|
inline |
Definition at line 661 of file ScopeInfo.h.
Referenced by clang::Sema::ActOnBlockStmtExpr(), buildCapturedStmtCaptureList(), and clang::Sema::BuildLambdaExpr().
|
inline |
Definition at line 659 of file ScopeInfo.h.
Referenced by clang::Sema::ActOnBlockStmtExpr().
|
inline |
Definition at line 667 of file ScopeInfo.h.
Referenced by clang::Sema::BuildLambdaExpr(), and clang::Sema::DiagnoseUnusedLambdaCapture().
|
inline |
Definition at line 666 of file ScopeInfo.h.
Referenced by clang::Sema::BuildLambdaExpr().
|
inline |
Definition at line 655 of file ScopeInfo.h.
Referenced by buildCapturedStmtCaptureList(), and clang::SemaCUDA::CheckLambdaCapture().
|
inline |
Definition at line 649 of file ScopeInfo.h.
Referenced by clang::Sema::ActOnBlockStmtExpr(), buildCapturedStmtCaptureList(), clang::Sema::BuildCaptureInit(), clang::Sema::BuildLambdaExpr(), clang::Sema::CaptureHasSideEffects(), clang::SemaCUDA::CheckLambdaCapture(), clang::Sema::DiagnoseUnusedLambdaCapture(), and isVariableCapture().
|
inline |
Definition at line 650 of file ScopeInfo.h.
References isThisCapture(), and isVLATypeCapture().
Referenced by buildCapturedStmtCaptureList(), clang::Sema::BuildCaptureField(), clang::Sema::BuildCaptureInit(), clang::Sema::BuildLambdaExpr(), clang::SemaCUDA::CheckLambdaCapture(), getCaptureLocation(), and getVariable().
|
inline |
Definition at line 657 of file ScopeInfo.h.
Referenced by buildCapturedStmtCaptureList(), clang::Sema::BuildCaptureField(), clang::Sema::BuildCaptureInit(), clang::Sema::BuildLambdaExpr(), clang::Sema::DiagnoseUnusedLambdaCapture(), getCapturedVLAType(), and isVariableCapture().
|
inline |
Definition at line 668 of file ScopeInfo.h.
Referenced by clang::Sema::tryCaptureVariable().
ValueDecl* clang::sema::Capture::CapturedVar |
Otherwise, the captured variable (if any).
Definition at line 582 of file ScopeInfo.h.
Referenced by getVariable().
const VariableArrayType* clang::sema::Capture::CapturedVLA |
If Kind == Cap_VLA, the captured type.
Definition at line 579 of file ScopeInfo.h.
Referenced by getCapturedVLAType().