From 0bca63a33a518cd576fa0e29ddeede6fdd181010 Mon Sep 17 00:00:00 2001 From: Rafael Espindola Date: Wed, 5 Feb 2014 17:49:31 +0000 Subject: Revert "Fix an invalid check for duplicate option categories." This reverts commit r200853. It was causing clang/Analysis/checker-plugins.c to crash. llvm-svn: 200858 --- llvm/lib/Support/CommandLine.cpp | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) (limited to 'llvm/lib/Support/CommandLine.cpp') diff --git a/llvm/lib/Support/CommandLine.cpp b/llvm/lib/Support/CommandLine.cpp index 289bb87433f..16db4d63960 100644 --- a/llvm/lib/Support/CommandLine.cpp +++ b/llvm/lib/Support/CommandLine.cpp @@ -125,21 +125,8 @@ static ManagedStatic RegisteredOptionCategories; // 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); } @@ -1508,7 +1495,9 @@ public: // 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) { - return strcmp(A->getName(), B->getName()) < 0; + int Length = strcmp(A->getName(), B->getName()); + assert(Length != 0 && "Duplicate option categories"); + return Length < 0; } // Make sure we inherit our base class's operator=() -- cgit v1.2.3