On Wed, Aug 25, 2010 at 10:37 PM, Daniel Dunbar <[email protected]> wrote: > On Wed, Aug 25, 2010 at 10:33 PM, Douglas Gregor <[email protected]> wrote: >> >> >> Sent from my iPhone >> On Aug 25, 2010, at 8:53 PM, Daniel Dunbar <[email protected]> wrote: >> >> Author: ddunbar >> Date: Wed Aug 25 22:53:50 2010 >> New Revision: 112161 >> >> URL: http://llvm.org/viewvc/llvm-project?rev=112161&view=rev >> Log: >> Revert r112149, "Move the sorting of code-completion results out of the main >> path and ...", it is failing tests. >> >> r112159 didn't solve this? > > Race condition, your commit came in between my revert/test/commit cycle. > > I will reapply.
Actually, no, the test still fails with r112149 and r112154 reapplied on top of r112159. - Daniel > - Daniel > >> - Doug >> >> Modified: >> cfe/trunk/include/clang-c/Index.h >> cfe/trunk/lib/Frontend/ASTUnit.cpp >> cfe/trunk/lib/Sema/CodeCompleteConsumer.cpp >> cfe/trunk/lib/Sema/SemaCodeComplete.cpp >> cfe/trunk/tools/c-index-test/c-index-test.c >> cfe/trunk/tools/libclang/CIndexCodeCompletion.cpp >> cfe/trunk/tools/libclang/libclang.darwin.exports >> cfe/trunk/tools/libclang/libclang.exports >> >> Modified: cfe/trunk/include/clang-c/Index.h >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang-c/Index.h?rev=112161&r1=112160&r2=112161&view=diff >> ============================================================================== >> --- cfe/trunk/include/clang-c/Index.h (original) >> +++ cfe/trunk/include/clang-c/Index.h Wed Aug 25 22:53:50 2010 >> @@ -2350,17 +2350,6 @@ >> unsigned options); >> >> /** >> - * \brief Sort the code-completion results in case-insensitive alphabetical >> - * order. >> - * >> - * \param Results The set of results to sort. >> - * \param NumResults The number of results in \p Results. >> - */ >> -CINDEX_LINKAGE >> -void clang_sortCodeCompletionResults(CXCompletionResult *Results, >> - unsigned NumResults); >> - >> -/** >> * \brief Free the given set of code-completion results. >> */ >> CINDEX_LINKAGE >> >> Modified: cfe/trunk/lib/Frontend/ASTUnit.cpp >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/ASTUnit.cpp?rev=112161&r1=112160&r2=112161&view=diff >> ============================================================================== >> --- cfe/trunk/lib/Frontend/ASTUnit.cpp (original) >> +++ cfe/trunk/lib/Frontend/ASTUnit.cpp Wed Aug 25 22:53:50 2010 >> @@ -1678,7 +1678,9 @@ >> Next.ProcessCodeCompleteResults(S, Context, Results, NumResults); >> return; >> } >> - >> + >> + // Sort the completion results before passing them on to the actual >> consumer. >> + std::stable_sort(AllResults.begin(), AllResults.end()); >> Next.ProcessCodeCompleteResults(S, Context, AllResults.data(), >> AllResults.size()); >> >> >> Modified: cfe/trunk/lib/Sema/CodeCompleteConsumer.cpp >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/CodeCompleteConsumer.cpp?rev=112161&r1=112160&r2=112161&view=diff >> ============================================================================== >> --- cfe/trunk/lib/Sema/CodeCompleteConsumer.cpp (original) >> +++ cfe/trunk/lib/Sema/CodeCompleteConsumer.cpp Wed Aug 25 22:53:50 2010 >> @@ -443,8 +443,6 @@ >> CodeCompletionContext >> Context, >> CodeCompletionResult >> *Results, >> unsigned >> NumResults) { >> - std::stable_sort(Results, Results + NumResults); >> - >> // Print the results. >> for (unsigned I = 0; I != NumResults; ++I) { >> OS << "COMPLETION: "; >> @@ -662,11 +660,6 @@ >> if (cmp) >> return cmp < 0; >> >> - // If case-insensitive comparison fails, try case-sensitive comparison. >> - cmp = XStr.compare(YStr); >> - if (cmp) >> - return cmp < 0; >> - >> // Non-hidden names precede hidden names. >> if (X.Hidden != Y.Hidden) >> return !X.Hidden; >> @@ -702,7 +695,7 @@ >> unsigned >> NumCandidates) { >> for (unsigned I = 0; I != NumCandidates; ++I) { >> WriteUnsigned(OS, CXCursor_NotImplemented); >> - WriteUnsigned(OS, /*Priority=*/I); >> + WriteUnsigned(OS, /*Priority=*/0); >> WriteUnsigned(OS, /*Availability=*/CXAvailability_Available); >> CodeCompletionString *CCS >> = Candidates[I].CreateSignatureString(CurrentArg, SemaRef); >> >> Modified: cfe/trunk/lib/Sema/SemaCodeComplete.cpp >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaCodeComplete.cpp?rev=112161&r1=112160&r2=112161&view=diff >> ============================================================================== >> --- cfe/trunk/lib/Sema/SemaCodeComplete.cpp (original) >> +++ cfe/trunk/lib/Sema/SemaCodeComplete.cpp Wed Aug 25 22:53:50 2010 >> @@ -2277,6 +2277,8 @@ >> CodeCompletionContext Context, >> CodeCompletionResult *Results, >> unsigned NumResults) { >> + std::stable_sort(Results, Results + NumResults); >> + >> if (CodeCompleter) >> CodeCompleter->ProcessCodeCompleteResults(*S, Context, Results, >> NumResults); >> >> >> Modified: cfe/trunk/tools/c-index-test/c-index-test.c >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/c-index-test/c-index-test.c?rev=112161&r1=112160&r2=112161&view=diff >> ============================================================================== >> --- cfe/trunk/tools/c-index-test/c-index-test.c (original) >> +++ cfe/trunk/tools/c-index-test/c-index-test.c Wed Aug 25 22:53:50 2010 >> @@ -1,7 +1,6 @@ >> /* c-index-test.c */ >> >> #include "clang-c/Index.h" >> -#include <ctype.h> >> #include <stdlib.h> >> #include <stdio.h> >> #include <string.h> >> @@ -904,25 +903,6 @@ >> fprintf(file, "\n"); >> } >> >> -int my_stricmp(const char *s1, const char *s2) { >> - while (*s1 && *s2) { >> - int c1 = tolower(*s1), c2 = tolower(*s2); >> - if (c1 < c2) >> - return -1; >> - else if (c1 > c2) >> - return 1; >> - >> - ++s1; >> - ++s2; >> - } >> - >> - if (*s1) >> - return 1; >> - else if (*s2) >> - return -1; >> - return 0; >> -} >> - >> int perform_code_completion(int argc, const char **argv, int timing_only) { >> const char *input = argv[1]; >> char *filename = 0; >> @@ -978,13 +958,9 @@ >> >> if (results) { >> unsigned i, n = results->NumResults; >> - if (!timing_only) { >> - /* Sort the code-completion results based on the typed text. */ >> - clang_sortCodeCompletionResults(results->Results, >> results->NumResults); >> - >> + if (!timing_only) >> for (i = 0; i != n; ++i) >> print_completion_result(results->Results + i, stdout); >> - } >> n = clang_codeCompleteGetNumDiagnostics(results); >> for (i = 0; i != n; ++i) { >> CXDiagnostic diag = clang_codeCompleteGetDiagnostic(results, i); >> >> Modified: cfe/trunk/tools/libclang/CIndexCodeCompletion.cpp >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/libclang/CIndexCodeCompletion.cpp?rev=112161&r1=112160&r2=112161&view=diff >> ============================================================================== >> --- cfe/trunk/tools/libclang/CIndexCodeCompletion.cpp (original) >> +++ cfe/trunk/tools/libclang/CIndexCodeCompletion.cpp Wed Aug 25 22:53:50 >> 2010 >> @@ -582,8 +582,6 @@ >> AllocatedResults.Results[I].CompletionString = StoredCompletion; >> } >> } >> - >> - // FIXME: Add ProcessOverloadCandidates? >> }; >> } >> >> @@ -786,36 +784,3 @@ >> >> >> } // end extern "C" >> - >> -namespace { >> - struct OrderCompletionResults { >> - bool operator()(const CXCompletionResult &XR, >> - const CXCompletionResult &YR) const { >> - CXStoredCodeCompletionString *X >> - = (CXStoredCodeCompletionString *)XR.CompletionString; >> - CXStoredCodeCompletionString *Y >> - = (CXStoredCodeCompletionString *)YR.CompletionString; >> - >> - const char *XText = X->getTypedText(); >> - const char *YText = Y->getTypedText(); >> - if (!XText || !YText) >> - return XText != 0; >> - >> - int result = llvm::StringRef(XText).compare_lower(YText); >> - if (result < 0) >> - return true; >> - if (result > 0) >> - return false; >> - >> - result = llvm::StringRef(XText).compare(YText); >> - return result; >> - } >> - }; >> -} >> - >> -extern "C" { >> - void clang_sortCodeCompletionResults(CXCompletionResult *Results, >> - unsigned NumResults) { >> - std::stable_sort(Results, Results + NumResults, >> OrderCompletionResults()); >> - } >> -} >> \ No newline at end of file >> >> Modified: cfe/trunk/tools/libclang/libclang.darwin.exports >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/libclang/libclang.darwin.exports?rev=112161&r1=112160&r2=112161&view=diff >> ============================================================================== >> --- cfe/trunk/tools/libclang/libclang.darwin.exports (original) >> +++ cfe/trunk/tools/libclang/libclang.darwin.exports Wed Aug 25 22:53:50 >> 2010 >> @@ -99,6 +99,5 @@ >> _clang_reparseTranslationUnit >> _clang_saveTranslationUnit >> _clang_setUseExternalASTGeneration >> -_clang_sortCodeCompletionResults >> _clang_tokenize >> _clang_visitChildren >> >> Modified: cfe/trunk/tools/libclang/libclang.exports >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/libclang/libclang.exports?rev=112161&r1=112160&r2=112161&view=diff >> ============================================================================== >> --- cfe/trunk/tools/libclang/libclang.exports (original) >> +++ cfe/trunk/tools/libclang/libclang.exports Wed Aug 25 22:53:50 2010 >> @@ -99,6 +99,5 @@ >> clang_reparseTranslationUnit >> clang_saveTranslationUnit >> clang_setUseExternalASTGeneration >> -clang_sortCodeCompletionResults >> clang_tokenize >> clang_visitChildren >> >> >> _______________________________________________ >> cfe-commits mailing list >> [email protected] >> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits >> > _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
