]> granicus.if.org Git - clang/commitdiff
Moved CFDate.m from test/Analysis-Apple to test/Analysis, and added the necessary...
authorTed Kremenek <kremenek@apple.com>
Mon, 16 Jun 2008 18:34:22 +0000 (18:34 +0000)
committerTed Kremenek <kremenek@apple.com>
Mon, 16 Jun 2008 18:34:22 +0000 (18:34 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52343 91177308-0d34-0410-b5e6-96231b3b80d8

test/Analysis/CFDate.m [moved from test/Analysis-Apple/CFDate.m with 52% similarity]

similarity index 52%
rename from test/Analysis-Apple/CFDate.m
rename to test/Analysis/CFDate.m
index 64894da6c5648a6e4c04d3daaed22a26d8d487c4..4deaf4a2b43fcb73cebc6de71864006b8884f550 100644 (file)
@@ -1,13 +1,40 @@
 // RUN: clang -checker-cfref -verify %s
 
-#include <CoreFoundation/CFDate.h>
-#include <Foundation/NSDate.h>
-#include <Foundation/NSCalendarDate.h>
-#include <Foundation/NSString.h>
+//===----------------------------------------------------------------------===//
+// The following code is reduced using delta-debugging from
+// Foundation.h (Mac OS X).
+//
+// It includes the basic definitions for the test cases below.
+// Not including Foundation.h directly makes this test case both svelt and
+// portable to non-Mac platforms.
+//===----------------------------------------------------------------------===//
+
+typedef const struct __CFAllocator * CFAllocatorRef;
+typedef double CFTimeInterval;
+typedef CFTimeInterval CFAbsoluteTime;
+typedef const struct __CFDate * CFDateRef;
+extern CFDateRef CFDateCreate(CFAllocatorRef allocator, CFAbsoluteTime at);
+typedef struct objc_object {} *id;
+typedef signed char BOOL;
+typedef unsigned int NSUInteger;
+typedef struct _NSZone NSZone;
+@class NSInvocation, NSMethodSignature, NSCoder, NSString, NSEnumerator;
+@protocol NSObject  - (BOOL)isEqual:(id)object; - (id)retain; - (oneway void)release; @end
+@protocol NSCopying  - (id)copyWithZone:(NSZone *)zone; @end
+@protocol NSCoding  - (void)encodeWithCoder:(NSCoder *)aCoder; @end
+@interface NSObject <NSObject> {} @end
+extern id NSAllocateObject(Class aClass, NSUInteger extraBytes, NSZone *zone);
+typedef double NSTimeInterval;
+@interface NSDate : NSObject <NSCopying, NSCoding>  - (NSTimeInterval)timeIntervalSinceReferenceDate; @end
+@class NSString, NSArray, NSTimeZone;
+
+//===----------------------------------------------------------------------===//
+// Test cases.
+//===----------------------------------------------------------------------===//
 
 CFAbsoluteTime f1() {
   CFAbsoluteTime t = CFAbsoluteTimeGetCurrent();
-  CFDateRef date = CFDateCreate(NULL, t);
+  CFDateRef date = CFDateCreate(0, t);
   CFRetain(date);
   CFRelease(date);
   CFDateGetAbsoluteTime(date); // no-warning
@@ -18,7 +45,7 @@ CFAbsoluteTime f1() {
 
 CFAbsoluteTime f2() {
   CFAbsoluteTime t = CFAbsoluteTimeGetCurrent();
-  CFDateRef date = CFDateCreate(NULL, t);  
+  CFDateRef date = CFDateCreate(0, t);  
   [((NSDate*) date) retain];
   CFRelease(date);
   CFDateGetAbsoluteTime(date); // no-warning
@@ -35,7 +62,7 @@ NSDate* global_x;
   
 CFAbsoluteTime f3() {
   CFAbsoluteTime t = CFAbsoluteTimeGetCurrent();
-  CFDateRef date = CFDateCreate(NULL, t);  
+  CFDateRef date = CFDateCreate(0, t);  
   [((NSDate*) date) retain];
   CFRelease(date);
   CFDateGetAbsoluteTime(date); // no-warning
@@ -56,7 +83,7 @@ CFAbsoluteTime f4() {
   struct foo x;
   
   CFAbsoluteTime t = CFAbsoluteTimeGetCurrent();
-  CFDateRef date = CFDateCreate(NULL, t);  
+  CFDateRef date = CFDateCreate(0, t);  
   [((NSDate*) date) retain];
   CFRelease(date);
   CFDateGetAbsoluteTime(date); // no-warning
@@ -70,7 +97,7 @@ CFAbsoluteTime f4() {
 
 CFAbsoluteTime f5(int x) {  
   CFAbsoluteTime t = CFAbsoluteTimeGetCurrent();
-  CFDateRef date = CFDateCreate(NULL, t);
+  CFDateRef date = CFDateCreate(0, t);
   
   if (x)
     CFRelease(date);
@@ -81,7 +108,7 @@ CFAbsoluteTime f5(int x) {
 // Test a leak involving the return.
 
 CFDateRef f6(int x) {  
-  CFDateRef date = CFDateCreate(NULL, CFAbsoluteTimeGetCurrent());
+  CFDateRef date = CFDateCreate(0, CFAbsoluteTimeGetCurrent());
   CFRetain(date);
   return date; // expected-warning{{leak}}
 }
@@ -89,9 +116,9 @@ CFDateRef f6(int x) {
 // Test a leak involving an overwrite.
 
 CFDateRef f7() {
-  CFDateRef date = CFDateCreate(NULL, CFAbsoluteTimeGetCurrent());
+  CFDateRef date = CFDateCreate(0, CFAbsoluteTimeGetCurrent());
   CFRetain(date); //expected-warning{{leak}}
-  date = CFDateCreate(NULL, CFAbsoluteTimeGetCurrent()); 
+  date = CFDateCreate(0, CFAbsoluteTimeGetCurrent()); 
   return date;
 }
 
@@ -106,4 +133,3 @@ CFDateRef f8() {
   return date; // expected-warning{{leak}}
 }
 
-