Now with working on Leopard!
authorOwen Anderson <resistor@mac.com>
Fri, 15 May 2009 00:01:40 +0000 (00:01 +0000)
committerOwen Anderson <resistor@mac.com>
Fri, 15 May 2009 00:01:40 +0000 (00:01 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71819 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Support/ManagedStatic.h
include/llvm/System/Atomic.h

index 4c1271cec7453272c9ea3ffaaa32b9303f67449c..e6384c72135b6b36cde9188db14af9884945aab3 100644 (file)
@@ -28,7 +28,7 @@ void object_deleter(void *Ptr) {
 /// ManagedStaticBase - Common base class for ManagedStatic instances.
 class ManagedStaticBase {
 protected:
-  sys::cas_flag InitFlag;
+  mutable sys::cas_flag InitFlag;
   
   // This should only be used as a static variable, which guarantees that this
   // will be zero initialized.
index 2f95e0f7fbbd8e31075f1bc64663e53d17fe5cc8..c6d59531917e5347db3c6cb465067ae6fcdf8731 100644 (file)
@@ -55,10 +55,10 @@ namespace llvm {
       OSMemoryBarrier();
     }
     
-    typedef volatile UInt32 cas_flag;
+    typedef volatile int32_t cas_flag;
     inline cas_flag CompareAndSwap(cas_flag* dest, cas_flag exc, cas_flag c) {
       cas_flag old = *dest;
-      OSCompareAndSwap(c, exc, dest);
+      OSAtomicCompareAndSwap32(c, exc, dest);
       return old;
     }
 #elif defined(LLVM_ON_WIN32)