summaryrefslogtreecommitdiffstats
path: root/libcxx
diff options
context:
space:
mode:
authorEric Fiselier <eric@efcs.ca>2015-10-14 08:36:22 +0000
committerEric Fiselier <eric@efcs.ca>2015-10-14 08:36:22 +0000
commitd97b084bb764b095dd80574f5771cace61f8acbb (patch)
treef855d8024eb3e13324136c1584bfbff515e97cfb /libcxx
parent767828b7bb546a229254bf1346c10655a795e2fc (diff)
downloadbcm5719-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/atomic11
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:
OpenPOWER on IntegriCloud