diff options
author | George Karpenkov <ekarpenkov@apple.com> | 2019-02-05 22:26:44 +0000 |
---|---|---|
committer | George Karpenkov <ekarpenkov@apple.com> | 2019-02-05 22:26:44 +0000 |
commit | 6794aa702a5e80a896a034ccf56d8fb8656d935d (patch) | |
tree | 222a54011417a7accc91fc95c5f10837b178dde5 /clang/lib/Analysis/RetainSummaryManager.cpp | |
parent | 76046abbfa474300be9cac06442a6927c3cdd611 (diff) | |
download | bcm5719-llvm-6794aa702a5e80a896a034ccf56d8fb8656d935d.tar.gz bcm5719-llvm-6794aa702a5e80a896a034ccf56d8fb8656d935d.zip |
[analyzer] [RetainCountChecker] Bugfix: in non-OSObject-mode, do not track CXX method calls
Differential Revision: https://reviews.llvm.org/D57782
llvm-svn: 353227
Diffstat (limited to 'clang/lib/Analysis/RetainSummaryManager.cpp')
-rw-r--r-- | clang/lib/Analysis/RetainSummaryManager.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/clang/lib/Analysis/RetainSummaryManager.cpp b/clang/lib/Analysis/RetainSummaryManager.cpp index abaaffa78e3..2eee01ca6a6 100644 --- a/clang/lib/Analysis/RetainSummaryManager.cpp +++ b/clang/lib/Analysis/RetainSummaryManager.cpp @@ -499,19 +499,19 @@ RetainSummaryManager::generateSummary(const FunctionDecl *FD, if (const RetainSummary *S = getSummaryForOSObject(FD, FName, RetTy)) return S; - if (TrackObjCAndCFObjects) - if (const RetainSummary *S = - getSummaryForObjCOrCFObject(FD, FName, RetTy, FT, AllowAnnotations)) - return S; - if (const auto *MD = dyn_cast<CXXMethodDecl>(FD)) - if (!(TrackOSObjects && isOSObjectRelated(MD))) + if (!isOSObjectRelated(MD)) return getPersistentSummary(RetEffect::MakeNoRet(), ArgEffects(AF.getEmptyMap()), ArgEffect(DoNothing), ArgEffect(StopTracking), ArgEffect(DoNothing)); + if (TrackObjCAndCFObjects) + if (const RetainSummary *S = + getSummaryForObjCOrCFObject(FD, FName, RetTy, FT, AllowAnnotations)) + return S; + return getDefaultSummary(); } |