clang
3.9.0
|
Represents a static or instance method of a struct/union/class. More...
#include <DeclCXX.h>
Public Member Functions | |
bool | isStatic () const |
bool | isInstance () const |
bool | isConst () const |
bool | isVolatile () const |
bool | isVirtual () const |
bool | isUsualDeallocationFunction () const |
Determine whether this is a usual deallocation function (C++ [basic.stc.dynamic.deallocation]p2), which is an overloaded delete or delete[] operator with a particular signature. More... | |
bool | isCopyAssignmentOperator () const |
Determine whether this is a copy-assignment operator, regardless of whether it was declared implicitly or explicitly. More... | |
bool | isMoveAssignmentOperator () const |
Determine whether this is a move assignment operator. More... | |
CXXMethodDecl * | getCanonicalDecl () override |
const CXXMethodDecl * | getCanonicalDecl () const |
CXXMethodDecl * | getMostRecentDecl () |
const CXXMethodDecl * | getMostRecentDecl () const |
bool | isUserProvided () const |
True if this method is user-declared and was not deleted or defaulted on its first declaration. More... | |
void | addOverriddenMethod (const CXXMethodDecl *MD) |
method_iterator | begin_overridden_methods () const |
method_iterator | end_overridden_methods () const |
unsigned | size_overridden_methods () const |
overridden_method_range | overridden_methods () const |
const CXXRecordDecl * | getParent () const |
Returns the parent of this method declaration, which is the class in which this method is defined. More... | |
CXXRecordDecl * | getParent () |
Returns the parent of this method declaration, which is the class in which this method is defined. More... | |
QualType | getThisType (ASTContext &C) const |
Returns the type of the this pointer. More... | |
unsigned | getTypeQualifiers () const |
RefQualifierKind | getRefQualifier () const |
Retrieve the ref-qualifier associated with this method. More... | |
bool | hasInlineBody () const |
bool | isLambdaStaticInvoker () const |
Determine whether this is a lambda closure type's static member function that is used for the result of the lambda's conversion to function pointer (for a lambda with no captures). More... | |
CXXMethodDecl * | getCorrespondingMethodInClass (const CXXRecordDecl *RD, bool MayBeBase=false) |
Find the method in RD that corresponds to this one. More... | |
const CXXMethodDecl * | getCorrespondingMethodInClass (const CXXRecordDecl *RD, bool MayBeBase=false) const |
![]() | |
DeclarationNameInfo | getNameInfo () const |
void | getNameForDiagnostic (raw_ostream &OS, const PrintingPolicy &Policy, bool Qualified) const override |
getNameForDiagnostic - Appends a human-readable name for this declaration into the given stream. More... | |
void | setRangeEnd (SourceLocation E) |
SourceRange | getSourceRange () const override LLVM_READONLY |
bool | hasBody (const FunctionDecl *&Definition) const |
Returns true if the function has a body (definition). More... | |
bool | hasBody () const override |
bool | hasTrivialBody () const |
hasTrivialBody - Returns whether the function has a trivial body that does not require any specific codegen. More... | |
bool | isDefined (const FunctionDecl *&Definition) const |
isDefined - Returns true if the function is defined at all, including a deleted definition. More... | |
virtual bool | isDefined () const |
FunctionDecl * | getDefinition () |
Get the definition for this declaration. More... | |
const FunctionDecl * | getDefinition () const |
Stmt * | getBody (const FunctionDecl *&Definition) const |
getBody - Retrieve the body (definition) of the function. More... | |
Stmt * | getBody () const override |
bool | isThisDeclarationADefinition () const |
isThisDeclarationADefinition - Returns whether this specific declaration of the function is also a definition. More... | |
bool | doesThisDeclarationHaveABody () const |
doesThisDeclarationHaveABody - Returns whether this specific declaration of the function has a body - that is, if it is a non- deleted definition. More... | |
void | setBody (Stmt *B) |
void | setLazyBody (uint64_t Offset) |
bool | isVariadic () const |
Whether this function is variadic. More... | |
bool | isVirtualAsWritten () const |
Whether this function is marked as virtual explicitly. More... | |
void | setVirtualAsWritten (bool V) |
bool | isPure () const |
Whether this virtual function is pure, i.e. More... | |
void | setPure (bool P=true) |
bool | isLateTemplateParsed () const |
Whether this templated function will be late parsed. More... | |
void | setLateTemplateParsed (bool ILT=true) |
bool | isTrivial () const |
Whether this function is "trivial" in some specialized C++ senses. More... | |
void | setTrivial (bool IT) |
bool | isDefaulted () const |
Whether this function is defaulted per C++0x. More... | |
void | setDefaulted (bool D=true) |
bool | isExplicitlyDefaulted () const |
Whether this function is explicitly defaulted per C++0x. More... | |
void | setExplicitlyDefaulted (bool ED=true) |
bool | hasImplicitReturnZero () const |
Whether falling off this function implicitly returns null/zero. More... | |
void | setHasImplicitReturnZero (bool IRZ) |
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. More... | |
bool | hasWrittenPrototype () const |
bool | hasInheritedPrototype () const |
Whether this function inherited its prototype from a previous declaration. More... | |
void | setHasInheritedPrototype (bool P=true) |
bool | isConstexpr () const |
Whether this is a (C++11) constexpr function or constexpr constructor. More... | |
void | setConstexpr (bool IC) |
bool | usesSEHTry () const |
Indicates the function uses __try. More... | |
void | setUsesSEHTry (bool UST) |
bool | isDeleted () const |
Whether this function has been deleted. More... | |
bool | isDeletedAsWritten () const |
void | setDeletedAsWritten (bool D=true) |
bool | isMain () const |
Determines whether this function is "main", which is the entry point into an executable program. More... | |
bool | isMSVCRTEntryPoint () const |
Determines whether this function is a MSVCRT user defined entry point. More... | |
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. More... | |
bool | isReplaceableGlobalAllocationFunction () 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. More... | |
LanguageLinkage | getLanguageLinkage () const |
Compute the language linkage. More... | |
bool | isExternC () const |
Determines whether this function is a function with external, C linkage. More... | |
bool | isInExternCContext () const |
Determines whether this function's context is, or is nested within, a C++ extern "C" linkage spec. More... | |
bool | isInExternCXXContext () const |
Determines whether this function's context is, or is nested within, a C++ extern "C++" linkage spec. More... | |
bool | isGlobal () const |
Determines whether this is a global function. More... | |
bool | isNoReturn () const |
Determines whether this function is known to be 'noreturn', through an attribute on its declaration or its type. More... | |
bool | hasSkippedBody () const |
True if the function was a definition but its body was skipped. More... | |
void | setHasSkippedBody (bool Skipped=true) |
void | setPreviousDeclaration (FunctionDecl *PrevDecl) |
FunctionDecl * | getCanonicalDecl () override |
const FunctionDecl * | getCanonicalDecl () const |
unsigned | getBuiltinID () const |
Returns a value indicating whether this function corresponds to a builtin function. More... | |
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 |
getNumParams - Return the number of parameters this function must have based on its FunctionType. More... | |
const ParmVarDecl * | getParamDecl (unsigned i) const |
ParmVarDecl * | getParamDecl (unsigned i) |
void | setParams (ArrayRef< ParmVarDecl * > NewParamInfo) |
ArrayRef< NamedDecl * > | getDeclsInPrototypeScope () const |
void | setDeclsInPrototypeScope (ArrayRef< NamedDecl * > NewDecls) |
unsigned | getMinRequiredArguments () const |
getMinRequiredArguments - Returns the minimum number of arguments needed to call this function. More... | |
QualType | getReturnType () const |
SourceRange | getReturnTypeSourceRange () const |
Attempt to compute an informative source range covering the function return type. More... | |
QualType | getCallResultType () const |
Determine the type of an expression that calls this function. More... | |
const Attr * | getUnusedResultAttr () const |
Returns the WarnUnusedResultAttr that is either declared on this function, or its return type declaration. More... | |
bool | hasUnusedResultAttr () const |
Returns true if this function or its return type has the warn_unused_result attribute. More... | |
StorageClass | getStorageClass () const |
Returns the storage class as written in the source. More... | |
bool | isInlineSpecified () const |
Determine whether the "inline" keyword was specified for this function. More... | |
void | setInlineSpecified (bool I) |
Set whether the "inline" keyword was specified for this function. More... | |
void | setImplicitlyInline () |
Flag that this function is implicitly inline. More... | |
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. More... | |
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. More... | |
bool | isMSExternInline () const |
The combination of the extern and inline keywords under MSVC forces the function to be required. More... | |
bool | doesDeclarationForceExternallyVisibleDefinition () const |
For a function declaration in C or C++, determine whether this declaration causes the definition to be externally visible. More... | |
bool | isOverloadedOperator () const |
isOverloadedOperator - Whether this function declaration represents an C++ overloaded operator, e.g., "operator+". More... | |
OverloadedOperatorKind | getOverloadedOperator () const |
getOverloadedOperator - Which C++ overloaded operator this function represents, if any. More... | |
const IdentifierInfo * | getLiteralIdentifier () const |
getLiteralIdentifier - The literal suffix identifier this function represents, if any. More... | |
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. More... | |
TemplatedKind | getTemplatedKind () const |
What kind of templated function this is. More... | |
MemberSpecializationInfo * | getMemberSpecializationInfo () const |
If this function is an instantiation of a member function of a class template specialization, retrieves the member specialization information. More... | |
void | setInstantiationOfMemberFunction (FunctionDecl *FD, TemplateSpecializationKind TSK) |
Specify that this record is an instantiation of the member function FD. More... | |
FunctionTemplateDecl * | getDescribedFunctionTemplate () const |
Retrieves the function template that is described by this function declaration. More... | |
void | setDescribedFunctionTemplate (FunctionTemplateDecl *Template) |
bool | isFunctionTemplateSpecialization () const |
Determine whether this function is a function template specialization. More... | |
FunctionDecl * | getClassScopeSpecializationPattern () const |
Retrieve the class scope template pattern that this function template specialization is instantiated from. More... | |
FunctionTemplateSpecializationInfo * | getTemplateSpecializationInfo () const |
If this function is actually a function template specialization, retrieve information about this function template specialization. More... | |
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. More... | |
bool | isTemplateInstantiation () const |
Determines if the given function was instantiated from a function template. More... | |
FunctionDecl * | getTemplateInstantiationPattern () 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). More... | |
FunctionTemplateDecl * | getPrimaryTemplate () const |
Retrieve the primary template that this function template specialization either specializes or was instantiated from. More... | |
const TemplateArgumentList * | getTemplateSpecializationArgs () const |
Retrieve the template arguments used to produce this function template specialization from the primary template. More... | |
const ASTTemplateArgumentListInfo * | getTemplateSpecializationArgsAsWritten () const |
Retrieve the template argument list as written in the sources, if any. More... | |
void | setFunctionTemplateSpecialization (FunctionTemplateDecl *Template, const TemplateArgumentList *TemplateArgs, void *InsertPos, TemplateSpecializationKind TSK=TSK_ImplicitInstantiation, const TemplateArgumentListInfo *TemplateArgsAsWritten=nullptr, SourceLocation PointOfInstantiation=SourceLocation()) |
Specify that this function declaration is actually a function template specialization. More... | |
void | setDependentTemplateSpecialization (ASTContext &Context, const UnresolvedSetImpl &Templates, const TemplateArgumentListInfo &TemplateArgs) |
Specifies that this function declaration is actually a dependent function template specialization. More... | |
DependentFunctionTemplateSpecializationInfo * | getDependentSpecializationInfo () const |
TemplateSpecializationKind | getTemplateSpecializationKind () const |
Determine what kind of template instantiation this function represents. More... | |
void | setTemplateSpecializationKind (TemplateSpecializationKind TSK, SourceLocation PointOfInstantiation=SourceLocation()) |
Determine what kind of template instantiation this function represents. More... | |
SourceLocation | getPointOfInstantiation () const |
Retrieve the (first) point of instantiation of a function template specialization or a member of a class template specialization. More... | |
bool | isOutOfLine () const override |
Determine whether this is or was instantiated from an out-of-line definition of a member function. More... | |
unsigned | getMemoryFunctionKind () const |
Identify a memory copying or setting function. More... | |
![]() | |
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 |
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 |
![]() | |
~DeclContext () | |
Decl::Kind | getDeclKind () const |
const char * | getDeclKindName () const |
DeclContext * | getParent () |
getParent - Returns the containing DeclContext. More... | |
const DeclContext * | getParent () const |
DeclContext * | getLexicalParent () |
getLexicalParent - Returns the containing lexical DeclContext. More... | |
const DeclContext * | getLexicalParent () const |
DeclContext * | getLookupParent () |
Find the parent context of this context that will be used for unqualified name lookup. More... | |
const DeclContext * | getLookupParent () const |
ASTContext & | getParentASTContext () const |
bool | isClosure () const |
bool | isObjCContainer () const |
bool | isFunctionOrMethod () const |
bool | isLookupContext () const |
Test whether the context supports looking up names. More... | |
bool | isFileContext () const |
bool | isTranslationUnit () const |
bool | isRecord () const |
bool | isNamespace () const |
bool | isStdNamespace () const |
bool | isInlineNamespace () const |
bool | isDependentContext () const |
Determines whether this context is dependent on a template parameter. More... | |
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. More... | |
bool | isExternCContext () const |
Determines whether this context or some of its ancestors is a linkage specification context that specifies C linkage. More... | |
bool | isExternCXXContext () const |
Determines whether this context or some of its ancestors is a linkage specification context that specifies C++ linkage. More... | |
bool | Equals (const DeclContext *DC) const |
Determine whether this declaration context is equivalent to the declaration context DC. More... | |
bool | Encloses (const DeclContext *DC) const |
Determine whether this declaration context encloses the declaration context DC. More... | |
Decl * | getNonClosureAncestor () |
Find the nearest non-closure ancestor of this context, i.e. More... | |
const Decl * | getNonClosureAncestor () 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. More... | |
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. More... | |
const DeclContext * | getRedeclContext () const |
DeclContext * | getEnclosingNamespaceContext () |
Retrieve the nearest enclosing namespace context. More... | |
const DeclContext * | getEnclosingNamespaceContext () const |
RecordDecl * | getOuterLexicalRecordContext () |
Retrieve the outermost lexically enclosing record context. More... | |
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. More... | |
void | collectAllContexts (SmallVectorImpl< DeclContext * > &Contexts) |
Collects all of the declaration contexts that are semantically connected to this declaration context. More... | |
decl_range | decls () const |
decls_begin/decls_end - Iterate over the declarations stored in this context. More... | |
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. More... | |
decl_iterator | noload_decls_begin () const |
decl_iterator | noload_decls_end () const |
void | addDecl (Decl *D) |
Add the declaration D into this context. More... | |
void | addDeclInternal (Decl *D) |
Add the declaration D into this context, but suppress searches for external declarations with the same name. More... | |
void | addHiddenDecl (Decl *D) |
Add the declaration D to this context without modifying any lookup tables. More... | |
void | removeDecl (Decl *D) |
Removes a declaration from this context. More... | |
bool | containsDecl (Decl *D) const |
Checks whether a declaration is in this context. More... | |
lookup_result | lookup (DeclarationName Name) const |
lookup - Find the declarations (if any) with the given Name in this context. More... | |
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. More... | |
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. More... | |
void | makeDeclVisibleInContext (NamedDecl *D) |
Makes a declaration visible within this context. More... | |
lookups_range | lookups () const |
lookups_range | noload_lookups () const |
all_lookups_iterator | lookups_begin () const |
Iterators over all possible lookups within this context. More... | |
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. More... | |
all_lookups_iterator | noload_lookups_end () const |
udir_range | using_directives () const |
Returns iterator range [First, Last) of UsingDirectiveDecls stored within this context. More... | |
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). More... | |
StoredDeclsMap * | getLookupPtr () const |
Retrieve the internal representation of the lookup structure. More... | |
StoredDeclsMap * | buildLookup () |
Ensure the lookup structure is fully-built and return it. More... | |
bool | hasExternalLexicalStorage () const |
Whether this DeclContext has external storage containing additional declarations that are lexically in this context. More... | |
void | setHasExternalLexicalStorage (bool ES=true) |
State whether this DeclContext has external storage for declarations lexically in this context. More... | |
bool | hasExternalVisibleStorage () const |
Whether this DeclContext has external storage containing additional declarations that are visible in this context. More... | |
void | setHasExternalVisibleStorage (bool ES=true) |
State whether this DeclContext has external storage for declarations visible in this context. More... | |
bool | isDeclInLexicalTraversal (const Decl *D) const |
Determine whether the given declaration is stored in the list of declarations lexically within this context. More... | |
bool | setUseQualifiedLookup (bool use=true) |
bool | shouldUseQualifiedLookup () const |
void | dumpDeclContext () const |
void | dumpLookups () const |
void | dumpLookups (llvm::raw_ostream &OS, bool DumpDecls=false) const |
![]() | |
Redeclarable (const ASTContext &Ctx) | |
FunctionDecl * | getPreviousDecl () |
Return the previous declaration of this declaration or NULL if this is the first declaration. More... | |
const FunctionDecl * | getPreviousDecl () const |
FunctionDecl * | getFirstDecl () |
Return the first declaration of this declaration or itself if this is the only declaration. More... | |
const FunctionDecl * | 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... | |
FunctionDecl * | getMostRecentDecl () |
Returns the most recent (re)declaration of this declaration. More... | |
const FunctionDecl * | getMostRecentDecl () const |
Returns the most recent (re)declaration of this declaration. More... | |
void | setPreviousDecl (FunctionDecl *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 |
Additional Inherited Members | |
![]() | |
typedef Redeclarable < FunctionDecl > | redeclarable_base |
![]() | |
static std::pair< Decl *, Decl * > | BuildDeclChain (ArrayRef< Decl * > Decls, bool FieldsAlreadyLoaded) |
Build up a chain of declarations. More... | |
![]() | |
static DeclLink | PreviousDeclLink (FunctionDecl *D) |
static DeclLink | LatestDeclLink (const ASTContext &Ctx) |
![]() | |
Decl * | FirstDecl |
FirstDecl - The first declaration stored within this declaration context. More... | |
Decl * | LastDecl |
LastDecl - The last declaration stored within this declaration context. More... | |
![]() | |
DeclLink | RedeclLink |
Points to the next redeclaration in the chain. More... | |
FunctionDecl * | First |
Represents a static or instance method of a struct/union/class.
In the terminology of the C++ Standard, these are the (static and non-static) member functions, whether virtual or not.
typedef const CXXMethodDecl* const* clang::CXXMethodDecl::method_iterator |
|
inlineprotected |
Definition at line 1739 of file DeclCXX.h.
References clang::SourceLocation::isValid(), and clang::FunctionDecl::setRangeEnd().
Referenced by Create(), and CreateDeserialized().
void CXXMethodDecl::addOverriddenMethod | ( | const CXXMethodDecl * | MD | ) |
Definition at line 1641 of file DeclCXX.cpp.
References getParent(), clang::DeclContext::isDependentContext(), and isVirtual().
Referenced by clang::Sema::AddOverriddenMethods().
CXXMethodDecl::method_iterator CXXMethodDecl::begin_overridden_methods | ( | ) | const |
Definition at line 1650 of file DeclCXX.cpp.
Referenced by clang::Sema::actOnDelayedExceptionSpecification(), AddMostOverridenMethods(), clang::Sema::CheckConstexprFunctionDecl(), clang::Sema::CheckOverrideControl(), clang::Sema::DiagnoseAbsenceOfOverrideControl(), getFirstVirtualDecl(), isVirtual(), MaybeAddOverrideCalls(), recursivelyOverrides(), ReportOverrides(), clang::Sema::SetDeclDeleted(), and clang::ASTDeclWriter::VisitCXXMethodDecl().
Definition at line 1901 of file DeclCXX.h.
References classofKind().
|
static |
Definition at line 1540 of file DeclCXX.cpp.
References AttributeLangSupport::C, and CXXMethodDecl().
Referenced by addFunctionPointerConversion(), CreateNewFunctionDecl(), clang::Sema::DeclareImplicitCopyAssignment(), clang::Sema::DeclareImplicitMoveAssignment(), clang::Sema::startLambdaDefinition(), clang::TemplateDeclInstantiator::VisitCXXMethodDecl(), and clang::ASTNodeImporter::VisitFunctionDecl().
|
static |
Definition at line 1551 of file DeclCXX.cpp.
References AttributeLangSupport::C, CXXMethodDecl(), ID, and clang::SC_None.
CXXMethodDecl::method_iterator CXXMethodDecl::end_overridden_methods | ( | ) | const |
Definition at line 1655 of file DeclCXX.cpp.
Referenced by clang::Sema::actOnDelayedExceptionSpecification(), AddMostOverridenMethods(), clang::Sema::CheckOverrideControl(), getFirstVirtualDecl(), isVirtual(), MaybeAddOverrideCalls(), recursivelyOverrides(), ReportOverrides(), clang::Sema::SetDeclDeleted(), and clang::ASTDeclWriter::VisitCXXMethodDecl().
|
inlineoverride |
Definition at line 1804 of file DeclCXX.h.
References clang::FunctionDecl::getCanonicalDecl().
Referenced by clang::Sema::ActOnFinishFunctionBody(), AddMostOverridenMethods(), clang::Sema::CheckConstexprFunctionDecl(), clang::Sema::CheckExplicitlyDefaultedSpecialMember(), clang::ASTContext::DeclMustBeEmitted(), clang::Sema::EvaluateImplicitExceptionSpec(), getCanonicalDecl(), getCorrespondingMethodInClass(), getFirstVirtualDecl(), clang::CXXInstanceCall::getInitialStackFrameContents(), GroupNewVirtualOverloads(), isStatic(), isUserProvided(), isVirtual(), MaybeAddOverrideCalls(), clang::ASTContext::overridden_methods_begin(), clang::ASTContext::overridden_methods_end(), clang::ASTContext::overridden_methods_size(), recursivelyOverrides(), selectBestPath(), clang::ASTDeclReader::VisitCXXDestructorDecl(), and clang::ASTDeclReader::VisitCXXMethodDecl().
|
inline |
Definition at line 1807 of file DeclCXX.h.
References getCanonicalDecl().
CXXMethodDecl * CXXMethodDecl::getCorrespondingMethodInClass | ( | const CXXRecordDecl * | RD, |
bool | MayBeBase = false |
||
) |
Find the method in RD
that corresponds to this one.
Find if RD
or one of the classes it inherits from override this method. If so, return it. RD
is assumed to be a subclass of the class defining this method (or be the class itself), unless MayBeBase
is set to true.
Definition at line 1499 of file DeclCXX.cpp.
References clang::CXXRecordDecl::bases(), clang::CXXRecordDecl::getCanonicalDecl(), getCanonicalDecl(), clang::RecordType::getDecl(), clang::NamedDecl::getDeclName(), clang::CXXRecordDecl::getDestructor(), getParent(), I, clang::DeclContext::lookup(), and recursivelyOverrides().
Referenced by clang::CodeGen::CodeGenFunction::EmitCXXMemberOrOperatorMemberCallExpr(), getCorrespondingMethodInClass(), clang::CXXInstanceCall::getRuntimeDefinition(), and MarkExprReferenced().
|
inline |
Definition at line 1894 of file DeclCXX.h.
References getCorrespondingMethodInClass().
|
inline |
Definition at line 1811 of file DeclCXX.h.
Referenced by getMostRecentDecl(), and clang::ASTDeclWriter::VisitCXXMethodDecl().
|
inline |
Definition at line 1815 of file DeclCXX.h.
References getMostRecentDecl().
|
inline |
Returns the parent of this method declaration, which is the class in which this method is defined.
Definition at line 1838 of file DeclCXX.h.
References clang::DeclContext::getParent().
Referenced by clang::Sema::ActOnFinishFunctionBody(), AddImplicitObjectParameterType(), clang::Sema::AddOverloadCandidate(), addOverriddenMethod(), clang::CodeGen::CodeGenTypes::arrangeCXXStructorDeclaration(), clang::CodeGen::CodeGenTypes::arrangeMSCtorClosure(), clang::CodeGen::CodeGenTypes::arrangeMSMemberPointerThunk(), clang::Sema::BuildBlockForLambdaConversion(), clang::Sema::BuildCallToMemberFunction(), clang::Sema::BuildCXXConstructExpr(), clang::Sema::BuildCXXMemberCallExpr(), BuildImplicitMemberInitializer(), clang::Sema::buildLambdaScope(), clang::Sema::BuildMemInitializer(), clang::CodeGen::CGCXXABI::buildThisParam(), clang::CodeGen::CodeGenFunction::CanDevirtualizeMemberFunctionCall(), CanSkipVTablePointerInitialization(), clang::Sema::CheckConstexprFunctionDecl(), clang::Sema::CheckConstructorAccess(), clang::Sema::CheckDestructor(), clang::Sema::CheckDestructorAccess(), clang::Sema::CheckExplicitlyDefaultedSpecialMember(), clang::Sema::CheckOverrideControl(), clang::Sema::CheckOverridingFunctionExceptionSpec(), clang::Sema::CheckPureMethod(), clang::Sema::CheckVirtualDtorCall(), clang::Sema::CodeCompleteConstructorInitializer(), commonEmitCXXMemberOrOperatorCall(), compareConversionFunctions(), clang::Sema::ComputeDefaultedCopyAssignmentExceptionSpec(), clang::Sema::ComputeDefaultedCopyCtorExceptionSpec(), clang::Sema::ComputeDefaultedDefaultCtorExceptionSpec(), clang::Sema::ComputeDefaultedDtorExceptionSpec(), clang::Sema::ComputeDefaultedMoveAssignmentExceptionSpec(), clang::Sema::ComputeDefaultedMoveCtorExceptionSpec(), clang::Sema::ComputeInheritingCtorExceptionSpec(), clang::Sema::CreateOverloadedBinOp(), clang::Sema::DefineImplicitCopyAssignment(), clang::Sema::DefineImplicitCopyConstructor(), clang::Sema::DefineImplicitDefaultConstructor(), clang::Sema::DefineImplicitDestructor(), clang::Sema::DefineImplicitLambdaToBlockPointerConversion(), clang::Sema::DefineImplicitLambdaToFunctionPointerConversion(), clang::Sema::DefineImplicitMoveAssignment(), clang::Sema::DefineImplicitMoveConstructor(), clang::Sema::DefineInheritingConstructor(), clang::InitializationSequence::Diagnose(), DiagnoseBadTarget(), DiagnoseBaseOrMemInitializerOrder(), diagnoseDeprecatedCopyOperation(), clang::Sema::DiagnoseEmptyLookup(), diagnoseInstanceReference(), clang::CodeGen::CodeGenFunction::EmitCtorPrologue(), clang::CodeGen::CodeGenFunction::EmitCXXAggrConstructorCall(), clang::CodeGen::CodeGenFunction::EmitCXXConstructorCall(), emitCXXDestructor(), clang::CodeGen::CodeGenFunction::EmitCXXMemberOrOperatorMemberCallExpr(), clang::CodeGen::CodeGenFunction::EmitDelegatingCXXConstructorCall(), clang::CodeGen::CodeGenFunction::EmitDestructorBody(), clang::CodeGen::CodeGenFunction::EmitLambdaDelegatingInvokeBody(), clang::CodeGen::CGCXXABI::EmitMemberFunctionPointer(), clang::CodeGen::CodeGenFunction::EmitNewArrayInitializer(), clang::CodeGen::CodeGenFunction::EnterDtorCleanups(), clang::Sema::FindHiddenVirtualMethods(), clang::CodeGen::CodeGenFunction::GenerateVarArgsThunk(), getCodegenToUse(), getCorrespondingMethodInClass(), GetDiagForGotoScopeDecl(), clang::ento::LikelyFalsePositiveSuppressionBRVisitor::getEndPath(), clang::CXXInstanceCall::getInitialStackFrameContents(), getNonClosureContext(), clang::CXXInstanceCall::getRuntimeDefinition(), clang::CodeGen::CGCXXABI::getThisArgumentTypeForMethod(), getThisType(), clang::VTableContextBase::getThunkInfo(), HandleConstructorCall(), clang::Sema::InstantiateMemInitializers(), clang::Expr::isConstantInitializer(), IsConstructorDelegationValid(), isCopyAssignmentOperator(), clang::CXXConstructorDecl::isCopyOrMoveConstructor(), isCXXSharedPtrDtor(), clang::Sema::isEmptyCudaConstructor(), clang::Sema::isEmptyCudaDestructor(), clang::isGenericLambdaCallOperatorSpecialization(), clang::isLambdaCallOperator(), clang::isLambdaConversionOperator(), isLambdaStaticInvoker(), clang::CXXConversionDecl::isLambdaToBlockPointerConversion(), isMemcpyEquivalentSpecialMember(), isMoveAssignmentOperator(), clang::CXXConstructorDecl::isSpecializationCopyingObject(), clang::Sema::isSpecialMemberAccessibleForDeletion(), IsStandardConversion(), mayInlineCallKind(), clang::Sema::MergeCXXFunctionDecl(), PerformConstructorInitialization(), clang::Sema::PerformObjectArgumentInitialization(), RebuildLambdaScopeInfo(), recordFixedType(), selectBestPath(), clang::Sema::SetCtorInitializers(), clang::Sema::SetDeclDefaulted(), clang::Sema::SetDelegatingInitializer(), clang::ASTContext::setNonKeyFunction(), clang::Sema::ShouldDeleteSpecialMember(), SpecializeCorrespondingLambdaCallOperatorAndInvoker(), clang::Sema::SpecialMemberIsTrivial(), clang::CodeGen::CodeGenFunction::StartFunction(), TryConstructorInitialization(), clang::CodeGen::CodeGenModule::TryEmitBaseDestructorAsAlias(), TryStaticMemberPointerUpcast(), and clang::FunctionCallFilterCCC::ValidateCandidate().
|
inline |
Returns the parent of this method declaration, which is the class in which this method is defined.
Definition at line 1844 of file DeclCXX.h.
References clang::DeclContext::getParent().
|
inline |
Retrieve the ref-qualifier associated with this method.
In the following example, f()
has an lvalue ref-qualifier, g()
has an rvalue ref-qualifier, and h()
has no ref-qualifier.
Definition at line 1869 of file DeclCXX.h.
References clang::Type::getAs(), and clang::ValueDecl::getType().
Referenced by AddImplicitObjectParameterType(), clang::Sema::IsOverload(), and TryObjectArgumentInitialization().
QualType CXXMethodDecl::getThisType | ( | ASTContext & | C | ) | const |
Returns the type of the this
pointer.
Should only be called for instance (i.e., non-static) methods.
Definition at line 1672 of file DeclCXX.cpp.
References clang::Qualifiers::fromCVRUMask(), getParent(), clang::ASTContext::getPointerType(), clang::ASTContext::getQualifiedType(), clang::ASTContext::getTypeDeclType(), getTypeQualifiers(), and isInstance().
Referenced by clang::CodeGen::CodeGenFunction::BuildFunctionArgList(), clang::CodeGen::CGCXXABI::buildThisParam(), checkForConsumableClass(), clang::Sema::CheckVirtualDtorCall(), commonEmitCXXMemberOrOperatorCall(), clang::CodeGen::CodeGenFunction::EmitCallAndReturnForThunk(), clang::CodeGen::CodeGenFunction::EmitCXXConstructorCall(), clang::CodeGen::CGDebugInfo::EmitDeclareOfBlockLiteralArgVariable(), clang::CodeGen::CodeGenFunction::EmitInheritedCXXConstructorCall(), clang::CodeGen::CodeGenFunction::EmitSynthesizedCXXCopyCtorCall(), clang::ento::SValBuilder::getCXXThis(), IsInitializerListConstructorConversion(), clang::Sema::PerformObjectArgumentInitialization(), clang::CodeGen::CodeGenFunction::StartThunk(), and clang::consumed::ConsumedStmtVisitor::VisitCXXConstructExpr().
|
inline |
Definition at line 1854 of file DeclCXX.h.
References clang::Type::getAs(), and clang::ValueDecl::getType().
Referenced by AddImplicitObjectParameterType(), clang::Sema::CheckFunctionDeclaration(), clang::Sema::DefineImplicitCopyAssignment(), clang::Sema::DefineImplicitMoveAssignment(), getThisType(), clang::Sema::IsOverload(), and TryObjectArgumentInitialization().
bool CXXMethodDecl::hasInlineBody | ( | ) | const |
Definition at line 1687 of file DeclCXX.cpp.
References clang::FunctionDecl::getTemplateInstantiationPattern(), clang::FunctionDecl::hasBody(), and clang::FunctionDecl::isOutOfLine().
|
inline |
Definition at line 1777 of file DeclCXX.h.
References clang::Type::castAs(), clang::ValueDecl::getType(), and isConst().
Referenced by clang::Sema::ActOnStartOfLambdaDefinition(), adjustCVQualifiersForCXXThisWithinLambda(), clang::Sema::CheckFunctionTemplateSpecialization(), DiagnoseInvalidRedeclaration(), isConst(), clang::LambdaExpr::isMutable(), and RebuildLambdaScopeInfo().
bool CXXMethodDecl::isCopyAssignmentOperator | ( | ) | const |
Determine whether this is a copy-assignment operator, regardless of whether it was declared implicitly or explicitly.
Definition at line 1599 of file DeclCXX.cpp.
References clang::Type::getAs(), clang::ASTContext::getCanonicalType(), clang::FunctionDecl::getDescribedFunctionTemplate(), clang::FunctionDecl::getNumParams(), clang::FunctionDecl::getOverloadedOperator(), clang::FunctionDecl::getParamDecl(), getParent(), clang::Type::getPointeeType(), clang::FunctionDecl::getPrimaryTemplate(), clang::ValueDecl::getType(), clang::ASTContext::getTypeDeclType(), clang::ASTContext::hasSameUnqualifiedType(), and isStatic().
Referenced by clang::CodeGen::CodeGenFunction::EmitCXXMemberOrOperatorMemberCallExpr(), EvaluateUnaryTypeTrait(), clang::CXXRecordDecl::finishedDefaultedOrDeletedMember(), clang::Sema::getSpecialMember(), isMemcpyEquivalentSpecialMember(), and isTrivialObjectAssignment().
|
inline |
Definition at line 1763 of file DeclCXX.h.
References isStatic().
Referenced by clang::CodeGen::CodeGenTypes::arrangeCXXMethodDeclaration(), clang::CodeGen::CodeGenFunction::BuildFunctionArgList(), clang::Sema::CheckConstexprFunctionDecl(), clang::Sema::CheckOverrideControl(), commonEmitCXXMemberOrOperatorCall(), clang::Sema::DiagnoseEmptyLookup(), clang::CodeGen::CodeGenFunction::EmitCXXOperatorMemberCallExpr(), clang::comments::DeclInfo::fill(), and getThisType().
bool CXXMethodDecl::isLambdaStaticInvoker | ( | ) | const |
Determine whether this is a lambda closure type's static member function that is used for the result of the lambda's conversion to function pointer (for a lambda with no captures).
The function itself, if used, will have a placeholder body that will be supplied by IR generation to either forward to the function call operator or clone the function call operator.
Definition at line 1698 of file DeclCXX.cpp.
References clang::CXXRecordDecl::getLambdaStaticInvoker(), getParent(), clang::FunctionDecl::getPrimaryTemplate(), clang::FunctionTemplateDecl::getTemplatedDecl(), clang::FunctionDecl::isFunctionTemplateSpecialization(), clang::CXXRecordDecl::isGenericLambda(), clang::CXXRecordDecl::isLambda(), and P.
bool CXXMethodDecl::isMoveAssignmentOperator | ( | ) | const |
Determine whether this is a move assignment operator.
Definition at line 1620 of file DeclCXX.cpp.
References clang::ASTContext::getCanonicalType(), clang::FunctionDecl::getDescribedFunctionTemplate(), clang::FunctionDecl::getNumParams(), clang::FunctionDecl::getOverloadedOperator(), clang::FunctionDecl::getParamDecl(), getParent(), clang::Type::getPointeeType(), clang::FunctionDecl::getPrimaryTemplate(), clang::ValueDecl::getType(), clang::ASTContext::getTypeDeclType(), clang::ASTContext::hasSameUnqualifiedType(), and isStatic().
Referenced by clang::Sema::AddMethodCandidate(), checkMoveAssignmentForRepeatedMove(), clang::CodeGen::CodeGenFunction::EmitCXXMemberOrOperatorMemberCallExpr(), EvaluateUnaryTypeTrait(), clang::CXXRecordDecl::finishedDefaultedOrDeletedMember(), clang::Sema::getSpecialMember(), isMemcpyEquivalentSpecialMember(), isTrivialObjectAssignment(), and clang::Sema::ShouldDeleteSpecialMember().
bool CXXMethodDecl::isStatic | ( | ) | const |
Definition at line 1475 of file DeclCXX.cpp.
References getCanonicalDecl(), clang::DeclarationName::getCXXOverloadedOperator(), clang::NamedDecl::getDeclName(), clang::FunctionDecl::getStorageClass(), isStaticOverloadedOperator(), and clang::SC_Static.
Referenced by clang::Sema::actOnDelayedExceptionSpecification(), clang::Sema::AddMethodCandidate(), clang::Sema::BuildCallToMemberFunction(), clang::Sema::CheckFunctionDeclaration(), CreateNewFunctionDecl(), diagnoseInstanceReference(), clang::index::getSymbolInfo(), isAtLeastAsSpecializedAs(), isCopyAssignmentOperator(), isInstance(), isMoveAssignmentOperator(), clang::Sema::IsOverload(), IsStandardConversion(), clang::Sema::MergeFunctionDecl(), and clang::TemplateDeclInstantiator::VisitCXXMethodDecl().
|
inlinestatic |
Returns true if the given operator is implicitly static in a record context.
Definition at line 1767 of file DeclCXX.h.
Referenced by handleAnyX86InterruptAttr(), isStatic(), and clang::Declarator::isStaticMember().
|
inline |
True if this method is user-declared and was not deleted or defaulted on its first declaration.
Definition at line 1821 of file DeclCXX.h.
References getCanonicalDecl(), clang::FunctionDecl::isDefaulted(), and clang::FunctionDecl::isDeleted().
Referenced by checkTrivialSubobjectCall(), findTrivialSpecialMember(), clang::CXXRecordDecl::finishedDefaultedOrDeletedMember(), clang::Sema::MarkFunctionReferenced(), clang::Sema::RequireLiteralType(), and clang::Sema::SpecialMemberIsTrivial().
bool CXXMethodDecl::isUsualDeallocationFunction | ( | ) | const |
Determine whether this is a usual deallocation function (C++ [basic.stc.dynamic.deallocation]p2), which is an overloaded delete or delete[] operator with a particular signature.
Definition at line 1557 of file DeclCXX.cpp.
References clang::DeclContextLookupResult::begin(), E, clang::DeclContextLookupResult::end(), clang::NamedDecl::getDeclName(), clang::FunctionDecl::getNumParams(), clang::FunctionDecl::getOverloadedOperator(), clang::FunctionDecl::getParamDecl(), clang::FunctionDecl::getPrimaryTemplate(), clang::ASTContext::getSizeType(), clang::ValueDecl::getType(), clang::ASTContext::hasSameUnqualifiedType(), and I.
|
inline |
Definition at line 1780 of file DeclCXX.h.
References begin_overridden_methods(), end_overridden_methods(), getCanonicalDecl(), clang::FunctionDecl::isPure(), and clang::FunctionDecl::isVirtualAsWritten().
Referenced by clang::Sema::actOnDelayedExceptionSpecification(), clang::Sema::ActOnFinishFunctionBody(), addOverriddenMethod(), clang::CodeGen::CodeGenTypes::arrangeMSMemberPointerThunk(), clang::Sema::CheckCompletedCXXClass(), clang::Sema::CheckConstexprFunctionDecl(), clang::Sema::CheckDestructor(), clang::Sema::CheckOverrideControl(), clang::Sema::CheckPureMethod(), clang::Sema::CheckVirtualDtorCall(), clang::CodeGen::CodeGenModule::ConstructAttributeList(), emitCXXDestructor(), clang::CodeGen::CodeGenFunction::EmitCXXMemberOrOperatorMemberCallExpr(), EmitObjectDelete(), clang::CXXInstanceCall::getRuntimeDefinition(), GroupNewVirtualOverloads(), hasRecursiveCallInPath(), LeastDerivedClassWithSameLayout(), MarkExprReferenced(), clang::Sema::MarkVTableUsed(), MaybeAddOverrideCalls(), selectBestPath(), clang::Sema::ShouldDeleteSpecialMember(), and clang::Sema::SpecialMemberIsTrivial().
|
inline |
Definition at line 1778 of file DeclCXX.h.
References clang::Type::castAs(), clang::ValueDecl::getType(), and isVolatile().
Referenced by isVolatile().
CXXMethodDecl::overridden_method_range CXXMethodDecl::overridden_methods | ( | ) | const |
Definition at line 1666 of file DeclCXX.cpp.
unsigned CXXMethodDecl::size_overridden_methods | ( | ) | const |
Definition at line 1660 of file DeclCXX.cpp.
Referenced by AddMostOverridenMethods(), clang::Sema::DiagnoseAbsenceOfOverrideControl(), and clang::ASTDeclWriter::VisitCXXMethodDecl().