aboutsummaryrefslogtreecommitdiff
path: root/test/Analysis/retain-release-gc-only.m
diff options
context:
space:
mode:
Diffstat (limited to 'test/Analysis/retain-release-gc-only.m')
-rw-r--r--test/Analysis/retain-release-gc-only.m12
1 files changed, 12 insertions, 0 deletions
diff --git a/test/Analysis/retain-release-gc-only.m b/test/Analysis/retain-release-gc-only.m
index d4871f4de1..e008f4a795 100644
--- a/test/Analysis/retain-release-gc-only.m
+++ b/test/Analysis/retain-release-gc-only.m
@@ -134,6 +134,7 @@ void f3() {
- (void) myCFRetain:(id)__attribute__((objc_ownership_cfretain))obj;
- (void) myRelease:(id)__attribute__((objc_ownership_release))obj;
- (void) myCFRelease:(id)__attribute__((objc_ownership_cfrelease))obj;
+- (void) makeCollectable:(id)__attribute__((objc_ownership_make_collectable))obj;
@end
void test_attr_1(TestOwnershipAttr *X) {
@@ -181,3 +182,14 @@ void test_attr_5c(TestOwnershipAttr *X) {
[X myCFRetain:str];
[X myCFRelease:str];
}
+
+void test_attr_6a(TestOwnershipAttr *X) {
+ CFMutableArrayRef A = CFArrayCreateMutable(0, 10, &kCFTypeArrayCallBacks); // expected-warning{{leak}}
+}
+
+void test_attr_6b(TestOwnershipAttr *X) {
+ CFMutableArrayRef A = CFArrayCreateMutable(0, 10, &kCFTypeArrayCallBacks); // no-warning
+ [X makeCollectable:(id)A];
+}
+
+