Chris@16
|
1 #ifndef BOOST_SMART_PTR_DETAIL_SP_HAS_SYNC_HPP_INCLUDED
|
Chris@16
|
2 #define BOOST_SMART_PTR_DETAIL_SP_HAS_SYNC_HPP_INCLUDED
|
Chris@16
|
3
|
Chris@16
|
4 // MS compatible compilers support #pragma once
|
Chris@16
|
5
|
Chris@16
|
6 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
|
Chris@16
|
7 # pragma once
|
Chris@16
|
8 #endif
|
Chris@16
|
9
|
Chris@16
|
10 //
|
Chris@16
|
11 // boost/smart_ptr/detail/sp_has_sync.hpp
|
Chris@16
|
12 //
|
Chris@16
|
13 // Copyright (c) 2008, 2009 Peter Dimov
|
Chris@16
|
14 //
|
Chris@16
|
15 // Distributed under the Boost Software License, Version 1.0.
|
Chris@16
|
16 // See accompanying file LICENSE_1_0.txt or copy at
|
Chris@16
|
17 // http://www.boost.org/LICENSE_1_0.txt)
|
Chris@16
|
18 //
|
Chris@16
|
19 // Defines the BOOST_SP_HAS_SYNC macro if the __sync_* intrinsics
|
Chris@16
|
20 // are available.
|
Chris@16
|
21 //
|
Chris@16
|
22
|
Chris@16
|
23 #ifndef BOOST_SP_NO_SYNC
|
Chris@16
|
24
|
Chris@16
|
25 #if defined( __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 )
|
Chris@16
|
26
|
Chris@16
|
27 # define BOOST_SP_HAS_SYNC
|
Chris@16
|
28
|
Chris@16
|
29 #elif defined( __IBMCPP__ ) && ( __IBMCPP__ >= 1210 )
|
Chris@16
|
30
|
Chris@16
|
31 # define BOOST_SP_HAS_SYNC
|
Chris@16
|
32
|
Chris@16
|
33 #elif defined( __GNUC__ ) && ( __GNUC__ * 100 + __GNUC_MINOR__ >= 401 )
|
Chris@16
|
34
|
Chris@16
|
35 #define BOOST_SP_HAS_SYNC
|
Chris@16
|
36
|
Chris@16
|
37 #if defined( __arm__ ) || defined( __armel__ )
|
Chris@16
|
38 #undef BOOST_SP_HAS_SYNC
|
Chris@16
|
39 #endif
|
Chris@16
|
40
|
Chris@16
|
41 #if defined( __hppa ) || defined( __hppa__ )
|
Chris@16
|
42 #undef BOOST_SP_HAS_SYNC
|
Chris@16
|
43 #endif
|
Chris@16
|
44
|
Chris@16
|
45 #if defined( __m68k__ )
|
Chris@16
|
46 #undef BOOST_SP_HAS_SYNC
|
Chris@16
|
47 #endif
|
Chris@16
|
48
|
Chris@16
|
49 #if defined( __sh__ )
|
Chris@16
|
50 #undef BOOST_SP_HAS_SYNC
|
Chris@16
|
51 #endif
|
Chris@16
|
52
|
Chris@16
|
53 #if defined( __sparc__ )
|
Chris@16
|
54 #undef BOOST_SP_HAS_SYNC
|
Chris@16
|
55 #endif
|
Chris@16
|
56
|
Chris@16
|
57 #if defined( __INTEL_COMPILER ) && !defined( __ia64__ ) && ( __INTEL_COMPILER < 1110 )
|
Chris@16
|
58 #undef BOOST_SP_HAS_SYNC
|
Chris@16
|
59 #endif
|
Chris@16
|
60
|
Chris@16
|
61 #if defined(__PATHSCALE__) && ((__PATHCC__ == 4) && (__PATHCC_MINOR__ < 9))
|
Chris@16
|
62 #undef BOOST_SP_HAS_SYNC
|
Chris@16
|
63 #endif
|
Chris@16
|
64
|
Chris@16
|
65 #endif
|
Chris@16
|
66
|
Chris@16
|
67 #endif // #ifndef BOOST_SP_NO_SYNC
|
Chris@16
|
68
|
Chris@16
|
69 #endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_HAS_SYNC_HPP_INCLUDED
|