diff options
author | Ted Kremenek <kremenek@apple.com> | 2008-04-16 20:41:27 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2008-04-16 20:41:27 +0000 |
commit | 274d009fa30e23c28d1a71eae5a1c9a33d741d8e (patch) | |
tree | 351ab6d084589e5be1ba864982dd8fe80345df28 | |
parent | 1392261ff4418a070fb919cb4832b76b468b6faa (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.m | 39 |
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; +} + |