From e82e13ad4ee707d71e320946887f47f45b303e07 Mon Sep 17 00:00:00 2001 From: Ted Kremenek Date: Tue, 7 Apr 2009 05:33:18 +0000 Subject: [PATCH] Add test case. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68505 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/Analysis/retain-release.m | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/test/Analysis/retain-release.m b/test/Analysis/retain-release.m index 6e75b0d321..5a0471ae88 100644 --- a/test/Analysis/retain-release.m +++ b/test/Analysis/retain-release.m @@ -272,6 +272,17 @@ void f14_leakimmediately() { CFArrayCreateMutable(0, 10, &kCFTypeArrayCallBacks); // expected-warning{{leak}} } +// Test that we track an allocated object beyond the point where the *name* +// of the variable storing the reference is no longer live. +void f15() { + // Create the array. + CFMutableArrayRef A = CFArrayCreateMutable(0, 10, &kCFTypeArrayCallBacks); + CFMutableArrayRef *B = &A; + // At this point, the name 'A' is no longer live. + CFRelease(*B); // no-warning +} + + // Test basic tracking of ivars associated with 'self'. For the retain/release // checker we currently do not want to flag leaks associated with stores // of tracked objects to ivars. -- 2.50.1