Author: Sam McCall Date: 2020-12-23T22:42:45+01:00 New Revision: 74b3acefc7b6355e89bb9b09dc88a5948f65c342
URL: https://github.com/llvm/llvm-project/commit/74b3acefc7b6355e89bb9b09dc88a5948f65c342 DIFF: https://github.com/llvm/llvm-project/commit/74b3acefc7b6355e89bb9b09dc88a5948f65c342.diff LOG: [clangd] Fix case mismatch crash on in CDB on windows after 92dd077af1ff8 See https://github.com/clangd/clangd/issues/631 Added: Modified: clang-tools-extra/clangd/GlobalCompilationDatabase.cpp Removed: ################################################################################ diff --git a/clang-tools-extra/clangd/GlobalCompilationDatabase.cpp b/clang-tools-extra/clangd/GlobalCompilationDatabase.cpp index 41b549cefc7c..86375fa11d3b 100644 --- a/clang-tools-extra/clangd/GlobalCompilationDatabase.cpp +++ b/clang-tools-extra/clangd/GlobalCompilationDatabase.cpp @@ -511,11 +511,14 @@ void DirectoryBasedGlobalCompilationDatabase::broadcastCDB( // Given that we know that CDBs have been moved/generated, don't trust caches. // (This should be rare, so it's OK to add a little latency). constexpr auto IgnoreCache = std::chrono::steady_clock::time_point::max(); - for (DirectoryCache *Dir : getDirectoryCaches(FileAncestors)) { + auto DirectoryCaches = getDirectoryCaches(FileAncestors); + assert(DirectoryCaches.size() == FileAncestors.size()); + for (unsigned I = 0; I < DirectoryCaches.size(); ++I) { bool ShouldBroadcast = false; - if (Dir->get(Opts.TFS, ShouldBroadcast, /*FreshTime=*/IgnoreCache, - /*FreshTimeMissing=*/IgnoreCache)) - DirectoryHasCDB.find(Dir->Path)->setValue(true); + if (DirectoryCaches[I]->get(Opts.TFS, ShouldBroadcast, + /*FreshTime=*/IgnoreCache, + /*FreshTimeMissing=*/IgnoreCache)) + DirectoryHasCDB.find(FileAncestors[I])->setValue(true); } std::vector<std::string> GovernedFiles; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits