diff options
author | George Karpenkov <ekarpenkov@apple.com> | 2019-01-10 18:15:30 +0000 |
---|---|---|
committer | George Karpenkov <ekarpenkov@apple.com> | 2019-01-10 18:15:30 +0000 |
commit | 7bac331b7e94735566c9b001adf7f1898c573a38 (patch) | |
tree | e5a6e94d63e303fc05c51cb07adcf1890e20ea87 /clang/lib | |
parent | 717c4c0e2b6fe539d97d5933c83684cf60306518 (diff) | |
download | bcm5719-llvm-7bac331b7e94735566c9b001adf7f1898c573a38.tar.gz bcm5719-llvm-7bac331b7e94735566c9b001adf7f1898c573a38.zip |
[analyzer] [NFC] Reduce redundancy in RetainSummaryManager by using a function
Differential Revision: https://reviews.llvm.org/D56282
llvm-svn: 350865
Diffstat (limited to 'clang/lib')
-rw-r--r-- | clang/lib/StaticAnalyzer/Core/RetainSummaryManager.cpp | 28 |
1 files changed, 8 insertions, 20 deletions
diff --git a/clang/lib/StaticAnalyzer/Core/RetainSummaryManager.cpp b/clang/lib/StaticAnalyzer/Core/RetainSummaryManager.cpp index d50601f524a..bc43b8f897e 100644 --- a/clang/lib/StaticAnalyzer/Core/RetainSummaryManager.cpp +++ b/clang/lib/StaticAnalyzer/Core/RetainSummaryManager.cpp @@ -811,8 +811,8 @@ RetainSummaryManager::getRetEffectFromAnnotations(QualType RetTy, return None; } -bool RetainSummaryManager::applyFunctionParamAnnotationEffect( - const ParmVarDecl *pd, unsigned parm_idx, const FunctionDecl *FD, +bool RetainSummaryManager::applyParamAnnotationEffect( + const ParmVarDecl *pd, unsigned parm_idx, const NamedDecl *FD, RetainSummaryTemplate &Template) { QualType QT = pd->getType(); if (auto K = @@ -832,7 +832,7 @@ bool RetainSummaryManager::applyFunctionParamAnnotationEffect( if (const auto *MD = dyn_cast<CXXMethodDecl>(FD)) { for (const auto *OD : MD->overridden_methods()) { const ParmVarDecl *OP = OD->parameters()[parm_idx]; - if (applyFunctionParamAnnotationEffect(OP, parm_idx, OD, Template)) + if (applyParamAnnotationEffect(OP, parm_idx, OD, Template)) return true; } } @@ -853,10 +853,8 @@ RetainSummaryManager::updateSummaryFromAnnotations(const RetainSummary *&Summ, // Effects on the parameters. unsigned parm_idx = 0; for (auto pi = FD->param_begin(), - pe = FD->param_end(); pi != pe; ++pi, ++parm_idx) { - const ParmVarDecl *pd = *pi; - applyFunctionParamAnnotationEffect(pd, parm_idx, FD, Template); - } + pe = FD->param_end(); pi != pe; ++pi, ++parm_idx) + applyParamAnnotationEffect(*pi, parm_idx, FD, Template); QualType RetTy = FD->getReturnType(); if (Optional<RetEffect> RetE = getRetEffectFromAnnotations(RetTy, FD)) @@ -882,19 +880,9 @@ RetainSummaryManager::updateSummaryFromAnnotations(const RetainSummary *&Summ, // Effects on the parameters. unsigned parm_idx = 0; for (auto pi = MD->param_begin(), pe = MD->param_end(); pi != pe; - ++pi, ++parm_idx) { - const ParmVarDecl *pd = *pi; - QualType QT = pd->getType(); - if (auto K = - hasAnyEnabledAttrOf<NSConsumedAttr, CFConsumedAttr, OSConsumedAttr>( - pd, QT)) { - Template->addArg(AF, parm_idx, ArgEffect(DecRef, *K)); - } else if (auto K = hasAnyEnabledAttrOf<CFReturnsRetainedAttr>(pd, QT)) { - Template->addArg(AF, parm_idx, ArgEffect(RetainedOutParameter, *K)); - } else if (auto K = hasAnyEnabledAttrOf<CFReturnsNotRetainedAttr>(pd, QT)) { - Template->addArg(AF, parm_idx, ArgEffect(UnretainedOutParameter, *K)); - } - } + ++pi, ++parm_idx) + applyParamAnnotationEffect(*pi, parm_idx, MD, Template); + QualType RetTy = MD->getReturnType(); if (Optional<RetEffect> RetE = getRetEffectFromAnnotations(RetTy, MD)) Template->setRetEffect(*RetE); |