[cfe-commits] r84210 - in /cfe/trunk: lib/Analysis/CFRefCount.cpp test/Analysis/retain-release.m

Ted Kremenek kremenek at apple.com
Thu Oct 15 15:25:12 PDT 2009


Author: kremenek
Date: Thu Oct 15 17:25:12 2009
New Revision: 84210

URL: http://llvm.org/viewvc/llvm-project?rev=84210&view=rev
Log:
retain/release checker: Use simpler utility method for creating class method summaries.  No functionality change.

Modified:
    cfe/trunk/lib/Analysis/CFRefCount.cpp
    cfe/trunk/test/Analysis/retain-release.m

Modified: cfe/trunk/lib/Analysis/CFRefCount.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Analysis/CFRefCount.cpp?rev=84210&r1=84209&r2=84210&view=diff

==============================================================================
--- cfe/trunk/lib/Analysis/CFRefCount.cpp (original)
+++ cfe/trunk/lib/Analysis/CFRefCount.cpp Thu Oct 15 17:25:12 2009
@@ -1009,7 +1009,7 @@
           // Part of <rdar://problem/6961230>. (IOKit)
           // This should be addressed using a API table.
           ScratchArgs = AF.Add(ScratchArgs, 2, DecRef);
-          S = getPersistentSummary(RetEffect::MakeNoRet(), DoNothing, DoNothing);
+          S = getPersistentSummary(RetEffect::MakeNoRet(), DoNothing,DoNothing);
         }
         break;
 
@@ -1432,16 +1432,14 @@
   addNSObjectClsMethSummary(GetUnarySelector("allocWithZone", Ctx), Summ);
 
   // Create the [NSAssertionHandler currentHander] summary.
-  addClsMethSummary(&Ctx.Idents.get("NSAssertionHandler"),
-                GetNullarySelector("currentHandler", Ctx),
+  addClassMethSummary("NSAssertionHandler", "currentHandler",
                 getPersistentSummary(RetEffect::MakeNotOwned(RetEffect::ObjC)));
 
   // Create the [NSAutoreleasePool addObject:] summary.
   ScratchArgs = AF.Add(ScratchArgs, 0, Autorelease);
-  addClsMethSummary(&Ctx.Idents.get("NSAutoreleasePool"),
-                    GetUnarySelector("addObject", Ctx),
-                    getPersistentSummary(RetEffect::MakeNoRet(),
-                                         DoNothing, Autorelease));
+  addClassMethSummary("NSAutoreleasePool", "addObject",
+                      getPersistentSummary(RetEffect::MakeNoRet(),
+                                           DoNothing, Autorelease));
 
   // Create the summaries for [NSObject performSelector...].  We treat
   // these as 'stop tracking' for the arguments because they are often

Modified: cfe/trunk/test/Analysis/retain-release.m
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/retain-release.m?rev=84210&r1=84209&r2=84210&view=diff

==============================================================================
--- cfe/trunk/test/Analysis/retain-release.m (original)
+++ cfe/trunk/test/Analysis/retain-release.m Thu Oct 15 17:25:12 2009
@@ -1098,6 +1098,22 @@
 }
 
 //===----------------------------------------------------------------------===//
+// <rdar://problem/7306898> clang thinks [NSCursor dragCopyCursor] returns a
+//                          retained reference
+//===----------------------------------------------------------------------===//
+
+ at interface NSCursor : NSObject
++ (NSCursor *)dragCopyCursor;
+ at end
+
+void rdar7306898(void) {
+  // 'dragCopyCursor' does not follow Cocoa's fundamental rule.  It is a noun, not an sentence
+  // implying a 'copy' of something.
+  NSCursor *c =  [NSCursor dragCopyCursor]; // no-warning
+  NSNumber *number = [[NSNumber alloc] initWithInt:5]; // expected-warning{{leak}}
+}
+
+//===----------------------------------------------------------------------===//
 // Tests of ownership attributes.
 //===----------------------------------------------------------------------===//
 





More information about the cfe-commits mailing list