clang: clang::Scope Class Reference (original) (raw)

Scope - A scope is a transient data structure that is used while parsing the program. More...

#include "[clang/Sema/Scope.h](Scope%5F8h%5Fsource.html)"

Public Types
enum ScopeFlags { NoScope = 0 , FnScope = 0x01 , BreakScope = 0x02 , ContinueScope = 0x04 , DeclScope = 0x08 , ControlScope = 0x10 , ClassScope = 0x20 , BlockScope = 0x40 , TemplateParamScope = 0x80 , FunctionPrototypeScope = 0x100 , FunctionDeclarationScope = 0x200 , AtCatchScope = 0x400 , ObjCMethodScope = 0x800 , SwitchScope = 0x1000 , TryScope = 0x2000 , FnTryCatchScope = 0x4000 , OpenMPDirectiveScope = 0x8000 , OpenMPLoopDirectiveScope = 0x10000 , OpenMPSimdDirectiveScope = 0x20000 , EnumScope = 0x40000 , SEHTryScope = 0x80000 , SEHExceptScope = 0x100000 , SEHFilterScope = 0x200000 , CompoundStmtScope = 0x400000 , ClassInheritanceScope = 0x800000 , CatchScope = 0x1000000 , ConditionVarScope = 0x2000000 , OpenMPOrderClauseScope = 0x4000000 , LambdaScope = 0x8000000 , OpenACCComputeConstructScope = 0x10000000 , OpenACCLoopConstructScope = 0x20000000 , TypeAliasScope = 0x40000000 , FriendScope = 0x80000000 }
ScopeFlags - These are bitfields that are or'd together when creating a scope, which defines the sorts of things the scope contains. More...
using decl_range = llvm::iterator_rangeDeclSetTy::iterator
using using_directives_range
Public Member Functions
Scope (Scope *Parent, unsigned ScopeFlags, DiagnosticsEngine &Diag)
unsigned getFlags () const
getFlags - Return the flags for this scope.
void setFlags (unsigned F)
LabelDecl * getPrecedingLabel () const
Get the label that precedes this scope.
void setPrecedingLabel (LabelDecl *LD)
bool isBlockScope () const
isBlockScope - Return true if this scope correspond to a closure.
const Scope * getParent () const
getParent - Return the scope that this is nested in.
Scope * getParent ()
const Scope * getFnParent () const
getFnParent - Return the closest scope that is a function body.
Scope * getFnParent ()
const Scope * getMSLastManglingParent () const
Scope * getMSLastManglingParent ()
Scope * getContinueParent ()
getContinueParent - Return the closest scope that a continue statement would be affected by.
const Scope * getContinueParent () const
void setIsConditionVarScope (bool InConditionVarScope)
bool isConditionVarScope () const
Scope * getBreakParent ()
getBreakParent - Return the closest scope that a break statement would be affected by.
const Scope * getBreakParent () const
Scope * getBlockParent ()
const Scope * getBlockParent () const
Scope * getTemplateParamParent ()
const Scope * getTemplateParamParent () const
Scope * getDeclParent ()
const Scope * getDeclParent () const
unsigned getDepth () const
Returns the depth of this scope. The translation-unit has scope depth 0.
unsigned getFunctionPrototypeDepth () const
Returns the number of function prototype scopes in this scope chain.
unsigned getNextFunctionPrototypeIndex ()
Return the number of parameters declared in this function prototype, increasing it by one for the next call.
decl_range decls () const
bool decl_empty () const
void AddDecl (Decl *D)
void RemoveDecl (Decl *D)
void incrementMSManglingNumber ()
void decrementMSManglingNumber ()
unsigned getMSLastManglingNumber () const
unsigned getMSCurManglingNumber () const
bool isDeclScope (const Decl *D) const
isDeclScope - Return true if this is the scope that the specified decl is declared in.
DeclContext * getEntity () const
Get the entity corresponding to this scope.
DeclContext * getLookupEntity () const
Get the DeclContext in which to continue unqualified lookup after a lookup in this scope.
void setEntity (DeclContext *E)
void setLookupEntity (DeclContext *E)
bool hasUnrecoverableErrorOccurred () const
Determine whether any unrecoverable errors have occurred within this scope.
bool isFunctionScope () const
isFunctionScope() - Return true if this scope is a function scope.
bool isClassScope () const
isClassScope - Return true if this scope is a class/struct/union scope.
bool isClassInheritanceScope () const
Determines whether this scope is between inheritance colon and the real class/struct definition.
bool isInCXXInlineMethodScope () const
isInCXXInlineMethodScope - Return true if this scope is a C++ inline method scope or is inside one.
bool isInCFunctionScope () const
isInObjcMethodScope - Return true if this scope is, or is contained, in an C function body.
bool isInObjcMethodScope () const
isInObjcMethodScope - Return true if this scope is, or is contained in, an Objective-C method body.
bool isInObjcMethodOuterScope () const
isInObjcMethodOuterScope - Return true if this scope is an Objective-C method outer most body.
bool isTemplateParamScope () const
isTemplateParamScope - Return true if this scope is a C++ template parameter scope.
bool isFunctionPrototypeScope () const
isFunctionPrototypeScope - Return true if this scope is a function prototype scope.
bool isFunctionDeclarationScope () const
isFunctionDeclarationScope - Return true if this scope is a function prototype scope.
bool isAtCatchScope () const
isAtCatchScope - Return true if this scope is @catch.
bool isCatchScope () const
isCatchScope - Return true if this scope is a C++ catch statement.
bool isSwitchScope () const
isSwitchScope - Return true if this scope is a switch scope.
bool isLoopScope () const
Return true if this scope is a loop.
bool isOpenMPDirectiveScope () const
Determines whether this scope is the OpenMP directive scope.
bool isOpenMPLoopDirectiveScope () const
Determine whether this scope is some OpenMP loop directive scope (for example, 'omp for', 'omp simd').
bool isOpenMPSimdDirectiveScope () const
Determine whether this scope is (or is nested into) some OpenMP loop simd directive scope (for example, 'omp simd', 'omp for simd').
bool isOpenMPLoopScope () const
Determine whether this scope is a loop having OpenMP loop directive attached.
bool isOpenMPOrderClauseScope () const
Determine whether this scope is some OpenMP directive with order clause which specifies concurrent scope.
bool isOpenACCComputeConstructScope () const
Determine whether this scope is the statement associated with an OpenACC Compute construct directive.
bool isOpenACCLoopConstructScope () const
bool isInOpenACCComputeConstructScope (ScopeFlags Flags=NoScope) const
Determine if this scope (or its parents) are a compute construct.
bool isContinueScope () const
Determine whether this scope is a while/do/for statement, which can have continue statements embedded into it.
bool isBreakOrContinueScope () const
Determine whether this is a scope which can have 'break' or 'continue' statements embedded into it.
bool isTryScope () const
Determine whether this scope is a C++ 'try' block.
bool isFnTryCatchScope () const
Determine whether this scope is a function-level C++ try or catch scope.
bool isSEHTryScope () const
Determine whether this scope is a SEH '__try' block.
bool isSEHExceptScope () const
Determine whether this scope is a SEH '__except' block.
bool isCompoundStmtScope () const
Determine whether this scope is a compound statement scope.
bool isControlScope () const
Determine whether this scope is a controlling scope in a if/switch/while/for statement.
bool isTypeAliasScope () const
Determine whether this scope is a type alias scope.
bool isFriendScope () const
Determine whether this scope is a friend scope.
bool Contains (const Scope &rhs) const
Returns if rhs has a higher scope depth than this.
bool containedInPrototypeScope () const
containedInPrototypeScope - Return true if this or a parent scope is a FunctionPrototypeScope.
void PushUsingDirective (UsingDirectiveDecl *UDir)
using_directives_range using_directives ()
void updateNRVOCandidate (VarDecl *VD)
void applyNRVO ()
void Init (Scope *parent, unsigned flags)
Init - This is used by the parser to implement scope caching.
void AddFlags (unsigned Flags)
Sets up the specified scope flags and adjusts the scope state variables accordingly.
void dumpImpl (raw_ostream &OS) const
void dump () const

Scope - A scope is a transient data structure that is used while parsing the program.

It assists with resolving identifiers to the appropriate declaration.

Definition at line 41 of file Scope.h.

decl_range

using clang::Scope::decl_range = llvm::iterator_rangeDeclSetTy::iterator

using_directives_range

Initial value:

llvm::iterator_rangeUsingDirectivesTy::iterator

Definition at line 647 of file Scope.h.

ScopeFlags

ScopeFlags - These are bitfields that are or'd together when creating a scope, which defines the sorts of things the scope contains.

Enumerator
NoScope
FnScope This indicates that the scope corresponds to a function, which means that labels are set here.
BreakScope This is a while, do, switch, for, etc that can have break statements embedded into it.
ContinueScope This is a while, do, for, which can have continue statements embedded into it.
DeclScope This is a scope that can contain a declaration. Some scopes just contain loop constructs but don't contain decls.
ControlScope The controlling scope in a if/switch/while/for statement.
ClassScope The scope of a struct/union/class definition.
BlockScope This is a scope that corresponds to a block/closure object. Blocks serve as top-level scopes for some objects like labels, they also prevent things like break and continue. BlockScopes always have the FnScope and DeclScope flags set as well.
TemplateParamScope This is a scope that corresponds to the template parameters of a C++ template. Template parameter scope starts at the 'template' keyword and ends when the template declaration ends.
FunctionPrototypeScope This is a scope that corresponds to the parameters within a function prototype.
FunctionDeclarationScope This is a scope that corresponds to the parameters within a function prototype for a function declaration (as opposed to any other kind of function declarator). Always has FunctionPrototypeScope set as well.
AtCatchScope This is a scope that corresponds to the Objective-C @catch statement.
ObjCMethodScope This scope corresponds to an Objective-C method body. It always has FnScope and DeclScope set as well.
SwitchScope This is a scope that corresponds to a switch statement.
TryScope This is the scope of a C++ try statement.
FnTryCatchScope This is the scope for a function-level C++ try or catch scope.
OpenMPDirectiveScope This is the scope of OpenMP executable directive.
OpenMPLoopDirectiveScope This is the scope of some OpenMP loop directive.
OpenMPSimdDirectiveScope This is the scope of some OpenMP simd directive. For example, it is used for 'omp simd', 'omp for simd'. This flag is propagated to children scopes.
EnumScope This scope corresponds to an enum.
SEHTryScope This scope corresponds to an SEH try.
SEHExceptScope This scope corresponds to an SEH except.
SEHFilterScope We are currently in the filter expression of an SEH except block.
CompoundStmtScope This is a compound statement scope.
ClassInheritanceScope We are between inheritance colon and the real class/struct definition scope.
CatchScope This is the scope of a C++ catch statement.
ConditionVarScope This is a scope in which a condition variable is currently being parsed. If such a scope is a ContinueScope, it's invalid to jump to the continue block from here.
OpenMPOrderClauseScope This is a scope of some OpenMP directive with order clause which specifies concurrent.
LambdaScope This is the scope for a lambda, after the lambda introducer. Lambdas need two FunctionPrototypeScope scopes (because there is a template scope in between), the outer scope does not increase the depth of recursion.
OpenACCComputeConstructScope This is the scope of an OpenACC Compute Construct, which restricts jumping into/out of it. We also use this to represent 'combined' constructs, since they have the same behavior.
OpenACCLoopConstructScope This is the scope of an OpenACC Loop/Combined construct, which is used to determine whether a 'cache' construct variable reference is legal.
TypeAliasScope This is a scope of type alias declaration.
FriendScope This is a scope of friend declaration.

Definition at line 45 of file Scope.h.

Definition at line 265 of file Scope.h.

References Diag(), clang::Init, and Scope().

Referenced by CollectARMPACBTIOptions(), containedInPrototypeScope(), Contains(), decrementMSManglingNumber(), dumpImpl(), getBlockParent(), getBlockParent(), getBreakParent(), getBreakParent(), getContinueParent(), getContinueParent(), getDeclParent(), getDeclParent(), getFnParent(), getFnParent(), getMSLastManglingNumber(), getMSLastManglingParent(), getMSLastManglingParent(), getParent(), getParent(), getTemplateParamParent(), getTemplateParamParent(), incrementMSManglingNumber(), Init(), isInCFunctionScope(), isInCXXInlineMethodScope(), isInObjcMethodOuterScope(), isInObjcMethodScope(), isInOpenACCComputeConstructScope(), isOpenMPLoopScope(), isSwitchScope(), Scope(), and updateNRVOCandidate().

AddDecl()

void clang::Scope::AddDecl ( Decl * D) inline

Definition at line 362 of file Scope.h.

References clang::isa().

Referenced by clang::Sema::ActOnDecompositionDeclarator(), clang::Sema::ActOnDelayedCXXMethodParameter(), clang::SemaObjC::ActOnIvar(), clang::SemaObjC::ActOnMethodParmDeclaration(), clang::Sema::ActOnNonTypeTemplateParameter(), clang::SemaObjC::ActOnObjCExceptionDecl(), clang::Sema::ActOnParamDeclarator(), clang::Sema::ActOnReenterCXXMethodParameter(), clang::Sema::ActOnReenterFunctionContext(), clang::Sema::ActOnReenterTemplateScope(), clang::Sema::ActOnTemplateTemplateParameter(), clang::Sema::ActOnTypeParameter(), and clang::Sema::PushOnScopeChains().

AddFlags()

applyNRVO()

void Scope::applyNRVO ( )

containedInPrototypeScope()

bool Scope::containedInPrototypeScope ( ) const

Contains()

bool clang::Scope::Contains ( const Scope & rhs) const inline

decl_empty()

bool clang::Scope::decl_empty ( ) const inline

decls()

decl_range clang::Scope::decls ( ) const inline

decrementMSManglingNumber()

void clang::Scope::decrementMSManglingNumber ( ) inline

dump()

LLVM_DUMP_METHOD void Scope::dump ( ) const

dumpImpl()

void Scope::dumpImpl ( raw_ostream & OS ) const

Definition at line 199 of file Scope.cpp.

References AtCatchScope, BlockScope, BreakScope, CatchScope, ClassInheritanceScope, ClassScope, CompoundStmtScope, ConditionVarScope, ContinueScope, ControlScope, DeclScope, EnumScope, FnScope, FnTryCatchScope, FriendScope, FunctionDeclarationScope, FunctionPrototypeScope, getEntity(), getFlags(), getMSCurManglingNumber(), getMSLastManglingNumber(), getParent(), LambdaScope, ObjCMethodScope, OpenACCComputeConstructScope, OpenACCLoopConstructScope, OpenMPDirectiveScope, OpenMPLoopDirectiveScope, OpenMPOrderClauseScope, OpenMPSimdDirectiveScope, Scope(), SEHExceptScope, SEHFilterScope, SEHTryScope, SwitchScope, TemplateParamScope, TryScope, and TypeAliasScope.

Referenced by dump().

getBlockParent() [1/2]

Scope * clang::Scope::getBlockParent ( ) inline

getBlockParent() [2/2]

const Scope * clang::Scope::getBlockParent ( ) const inline

getBreakParent() [1/2]

Scope * clang::Scope::getBreakParent ( ) inline

getBreakParent() [2/2]

const Scope * clang::Scope::getBreakParent ( ) const inline

getContinueParent() [1/2]

Scope * clang::Scope::getContinueParent ( ) inline

getContinueParent() [2/2]

const Scope * clang::Scope::getContinueParent ( ) const inline

getDeclParent() [1/2]

Scope * clang::Scope::getDeclParent ( ) inline

getDeclParent() [2/2]

const Scope * clang::Scope::getDeclParent ( ) const inline

getDepth()

unsigned clang::Scope::getDepth ( ) const inline

getEntity()

Get the entity corresponding to this scope.

Definition at line 401 of file Scope.h.

References isTemplateParamScope(), and clang::nullptr.

Referenced by applyNRVO(), clang::Sema::CheckTemplateDeclScope(), clang::SemaCodeCompletion::CodeCompleteNamespaceDecl(), clang::SemaCodeCompletion::CodeCompleteObjCMethodDecl(), clang::SemaCodeCompletion::CodeCompleteQualifiedId(), dumpImpl(), clang::Sema::EnterDeclaratorContext(), clang::Sema::ExitDeclaratorContext(), clang::Sema::getDestructorName(), clang::Sema::getNonFieldDeclScope(), clang::Sema::getScopeForDeclContext(), getTagInjectionScope(), clang::Sema::ImplicitlyDefineFunction(), clang::IdentifierResolver::isDeclInScope(), isNamespaceOrTranslationUnitScope(), isNamespaceScope(), clang::Sema::LookupName(), clang::Sema::PushOnScopeChains(), and clang::Sema::PushUsingDirective().

getFlags()

unsigned clang::Scope::getFlags ( ) const inline

getFlags - Return the flags for this scope.

Definition at line 271 of file Scope.h.

Referenced by clang::Sema::ActOnCXXThrow(), clang::Sema::ActOnPopScope(), clang::Sema::ActOnUsingDeclaration(), BuiltinSEHScopeCheck(), clang::Sema::CheckClassTemplate(), clang::SemaCodeCompletion::CodeCompleteDeclSpec(), clang::Sema::DiagnoseCommaOperator(), dumpImpl(), clang::Sema::getNonFieldDeclScope(), getTagInjectionScope(), handleDependencyAttr(), isAtCatchScope(), isBreakOrContinueScope(), isCatchScope(), isClassInheritanceScope(), isClassScope(), isCompoundStmtScope(), isContinueScope(), isControlScope(), isFnTryCatchScope(), isFriendScope(), isFunctionDeclarationScope(), isFunctionPrototypeScope(), isFunctionScope(), IsInFnTryBlockHandler(), isLoopScope(), isOpenACCComputeConstructScope(), isOpenACCLoopConstructScope(), isOpenMPDirectiveScope(), isOpenMPLoopDirectiveScope(), isOpenMPOrderClauseScope(), isOpenMPSimdDirectiveScope(), isSEHExceptScope(), isSEHTryScope(), isTemplateParamScope(), isTryScope(), isTypeAliasScope(), and clang::Sema::LookupName().

getFnParent() [1/2]

Scope * clang::Scope::getFnParent ( ) inline

getFnParent() [2/2]

const Scope * clang::Scope::getFnParent ( ) const inline

getFnParent - Return the closest scope that is a function body.

Definition at line 291 of file Scope.h.

References Scope().

Referenced by clang::Sema::ActOnFriendFunctionDecl(), clang::Sema::ActOnVariableDeclarator(), clang::Sema::CheckTypedefForVariablyModifiedType(), clang::SemaCodeCompletion::CodeCompleteAfterIf(), clang::SemaCodeCompletion::CodeCompleteExpression(), clang::SemaCodeCompletion::CodeCompleteInPreprocessorConditionalExclusion(), clang::SemaCodeCompletion::CodeCompleteOrdinaryName(), isInCXXInlineMethodScope(), IsInFnTryBlockHandler(), clang::Sema::LookupOrCreateLabel(), and clang::Sema::PushOnScopeChains().

getFunctionPrototypeDepth()

unsigned clang::Scope::getFunctionPrototypeDepth ( ) const inline

getLookupEntity()

DeclContext * clang::Scope::getLookupEntity ( ) const inline

Get the DeclContext in which to continue unqualified lookup after a lookup in this scope.

Definition at line 407 of file Scope.h.

getMSCurManglingNumber()

unsigned clang::Scope::getMSCurManglingNumber ( ) const inline

getMSLastManglingNumber()

unsigned clang::Scope::getMSLastManglingNumber ( ) const inline

getMSLastManglingParent() [1/2]

Scope * clang::Scope::getMSLastManglingParent ( ) inline

getMSLastManglingParent() [2/2]

const Scope * clang::Scope::getMSLastManglingParent ( ) const inline

getNextFunctionPrototypeIndex()

unsigned clang::Scope::getNextFunctionPrototypeIndex ( ) inline

getParent() [1/2]

Scope * clang::Scope::getParent ( ) inline

getParent() [2/2]

const Scope * clang::Scope::getParent ( ) const inline

getParent - Return the scope that this is nested in.

Definition at line 287 of file Scope.h.

References Scope().

Referenced by clang::Sema::ActOnBreakStmt(), clang::Sema::ActOnCXXThrow(), clang::Sema::ActOnFields(), clang::Sema::ActOnLambdaExpressionAfterIntroducer(), clang::SemaObjC::ActOnObjCAtThrowStmt(), clang::SemaOpenMP::ActOnOpenMPScanDirective(), clang::Sema::ActOnSEHLeaveStmt(), clang::Sema::ActOnStartNamespaceDef(), clang::Sema::ActOnStartOfFunctionDef(), clang::Sema::ActOnSuperScopeSpecifier(), AddRecordMembersCompletionResults(), applyNRVO(), buildDeclareReductionRef(), buildUserDefinedMapperRef(), BuiltinSEHScopeCheck(), CheckAccess(), clang::Sema::CheckClassTemplate(), clang::SemaOpenACC::CheckDeclReference(), clang::SemaCodeCompletion::CodeCompleteLambdaIntroducer(), clang::SemaCodeCompletion::CodeCompleteNamespaceDecl(), containedInPrototypeScope(), dumpImpl(), clang::Sema::EnterDeclaratorContext(), clang::Sema::EnterTemplatedContext(), clang::Sema::ExitDeclaratorContext(), clang::Parser::ExitScope(), FindLabeledBreakContinueScope(), findOuterContext(), clang::Sema::getNonFieldDeclScope(), clang::Sema::getScopeForDeclContext(), getTagInjectionScope(), clang::Sema::getTemplateDepth(), hasUserDefinedMapper(), clang::Sema::ImplicitlyDefineFunction(), clang::IdentifierResolver::isDeclInScope(), IsInFnTryBlockHandler(), isOpenMPLoopScope(), isWithinCatchScope(), clang::Sema::LookupName(), clang::Sema::PushOnScopeChains(), and setFlags().

getPrecedingLabel()

LabelDecl * clang::Scope::getPrecedingLabel ( ) const inline

getTemplateParamParent() [1/2]

Scope * clang::Scope::getTemplateParamParent ( ) inline

getTemplateParamParent() [2/2]

const Scope * clang::Scope::getTemplateParamParent ( ) const inline

hasUnrecoverableErrorOccurred()

bool clang::Scope::hasUnrecoverableErrorOccurred ( ) const inline

incrementMSManglingNumber()

void clang::Scope::incrementMSManglingNumber ( ) inline

Init()

isAtCatchScope()

bool clang::Scope::isAtCatchScope ( ) const inline

isBlockScope()

bool clang::Scope::isBlockScope ( ) const inline

isBlockScope - Return true if this scope correspond to a closure.

Definition at line 284 of file Scope.h.

References BlockScope.

isBreakOrContinueScope()

bool clang::Scope::isBreakOrContinueScope ( ) const inline

isCatchScope()

bool clang::Scope::isCatchScope ( ) const inline

isClassInheritanceScope()

bool clang::Scope::isClassInheritanceScope ( ) const inline

isClassScope()

bool clang::Scope::isClassScope ( ) const inline

isCompoundStmtScope()

bool clang::Scope::isCompoundStmtScope ( ) const inline

isConditionVarScope()

bool clang::Scope::isConditionVarScope ( ) const inline

isContinueScope()

bool clang::Scope::isContinueScope ( ) const inline

Determine whether this scope is a while/do/for statement, which can have continue statements embedded into it.

Definition at line 594 of file Scope.h.

References ContinueScope, and getFlags().

isControlScope()

bool clang::Scope::isControlScope ( ) const inline

isDeclScope()

bool clang::Scope::isDeclScope ( const Decl * D) const inline

isDeclScope - Return true if this is the scope that the specified decl is declared in.

Definition at line 398 of file Scope.h.

Referenced by clang::Sema::ActOnCXXThrow(), clang::Sema::ActOnExceptionDeclarator(), clang::SemaObjC::ActOnMethodParmDeclaration(), clang::Sema::ActOnParamDeclarator(), clang::Sema::ActOnTag(), applyNRVO(), buildDeclareReductionRef(), buildUserDefinedMapperRef(), clang::SemaOpenACC::CheckDeclReference(), clang::Sema::CleanupMergedEnum(), hasUserDefinedMapper(), clang::IdentifierResolver::isDeclInScope(), clang::Sema::LookupName(), and clang::Sema::PushOnScopeChains().

isFnTryCatchScope()

bool clang::Scope::isFnTryCatchScope ( ) const inline

isFriendScope()

bool clang::Scope::isFriendScope ( ) const inline

isFunctionDeclarationScope()

bool clang::Scope::isFunctionDeclarationScope ( ) const inline

isFunctionPrototypeScope()

bool clang::Scope::isFunctionPrototypeScope ( ) const inline

isFunctionScope()

bool clang::Scope::isFunctionScope ( ) const inline

isInCFunctionScope()

bool clang::Scope::isInCFunctionScope ( ) const inline

isInCXXInlineMethodScope()

bool clang::Scope::isInCXXInlineMethodScope ( ) const inline

isInCXXInlineMethodScope - Return true if this scope is a C++ inline method scope or is inside one.

Definition at line 438 of file Scope.h.

References getFnParent(), and Scope().

isInObjcMethodOuterScope()

bool clang::Scope::isInObjcMethodOuterScope ( ) const inline

isInObjcMethodOuterScope - Return true if this scope is an Objective-C method outer most body.

Definition at line 470 of file Scope.h.

References ObjCMethodScope, and Scope().

isInObjcMethodScope()

bool clang::Scope::isInObjcMethodScope ( ) const inline

isInOpenACCComputeConstructScope()

bool clang::Scope::isInOpenACCComputeConstructScope ( ScopeFlags Flags = NoScope) const inline

Determine if this scope (or its parents) are a compute construct.

If the argument is provided, the search will stop at any of the specified scopes. Otherwise, it will stop only at the normal 'no longer search' scopes.

Definition at line 575 of file Scope.h.

References AtCatchScope, BlockScope, ClassScope, FnScope, FunctionPrototypeScope, NoScope, ObjCMethodScope, Scope(), and TemplateParamScope.

isLoopScope()

bool clang::Scope::isLoopScope ( ) const inline

isOpenACCComputeConstructScope()

bool clang::Scope::isOpenACCComputeConstructScope ( ) const inline

isOpenACCLoopConstructScope()

bool clang::Scope::isOpenACCLoopConstructScope ( ) const inline

isOpenMPDirectiveScope()

bool clang::Scope::isOpenMPDirectiveScope ( ) const inline

isOpenMPLoopDirectiveScope()

bool clang::Scope::isOpenMPLoopDirectiveScope ( ) const inline

isOpenMPLoopScope()

bool clang::Scope::isOpenMPLoopScope ( ) const inline

isOpenMPOrderClauseScope()

bool clang::Scope::isOpenMPOrderClauseScope ( ) const inline

isOpenMPSimdDirectiveScope()

bool clang::Scope::isOpenMPSimdDirectiveScope ( ) const inline

Determine whether this scope is (or is nested into) some OpenMP loop simd directive scope (for example, 'omp simd', 'omp for simd').

Definition at line 545 of file Scope.h.

References getFlags(), and OpenMPSimdDirectiveScope.

isSEHExceptScope()

bool clang::Scope::isSEHExceptScope ( ) const inline

isSEHTryScope()

bool clang::Scope::isSEHTryScope ( ) const inline

isSwitchScope()

bool clang::Scope::isSwitchScope ( ) const inline

isTemplateParamScope()

bool clang::Scope::isTemplateParamScope ( ) const inline

isTemplateParamScope - Return true if this scope is a C++ template parameter scope.

Definition at line 481 of file Scope.h.

References getFlags(), and TemplateParamScope.

Referenced by clang::Sema::ActOnClassTemplateSpecialization(), clang::Sema::ActOnFields(), clang::Sema::ActOnNonTypeTemplateParameter(), clang::Sema::ActOnTemplateTemplateParameter(), clang::Sema::ActOnTypeParameter(), clang::Sema::CheckClassTemplate(), clang::Sema::EnterDeclaratorContext(), clang::Sema::EnterTemplatedContext(), getEntity(), and setEntity().

isTryScope()

bool clang::Scope::isTryScope ( ) const inline

isTypeAliasScope()

bool clang::Scope::isTypeAliasScope ( ) const inline

PushUsingDirective()

RemoveDecl()

void clang::Scope::RemoveDecl ( Decl * D) inline

setEntity()

setFlags()

void clang::Scope::setFlags ( unsigned F) inline

setIsConditionVarScope()

void clang::Scope::setIsConditionVarScope ( bool InConditionVarScope) inline

setLookupEntity()

void clang::Scope::setLookupEntity ( DeclContext * E) inline

setPrecedingLabel()

void clang::Scope::setPrecedingLabel ( LabelDecl * LD) inline

updateNRVOCandidate()

void Scope::updateNRVOCandidate ( VarDecl * VD )

using_directives()

using_directives_range clang::Scope::using_directives ( ) inline

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