From 240a4fb95d5b843826081807019cd405aa654e2b Mon Sep 17 00:00:00 2001 From: fanquake Date: Fri, 30 May 2025 16:51:49 +0100 Subject: [PATCH 1/2] Squashed 'src/leveldb/' changes from 113db4962b..aba469ad6a aba469ad6a Merge bitcoin-core/leveldb-subtree#54: Fix clang thread-safety-pointer warnings 7daf4ed575 Fix clang thread-safety-pointer warnings git-subtree-dir: src/leveldb git-subtree-split: aba469ad6a808da8381edf83a99e5ece18958b31 --- util/cache.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/util/cache.cc b/util/cache.cc index 12de306cad2..2d4433fcc68 100644 --- a/util/cache.cc +++ b/util/cache.cc @@ -171,8 +171,8 @@ class LRUCache { private: void LRU_Remove(LRUHandle* e); void LRU_Append(LRUHandle* list, LRUHandle* e); - void Ref(LRUHandle* e); - void Unref(LRUHandle* e); + void Ref(LRUHandle* e) EXCLUSIVE_LOCKS_REQUIRED(mutex_); + void Unref(LRUHandle* e) EXCLUSIVE_LOCKS_REQUIRED(mutex_); bool FinishErase(LRUHandle* e) EXCLUSIVE_LOCKS_REQUIRED(mutex_); // Initialized before use. From 83bfe1485c37d407de7eed11b8ad769a05f78b66 Mon Sep 17 00:00:00 2001 From: fanquake Date: Fri, 30 May 2025 16:52:25 +0100 Subject: [PATCH 2/2] build: add -Wthread-safety-pointer This will become available in Clang 21: > ThreadSafetyAnalysis now supports -Wthread-safety-pointer, which > enables warning on passing or returning pointers to guarded variables > as function arguments or return value respectively. Note that > ThreadSafetyAnalysis still does not perform alias analysis. The > feature will be default-enabled with -Wthread-safety in a future release. See https://github.com/llvm/llvm-project/blob/main/clang/docs/ReleaseNotes.rst. --- CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 89aeb987d3d..f7241020815 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -443,6 +443,7 @@ else() try_append_cxx_flags("-Wvla" TARGET warn_interface SKIP_LINK) try_append_cxx_flags("-Wshadow-field" TARGET warn_interface SKIP_LINK) try_append_cxx_flags("-Wthread-safety" TARGET warn_interface SKIP_LINK) + try_append_cxx_flags("-Wthread-safety-pointer" TARGET warn_interface SKIP_LINK) try_append_cxx_flags("-Wloop-analysis" TARGET warn_interface SKIP_LINK) try_append_cxx_flags("-Wredundant-decls" TARGET warn_interface SKIP_LINK) try_append_cxx_flags("-Wunused-member-function" TARGET warn_interface SKIP_LINK)