r318681 - [AutoComplete] Use stronger sort predicate for autocomplete candidates to remove non-deterministic ordering

Mandeep Singh Grang via cfe-commits cfe-commits at lists.llvm.org
Mon Nov 20 10:49:14 PST 2017


Author: mgrang
Date: Mon Nov 20 10:49:14 2017
New Revision: 318681

URL: http://llvm.org/viewvc/llvm-project?rev=318681&view=rev
Log:
[AutoComplete] Use stronger sort predicate for autocomplete candidates to remove non-deterministic ordering

Summary: This fixes the failure in test/Driver/autocomplete.c uncovered by D39245.

Reviewers: yamaguchi, teemperor, ruiu

Reviewed By: yamaguchi, ruiu

Subscribers: cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D40234

Modified:
    cfe/trunk/lib/Driver/Driver.cpp

Modified: cfe/trunk/lib/Driver/Driver.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Driver.cpp?rev=318681&r1=318680&r2=318681&view=diff
==============================================================================
--- cfe/trunk/lib/Driver/Driver.cpp (original)
+++ cfe/trunk/lib/Driver/Driver.cpp Mon Nov 20 10:49:14 2017
@@ -1198,7 +1198,11 @@ void Driver::handleAutocompletions(Strin
   // case-insensitive sorting for consistency with the -help option
   // which prints out options in the case-insensitive alphabetical order.
   std::sort(SuggestedCompletions.begin(), SuggestedCompletions.end(),
-            [](StringRef A, StringRef B) { return A.compare_lower(B) < 0; });
+            [](StringRef A, StringRef B) {
+              if (int X = A.compare_lower(B))
+                return X < 0;
+              return A.compare(B) > 0;
+            });
 
   llvm::outs() << llvm::join(SuggestedCompletions, "\n") << '\n';
 }




More information about the cfe-commits mailing list