Revert "Add new attribute 'objc_suppress_protocol' to suppress protocol conformance for a class."

After implementing this patch, a few concerns about the language
feature itself emerged in my head that I had previously not considered.
I want to resolve those design concerns first before having
a half-designed language feature in the tree.

llvm-svn: 195328
diff --git a/clang/lib/AST/DeclObjC.cpp b/clang/lib/AST/DeclObjC.cpp
index d759c07..b2b5b70 100644
--- a/clang/lib/AST/DeclObjC.cpp
+++ b/clang/lib/AST/DeclObjC.cpp
@@ -457,11 +457,9 @@
 /// When argument category "C" is specified, any implicit method found
 /// in this category is ignored.
 ObjCMethodDecl *ObjCInterfaceDecl::lookupMethod(Selector Sel, 
-                                                bool isInstance,
-                                                bool shallowCategoryLookup,
-                                                const ObjCCategoryDecl *C,
-                                                const ObjCProtocolDecl *P) const
-{
+                                     bool isInstance,
+                                     bool shallowCategoryLookup,
+                                     const ObjCCategoryDecl *C) const {
   // FIXME: Should make sure no callers ever do this.
   if (!hasDefinition())
     return 0;
@@ -472,23 +470,7 @@
   if (data().ExternallyCompleted)
     LoadExternalDefinition();
 
-  while (ClassDecl) {
-    // If we are looking for a method that is part of protocol conformance,
-    // check if the class has been marked to suppress conformance
-    // of that protocol.
-    if (P && ClassDecl->hasAttrs()) {
-      const AttrVec &V = ClassDecl->getAttrs();
-      const IdentifierInfo *PI = P->getIdentifier();
-      for (AttrVec::const_iterator I = V.begin(), E = V.end(); I != E; ++I) {
-        if (const ObjCSuppressProtocolAttr *A =
-            dyn_cast<ObjCSuppressProtocolAttr>(*I)){
-          if (A->getProtocol() == PI) {
-            return 0;
-          }
-        }
-      }
-    }
-
+  while (ClassDecl != NULL) {
     if ((MethodDecl = ClassDecl->getMethod(Sel, isInstance)))
       return MethodDecl;