diff --git a/llvm/lib/Support/CommandLine.cpp b/llvm/lib/Support/CommandLine.cpp
index 16db4d6..7b2a4d0 100644
--- a/llvm/lib/Support/CommandLine.cpp
+++ b/llvm/lib/Support/CommandLine.cpp
@@ -36,6 +36,7 @@
 #include <cerrno>
 #include <cstdlib>
 #include <map>
+#include <set>
 using namespace llvm;
 using namespace cl;
 
@@ -1495,9 +1496,7 @@
   // It shall return true if A's name should be lexographically
   // ordered before B's name. It returns false otherwise.
   static bool OptionCategoryCompare(OptionCategory *A, OptionCategory *B) {
-    int Length = strcmp(A->getName(), B->getName());
-    assert(Length != 0 && "Duplicate option categories");
-    return Length < 0;
+    return strcmp(A->getName(), B->getName()) < 0;
   }
 
   // Make sure we inherit our base class's operator=()
@@ -1507,13 +1506,20 @@
   virtual void printOptions(StrOptionPairVector &Opts, size_t MaxArgLen) {
     std::vector<OptionCategory *> SortedCategories;
     std::map<OptionCategory *, std::vector<Option *> > CategorizedOptions;
+    std::set<std::string> CategoryNames;
 
     // Collect registered option categories into vector in preparation for
     // sorting.
     for (OptionCatSet::const_iterator I = RegisteredOptionCategories->begin(),
                                       E = RegisteredOptionCategories->end();
-         I != E; ++I)
+         I != E; ++I) {
       SortedCategories.push_back(*I);
+      // FIXME: Move this check to OptionCategory::registerCategory after the
+      // problem with analyzer plugins linking to llvm/Support and causing
+      // assertion on the duplicate llvm::cl::GeneralCategory is solved.
+      assert(CategoryNames.insert((*I)->getName()).second &&
+             "Duplicate option categories");
+    }
 
     // Sort the different option categories alphabetically.
     assert(SortedCategories.size() > 0 && "No option categories registered!");
