From e6cde144164255e16640960fb7aaf67a183f8098 Mon Sep 17 00:00:00 2001 From: Reid Kleckner Date: Fri, 4 Aug 2017 21:52:25 +0000 Subject: [PATCH] [libclang] Determinize order of platform availability attrs Previously this code was doing std::sort on IdentifierInfo pointers. Now it sorts alphabetically by platform name. This should de-flake clang/test/Index/availability.c, which was failing non-deterministically for me. llvm-svn: 310138 --- clang/tools/libclang/CIndex.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/clang/tools/libclang/CIndex.cpp b/clang/tools/libclang/CIndex.cpp index 1815fdf5bd8e..ca21b6c6f68f 100644 --- a/clang/tools/libclang/CIndex.cpp +++ b/clang/tools/libclang/CIndex.cpp @@ -7303,7 +7303,8 @@ static void getCursorPlatformAvailabilityForDecl( std::sort(AvailabilityAttrs.begin(), AvailabilityAttrs.end(), [](AvailabilityAttr *LHS, AvailabilityAttr *RHS) { - return LHS->getPlatform() > RHS->getPlatform(); + return LHS->getPlatform()->getName() < + RHS->getPlatform()->getName(); }); ASTContext &Ctx = D->getASTContext(); auto It = std::unique(