|
ExplicitSpecifier | getExplicitSpecifier () |
|
const ExplicitSpecifier | getExplicitSpecifier () const |
|
bool | isExplicit () const |
| Return true if the declaration is already resolved to be explicit.
|
|
TemplateDecl * | getDeducedTemplate () const |
| Get the template for which this guide performs deduction.
|
|
CXXConstructorDecl * | getCorrespondingConstructor () const |
| Get the constructor from which this deduction guide was generated, if this is an implicit deduction guide.
|
|
const CXXDeductionGuideDecl * | getSourceDeductionGuide () const |
| Get the deduction guide from which this deduction guide was generated, if it was generated as part of alias template deduction or from an inherited constructor.
|
|
void | setSourceDeductionGuide (CXXDeductionGuideDecl *DG) |
|
SourceDeductionGuideKind | getSourceDeductionGuideKind () const |
|
void | setSourceDeductionGuideKind (SourceDeductionGuideKind SK) |
|
void | setDeductionCandidateKind (DeductionCandidate K) |
|
DeductionCandidate | getDeductionCandidateKind () const |
|
DeclarationNameInfo | getNameInfo () const |
|
void | getNameForDiagnostic (raw_ostream &OS, const PrintingPolicy &Policy, bool Qualified) const override |
| Appends a human-readable name for this declaration into the given stream.
|
|
void | setRangeEnd (SourceLocation E) |
|
void | setDeclarationNameLoc (DeclarationNameLoc L) |
|
SourceLocation | getEllipsisLoc () const |
| Returns the location of the ellipsis of a variadic function.
|
|
SourceRange | getSourceRange () const override LLVM_READONLY |
| Source range that this declaration covers.
|
|
bool | hasBody (const FunctionDecl *&Definition) const |
| Returns true if the function has a body.
|
|
bool | hasBody () const override |
| Returns true if this Decl represents a declaration for a body of code, such as a function or method definition.
|
|
bool | hasTrivialBody () const |
| Returns whether the function has a trivial body that does not require any specific codegen.
|
|
bool | isDefined (const FunctionDecl *&Definition, bool CheckForPendingFriendDefinition=false) const |
| Returns true if the function has a definition that does not need to be instantiated.
|
|
bool | isDefined () const |
|
FunctionDecl * | getDefinition () |
| Get the definition for this declaration.
|
|
const FunctionDecl * | getDefinition () const |
|
Stmt * | getBody (const FunctionDecl *&Definition) const |
| Retrieve the body (definition) of the function.
|
|
Stmt * | getBody () const override |
| getBody - If this Decl represents a declaration for a body of code, such as a function or method definition, this method returns the top-level Stmt* of that body.
|
|
bool | isThisDeclarationADefinition () const |
| Returns whether this specific declaration of the function is also a definition that does not contain uninstantiated body.
|
|
bool | isThisDeclarationInstantiatedFromAFriendDefinition () const |
| Determine whether this specific declaration of the function is a friend declaration that was instantiated from a function definition.
|
|
bool | doesThisDeclarationHaveABody () const |
| Returns whether this specific declaration of the function has a body.
|
|
void | setBody (Stmt *B) |
|
void | setLazyBody (uint64_t Offset) |
|
void | setDefaultedOrDeletedInfo (DefaultedOrDeletedFunctionInfo *Info) |
|
DefaultedOrDeletedFunctionInfo * | getDefalutedOrDeletedInfo () const |
|
bool | isVariadic () const |
| Whether this function is variadic.
|
|
bool | isVirtualAsWritten () const |
| Whether this function is marked as virtual explicitly.
|
|
void | setVirtualAsWritten (bool V) |
| State that this function is marked as virtual explicitly.
|
|
bool | isPureVirtual () const |
| Whether this virtual function is pure, i.e.
|
|
void | setIsPureVirtual (bool P=true) |
|
bool | isLateTemplateParsed () const |
| Whether this templated function will be late parsed.
|
|
void | setLateTemplateParsed (bool ILT=true) |
| State that this templated function will be late parsed.
|
|
bool | isTrivial () const |
| Whether this function is "trivial" in some specialized C++ senses.
|
|
void | setTrivial (bool IT) |
|
bool | isTrivialForCall () const |
|
void | setTrivialForCall (bool IT) |
|
bool | isDefaulted () const |
| Whether this function is defaulted.
|
|
void | setDefaulted (bool D=true) |
|
bool | isExplicitlyDefaulted () const |
| Whether this function is explicitly defaulted.
|
|
void | setExplicitlyDefaulted (bool ED=true) |
| State that this function is explicitly defaulted.
|
|
SourceLocation | getDefaultLoc () const |
|
void | setDefaultLoc (SourceLocation NewLoc) |
|
bool | isUserProvided () const |
| True if this method is user-declared and was not deleted or defaulted on its first declaration.
|
|
bool | isIneligibleOrNotSelected () const |
|
void | setIneligibleOrNotSelected (bool II) |
|
bool | hasImplicitReturnZero () const |
| Whether falling off this function implicitly returns null/zero.
|
|
void | setHasImplicitReturnZero (bool IRZ) |
| State that falling off this function implicitly returns null/zero.
|
|
bool | hasPrototype () const |
| Whether this function has a prototype, either because one was explicitly written or because it was "inherited" by merging a declaration without a prototype with a declaration that has a prototype.
|
|
bool | hasWrittenPrototype () const |
| Whether this function has a written prototype.
|
|
void | setHasWrittenPrototype (bool P=true) |
| State that this function has a written prototype.
|
|
bool | hasInheritedPrototype () const |
| Whether this function inherited its prototype from a previous declaration.
|
|
void | setHasInheritedPrototype (bool P=true) |
| State that this function inherited its prototype from a previous declaration.
|
|
bool | isConstexpr () const |
| Whether this is a (C++11) constexpr function or constexpr constructor.
|
|
void | setConstexprKind (ConstexprSpecKind CSK) |
|
ConstexprSpecKind | getConstexprKind () const |
|
bool | isConstexprSpecified () const |
|
bool | isConsteval () const |
|
void | setBodyContainsImmediateEscalatingExpressions (bool Set) |
|
bool | BodyContainsImmediateEscalatingExpressions () const |
|
bool | isImmediateEscalating () const |
|
bool | isImmediateFunction () const |
|
bool | instantiationIsPending () const |
| Whether the instantiation of this function is pending.
|
|
void | setInstantiationIsPending (bool IC) |
| State that the instantiation of this function is pending.
|
|
bool | usesSEHTry () const |
| Indicates the function uses __try.
|
|
void | setUsesSEHTry (bool UST) |
|
bool | isDeleted () const |
| Whether this function has been deleted.
|
|
bool | isDeletedAsWritten () const |
|
void | setDeletedAsWritten (bool D=true, StringLiteral *Message=nullptr) |
|
bool | isMain () const |
| Determines whether this function is "main", which is the entry point into an executable program.
|
|
bool | isMSVCRTEntryPoint () const |
| Determines whether this function is a MSVCRT user defined entry point.
|
|
bool | isReservedGlobalPlacementOperator () const |
| Determines whether this operator new or delete is one of the reserved global placement operators: void *operator new(size_t, void *); void *operator new[](size_t, void *); void operator delete(void *, void *); void operator delete[](void *, void *); These functions have special behavior under [new.delete.placement]: These functions are reserved, a C++ program may not define functions that displace the versions in the Standard C++ library.
|
|
bool | isReplaceableGlobalAllocationFunction (std::optional< unsigned > *AlignmentParam=nullptr, bool *IsNothrow=nullptr) const |
| Determines whether this function is one of the replaceable global allocation functions: void *operator new(size_t); void *operator new(size_t, const std::nothrow_t &) noexcept; void *operator new[](size_t); void *operator new[](size_t, const std::nothrow_t &) noexcept; void operator delete(void *) noexcept; void operator delete(void *, std::size_t) noexcept; [C++1y] void operator delete(void *, const std::nothrow_t &) noexcept; void operator delete[](void *) noexcept; void operator delete[](void *, std::size_t) noexcept; [C++1y] void operator delete[](void *, const std::nothrow_t &) noexcept; These functions have special behavior under C++1y [expr.new]: An implementation is allowed to omit a call to a replaceable global allocation function.
|
|
bool | isInlineBuiltinDeclaration () const |
| Determine if this function provides an inline implementation of a builtin.
|
|
bool | isDestroyingOperatorDelete () const |
| Determine whether this is a destroying operator delete.
|
|
LanguageLinkage | getLanguageLinkage () const |
| Compute the language linkage.
|
|
bool | isExternC () const |
| Determines whether this function is a function with external, C linkage.
|
|
bool | isInExternCContext () const |
| Determines whether this function's context is, or is nested within, a C++ extern "C" linkage spec.
|
|
bool | isInExternCXXContext () const |
| Determines whether this function's context is, or is nested within, a C++ extern "C++" linkage spec.
|
|
bool | isGlobal () const |
| Determines whether this is a global function.
|
|
bool | isNoReturn () const |
| Determines whether this function is known to be 'noreturn', through an attribute on its declaration or its type.
|
|
bool | hasSkippedBody () const |
| True if the function was a definition but its body was skipped.
|
|
void | setHasSkippedBody (bool Skipped=true) |
|
bool | willHaveBody () const |
| True if this function will eventually have a body, once it's fully parsed.
|
|
void | setWillHaveBody (bool V=true) |
|
bool | isMultiVersion () const |
| True if this function is considered a multiversioned function.
|
|
void | setIsMultiVersion (bool V=true) |
| Sets the multiversion state for this declaration and all of its redeclarations.
|
|
void | setFriendConstraintRefersToEnclosingTemplate (bool V=true) |
|
bool | FriendConstraintRefersToEnclosingTemplate () const |
|
bool | isMemberLikeConstrainedFriend () const |
| Determine whether a function is a friend function that cannot be redeclared outside of its class, per C++ [temp.friend]p9.
|
|
MultiVersionKind | getMultiVersionKind () const |
| Gets the kind of multiversioning attribute this declaration has.
|
|
bool | isCPUDispatchMultiVersion () const |
| True if this function is a multiversioned dispatch function as a part of the cpu_specific/cpu_dispatch functionality.
|
|
bool | isCPUSpecificMultiVersion () const |
| True if this function is a multiversioned processor specific function as a part of the cpu_specific/cpu_dispatch functionality.
|
|
bool | isTargetMultiVersion () const |
| True if this function is a multiversioned dispatch function as a part of the target functionality.
|
|
bool | isTargetMultiVersionDefault () const |
| True if this function is the default version of a multiversioned dispatch function as a part of the target functionality.
|
|
bool | isTargetClonesMultiVersion () const |
| True if this function is a multiversioned dispatch function as a part of the target-clones functionality.
|
|
bool | isTargetVersionMultiVersion () const |
| True if this function is a multiversioned dispatch function as a part of the target-version functionality.
|
|
void | getAssociatedConstraints (SmallVectorImpl< const Expr * > &AC) const |
| Get the associated-constraints of this function declaration.
|
|
StringLiteral * | getDeletedMessage () const |
| Get the message that indicates why this function was deleted.
|
|
void | setPreviousDeclaration (FunctionDecl *PrevDecl) |
|
FunctionDecl * | getCanonicalDecl () override |
| Retrieves the "canonical" declaration of the given declaration.
|
|
const FunctionDecl * | getCanonicalDecl () const |
|
unsigned | getBuiltinID (bool ConsiderWrapperFunctions=false) const |
| Returns a value indicating whether this function corresponds to a builtin function.
|
|
ArrayRef< ParmVarDecl * > | parameters () const |
|
MutableArrayRef< ParmVarDecl * > | parameters () |
|
bool | param_empty () const |
|
param_iterator | param_begin () |
|
param_iterator | param_end () |
|
param_const_iterator | param_begin () const |
|
param_const_iterator | param_end () const |
|
size_t | param_size () const |
|
unsigned | getNumParams () const |
| Return the number of parameters this function must have based on its FunctionType.
|
|
const ParmVarDecl * | getParamDecl (unsigned i) const |
|
ParmVarDecl * | getParamDecl (unsigned i) |
|
void | setParams (ArrayRef< ParmVarDecl * > NewParamInfo) |
|
unsigned | getMinRequiredArguments () const |
| Returns the minimum number of arguments needed to call this function.
|
|
unsigned | getMinRequiredExplicitArguments () const |
| Returns the minimum number of non-object arguments needed to call this function.
|
|
bool | hasCXXExplicitFunctionObjectParameter () const |
|
unsigned | getNumNonObjectParams () const |
|
const ParmVarDecl * | getNonObjectParameter (unsigned I) const |
|
ParmVarDecl * | getNonObjectParameter (unsigned I) |
|
bool | hasOneParamOrDefaultArgs () const |
| Determine whether this function has a single parameter, or multiple parameters where all but the first have default arguments.
|
|
FunctionTypeLoc | getFunctionTypeLoc () const |
| Find the source location information for how the type of this function was written.
|
|
QualType | getReturnType () const |
|
SourceRange | getReturnTypeSourceRange () const |
| Attempt to compute an informative source range covering the function return type.
|
|
SourceRange | getParametersSourceRange () const |
| Attempt to compute an informative source range covering the function parameters, including the ellipsis of a variadic function.
|
|
QualType | getDeclaredReturnType () const |
| Get the declared return type, which may differ from the actual return type if the return type is deduced.
|
|
ExceptionSpecificationType | getExceptionSpecType () const |
| Gets the ExceptionSpecificationType as declared.
|
|
SourceRange | getExceptionSpecSourceRange () const |
| Attempt to compute an informative source range covering the function exception specification, if any.
|
|
QualType | getCallResultType () const |
| Determine the type of an expression that calls this function.
|
|
StorageClass | getStorageClass () const |
| Returns the storage class as written in the source.
|
|
void | setStorageClass (StorageClass SClass) |
| Sets the storage class as written in the source.
|
|
bool | isInlineSpecified () const |
| Determine whether the "inline" keyword was specified for this function.
|
|
void | setInlineSpecified (bool I) |
| Set whether the "inline" keyword was specified for this function.
|
|
bool | UsesFPIntrin () const |
| Determine whether the function was declared in source context that requires constrained FP intrinsics.
|
|
void | setUsesFPIntrin (bool I) |
| Set whether the function was declared in source context that requires constrained FP intrinsics.
|
|
void | setImplicitlyInline (bool I=true) |
| Flag that this function is implicitly inline.
|
|
bool | isInlined () const |
| Determine whether this function should be inlined, because it is either marked "inline" or "constexpr" or is a member function of a class that was defined in the class body.
|
|
bool | isInlineDefinitionExternallyVisible () const |
| For an inline function definition in C, or for a gnu_inline function in C++, determine whether the definition will be externally visible.
|
|
bool | isMSExternInline () const |
| The combination of the extern and inline keywords under MSVC forces the function to be required.
|
|
bool | doesDeclarationForceExternallyVisibleDefinition () const |
| For a function declaration in C or C++, determine whether this declaration causes the definition to be externally visible.
|
|
bool | isStatic () const |
|
bool | isOverloadedOperator () const |
| Whether this function declaration represents an C++ overloaded operator, e.g., "operator+".
|
|
OverloadedOperatorKind | getOverloadedOperator () const |
| getOverloadedOperator - Which C++ overloaded operator this function represents, if any.
|
|
const IdentifierInfo * | getLiteralIdentifier () const |
| getLiteralIdentifier - The literal suffix identifier this function represents, if any.
|
|
FunctionDecl * | getInstantiatedFromMemberFunction () const |
| If this function is an instantiation of a member function of a class template specialization, retrieves the function from which it was instantiated.
|
|
TemplatedKind | getTemplatedKind () const |
| What kind of templated function this is.
|
|
MemberSpecializationInfo * | getMemberSpecializationInfo () const |
| If this function is an instantiation of a member function of a class template specialization, retrieves the member specialization information.
|
|
void | setInstantiationOfMemberFunction (FunctionDecl *FD, TemplateSpecializationKind TSK) |
| Specify that this record is an instantiation of the member function FD.
|
|
void | setInstantiatedFromDecl (FunctionDecl *FD) |
| Specify that this function declaration was instantiated from a FunctionDecl FD.
|
|
FunctionDecl * | getInstantiatedFromDecl () const |
|
FunctionTemplateDecl * | getDescribedFunctionTemplate () const |
| Retrieves the function template that is described by this function declaration.
|
|
void | setDescribedFunctionTemplate (FunctionTemplateDecl *Template) |
|
bool | isFunctionTemplateSpecialization () const |
| Determine whether this function is a function template specialization.
|
|
FunctionTemplateSpecializationInfo * | getTemplateSpecializationInfo () const |
| If this function is actually a function template specialization, retrieve information about this function template specialization.
|
|
bool | isImplicitlyInstantiable () const |
| Determines whether this function is a function template specialization or a member of a class template specialization that can be implicitly instantiated.
|
|
bool | isTemplateInstantiation () const |
| Determines if the given function was instantiated from a function template.
|
|
FunctionDecl * | getTemplateInstantiationPattern (bool ForDefinition=true) const |
| Retrieve the function declaration from which this function could be instantiated, if it is an instantiation (rather than a non-template or a specialization, for example).
|
|
FunctionTemplateDecl * | getPrimaryTemplate () const |
| Retrieve the primary template that this function template specialization either specializes or was instantiated from.
|
|
const TemplateArgumentList * | getTemplateSpecializationArgs () const |
| Retrieve the template arguments used to produce this function template specialization from the primary template.
|
|
const ASTTemplateArgumentListInfo * | getTemplateSpecializationArgsAsWritten () const |
| Retrieve the template argument list as written in the sources, if any.
|
|
void | setFunctionTemplateSpecialization (FunctionTemplateDecl *Template, TemplateArgumentList *TemplateArgs, void *InsertPos, TemplateSpecializationKind TSK=TSK_ImplicitInstantiation, TemplateArgumentListInfo *TemplateArgsAsWritten=nullptr, SourceLocation PointOfInstantiation=SourceLocation()) |
| Specify that this function declaration is actually a function template specialization.
|
|
void | setDependentTemplateSpecialization (ASTContext &Context, const UnresolvedSetImpl &Templates, const TemplateArgumentListInfo *TemplateArgs) |
| Specifies that this function declaration is actually a dependent function template specialization.
|
|
DependentFunctionTemplateSpecializationInfo * | getDependentSpecializationInfo () const |
|
TemplateSpecializationKind | getTemplateSpecializationKind () const |
| Determine what kind of template instantiation this function represents.
|
|
TemplateSpecializationKind | getTemplateSpecializationKindForInstantiation () const |
| Determine the kind of template specialization this function represents for the purpose of template instantiation.
|
|
void | setTemplateSpecializationKind (TemplateSpecializationKind TSK, SourceLocation PointOfInstantiation=SourceLocation()) |
| Determine what kind of template instantiation this function represents.
|
|
SourceLocation | getPointOfInstantiation () const |
| Retrieve the (first) point of instantiation of a function template specialization or a member of a class template specialization.
|
|
bool | isOutOfLine () const override |
| Determine whether this is or was instantiated from an out-of-line definition of a member function.
|
|
unsigned | getMemoryFunctionKind () const |
| Identify a memory copying or setting function.
|
|
unsigned | getODRHash () |
| Returns ODRHash of the function.
|
|
unsigned | getODRHash () const |
| Returns cached ODRHash of the function.
|
|
FunctionEffectsRef | getFunctionEffects () const |
|
TypeSourceInfo * | getTypeSourceInfo () const |
|
void | setTypeSourceInfo (TypeSourceInfo *TI) |
|
SourceLocation | getInnerLocStart () const |
| Return start of source range ignoring outer template declarations.
|
|
void | setInnerLocStart (SourceLocation L) |
|
SourceLocation | getOuterLocStart () const |
| Return start of source range taking into account any outer template declarations.
|
|
SourceRange | getSourceRange () const override LLVM_READONLY |
| Source range that this declaration covers.
|
|
SourceLocation | getBeginLoc () 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.
|
|
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.
|
|
void | setQualifierInfo (NestedNameSpecifierLoc QualifierLoc) |
|
Expr * | getTrailingRequiresClause () |
| Get the constraint-expression introduced by the trailing requires-clause in the function/member declaration, or null if no requires-clause was provided.
|
|
const Expr * | getTrailingRequiresClause () const |
|
void | setTrailingRequiresClause (Expr *TrailingRequiresClause) |
|
unsigned | getNumTemplateParameterLists () const |
|
TemplateParameterList * | getTemplateParameterList (unsigned index) const |
|
void | setTemplateParameterListsInfo (ASTContext &Context, ArrayRef< TemplateParameterList * > TPLists) |
|
SourceLocation | getTypeSpecStartLoc () const |
|
SourceLocation | getTypeSpecEndLoc () 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.
|
|
bool | isInitCapture () const |
| Whether this variable is the implicit variable for a lambda init-capture.
|
|
VarDecl * | getPotentiallyDecomposedVarDecl () |
|
const VarDecl * | getPotentiallyDecomposedVarDecl () const |
|
IdentifierInfo * | getIdentifier () const |
| Get the identifier that names this declaration, if there is one.
|
|
StringRef | getName () const |
| Get the name of identifier for this declaration as a StringRef.
|
|
std::string | getNameAsString () const |
| 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).
|
|
virtual void | printName (raw_ostream &OS, const PrintingPolicy &Policy) const |
| Pretty-print the unqualified name of this declaration.
|
|
void | printName (raw_ostream &OS) const |
| Calls printName() with the ASTContext printing policy from the decl.
|
|
DeclarationName | getDeclName () const |
| Get the actual, stored name of the declaration, which may be a special name.
|
|
void | setDeclName (DeclarationName N) |
| Set the name of this declaration.
|
|
void | printQualifiedName (raw_ostream &OS) const |
| Returns a human-readable qualified name for this declaration, like A::B::i, for i being member of namespace A::B.
|
|
void | printQualifiedName (raw_ostream &OS, const PrintingPolicy &Policy) const |
|
void | printNestedNameSpecifier (raw_ostream &OS) const |
| Print only the nested name specifier part of a fully-qualified name, including the '::' at the end.
|
|
void | printNestedNameSpecifier (raw_ostream &OS, const PrintingPolicy &Policy) const |
|
std::string | getQualifiedNameAsString () const |
|
virtual void | getNameForDiagnostic (raw_ostream &OS, const PrintingPolicy &Policy, bool Qualified) const |
| Appends a human-readable name for this declaration into the given stream.
|
|
bool | declarationReplaces (const 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.
|
|
bool | hasLinkage () const |
| Determine whether this declaration has linkage.
|
|
bool | isCXXClassMember () const |
| Determine whether this declaration is a C++ class member.
|
|
bool | isCXXInstanceMember () const |
| Determine whether the given declaration is an instance member of a C++ class.
|
|
ReservedIdentifierStatus | isReserved (const LangOptions &LangOpts) const |
| Determine if the declaration obeys the reserved identifier rules of the given language.
|
|
Linkage | getLinkageInternal () const |
| Determine what kind of linkage this entity has.
|
|
Linkage | getFormalLinkage () const |
| Get the linkage from a semantic point of view.
|
|
bool | hasExternalFormalLinkage () const |
| True if this decl has external linkage.
|
|
bool | isExternallyVisible () const |
|
bool | isExternallyDeclarable () const |
| Determine whether this declaration can be redeclared in a different translation unit.
|
|
Visibility | getVisibility () const |
| Determines the visibility of this entity.
|
|
LinkageInfo | getLinkageAndVisibility () const |
| Determines the linkage and visibility of this entity.
|
|
std::optional< Visibility > | getExplicitVisibility (ExplicitVisibilityKind kind) const |
| If visibility was explicitly specified for this declaration, return that visibility.
|
|
bool | isLinkageValid () const |
| True if the computed linkage is valid.
|
|
bool | hasLinkageBeenComputed () const |
| True if something has required us to compute the linkage of this declaration.
|
|
bool | isPlaceholderVar (const LangOptions &LangOpts) const |
|
NamedDecl * | getUnderlyingDecl () |
| Looks through UsingDecls and ObjCCompatibleAliasDecls for the underlying named decl.
|
|
const NamedDecl * | getUnderlyingDecl () const |
|
NamedDecl * | getMostRecentDecl () |
|
const NamedDecl * | getMostRecentDecl () const |
|
ObjCStringFormatFamily | getObjCFStringFormattingFamily () const |
|
bool | isModulePrivate () const |
| Whether this declaration was marked as being private to the module in which it was defined.
|
|
void | setModulePrivate () |
| Specify that this declaration was marked as being private to the module in which it was defined.
|
|
| Decl ()=delete |
|
| Decl (const Decl &)=delete |
|
| Decl (Decl &&)=delete |
|
Decl & | operator= (const Decl &)=delete |
|
Decl & | operator= (Decl &&)=delete |
|
virtual SourceRange | getSourceRange () const LLVM_READONLY |
| Source range that this declaration covers.
|
|
SourceLocation | getBeginLoc () const LLVM_READONLY |
|
SourceLocation | getEndLoc () const LLVM_READONLY |
|
SourceLocation | getLocation () const |
|
void | setLocation (SourceLocation L) |
|
Kind | getKind () const |
|
const char * | getDeclKindName () const |
|
Decl * | getNextDeclInContext () |
|
const Decl * | getNextDeclInContext () const |
|
DeclContext * | getDeclContext () |
|
const DeclContext * | getDeclContext () const |
|
DeclContext * | getNonTransparentDeclContext () |
| Return the non transparent context.
|
|
const DeclContext * | getNonTransparentDeclContext () const |
|
Decl * | getNonClosureContext () |
| Find the innermost non-closure ancestor of this declaration, walking up through blocks, lambdas, etc.
|
|
const Decl * | getNonClosureContext () const |
|
TranslationUnitDecl * | getTranslationUnitDecl () |
|
const TranslationUnitDecl * | getTranslationUnitDecl () const |
|
bool | isInAnonymousNamespace () const |
|
bool | isInStdNamespace () const |
|
bool | isFileContextDecl () const |
|
ASTContext & | getASTContext () const LLVM_READONLY |
|
const LangOptions & | getLangOpts () const LLVM_READONLY |
| Helper to get the language options from the ASTContext.
|
|
void | setAccess (AccessSpecifier AS) |
|
AccessSpecifier | getAccess () const |
|
AccessSpecifier | getAccessUnsafe () const |
| Retrieve the access specifier for this declaration, even though it may not yet have been properly set.
|
|
bool | hasAttrs () const |
|
void | setAttrs (const AttrVec &Attrs) |
|
AttrVec & | getAttrs () |
|
const AttrVec & | getAttrs () const |
|
void | dropAttrs () |
|
void | addAttr (Attr *A) |
|
attr_range | attrs () const |
|
attr_iterator | attr_begin () const |
|
attr_iterator | attr_end () const |
|
template<typename... Ts> |
void | dropAttrs () |
|
template<typename T > |
void | dropAttr () |
|
template<typename T > |
llvm::iterator_range< specific_attr_iterator< T > > | specific_attrs () const |
|
template<typename T > |
specific_attr_iterator< T > | specific_attr_begin () const |
|
template<typename T > |
specific_attr_iterator< T > | specific_attr_end () const |
|
template<typename T > |
T * | getAttr () const |
|
template<typename T > |
bool | hasAttr () const |
|
unsigned | getMaxAlignment () const |
| getMaxAlignment - return the maximum alignment specified by attributes on this decl, 0 if there are none.
|
|
void | setInvalidDecl (bool Invalid=true) |
| setInvalidDecl - Indicates the Decl had a semantic error.
|
|
bool | isInvalidDecl () const |
|
bool | isImplicit () const |
| isImplicit - Indicates whether the declaration was implicitly generated by the implementation.
|
|
void | setImplicit (bool I=true) |
|
bool | isUsed (bool CheckUsedAttr=true) const |
| Whether any (re-)declaration of the entity was used, meaning that a definition is required.
|
|
void | setIsUsed () |
| Set whether the declaration is used, in the sense of odr-use.
|
|
void | markUsed (ASTContext &C) |
| Mark the declaration used, in the sense of odr-use.
|
|
bool | isReferenced () const |
| Whether any declaration of this entity was referenced.
|
|
bool | isThisDeclarationReferenced () const |
| Whether this declaration was referenced.
|
|
void | setReferenced (bool R=true) |
|
bool | isTopLevelDeclInObjCContainer () const |
| Whether this declaration is a top-level declaration (function, global variable, etc.) that is lexically inside an objc container definition.
|
|
void | setTopLevelDeclInObjCContainer (bool V=true) |
|
ExternalSourceSymbolAttr * | getExternalSourceSymbolAttr () const |
| Looks on this and related declarations for an applicable external source symbol attribute.
|
|
bool | isModulePrivate () const |
| Whether this declaration was marked as being private to the module in which it was defined.
|
|
bool | isInExportDeclContext () const |
| Whether this declaration was exported in a lexical context.
|
|
bool | isInvisibleOutsideTheOwningModule () const |
|
bool | isInAnotherModuleUnit () const |
| Whether this declaration comes from another module unit.
|
|
bool | isInCurrentModuleUnit () const |
| Whether this declaration comes from the same module unit being compiled.
|
|
bool | shouldEmitInExternalSource () const |
| Whether the definition of the declaration should be emitted in external sources.
|
|
bool | isFromExplicitGlobalModule () const |
| Whether this declaration comes from explicit global module.
|
|
bool | isFromGlobalModule () const |
| Whether this declaration comes from global module.
|
|
bool | isInNamedModule () const |
| Whether this declaration comes from a named module.
|
|
bool | isFromHeaderUnit () const |
| Whether this declaration comes from a header unit.
|
|
bool | hasDefiningAttr () const |
| Return true if this declaration has an attribute which acts as definition of the entity, such as 'alias' or 'ifunc'.
|
|
const Attr * | getDefiningAttr () const |
| Return this declaration's defining attribute if it has one.
|
|
void | setFromASTFile () |
| Set the FromASTFile flag.
|
|
void | setOwningModuleID (unsigned ID) |
| Set the owning module ID.
|
|
AvailabilityResult | getAvailability (std::string *Message=nullptr, VersionTuple EnclosingVersion=VersionTuple(), StringRef *RealizedPlatform=nullptr) const |
| Determine the availability of the given declaration.
|
|
VersionTuple | getVersionIntroduced () const |
| Retrieve the version of the target platform in which this declaration was introduced.
|
|
bool | isDeprecated (std::string *Message=nullptr) const |
| Determine whether this declaration is marked 'deprecated'.
|
|
bool | isUnavailable (std::string *Message=nullptr) const |
| Determine whether this declaration is marked 'unavailable'.
|
|
bool | isWeakImported () const |
| Determine whether this is a weak-imported symbol.
|
|
bool | canBeWeakImported (bool &IsDefinition) const |
| Determines whether this symbol can be weak-imported, e.g., whether it would be well-formed to add the weak_import attribute.
|
|
bool | isFromASTFile () const |
| Determine whether this declaration came from an AST file (such as a precompiled header or module) rather than having been parsed.
|
|
GlobalDeclID | getGlobalID () const |
| Retrieve the global declaration ID associated with this declaration, which specifies where this Decl was loaded from.
|
|
unsigned | getOwningModuleID () const |
| Retrieve the global ID of the module that owns this particular declaration.
|
|
Module * | getImportedOwningModule () const |
| Get the imported owning module, if this decl is from an imported (non-local) module.
|
|
Module * | getLocalOwningModule () const |
| Get the local owning module, if known.
|
|
void | setLocalOwningModule (Module *M) |
|
bool | hasOwningModule () const |
| Is this declaration owned by some module?
|
|
Module * | getOwningModule () const |
| Get the module that owns this declaration (for visibility purposes).
|
|
Module * | getTopLevelOwningNamedModule () const |
| Get the top level owning named module that owns this declaration if any.
|
|
Module * | getOwningModuleForLinkage () const |
| Get the module that owns this declaration for linkage purposes.
|
|
bool | isUnconditionallyVisible () const |
| Determine whether this declaration is definitely visible to name lookup, independent of whether the owning module is visible.
|
|
bool | isReachable () const |
|
void | setVisibleDespiteOwningModule () |
| Set that this declaration is globally visible, even if it came from a module that is not visible.
|
|
ModuleOwnershipKind | getModuleOwnershipKind () const |
| Get the kind of module ownership for this declaration.
|
|
void | setModuleOwnershipKind (ModuleOwnershipKind MOK) |
| Set whether this declaration is hidden from name lookup.
|
|
unsigned | getIdentifierNamespace () const |
|
bool | isInIdentifierNamespace (unsigned NS) const |
|
bool | hasTagIdentifierNamespace () const |
|
DeclContext * | getLexicalDeclContext () |
| getLexicalDeclContext - The declaration context where this Decl was lexically declared (LexicalDC).
|
|
const DeclContext * | getLexicalDeclContext () const |
|
virtual bool | isOutOfLine () const |
| Determine whether this declaration is declared out of line (outside its semantic context).
|
|
void | setDeclContext (DeclContext *DC) |
| setDeclContext - Set both the semantic and lexical DeclContext to DC.
|
|
void | setLexicalDeclContext (DeclContext *DC) |
|
bool | isTemplated () const |
| Determine whether this declaration is a templated entity (whether it is.
|
|
unsigned | getTemplateDepth () const |
| Determine the number of levels of template parameter surrounding this declaration.
|
|
bool | isDefinedOutsideFunctionOrMethod () const |
| isDefinedOutsideFunctionOrMethod - This predicate returns true if this scoped decl is defined outside the current function or method.
|
|
bool | isInLocalScopeForInstantiation () const |
| Determine whether a substitution into this declaration would occur as part of a substitution into a dependent local scope.
|
|
const DeclContext * | getParentFunctionOrMethod (bool LexicalParent=false) const |
| If this decl is defined inside a function/method/block it returns the corresponding DeclContext, otherwise it returns null.
|
|
DeclContext * | getParentFunctionOrMethod (bool LexicalParent=false) |
|
virtual Decl * | getCanonicalDecl () |
| Retrieves the "canonical" declaration of the given declaration.
|
|
const Decl * | getCanonicalDecl () const |
|
bool | isCanonicalDecl () const |
| Whether this particular Decl is a canonical one.
|
|
redecl_range | redecls () const |
| Returns an iterator range for all the redeclarations of the same decl.
|
|
redecl_iterator | redecls_begin () const |
|
redecl_iterator | redecls_end () const |
|
Decl * | getPreviousDecl () |
| Retrieve the previous declaration that declares the same entity as this declaration, or NULL if there is no previous declaration.
|
|
const Decl * | getPreviousDecl () const |
| Retrieve the previous declaration that declares the same entity as this declaration, or NULL if there is no previous declaration.
|
|
bool | isFirstDecl () const |
| True if this is the first declaration in its redeclaration chain.
|
|
Decl * | getMostRecentDecl () |
| Retrieve the most recent declaration that declares the same entity as this declaration (which may be this declaration).
|
|
const Decl * | getMostRecentDecl () const |
| Retrieve the most recent declaration that declares the same entity as this declaration (which may be this declaration).
|
|
virtual Stmt * | getBody () const |
| getBody - If this Decl represents a declaration for a body of code, such as a function or method definition, this method returns the top-level Stmt* of that body.
|
|
virtual bool | hasBody () const |
| Returns true if this Decl represents a declaration for a body of code, such as a function or method definition.
|
|
SourceLocation | getBodyRBrace () const |
| getBodyRBrace - Gets the right brace of the body, if a body exists.
|
|
bool | isTemplateParameter () const |
| isTemplateParameter - Determines whether this declaration is a template parameter.
|
|
bool | isTemplateParameterPack () const |
| isTemplateParameter - Determines whether this declaration is a template parameter pack.
|
|
bool | isParameterPack () const |
| Whether this declaration is a parameter pack.
|
|
bool | isTemplateDecl () const |
| returns true if this declaration is a template
|
|
bool | isFunctionOrFunctionTemplate () const |
| Whether this declaration is a function or function template.
|
|
TemplateDecl * | getDescribedTemplate () const |
| If this is a declaration that describes some template, this method returns that template declaration.
|
|
const TemplateParameterList * | getDescribedTemplateParams () const |
| If this is a declaration that describes some template or partial specialization, this returns the corresponding template parameter list.
|
|
FunctionDecl * | getAsFunction () LLVM_READONLY |
| Returns the function itself, or the templated function if this is a function template.
|
|
const FunctionDecl * | getAsFunction () const |
|
void | setLocalExternDecl () |
| Changes the namespace of this declaration to reflect that it's a function-local extern declaration.
|
|
bool | isLocalExternDecl () const |
| Determine whether this is a block-scope declaration with linkage.
|
|
void | setObjectOfFriendDecl (bool PerformFriendInjection=false) |
| Changes the namespace of this declaration to reflect that it's the object of a friend declaration.
|
|
void | clearIdentifierNamespace () |
| Clears the namespace of this declaration.
|
|
FriendObjectKind | getFriendObjectKind () const |
| Determines whether this declaration is the object of a friend declaration and, if so, what kind.
|
|
void | setNonMemberOperator () |
| Specifies that this declaration is a C++ overloaded non-member.
|
|
void | print (raw_ostream &Out, unsigned Indentation=0, bool PrintInstantiation=false) const |
|
void | print (raw_ostream &Out, const PrintingPolicy &Policy, unsigned Indentation=0, bool PrintInstantiation=false) const |
|
void | dump () const |
|
void | dumpColor () const |
|
void | dump (raw_ostream &Out, bool Deserialize=false, ASTDumpOutputFormat OutputFormat=ADOF_Default) const |
|
int64_t | getID () const |
|
const FunctionType * | getFunctionType (bool BlocksToo=true) const |
| Looks through the Decl's underlying type to extract a FunctionType when possible.
|
|
bool | isFunctionPointerType () const |
|
| ~DeclContext () |
|
bool | hasValidDeclKind () const |
|
Decl::Kind | getDeclKind () const |
|
const char * | getDeclKindName () const |
|
DeclContext * | getParent () |
| getParent - Returns the containing DeclContext.
|
|
const DeclContext * | getParent () const |
|
DeclContext * | getLexicalParent () |
| getLexicalParent - Returns the containing lexical DeclContext.
|
|
const DeclContext * | getLexicalParent () const |
|
DeclContext * | getLookupParent () |
| Find the parent context of this context that will be used for unqualified name lookup.
|
|
const DeclContext * | getLookupParent () const |
|
ASTContext & | getParentASTContext () const |
|
bool | isClosure () const |
|
const BlockDecl * | getInnermostBlockDecl () const |
| Return this DeclContext if it is a BlockDecl.
|
|
bool | isObjCContainer () const |
|
bool | isFunctionOrMethod () const |
|
bool | isLookupContext () const |
| Test whether the context supports looking up names.
|
|
bool | isFileContext () const |
|
bool | isTranslationUnit () const |
|
bool | isRecord () const |
|
bool | isRequiresExprBody () const |
|
bool | isNamespace () const |
|
bool | isStdNamespace () const |
|
bool | isInlineNamespace () const |
|
bool | isDependentContext () const |
| Determines whether this context is dependent on a template parameter.
|
|
bool | isTransparentContext () const |
| isTransparentContext - Determines whether this context is a "transparent" context, meaning that the members declared in this context are semantically declared in the nearest enclosing non-transparent (opaque) context but are lexically declared in this context.
|
|
bool | isExternCContext () const |
| Determines whether this context or some of its ancestors is a linkage specification context that specifies C linkage.
|
|
const LinkageSpecDecl * | getExternCContext () const |
| Retrieve the nearest enclosing C linkage specification context.
|
|
bool | isExternCXXContext () const |
| Determines whether this context or some of its ancestors is a linkage specification context that specifies C++ linkage.
|
|
bool | Equals (const DeclContext *DC) const |
| Determine whether this declaration context is equivalent to the declaration context DC.
|
|
bool | Encloses (const DeclContext *DC) const |
| Determine whether this declaration context encloses the declaration context DC.
|
|
Decl * | getNonClosureAncestor () |
| Find the nearest non-closure ancestor of this context, i.e.
|
|
const Decl * | getNonClosureAncestor () const |
|
DeclContext * | getNonTransparentContext () |
|
const DeclContext * | getNonTransparentContext () const |
|
DeclContext * | getPrimaryContext () |
| getPrimaryContext - There may be many different declarations of the same entity (including forward declarations of classes, multiple definitions of namespaces, etc.), each with a different set of declarations.
|
|
const DeclContext * | getPrimaryContext () const |
|
DeclContext * | getRedeclContext () |
| getRedeclContext - Retrieve the context in which an entity conflicts with other entities of the same name, or where it is a redeclaration if the two entities are compatible.
|
|
const DeclContext * | getRedeclContext () const |
|
DeclContext * | getEnclosingNamespaceContext () |
| Retrieve the nearest enclosing namespace context.
|
|
const DeclContext * | getEnclosingNamespaceContext () const |
|
RecordDecl * | getOuterLexicalRecordContext () |
| Retrieve the outermost lexically enclosing record context.
|
|
const RecordDecl * | getOuterLexicalRecordContext () const |
|
bool | InEnclosingNamespaceSetOf (const DeclContext *NS) const |
| Test if this context is part of the enclosing namespace set of the context NS, as defined in C++0x [namespace.def]p9.
|
|
void | collectAllContexts (SmallVectorImpl< DeclContext * > &Contexts) |
| Collects all of the declaration contexts that are semantically connected to this declaration context.
|
|
decl_range | decls () const |
| decls_begin/decls_end - Iterate over the declarations stored in this context.
|
|
decl_iterator | decls_begin () const |
|
decl_iterator | decls_end () const |
|
bool | decls_empty () const |
|
decl_range | noload_decls () const |
| noload_decls_begin/end - Iterate over the declarations stored in this context that are currently loaded; don't attempt to retrieve anything from an external source.
|
|
decl_iterator | noload_decls_begin () const |
|
decl_iterator | noload_decls_end () const |
|
void | addDecl (Decl *D) |
| Add the declaration D into this context.
|
|
void | addDeclInternal (Decl *D) |
| Add the declaration D into this context, but suppress searches for external declarations with the same name.
|
|
void | addHiddenDecl (Decl *D) |
| Add the declaration D to this context without modifying any lookup tables.
|
|
void | removeDecl (Decl *D) |
| Removes a declaration from this context.
|
|
bool | containsDecl (Decl *D) const |
| Checks whether a declaration is in this context.
|
|
bool | containsDeclAndLoad (Decl *D) const |
| Checks whether a declaration is in this context.
|
|
lookup_result | lookup (DeclarationName Name) const |
| lookup - Find the declarations (if any) with the given Name in this context.
|
|
lookup_result | noload_lookup (DeclarationName Name) |
| Find the declarations with the given name that are visible within this context; don't attempt to retrieve anything from an external source.
|
|
void | localUncachedLookup (DeclarationName Name, SmallVectorImpl< NamedDecl * > &Results) |
| A simplistic name lookup mechanism that performs name lookup into this declaration context without consulting the external source.
|
|
void | makeDeclVisibleInContext (NamedDecl *D) |
| Makes a declaration visible within this context.
|
|
lookups_range | lookups () const |
|
lookups_range | noload_lookups (bool PreserveInternalState) const |
|
all_lookups_iterator | lookups_begin () const |
| Iterators over all possible lookups within this context.
|
|
all_lookups_iterator | lookups_end () const |
|
all_lookups_iterator | noload_lookups_begin () const |
| Iterators over all possible lookups within this context that are currently loaded; don't attempt to retrieve anything from an external source.
|
|
all_lookups_iterator | noload_lookups_end () const |
|
udir_range | using_directives () const |
| Returns iterator range [First, Last) of UsingDirectiveDecls stored within this context.
|
|
ddiag_range | ddiags () const |
|
void | setMustBuildLookupTable () |
| Mark that there are external lexical declarations that we need to include in our lookup table (and that are not available as external visible lookups).
|
|
StoredDeclsMap * | getLookupPtr () const |
| Retrieve the internal representation of the lookup structure.
|
|
StoredDeclsMap * | buildLookup () |
| Ensure the lookup structure is fully-built and return it.
|
|
bool | hasExternalLexicalStorage () const |
| Whether this DeclContext has external storage containing additional declarations that are lexically in this context.
|
|
void | setHasExternalLexicalStorage (bool ES=true) const |
| State whether this DeclContext has external storage for declarations lexically in this context.
|
|
bool | hasExternalVisibleStorage () const |
| Whether this DeclContext has external storage containing additional declarations that are visible in this context.
|
|
void | setHasExternalVisibleStorage (bool ES=true) const |
| State whether this DeclContext has external storage for declarations visible in this context.
|
|
bool | isDeclInLexicalTraversal (const Decl *D) const |
| Determine whether the given declaration is stored in the list of declarations lexically within this context.
|
|
void | setUseQualifiedLookup (bool use=true) const |
|
bool | shouldUseQualifiedLookup () const |
|
void | dumpAsDecl () const |
|
void | dumpAsDecl (const ASTContext *Ctx) const |
|
void | dumpDeclContext () const |
|
void | dumpLookups () const |
|
void | dumpLookups (llvm::raw_ostream &OS, bool DumpDecls=false, bool Deserialize=false) const |
|
| Redeclarable (const ASTContext &Ctx) |
|
FunctionDecl * | getPreviousDecl () |
| Return the previous declaration of this declaration or NULL if this is the first declaration.
|
|
const FunctionDecl * | getPreviousDecl () const |
|
FunctionDecl * | getFirstDecl () |
| Return the first declaration of this declaration or itself if this is the only declaration.
|
|
const FunctionDecl * | getFirstDecl () const |
| Return the first declaration of this declaration or itself if this is the only declaration.
|
|
bool | isFirstDecl () const |
| True if this is the first declaration in its redeclaration chain.
|
|
FunctionDecl * | getMostRecentDecl () |
| Returns the most recent (re)declaration of this declaration.
|
|
const FunctionDecl * | getMostRecentDecl () const |
| Returns the most recent (re)declaration of this declaration.
|
|
void | setPreviousDecl (FunctionDecl *PrevDecl) |
| Set the previous declaration.
|
|
redecl_range | redecls () const |
| Returns an iterator range for all the redeclarations of the same decl.
|
|
redecl_iterator | redecls_begin () const |
|
redecl_iterator | redecls_end () const |
|