summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2012-02-01 22:19:26 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2012-02-01 22:19:26 +0000
commitee599209e613cbe11ca67e8d084d2fc37d679f61 (patch)
tree0feffbf5f0203ac3a4d0d5c949acd404ba717bfc
parent845b1899b62f6f0e87d5c939c6bbd46a934fff4e (diff)
downloadllvm-ee599209e613cbe11ca67e8d084d2fc37d679f61.tar.gz
llvm-ee599209e613cbe11ca67e8d084d2fc37d679f61.tar.bz2
llvm-ee599209e613cbe11ca67e8d084d2fc37d679f61.tar.xz
Fix a bug in the TopoOrderRC comparison function.
The final tie breaker comparison also needs to return +/-1, or 0. This is not a less() function. This could cause otherwise identical super-classes to be ordered unstably, depending on what the system qsort routine does with a bad compare function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149549 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--utils/TableGen/CodeGenRegisters.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/utils/TableGen/CodeGenRegisters.cpp b/utils/TableGen/CodeGenRegisters.cpp
index 7c6661742a..1d06f3e528 100644
--- a/utils/TableGen/CodeGenRegisters.cpp
+++ b/utils/TableGen/CodeGenRegisters.cpp
@@ -503,7 +503,7 @@ static int TopoOrderRC(const void *PA, const void *PB) {
return 1;
// Finally order by name as a tie breaker.
- return A->getName() < B->getName();
+ return StringRef(A->getName()).compare(B->getName());
}
std::string CodeGenRegisterClass::getQualifiedName() const {