aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2008-04-16 20:41:27 +0000
committerTed Kremenek <kremenek@apple.com>2008-04-16 20:41:27 +0000
commit274d009fa30e23c28d1a71eae5a1c9a33d741d8e (patch)
tree351ab6d084589e5be1ba864982dd8fe80345df28
parent1392261ff4418a070fb919cb4832b76b468b6faa (diff)
Add extra test cases to test "escaping" for the reference count checker.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49812 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--test/Analysis-Apple/CFDate.m39
1 files changed, 39 insertions, 0 deletions
diff --git a/test/Analysis-Apple/CFDate.m b/test/Analysis-Apple/CFDate.m
index c79b253cfd..17e4c1b84b 100644
--- a/test/Analysis-Apple/CFDate.m
+++ b/test/Analysis-Apple/CFDate.m
@@ -25,3 +25,42 @@ CFAbsoluteTime f2() {
return t;
}
+
+NSDate* global_x;
+
+ // Test to see if we supresss an error when we store the pointer
+ // to a global.
+
+CFAbsoluteTime f3() {
+ CFAbsoluteTime t = CFAbsoluteTimeGetCurrent();
+ CFDateRef date = CFDateCreate(NULL, t);
+ [((NSDate*) date) retain];
+ CFRelease(date);
+ CFDateGetAbsoluteTime(date); // no-warning
+ global_x = (NSDate*) date;
+ [((NSDate*) date) release];
+ t = CFDateGetAbsoluteTime(date); // no-warning
+ return t;
+}
+
+// Test to see if we supresss an error when we store the pointer
+// to a struct.
+
+struct foo {
+ NSDate* f;
+};
+
+CFAbsoluteTime f4() {
+ struct foo x;
+
+ CFAbsoluteTime t = CFAbsoluteTimeGetCurrent();
+ CFDateRef date = CFDateCreate(NULL, t);
+ [((NSDate*) date) retain];
+ CFRelease(date);
+ CFDateGetAbsoluteTime(date); // no-warning
+ x.f = (NSDate*) date;
+ [((NSDate*) date) release];
+ t = CFDateGetAbsoluteTime(date); // no-warning
+ return t;
+}
+