summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2008-04-16 04:29:21 +0000
committerTed Kremenek <kremenek@apple.com>2008-04-16 04:29:21 +0000
commitbba6a4b3670fd26b97d4a720a495023469c44d59 (patch)
treecbbde85b8a71bc932fb1ccd518550097885c2e5c /clang
parent8cb96e92a13e10c5fd574651e782ec9f5f065589 (diff)
downloadbcm5719-llvm-bba6a4b3670fd26b97d4a720a495023469c44d59.tar.gz
bcm5719-llvm-bba6a4b3670fd26b97d4a720a495023469c44d59.zip
Update CF reference count checker test case to illustrate the use of
toll-free bridging. llvm-svn: 49772
Diffstat (limited to 'clang')
-rw-r--r--clang/test/Analysis-Apple/CFDate.c15
-rw-r--r--clang/test/Analysis-Apple/CFDate.m27
2 files changed, 27 insertions, 15 deletions
diff --git a/clang/test/Analysis-Apple/CFDate.c b/clang/test/Analysis-Apple/CFDate.c
deleted file mode 100644
index 58b568b4245..00000000000
--- a/clang/test/Analysis-Apple/CFDate.c
+++ /dev/null
@@ -1,15 +0,0 @@
-// RUN: clang -checker-cfref -verify %s
-
-#include <CoreFoundation/CFDate.h>
-
-CFAbsoluteTime f1() {
- CFAbsoluteTime t = CFAbsoluteTimeGetCurrent();
- CFDateRef date = CFDateCreate(NULL, t);
- CFRetain(date);
- CFRelease(date);
- CFDateGetAbsoluteTime(date);
- CFRelease(date);
- t = CFDateGetAbsoluteTime(date); // expected-warning{{Reference-counted object is used after it is released.}}
- return t;
-}
-
diff --git a/clang/test/Analysis-Apple/CFDate.m b/clang/test/Analysis-Apple/CFDate.m
new file mode 100644
index 00000000000..c79b253cfdc
--- /dev/null
+++ b/clang/test/Analysis-Apple/CFDate.m
@@ -0,0 +1,27 @@
+// RUN: clang -checker-cfref -verify %s
+
+#include <CoreFoundation/CFDate.h>
+#include <Foundation/NSDate.h>
+
+CFAbsoluteTime f1() {
+ CFAbsoluteTime t = CFAbsoluteTimeGetCurrent();
+ CFDateRef date = CFDateCreate(NULL, t);
+ CFRetain(date);
+ CFRelease(date);
+ CFDateGetAbsoluteTime(date); // no-warning
+ CFRelease(date);
+ t = CFDateGetAbsoluteTime(date); // expected-warning{{Reference-counted object is used after it is released.}}
+ return t;
+}
+
+CFAbsoluteTime f2() {
+ CFAbsoluteTime t = CFAbsoluteTimeGetCurrent();
+ CFDateRef date = CFDateCreate(NULL, t);
+ [((NSDate*) date) retain];
+ CFRelease(date);
+ CFDateGetAbsoluteTime(date); // no-warning
+ [((NSDate*) date) release];
+ t = CFDateGetAbsoluteTime(date); // expected-warning{{Reference-counted object is used after it is released.}}
+ return t;
+}
+
OpenPOWER on IntegriCloud