mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-14 16:33:28 +00: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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@200981 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
24e5f9652a
commit
11b8b43196
@ -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