reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

tools/clang/lib/Sema/SemaExpr.cpp
15397   assert(Func && "No function?");
15399   Func->setReferenced();
15403   bool IsRecursiveCall = CurContext == Func;
15419   if (Func->isTrivial() && !Func->hasAttr<DLLExportAttr>() &&
15419   if (Func->isTrivial() && !Func->hasAttr<DLLExportAttr>() &&
15421     if (auto *Constructor = dyn_cast<CXXConstructorDecl>(Func))
15424     if (isa<CXXDestructorDecl>(Func))
15434       isImplicitlyDefinableConstexprFunction(Func);
15466       (Func->getTemplateSpecializationKind() != TSK_Undeclared ||
15467        Func->getMemberSpecializationInfo()))
15468     checkSpecializationVisibility(Loc, Func);
15479   const FunctionProtoType *FPT = Func->getType()->getAs<FunctionProtoType>();
15484     CheckCUDACall(Loc, Func);
15487   if (NeedDefinition && !Func->getBody()) {
15490               dyn_cast<CXXConstructorDecl>(Func)) {
15507                      dyn_cast<CXXDestructorDecl>(Func)) {
15516       } else if (CXXMethodDecl *MethodDecl = dyn_cast<CXXMethodDecl>(Func)) {
15540       if (Func->isImplicitlyInstantiable()) {
15542             Func->getTemplateSpecializationKindForInstantiation();
15543         SourceLocation PointOfInstantiation = Func->getPointOfInstantiation();
15547           Func->setTemplateSpecializationKind(TSK, PointOfInstantiation);
15556             Func->isConstexpr()) {
15557           if (isa<CXXRecordDecl>(Func->getDeclContext()) &&
15558               cast<CXXRecordDecl>(Func->getDeclContext())->isLocalClass() &&
15561                 std::make_pair(Func, PointOfInstantiation));
15562           else if (Func->isConstexpr())
15566             InstantiateFunctionDefinition(PointOfInstantiation, Func);
15568             Func->setInstantiationIsPending(true);
15570                 std::make_pair(Func, PointOfInstantiation));
15572             Consumer.HandleCXXImplicitFunctionInstantiation(Func);
15577         for (auto i : Func->redecls()) {
15586   if (OdrUse == OdrUseContext::Used && !Func->isUsed(/*CheckUsedAttr=*/false)) {
15588     if (!Func->isDefined()) {
15589       if (mightHaveNonExternalLinkage(Func))
15590         UndefinedButUsed.insert(std::make_pair(Func->getCanonicalDecl(), Loc));
15591       else if (Func->getMostRecentDecl()->isInlined() &&
15593                !Func->getMostRecentDecl()->hasAttr<GNUInlineAttr>())
15594         UndefinedButUsed.insert(std::make_pair(Func->getCanonicalDecl(), Loc));
15595       else if (isExternalWithNoLinkageType(Func))
15596         UndefinedButUsed.insert(std::make_pair(Func->getCanonicalDecl(), Loc));
15602     if (funcHasParameterSizeMangling(*this, Func))
15603       CheckCompleteParameterTypesForMangler(*this, Func, Loc);
15605     Func->markUsed(Context);
15609     markOpenMPDeclareVariantFuncsReferenced(Loc, Func, MightBeOdrUse);
15611       checkOpenMPDeviceFunction(Loc, Func);
15613       checkOpenMPHostFunction(Loc, Func);