diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2015-10-22 15:15:44 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2015-10-22 15:15:44 +0000 |
commit | 0169a45e0471fc204764dde04040db288bc04db2 (patch) | |
tree | d71884821d44077670d6a124a05d5316e78a92b0 /llvm/lib/MC/StringTableBuilder.cpp | |
parent | 9bccaa158a8424b7f74e75d7cb1878f2a4b6826a (diff) | |
download | bcm5719-llvm-0169a45e0471fc204764dde04040db288bc04db2.tar.gz bcm5719-llvm-0169a45e0471fc204764dde04040db288bc04db2.zip |
Use array_pod_sort. NFC.
llvm-svn: 251023
Diffstat (limited to 'llvm/lib/MC/StringTableBuilder.cpp')
-rw-r--r-- | llvm/lib/MC/StringTableBuilder.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/llvm/lib/MC/StringTableBuilder.cpp b/llvm/lib/MC/StringTableBuilder.cpp index 9de9363611e..86e54471794 100644 --- a/llvm/lib/MC/StringTableBuilder.cpp +++ b/llvm/lib/MC/StringTableBuilder.cpp @@ -9,12 +9,15 @@ #include "llvm/MC/StringTableBuilder.h" #include "llvm/ADT/SmallVector.h" +#include "llvm/ADT/STLExtras.h" #include "llvm/Support/COFF.h" #include "llvm/Support/Endian.h" using namespace llvm; -static bool compareBySuffix(StringRef a, StringRef b) { +static int compareBySuffix(const StringRef *AP, const StringRef *BP) { + StringRef a = *AP; + StringRef b = *BP; size_t sizeA = a.size(); size_t sizeB = b.size(); size_t len = std::min(sizeA, sizeB); @@ -22,9 +25,9 @@ static bool compareBySuffix(StringRef a, StringRef b) { char ca = a[sizeA - i - 1]; char cb = b[sizeB - i - 1]; if (ca != cb) - return ca > cb; + return cb - ca; } - return sizeA > sizeB; + return sizeB - sizeA; } void StringTableBuilder::finalize(Kind kind) { @@ -34,7 +37,7 @@ void StringTableBuilder::finalize(Kind kind) { for (auto i = StringIndexMap.begin(), e = StringIndexMap.end(); i != e; ++i) Strings.push_back(i->getKey()); - std::sort(Strings.begin(), Strings.end(), compareBySuffix); + array_pod_sort(Strings.begin(), Strings.end(), compareBySuffix); switch (kind) { case ELF: |