summaryrefslogtreecommitdiffstats
path: root/clang/test/Analysis/retain-release-gc-only.m
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2009-04-28 22:32:26 +0000
committerTed Kremenek <kremenek@apple.com>2009-04-28 22:32:26 +0000
commit869292d5b6394e5dbc0e66c7f86705fb1acbc4bb (patch)
tree92688a4b331d2ab27eb3fa35a45acdcc0ab0f1f8 /clang/test/Analysis/retain-release-gc-only.m
parent865efd72b31978d198eb4fd0a229280e1313b7d5 (diff)
downloadbcm5719-llvm-869292d5b6394e5dbc0e66c7f86705fb1acbc4bb.tar.gz
bcm5719-llvm-869292d5b6394e5dbc0e66c7f86705fb1acbc4bb.zip
Implement ownership attribute 'objc_ownership_make_collectable'. This allows one
to add 'CFMakeCollectable' semantics to a method. llvm-svn: 70336
Diffstat (limited to 'clang/test/Analysis/retain-release-gc-only.m')
-rw-r--r--clang/test/Analysis/retain-release-gc-only.m12
1 files changed, 12 insertions, 0 deletions
diff --git a/clang/test/Analysis/retain-release-gc-only.m b/clang/test/Analysis/retain-release-gc-only.m
index d4871f4de1f..e008f4a795a 100644
--- a/clang/test/Analysis/retain-release-gc-only.m
+++ b/clang/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];
+}
+
+
OpenPOWER on IntegriCloud