diff options
| author | Ted Kremenek <kremenek@apple.com> | 2009-01-28 06:25:48 +0000 |
|---|---|---|
| committer | Ted Kremenek <kremenek@apple.com> | 2009-01-28 06:25:48 +0000 |
| commit | 4daeccf28fffbc73667669e04529840bf50247d0 (patch) | |
| tree | 42a059cbea606ef75ce56c6d6c9b0121b6bb81d0 /clang/test | |
| parent | f0ec316a04d358c5dd1023a30b1e65f68d15c5ce (diff) | |
| download | bcm5719-llvm-4daeccf28fffbc73667669e04529840bf50247d0.tar.gz bcm5719-llvm-4daeccf28fffbc73667669e04529840bf50247d0.zip | |
retain/release checker: Improve diagnostics to indicate that CF objects are not automatically garbage collected.
llvm-svn: 63187
Diffstat (limited to 'clang/test')
| -rw-r--r-- | clang/test/Analysis/CFDateGC.m | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/clang/test/Analysis/CFDateGC.m b/clang/test/Analysis/CFDateGC.m index 5ed8ae96093..c405fe24e59 100644 --- a/clang/test/Analysis/CFDateGC.m +++ b/clang/test/Analysis/CFDateGC.m @@ -26,6 +26,7 @@ typedef signed char BOOL; static __inline__ __attribute__((always_inline)) id NSMakeCollectable(CFTypeRef cf) {} @protocol NSObject - (BOOL)isEqual:(id)object; - (oneway void)release; +- (id)retain; @end @class NSArray; @@ -46,7 +47,7 @@ CFAbsoluteTime f1_use_after_release() { // The following two test cases verifies that CFMakeCollectable is a no-op // in non-GC mode and a "release" in GC mode. -CFAbsoluteTime f2_leak() { +CFAbsoluteTime f2_use_after_release() { CFAbsoluteTime t = CFAbsoluteTimeGetCurrent(); CFDateRef date = CFDateCreate(0, t); CFRetain(date); @@ -68,6 +69,11 @@ CFAbsoluteTime f2_noleak() { return t; } +void f3_leak_with_gc() { + CFDateRef date = CFDateCreate(0, CFAbsoluteTimeGetCurrent()); + [[(id) date retain] release]; // expected-warning{{leak}} +} + // The following test case verifies that we "stop tracking" a retained object // when it is passed as an argument to an implicitly defined function. CFAbsoluteTime f4() { |

