r198388 - [analyzer] Don't track return value of NSNull +null for retain/release tracking.

Ted Kremenek kremenek at apple.com
Thu Jan 2 17:19:28 PST 2014


Author: kremenek
Date: Thu Jan  2 19:19:28 2014
New Revision: 198388

URL: http://llvm.org/viewvc/llvm-project?rev=198388&view=rev
Log:
[analyzer] Don't track return value of NSNull +null for retain/release tracking.

Fixes <rdar://problem/12858915>.

Modified:
    cfe/trunk/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp
    cfe/trunk/test/Analysis/retain-release.m

Modified: cfe/trunk/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp?rev=198388&r1=198387&r2=198388&view=diff
==============================================================================
--- cfe/trunk/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp (original)
+++ cfe/trunk/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp Thu Jan  2 19:19:28 2014
@@ -1507,6 +1507,11 @@ void RetainSummaryManager::InitializeMet
   //   as for NSWindow objects.
   addClassMethSummary("NSPanel", "alloc", NoTrackYet);
 
+  // For NSNull, objects returned by +null are singletons that ignore
+  // retain/release semantics.  Just don't track them.
+  // <rdar://problem/12858915>
+  addClassMethSummary("NSNull", "null", NoTrackYet);
+
   // Don't track allocated autorelease pools, as it is okay to prematurely
   // exit a method.
   addClassMethSummary("NSAutoreleasePool", "alloc", NoTrackYet);





More information about the cfe-commits mailing list