clang 20.0.0git
|
Retains information about a function, method, or block that is currently being parsed. More...
#include "clang/Sema/ScopeInfo.h"
Classes | |
class | WeakObjectProfileTy |
Represents a simple identification of a weak object. More... | |
class | WeakUseTy |
Represents a single use of a weak object. More... | |
Public Types | |
enum | { TryLocIsCXX , TryLocIsObjC , Unknown } |
using | SwitchInfo = llvm::PointerIntPair< SwitchStmt *, 1, bool > |
A SwitchStmt, along with a flag indicating if its list of case statements is incomplete (because we dropped an invalid one while parsing). | |
using | WeakUseVector = SmallVector< WeakUseTy, 4 > |
Used to collect uses of a particular weak object in a function body. | |
using | WeakObjectUseMap = llvm::SmallDenseMap< WeakObjectProfileTy, WeakUseVector, 8, WeakObjectProfileTy::DenseMapInfo > |
Used to collect all uses of weak objects in a function body. | |
Public Member Functions | |
FunctionScopeInfo (DiagnosticsEngine &Diag) | |
virtual | ~FunctionScopeInfo () |
bool | hasUnrecoverableErrorOccurred () const |
Determine whether an unrecoverable error has occurred within this function. | |
template<typename ExprT > | |
void | recordUseOfWeak (const ExprT *E, bool IsRead=true) |
Record that a weak object was accessed. | |
void | recordUseOfWeak (const ObjCMessageExpr *Msg, const ObjCPropertyDecl *Prop) |
void | markSafeWeakUse (const Expr *E) |
Record that a given expression is a "safe" access of a weak object (e.g. | |
const WeakObjectUseMap & | getWeakObjectUses () const |
void | setHasBranchIntoScope () |
void | setHasBranchProtectedScope () |
void | setHasIndirectGoto () |
void | setHasMustTail () |
void | setHasDroppedStmt () |
void | setHasOMPDeclareReductionCombiner () |
void | setHasFallthroughStmt () |
void | setUsesFPIntrin () |
void | setHasCXXTry (SourceLocation TryLoc) |
void | setHasObjCTry (SourceLocation TryLoc) |
void | setHasSEHTry (SourceLocation TryLoc) |
void | setHasVLA (SourceLocation VLALoc) |
bool | NeedsScopeChecking () const |
void | addBlock (const BlockDecl *BD) |
void | addByrefBlockVar (VarDecl *VD) |
bool | isCoroutine () const |
void | setFirstCoroutineStmt (SourceLocation Loc, StringRef Keyword) |
StringRef | getFirstCoroutineStmtKeyword () const |
void | setNeedsCoroutineSuspends (bool value=true) |
bool | hasInvalidCoroutineSuspends () const |
void | setCoroutineSuspends (Stmt *Initial, Stmt *Final) |
void | Clear () |
Clear out the information in this function scope, making it suitable for reuse. | |
bool | isPlainFunction () const |
Public Attributes | |
ScopeKind | Kind: 3 |
What kind of scope we are describing. | |
bool | HasBranchProtectedScope: 1 |
Whether this function contains a VLA, @try, try, C++ initializer, or anything else that can't be jumped past. | |
bool | HasBranchIntoScope: 1 |
Whether this function contains any switches or direct gotos. | |
bool | HasIndirectGoto: 1 |
Whether this function contains any indirect gotos. | |
bool | HasMustTail: 1 |
Whether this function contains any statement marked with [[clang::musttail]]. | |
bool | HasDroppedStmt: 1 |
Whether a statement was dropped because it was invalid. | |
bool | HasOMPDeclareReductionCombiner: 1 |
True if current scope is for OpenMP declare reduction combiner. | |
bool | HasFallthroughStmt: 1 |
Whether there is a fallthrough statement in this function. | |
bool | UsesFPIntrin: 1 |
Whether this function uses constrained floating point intrinsics. | |
bool | HasPotentialAvailabilityViolations: 1 |
Whether we make reference to a declaration that could be unavailable. | |
bool | ObjCShouldCallSuper: 1 |
A flag that is set when parsing a method that must call super's implementation, such as -dealloc , -finalize , or any method marked with __attribute__((objc_requires_super)) . | |
bool | ObjCIsDesignatedInit: 1 |
True when this is a method marked as a designated initializer. | |
bool | ObjCWarnForNoDesignatedInitChain: 1 |
This starts true for a method marked as designated initializer and will be set to false if there is an invocation to a designated initializer of the super class. | |
bool | ObjCIsSecondaryInit: 1 |
True when this is an initializer method not marked as a designated initializer within a class that has at least one initializer marked as a designated initializer. | |
bool | ObjCWarnForNoInitDelegation: 1 |
This starts true for a secondary initializer method and will be set to false if there is an invocation of an initializer on 'self'. | |
bool | NeedsCoroutineSuspends: 1 |
True only when this function has not already built, or attempted to build, the initial and final coroutine suspend points. | |
unsigned char | FirstCoroutineStmtKind: 2 |
An enumeration representing the kind of the first coroutine statement in the function. | |
bool | FoundImmediateEscalatingExpression: 1 |
Whether we found an immediate-escalating expression. | |
SourceLocation | FirstCoroutineStmtLoc |
First coroutine statement in the current function. | |
SourceLocation | FirstReturnLoc |
First 'return' statement in the current function. | |
SourceLocation | FirstCXXOrObjCTryLoc |
First C++ 'try' or ObjC @try statement in the current function. | |
enum clang::sema::FunctionScopeInfo:: { ... } | FirstTryType = Unknown |
SourceLocation | FirstSEHTryLoc |
First SEH '__try' statement in the current function. | |
SourceLocation | FirstVLALoc |
First use of a VLA within the current function. | |
SmallVector< SwitchInfo, 8 > | SwitchStack |
SwitchStack - This is the current set of active switch statements in the block. | |
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. | |
VarDecl * | CoroutinePromise = nullptr |
The promise object for this coroutine, if any. | |
llvm::SmallMapVector< ParmVarDecl *, Stmt *, 4 > | CoroutineParameterMoves |
A mapping between the coroutine function parameters that were moved to the coroutine frame, and their move statements. | |
std::pair< Stmt *, Stmt * > | CoroutineSuspends |
The initial and final coroutine suspend points. | |
SmallVector< CompoundScopeInfo, 4 > | CompoundScopes |
The stack of currently active compound statement scopes in the function. | |
llvm::SmallPtrSet< const BlockDecl *, 1 > | Blocks |
The set of blocks that are introduced in this function. | |
llvm::TinyPtrVector< VarDecl * > | ByrefBlockVars |
The set of __block variables that are introduced in this function. | |
SmallVector< PossiblyUnreachableDiag, 4 > | PossiblyUnreachableDiags |
A list of PartialDiagnostics created but delayed within the current function scope. | |
llvm::SmallPtrSet< const ParmVarDecl *, 8 > | ModifiedNonNullParams |
A list of parameters which have the nonnull attribute and are modified in the function. | |
llvm::SmallVector< AddrLabelExpr *, 4 > | AddrLabels |
The set of GNU address of label extension "&&label". | |
Protected Types | |
enum | ScopeKind { SK_Function , SK_Block , SK_Lambda , SK_CapturedRegion } |
Protected Member Functions | |
FunctionScopeInfo (const FunctionScopeInfo &)=default | |
Retains information about a function, method, or block that is currently being parsed.
Definition at line 104 of file ScopeInfo.h.
using clang::sema::FunctionScopeInfo::SwitchInfo = llvm::PointerIntPair<SwitchStmt*, 1, bool> |
A SwitchStmt, along with a flag indicating if its list of case statements is incomplete (because we dropped an invalid one while parsing).
Definition at line 205 of file ScopeInfo.h.
using clang::sema::FunctionScopeInfo::WeakObjectUseMap = llvm::SmallDenseMap<WeakObjectProfileTy, WeakUseVector, 8, WeakObjectProfileTy::DenseMapInfo> |
Used to collect all uses of weak objects in a function body.
Part of the implementation of -Wrepeated-use-of-weak.
Definition at line 378 of file ScopeInfo.h.
Used to collect uses of a particular weak object in a function body.
Part of the implementation of -Wrepeated-use-of-weak.
Definition at line 373 of file ScopeInfo.h.
anonymous enum |
Enumerator | |
---|---|
TryLocIsCXX | |
TryLocIsObjC | |
Unknown |
Definition at line 190 of file ScopeInfo.h.
|
protected |
Enumerator | |
---|---|
SK_Function | |
SK_Block | |
SK_Lambda | |
SK_CapturedRegion |
Definition at line 106 of file ScopeInfo.h.
|
protecteddefault |
|
inline |
Definition at line 392 of file ScopeInfo.h.
|
virtual |
Definition at line 260 of file ScopeInfo.cpp.
|
inline |
Definition at line 493 of file ScopeInfo.h.
References Blocks.
Referenced by clang::Sema::ActOnBlockStmtExpr().
|
inline |
Definition at line 498 of file ScopeInfo.h.
References ByrefBlockVars.
Referenced by clang::Sema::CheckCompleteVariableDeclaration().
void FunctionScopeInfo::Clear | ( | ) |
Clear out the information in this function scope, making it suitable for reuse.
Definition at line 25 of file ScopeInfo.cpp.
References AddrLabels, Blocks, ByrefBlockVars, CoroutineParameterMoves, CoroutinePromise, CoroutineSuspends, FirstCoroutineStmtLoc, FirstCXXOrObjCTryLoc, FirstReturnLoc, FirstSEHTryLoc, FirstVLALoc, FoundImmediateEscalatingExpression, HasBranchIntoScope, HasBranchProtectedScope, HasDroppedStmt, HasFallthroughStmt, HasIndirectGoto, HasOMPDeclareReductionCombiner, HasPotentialAvailabilityViolations, ModifiedNonNullParams, NeedsCoroutineSuspends, ObjCIsDesignatedInit, ObjCIsSecondaryInit, ObjCShouldCallSuper, ObjCWarnForNoDesignatedInitChain, ObjCWarnForNoInitDelegation, PossiblyUnreachableDiags, clang::DiagnosticErrorTrap::reset(), Returns, SwitchStack, and UsesFPIntrin.
|
inline |
Definition at line 518 of file ScopeInfo.h.
References clang::sema::CoAwait, clang::sema::CoReturn, clang::sema::CoYield, FirstCoroutineStmtKind, FirstCoroutineStmtLoc, and clang::SourceLocation::isValid().
Referenced by clang::Sema::ActOnReturnStmt(), and checkReturnStmtInCoroutine().
|
inline |
Definition at line 431 of file ScopeInfo.h.
Referenced by diagnoseRepeatedUseOfWeak().
|
inline |
Definition at line 540 of file ScopeInfo.h.
References CoroutineSuspends, and NeedsCoroutineSuspends.
|
inline |
Determine whether an unrecoverable error has occurred within this function.
Note that this may return false even if the function body is invalid, because the errors may be suppressed if they're caused by prior invalid declarations.
FIXME: Migrate the caller of this to use containsErrors() instead once it's ready.
Definition at line 412 of file ScopeInfo.h.
References clang::DiagnosticErrorTrap::hasUnrecoverableErrorOccurred().
|
inline |
Definition at line 502 of file ScopeInfo.h.
References FirstCoroutineStmtLoc, and clang::SourceLocation::isInvalid().
Referenced by clang::Sema::ActOnFinishFunctionBody(), clang::Sema::ActOnReturnStmt(), CheckFallThroughForBody(), and clang::sema::AnalysisBasedWarnings::IssueWarnings().
|
inline |
Definition at line 556 of file ScopeInfo.h.
References Kind, and SK_Function.
void FunctionScopeInfo::markSafeWeakUse | ( | const Expr * | E | ) |
Record that a given expression is a "safe" access of a weak object (e.g.
assigning it to a strong variable.)
Part of the implementation of -Wrepeated-use-of-weak.
Definition at line 161 of file ScopeInfo.cpp.
References E, clang::ObjCPropertyDecl::findPropertyDecl(), clang::PseudoObjectExpr::getSyntacticForm(), clang::Expr::IgnoreParenCasts(), and markSafeWeakUse().
Referenced by clang::Sema::CheckAssignmentOperands(), clang::Sema::checkUnsafeExprAssigns(), and markSafeWeakUse().
|
inline |
Definition at line 487 of file ScopeInfo.h.
References HasBranchIntoScope, HasBranchProtectedScope, HasDroppedStmt, HasIndirectGoto, and HasMustTail.
Referenced by clang::Sema::ActOnFinishFunctionBody().
|
inline |
Record that a weak object was accessed.
Part of the implementation of -Wrepeated-use-of-weak.
Definition at line 1087 of file ScopeInfo.h.
References E.
Referenced by clang::Sema::BuildDeclRefExpr(), clang::SemaObjC::BuildInstanceMessage(), clang::SemaObjC::BuildIvarRefExpr(), and LookupMemberExpr().
void FunctionScopeInfo::recordUseOfWeak | ( | const ObjCMessageExpr * | Msg, |
const ObjCPropertyDecl * | Prop | ||
) |
Definition at line 153 of file ScopeInfo.cpp.
References clang::ObjCMessageExpr::getInstanceReceiver(), and clang::ObjCMessageExpr::getNumArgs().
Definition at line 544 of file ScopeInfo.h.
References CoroutineSuspends, and NeedsCoroutineSuspends.
|
inline |
Definition at line 504 of file ScopeInfo.h.
References clang::sema::CoAwait, clang::sema::CoReturn, clang::sema::CoYield, FirstCoroutineStmtLoc, clang::SourceLocation::isInvalid(), and Loc.
|
inline |
Definition at line 435 of file ScopeInfo.h.
References HasBranchIntoScope.
|
inline |
Definition at line 439 of file ScopeInfo.h.
References HasBranchProtectedScope.
Referenced by clang::Sema::BuildCompoundLiteralExpr(), setHasCXXTry(), setHasObjCTry(), and setHasSEHTry().
|
inline |
Definition at line 465 of file ScopeInfo.h.
References FirstCXXOrObjCTryLoc, FirstTryType, setHasBranchProtectedScope(), and TryLocIsCXX.
Referenced by clang::Sema::ActOnCXXTryBlock().
|
inline |
Definition at line 449 of file ScopeInfo.h.
References HasDroppedStmt.
|
inline |
Definition at line 457 of file ScopeInfo.h.
References HasFallthroughStmt.
|
inline |
Definition at line 443 of file ScopeInfo.h.
References HasIndirectGoto.
|
inline |
Definition at line 447 of file ScopeInfo.h.
References HasMustTail.
|
inline |
Definition at line 471 of file ScopeInfo.h.
References FirstCXXOrObjCTryLoc, FirstTryType, setHasBranchProtectedScope(), and TryLocIsObjC.
Referenced by clang::SemaObjC::ActOnObjCAtTryStmt().
|
inline |
Definition at line 453 of file ScopeInfo.h.
References HasOMPDeclareReductionCombiner.
Referenced by clang::SemaOpenMP::ActOnOpenMPDeclareReductionCombinerStart().
|
inline |
Definition at line 477 of file ScopeInfo.h.
References FirstSEHTryLoc, and setHasBranchProtectedScope().
Referenced by clang::Sema::ActOnSEHTryBlock().
|
inline |
Definition at line 482 of file ScopeInfo.h.
References FirstVLALoc, and clang::SourceLocation::isInvalid().
Definition at line 534 of file ScopeInfo.h.
References CoroutineSuspends, and NeedsCoroutineSuspends.
|
inline |
Definition at line 461 of file ScopeInfo.h.
References UsesFPIntrin.
Referenced by clang::Sema::ActOnAfterCompoundStatementLeadingPragmas().
llvm::SmallVector<AddrLabelExpr *, 4> clang::sema::FunctionScopeInfo::AddrLabels |
The set of GNU address of label extension "&&label".
Definition at line 246 of file ScopeInfo.h.
Referenced by clang::Sema::ActOnAddrLabel(), and Clear().
llvm::SmallPtrSet<const BlockDecl *, 1> clang::sema::FunctionScopeInfo::Blocks |
The set of blocks that are introduced in this function.
Definition at line 231 of file ScopeInfo.h.
Referenced by addBlock(), Clear(), and markEscapingByrefs().
llvm::TinyPtrVector<VarDecl *> clang::sema::FunctionScopeInfo::ByrefBlockVars |
The set of __block variables that are introduced in this function.
Definition at line 234 of file ScopeInfo.h.
Referenced by addByrefBlockVar(), Clear(), and markEscapingByrefs().
SmallVector<CompoundScopeInfo, 4> clang::sema::FunctionScopeInfo::CompoundScopes |
The stack of currently active compound statement scopes in the function.
Definition at line 228 of file ScopeInfo.h.
Referenced by clang::Sema::ActOnCompoundStmt(), clang::SemaOpenMP::ActOnOpenMPDeclareMapperDirective(), clang::SemaOpenMP::ActOnOpenMPDeclareReductionDirectiveStart(), clang::Sema::getCurCompoundScope(), and clang::Sema::PopCompoundScope().
llvm::SmallMapVector<ParmVarDecl *, Stmt *, 4> clang::sema::FunctionScopeInfo::CoroutineParameterMoves |
A mapping between the coroutine function parameters that were moved to the coroutine frame, and their move statements.
Definition at line 221 of file ScopeInfo.h.
Referenced by Clear().
VarDecl* clang::sema::FunctionScopeInfo::CoroutinePromise = nullptr |
The promise object for this coroutine, if any.
Definition at line 217 of file ScopeInfo.h.
Referenced by CheckFallThroughForBody(), and Clear().
The initial and final coroutine suspend points.
Definition at line 224 of file ScopeInfo.h.
Referenced by Clear(), hasInvalidCoroutineSuspends(), setCoroutineSuspends(), and setNeedsCoroutineSuspends().
unsigned char clang::sema::FunctionScopeInfo::FirstCoroutineStmtKind |
An enumeration representing the kind of the first coroutine statement in the function.
One of co_return, co_await, or co_yield.
Definition at line 176 of file ScopeInfo.h.
Referenced by getFirstCoroutineStmtKeyword().
SourceLocation clang::sema::FunctionScopeInfo::FirstCoroutineStmtLoc |
First coroutine statement in the current function.
(ex co_return, co_await, co_yield)
Definition at line 183 of file ScopeInfo.h.
Referenced by clang::Sema::ActOnReturnStmt(), checkReturnStmtInCoroutine(), Clear(), getFirstCoroutineStmtKeyword(), isCoroutine(), and setFirstCoroutineStmt().
SourceLocation clang::sema::FunctionScopeInfo::FirstCXXOrObjCTryLoc |
First C++ 'try' or ObjC @try statement in the current function.
Definition at line 189 of file ScopeInfo.h.
Referenced by clang::Sema::ActOnSEHTryBlock(), Clear(), setHasCXXTry(), and setHasObjCTry().
SourceLocation clang::sema::FunctionScopeInfo::FirstReturnLoc |
First 'return' statement in the current function.
Definition at line 186 of file ScopeInfo.h.
Referenced by clang::Sema::ActOnReturnStmt(), checkReturnStmtInCoroutine(), and Clear().
SourceLocation clang::sema::FunctionScopeInfo::FirstSEHTryLoc |
First SEH '__try' statement in the current function.
Definition at line 193 of file ScopeInfo.h.
Referenced by clang::Sema::ActOnCXXTryBlock(), clang::SemaObjC::ActOnObjCAtTryStmt(), Clear(), and setHasSEHTry().
enum { ... } clang::sema::FunctionScopeInfo::FirstTryType |
Referenced by clang::Sema::ActOnSEHTryBlock(), setHasCXXTry(), and setHasObjCTry().
SourceLocation clang::sema::FunctionScopeInfo::FirstVLALoc |
First use of a VLA within the current function.
Definition at line 196 of file ScopeInfo.h.
Referenced by Clear(), and setHasVLA().
bool clang::sema::FunctionScopeInfo::FoundImmediateEscalatingExpression |
Whether we found an immediate-escalating expression.
Definition at line 179 of file ScopeInfo.h.
Referenced by clang::Sema::CheckImmediateEscalatingFunctionDefinition(), and Clear().
bool clang::sema::FunctionScopeInfo::HasBranchIntoScope |
Whether this function contains any switches or direct gotos.
Definition at line 122 of file ScopeInfo.h.
Referenced by Clear(), NeedsScopeChecking(), and setHasBranchIntoScope().
bool clang::sema::FunctionScopeInfo::HasBranchProtectedScope |
Whether this function contains a VLA, @try, try, C++ initializer, or anything else that can't be jumped past.
Definition at line 119 of file ScopeInfo.h.
Referenced by Clear(), NeedsScopeChecking(), and setHasBranchProtectedScope().
bool clang::sema::FunctionScopeInfo::HasDroppedStmt |
Whether a statement was dropped because it was invalid.
Definition at line 132 of file ScopeInfo.h.
Referenced by Clear(), NeedsScopeChecking(), and setHasDroppedStmt().
bool clang::sema::FunctionScopeInfo::HasFallthroughStmt |
Whether there is a fallthrough statement in this function.
Definition at line 138 of file ScopeInfo.h.
Referenced by Clear(), clang::sema::AnalysisBasedWarnings::IssueWarnings(), and setHasFallthroughStmt().
bool clang::sema::FunctionScopeInfo::HasIndirectGoto |
Whether this function contains any indirect gotos.
Definition at line 125 of file ScopeInfo.h.
Referenced by Clear(), NeedsScopeChecking(), and setHasIndirectGoto().
bool clang::sema::FunctionScopeInfo::HasMustTail |
Whether this function contains any statement marked with [[clang::musttail]].
Definition at line 129 of file ScopeInfo.h.
Referenced by NeedsScopeChecking(), and setHasMustTail().
bool clang::sema::FunctionScopeInfo::HasOMPDeclareReductionCombiner |
True if current scope is for OpenMP declare reduction combiner.
Definition at line 135 of file ScopeInfo.h.
Referenced by Clear(), clang::Sema::DiagnoseUseOfDecl(), and setHasOMPDeclareReductionCombiner().
bool clang::sema::FunctionScopeInfo::HasPotentialAvailabilityViolations |
Whether we make reference to a declaration that could be unavailable.
Definition at line 145 of file ScopeInfo.h.
Referenced by clang::Sema::ActOnFinishFunctionBody(), and Clear().
ScopeKind clang::sema::FunctionScopeInfo::Kind |
What kind of scope we are describing.
Definition at line 115 of file ScopeInfo.h.
Referenced by clang::sema::BlockScopeInfo::BlockScopeInfo(), clang::sema::CapturedRegionScopeInfo::CapturedRegionScopeInfo(), clang::sema::CapturingScopeInfo::classof(), clang::sema::BlockScopeInfo::classof(), clang::sema::CapturedRegionScopeInfo::classof(), clang::sema::LambdaScopeInfo::classof(), isPlainFunction(), and clang::sema::LambdaScopeInfo::LambdaScopeInfo().
llvm::SmallPtrSet<const ParmVarDecl *, 8> clang::sema::FunctionScopeInfo::ModifiedNonNullParams |
A list of parameters which have the nonnull attribute and are modified in the function.
Definition at line 243 of file ScopeInfo.h.
Referenced by Clear().
bool clang::sema::FunctionScopeInfo::NeedsCoroutineSuspends |
True only when this function has not already built, or attempted to build, the initial and final coroutine suspend points.
Definition at line 171 of file ScopeInfo.h.
Referenced by Clear(), hasInvalidCoroutineSuspends(), setCoroutineSuspends(), and setNeedsCoroutineSuspends().
bool clang::sema::FunctionScopeInfo::ObjCIsDesignatedInit |
True when this is a method marked as a designated initializer.
Definition at line 153 of file ScopeInfo.h.
Referenced by clang::SemaObjC::ActOnStartOfObjCMethodDef(), clang::SemaObjC::BuildInstanceMessage(), and Clear().
bool clang::sema::FunctionScopeInfo::ObjCIsSecondaryInit |
True when this is an initializer method not marked as a designated initializer within a class that has at least one initializer marked as a designated initializer.
Definition at line 163 of file ScopeInfo.h.
Referenced by clang::SemaObjC::ActOnStartOfObjCMethodDef(), clang::SemaObjC::BuildInstanceMessage(), and Clear().
bool clang::sema::FunctionScopeInfo::ObjCShouldCallSuper |
A flag that is set when parsing a method that must call super's implementation, such as -dealloc
, -finalize
, or any method marked with __attribute__((objc_requires_super))
.
Definition at line 150 of file ScopeInfo.h.
Referenced by clang::Sema::ActOnFinishFunctionBody(), clang::SemaObjC::ActOnStartOfObjCMethodDef(), clang::SemaObjC::ActOnSuperMessage(), and Clear().
bool clang::sema::FunctionScopeInfo::ObjCWarnForNoDesignatedInitChain |
This starts true for a method marked as designated initializer and will be set to false if there is an invocation to a designated initializer of the super class.
Definition at line 158 of file ScopeInfo.h.
Referenced by clang::Sema::ActOnFinishFunctionBody(), clang::SemaObjC::ActOnStartOfObjCMethodDef(), clang::SemaObjC::BuildInstanceMessage(), and Clear().
bool clang::sema::FunctionScopeInfo::ObjCWarnForNoInitDelegation |
This starts true for a secondary initializer method and will be set to false if there is an invocation of an initializer on 'self'.
Definition at line 167 of file ScopeInfo.h.
Referenced by clang::Sema::ActOnFinishFunctionBody(), clang::SemaObjC::ActOnStartOfObjCMethodDef(), clang::SemaObjC::BuildInstanceMessage(), and Clear().
SmallVector<PossiblyUnreachableDiag, 4> clang::sema::FunctionScopeInfo::PossiblyUnreachableDiags |
A list of PartialDiagnostics created but delayed within the current function scope.
These diagnostics are vetted for reachability prior to being emitted.
Definition at line 239 of file ScopeInfo.h.
Referenced by Clear(), flushDiagnostics(), and clang::sema::AnalysisBasedWarnings::IssueWarnings().
SmallVector<ReturnStmt*, 4> clang::sema::FunctionScopeInfo::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.
Definition at line 214 of file ScopeInfo.h.
Referenced by Clear(), and clang::Sema::deduceClosureReturnType().
SmallVector<SwitchInfo, 8> clang::sema::FunctionScopeInfo::SwitchStack |
SwitchStack - This is the current set of active switch statements in the block.
Definition at line 209 of file ScopeInfo.h.
Referenced by clang::Sema::ActOnCaseExpr(), clang::Sema::ActOnCaseStmt(), clang::Sema::ActOnDefaultStmt(), clang::Sema::ActOnFinishSwitchStmt(), clang::Sema::ActOnStartOfSwitchStmt(), AddKeywordsToConsumer(), AddOrdinaryNameResults(), Clear(), and clang::SemaCodeCompletion::CodeCompleteCase().
bool clang::sema::FunctionScopeInfo::UsesFPIntrin |
Whether this function uses constrained floating point intrinsics.
Definition at line 141 of file ScopeInfo.h.
Referenced by clang::Sema::ActOnFinishFunctionBody(), Clear(), and setUsesFPIntrin().