forked from OSchip/llvm-project
[Objective-C Sema] Patch to not issue unavailbility/deprecated
warning when multiple method declarations are found in global pool with differing types and some are available. rdar://20408445 llvm-svn: 234328
This commit is contained in:
parent
ebad0aa3ba
commit
d436b2a4ce
|
@ -2240,8 +2240,14 @@ void Sema::addMethodToGlobalList(ObjCMethodList *List,
|
|||
if (getLangOpts().Modules && !getLangOpts().CurrentModule.empty())
|
||||
continue;
|
||||
|
||||
if (!MatchTwoMethodDeclarations(Method, List->getMethod()))
|
||||
if (!MatchTwoMethodDeclarations(Method, List->getMethod())) {
|
||||
// Even if two method types do not match, we would like to say
|
||||
// there is more than one declaration so unavailability/deprecated
|
||||
// warning is not too noisy.
|
||||
if (!Method->isDefined())
|
||||
List->setHasMoreThanOneDecl(true);
|
||||
continue;
|
||||
}
|
||||
|
||||
ObjCMethodDecl *PrevObjCMethod = List->getMethod();
|
||||
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
// RUN: %clang_cc1 -fsyntax-only -triple x86_64-apple-macosx10.11 -verify -Wno-objc-root-class %s
|
||||
// RUN: %clang_cc1 -x objective-c++ -fsyntax-only -triple x86_64-apple-macosx10.11 -verify -Wno-objc-root-class %s
|
||||
// expected-no-diagnostics
|
||||
// rdar://20408445
|
||||
|
||||
@protocol NSFileManagerDelegate @end
|
||||
|
||||
@interface NSFileManager
|
||||
@property (assign) id <NSFileManagerDelegate> delegate;
|
||||
@end
|
||||
|
||||
@interface NSFontManager
|
||||
@property (assign) id delegate __attribute__((availability(macosx,introduced=10.0 ,deprecated=10.11,message="" "NSFontManager doesn't have any delegate method. This property should not be used.")));
|
||||
|
||||
@end
|
||||
|
||||
id Test20408445(id p) {
|
||||
return [p delegate];
|
||||
}
|
Loading…
Reference in New Issue