mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-31 20:51:52 +01:00
Fix an invalid check for duplicate option categories.
An intermediate solution until the problems with analyzer plugins linking with llvm/Support and causing assertions due to duplicate GeneralCategory are solved. llvm-svn: 200981
This commit is contained in:
parent
d15975817e
commit
2c5d8ebf79
@ -36,6 +36,7 @@
|
||||
#include <cerrno>
|
||||
#include <cstdlib>
|
||||
#include <map>
|
||||
#include <set>
|
||||
using namespace llvm;
|
||||
using namespace cl;
|
||||
|
||||
@ -1495,9 +1496,7 @@ 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) {
|
||||
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 @@ protected:
|
||||
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!");
|
||||
|
Loading…
x
Reference in New Issue
Block a user