+++ /dev/null
-//$$CDS-header$$
-
-#ifndef __CDS_COMPILER_CLANG_CXX11_ATOMIC_PREPATCHES_H
-#define __CDS_COMPILER_CLANG_CXX11_ATOMIC_PREPATCHES_H
-
-#if CDS_CXX11_ATOMIC_SUPPORT == 1
-# if CDS_COMPILER_VERSION == 30100
- // Clang 3.1 workaround
- // Clang 3.1 does not support __atomic_is_lock_free intrinsic function from GCC
- template <typename T>
- static inline bool __atomic_is_lock_free( size_t, T* ) CDS_NOEXCEPT
- {
- return sizeof(T) <= 8;
- }
-
- // clang does not implement GCC 4.7 low-level __atomic_xxx intrinsics
- // See http://comments.gmane.org/gmane.comp.compilers.clang.devel/20093
-
- // In Clang 3.1 the following workaround results in
- // Assertion `Proto && "Functions without a prototype cannot be overloaded"' failed
- // and clang crashed
- // So, we cannot use Clang with GCC 4.7 atomics
-/*
- template <typename T>
- static inline void __atomic_load(T *ptr, T *ret, int memmodel)
- {
- *ret = __atomic_load( ptr, memmodel );
- }
-
- template <typename T>
- static inline void __atomic_store(T *ptr, T *val, int memmodel)
- {
- __atomic_store( ptr, *val, memmodel );
- }
-
- template <typename T>
- static inline void __atomic_exchange(T *ptr, T *val, T *ret, int memmodel)
- {
- *ret = __atomic_exchange( ptr, *val, memmodel );
- }
-
- template <typename T>
- static inline bool __atomic_compare_exchange(T *ptr, T *expected, T *desired, bool weak, int success_memmodel, int failure_memmodel)
- {
- if ( weak )
- return __atomic_compare_exchange_weak( ptr, expected, *desired, success_memmodel, failure_memmodel );
- else
- return __atomic_compare_exchange_strong( ptr, expected, *desired, success_memmodel, failure_memmodel );
- }
-*/
-# endif
-#endif
-
-#endif // #ifndef __CDS_COMPILER_CLANG_CXX11_ATOMIC_PREPATCHES_H
+++ /dev/null
-//$$CDS-header$$
-
-#ifndef __CDS_COMPILER_CXX11_ATOMIC_PATCHES_H
-#define __CDS_COMPILER_CXX11_ATOMIC_PATCHES_H
-
-#if CDS_COMPILER == CDS_COMPILER_GCC
-# include <cds/compiler/gcc/cxx11_atomic_patches.h>
-#elif CDS_COMPILER == CDS_COMPILER_INTEL && CDS_OS_INTERFACE == CDS_OSI_WINDOWS
-# include <cds/compiler/icl/cxx11_atomic_patches_win.h>
-#endif
-
-
-#endif // #ifndef __CDS_COMPILER_CXX11_ATOMIC_PATCHES_H
+++ /dev/null
-//$$CDS-header$$
-
-#ifndef __CDS_COMPILER_CXX11_ATOMIC_PREPATCHES_H
-#define __CDS_COMPILER_CXX11_ATOMIC_PREPATCHES_H
-
-#if CDS_COMPILER == CDS_COMPILER_CLANG
-# include <cds/compiler/clang/cxx11_atomic_prepatches.h>
-#endif
-
-#endif // #ifndef __CDS_COMPILER_CXX11_ATOMIC_PREPATCHES_H
+++ /dev/null
-//$$CDS-header$$
-
-#ifndef __CDS_COMPILER_GCC_CXX11_ATOMIC_PATCHES_H
-#define __CDS_COMPILER_GCC_CXX11_ATOMIC_PATCHES_H
-
-#endif // #ifndef __CDS_COMPILER_GCC_CXX11_ATOMIC_PATCHES_H
+++ /dev/null
-//$$CDS-header$$
-
-#ifndef __CDS_COMPILER_ICL_CXX11_ATOMIC_PATCHES_WIN_H
-#define __CDS_COMPILER_ICL_CXX11_ATOMIC_PATCHES_WIN_H
-
-#endif // #ifndef __CDS_COMPILER_ICL_CXX11_ATOMIC_PATCHES_WIN_H
# define CDS_CXX11_ATOMIC_END_NAMESPACE }}
#else
// Compiler provided C++11 atomic
-# include <cds/compiler/cxx11_atomic_prepatches.h>
# include <atomic>
# define CDS_ATOMIC std
# define CDS_CXX11_ATOMIC_BEGIN_NAMESPACE namespace std {
# define CDS_CXX11_ATOMIC_END_NAMESPACE }
-# include <cds/compiler/cxx11_atomic_patches.h>
-#else
#endif
//@endcond
<ClInclude Include="..\..\..\cds\algo\elimination_tls.h" />\r
<ClInclude Include="..\..\..\cds\algo\flat_combining.h" />\r
<ClInclude Include="..\..\..\cds\algo\int_algo.h" />\r
- <ClInclude Include="..\..\..\cds\compiler\clang\cxx11_atomic_prepatches.h" />\r
<ClInclude Include="..\..\..\cds\compiler\clang\defs.h" />\r
<ClInclude Include="..\..\..\cds\compiler\cxx11_atomic.h" />\r
- <ClInclude Include="..\..\..\cds\compiler\cxx11_atomic_patches.h" />\r
- <ClInclude Include="..\..\..\cds\compiler\cxx11_atomic_prepatches.h" />\r
<ClInclude Include="..\..\..\cds\compiler\gcc\amd64\cxx11_atomic.h" />\r
<ClInclude Include="..\..\..\cds\compiler\gcc\compiler_macro.h" />\r
<ClInclude Include="..\..\..\cds\compiler\gcc\cxx11_atomic_patches.h" />\r
<ClInclude Include="..\..\..\cds\compiler\gcc\sparc\cxx11_atomic.h" />\r
<ClInclude Include="..\..\..\cds\compiler\gcc\x86\cxx11_atomic.h" />\r
<ClInclude Include="..\..\..\cds\compiler\icl\compiler_barriers.h" />\r
- <ClInclude Include="..\..\..\cds\compiler\icl\cxx11_atomic_patches_win.h" />\r
<ClInclude Include="..\..\..\cds\compiler\icl\defs.h" />\r
<ClInclude Include="..\..\..\cds\compiler\vc\amd64\cxx11_atomic.h" />\r
<ClInclude Include="..\..\..\cds\compiler\vc\x86\cxx11_atomic.h" />\r
<ClInclude Include="..\..\..\cds\compiler\gcc\ia64\cxx11_atomic.h">\r
<Filter>Header Files\cds\compiler\gcc\ia64</Filter>\r
</ClInclude>\r
- <ClInclude Include="..\..\..\cds\compiler\cxx11_atomic_patches.h">\r
- <Filter>Header Files\cds\compiler</Filter>\r
- </ClInclude>\r
<ClInclude Include="..\..\..\cds\compiler\gcc\cxx11_atomic_patches.h">\r
<Filter>Header Files\cds\compiler\gcc</Filter>\r
</ClInclude>\r
<ClInclude Include="..\..\..\cds\container\basket_queue.h">\r
<Filter>Header Files\cds\container</Filter>\r
</ClInclude>\r
- <ClInclude Include="..\..\..\cds\compiler\cxx11_atomic_prepatches.h">\r
- <Filter>Header Files\cds\compiler</Filter>\r
- </ClInclude>\r
- <ClInclude Include="..\..\..\cds\compiler\clang\cxx11_atomic_prepatches.h">\r
- <Filter>Header Files\cds\compiler\clang</Filter>\r
- </ClInclude>\r
<ClInclude Include="..\..\..\cds\intrusive\deque_stat.h">\r
<Filter>Header Files\cds\intrusive</Filter>\r
</ClInclude>\r
<ClInclude Include="..\..\..\cds\compiler\icl\compiler_barriers.h">\r
<Filter>Header Files\cds\compiler\icl</Filter>\r
</ClInclude>\r
- <ClInclude Include="..\..\..\cds\compiler\icl\cxx11_atomic_patches_win.h">\r
- <Filter>Header Files\cds\compiler\icl</Filter>\r
- </ClInclude>\r
<ClInclude Include="..\..\..\cds\compiler\icl\defs.h">\r
<Filter>Header Files\cds\compiler\icl</Filter>\r
</ClInclude>\r