summaryrefslogtreecommitdiffstats
path: root/clang/test
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2009-05-09 03:10:32 +0000
committerTed Kremenek <kremenek@apple.com>2009-05-09 03:10:32 +0000
commitd73cfc734bbedd910c8d3a56bbc07c643169ea05 (patch)
treed4ea7d966ae28b5c5d7a8f2ccbf92893a651dda4 /clang/test
parent669604cded4fe6678700e04dc7dcc444e952cddf (diff)
downloadbcm5719-llvm-d73cfc734bbedd910c8d3a56bbc07c643169ea05.tar.gz
bcm5719-llvm-d73cfc734bbedd910c8d3a56bbc07c643169ea05.zip
Add back test cases for ns_returns_retained and cf_returns_retained.
llvm-svn: 71312
Diffstat (limited to 'clang/test')
-rw-r--r--clang/test/Analysis/retain-release-gc-only.m17
-rw-r--r--clang/test/Analysis/retain-release.m17
2 files changed, 34 insertions, 0 deletions
diff --git a/clang/test/Analysis/retain-release-gc-only.m b/clang/test/Analysis/retain-release-gc-only.m
index f83c7e115df..f9e00d3eab8 100644
--- a/clang/test/Analysis/retain-release-gc-only.m
+++ b/clang/test/Analysis/retain-release-gc-only.m
@@ -124,3 +124,20 @@ void f3() {
CFRetain(A);
}
+//===----------------------------------------------------------------------===//
+// Tests of ownership attributes.
+//===----------------------------------------------------------------------===//
+
+@interface TestOwnershipAttr : NSObject
+- (NSString*) returnsAnOwnedString __attribute__((ns_returns_retained));
+- (NSString*) returnsAnOwnedCFString __attribute__((cf_returns_retained));
+@end
+
+void test_attr_1(TestOwnershipAttr *X) {
+ NSString *str = [X returnsAnOwnedString]; // no-warning
+}
+
+void test_attr_1b(TestOwnershipAttr *X) {
+ NSString *str = [X returnsAnOwnedCFString]; // expected-warning{{leak}}
+}
+
diff --git a/clang/test/Analysis/retain-release.m b/clang/test/Analysis/retain-release.m
index 49fd98b3b7e..acc469a7b77 100644
--- a/clang/test/Analysis/retain-release.m
+++ b/clang/test/Analysis/retain-release.m
@@ -475,3 +475,20 @@ void rdar6704930(unsigned char *s, unsigned int length) {
}
@end
+//===----------------------------------------------------------------------===//
+// Tests of ownership attributes.
+//===----------------------------------------------------------------------===//
+
+@interface TestOwnershipAttr : NSObject
+- (NSString*) returnsAnOwnedString __attribute__((ns_returns_retained));
+- (NSString*) returnsAnOwnedCFString __attribute__((cf_returns_retained));
+@end
+
+void test_attr_1(TestOwnershipAttr *X) {
+ NSString *str = [X returnsAnOwnedString]; // expected-warning{{leak}}
+}
+
+void test_attr_1b(TestOwnershipAttr *X) {
+ NSString *str = [X returnsAnOwnedCFString]; // expected-warning{{leak}}
+}
+
OpenPOWER on IntegriCloud