Lines Matching refs:FD

184 static bool isRetain(const FunctionDecl *FD, StringRef FName) {
188 static bool isRelease(const FunctionDecl *FD, StringRef FName) {
192 static bool isAutorelease(const FunctionDecl *FD, StringRef FName) {
233 RetainSummaryManager::getSummaryForOSObject(const FunctionDecl *FD,
256 return getOSSummaryCreateRule(FD);
258 return getOSSummaryGetRule(FD);
263 if (const auto *MD = dyn_cast<CXXMethodDecl>(FD)) {
267 return getOSSummaryReleaseRule(FD);
270 return getOSSummaryRetainRule(FD);
273 return getOSSummaryFreeRule(FD);
284 const FunctionDecl *FD,
406 if (isRetain(FD, FName)) {
414 } else if (isAutorelease(FD, FName)) {
424 return getCFCreateGetRuleSummary(FD);
431 if (isRetain(FD, FName))
434 return getCFCreateGetRuleSummary(FD);
441 return getCFCreateGetRuleSummary(FD);
444 if (FD->hasAttr<CFAuditedTransferAttr>()) {
445 return getCFCreateGetRuleSummary(FD);
455 if (isRelease(FD, FName))
492 RetainSummaryManager::generateSummary(const FunctionDecl *FD,
495 if (FD->isImplicit())
498 const IdentifierInfo *II = FD->getIdentifier();
507 const auto *FT = FD->getType()->castAs<FunctionType>();
511 if (const RetainSummary *S = getSummaryForOSObject(FD, FName, RetTy))
514 if (const auto *MD = dyn_cast<CXXMethodDecl>(FD))
524 getSummaryForObjCOrCFObject(FD, FName, RetTy, FT, AllowAnnotations))
531 RetainSummaryManager::getFunctionSummary(const FunctionDecl *FD) {
533 if (!FD)
537 FuncSummariesTy::iterator I = FuncSummaries.find(FD);
543 const RetainSummary *S = generateSummary(FD, AllowAnnotations);
547 updateSummaryFromAnnotations(S, FD);
549 FuncSummaries[FD] = S;
700 RetainSummaryManager::getCFCreateGetRuleSummary(const FunctionDecl *FD) {
701 if (coreFoundation::followsCreateRule(FD))
702 return getCFSummaryCreateRule(FD);
704 return getCFSummaryGetRule(FD);
708 const Decl *FD) {
709 return hasRCAnnotation(FD, "rc_ownership_trusted_implementation");
713 RetainSummaryManager::canEval(const CallExpr *CE, const FunctionDecl *FD,
716 IdentifierInfo *II = FD->getIdentifier();
741 (isRetain(FD, FName) || isAutorelease(FD, FName) ||
751 if (isOSObjectDynamicCast(FName) && FD->param_size() >= 1) {
753 } else if (isOSObjectRequiredCast(FName) && FD->param_size() >= 1) {
755 } else if (isOSObjectThisCast(FName) && isa<CXXMethodDecl>(FD) &&
756 !cast<CXXMethodDecl>(FD)->isStatic()) {
761 const FunctionDecl* FDD = FD->getDefinition();
768 if (const auto *MD = dyn_cast<CXXMethodDecl>(FD)) {
800 RetainSummaryManager::getOSSummaryRetainRule(const FunctionDecl *FD) {
809 RetainSummaryManager::getOSSummaryReleaseRule(const FunctionDecl *FD) {
818 RetainSummaryManager::getOSSummaryFreeRule(const FunctionDecl *FD) {
827 RetainSummaryManager::getOSSummaryCreateRule(const FunctionDecl *FD) {
833 RetainSummaryManager::getOSSummaryGetRule(const FunctionDecl *FD) {
839 RetainSummaryManager::getCFSummaryCreateRule(const FunctionDecl *FD) {
845 RetainSummaryManager::getCFSummaryGetRule(const FunctionDecl *FD) {
896 if (const auto *FD = dyn_cast<FunctionDecl>(ND)) {
897 return FD->getReturnType();
906 const ParmVarDecl *pd, unsigned parm_idx, const NamedDecl *FD,
922 QualType QT = getCallableReturnType(FD);
957 if (const auto *MD = dyn_cast<CXXMethodDecl>(FD)) {
970 const FunctionDecl *FD) {
971 if (!FD)
979 for (auto pi = FD->param_begin(),
980 pe = FD->param_end(); pi != pe; ++pi, ++parm_idx)
981 applyParamAnnotationEffect(*pi, parm_idx, FD, Template);
983 QualType RetTy = FD->getReturnType();
984 if (Optional<RetEffect> RetE = getRetEffectFromAnnotations(RetTy, FD))
987 if (hasAnyEnabledAttrOf<OSConsumesThisAttr>(FD, RetTy))