Represents a function declaration or definition. More...
#include "clang/AST/Decl.h"
Decl
represents a declaration for a body of code, such as a function or method definition.
Decl
represents a declaration for a body of code, such as a function or method definition.
Represents a function declaration or definition.
Since a given function can be declared several times in a program, there may be several FunctionDecls that correspond to that function. Only one of those FunctionDecls will be found when traversing the list of declarations in the context of the FunctionDecl (e.g., the translation unit); this FunctionDecl contains all of the information known about the function. Other, previous declarations of the function are available via the getPreviousDecl() chain.
Definition at line 1933 of file Decl.h.
◆ param_const_iterator ◆ param_iterator ◆ redecl_iterator ◆ redecl_range ◆ redeclarable_base ◆ TemplatedKindThe kind of templated function a FunctionDecl can be.
Enumerator TK_NonTemplate TK_FunctionTemplate TK_MemberSpecialization TK_FunctionTemplateSpecialization TK_DependentFunctionTemplateSpecialization TK_DependentNonTemplateDefinition at line 1940 of file Decl.h.
◆ FunctionDecl() FunctionDecl::FunctionDecl ( Kind DK, ASTContext & C, DeclContext * DC, SourceLocation StartLoc, const DeclarationNameInfo & NameInfo, QualType T, TypeSourceInfo * TInfo, StorageClass S, bool UsesFPIntrin, bool isInlineSpecified, ConstexprSpecKind ConstexprKind, Expr * TrailingRequiresClause =nullptr
) protected ◆ BodyContainsImmediateEscalatingExpressions() bool clang::FunctionDecl::BodyContainsImmediateEscalatingExpressions ( ) const inline ◆ castFromDeclContext() ◆ castToDeclContext() ◆ classof() static bool clang::FunctionDecl::classof ( const Decl * D ) inlinestatic ◆ classofKind() static bool clang::FunctionDecl::classofKind ( Kind K ) inlinestatic ◆ Create() [1/2] FunctionDecl * FunctionDecl::Create ( ASTContext & C, DeclContext * DC, SourceLocation StartLoc, const DeclarationNameInfo & NameInfo, QualType T, TypeSourceInfo * TInfo, StorageClass SC, bool UsesFPIntrin, bool isInlineSpecified, bool hasWrittenPrototype, ConstexprSpecKind ConstexprKind, Expr * TrailingRequiresClause ) static ◆ Create() [2/2] static FunctionDecl * clang::FunctionDecl::Create ( ASTContext & C, DeclContext * DC, SourceLocation StartLoc, SourceLocation NLoc, DeclarationName N, QualType T, TypeSourceInfo * TInfo, StorageClass SC, bool UsesFPIntrin = false
, bool isInlineSpecified = false
, bool hasWrittenPrototype = true
, ConstexprSpecKind ConstexprKind = ConstexprSpecKind::Unspecified
, Expr * TrailingRequiresClause = nullptr
) inlinestatic
Definition at line 2124 of file Decl.h.
References clang::C, Create(), hasWrittenPrototype(), isInlineSpecified(), clang::T, and UsesFPIntrin().
Referenced by Create(), clang::Sema::CreateBuiltin(), CreateNewFunctionDecl(), clang::Sema::DeclareGlobalAllocationFunction(), clang::Sema::DeclClonePragmaWeak(), emitOutlinedFunctionPrologue(), InsertOCLBuiltinDeclarationsFromTable(), rewriteBuiltinFunctionDecl(), and clang::TemplateDeclInstantiator::VisitFunctionDecl().
◆ CreateDeserialized() ◆ doesDeclarationForceExternallyVisibleDefinition() bool FunctionDecl::doesDeclarationForceExternallyVisibleDefinition ( ) constFor a function declaration in C or C++, determine whether this declaration causes the definition to be externally visible.
For instance, this determines if adding the current declaration to the set of redeclarations of the given functions causes isInlineDefinitionExternallyVisible to change from false to true.
Definition at line 3828 of file Decl.cpp.
References clang::Definition, doesThisDeclarationHaveABody(), clang::Decl::getASTContext(), clang::ASTContext::getLangOpts(), clang::Redeclarable< decl_type >::getPreviousDecl(), getStorageClass(), hasBody(), isInlineSpecified(), RedeclForcesDefC99(), redeclForcesDefMSVC(), and clang::SC_Extern.
Referenced by clang::CodeGen::CodeGenModule::EmitGlobal().
◆ doesThisDeclarationHaveABody() bool clang::FunctionDecl::doesThisDeclarationHaveABody ( ) const inlineReturns whether this specific declaration of the function has a body.
Definition at line 2261 of file Decl.h.
References Body, clang::DeclContext::FunctionDeclBits, and isLateTemplateParsed().
Referenced by clang::ASTRecordWriter::AddFunctionDefinition(), CheckAbstractClassUsage(), CXXRecordNonInlineHasAttr(), clang::Sema::DefineDefaultedComparison(), clang::Sema::DefineImplicitCopyAssignment(), clang::Sema::DefineImplicitMoveAssignment(), doesDeclarationForceExternallyVisibleDefinition(), clang::CodeGen::CodeGenModule::EmitGlobal(), clang::dataflow::Environment::Environment(), clang::dataflow::DataflowAnalysisContext::getAdornedCFG(), clang::CXXMethodDecl::hasInlineBody(), isInlineDefinitionExternallyVisible(), and isThisDeclarationADefinition().
◆ FriendConstraintRefersToEnclosingTemplate() bool clang::FunctionDecl::FriendConstraintRefersToEnclosingTemplate ( ) const inline ◆ getAssociatedConstraints() void clang::FunctionDecl::getAssociatedConstraints ( SmallVectorImpl< const Expr * > & AC ) const inline ◆ getBody() [1/2] Stmt * clang::FunctionDecl::getBody ( ) const inlineoverridevirtual ◆ getBody() [2/2]Retrieve the body (definition) of the function.
The function body might be in any of the (re-)declarations of this function. The variant that accepts a FunctionDecl pointer will set that function declaration to the actual declaration containing the body (if there is one). NOTE: For checking if there is a body, use hasBody() instead, to avoid unnecessary AST de-serialization of the body.
Definition at line 3239 of file Decl.cpp.
References clang::Definition, clang::Decl::getASTContext(), and hasBody().
Referenced by addBlockPointerConversion(), clang::ASTRecordWriter::AddFunctionDefinition(), addFunctionPointerConversion(), clang::Sema::BuildLambdaExpr(), clang::Sema::CheckConstexprFunctionDefinition(), ComputeDefaultedComparisonExceptionSpec(), createOverloadsForFixedParams(), endsWithReturn(), getMethodBody(), clang::dataflow::getReferencedDecls(), HandleDestructionImpl(), clang::ASTNodeImporter::ImportFunctionDeclBody(), clang::Sema::InstantiateFunctionDefinition(), clang::Expr::isPotentialConstantExpr(), and clang::interp::Compiler< Emitter >::visitFunc().
◆ getBuiltinID()Returns a value indicating whether this function corresponds to a builtin function.
The function corresponds to a built-in function if it is declared at translation scope or within an extern "C" block and its name matches with the name of a builtin. The returned value will be 0 for functions that do not correspond to a builtin, a value of type Builtin::ID
if in the target-independent range [1,Builtin::First), or a target-specific builtin value.
Definition at line 3649 of file Decl.cpp.
References clang::ASTContext::BuiltinInfo, clang::CPlusPlus, clang::Decl::getASTContext(), clang::ASTContext::getLangOpts(), clang::Decl::getLangOpts(), getStorageClass(), clang::ASTContext::getTargetInfo(), clang::TargetInfo::getTriple(), clang::Builtin::Context::isPredefinedLibFunction(), and clang::SC_Static.
Referenced by clang::Sema::ActOnStartOfFunctionDef(), clang::Sema::AddKnownFunctionAttributes(), clang::Sema::BuildCallExpr(), clang::Sema::buildOverloadedCallSet(), clang::Sema::BuildResolvedCallExpr(), clang::ASTContext::canBuiltinBeRedeclared(), clang::Sema::checkCall(), clang::Sema::CheckEquivalentExceptionSpec(), checkFormatStringExpr(), clang::Sema::CheckFunctionCall(), clang::Sema::ConvertArgumentsForCall(), DiagnosedUnqualifiedCallsToStdFunctions(), EmitDirectCallee(), emitLibraryCall(), emitReplacement(), getAbsoluteValueFunctionKind(), getMemoryFunctionKind(), handleDiagnoseAsBuiltinAttr(), clang::Sema::inferLifetimeBoundAttribute(), clang::ento::CheckerContext::isCLibraryFunction(), isInlineBuiltinDeclaration(), clang::Sema::MergeFunctionDecl(), and rewriteBuiltinFunctionDecl().
◆ getCallResultType() QualType clang::FunctionDecl::getCallResultType ( ) const inline ◆ getCanonicalDecl() [1/2] const FunctionDecl * clang::FunctionDecl::getCanonicalDecl ( ) const inline ◆ getCanonicalDecl() [2/2]Retrieves the "canonical" declaration of the given declaration.
Reimplemented from clang::Decl.
Reimplemented in clang::CXXMethodDecl, clang::CXXConstructorDecl, clang::CXXDestructorDecl, and clang::CXXConversionDecl.
Definition at line 3634 of file Decl.cpp.
References clang::Redeclarable< FunctionDecl >::getFirstDecl().
Referenced by clang::Sema::CheckExplicitlyDefaultedComparison(), clang::Sema::CheckImmediateEscalatingFunctionDefinition(), clang::Sema::CheckMemberSpecialization(), checkRecursiveFunction(), clang::interp::Program::createFunction(), clang::CodeGen::CGOpenMPRuntime::emitDeclareTargetFunction(), FriendConstraintRefersToEnclosingTemplate(), getCanonicalDecl(), clang::CXXMethodDecl::getCanonicalDecl(), clang::CXXConstructorDecl::getCanonicalDecl(), clang::CXXDestructorDecl::getCanonicalDecl(), clang::CXXConversionDecl::getCanonicalDecl(), clang::Sema::getEmissionStatus(), clang::interp::Program::getFunction(), isDeleted(), isGlobal(), isInstantiationOf(), isMultiVersion(), clang::Sema::MergeFunctionDecl(), clang::Sema::SetDeclDefaulted(), setFriendConstraintRefersToEnclosingTemplate(), and setIsMultiVersion().
◆ getConstexprKind() ◆ getDeclaredReturnType() QualType clang::FunctionDecl::getDeclaredReturnType ( ) const inline ◆ getDefalutedOrDeletedInfo() ◆ getDefaultLoc() ◆ getDefinition() [1/2] ◆ getDefinition() [2/2] const FunctionDecl * clang::FunctionDecl::getDefinition ( ) const inline ◆ getDeletedMessage() ◆ getDependentSpecializationInfo() ◆ getDescribedFunctionTemplate()Retrieves the function template that is described by this function declaration.
Every function template is represented as a FunctionTemplateDecl and a FunctionDecl (or something derived from FunctionDecl). The former contains template properties (such as the template parameter lists) while the latter contains the actual description of the template's contents. FunctionTemplateDecl::getTemplatedDecl() retrieves the FunctionDecl that describes the function template, getDescribedFunctionTemplate() retrieves the FunctionTemplateDecl from a FunctionDecl.
Definition at line 4063 of file Decl.cpp.
Referenced by clang::Sema::ActOnConversionDeclarator(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnStartOfLambdaDefinition(), clang::Sema::AddConversionCandidate(), addFunctionPointerConversion(), AreSpecialMemberFunctionsSameKind(), clang::Sema::BuildLambdaExpr(), clang::SemaCUDA::CheckCall(), clang::Sema::CheckCXXDefaultArguments(), clang::Sema::CheckFunctionDeclaration(), clang::Sema::CheckIfFunctionSpecializationIsImmediate(), clang::Sema::CheckLiteralOperatorDeclaration(), clang::Sema::CheckMain(), clang::Sema::CheckMSVCRTEntryPoint(), CheckOperatorNewDeleteTypes(), clang::Sema::CheckOverload(), clang::interp::ByteCodeEmitter::compileFunc(), clang::Sema::CompleteLambdaCallOperator(), clang::Sema::DeclareAggregateDeductionGuideFromInitList(), clang::Sema::DeduceReturnType(), clang::Sema::DefineImplicitLambdaToFunctionPointerConversion(), clang::Sema::FriendConstraintsDependOnEnclosingTemplate(), FunctionsCorrespond(), clang::CXXRecordDecl::getGenericLambdaTemplateParameterList(), clang::CXXMethodDecl::isCopyAssignmentOperator(), clang::CXXConstructorDecl::isCopyOrMoveConstructor(), isMemberLikeConstrainedFriend(), clang::CXXMethodDecl::isMoveAssignmentOperator(), IsOverloadOrOverrideImpl(), clang::CXXConstructorDecl::isSpecializationCopyingObject(), isThisDeclarationInstantiatedFromAFriendDefinition(), clang::SemaCUDA::maybeAddHostDeviceAttrs(), clang::Sema::MergeCXXFunctionDecl(), clang::Sema::MergeFunctionDecl(), NoteImplicitDeductionGuide(), clang::Sema::RebuildLambdaScopeInfo(), setPreviousDeclaration(), ShouldWarnAboutMissingPrototype(), clang::ASTNodeImporter::VisitFunctionDecl(), clang::TemplateDeclInstantiator::VisitFunctionDecl(), and clang::ASTDeclReader::VisitFunctionDecl().
◆ getEllipsisLoc() ◆ getExceptionSpecSourceRange() SourceRange FunctionDecl::getExceptionSpecSourceRange ( ) const ◆ getExceptionSpecType() ◆ getFunctionEffects() ◆ getFunctionTypeLoc() ◆ getInstantiatedFromDecl() FunctionDecl * FunctionDecl::getInstantiatedFromDecl ( ) const ◆ getInstantiatedFromMemberFunction() FunctionDecl * FunctionDecl::getInstantiatedFromMemberFunction ( ) constIf this function is an instantiation of a member function of a class template specialization, retrieves the function from which it was instantiated.
This routine will return non-NULL for (non-templated) member functions of class templates and for instantiations of function templates. For example, given:
template<typename T>
void f(T);
};
The declaration for X<int>::f is a (non-templated) FunctionDecl whose parent is the class template specialization X<int>. For this declaration, getInstantiatedFromFunction() will return the FunctionDecl X<T>::A. When a complete definition of X<int>::A is required, it will be instantiated from the declaration returned by getInstantiatedFromMemberFunction().
Definition at line 4035 of file Decl.cpp.
References getMemberSpecializationInfo().
Referenced by adjustDeclToTemplate(), clang::Sema::CheckForFunctionRedefinition(), clang::Sema::CheckMemberSpecialization(), getExplicitVisibilityAux(), getODRHash(), getPatternFunctionDecl(), hasExplicitMemberDefinition(), clang::ASTNodeImporter::ImportTemplateInformation(), isOutOfLine(), isThisDeclarationInstantiatedFromAFriendDefinition(), and SetEligibleMethods().
◆ getLanguageLinkage() ◆ getLiteralIdentifier() ◆ getMemberSpecializationInfo() ◆ getMemoryFunctionKind() unsigned FunctionDecl::getMemoryFunctionKind ( ) const ◆ getMinRequiredArguments() unsigned FunctionDecl::getMinRequiredArguments ( ) constReturns the minimum number of arguments needed to call this function.
getMinRequiredArguments - Returns the minimum number of arguments needed to call this function.
This may be fewer than the number of function parameters, if some of the parameters have default arguments (in C++).
This may be fewer than the number of function parameters, if some of the parameters have default arguments (in C++) or are parameter packs (C++11).
Definition at line 3734 of file Decl.cpp.
References clang::CPlusPlus, clang::Decl::getASTContext(), clang::Decl::getLangOpts(), getNumParams(), and parameters().
Referenced by clang::Sema::AddMethodCandidate(), compareOverloads(), clang::Sema::ConvertArgumentsForCall(), getMinRequiredExplicitArguments(), clang::CXXConstructorDecl::isConvertingConstructor(), clang::CXXConstructorDecl::isDefaultConstructor(), clang::Sema::MergeCXXFunctionDecl(), clang::Sema::SpecialMemberIsTrivial(), and clang::FunctionCallFilterCCC::ValidateCandidate().
◆ getMinRequiredExplicitArguments() unsigned FunctionDecl::getMinRequiredExplicitArguments ( ) const ◆ getMostRecentDeclImpl() FunctionDecl * clang::FunctionDecl::getMostRecentDeclImpl ( ) inlineoverrideprotectedvirtual ◆ getMultiVersionKind()Gets the kind of multiversioning attribute this declaration has.
Note that this can return a value even if the function is not multiversion, such as the case of 'target'.
Definition at line 3575 of file Decl.cpp.
References clang::CPUDispatch, clang::CPUSpecific, clang::None, clang::Target, clang::TargetClones, and clang::TargetVersion.
Referenced by CheckMultiVersionAdditionalDecl(), CheckMultiVersionFirstFunction(), CheckMultiVersionFunction(), MultiVersionTypesCompatible(), patchDefaultTargetVersion(), and PreviousDeclsHaveMultiVersionAttribute().
◆ getNameForDiagnostic() void FunctionDecl::getNameForDiagnostic ( raw_ostream & OS, const PrintingPolicy & Policy, bool Qualified ) const overridevirtual ◆ getNameInfo() ◆ getNextRedeclarationImpl() FunctionDecl * clang::FunctionDecl::getNextRedeclarationImpl ( ) inlineoverrideprotectedvirtual ◆ getNonObjectParameter() [1/2] ◆ getNonObjectParameter() [2/2] ◆ getNumNonObjectParams() unsigned FunctionDecl::getNumNonObjectParams ( ) const ◆ getNumParams() unsigned FunctionDecl::getNumParams ( ) constReturn the number of parameters this function must have based on its FunctionType.
getNumParams - Return the number of parameters this function must have based on its FunctionType.
This is the length of the ParamInfo array after it has been created.
Definition at line 3713 of file Decl.cpp.
References clang::Type::getAs(), clang::FunctionProtoType::getNumParams(), and clang::ValueDecl::getType().
Referenced by clang::Sema::ActOnFinishFunctionBody(), clang::Sema::ActOnFunctionDeclarator(), clang::SemaOpenMP::ActOnOpenMPDeclareVariantDirective(), clang::Sema::ActOnReenterFunctionContext(), addFunctionPointerConversion(), clang::Sema::AddKnownFunctionAttributes(), clang::Sema::AddMethodCandidate(), addX86InterruptAttrs(), allowAmbiguity(), clang::ast_matchers::libc_func_matchers::AST_MATCHER(), clang::ast_matchers::libc_func_matchers::AST_MATCHER_P(), clang::Sema::BuildBlockForLambdaConversion(), clang::SemaSYCL::BuildSYCLKernelCallStmt(), clang::SemaHLSL::CheckCompatibleParameterABI(), clang::Sema::CheckCXXDefaultArguments(), clang::Sema::CheckCXXThrowOperand(), clang::Sema::CheckExplicitlyDefaultedComparison(), clang::Sema::checkLifetimeCaptureBy(), clang::Sema::CheckMain(), CheckOperatorNewDeleteTypes(), clang::Sema::CheckOverloadedOperatorDeclaration(), compareOverloads(), createOverloadsForFixedParams(), clang::interp::InterpFrame::describe(), DiagnoseBadTarget(), emitReplacement(), evaluateCDTSize(), FunctionsCorrespond(), clang::CodeGen::CodeGenModule::GenKernelArgMetadata(), clang::extractapi::DeclarationFragmentsBuilder::getFragmentsForCXXMethod(), clang::extractapi::DeclarationFragmentsBuilder::getFragmentsForOverloadedOperator(), clang::extractapi::DeclarationFragmentsBuilder::getFragmentsForSpecialCXXMethod(), getMinRequiredArguments(), getNDSWDS(), clang::ento::CXXDeallocatorCall::getNumArgs(), clang::CXXMethodDecl::getNumExplicitParams(), getNumNonObjectParams(), clang::OverloadCandidate::getNumParams(), getParamDecl(), getParametersSourceRange(), clang::consumed::ConsumedStmtVisitor::handleCall(), handleCleanupAttr(), handleDiagnoseAsBuiltinAttr(), hasCopyOrMoveCtorParam(), hasCXXExplicitFunctionObjectParameter(), hasIdenticalPassObjectSizeAttrs(), hasOneParamOrDefaultArgs(), clang::Sema::inferLifetimeBoundAttribute(), clang::Sema::InstantiateDefaultCtorDefaultArgs(), clang::CXXConstructorDecl::isConvertingConstructor(), isDestroyingOperatorDelete(), clang::SemaCUDA::isEmptyConstructor(), isNonPlacementDeallocationFunction(), isRelevantAttr(), clang::Sema::isUsualDeallocationFunction(), clang::CXXMethodDecl::isUsualDeallocationFunction(), clang::Sema::MergeCompatibleFunctionDecls(), clang::Sema::MergeCXXFunctionDecl(), clang::Sema::MergeFunctionDecl(), parameters(), ProcessAPINotes(), clang::sema::shouldTrackFirstArgument(), clang::Sema::SpecialMemberIsTrivial(), clang::FunctionCallFilterCCC::ValidateCandidate(), and clang::sema::visitFunctionCallArguments().
◆ getODRHash() [1/2] ◆ getODRHash() [2/2] unsigned FunctionDecl::getODRHash ( ) constReturns cached ODRHash of the function.
This must have been previously computed and stored.
Definition at line 4544 of file Decl.cpp.
◆ getOverloadedOperator()getOverloadedOperator - Which C++ overloaded operator this function represents, if any.
Definition at line 4000 of file Decl.cpp.
References clang::DeclarationName::CXXOperatorName, clang::DeclarationName::getCXXOverloadedOperator(), clang::NamedDecl::getDeclName(), and clang::OO_None.
Referenced by clang::Sema::ActOnFunctionDeclarator(), clang::Sema::CheckExplicitlyDefaultedComparison(), clang::Sema::CheckOverloadedOperatorDeclaration(), clang::Sema::DefineImplicitCopyAssignment(), clang::Sema::DefineImplicitMoveAssignment(), DiagnoseShiftCompare(), findImplicitlyDeclaredEqualityComparisons(), clang::Sema::getMoreSpecializedTemplate(), clang::CXXMethodDecl::isCopyAssignmentOperator(), isDestroyingOperatorDelete(), clang::isLambdaCallOperator(), clang::CXXMethodDecl::isMoveAssignmentOperator(), isNonPlacementDeallocationFunction(), isOverloadedOperator(), isStandardDelete(), isStandardNew(), isStdOstreamOperatorCall(), IsStructurallyEquivalent(), clang::CXXMethodDecl::isUsualDeallocationFunction(), clang::OverloadCandidateSet::OperatorRewriteInfo::shouldAddReversed(), and shouldAddReversedEqEq().
◆ getParamDecl() [1/2] ◆ getParamDecl() [2/2]Definition at line 2672 of file Decl.h.
References getNumParams().
Referenced by clang::SemaOpenMP::ActOnOpenMPDeclareVariantDirective(), clang::Sema::ActOnReenterFunctionContext(), addFunctionPointerConversion(), clang::Sema::AddKnownFunctionAttributes(), clang::Sema::AddSurrogateCandidate(), addX86InterruptAttrs(), allowAmbiguity(), clang::ast_matchers::libc_func_matchers::AST_MATCHER(), clang::ast_matchers::libc_func_matchers::AST_MATCHER_P(), clang::Sema::BuildBlockForLambdaConversion(), clang::Sema::BuildLiteralOperatorCall(), clang::SemaHLSL::CheckCompatibleParameterABI(), CheckConstexprParameterTypes(), clang::Sema::CheckCXXDefaultArguments(), clang::Sema::CheckCXXThrowOperand(), clang::Sema::CheckExplicitlyDefaultedComparison(), clang::Sema::CheckExplicitlyDefaultedFunction(), clang::Sema::CheckExplicitlyDefaultedSpecialMember(), clang::Sema::CheckExplicitObjectOverride(), clang::Sema::checkLifetimeCaptureBy(), clang::Sema::CheckLiteralOperatorDeclaration(), CheckOperatorNewDeclaration(), CheckOperatorNewDeleteTypes(), clang::Sema::CheckOverloadedOperatorDeclaration(), clang::Sema::CheckOverridingFunctionAttributes(), clang::Sema::ConvertArgumentsForCall(), clang::Sema::CreateOverloadedBinOp(), clang::Sema::CreateOverloadedUnaryOp(), createOverloadsForFixedParams(), clang::Sema::DeduceTemplateArguments(), clang::Sema::DefineDefaultedComparison(), clang::Sema::DefineImplicitCopyAssignment(), clang::Sema::DefineImplicitMoveAssignment(), clang::interp::InterpFrame::describe(), DiagnoseBadTarget(), diagnoseInstanceReference(), clang::Sema::DiagnoseInvalidExplicitObjectParameterInLambda(), DiagnoseInvalidRedeclaration(), clang::ODRDiagsEmitter::diagnoseMismatch(), clang::CodeGen::CGHLSLRuntime::emitEntryFunction(), emitReplacement(), evaluateCDTSize(), clang::Sema::findInheritingConstructor(), FunctionsCorrespond(), clang::Sema::GatherArgumentsForCall(), clang::CodeGen::CodeGenModule::GenKernelArgMetadata(), clang::extractapi::DeclarationFragmentsBuilder::getFragmentsForCXXMethod(), clang::extractapi::DeclarationFragmentsBuilder::getFragmentsForOverloadedOperator(), clang::extractapi::DeclarationFragmentsBuilder::getFragmentsForSpecialCXXMethod(), getNDSWDS(), getNonObjectParameter(), clang::consumed::ConsumedStmtVisitor::handleCall(), handleCleanupAttr(), handleDiagnoseAsBuiltinAttr(), HandleFunctionCall(), HandleLambdaCapture(), hasCopyOrMoveCtorParam(), hasCXXExplicitFunctionObjectParameter(), clang::Sema::inferLifetimeBoundAttribute(), clang::Sema::InitializeExplicitObjectArgument(), clang::Sema::InstantiateDefaultCtorDefaultArgs(), clang::sema::isAssignmentOperatorLifetimeBound(), clang::CXXConstructorDecl::isCopyConstructor(), clang::sema::isCopyLikeConstructor(), clang::CXXConstructorDecl::isCopyOrMoveConstructor(), isDestroyingOperatorDelete(), isGRealloc(), clang::Sema::isInitListConstructor(), clang::CXXConstructorDecl::isMoveConstructor(), isNonPlacementDeallocationFunction(), clang::sema::isNormalAssignmentOperator(), isRelevantAttr(), clang::CXXConstructorDecl::isSpecializationCopyingObject(), isStandardRealloc(), clang::CXXMethodDecl::isUsualDeallocationFunction(), clang::Sema::MergeCompatibleFunctionDecls(), clang::Sema::MergeCXXFunctionDecl(), clang::Sema::MergeFunctionDecl(), mergeParamDeclAttributes(), clang::Sema::PerformImplicitConversion(), PrepareArgumentsForCallToObjectOfClassType(), ProcessAPINotes(), clang::Sema::RebuildLambdaScopeInfo(), clang::OverloadCandidateSet::OperatorRewriteInfo::shouldAddReversed(), clang::sema::shouldTrackFirstArgument(), clang::Sema::SpecialMemberIsTrivial(), VerifyInitializationSequenceCXX98(), and clang::sema::visitFunctionCallArguments().
◆ getParametersSourceRange() SourceRange FunctionDecl::getParametersSourceRange ( ) const ◆ getPointOfInstantiation()Retrieve the (first) point of instantiation of a function template specialization or a member of a class template specialization.
Definition at line 4385 of file Decl.cpp.
Referenced by clang::Sema::ActOnExplicitInstantiation().
◆ getPreviousDeclImpl() inlineoverrideprotectedvirtual ◆ getPrimaryTemplate()Retrieve the primary template that this function template specialization either specializes or was instantiated from.
If this function declaration is not a function template specialization, returns NULL.
Definition at line 4183 of file Decl.cpp.
Referenced by clang::Sema::AddConversionCandidate(), allowAmbiguity(), checkAddressOfFunctionIsAvailable(), clang::Sema::CheckFunctionDeclaration(), clang::Sema::CheckLiteralOperatorDeclaration(), getPatternFunctionDecl(), getTemplateInstantiationPattern(), clang::isBetterOverloadCandidate(), clang::CXXMethodDecl::isCopyAssignmentOperator(), clang::CXXConstructorDecl::isCopyOrMoveConstructor(), clang::CXXMethodDecl::isMoveAssignmentOperator(), isOutOfLine(), isTemplate(), clang::CXXMethodDecl::isUsualDeallocationFunction(), and clang::sema::shouldTrackFirstArgumentForConstructor().
◆ getReturnType() QualType clang::FunctionDecl::getReturnType ( ) const inlineDefinition at line 2720 of file Decl.h.
References clang::Type::castAs(), getReturnType(), and clang::ValueDecl::getType().
Referenced by clang::Sema::ActOnCapScopeReturnStmt(), clang::Sema::ActOnFinishFunctionBody(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnStartOfFunctionDef(), AddOrdinaryNameResults(), AddResultTypeChunk(), clang::sema::analyzePathForGSLPointer(), clang::Sema::BuildCallToMemberFunction(), clang::Sema::BuildCallToObjectOfClassType(), clang::Sema::BuildCXXMemberCallExpr(), buildLambdaScopeReturnType(), clang::Sema::BuildLiteralOperatorCall(), clang::Sema::BuildOverloadedArrowExpr(), clang::Sema::BuildOverloadedCallExpr(), clang::Sema::BuildReturnStmt(), clang::Sema::BuildSynthesizedThreeWayComparison(), clang::interp::CallVirt(), clang::Sema::CheckAddressOfOperand(), CheckConstexprMissingReturn(), CheckConstexprReturnType(), CheckConstPureAttributesUsage(), clang::Sema::CheckCoroutineWrapper(), clang::Sema::CheckFunctionDeclaration(), clang::SemaARM::CheckSMEFunctionDefAttributes(), clang::SemaSYCL::CheckSYCLEntryPointFunctionDecl(), clang::interp::ByteCodeEmitter::compileFunc(), completeFunctionType(), clang::Sema::CreateOverloadedArraySubscriptExpr(), clang::Sema::CreateOverloadedBinOp(), clang::Sema::CreateOverloadedUnaryOp(), clang::Sema::DeduceReturnType(), clang::Sema::DefineImplicitLambdaToFunctionPointerConversion(), DiagnoseConstAssignment(), DiagnoseForRangeReferenceVariableCopies(), clang::ODRDiagsEmitter::diagnoseMismatch(), dumpMicrosoftThunkAdjustment(), evaluateCDTSize(), clang::comments::DeclInfo::fill(), getCallableReturnType(), clang::CXXConversionDecl::getConversionType(), getDeclaredReturnType(), clang::extractapi::DeclarationFragmentsBuilder::getFragmentsForCXXMethod(), clang::extractapi::DeclarationFragmentsBuilder::getFragmentsForOverloadedOperator(), clang::Sema::getMoreSpecializedTemplate(), getNDSWDS(), getReturnType(), handleGlobalAttr(), handleMSAllocatorAttr(), clang::dataflow::Environment::initialize(), clang::Sema::InstantiateFunctionDefinition(), clang::interp::interp__builtin_inf(), clang::interp::interp__builtin_nan(), clang::sema::isNormalAssignmentOperator(), isRelevantAttr(), clang::Sema::MergeFunctionDecl(), clang::InitializationSequence::Perform(), ProcessAPINotes(), clang::Sema::RebuildLambdaScopeInfo(), clang::TreeTransform< Derived >::RebuildShuffleVectorExpr(), clang::sema::shouldTrackFirstArgument(), clang::dataflow::transferSmartPointerLikeCachedDeref(), TryReferenceInit(), and clang::interp::Compiler< Emitter >::visitFunc().
◆ getReturnTypeSourceRange() SourceRange FunctionDecl::getReturnTypeSourceRange ( ) constAttempt to compute an informative source range covering the function return type.
This may omit qualifiers and other information with limited representation in the AST.
Definition at line 3894 of file Decl.cpp.
References clang::Decl::getASTContext(), clang::DeclarationNameInfo::getBeginLoc(), clang::SourceRange::getEnd(), getFunctionTypeLoc(), getNameInfo(), clang::FunctionTypeLoc::getReturnLoc(), clang::ASTContext::getSourceManager(), clang::TypeLoc::getSourceRange(), clang::SourceLocation::isInvalid(), clang::SourceRange::isInvalid(), and SM.
Referenced by clang::Sema::ActOnFunctionDeclarator(), clang::Sema::CheckAddressOfOperand(), clang::Sema::CheckExplicitlyDefaultedComparison(), clang::Sema::CheckMain(), clang::Sema::CheckOverridingFunctionAttributes(), clang::Sema::CheckOverridingFunctionReturnType(), DiagnoseConstAssignment(), clang::ODRDiagsEmitter::diagnoseMismatch(), handleGlobalAttr(), and clang::Sema::MergeFunctionDecl().
◆ getSourceRange() ◆ getStorageClass()Returns the storage class as written in the source.
For the computed linkage of symbol, see getLinkage.
Definition at line 2763 of file Decl.h.
References clang::DeclContext::FunctionDeclBits.
Referenced by clang::Sema::ActOnFinishFunctionBody(), canRedefineFunction(), clang::interp::CheckCallable(), clang::Sema::CheckCompletedCXXClass(), clang::Sema::CheckMain(), CheckOperatorNewDeleteDeclarationScope(), clang::Sema::CheckOverridingFunctionAttributes(), clang::ODRDiagsEmitter::diagnoseMismatch(), doesDeclarationForceExternallyVisibleDefinition(), getBuiltinID(), isGlobal(), isInlineDefinitionExternallyVisible(), isStatic(), clang::CXXMethodDecl::isStatic(), clang::Sema::MergeFunctionDecl(), RedeclForcesDefC99(), redeclForcesDefMSVC(), and clang::JSONNodeDumper::VisitFunctionDecl().
◆ getTemplatedKind()What kind of templated function this is.
Definition at line 4014 of file Decl.cpp.
References TK_DependentFunctionTemplateSpecialization, TK_DependentNonTemplate, TK_FunctionTemplate, TK_FunctionTemplateSpecialization, TK_MemberSpecialization, and TK_NonTemplate.
Referenced by clang::Sema::areMultiversionVariantFunctionsCompatible(), clang::Sema::CheckExplicitlyDefaultedSpecialMember(), clang::Sema::CheckFunctionConstraints(), checkRecursiveFunction(), clang::Sema::DiagnoseAlwaysNonNullPointer(), getPatternFunctionDecl(), clang::ASTNodeImporter::ImportFunctionTemplateWithTemplateArgsFromSpecialization(), clang::ASTNodeImporter::ImportTemplateInformation(), clang::Sema::IsAtLeastAsConstrained(), isImmediateEscalating(), clang::Sema::IsInsideALocalClassWithinATemplateFunction(), and clang::ASTDeclReader::VisitFunctionDecl().
◆ getTemplateInstantiationPattern()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).
If ForDefinition
is false
, explicit specializations will be treated as if they were implicit instantiations. This will then find the pattern corresponding to non-definition portions of the declaration, such as default arguments and the exception specification.
Definition at line 4134 of file Decl.cpp.
References getDefinitionOrSelf(), clang::MemberSpecializationInfo::getInstantiatedFrom(), getMemberSpecializationInfo(), getPrimaryTemplate(), getTemplateSpecializationKind(), clang::MemberSpecializationInfo::getTemplateSpecializationKind(), isDefined(), clang::isGenericLambdaCallOperatorSpecialization(), and clang::isTemplateInstantiation().
Referenced by clang::Sema::BuildOverloadedCallExpr(), clang::Sema::CheckIfFunctionSpecializationIsImmediate(), clang::PredefinedExpr::ComputeName(), clang::Sema::DeduceReturnType(), getDefiningModule(), clang::Sema::getMoreConstrainedFunction(), GetSignature(), clang::CXXMethodDecl::hasInlineBody(), clang::Sema::InstantiateDefaultArgument(), isImmediateFunction(), isImplicitlyInstantiable(), isUserProvided(), NoteImplicitDeductionGuide(), clang::CodeGen::CodeGenModule::SetLLVMFunctionAttributesForDefinition(), and clang::Sema::SubstDefaultArgument().
◆ getTemplateSpecializationArgs() ◆ getTemplateSpecializationArgsAsWritten()Retrieve the template argument list as written in the sources, if any.
If this function declaration is not a function template specialization or if it had no explicit template argument list, returns NULL. Note that it an explicit template argument list may be written empty, e.g., template<> void foo<>(char* s);
Definition at line 4209 of file Decl.cpp.
Referenced by clang::Sema::ActOnEndOfTranslationUnit().
◆ getTemplateSpecializationInfo() ◆ getTemplateSpecializationKind()Determine what kind of template instantiation this function represents.
Definition at line 4288 of file Decl.cpp.
References clang::Decl::FOK_None, clang::Decl::getFriendObjectKind(), clang::TSK_ExplicitSpecialization, and clang::TSK_Undeclared.
Referenced by clang::Sema::ActOnConversionDeclarator(), clang::Sema::ActOnExplicitInstantiation(), basicGVALinkageForFunction(), clang::Sema::CheckCXXDefaultArguments(), clang::Sema::CheckMemberSpecialization(), clang::Sema::DefineUsedVTables(), getTemplateInstantiationPattern(), clang::installapi::getVTableLinkage(), clang::CodeGen::CodeGenModule::getVTableLinkage(), clang::installapi::hasVTable(), clang::ASTNodeImporter::ImportTemplateInformation(), IsOverloadOrOverrideImpl(), isTemplateInstantiation(), and clang::Sema::MergeCXXFunctionDecl().
◆ getTemplateSpecializationKindForInstantiation() ◆ hasBody() [1/2] bool clang::FunctionDecl::hasBody ( ) const inlineoverridevirtual ◆ hasBody() [2/2]Returns true if the function has a body.
The function body might be in any of the (re-)declarations of this function. The variant that accepts a FunctionDecl pointer will set that function declaration to the actual declaration containing the body (if there is one).
Definition at line 3159 of file Decl.cpp.
References clang::Definition, and clang::Redeclarable< FunctionDecl >::redecls().
Referenced by clang::Sema::BuildResolvedCallExpr(), clang::interp::CheckCallable(), clang::interp::ByteCodeEmitter::compileFunc(), ComputeDefaultedComparisonExceptionSpec(), clang::Sema::DefineUsedVTables(), DelegatingCycleHelper(), clang::Sema::DiagnoseImmediateEscalatingReason(), DiagnoseInvalidRedeclaration(), clang::CodeGen::CodeGenModule::getVTableLinkage(), clang::ASTNodeImporter::ImportDeclParts(), isImplicitlyInstantiable(), isOutOfLine(), isStandardDelete(), and clang::CodeGen::CodeGenVTables::isVTableExternal().
◆ hasCXXExplicitFunctionObjectParameter() bool FunctionDecl::hasCXXExplicitFunctionObjectParameter ( ) constDefinition at line 3752 of file Decl.cpp.
References getNumParams(), getParamDecl(), and clang::ParmVarDecl::isExplicitObjectParameter().
Referenced by clang::Sema::AddSurrogateCandidate(), clang::Sema::CheckExplicitlyDefaultedComparison(), clang::Sema::CheckFunctionCall(), clang::Sema::CheckNonDependentConversions(), clang::Sema::CheckOverloadedOperatorDeclaration(), clang::Sema::CheckOverridingFunctionExceptionSpec(), clang::Sema::ConvertArgumentsForCall(), clang::Sema::DefineImplicitLambdaToFunctionPointerConversion(), clang::Sema::FunctionNonObjectParamTypesAreEqual(), getMinRequiredExplicitArguments(), clang::Sema::getMoreSpecializedTemplate(), getNonObjectParameter(), getNumNonObjectParams(), clang::CXXMethodDecl::isExplicitObjectMemberFunction(), and clang::CXXMethodDecl::isImplicitObjectMemberFunction().
◆ hasImplicitReturnZero() bool clang::FunctionDecl::hasImplicitReturnZero ( ) const inline ◆ hasInheritedPrototype() bool clang::FunctionDecl::hasInheritedPrototype ( ) const inline ◆ hasOneParamOrDefaultArgs() bool FunctionDecl::hasOneParamOrDefaultArgs ( ) const ◆ hasPrototype() bool clang::FunctionDecl::hasPrototype ( ) const inline ◆ hasSkippedBody() bool clang::FunctionDecl::hasSkippedBody ( ) const inline ◆ hasTrivialBody() bool FunctionDecl::hasTrivialBody ( ) const ◆ hasWrittenPrototype() bool clang::FunctionDecl::hasWrittenPrototype ( ) const inline ◆ instantiationIsPending() bool clang::FunctionDecl::instantiationIsPending ( ) const inlineWhether the instantiation of this function is pending.
This bit is set when the decision to instantiate this function is made and unset if and when the function body is created. That leaves out cases where instantiation did not happen because the template definition was not seen in this TU. This bit remains set in those cases, under the assumption that the instantiation will happen in some other TU.
Definition at line 2435 of file Decl.h.
References clang::DeclContext::FunctionDeclBits.
◆ isConsteval() bool clang::FunctionDecl::isConsteval ( ) const inlineDefinition at line 2410 of file Decl.h.
References clang::Consteval, and getConstexprKind().
Referenced by clang::Sema::ActOnStartOfFunctionDef(), clang::SemaOpenMP::ActOnStartOfFunctionDefinitionInOpenMPDeclareVariantScope(), clang::Sema::ActOnStartOfLambdaDefinition(), clang::Sema::areMultiversionVariantFunctionsCompatible(), clang::Sema::BuildReturnStmt(), CheckConstexprDeclStmt(), CheckConstexprFunctionBody(), CheckConstexprFunctionStmt(), CheckConstexprMissingReturn(), CheckConstexprParameterTypes(), CheckConstexprReturnType(), clang::Sema::CheckExplicitlyDefaultedComparison(), clang::Sema::CheckExplicitlyDefaultedSpecialMember(), clang::Sema::CheckImmediateEscalatingFunctionDefinition(), clang::Sema::CheckMain(), clang::SemaSYCL::CheckSYCLEntryPointFunctionDecl(), clang::Sema::DiagnoseImmediateEscalatingReason(), EvaluateAndDiagnoseImmediateInvocation(), handleMSConstexprAttr(), isImmediateEscalating(), isImmediateFunction(), and IsOverloadOrOverrideImpl().
◆ isConstexpr() bool clang::FunctionDecl::isConstexpr ( ) const inlineWhether this is a (C++11) constexpr function or constexpr constructor.
Definition at line 2398 of file Decl.h.
References getConstexprKind(), and clang::Unspecified.
Referenced by clang::Sema::ActOnFinishFunctionBody(), clang::SemaOpenMP::ActOnStartOfFunctionDefinitionInOpenMPDeclareVariantScope(), clang::Sema::areMultiversionVariantFunctionsCompatible(), clang::Sema::BuildLambdaExpr(), clang::Sema::BuildReturnStmt(), clang::interp::CheckCallable(), CheckConstexprFunction(), clang::Sema::CheckExplicitlyDefaultedComparison(), clang::Sema::CheckExplicitlyDefaultedSpecialMember(), clang::Sema::CheckFunctionDeclaration(), clang::Sema::CheckMain(), clang::SemaSYCL::CheckSYCLEntryPointFunctionDecl(), CheckTrivialDefaultConstructor(), clang::interp::ByteCodeEmitter::compileFunc(), clang::CodeGen::CodeGenModule::EmitGlobal(), clang::Sema::findInheritingConstructor(), clang::extractapi::DeclarationFragmentsBuilder::getFragmentsForCXXMethod(), clang::Sema::InstantiateClass(), IsOverloadOrOverrideImpl(), clang::Sema::MarkVirtualMembersReferenced(), clang::SemaCUDA::maybeAddHostDeviceAttrs(), specialMemberIsConstexpr(), and clang::JSONNodeDumper::VisitFunctionDecl().
◆ isConstexprSpecified() bool clang::FunctionDecl::isConstexprSpecified ( ) const inline ◆ isCPUDispatchMultiVersion() bool FunctionDecl::isCPUDispatchMultiVersion ( ) const ◆ isCPUSpecificMultiVersion() bool FunctionDecl::isCPUSpecificMultiVersion ( ) const ◆ isDefaulted() bool clang::FunctionDecl::isDefaulted ( ) const inlineWhether this function is defaulted.
Valid for e.g. special member functions, defaulted comparisions (not methods!).
Definition at line 2313 of file Decl.h.
References clang::DeclContext::FunctionDeclBits.
Referenced by clang::Sema::ActOnFinishFunctionBody(), clang::Sema::AddImplicitMSFunctionNoBuiltinAttr(), clang::Sema::AddMethodCandidate(), clang::Sema::areMultiversionVariantFunctionsCompatible(), checkMoveAssignmentForRepeatedMove(), clang::SemaSYCL::CheckSYCLEntryPointFunctionDecl(), clang::Sema::DefineDefaultedComparison(), clang::Sema::DefineImplicitCopyAssignment(), clang::Sema::DefineImplicitMoveAssignment(), clang::Sema::DiagnoseDeletedDefaultedFunction(), clang::Sema::diagnoseZeroToNullptrConversion(), HandleFunctionCall(), clang::Sema::InstantiateFunctionDefinition(), isDeletedAsWritten(), isImmediateEscalating(), clang::Sema::isImplicitlyDeleted(), IsStructurallyEquivalent(), isThisDeclarationADefinition(), clang::Sema::SetDeclDefaulted(), TryValueInitialization(), clang::interp::Compiler< Emitter >::VisitCXXConstructExpr(), clang::JSONNodeDumper::VisitFunctionDecl(), and clang::ASTDeclReader::VisitFunctionDecl().
◆ isDefined() [1/2] bool clang::FunctionDecl::isDefined ( ) const inline ◆ isDefined() [2/2]Returns true if the function has a definition that does not need to be instantiated.
The variant that accepts a FunctionDecl pointer will set that function declaration to the declaration that is a definition (if there is one).
true
, also check for friend declarations that were instantiated from function definitions. Such a declaration behaves as if it is a definition for the purpose of redefinition checking, but isn't actually a "real" definition until its body is instantiated.
Definition at line 3206 of file Decl.cpp.
References clang::Definition, and clang::Redeclarable< FunctionDecl >::redecls().
Referenced by clang::Sema::ActOnFinishFunctionBody(), clang::interp::CheckCallable(), clang::Sema::CheckForFunctionRedefinition(), clang::interp::ByteCodeEmitter::compileFunc(), clang::Sema::FinishTemplateArgumentDeduction(), getMethodBody(), clang::CXXMethodDecl::hasInlineBody(), clang::TemplateDeclInstantiator::InitFunctionInstantiation(), clang::SemaCUDA::isEmptyConstructor(), clang::SemaCUDA::isEmptyDestructor(), clang::Sema::isUnavailableAlignedAllocationFunction(), clang::Sema::MarkVTableUsed(), clang::Sema::MergeCXXFunctionDecl(), clang::Sema::MergeFunctionDecl(), and clang::Sema::PerformPendingInstantiations().
◆ isDeleted() bool clang::FunctionDecl::isDeleted ( ) const inlineWhether this function has been deleted.
A function that is "deleted" (via the C++0x "= delete" syntax) acts like a normal function, except that it cannot actually be called or have its address taken. Deleted functions are typically used in C++ overload resolution to attract arguments whose type or lvalue/rvalue-ness would permit the use of a different overload that would behave incorrectly. For example, one might use deleted functions to ban implicit conversion from a floating-point number to an Integer type:
Definition at line 2468 of file Decl.h.
References clang::DeclContext::FunctionDeclBits, and getCanonicalDecl().
Referenced by clang::Sema::ActOnEndOfTranslationUnit(), clang::Sema::ActOnFinishFunctionBody(), clang::Sema::AddImplicitMSFunctionNoBuiltinAttr(), clang::Sema::AddMethodCandidate(), clang::Sema::areMultiversionVariantFunctionsCompatible(), clang::Sema::checkClassLevelDLLAttribute(), clang::Sema::CheckCompletedCXXClass(), clang::Sema::CheckCXXThrowOperand(), clang::Sema::CheckMemberSpecialization(), clang::SemaSYCL::CheckSYCLEntryPointFunctionDecl(), clang::Sema::DefineDefaultedComparison(), clang::Sema::DefineImplicitCopyAssignment(), clang::Sema::DefineImplicitMoveAssignment(), clang::Sema::DiagnoseDeletedDefaultedFunction(), EvaluateUnaryTypeTrait(), clang::Sema::FindDeallocationFunction(), clang::Sema::findInheritingConstructor(), clang::Sema::isImplicitlyDeleted(), IsStructurallyEquivalent(), clang::Sema::LookupSpecialMember(), clang::Sema::MarkVTableUsed(), ShouldWarnAboutMissingPrototype(), TryValueInitialization(), and clang::JSONNodeDumper::VisitFunctionDecl().
◆ isDeletedAsWritten() bool clang::FunctionDecl::isDeletedAsWritten ( ) const inline ◆ isDestroyingOperatorDelete() bool FunctionDecl::isDestroyingOperatorDelete ( ) const ◆ isExplicitlyDefaulted() bool clang::FunctionDecl::isExplicitlyDefaulted ( ) const inline ◆ isExternC() bool FunctionDecl::isExternC ( ) constDetermines whether this function is a function with external, C linkage.
Definition at line 3509 of file Decl.cpp.
References isDeclExternC().
Referenced by clang::Sema::ActOnFunctionDeclarator(), clang::Sema::AddKnownFunctionAttributes(), clang::Sema::areMultiversionVariantFunctionsCompatible(), clang::Sema::CheckEquivalentExceptionSpec(), clang::Sema::CheckFunctionDeclaration(), clang::Sema::CheckLiteralOperatorDeclaration(), funcHasParameterSizeMangling(), clang::Sema::GatherArgumentsForCall(), getMemoryFunctionKind(), isMain(), clang::Sema::MergeFunctionDecl(), and clang::Sema::ProcessPragmaWeak().
◆ isFunctionTemplateSpecialization() bool FunctionDecl::isFunctionTemplateSpecialization ( ) constDetermine whether this function is a function template specialization.
Definition at line 4075 of file Decl.cpp.
Referenced by clang::Sema::ActOnStartCXXMemberReference(), clang::Sema::DeclareImplicitDeductionGuides(), clang::Sema::getMoreConstrainedFunction(), clang::Sema::getTopMostPointOfInstantiation(), clang::isGenericLambdaCallOperatorSpecialization(), clang::SemaCUDA::maybeAddHostDeviceAttrs(), clang::Sema::mergeCodeSegAttr(), clang::Sema::MergeCXXFunctionDecl(), clang::Sema::MergeFunctionDecl(), clang::Sema::mergeSectionAttr(), and ShouldWarnAboutMissingPrototype().
◆ isGlobal() bool FunctionDecl::isGlobal ( ) const ◆ isImmediateEscalating() bool FunctionDecl::isImmediateEscalating ( ) constDefinition at line 3271 of file Decl.cpp.
References getTemplatedKind(), isConsteval(), isConstexprSpecified(), isDefaulted(), clang::isLambdaCallOperator(), TK_DependentNonTemplate, and TK_NonTemplate.
Referenced by clang::Sema::ActOnStartOfFunctionDef(), clang::Sema::ActOnStartOfLambdaDefinition(), clang::Sema::CheckIfFunctionSpecializationIsImmediate(), clang::Sema::CheckImmediateEscalatingFunctionDefinition(), clang::Sema::DiagnoseImmediateEscalatingReason(), and isImmediateFunction().
◆ isImmediateFunction() bool FunctionDecl::isImmediateFunction ( ) constDefinition at line 3296 of file Decl.cpp.
References BodyContainsImmediateEscalatingExpressions(), getTemplateInstantiationPattern(), isConsteval(), isImmediateEscalating(), and P.
Referenced by clang::Sema::BuildCXXDefaultArgExpr(), clang::Sema::CheckCXXDefaultArgExpr(), clang::Sema::CheckImmediateEscalatingFunctionDefinition(), clang::CodeGen::CodeGenModule::EmitTopLevelDecl(), EvaluateAndDiagnoseImmediateInvocation(), clang::VTableContextBase::hasVtableSlot(), and clang::JSONNodeDumper::VisitFunctionDecl().
◆ isImplicitlyInstantiable() bool FunctionDecl::isImplicitlyInstantiable ( ) const ◆ isIneligibleOrNotSelected() bool clang::FunctionDecl::isIneligibleOrNotSelected ( ) const inline ◆ isInExternCContext() bool FunctionDecl::isInExternCContext ( ) const ◆ isInExternCXXContext() bool FunctionDecl::isInExternCXXContext ( ) const ◆ isInlineBuiltinDeclaration() bool FunctionDecl::isInlineBuiltinDeclaration ( ) const ◆ isInlined() bool clang::FunctionDecl::isInlined ( ) const inlineDetermine 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.
Definition at line 2796 of file Decl.h.
References clang::DeclContext::FunctionDeclBits.
Referenced by clang::Sema::ActOnFinishFunctionBody(), clang::Sema::ActOnStartOfFunctionDef(), basicGVALinkageForFunction(), clang::Sema::checkClassLevelDLLAttribute(), CXXRecordNonInlineHasAttr(), clang::Sema::DefineUsedVTables(), diagnoseUseOfInternalDeclInInlineFunction(), clang::CodeGen::CGDebugInfo::EmitFuncDeclForCallSite(), clang::CodeGen::CodeGenModule::getVTableLinkage(), handleDLLAttr(), clang::Sema::InstantiateFunctionDefinition(), clang::ento::CheckerContext::isCLibraryFunction(), isFunctionDefinitionDiscarded(), isImplicitlyInstantiable(), isInlineDefinitionExternallyVisible(), isMSExternInline(), clang::Sema::MergeCXXFunctionDecl(), clang::Sema::MergeFunctionDecl(), clang::CodeGen::CodeGenModule::SetLLVMFunctionAttributesForDefinition(), setPreviousDeclaration(), ShouldWarnAboutMissingPrototype(), and useInlineVisibilityHidden().
◆ isInlineDefinitionExternallyVisible() bool FunctionDecl::isInlineDefinitionExternallyVisible ( ) constFor an inline function definition in C, or for a gnu_inline function in C++, determine whether the definition will be externally visible.
Inline function definitions are always available for inlining optimizations. However, depending on the language dialect, declaration specifiers, and attributes, the definition of an inline function may or may not be "externally" visible to other translation units in the program.
In C99, inline definitions are not externally visible by default. However, if even one of the global-scope declarations is marked "extern inline", the inline definition becomes externally visible (C99 6.7.4p6).
In GNU89 mode, or if the gnu_inline attribute is attached to the function definition, we use the GNU semantics for inline, which are nearly the opposite of C99 semantics. In particular, "inline" by itself will create an externally visible symbol, but "extern inline" will not create an externally visible symbol.
Definition at line 3948 of file Decl.cpp.
References doesThisDeclarationHaveABody(), clang::Decl::getASTContext(), clang::ASTContext::getLangOpts(), getStorageClass(), isInlined(), isInlineSpecified(), RedeclForcesDefC99(), clang::Redeclarable< FunctionDecl >::redecls(), clang::SC_Extern, and willHaveBody().
Referenced by basicGVALinkageForFunction().
◆ isInlineSpecified() bool clang::FunctionDecl::isInlineSpecified ( ) const inlineDetermine whether the "inline" keyword was specified for this function.
Definition at line 2774 of file Decl.h.
References clang::DeclContext::FunctionDeclBits.
Referenced by clang::Sema::areMultiversionVariantFunctionsCompatible(), canRedefineFunction(), clang::Sema::CheckMain(), computeKeyFunction(), Create(), clang::ODRDiagsEmitter::diagnoseMismatch(), doesDeclarationForceExternallyVisibleDefinition(), FunctionDecl(), handleGlobalAttr(), isInlineDefinitionExternallyVisible(), clang::Sema::MergeCXXFunctionDecl(), RedeclForcesDefC99(), and clang::JSONNodeDumper::VisitFunctionDecl().
◆ isLateTemplateParsed() bool clang::FunctionDecl::isLateTemplateParsed ( ) const inline ◆ isMain() bool FunctionDecl::isMain ( ) const ◆ isMemberLikeConstrainedFriend() bool FunctionDecl::isMemberLikeConstrainedFriend ( ) const ◆ isMSExternInline() bool FunctionDecl::isMSExternInline ( ) const ◆ isMSVCRTEntryPoint() bool FunctionDecl::isMSVCRTEntryPoint ( ) const ◆ isMultiVersion() bool clang::FunctionDecl::isMultiVersion ( ) const inlineTrue if this function is considered a multiversioned function.
Definition at line 2565 of file Decl.h.
References clang::DeclContext::FunctionDeclBits, and getCanonicalDecl().
Referenced by clang::Sema::ActOnFinishFunctionBody(), clang::Sema::ActOnFunctionDeclarator(), CheckDeclarationCausesMultiVersioning(), CheckMultiVersionAdditionalDecl(), CheckMultiVersionFunction(), clang::CodeGen::CodeGenModule::EmitGlobal(), clang::ASTContext::forEachMultiversionedFunctionVersion(), clang::CodeGen::CodeGenModule::getLLVMLinkageForDeclarator(), isBetterMultiversionCandidate(), isCPUDispatchMultiVersion(), isCPUSpecificMultiVersion(), isNonViableMultiVersionOverload(), isTargetClonesMultiVersion(), isTargetMultiVersion(), isTargetMultiVersionDefault(), isTargetVersionMultiVersion(), and noteOverloads().
◆ isNoReturn() bool FunctionDecl::isNoReturn ( ) const ◆ isOutOfLine() bool FunctionDecl::isOutOfLine ( ) const overridevirtual ◆ isOverloadedOperator() bool clang::FunctionDecl::isOverloadedOperator ( ) const inlineWhether this function declaration represents an C++ overloaded operator, e.g., "operator+".
Definition at line 2808 of file Decl.h.
References getOverloadedOperator(), and clang::OO_None.
Referenced by clang::Sema::ActOnFunctionDeclarator(), clang::Sema::CheckFunctionDeclaration(), clang::Sema::CheckOverloadedOperatorDeclaration(), clang::Sema::DefineImplicitCopyAssignment(), clang::Sema::DefineImplicitMoveAssignment(), DiagnoseShiftCompare(), isStdOstreamOperatorCall(), IsStructurallyEquivalent(), and printMemFnName().
◆ isPureVirtual() bool clang::FunctionDecl::isPureVirtual ( ) const inlineWhether this virtual function is pure, i.e.
makes the containing class abstract.
Definition at line 2288 of file Decl.h.
References clang::DeclContext::FunctionDeclBits.
Referenced by clang::Sema::ActOnFinishFunctionBody(), clang::interp::CheckPure(), CXXRecordNonInlineHasAttr(), clang::ODRDiagsEmitter::diagnoseMismatch(), clang::CXXMethodDecl::getDevirtualizedMethod(), IsStructurallyEquivalent(), clang::CXXMethodDecl::isVirtual(), clang::Sema::MarkVirtualMembersReferenced(), clang::Sema::MergeCompatibleFunctionDecls(), and clang::JSONNodeDumper::VisitFunctionDecl().
◆ isReplaceableGlobalAllocationFunction() bool FunctionDecl::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.
[...]
If this function is an aligned allocation/deallocation function, return the parameter number of the requested alignment through AlignmentParam.
If this function is an allocation/deallocation function that takes the std::nothrow_t
tag, return true through IsNothrow,
Definition at line 3383 of file Decl.cpp.
References clang::Type::castAs(), clang::Qualifiers::Const, clang::DeclarationName::CXXOperatorName, clang::Type::getAs(), clang::Decl::getASTContext(), clang::QualType::getCVRQualifiers(), clang::Decl::getDeclContext(), clang::NamedDecl::getDeclName(), clang::ASTContext::getLangOpts(), clang::Type::getPointeeType(), clang::DeclContext::getRedeclContext(), clang::ASTContext::getSizeType(), clang::ValueDecl::getType(), clang::ASTContext::hasSameType(), clang::Type::isAlignValT(), clang::Type::isEnumeralType(), clang::Type::isNothrowT(), clang::QualType::isNull(), clang::Type::isReferenceType(), clang::IdentifierInfo::isStr(), clang::DeclContext::isTranslationUnit(), and clang::T.
Referenced by clang::Sema::ActOnFunctionDeclarator(), clang::Sema::AddKnownFunctionAttributesForReplaceableGlobalAllocationFunction(), clang::Sema::CheckEquivalentExceptionSpec(), EmitNewDeleteCall(), clang::interp::Free(), clang::Sema::isUnavailableAlignedAllocationFunction(), resolveBuiltinNewDeleteOverload(), clang::interp::Compiler< Emitter >::VisitCallExpr(), and clang::ento::ExprEngine::VisitCXXNewExpr().
◆ isReservedGlobalPlacementOperator() bool FunctionDecl::isReservedGlobalPlacementOperator ( ) constDetermines 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.
The provisions of [basic.stc.dynamic] do not apply to these reserved placement forms of operator new and operator delete.
This function must be an allocation or deallocation function.
Definition at line 3358 of file Decl.cpp.
References clang::Type::castAs(), clang::DeclarationName::CXXOperatorName, clang::Decl::getDeclContext(), clang::NamedDecl::getDeclName(), clang::DeclContext::getRedeclContext(), clang::ValueDecl::getType(), clang::DeclContext::isTranslationUnit(), and clang::ASTContext::VoidPtrTy.
Referenced by clang::CXXNewExpr::shouldNullCheckAllocation(), and clang::ento::ExprEngine::VisitCXXNewExpr().
◆ isStatic() bool clang::FunctionDecl::isStatic ( ) const inline ◆ isTargetClonesMultiVersion() bool FunctionDecl::isTargetClonesMultiVersion ( ) constTrue if this function is a multiversioned dispatch function as a part of the target-clones functionality.
Definition at line 3611 of file Decl.cpp.
References isMultiVersion().
◆ isTargetMultiVersion() bool FunctionDecl::isTargetMultiVersion ( ) const ◆ isTargetMultiVersionDefault() bool FunctionDecl::isTargetMultiVersionDefault ( ) const ◆ isTargetVersionMultiVersion() bool FunctionDecl::isTargetVersionMultiVersion ( ) constTrue if this function is a multiversioned dispatch function as a part of the target-version functionality.
Definition at line 3615 of file Decl.cpp.
References isMultiVersion().
◆ isTemplateInstantiation() bool FunctionDecl::isTemplateInstantiation ( ) const ◆ isThisDeclarationADefinition() bool clang::FunctionDecl::isThisDeclarationADefinition ( ) const inlineReturns whether this specific declaration of the function is also a definition that does not contain uninstantiated body.
This does not determine whether the function has been defined (e.g., in a previous definition); for that information, use isDefined.
Note: the function declaration does not become a definition until the parser reaches the definition, if called before, this function will return false
.
Definition at line 2249 of file Decl.h.
References doesThisDeclarationHaveABody(), clang::Decl::hasDefiningAttr(), hasSkippedBody(), isDefaulted(), isDeletedAsWritten(), and willHaveBody().
Referenced by clang::Sema::ActOnStartOfFunctionDef(), clang::Sema::CheckImplicitSpecialMemberDeclaration(), handleAliasAttr(), handleIFuncAttr(), clang::Sema::InstantiateFunctionDefinition(), clang::FunctionTemplateDecl::isThisDeclarationADefinition(), clang::Sema::MergeFunctionDecl(), clang::TemplateDeclInstantiator::VisitCXXMethodDecl(), and clang::CallGraph::VisitFunctionDecl().
◆ isThisDeclarationInstantiatedFromAFriendDefinition() bool FunctionDecl::isThisDeclarationInstantiatedFromAFriendDefinition ( ) const ◆ isTrivial() bool clang::FunctionDecl::isTrivial ( ) const inlineWhether this function is "trivial" in some specialized C++ senses.
Can only be true for default constructors, copy constructors, copy assignment operators, and destructors. Not meaningful until the class has been fully built by Sema.
Definition at line 2305 of file Decl.h.
References clang::DeclContext::FunctionDeclBits.
Referenced by clang::CXXRecordDecl::addedEligibleSpecialMemberFunction(), clang::Sema::BuildExceptionDeclaration(), buildSingleCopyAssignRecursively(), clang::Sema::checkClassLevelDLLAttribute(), clang::Sema::CheckCXXThrowOperand(), checkMoveAssignmentForRepeatedMove(), CheckTrivialDefaultConstructor(), findTrivialSpecialMember(), GetDiagForGotoScopeDecl(), HandleDestructionImpl(), HandleFunctionCall(), clang::Expr::HasSideEffects(), clang::Expr::isConstantInitializer(), clang::SemaCUDA::isEmptyConstructor(), clang::SemaCUDA::isEmptyDestructor(), isTrivialObjectAssignment(), clang::Sema::MergeFunctionDecl(), clang::interp::runRecordDestructor(), ShouldDiagnoseUnusedDecl(), clang::CodeGen::ConstantEmitter::tryEmitPrivateForVarInit(), clang::interp::Compiler< Emitter >::VisitCXXConstructExpr(), and clang::interp::Compiler< Emitter >::VisitCXXInheritedCtorInitExpr().
◆ isTrivialForCall() bool clang::FunctionDecl::isTrivialForCall ( ) const inline ◆ isUserProvided() bool clang::FunctionDecl::isUserProvided ( ) const inline ◆ isVariadic() bool FunctionDecl::isVariadic ( ) constWhether this function is variadic.
Definition at line 3092 of file Decl.cpp.
References clang::ValueDecl::getType().
Referenced by clang::Sema::ActOnFunctionDeclarator(), clang::Sema::BuildBlockForLambdaConversion(), canEmitDelegateCallArgs(), clang::Sema::CheckCallingConvAttr(), clang::Sema::CheckExplicitlyDefaultedSpecialMember(), clang::SemaSYCL::CheckSYCLEntryPointFunctionDecl(), checkVAStartIsInVariadicFunction(), compareOverloads(), clang::CodeCompletionResult::createCodeCompletionStringForDecl(), clang::comments::DeclInfo::fill(), clang::CXXConstructorDecl::isConvertingConstructor(), clang::SemaCUDA::maybeAddHostDeviceAttrs(), sameFunctionParameterTypeLists(), clang::Sema::SpecialMemberIsTrivial(), and clang::JSONNodeDumper::VisitFunctionDecl().
◆ isVirtualAsWritten() bool clang::FunctionDecl::isVirtualAsWritten ( ) const inline ◆ param_begin() [1/2] ◆ param_begin() [2/2] ◆ param_empty() bool clang::FunctionDecl::param_empty ( ) const inline ◆ param_end() [1/2] ◆ param_end() [2/2] ◆ param_size() size_t clang::FunctionDecl::param_size ( ) const inline ◆ parameters() [1/2] ◆ parameters() [2/2]Definition at line 2649 of file Decl.h.
References getNumParams().
Referenced by clang::Sema::ActOnFinishFunctionBody(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnStartOfFunctionDef(), addFunctionPointerConversion(), clang::SemaSYCL::BuildSYCLKernelCallStmt(), canEmitDelegateCallArgs(), checkAddressOfFunctionIsAvailable(), clang::Sema::CheckAddressOfOperand(), CheckCompleteParameterTypesForMangler(), clang::SemaHLSL::CheckEntryPoint(), clang::Sema::CheckExplicitlyDefaultedComparison(), clang::Sema::CheckFunctionDeclaration(), clang::Sema::CheckLiteralOperatorDeclaration(), CheckNonNullArguments(), clang::Sema::CheckOverloadedOperatorDeclaration(), clang::SemaARM::CheckSMEFunctionDefAttributes(), checkVAStartIsInVariadicFunction(), collectPlacementArgs(), compareOverloads(), clang::interp::ByteCodeEmitter::compileFunc(), clang::Sema::CompleteLambdaCallOperator(), clang::Sema::DeclareImplicitDeductionGuides(), clang::Sema::DiagnoseAlwaysNonNullPointer(), clang::CodeGen::CGOpenMPRuntime::emitDeclareSimdFunction(), clang::comments::DeclInfo::fill(), functionDeclHasDefaultArgument(), functionHasPassObjectSizeParams(), clang::CXXMethodDecl::getFunctionObjectParameterReferenceType(), getMinRequiredArguments(), clang::Sema::getMoreSpecializedTemplate(), getPackIndexForParam(), handleCallbackAttr(), hasNonTrivialConstructorCall(), hasOneParamOrDefaultArgs(), clang::ASTNodeImporter::ImportDeclParts(), clang::dataflow::Environment::initialize(), isOSObjectRelated(), clang::Sema::LazyProcessLifetimeCaptureByParams(), MaybeAddOverrideCalls(), param_begin(), param_empty(), param_end(), param_size(), ProcessAPINotes(), clang::TreeTransform< Derived >::RebuildLambdaExpr(), setPrototype(), SubstituteConstraintExpressionWithoutSatisfaction(), and clang::interp::Compiler< Emitter >::VisitCXXInheritedCtorInitExpr().
◆ setBody() void FunctionDecl::setBody ( Stmt * B ) ◆ setBodyContainsImmediateEscalatingExpressions() void clang::FunctionDecl::setBodyContainsImmediateEscalatingExpressions ( bool Set ) inline ◆ setConstexprKind() ◆ setDeclarationNameLoc() ◆ setDefaulted() void clang::FunctionDecl::setDefaulted ( bool D =true
) inline ◆ setDefaultedOrDeletedInfo() ◆ setDefaultLoc() ◆ setDeletedAsWritten()
Definition at line 3129 of file Decl.cpp.
References clang::FunctionDecl::DefaultedOrDeletedFunctionInfo::Create(), D, DefaultedOrDeletedInfo, clang::DeclContext::FunctionDeclBits, clang::Decl::getASTContext(), isDeletedAsWritten(), setDefaultedOrDeletedInfo(), and clang::FunctionDecl::DefaultedOrDeletedFunctionInfo::setDeletedMessage().
Referenced by clang::Sema::ActOnFunctionDeclarator(), clang::Sema::CheckMemberSpecialization(), clang::ASTNodeImporter::VisitFunctionDecl(), and clang::ASTDeclReader::VisitFunctionDecl().
◆ setDependentTemplateSpecialization() ◆ setDescribedFunctionTemplate() ◆ setExplicitlyDefaulted() void clang::FunctionDecl::setExplicitlyDefaulted ( bool ED =true
) inline ◆ setFriendConstraintRefersToEnclosingTemplate() void clang::FunctionDecl::setFriendConstraintRefersToEnclosingTemplate ( bool V = true
) inline ◆ setFunctionTemplateSpecialization()
Specify that this function declaration is actually a function template specialization.
Definition at line 2949 of file Decl.h.
References clang::Decl::getASTContext().
Referenced by clang::TemplateDeclInstantiator::VisitCXXMethodDecl().
◆ setHasImplicitReturnZero() void clang::FunctionDecl::setHasImplicitReturnZero ( bool IRZ ) inline ◆ setHasInheritedPrototype() void clang::FunctionDecl::setHasInheritedPrototype ( bool P =true
) inline ◆ setHasSkippedBody() void clang::FunctionDecl::setHasSkippedBody ( bool Skipped = true
) inline ◆ setHasWrittenPrototype() void clang::FunctionDecl::setHasWrittenPrototype ( bool P = true
) inline ◆ setImplicitlyInline() void clang::FunctionDecl::setImplicitlyInline ( bool I = true
) inline ◆ setIneligibleOrNotSelected() void clang::FunctionDecl::setIneligibleOrNotSelected ( bool II ) inline ◆ setInlineSpecified() void clang::FunctionDecl::setInlineSpecified ( bool I ) inline ◆ setInstantiatedFromDecl() void FunctionDecl::setInstantiatedFromDecl ( FunctionDecl * FD ) ◆ setInstantiationIsPending() void clang::FunctionDecl::setInstantiationIsPending ( bool IC ) inline ◆ setInstantiationOfMemberFunction() ◆ setIsMultiVersion() void clang::FunctionDecl::setIsMultiVersion ( bool V = true
) inline ◆ setIsPureVirtual() void FunctionDecl::setIsPureVirtual ( bool P = true
) ◆ setLateTemplateParsed() void clang::FunctionDecl::setLateTemplateParsed ( bool ILT = true
) inline ◆ setLazyBody() void clang::FunctionDecl::setLazyBody ( uint64_t Offset ) inline ◆ setParams() ◆ setPreviousDeclaration() void FunctionDecl::setPreviousDeclaration ( FunctionDecl * PrevDecl ) ◆ setRangeEnd() ◆ setStorageClass() void clang::FunctionDecl::setStorageClass ( StorageClass SClass ) inline ◆ setTemplateSpecializationKind() ◆ setTrivial() void clang::FunctionDecl::setTrivial ( bool IT ) inline ◆ setTrivialForCall() void clang::FunctionDecl::setTrivialForCall ( bool IT ) inline ◆ setUsesFPIntrin() void clang::FunctionDecl::setUsesFPIntrin ( bool I ) inline ◆ setUsesSEHTry() void clang::FunctionDecl::setUsesSEHTry ( bool UST ) inline ◆ setVirtualAsWritten() void clang::FunctionDecl::setVirtualAsWritten ( bool V ) inline ◆ setWillHaveBody() void clang::FunctionDecl::setWillHaveBody ( bool V = true
) inline ◆ UsesFPIntrin() bool clang::FunctionDecl::UsesFPIntrin ( ) const inline ◆ usesSEHTry() bool clang::FunctionDecl::usesSEHTry ( ) const inline ◆ willHaveBody() bool clang::FunctionDecl::willHaveBody ( ) const inline
True if this function will eventually have a body, once it's fully parsed.
Definition at line 2561 of file Decl.h.
References clang::DeclContext::FunctionDeclBits.
Referenced by clang::Sema::ActOnStartOfFunctionDef(), clang::Sema::BuildOverloadedCallExpr(), clang::interp::ByteCodeEmitter::compileFunc(), clang::Sema::DefineDefaultedComparison(), clang::Sema::DefineImplicitCopyAssignment(), clang::Sema::DefineImplicitMoveAssignment(), clang::CXXMethodDecl::hasInlineBody(), clang::Sema::InstantiateFunctionDefinition(), isInlineDefinitionExternallyVisible(), isThisDeclarationADefinition(), and clang::Sema::maybeAddDeclWithEffects().
◆ ASTDeclReader ◆ ASTDeclWriter ◆ Body ◆ DefaultedOrDeletedInfoThe documentation for this class was generated from the following files:
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4