summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaDeclObjC.cpp
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2014-03-17 17:46:10 +0000
committerFariborz Jahanian <fjahanian@apple.com>2014-03-17 17:46:10 +0000
commit83d674e007d07fba56bbdbd92475ed25ef33ded9 (patch)
treec986e4fb97b73bfd821cfc88b0e8af4db27a4d52 /clang/lib/Sema/SemaDeclObjC.cpp
parent263c9280b343b27e258cf0dc34cc1fe10ba2b924 (diff)
downloadbcm5719-llvm-83d674e007d07fba56bbdbd92475ed25ef33ded9.tar.gz
bcm5719-llvm-83d674e007d07fba56bbdbd92475ed25ef33ded9.zip
Objective-C. Do not warn when an instance method and
class method with the same selctor but different argument types having one of them in class extension. // rdar://16312105 llvm-svn: 204065
Diffstat (limited to 'clang/lib/Sema/SemaDeclObjC.cpp')
-rw-r--r--clang/lib/Sema/SemaDeclObjC.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaDeclObjC.cpp b/clang/lib/Sema/SemaDeclObjC.cpp
index 2bed6cac384..8f68852aaaf 100644
--- a/clang/lib/Sema/SemaDeclObjC.cpp
+++ b/clang/lib/Sema/SemaDeclObjC.cpp
@@ -838,7 +838,9 @@ void Sema::DiagnoseClassExtensionDupMethods(ObjCCategoryDecl *CAT,
return;
for (const auto *Method : CAT->methods()) {
const ObjCMethodDecl *&PrevMethod = MethodMap[Method->getSelector()];
- if (PrevMethod && !MatchTwoMethodDeclarations(Method, PrevMethod)) {
+ if (PrevMethod &&
+ (PrevMethod->isInstanceMethod() == Method->isInstanceMethod()) &&
+ !MatchTwoMethodDeclarations(Method, PrevMethod)) {
Diag(Method->getLocation(), diag::err_duplicate_method_decl)
<< Method->getDeclName();
Diag(PrevMethod->getLocation(), diag::note_previous_declaration);
OpenPOWER on IntegriCloud