diff --git a/llvm/lib/Support/CommandLine.cpp b/llvm/lib/Support/CommandLine.cpp
index 7b2a4d0..e1317a2 100644
--- a/llvm/lib/Support/CommandLine.cpp
+++ b/llvm/lib/Support/CommandLine.cpp
@@ -36,7 +36,6 @@
 #include <cerrno>
 #include <cstdlib>
 #include <map>
-#include <set>
 using namespace llvm;
 using namespace cl;
 
@@ -126,8 +125,21 @@
 // Initialise the general option category.
 OptionCategory llvm::cl::GeneralCategory("General options");
 
+struct HasName {
+  HasName(StringRef Name) : Name(Name) {}
+  bool operator()(const OptionCategory *Category) const {
+    return Name == Category->getName();
+  }
+  StringRef Name;
+};
+
 void OptionCategory::registerCategory()
 {
+  assert(std::count_if(RegisteredOptionCategories->begin(),
+                       RegisteredOptionCategories->end(),
+                       HasName(getName())) == 0 &&
+         "Duplicate option categories");
+
   RegisteredOptionCategories->insert(this);
 }
 
@@ -1506,7 +1518,6 @@
   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.
@@ -1514,11 +1525,6 @@
                                       E = RegisteredOptionCategories->end();
          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.
