clang
3.9.0
|
Pseudo declaration for capturing expressions. More...
#include <DeclOpenMP.h>
Static Public Member Functions | |
static OMPCapturedExprDecl * | Create (ASTContext &C, DeclContext *DC, IdentifierInfo *Id, QualType T) |
static OMPCapturedExprDecl * | CreateDeserialized (ASTContext &C, unsigned ID) |
static bool | classof (const Decl *D) |
static bool | classofKind (Kind K) |
![]() | |
static const char * | getStorageClassSpecifierString (StorageClass SC) |
getStorageClassSpecifierString - Return the string used to specify the storage class SC . More... | |
static VarDecl * | Create (ASTContext &C, DeclContext *DC, SourceLocation StartLoc, SourceLocation IdLoc, IdentifierInfo *Id, QualType T, TypeSourceInfo *TInfo, StorageClass S) |
static VarDecl * | CreateDeserialized (ASTContext &C, unsigned ID) |
static bool | classof (const Decl *D) |
static bool | classofKind (Kind K) |
![]() | |
static bool | classof (const Decl *D) |
static bool | classofKind (Kind K) |
![]() | |
static bool | classof (const Decl *D) |
static bool | classofKind (Kind K) |
![]() | |
static bool | classof (const Decl *D) |
static bool | classofKind (Kind K) |
Friends | |
class | ASTDeclReader |
Additional Inherited Members | |
![]() | |
enum | InitializationStyle { CInit, CallInit, ListInit } |
Initialization styles. More... | |
enum | TLSKind { TLS_None, TLS_Static, TLS_Dynamic } |
Kinds of thread-local storage. More... | |
enum | DefinitionKind { DeclarationOnly, TentativeDefinition, Definition } |
typedef redeclarable_base::redecl_range | redecl_range |
typedef redeclarable_base::redecl_iterator | redecl_iterator |
![]() | |
enum | ExplicitVisibilityKind { VisibilityForType, VisibilityForValue } |
Kinds of explicit visibility. More... | |
![]() | |
typedef llvm::iterator_range < redecl_iterator > | redecl_range |
![]() | |
SourceRange | getSourceRange () const override LLVM_READONLY |
StorageClass | getStorageClass () const |
Returns the storage class as written in the source. More... | |
void | setStorageClass (StorageClass SC) |
void | setTSCSpec (ThreadStorageClassSpecifier TSC) |
ThreadStorageClassSpecifier | getTSCSpec () const |
TLSKind | getTLSKind () const |
bool | hasLocalStorage () const |
hasLocalStorage - Returns true if a variable with function scope is a non-static local variable. More... | |
bool | isStaticLocal () const |
isStaticLocal - Returns true if a variable with function scope is a static local variable. More... | |
bool | hasExternalStorage () const |
Returns true if a variable has extern or private_extern storage. More... | |
bool | hasGlobalStorage () const |
Returns true for all variables that do not have local storage. More... | |
StorageDuration | getStorageDuration () const |
Get the storage duration of this variable, per C++ [basic.stc]. More... | |
LanguageLinkage | getLanguageLinkage () const |
Compute the language linkage. More... | |
bool | isExternC () const |
Determines whether this variable is a variable with external, C linkage. More... | |
bool | isInExternCContext () const |
Determines whether this variable's context is, or is nested within, a C++ extern "C" linkage spec. More... | |
bool | isInExternCXXContext () const |
Determines whether this variable's context is, or is nested within, a C++ extern "C++" linkage spec. More... | |
bool | isLocalVarDecl () const |
isLocalVarDecl - Returns true for local variable declarations other than parameters. More... | |
bool | isLocalVarDeclOrParm () const |
Similar to isLocalVarDecl but also includes parameters. More... | |
bool | isFunctionOrMethodVarDecl () const |
isFunctionOrMethodVarDecl - Similar to isLocalVarDecl, but excludes variables declared in blocks. More... | |
bool | isStaticDataMember () const |
Determines whether this is a static data member. More... | |
VarDecl * | getCanonicalDecl () override |
const VarDecl * | getCanonicalDecl () const |
DefinitionKind | isThisDeclarationADefinition (ASTContext &) const |
Check whether this declaration is a definition. More... | |
DefinitionKind | isThisDeclarationADefinition () const |
DefinitionKind | hasDefinition (ASTContext &) const |
Check whether this variable is defined in this translation unit. More... | |
DefinitionKind | hasDefinition () const |
VarDecl * | getActingDefinition () |
Get the tentative definition that acts as the real definition in a TU. More... | |
const VarDecl * | getActingDefinition () const |
VarDecl * | getDefinition (ASTContext &) |
Get the real (not just tentative) definition for this declaration. More... | |
const VarDecl * | getDefinition (ASTContext &C) const |
VarDecl * | getDefinition () |
const VarDecl * | getDefinition () const |
bool | isOutOfLine () const override |
Determine whether this is or was instantiated from an out-of-line definition of a static data member. More... | |
bool | isFileVarDecl () const |
isFileVarDecl - Returns true for file scoped variable declaration. More... | |
const Expr * | getAnyInitializer () const |
getAnyInitializer - Get the initializer for this variable, no matter which declaration it is attached to. More... | |
const Expr * | getAnyInitializer (const VarDecl *&D) const |
getAnyInitializer - Get the initializer for this variable, no matter which declaration it is attached to. More... | |
bool | hasInit () const |
const Expr * | getInit () const |
Expr * | getInit () |
Stmt ** | getInitAddress () |
Retrieve the address of the initializer expression. More... | |
void | setInit (Expr *I) |
bool | isUsableInConstantExpressions (ASTContext &C) const |
Determine whether this variable's value can be used in a constant expression, according to the relevant language standard. More... | |
EvaluatedStmt * | ensureEvaluatedStmt () const |
Convert the initializer for this declaration to the elaborated EvaluatedStmt form, which contains extra information on the evaluated value of the initializer. More... | |
APValue * | evaluateValue () const |
Attempt to evaluate the value of the initializer attached to this declaration, and produce notes explaining why it cannot be evaluated or is not a constant expression. More... | |
APValue * | evaluateValue (SmallVectorImpl< PartialDiagnosticAt > &Notes) const |
APValue * | getEvaluatedValue () const |
Return the already-evaluated value of this variable's initializer, or NULL if the value is not yet known. More... | |
bool | isInitKnownICE () const |
Determines whether it is already known whether the initializer is an integral constant expression or not. More... | |
bool | isInitICE () const |
Determines whether the initializer is an integral constant expression, or in C++11, whether the initializer is a constant expression. More... | |
bool | checkInitIsICE () const |
Determine whether the value of the initializer attached to this declaration is an integral constant expression. More... | |
void | setInitStyle (InitializationStyle Style) |
InitializationStyle | getInitStyle () const |
The style of initialization for this declaration. More... | |
bool | isDirectInit () const |
Whether the initializer is a direct-initializer (list or call). More... | |
bool | isExceptionVariable () const |
Determine whether this variable is the exception variable in a C++ catch statememt or an Objective-C @catch statement. More... | |
void | setExceptionVariable (bool EV) |
bool | isNRVOVariable () const |
Determine whether this local variable can be used with the named return value optimization (NRVO). More... | |
void | setNRVOVariable (bool NRVO) |
bool | isCXXForRangeDecl () const |
Determine whether this variable is the for-range-declaration in a C++0x for-range statement. More... | |
void | setCXXForRangeDecl (bool FRD) |
bool | isARCPseudoStrong () const |
Determine whether this variable is an ARC pseudo-__strong variable. More... | |
void | setARCPseudoStrong (bool ps) |
bool | isInline () const |
Whether this variable is (C++1z) inline. More... | |
bool | isInlineSpecified () const |
void | setInlineSpecified () |
void | setImplicitlyInline () |
bool | isConstexpr () const |
Whether this variable is (C++11) constexpr. More... | |
void | setConstexpr (bool IC) |
bool | isInitCapture () const |
Whether this variable is the implicit variable for a lambda init-capture. More... | |
void | setInitCapture (bool IC) |
bool | isPreviousDeclInSameBlockScope () const |
Whether this local extern variable declaration's previous declaration was declared in the same block scope. More... | |
void | setPreviousDeclInSameBlockScope (bool Same) |
VarDecl * | getInstantiatedFromStaticDataMember () const |
If this variable is an instantiated static data member of a class template specialization, returns the templated static data member from which it was instantiated. More... | |
TemplateSpecializationKind | getTemplateSpecializationKind () const |
If this variable is an instantiation of a variable template or a static data member of a class template, determine what kind of template specialization or instantiation this is. More... | |
SourceLocation | getPointOfInstantiation () const |
If this variable is an instantiation of a variable template or a static data member of a class template, determine its point of instantiation. More... | |
MemberSpecializationInfo * | getMemberSpecializationInfo () const |
If this variable is an instantiation of a static data member of a class template specialization, retrieves the member specialization information. More... | |
void | setTemplateSpecializationKind (TemplateSpecializationKind TSK, SourceLocation PointOfInstantiation=SourceLocation()) |
For a static data member that was instantiated from a static data member of a class template, set the template specialiation kind. More... | |
void | setInstantiationOfStaticDataMember (VarDecl *VD, TemplateSpecializationKind TSK) |
Specify that this variable is an instantiation of the static data member VD. More... | |
VarTemplateDecl * | getDescribedVarTemplate () const |
Retrieves the variable template that is described by this variable declaration. More... | |
void | setDescribedVarTemplate (VarTemplateDecl *Template) |
![]() | |
TypeSourceInfo * | getTypeSourceInfo () const |
void | setTypeSourceInfo (TypeSourceInfo *TI) |
SourceLocation | getInnerLocStart () const |
getInnerLocStart - Return SourceLocation representing start of source range ignoring outer template declarations. More... | |
void | setInnerLocStart (SourceLocation L) |
SourceLocation | getOuterLocStart () const |
getOuterLocStart - Return SourceLocation representing start of source range taking into account any outer template declarations. More... | |
SourceRange | getSourceRange () const override LLVM_READONLY |
SourceLocation | getLocStart () const LLVM_READONLY |
NestedNameSpecifier * | getQualifier () const |
Retrieve the nested-name-specifier that qualifies the name of this declaration, if it was present in the source. More... | |
NestedNameSpecifierLoc | getQualifierLoc () const |
Retrieve the nested-name-specifier (with source-location information) that qualifies the name of this declaration, if it was present in the source. More... | |
void | setQualifierInfo (NestedNameSpecifierLoc QualifierLoc) |
unsigned | getNumTemplateParameterLists () const |
TemplateParameterList * | getTemplateParameterList (unsigned index) const |
void | setTemplateParameterListsInfo (ASTContext &Context, ArrayRef< TemplateParameterList * > TPLists) |
SourceLocation | getTypeSpecStartLoc () const |
![]() | |
QualType | getType () const |
void | setType (QualType newType) |
bool | isWeak () const |
Determine whether this symbol is weakly-imported, or declared with the weak or weak-ref attr. More... | |
![]() | |
IdentifierInfo * | getIdentifier () const |
getIdentifier - Get the identifier that names this declaration, if there is one. More... | |
StringRef | getName () const |
getName - Get the name of identifier for this declaration as a StringRef. More... | |
std::string | getNameAsString () const |
getNameAsString - Get a human-readable name for the declaration, even if it is one of the special kinds of names (C++ constructor, Objective-C selector, etc). More... | |
void | printName (raw_ostream &os) const |
DeclarationName | getDeclName () const |
getDeclName - Get the actual, stored name of the declaration, which may be a special name. More... | |
void | setDeclName (DeclarationName N) |
Set the name of this declaration. More... | |
void | printQualifiedName (raw_ostream &OS) const |
printQualifiedName - Returns human-readable qualified name for declaration, like A::B::i, for i being member of namespace A::B. More... | |
void | printQualifiedName (raw_ostream &OS, const PrintingPolicy &Policy) const |
std::string | getQualifiedNameAsString () const |
virtual void | getNameForDiagnostic (raw_ostream &OS, const PrintingPolicy &Policy, bool Qualified) const |
getNameForDiagnostic - Appends a human-readable name for this declaration into the given stream. More... | |
bool | declarationReplaces (NamedDecl *OldD, bool IsKnownNewer=true) const |
Determine whether this declaration, if known to be well-formed within its context, will replace the declaration OldD if introduced into scope. More... | |
bool | hasLinkage () const |
Determine whether this declaration has linkage. More... | |
bool | isHidden () const |
Determine whether this declaration is hidden from name lookup. More... | |
void | setHidden (bool Hide) |
Set whether this declaration is hidden from name lookup. More... | |
bool | isCXXClassMember () const |
Determine whether this declaration is a C++ class member. More... | |
bool | isCXXInstanceMember () const |
Determine whether the given declaration is an instance member of a C++ class. More... | |
Linkage | getLinkageInternal () const |
Determine what kind of linkage this entity has. More... | |
Linkage | getFormalLinkage () const |
Get the linkage from a semantic point of view. More... | |
bool | hasExternalFormalLinkage () const |
True if this decl has external linkage. More... | |
bool | isExternallyVisible () const |
Visibility | getVisibility () const |
Determines the visibility of this entity. More... | |
LinkageInfo | getLinkageAndVisibility () const |
Determines the linkage and visibility of this entity. More... | |
Optional< Visibility > | getExplicitVisibility (ExplicitVisibilityKind kind) const |
If visibility was explicitly specified for this declaration, return that visibility. More... | |
bool | isLinkageValid () const |
True if the computed linkage is valid. More... | |
bool | hasLinkageBeenComputed () const |
True if something has required us to compute the linkage of this declaration. More... | |
NamedDecl * | getUnderlyingDecl () |
Looks through UsingDecls and ObjCCompatibleAliasDecls for the underlying named decl. More... | |
const NamedDecl * | getUnderlyingDecl () const |
NamedDecl * | getMostRecentDecl () |
const NamedDecl * | getMostRecentDecl () const |
ObjCStringFormatFamily | getObjCFStringFormattingFamily () const |
![]() | |
Redeclarable (const ASTContext &Ctx) | |
VarDecl * | getPreviousDecl () |
Return the previous declaration of this declaration or NULL if this is the first declaration. More... | |
const VarDecl * | getPreviousDecl () const |
VarDecl * | getFirstDecl () |
Return the first declaration of this declaration or itself if this is the only declaration. More... | |
const VarDecl * | getFirstDecl () const |
Return the first declaration of this declaration or itself if this is the only declaration. More... | |
bool | isFirstDecl () const |
True if this is the first declaration in its redeclaration chain. More... | |
VarDecl * | getMostRecentDecl () |
Returns the most recent (re)declaration of this declaration. More... | |
const VarDecl * | getMostRecentDecl () const |
Returns the most recent (re)declaration of this declaration. More... | |
void | setPreviousDecl (VarDecl *PrevDecl) |
Set the previous declaration. More... | |
redecl_range | redecls () const |
Returns an iterator range for all the redeclarations of the same decl. More... | |
redecl_iterator | redecls_begin () const |
redecl_iterator | redecls_end () const |
![]() | |
enum | { NumParameterIndexBits = 8 } |
enum | DefaultArgKind { DAK_None, DAK_Unparsed, DAK_Uninstantiated, DAK_Normal } |
typedef llvm::PointerUnion < Stmt *, EvaluatedStmt * > | InitType |
typedef Redeclarable< VarDecl > | redeclarable_base |
![]() | |
VarDecl (Kind DK, ASTContext &C, DeclContext *DC, SourceLocation StartLoc, SourceLocation IdLoc, IdentifierInfo *Id, QualType T, TypeSourceInfo *TInfo, StorageClass SC) | |
VarDecl * | getNextRedeclarationImpl () override |
VarDecl * | getPreviousDeclImpl () override |
VarDecl * | getMostRecentDeclImpl () override |
![]() | |
DeclaratorDecl (Kind DK, DeclContext *DC, SourceLocation L, DeclarationName N, QualType T, TypeSourceInfo *TInfo, SourceLocation StartL) | |
![]() | |
ValueDecl (Kind DK, DeclContext *DC, SourceLocation L, DeclarationName N, QualType T) | |
![]() | |
NamedDecl (Kind DK, DeclContext *DC, SourceLocation L, DeclarationName N) | |
![]() | |
VarDecl * | getNextRedeclaration () const |
![]() | |
static DeclLink | PreviousDeclLink (VarDecl *D) |
static DeclLink | LatestDeclLink (const ASTContext &Ctx) |
![]() | |
InitType | Init |
The initializer for this variable or, for a ParmVarDecl, the C++ default argument. More... | |
union { | |
unsigned AllBits | |
VarDeclBitfields VarDeclBits | |
ParmVarDeclBitfields ParmVarDeclBits | |
NonParmVarDeclBitfields NonParmVarDeclBits | |
}; | |
![]() | |
DeclLink | RedeclLink |
Points to the next redeclaration in the chain. More... | |
VarDecl * | First |
Pseudo declaration for capturing expressions.
Also is used for capturing of non-static data members in non-static member functions.
Clang supports capturing of variables only, but OpenMP 4.5 allows to privatize non-static members of current class in non-static member functions. This pseudo-declaration allows properly handle this kind of capture by wrapping captured expression into a variable-like declaration.
Definition at line 171 of file DeclOpenMP.h.
Definition at line 189 of file DeclOpenMP.h.
References classofKind().
Definition at line 190 of file DeclOpenMP.h.
Referenced by classof().
|
static |
Definition at line 92 of file DeclOpenMP.cpp.
References AttributeLangSupport::C.
Referenced by buildCaptureDecl().
|
static |
Definition at line 98 of file DeclOpenMP.cpp.
References AttributeLangSupport::C, and ID.
|
friend |
Definition at line 172 of file DeclOpenMP.h.