clang
3.7.0
|
Retains information about a captured region. More...
#include <ScopeInfo.h>
Public Member Functions | |
CapturedRegionScopeInfo (DiagnosticsEngine &Diag, Scope *S, CapturedDecl *CD, RecordDecl *RD, ImplicitParamDecl *Context, CapturedRegionKind K) | |
~CapturedRegionScopeInfo () override | |
StringRef | getRegionName () const |
A descriptive name for the kind of captured region this is. More... | |
![]() | |
CapturingScopeInfo (DiagnosticsEngine &Diag, ImplicitCaptureStyle Style) | |
void | addCapture (VarDecl *Var, bool isBlock, bool isByref, bool isNested, SourceLocation Loc, SourceLocation EllipsisLoc, QualType CaptureType, Expr *Cpy) |
void | addVLATypeCapture (SourceLocation Loc, QualType CaptureType) |
void | addThisCapture (bool isNested, SourceLocation Loc, QualType CaptureType, Expr *Cpy) |
bool | isCXXThisCaptured () const |
Determine whether the C++ 'this' is captured. More... | |
Capture & | getCXXThisCapture () |
Retrieve the capture of C++ 'this', if it has been captured. More... | |
bool | isCaptured (VarDecl *Var) const |
Determine whether the given variable has been captured. More... | |
bool | isVLATypeCaptured (const VariableArrayType *VAT) const |
Determine whether the given variable-array type has been captured. More... | |
Capture & | getCapture (VarDecl *Var) |
Retrieve the capture of the given variable, if it has been captured already. More... | |
const Capture & | getCapture (VarDecl *Var) const |
![]() | |
template<typename ExprT > | |
void | recordUseOfWeak (const ExprT *E, bool IsRead=true) |
void | recordUseOfWeak (const ObjCMessageExpr *Msg, const ObjCPropertyDecl *Prop) |
void | markSafeWeakUse (const Expr *E) |
const WeakObjectUseMap & | getWeakObjectUses () const |
void | setHasBranchIntoScope () |
void | setHasBranchProtectedScope () |
void | setHasIndirectGoto () |
void | setHasDroppedStmt () |
void | setHasCXXTry (SourceLocation TryLoc) |
void | setHasSEHTry (SourceLocation TryLoc) |
bool | NeedsScopeChecking () const |
FunctionScopeInfo (DiagnosticsEngine &Diag) | |
virtual | ~FunctionScopeInfo () |
void | Clear () |
Clear out the information in this function scope, making it suitable for reuse. More... | |
Static Public Member Functions | |
static bool | classof (const FunctionScopeInfo *FSI) |
![]() | |
static bool | classof (const FunctionScopeInfo *FSI) |
Public Attributes | |
CapturedDecl * | TheCapturedDecl |
The CapturedDecl for this statement. More... | |
RecordDecl * | TheRecordDecl |
The captured record type. More... | |
Scope * | TheScope |
This is the enclosing scope of the captured region. More... | |
ImplicitParamDecl * | ContextParam |
The implicit parameter for the captured variables. More... | |
CapturedRegionKind | CapRegionKind |
The kind of captured region. More... | |
![]() | |
ImplicitCaptureStyle | ImpCaptureStyle |
llvm::DenseMap< VarDecl *, unsigned > | CaptureMap |
CaptureMap - A map of captured variables to (index+1) into Captures. More... | |
unsigned | CXXThisCaptureIndex |
SmallVector< Capture, 4 > | Captures |
Captures - The captures. More... | |
bool | HasImplicitReturnType |
| |
QualType | ReturnType |
![]() | |
ScopeKind | Kind |
What kind of scope we are describing. More... | |
bool | HasBranchProtectedScope |
Whether this function contains a VLA, @try, try, C++ initializer, or anything else that can't be jumped past. More... | |
bool | HasBranchIntoScope |
Whether this function contains any switches or direct gotos. More... | |
bool | HasIndirectGoto |
Whether this function contains any indirect gotos. More... | |
bool | HasDroppedStmt |
Whether a statement was dropped because it was invalid. More... | |
bool | ObjCShouldCallSuper |
bool | ObjCIsDesignatedInit |
True when this is a method marked as a designated initializer. More... | |
bool | ObjCWarnForNoDesignatedInitChain |
bool | ObjCIsSecondaryInit |
bool | ObjCWarnForNoInitDelegation |
SourceLocation | FirstCXXTryLoc |
First C++ 'try' statement in the current function. More... | |
SourceLocation | FirstSEHTryLoc |
First SEH '__try' statement in the current function. More... | |
DiagnosticErrorTrap | ErrorTrap |
Used to determine if errors occurred in this function or block. More... | |
SmallVector< SwitchStmt *, 8 > | SwitchStack |
SmallVector< ReturnStmt *, 4 > | Returns |
The list of return statements that occur within the function or block, if there is any chance of applying the named return value optimization, or if we need to infer a return type. More... | |
SmallVector< CompoundScopeInfo, 4 > | CompoundScopes |
The stack of currently active compound stamement scopes in the function. More... | |
SmallVector < PossiblyUnreachableDiag, 4 > | PossiblyUnreachableDiags |
A list of PartialDiagnostics created but delayed within the current function scope. These diagnostics are vetted for reachability prior to being emitted. More... | |
llvm::SmallPtrSet< const ParmVarDecl *, 8 > | ModifiedNonNullParams |
A list of parameters which have the nonnull attribute and are modified in the function. More... | |
Additional Inherited Members | |
![]() | |
enum | ImplicitCaptureStyle { ImpCap_None, ImpCap_LambdaByval, ImpCap_LambdaByref, ImpCap_Block, ImpCap_CapturedRegion } |
![]() | |
typedef SmallVector< WeakUseTy, 4 > | WeakUseVector |
typedef llvm::SmallDenseMap < WeakObjectProfileTy, WeakUseVector, 8, WeakObjectProfileTy::DenseMapInfo > | WeakObjectUseMap |
![]() | |
enum | ScopeKind { SK_Function, SK_Block, SK_Lambda, SK_CapturedRegion } |
Retains information about a captured region.
Definition at line 579 of file ScopeInfo.h.
|
inline |
Definition at line 592 of file ScopeInfo.h.
References clang::sema::FunctionScopeInfo::SK_CapturedRegion.
|
override |
Definition at line 238 of file ScopeInfo.cpp.
|
inlinestatic |
Definition at line 615 of file ScopeInfo.h.
References clang::sema::FunctionScopeInfo::Kind, and clang::sema::FunctionScopeInfo::SK_CapturedRegion.
|
inline |
A descriptive name for the kind of captured region this is.
Definition at line 605 of file ScopeInfo.h.
References CapRegionKind, clang::CR_Default, and clang::CR_OpenMP.
CapturedRegionKind clang::sema::CapturedRegionScopeInfo::CapRegionKind |
The kind of captured region.
Definition at line 590 of file ScopeInfo.h.
Referenced by clang::Sema::ActOnCapturedRegionEnd(), and getRegionName().
ImplicitParamDecl* clang::sema::CapturedRegionScopeInfo::ContextParam |
The implicit parameter for the captured variables.
Definition at line 588 of file ScopeInfo.h.
CapturedDecl* clang::sema::CapturedRegionScopeInfo::TheCapturedDecl |
The CapturedDecl for this statement.
Definition at line 582 of file ScopeInfo.h.
Referenced by clang::Sema::ActOnCapturedRegionEnd(), and clang::Sema::ActOnOpenMPRegionStart().
RecordDecl* clang::sema::CapturedRegionScopeInfo::TheRecordDecl |
The captured record type.
Definition at line 584 of file ScopeInfo.h.
Referenced by clang::Sema::ActOnCapturedRegionEnd(), clang::Sema::ActOnCapturedRegionError(), and captureInCapturedRegion().
Scope* clang::sema::CapturedRegionScopeInfo::TheScope |
This is the enclosing scope of the captured region.
Definition at line 586 of file ScopeInfo.h.