summaryrefslogtreecommitdiffstats
path: root/clang/test/Analysis/retain-release.m
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test/Analysis/retain-release.m')
-rw-r--r--clang/test/Analysis/retain-release.m11
1 files changed, 11 insertions, 0 deletions
diff --git a/clang/test/Analysis/retain-release.m b/clang/test/Analysis/retain-release.m
index 9ed10f812f8..e9c3f5189ba 100644
--- a/clang/test/Analysis/retain-release.m
+++ b/clang/test/Analysis/retain-release.m
@@ -439,6 +439,8 @@ void rdar6704930(unsigned char *s, unsigned int length) {
- (void) myCFRelease:(id)__attribute__((cf_releases))obj;
- (void) myRetain __attribute__((ns_retains));
- (void) myRelease __attribute__((ns_releases));
+- (void) myAutorelease __attribute__((ns_autoreleases));
+- (void) myAutorelease:(id)__attribute__((ns_autoreleases))obj;
@end
@interface TestAttrHelper : NSObject
@@ -478,6 +480,10 @@ NSString* test_attr_1d(TestOwnershipAttr *X) {
return str;
}
+void test_attr_1e(TestOwnershipAttr *X) {
+ NSString *str = [X returnsAnOwnedString]; // no-warning
+ [X myAutorelease:str];
+}
void test_attr_2(TestOwnershipAttr *X) {
NSString *str = [X returnsAnOwnedString]; // expected-warning{{leak}}
@@ -548,6 +554,11 @@ void test_attr_6c() {
[X myRelease];
}
+void test_attr_6d() {
+ TestOwnershipAttr *X = [TestOwnershipAttr alloc]; // no-warning
+ [X myAutorelease];
+}
+
//===----------------------------------------------------------------------===//
// <rdar://problem/6833332>
// One build of the analyzer accidentally stopped tracking the allocated
OpenPOWER on IntegriCloud