say objective-C in the warning and streamline
several diagnostics into one. // rdar://13094352


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176560 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/AST/CommentSema.cpp b/lib/AST/CommentSema.cpp
index a834bb4..68a9ebb 100644
--- a/lib/AST/CommentSema.cpp
+++ b/lib/AST/CommentSema.cpp
@@ -93,17 +93,16 @@
   if (!Info->IsFunctionDeclarationCommand)
     return;
   StringRef Name = Info->Name;
-  unsigned DiagKind = llvm::StringSwitch<unsigned>(Name)
-  .Case("function", !isAnyFunctionDecl() ?
-                    diag::warn_doc_function_not_attached_to_a_function_decl : 0)
-  .Case("method", !isObjCMethodDecl() ?
-                  diag::warn_doc_method_not_attached_to_a_objc_method_decl : 0)
-  .Case("callback", !isFunctionPointerVarDecl() ?
-        diag::warn_doc_callback_not_attached_to_a_function_ptr_decl : 0)
+  unsigned DiagSelect = llvm::StringSwitch<unsigned>(Name)
+  .Case("function", !isAnyFunctionDecl() ? 1 : 0)
+  .Case("method", !isObjCMethodDecl() ? 2 : 0)
+  .Case("callback", !isFunctionPointerVarDecl() ? 3 : 0)
   .Default(0);
   
-  if (DiagKind)
-    Diag(Comment->getLocation(), DiagKind) << Comment->getCommandMarker()
+  if (DiagSelect)
+    Diag(Comment->getLocation(), diag::warn_doc_function_method_decl_mismatch)
+    << Comment->getCommandMarker()
+    << (DiagSelect-1) << (DiagSelect-1)
     << Comment->getSourceRange();
 }