Work around MSVC bug in IntrusiveRefCntPtr.h
authorHans Wennborg <hans@hanshq.net>
Wed, 5 Mar 2014 16:26:04 +0000 (16:26 +0000)
committerHans Wennborg <hans@hanshq.net>
Wed, 5 Mar 2014 16:26:04 +0000 (16:26 +0000)
The build was failing with:

  error C2664: 'std::atomic_int::atomic_int(const std::atomic_int &)' : cannot convert argument 1 from 'int' to 'const std::atomic_int &'

Apparently "std::atomic_int x(0)" doesn't work, but "std::atomic<int> x(0)"
does.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202988 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/ADT/IntrusiveRefCntPtr.h

index aa7ccdcf9c7fb35e74e18067c9f9990b9d474bbe..c46ce9a1598787b6944ea5d7f7e426384edacbda 100644 (file)
@@ -99,7 +99,7 @@ namespace llvm {
 /// management of reference counts.
 template <class Derived>
 class ThreadSafeRefCountedBase {
-  mutable std::atomic_int RefCount;
+  mutable std::atomic<int> RefCount;
 
 protected:
   ThreadSafeRefCountedBase() : RefCount(0) {}