reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
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);