forked from OSchip/llvm-project
AsmMatcher: Ensure classes are totally ordered, so we can std::sort them reliably.
llvm-svn: 104806
This commit is contained in:
parent
ebdc772457
commit
97ac3afac2
|
@ -388,6 +388,9 @@ public:
|
|||
|
||||
/// operator< - Compare two classes.
|
||||
bool operator<(const ClassInfo &RHS) const {
|
||||
if (this == &RHS)
|
||||
return false;
|
||||
|
||||
// Unrelated classes can be ordered by kind.
|
||||
if (!isRelatedTo(RHS))
|
||||
return Kind < RHS.Kind;
|
||||
|
@ -403,7 +406,13 @@ public:
|
|||
|
||||
default:
|
||||
// This class preceeds the RHS if it is a proper subset of the RHS.
|
||||
return this != &RHS && isSubsetOf(RHS);
|
||||
if (isSubsetOf(RHS))
|
||||
return true;
|
||||
if (RHS.isSubsetOf(*this))
|
||||
return false;
|
||||
|
||||
// Otherwise, order by name to ensure we have a total ordering.
|
||||
return ValueName < RHS.ValueName;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue