mirror of git://gcc.gnu.org/git/gcc.git
atomic_base.h (__calculate_memory_order): Rename to...
* include/bits/atomic_base.h (__calculate_memory_order): Rename to... (__cmpexch_failure_order): This, and rewrite as constexpr function. (compare_exchange_strong, compare_exchange_weak): Use it. * include/std/atomic (compare_exchange_strong, compare_exchange_weak): Likewise. From-SVN: r182105
This commit is contained in:
parent
908b951938
commit
3d0c32fe56
|
@ -1,3 +1,11 @@
|
||||||
|
2011-12-08 Jonathan Wakely <jwakely.gcc@gmail.com>
|
||||||
|
|
||||||
|
* include/bits/atomic_base.h (__calculate_memory_order): Rename to...
|
||||||
|
(__cmpexch_failure_order): This, and rewrite as constexpr function.
|
||||||
|
(compare_exchange_strong, compare_exchange_weak): Use it.
|
||||||
|
* include/std/atomic (compare_exchange_strong, compare_exchange_weak):
|
||||||
|
Likewise.
|
||||||
|
|
||||||
2011-12-07 François Dumont <fdumont@gcc.gnu.org>
|
2011-12-07 François Dumont <fdumont@gcc.gnu.org>
|
||||||
|
|
||||||
PR libstdc++/51386
|
PR libstdc++/51386
|
||||||
|
|
|
@ -59,14 +59,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
memory_order_seq_cst
|
memory_order_seq_cst
|
||||||
} memory_order;
|
} memory_order;
|
||||||
|
|
||||||
inline memory_order
|
// Drop release ordering as per [atomics.types.operations.req]/21
|
||||||
__calculate_memory_order(memory_order __m) noexcept
|
constexpr memory_order
|
||||||
|
__cmpexch_failure_order(memory_order __m) noexcept
|
||||||
{
|
{
|
||||||
const bool __cond1 = __m == memory_order_release;
|
return __m == memory_order_acq_rel ? memory_order_acquire
|
||||||
const bool __cond2 = __m == memory_order_acq_rel;
|
: __m == memory_order_release ? memory_order_relaxed : __m;
|
||||||
memory_order __mo1(__cond1 ? memory_order_relaxed : __m);
|
|
||||||
memory_order __mo2(__cond2 ? memory_order_acquire : __mo1);
|
|
||||||
return __mo2;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void
|
inline void
|
||||||
|
@ -505,7 +503,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
memory_order __m = memory_order_seq_cst) noexcept
|
memory_order __m = memory_order_seq_cst) noexcept
|
||||||
{
|
{
|
||||||
return compare_exchange_weak(__i1, __i2, __m,
|
return compare_exchange_weak(__i1, __i2, __m,
|
||||||
__calculate_memory_order(__m));
|
__cmpexch_failure_order(__m));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
|
@ -513,7 +511,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
memory_order __m = memory_order_seq_cst) volatile noexcept
|
memory_order __m = memory_order_seq_cst) volatile noexcept
|
||||||
{
|
{
|
||||||
return compare_exchange_weak(__i1, __i2, __m,
|
return compare_exchange_weak(__i1, __i2, __m,
|
||||||
__calculate_memory_order(__m));
|
__cmpexch_failure_order(__m));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
|
@ -544,7 +542,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
memory_order __m = memory_order_seq_cst) noexcept
|
memory_order __m = memory_order_seq_cst) noexcept
|
||||||
{
|
{
|
||||||
return compare_exchange_strong(__i1, __i2, __m,
|
return compare_exchange_strong(__i1, __i2, __m,
|
||||||
__calculate_memory_order(__m));
|
__cmpexch_failure_order(__m));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
|
@ -552,7 +550,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
memory_order __m = memory_order_seq_cst) volatile noexcept
|
memory_order __m = memory_order_seq_cst) volatile noexcept
|
||||||
{
|
{
|
||||||
return compare_exchange_strong(__i1, __i2, __m,
|
return compare_exchange_strong(__i1, __i2, __m,
|
||||||
__calculate_memory_order(__m));
|
__cmpexch_failure_order(__m));
|
||||||
}
|
}
|
||||||
|
|
||||||
__int_type
|
__int_type
|
||||||
|
|
|
@ -408,7 +408,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
memory_order __m = memory_order_seq_cst) noexcept
|
memory_order __m = memory_order_seq_cst) noexcept
|
||||||
{
|
{
|
||||||
return compare_exchange_weak(__p1, __p2, __m,
|
return compare_exchange_weak(__p1, __p2, __m,
|
||||||
__calculate_memory_order(__m));
|
__cmpexch_failure_order(__m));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
|
@ -416,7 +416,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
memory_order __m = memory_order_seq_cst) volatile noexcept
|
memory_order __m = memory_order_seq_cst) volatile noexcept
|
||||||
{
|
{
|
||||||
return compare_exchange_weak(__p1, __p2, __m,
|
return compare_exchange_weak(__p1, __p2, __m,
|
||||||
__calculate_memory_order(__m));
|
__cmpexch_failure_order(__m));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
|
@ -435,7 +435,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
memory_order __m = memory_order_seq_cst) noexcept
|
memory_order __m = memory_order_seq_cst) noexcept
|
||||||
{
|
{
|
||||||
return _M_b.compare_exchange_strong(__p1, __p2, __m,
|
return _M_b.compare_exchange_strong(__p1, __p2, __m,
|
||||||
__calculate_memory_order(__m));
|
__cmpexch_failure_order(__m));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
|
@ -443,7 +443,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
memory_order __m = memory_order_seq_cst) volatile noexcept
|
memory_order __m = memory_order_seq_cst) volatile noexcept
|
||||||
{
|
{
|
||||||
return _M_b.compare_exchange_strong(__p1, __p2, __m,
|
return _M_b.compare_exchange_strong(__p1, __p2, __m,
|
||||||
__calculate_memory_order(__m));
|
__cmpexch_failure_order(__m));
|
||||||
}
|
}
|
||||||
|
|
||||||
__pointer_type
|
__pointer_type
|
||||||
|
|
Loading…
Reference in New Issue