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
This commit is contained in:
Rafael Espindola 2014-02-05 17:49:31 +00:00
parent c17768616f
commit b30b4e71fe
2 changed files with 5 additions and 16 deletions

View File

@ -149,8 +149,8 @@ private:
public:
OptionCategory(const char *const Name, const char *const Description = 0)
: Name(Name), Description(Description) { registerCategory(); }
const char *getName() const { return Name; }
const char *getDescription() const { return Description; }
const char *getName() { return Name; }
const char *getDescription() { return Description; }
};
// The general Option Category (used as default category).

View File

@ -125,21 +125,8 @@ static ManagedStatic<OptionCatSet> 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=()