diff options
author | Alex Lorenz <arphaman@gmail.com> | 2017-03-16 16:36:11 +0000 |
---|---|---|
committer | Alex Lorenz <arphaman@gmail.com> | 2017-03-16 16:36:11 +0000 |
commit | 1f2e6da2e3c7cc2f7e8997082d3053c3e8f7599d (patch) | |
tree | 7e427952f51f77227911e95d111b8cb721f3240a /test/SemaObjC/arc-peformselector.m | |
parent | c08458fa5962d454782262c840818281b1e38a3a (diff) |
[ObjC][Sema] Avoid ARC performSelector error for 'self' selector
The instance method 'self' does not actually return an over-retained object,
so we shouldn't report an error when it's used with 'performSelector'.
rdar://31071620
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@297961 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/SemaObjC/arc-peformselector.m')
-rw-r--r-- | test/SemaObjC/arc-peformselector.m | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/test/SemaObjC/arc-peformselector.m b/test/SemaObjC/arc-peformselector.m index 80fd6d8884..e90ac6b1c8 100644 --- a/test/SemaObjC/arc-peformselector.m +++ b/test/SemaObjC/arc-peformselector.m @@ -8,6 +8,7 @@ - (id) init __attribute__((ns_returns_not_retained)); - (id)PlusZero; - (id)PlusOne __attribute__((ns_returns_retained)); // expected-note {{method 'PlusOne' declared here}} +- (id)self; @end @interface I : NSObject @@ -31,6 +32,8 @@ return [self performSelector : @selector(PlusZero)]; return [self performSelector : @selector(PlusOne)]; // expected-error {{performSelector names a selector which retains the object}} + + return [self performSelector: @selector(self)]; // No error, -self is not +1! } - (id)performSelector:(SEL)aSelector { return 0; } |