Lines Matching refs:FD

192 static bool isRetain(const FunctionDecl *FD, StringRef FName) {  in isRetain()  argument
197 static bool isRelease(const FunctionDecl *FD, StringRef FName) { in isRelease() argument
202 static bool isAutorelease(const FunctionDecl *FD, StringRef FName) { in isAutorelease() argument
243 RetainSummaryManager::getSummaryForOSObject(const FunctionDecl *FD, in getSummaryForOSObject() argument
266 return getOSSummaryCreateRule(FD); in getSummaryForOSObject()
268 return getOSSummaryGetRule(FD); in getSummaryForOSObject()
273 if (const auto *MD = dyn_cast<CXXMethodDecl>(FD)) { in getSummaryForOSObject()
277 return getOSSummaryReleaseRule(FD); in getSummaryForOSObject()
280 return getOSSummaryRetainRule(FD); in getSummaryForOSObject()
283 return getOSSummaryFreeRule(FD); in getSummaryForOSObject()
294 const FunctionDecl *FD, in getSummaryForObjCOrCFObject() argument
411 if (isRetain(FD, FName)) { in getSummaryForObjCOrCFObject()
419 } else if (isAutorelease(FD, FName)) { in getSummaryForObjCOrCFObject()
429 return getCFCreateGetRuleSummary(FD); in getSummaryForObjCOrCFObject()
436 if (isRetain(FD, FName)) in getSummaryForObjCOrCFObject()
439 return getCFCreateGetRuleSummary(FD); in getSummaryForObjCOrCFObject()
446 return getCFCreateGetRuleSummary(FD); in getSummaryForObjCOrCFObject()
449 if (FD->hasAttr<CFAuditedTransferAttr>()) { in getSummaryForObjCOrCFObject()
450 return getCFCreateGetRuleSummary(FD); in getSummaryForObjCOrCFObject()
460 if (isRelease(FD, FName)) in getSummaryForObjCOrCFObject()
497 RetainSummaryManager::generateSummary(const FunctionDecl *FD, in generateSummary() argument
500 if (FD->isImplicit()) in generateSummary()
503 const IdentifierInfo *II = FD->getIdentifier(); in generateSummary()
512 const auto *FT = FD->getType()->castAs<FunctionType>(); in generateSummary()
516 if (const RetainSummary *S = getSummaryForOSObject(FD, FName, RetTy)) in generateSummary()
519 if (const auto *MD = dyn_cast<CXXMethodDecl>(FD)) in generateSummary()
529 getSummaryForObjCOrCFObject(FD, FName, RetTy, FT, AllowAnnotations)) in generateSummary()
536 RetainSummaryManager::getFunctionSummary(const FunctionDecl *FD) { in getFunctionSummary() argument
538 if (!FD) in getFunctionSummary()
542 FuncSummariesTy::iterator I = FuncSummaries.find(FD); in getFunctionSummary()
548 const RetainSummary *S = generateSummary(FD, AllowAnnotations); in getFunctionSummary()
552 updateSummaryFromAnnotations(S, FD); in getFunctionSummary()
554 FuncSummaries[FD] = S; in getFunctionSummary()
706 RetainSummaryManager::getCFCreateGetRuleSummary(const FunctionDecl *FD) { in getCFCreateGetRuleSummary() argument
707 if (coreFoundation::followsCreateRule(FD)) in getCFCreateGetRuleSummary()
708 return getCFSummaryCreateRule(FD); in getCFCreateGetRuleSummary()
710 return getCFSummaryGetRule(FD); in getCFCreateGetRuleSummary()
714 const Decl *FD) { in isTrustedReferenceCountImplementation() argument
715 return hasRCAnnotation(FD, "rc_ownership_trusted_implementation"); in isTrustedReferenceCountImplementation()
719 RetainSummaryManager::canEval(const CallExpr *CE, const FunctionDecl *FD, in canEval() argument
722 IdentifierInfo *II = FD->getIdentifier(); in canEval()
747 (isRetain(FD, FName) || isAutorelease(FD, FName) || in canEval()
757 if (isOSObjectDynamicCast(FName) && FD->param_size() >= 1) { in canEval()
759 } else if (isOSObjectRequiredCast(FName) && FD->param_size() >= 1) { in canEval()
761 } else if (isOSObjectThisCast(FName) && isa<CXXMethodDecl>(FD) && in canEval()
762 !cast<CXXMethodDecl>(FD)->isStatic()) { in canEval()
767 const FunctionDecl* FDD = FD->getDefinition(); in canEval()
774 if (const auto *MD = dyn_cast<CXXMethodDecl>(FD)) { in canEval()
806 RetainSummaryManager::getOSSummaryRetainRule(const FunctionDecl *FD) { in getOSSummaryRetainRule() argument
815 RetainSummaryManager::getOSSummaryReleaseRule(const FunctionDecl *FD) { in getOSSummaryReleaseRule() argument
824 RetainSummaryManager::getOSSummaryFreeRule(const FunctionDecl *FD) { in getOSSummaryFreeRule() argument
833 RetainSummaryManager::getOSSummaryCreateRule(const FunctionDecl *FD) { in getOSSummaryCreateRule() argument
839 RetainSummaryManager::getOSSummaryGetRule(const FunctionDecl *FD) { in getOSSummaryGetRule() argument
845 RetainSummaryManager::getCFSummaryCreateRule(const FunctionDecl *FD) { in getCFSummaryCreateRule() argument
851 RetainSummaryManager::getCFSummaryGetRule(const FunctionDecl *FD) { in getCFSummaryGetRule() argument
902 if (const auto *FD = dyn_cast<FunctionDecl>(ND)) { in getCallableReturnType() local
903 return FD->getReturnType(); in getCallableReturnType()
912 const ParmVarDecl *pd, unsigned parm_idx, const NamedDecl *FD, in applyParamAnnotationEffect() argument
928 QualType QT = getCallableReturnType(FD); in applyParamAnnotationEffect()
963 if (const auto *MD = dyn_cast<CXXMethodDecl>(FD)) { in applyParamAnnotationEffect()
976 const FunctionDecl *FD) { in updateSummaryFromAnnotations() argument
977 if (!FD) in updateSummaryFromAnnotations()
985 for (auto pi = FD->param_begin(), in updateSummaryFromAnnotations()
986 pe = FD->param_end(); pi != pe; ++pi, ++parm_idx) in updateSummaryFromAnnotations()
987 applyParamAnnotationEffect(*pi, parm_idx, FD, Template); in updateSummaryFromAnnotations()
989 QualType RetTy = FD->getReturnType(); in updateSummaryFromAnnotations()
990 if (std::optional<RetEffect> RetE = getRetEffectFromAnnotations(RetTy, FD)) in updateSummaryFromAnnotations()
993 if (hasAnyEnabledAttrOf<OSConsumesThisAttr>(FD, RetTy)) in updateSummaryFromAnnotations()