diff --git a/include/clang/Basic/DiagnosticCommentKinds.td b/include/clang/Basic/DiagnosticCommentKinds.td
index b0aece5..1bf290e 100644
--- a/include/clang/Basic/DiagnosticCommentKinds.td
+++ b/include/clang/Basic/DiagnosticCommentKinds.td
@@ -73,19 +73,10 @@
   "a function declaration">,
   InGroup<Documentation>, DefaultIgnore;
 
-def warn_doc_function_not_attached_to_a_function_decl : Warning<
-  "'%select{\\|@}0function' command should be used in a comment attached to a "
-  "function declaration">,
-  InGroup<Documentation>, DefaultIgnore;
-  
-def warn_doc_callback_not_attached_to_a_function_ptr_decl : Warning<
-  "'%select{\\|@}0callback' command should be used in a comment attached to a "
-  "pointer to function declaration">,
-  InGroup<Documentation>, DefaultIgnore;
-
-def warn_doc_method_not_attached_to_a_objc_method_decl : Warning<
-  "'%select{\\|@}0method' command should be used in a comment attached to an "
-  "objective-c method declaration">,
+def warn_doc_function_method_decl_mismatch : Warning<
+  "'%select{\\|@}0%select{function|method|callback}1' command should be "
+  "used in a comment attached to "
+  "%select{a function|an objective-C method|a pointer to function}2 declaration">,
   InGroup<Documentation>, DefaultIgnore;
   
 def warn_doc_param_duplicate : Warning<
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();
 }
 
diff --git a/test/Sema/warn-documentation.m b/test/Sema/warn-documentation.m
index a0ea47e..81919cf 100644
--- a/test/Sema/warn-documentation.m
+++ b/test/Sema/warn-documentation.m
@@ -98,7 +98,7 @@
 typedef int (^test_param1)(int aaa, int ccc);
 
 // rdar://13094352
-// expected-warning@+2 {{'@method' command should be used in a comment attached to an objective-c method declaration}}
+// expected-warning@+2 {{'@method' command should be used in a comment attached to an objective-C method declaration}}
 @interface I
 /*!	@method Base64EncodeEx
 */
