File tree Expand file tree Collapse file tree 1 file changed +7
-4
lines changed Expand file tree Collapse file tree 1 file changed +7
-4
lines changed Original file line number Diff line number Diff line change 9
9
10
10
#include " llvm/MC/StringTableBuilder.h"
11
11
#include " llvm/ADT/SmallVector.h"
12
+ #include " llvm/ADT/STLExtras.h"
12
13
#include " llvm/Support/COFF.h"
13
14
#include " llvm/Support/Endian.h"
14
15
15
16
using namespace llvm ;
16
17
17
- static bool compareBySuffix (StringRef a, StringRef b) {
18
+ static int compareBySuffix (const StringRef *AP, const StringRef *BP) {
19
+ StringRef a = *AP;
20
+ StringRef b = *BP;
18
21
size_t sizeA = a.size ();
19
22
size_t sizeB = b.size ();
20
23
size_t len = std::min (sizeA, sizeB);
21
24
for (size_t i = 0 ; i < len; ++i) {
22
25
char ca = a[sizeA - i - 1 ];
23
26
char cb = b[sizeB - i - 1 ];
24
27
if (ca != cb)
25
- return ca > cb ;
28
+ return cb - ca ;
26
29
}
27
- return sizeA > sizeB ;
30
+ return sizeB - sizeA ;
28
31
}
29
32
30
33
void StringTableBuilder::finalize (Kind kind) {
@@ -34,7 +37,7 @@ void StringTableBuilder::finalize(Kind kind) {
34
37
for (auto i = StringIndexMap.begin (), e = StringIndexMap.end (); i != e; ++i)
35
38
Strings.push_back (i->getKey ());
36
39
37
- std::sort (Strings.begin (), Strings.end (), compareBySuffix);
40
+ array_pod_sort (Strings.begin (), Strings.end (), compareBySuffix);
38
41
39
42
switch (kind) {
40
43
case ELF:
You can’t perform that action at this time.
0 commit comments