]> granicus.if.org Git - clang/commitdiff
Add test case.
authorTed Kremenek <kremenek@apple.com>
Tue, 7 Apr 2009 05:33:18 +0000 (05:33 +0000)
committerTed Kremenek <kremenek@apple.com>
Tue, 7 Apr 2009 05:33:18 +0000 (05:33 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68505 91177308-0d34-0410-b5e6-96231b3b80d8

test/Analysis/retain-release.m

index 6e75b0d3219690807ed1855a898342198278c4df..5a0471ae88e2df0bc231e8f2504681e4933db908 100644 (file)
@@ -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.