[llvm-commits] [compiler-rt] r172385 - in /compiler-rt/trunk/lib/sanitizer_common: sanitizer_linux.cc sanitizer_mac.cc sanitizer_mutex.h

Dmitry Vyukov dvyukov at google.com
Mon Jan 14 00:01:58 PST 2013


Author: dvyukov
Date: Mon Jan 14 02:01:58 2013
New Revision: 172385

URL: http://llvm.org/viewvc/llvm-project?rev=172385&view=rev
Log:
asan: fix compilation errors in mutex

Modified:
    compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc
    compiler-rt/trunk/lib/sanitizer_common/sanitizer_mac.cc
    compiler-rt/trunk/lib/sanitizer_common/sanitizer_mutex.h

Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc?rev=172385&r1=172384&r2=172385&view=diff
==============================================================================
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc (original)
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc Mon Jan 14 02:01:58 2013
@@ -457,10 +457,7 @@
 void BlockingMutex::Unlock() {
   atomic_uint32_t *m = reinterpret_cast<atomic_uint32_t *>(&opaque_storage_);
   u32 v = atomic_exchange(m, MtxUnlocked, memory_order_relaxed);
-  if (v == MtxUnlocked) {
-    Printf("FATAL: unlock of unlocked mutex\n");
-    Die();
-  }
+  CHECK_NE(v, MtxUnlocked);
   if (v == MtxSleeping)
     syscall(__NR_futex, m, FUTEX_WAKE_PRIVATE, 1, 0, 0, 0);
 }

Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_mac.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_mac.cc?rev=172385&r1=172384&r2=172385&view=diff
==============================================================================
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_mac.cc (original)
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_mac.cc Mon Jan 14 02:01:58 2013
@@ -30,6 +30,7 @@
 #include <sys/stat.h>
 #include <sys/types.h>
 #include <unistd.h>
+#include <libkern/OSAtomic.h>
 
 namespace __sanitizer {
 

Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_mutex.h
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_mutex.h?rev=172385&r1=172384&r2=172385&view=diff
==============================================================================
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_mutex.h (original)
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_mutex.h Mon Jan 14 02:01:58 2013
@@ -74,6 +74,7 @@
   void Unlock();
  private:
   uptr opaque_storage_[10];
+  uptr owner_;  // for debugging
 };
 
 template<typename MutexType>





More information about the llvm-commits mailing list