r232264 - Sort ObjCProtocolDecls with array_pod_sort.
Benjamin Kramer
benny.kra at googlemail.com
Sat Mar 14 06:32:50 PDT 2015
Author: d0k
Date: Sat Mar 14 08:32:49 2015
New Revision: 232264
URL: http://llvm.org/viewvc/llvm-project?rev=232264&view=rev
Log:
Sort ObjCProtocolDecls with array_pod_sort.
The predicate is essentially a string comparison. NFC.
Modified:
cfe/trunk/lib/AST/ASTContext.cpp
Modified: cfe/trunk/lib/AST/ASTContext.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/ASTContext.cpp?rev=232264&r1=232263&r2=232264&view=diff
==============================================================================
--- cfe/trunk/lib/AST/ASTContext.cpp (original)
+++ cfe/trunk/lib/AST/ASTContext.cpp Sat Mar 14 08:32:49 2015
@@ -3521,9 +3521,9 @@ QualType ASTContext::getPackExpansionTyp
/// CmpProtocolNames - Comparison predicate for sorting protocols
/// alphabetically.
-static bool CmpProtocolNames(const ObjCProtocolDecl *LHS,
- const ObjCProtocolDecl *RHS) {
- return LHS->getDeclName() < RHS->getDeclName();
+static int CmpProtocolNames(ObjCProtocolDecl *const *LHS,
+ ObjCProtocolDecl *const *RHS) {
+ return DeclarationName::compare((*LHS)->getDeclName(), (*RHS)->getDeclName());
}
static bool areSortedAndUniqued(ObjCProtocolDecl * const *Protocols,
@@ -3534,7 +3534,7 @@ static bool areSortedAndUniqued(ObjCProt
return false;
for (unsigned i = 1; i != NumProtocols; ++i)
- if (!CmpProtocolNames(Protocols[i-1], Protocols[i]) ||
+ if (CmpProtocolNames(&Protocols[i - 1], &Protocols[i]) >= 0 ||
Protocols[i]->getCanonicalDecl() != Protocols[i])
return false;
return true;
@@ -3545,7 +3545,7 @@ static void SortAndUniqueProtocols(ObjCP
ObjCProtocolDecl **ProtocolsEnd = Protocols+NumProtocols;
// Sort protocols, keyed by name.
- std::sort(Protocols, Protocols+NumProtocols, CmpProtocolNames);
+ llvm::array_pod_sort(Protocols, ProtocolsEnd, CmpProtocolNames);
// Canonicalize.
for (unsigned I = 0, N = NumProtocols; I != N; ++I)
More information about the cfe-commits
mailing list