diff options
author | Eric Fiselier <eric@efcs.ca> | 2015-10-14 08:36:22 +0000 |
---|---|---|
committer | Eric Fiselier <eric@efcs.ca> | 2015-10-14 08:36:22 +0000 |
commit | d97b084bb764b095dd80574f5771cace61f8acbb (patch) | |
tree | f855d8024eb3e13324136c1584bfbff515e97cfb /libcxx | |
parent | 767828b7bb546a229254bf1346c10655a795e2fc (diff) | |
download | bcm5719-llvm-d97b084bb764b095dd80574f5771cace61f8acbb.tar.gz bcm5719-llvm-d97b084bb764b095dd80574f5771cace61f8acbb.zip |
Fix GCC atomic implementation in C++03
llvm-svn: 250279
Diffstat (limited to 'libcxx')
-rw-r--r-- | libcxx/include/atomic | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/libcxx/include/atomic b/libcxx/include/atomic index 13965fbdd2c..b5d5a27b041 100644 --- a/libcxx/include/atomic +++ b/libcxx/include/atomic @@ -552,7 +552,12 @@ typedef enum memory_order namespace __gcc_atomic { template <typename _Tp> struct __gcc_atomic_t { - __gcc_atomic_t() _NOEXCEPT {} + _LIBCPP_INLINE_VISIBILITY +#ifndef _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS + __gcc_atomic_t() _NOEXCEPT = default; +#else + __gcc_atomic_t() _NOEXCEPT : __a_value() {} +#endif // _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS _LIBCPP_CONSTEXPR explicit __gcc_atomic_t(_Tp value) _NOEXCEPT : __a_value(value) {} _Tp __a_value; @@ -573,7 +578,7 @@ struct __can_assign { sizeof(__test_atomic_assignable<_Tp, _Td>(1)) == sizeof(char); }; -static inline constexpr int __to_gcc_order(memory_order __order) { +static inline _LIBCPP_CONSTEXPR int __to_gcc_order(memory_order __order) { // Avoid switch statement to make this a constexpr. return __order == memory_order_relaxed ? __ATOMIC_RELAXED: (__order == memory_order_acquire ? __ATOMIC_ACQUIRE: @@ -583,7 +588,7 @@ static inline constexpr int __to_gcc_order(memory_order __order) { __ATOMIC_CONSUME)))); } -static inline constexpr int __to_gcc_failure_order(memory_order __order) { +static inline _LIBCPP_CONSTEXPR int __to_gcc_failure_order(memory_order __order) { // Avoid switch statement to make this a constexpr. return __order == memory_order_relaxed ? __ATOMIC_RELAXED: (__order == memory_order_acquire ? __ATOMIC_ACQUIRE: |