diff options
author | Ted Kremenek <kremenek@apple.com> | 2012-02-18 21:37:48 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2012-02-18 21:37:48 +0000 |
commit | e8a5ba89ec3f81b2ccf2205065ec859bf8dd8160 (patch) | |
tree | 832b5370c182d61d455d8c0e615195223ebb5b96 /clang/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp | |
parent | 3d64453f9dcb1ffcdae6ca60a5089fef9ff0b7b5 (diff) | |
download | bcm5719-llvm-e8a5ba89ec3f81b2ccf2205065ec859bf8dd8160.tar.gz bcm5719-llvm-e8a5ba89ec3f81b2ccf2205065ec859bf8dd8160.zip |
Teach analyzer about NSAutoreleasePool -allocWithZone:. Fixes <rdar://problem/10640253>.
llvm-svn: 150892
Diffstat (limited to 'clang/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp')
-rw-r--r-- | clang/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp index 9ba83ce8dc9..b6f91d9fdca 100644 --- a/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp +++ b/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp @@ -655,10 +655,11 @@ private: ObjCMethodSummaries[S] = Summ; } - void addClassMethSummary(const char* Cls, const char* nullaryName, - const RetainSummary *Summ) { + void addClassMethSummary(const char* Cls, const char* name, + const RetainSummary *Summ, bool isNullary = true) { IdentifierInfo* ClsII = &Ctx.Idents.get(Cls); - Selector S = GetNullarySelector(nullaryName, Ctx); + Selector S = isNullary ? GetNullarySelector(name, Ctx) + : GetUnarySelector(name, Ctx); ObjCClassMethodSummaries[ObjCSummaryKey(ClsII, S)] = Summ; } @@ -1508,6 +1509,7 @@ void RetainSummaryManager::InitializeMethodSummaries() { // Don't track allocated autorelease pools yet, as it is okay to prematurely // exit a method. addClassMethSummary("NSAutoreleasePool", "alloc", NoTrackYet); + addClassMethSummary("NSAutoreleasePool", "allocWithZone", NoTrackYet, false); // Create summaries QCRenderer/QCView -createSnapShotImageOfType: addInstMethSummary("QCRenderer", AllocSumm, |