This patch fixes a bug whereby, clang skipped
unimplemented property warning for properties
coming from class's conformin protocol. It also
simplifies the algorithm in the process.
Fixes radar 8035776.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107174 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Sema/Sema.h b/lib/Sema/Sema.h
index 325add7..f93a949 100644
--- a/lib/Sema/Sema.h
+++ b/lib/Sema/Sema.h
@@ -1573,16 +1573,9 @@
/// CollectImmediateProperties - This routine collects all properties in
/// the class and its conforming protocols; but not those it its super class.
void CollectImmediateProperties(ObjCContainerDecl *CDecl,
- llvm::DenseMap<IdentifierInfo *, ObjCPropertyDecl*>& PropMap);
+ llvm::DenseMap<IdentifierInfo *, ObjCPropertyDecl*>& PropMap,
+ llvm::DenseMap<IdentifierInfo *, ObjCPropertyDecl*>& SuperPropMap);
- /// ProtocolConformsToSuperClass - Returns true if class has a super class
- /// and it, or its nested super class conforms to the protocol.
- bool ProtocolConformsToSuperClass(const ObjCInterfaceDecl *IDecl,
- const ObjCProtocolDecl *PDecl);
- /// ProtocolConformsToProtocol - Returns true if 2nd Protocol (PDecl) is
- /// qualified by the 1st.
- bool ProtocolConformsToProtocol(const ObjCProtocolDecl *NestedProtocol,
- const ObjCProtocolDecl *PDecl);
/// LookupPropertyDecl - Looks up a property in the current class and all
/// its protocols.