https://github.com/zahiraam created https://github.com/llvm/llvm-project/pull/117769
None >From 27925c327d9f3164e3ba966ffaed5715681480fd Mon Sep 17 00:00:00 2001 From: Zahira Ammarguellat <zahira.ammarguel...@intel.com> Date: Thu, 21 Nov 2024 07:03:46 -0800 Subject: [PATCH 1/3] [NFC] Fix uninitialized pointer field. --- clang-tools-extra/clang-tidy/modernize/UseStdPrintCheck.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clang-tools-extra/clang-tidy/modernize/UseStdPrintCheck.cpp b/clang-tools-extra/clang-tidy/modernize/UseStdPrintCheck.cpp index 9161c0e702a28c..6d87a2fba27dcf 100644 --- a/clang-tools-extra/clang-tidy/modernize/UseStdPrintCheck.cpp +++ b/clang-tools-extra/clang-tidy/modernize/UseStdPrintCheck.cpp @@ -23,7 +23,7 @@ AST_MATCHER(StringLiteral, isOrdinary) { return Node.isOrdinary(); } } // namespace UseStdPrintCheck::UseStdPrintCheck(StringRef Name, ClangTidyContext *Context) - : ClangTidyCheck(Name, Context), + : ClangTidyCheck(Name, Context), PP(PP), StrictMode(Options.getLocalOrGlobal("StrictMode", false)), PrintfLikeFunctions(utils::options::parseStringList( Options.get("PrintfLikeFunctions", ""))), >From 6683cdef8060a68fe837b7d2a07cfbd146610698 Mon Sep 17 00:00:00 2001 From: Zahira Ammarguellat <zahira.ammarguel...@intel.com> Date: Thu, 21 Nov 2024 07:43:19 -0800 Subject: [PATCH 2/3] Addressed review comments. --- clang-tools-extra/clang-tidy/modernize/UseStdPrintCheck.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/clang-tools-extra/clang-tidy/modernize/UseStdPrintCheck.cpp b/clang-tools-extra/clang-tidy/modernize/UseStdPrintCheck.cpp index 6d87a2fba27dcf..4f240982250741 100644 --- a/clang-tools-extra/clang-tidy/modernize/UseStdPrintCheck.cpp +++ b/clang-tools-extra/clang-tidy/modernize/UseStdPrintCheck.cpp @@ -23,7 +23,7 @@ AST_MATCHER(StringLiteral, isOrdinary) { return Node.isOrdinary(); } } // namespace UseStdPrintCheck::UseStdPrintCheck(StringRef Name, ClangTidyContext *Context) - : ClangTidyCheck(Name, Context), PP(PP), + : ClangTidyCheck(Name, Context), PP(nullptr), StrictMode(Options.getLocalOrGlobal("StrictMode", false)), PrintfLikeFunctions(utils::options::parseStringList( Options.get("PrintfLikeFunctions", ""))), @@ -131,6 +131,7 @@ void UseStdPrintCheck::check(const MatchFinder::MatchResult &Result) { utils::FormatStringConverter::Configuration ConverterConfig; ConverterConfig.StrictMode = StrictMode; ConverterConfig.AllowTrailingNewlineRemoval = true; + assert(PP && "Preprocessor should be set by registerPPCallbacks"); utils::FormatStringConverter Converter( Result.Context, Printf, FormatArgOffset, ConverterConfig, getLangOpts(), *Result.SourceManager, *PP); >From 3daf0ab3dbecc5c598031ed815a2f6ea3e0ab4fe Mon Sep 17 00:00:00 2001 From: Zahira Ammarguellat <zahira.ammarguel...@intel.com> Date: Tue, 26 Nov 2024 11:09:30 -0800 Subject: [PATCH 3/3] Fix potential data race condition. --- clang-tools-extra/clangd/TUScheduler.cpp | 4 ++++ clang-tools-extra/clangd/index/BackgroundRebuild.cpp | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/clang-tools-extra/clangd/TUScheduler.cpp b/clang-tools-extra/clangd/TUScheduler.cpp index 71548b59cc3088..7a05a3d4613708 100644 --- a/clang-tools-extra/clangd/TUScheduler.cpp +++ b/clang-tools-extra/clangd/TUScheduler.cpp @@ -501,6 +501,8 @@ class PreambleThread { } { + // Add a lock guard to protect the critical section. + std::lock_guard<std::mutex> Lock(Mutex); WithContext Guard(std::move(CurrentReq->Ctx)); // Note that we don't make use of the ContextProvider here. // Preamble tasks are always scheduled by ASTWorker tasks, and we @@ -1329,6 +1331,8 @@ void ASTWorker::startTask(llvm::StringRef Name, std::optional<UpdateType> Update, TUScheduler::ASTActionInvalidation Invalidation) { if (RunSync) { + // Add a lock guard to protect the critical section. + std::lock_guard<std::mutex> Lock(Mutex); assert(!Done && "running a task after stop()"); runTask(Name, Task); return; diff --git a/clang-tools-extra/clangd/index/BackgroundRebuild.cpp b/clang-tools-extra/clangd/index/BackgroundRebuild.cpp index 79383be012f836..b8677a32741b2f 100644 --- a/clang-tools-extra/clangd/index/BackgroundRebuild.cpp +++ b/clang-tools-extra/clangd/index/BackgroundRebuild.cpp @@ -34,6 +34,8 @@ bool BackgroundIndexRebuilder::enoughTUsToRebuild() const { void BackgroundIndexRebuilder::indexedTU() { maybeRebuild("after indexing enough files", [this] { + // Add a lock guard to protect the critical section + std::lock_guard<std::mutex> Lock(Mu); ++IndexedTUs; if (Loading) return false; // rebuild once loading finishes @@ -64,6 +66,8 @@ void BackgroundIndexRebuilder::loadedShard(size_t ShardCount) { } void BackgroundIndexRebuilder::doneLoading() { maybeRebuild("after loading index from disk", [this] { + // Add a lock guard to protect the critical section. + std::lock_guard<std::mutex> Lock(Mu); assert(Loading); --Loading; if (Loading) // was loading multiple batches concurrently _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits