diff --git a/lib/AST/CommentBriefParser.cpp b/lib/AST/CommentBriefParser.cpp
index 4040a99..a56d79b 100644
--- a/lib/AST/CommentBriefParser.cpp
+++ b/lib/AST/CommentBriefParser.cpp
@@ -8,6 +8,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "clang/AST/CommentBriefParser.h"
+#include "llvm/ADT/StringSwitch.h"
 
 namespace clang {
 namespace comments {
@@ -38,6 +39,21 @@
 
   S.resize(O - S.begin());
 }
+
+bool isBlockCommand(StringRef Name) {
+  return llvm::StringSwitch<bool>(Name)
+      .Case("brief", true)
+      .Case("result", true)
+      .Case("return", true)
+      .Case("returns", true)
+      .Case("author", true)
+      .Case("authors", true)
+      .Case("pre", true)
+      .Case("post", true)
+      .Case("param", true)
+      .Case("arg", true)
+      .Default(false);
+}
 } // unnamed namespace
 
 std::string BriefParser::Parse() {
@@ -61,9 +77,8 @@
         ConsumeToken();
         continue;
       }
-      // Check if this command implicitly starts a new paragraph.
-      if (Name == "param" || Name == "result" || Name == "return" ||
-          Name == "returns") {
+      // Block commands implicitly start a new paragraph.
+      if (isBlockCommand(Name)) {
         // We found an implicit paragraph end.
         InFirstParagraph = false;
         if (InBrief) {
