forked from OSchip/llvm-project
[Sema][ObjC] perform-selector ARC check should see @selector in parens
llvm-svn: 295674
This commit is contained in:
parent
2012dda9a0
commit
51c0128310
|
@ -2920,7 +2920,8 @@ ExprResult Sema::BuildInstanceMessage(Expr *Receiver,
|
|||
|
||||
case OMF_performSelector:
|
||||
if (Method && NumArgs >= 1) {
|
||||
if (ObjCSelectorExpr *SelExp = dyn_cast<ObjCSelectorExpr>(Args[0])) {
|
||||
if (const auto *SelExp =
|
||||
dyn_cast<ObjCSelectorExpr>(Args[0]->IgnoreParens())) {
|
||||
Selector ArgSel = SelExp->getSelector();
|
||||
ObjCMethodDecl *SelMethod =
|
||||
LookupInstanceMethodInGlobalPool(ArgSel,
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
return [self performSelector : @selector(init)];
|
||||
return [self performSelector : sel1]; // expected-warning {{performSelector may cause a leak because its selector is unknown}} \
|
||||
// expected-note {{used here}}
|
||||
return [self performSelector: (@selector(PlusZero))];
|
||||
|
||||
return [self performSelector : @selector(PlusZero)];
|
||||
return [self performSelector : @selector(PlusOne)]; // expected-error {{performSelector names a selector which retains the object}}
|
||||
|
|
Loading…
Reference in New Issue