|
clang 22.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 clang::Block, CapturedVar, and false.
|
inline |
Definition at line 635 of file ScopeInfo.h.
|
inline |
Definition at line 643 of file ScopeInfo.h.
References CapturedVLA, and false.
|
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.
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(), getCaptureLocation(), and isInitCapture().
|
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 222 of file ScopeInfo.cpp.
References getVariable(), isNested(), and isVariableCapture().
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(), and isInitCapture().
|
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(), getVariable(), and isInitCapture().
|
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 Capture(), and getVariable().
| const VariableArrayType* clang::sema::Capture::CapturedVLA |
If Kind == Cap_VLA, the captured type.
Definition at line 579 of file ScopeInfo.h.
Referenced by Capture(), and getCapturedVLAType().