summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2009-11-18 18:56:09 +0000
committerFariborz Jahanian <fjahanian@apple.com>2009-11-18 18:56:09 +0000
commit41e803d8c7e9a14322a8f90fe354a5f2794a2735 (patch)
treec7872651ab8cc10a8e6167744ae4b960566c4759 /clang/lib
parent643818bdd81226640a6a0f3c9fdddd94401f8915 (diff)
downloadbcm5719-llvm-41e803d8c7e9a14322a8f90fe354a5f2794a2735.tar.gz
bcm5719-llvm-41e803d8c7e9a14322a8f90fe354a5f2794a2735.zip
Don't warn if objc method param types in declaration and
implementation mismatch in their qualifiers only. This will match similar behavior in c/c++ and fixes radar 7211653. llvm-svn: 89220
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/Sema/SemaDeclObjC.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/clang/lib/Sema/SemaDeclObjC.cpp b/clang/lib/Sema/SemaDeclObjC.cpp
index 0c5569caff0..7da37affdc1 100644
--- a/clang/lib/Sema/SemaDeclObjC.cpp
+++ b/clang/lib/Sema/SemaDeclObjC.cpp
@@ -828,9 +828,10 @@ void Sema::WarnConflictingTypedMethods(ObjCMethodDecl *ImpMethodDecl,
for (ObjCMethodDecl::param_iterator IM = ImpMethodDecl->param_begin(),
IF = IntfMethodDecl->param_begin(), EM = ImpMethodDecl->param_end();
IM != EM; ++IM, ++IF) {
- if (Context.typesAreCompatible((*IF)->getType(), (*IM)->getType()) ||
- Context.QualifiedIdConformsQualifiedId((*IF)->getType(),
- (*IM)->getType()))
+ QualType ParmDeclTy = (*IF)->getType().getUnqualifiedType();
+ QualType ParmImpTy = (*IM)->getType().getUnqualifiedType();
+ if (Context.typesAreCompatible(ParmDeclTy, ParmImpTy) ||
+ Context.QualifiedIdConformsQualifiedId(ParmDeclTy, ParmImpTy))
continue;
Diag((*IM)->getLocation(), diag::warn_conflicting_param_types)
OpenPOWER on IntegriCloud