diff options
Diffstat (limited to 'clang/test/Analysis/retain-release.m')
| -rw-r--r-- | clang/test/Analysis/retain-release.m | 11 |
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 |

