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/Sema/SemaDeclAttr.cpp b/clang/lib/Sema/SemaDeclAttr.cpp
index 0c025b7..38bffa2 100644
--- a/clang/lib/Sema/SemaDeclAttr.cpp
+++ b/clang/lib/Sema/SemaDeclAttr.cpp
@@ -2134,30 +2134,6 @@
                                Attr.getAttributeSpellingListIndex()));
 }
 
-static void handleObjCSuppresProtocolAttr(Sema &S, Decl *D,
-                                          const AttributeList &Attr) {
-  if (!isa<ObjCInterfaceDecl>(D)) {
-    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_decl_type)
-      << Attr.getName() << ExpectedObjectiveCInterface;
-    return;
-  }
-
-  IdentifierLoc *Parm = NULL;
-  if (Attr.getNumArgs() == 1) {
-    Parm = Attr.isArgIdent(0) ? Attr.getArgAsIdent(0) : 0;
-  }
-
-  if (!Parm) {
-    S.Diag(D->getLocStart(), diag::err_objc_attr_not_id) << Attr.getName() << 1;
-    return;
-  }
-
-  D->addAttr(::new (S.Context)
-             ObjCSuppressProtocolAttr(Attr.getRange(), S.Context, Parm->Ident,
-                                      Attr.getAttributeSpellingListIndex()));
-}
-
-
 static void handleObjCRequiresPropertyDefsAttr(Sema &S, Decl *D,
                                                const AttributeList &Attr) {
   if (!isa<ObjCInterfaceDecl>(D)) {
@@ -4714,10 +4690,7 @@
   case AttributeList::AT_ObjCRootClass:
     handleObjCRootClassAttr(S, D, Attr);
     break;
-  case AttributeList::AT_ObjCSuppressProtocol:
-    handleObjCSuppresProtocolAttr(S, D, Attr);
-    break;
-  case AttributeList::AT_ObjCRequiresPropertyDefs:
+  case AttributeList::AT_ObjCRequiresPropertyDefs: 
     handleObjCRequiresPropertyDefsAttr (S, D, Attr); 
     break;
   case AttributeList::AT_Unused:      handleUnusedAttr      (S, D, Attr); break;