[compiler-rt] 74b8fca - sanitizer_common: revert StaticSpinMutex ctor

Dmitry Vyukov via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 21 00:22:15 PDT 2021


Author: Dmitry Vyukov
Date: 2021-07-21T09:22:09+02:00
New Revision: 74b8fca9e4c609b4e9890b2daf6e2ff052d9dbd9

URL: https://github.com/llvm/llvm-project/commit/74b8fca9e4c609b4e9890b2daf6e2ff052d9dbd9
DIFF: https://github.com/llvm/llvm-project/commit/74b8fca9e4c609b4e9890b2daf6e2ff052d9dbd9.diff

LOG: sanitizer_common: revert StaticSpinMutex ctor

Patch "sanitizer_common: modernize SpinMutex" added default
ctor to StaticSpinMutex. But it broke some gcc bots with:

scudo_tsd_exclusive.cpp:25:22: error: non-local variable
‘__scudo::TSD’ declared ‘__thread’ needs dynamic initialization

https://lab.llvm.org/buildbot/#/builders/105/builds/12649

Unfortunatly none of empty ctor {}, no ctor, default constexpr ctor
work for different reasons. So remove StaticSpinMutex ctor
entirely and move deleted copy ctor back to SpinMutex.

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

Added: 
    

Modified: 
    compiler-rt/lib/sanitizer_common/sanitizer_mutex.h

Removed: 
    


################################################################################
diff  --git a/compiler-rt/lib/sanitizer_common/sanitizer_mutex.h b/compiler-rt/lib/sanitizer_common/sanitizer_mutex.h
index f146d4e17fe01..c01e3adbf2fb5 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_mutex.h
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_mutex.h
@@ -22,8 +22,6 @@ namespace __sanitizer {
 
 class MUTEX StaticSpinMutex {
  public:
-  StaticSpinMutex() = default;
-
   void Init() {
     atomic_store(&state_, 0, memory_order_relaxed);
   }
@@ -48,9 +46,6 @@ class MUTEX StaticSpinMutex {
   atomic_uint8_t state_;
 
   void LockSlow();
-
-  StaticSpinMutex(const StaticSpinMutex &) = delete;
-  void operator=(const StaticSpinMutex &) = delete;
 };
 
 class MUTEX SpinMutex : public StaticSpinMutex {
@@ -58,6 +53,9 @@ class MUTEX SpinMutex : public StaticSpinMutex {
   SpinMutex() {
     Init();
   }
+
+  SpinMutex(const SpinMutex &) = delete;
+  void operator=(const SpinMutex &) = delete;
 };
 
 // Semaphore provides an OS-dependent way to park/unpark threads.


        


More information about the llvm-commits mailing list