forked from OSchip/llvm-project
Objective-C. Fixes a bogus warning on unimplemented
selectors because we were not going through entire elements in list of all implemented selectors. // rdar://16428638 llvm-svn: 204852
This commit is contained in:
parent
84aa5e555f
commit
ec762bda73
|
@ -2402,11 +2402,15 @@ ObjCMethodDecl *Sema::LookupImplementedMethodInGlobalPool(Selector Sel) {
|
|||
return 0;
|
||||
|
||||
GlobalMethods &Methods = Pos->second;
|
||||
for (const ObjCMethodList *Method = &Methods.first; Method;
|
||||
Method = Method->getNext())
|
||||
if (Method->Method && Method->Method->isDefined())
|
||||
return Method->Method;
|
||||
|
||||
if (Methods.first.Method && Methods.first.Method->isDefined())
|
||||
return Methods.first.Method;
|
||||
if (Methods.second.Method && Methods.second.Method->isDefined())
|
||||
return Methods.second.Method;
|
||||
for (const ObjCMethodList *Method = &Methods.second; Method;
|
||||
Method = Method->getNext())
|
||||
if (Method->Method && Method->Method->isDefined())
|
||||
return Method->Method;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -110,3 +110,27 @@ extern SEL MySelector(SEL s);
|
|||
@interface USETextSub : USEText
|
||||
- (int) invalidate : (id)arg;
|
||||
@end
|
||||
|
||||
// rdar://16428638
|
||||
@interface I16428638
|
||||
- (int) compare: (I16428638 *) arg1; // commenting out this line avoids the warning
|
||||
@end
|
||||
|
||||
@interface J16428638
|
||||
- (int) compare: (J16428638 *) arg1;
|
||||
@end
|
||||
|
||||
@implementation J16428638
|
||||
- (void)method {
|
||||
SEL s = @selector(compare:); // spurious warning
|
||||
(void)s;
|
||||
}
|
||||
- (int) compare: (J16428638 *) arg1 {
|
||||
return 0;
|
||||
}
|
||||
@end
|
||||
|
||||
void test16428638() {
|
||||
SEL s = @selector(compare:);
|
||||
(void)s;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue