diff options
| author | froydnj <froydnj@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-07-29 17:13:05 +0000 |
|---|---|---|
| committer | froydnj <froydnj@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-07-29 17:13:05 +0000 |
| commit | b7dd4edb27a49c3c3cb514fed778e85b191c5468 (patch) | |
| tree | ec2d8580f766dcd9a89ba7ed63534b6587a17b3f /libstdc++-v3/include/std/atomic | |
| parent | 0bd32132d471995f3e333138363d1d928a9dde60 (diff) | |
| download | ppe42-gcc-b7dd4edb27a49c3c3cb514fed778e85b191c5468.tar.gz ppe42-gcc-b7dd4edb27a49c3c3cb514fed778e85b191c5468.zip | |
libstdc++-v3/
* include/std/atomic (compare_exchange_weak, compare_exchange_strong):
Add call to __cmpexch_failure_order.
* testsuite/util/testsuite_common_types.h
(compare_exchange_order_lowering): New generator.
* testsuite/29_atomics/atomic/requirements/compare_exchange_lowering.cc:
New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@201315 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/include/std/atomic')
| -rw-r--r-- | libstdc++-v3/include/std/atomic | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/libstdc++-v3/include/std/atomic b/libstdc++-v3/include/std/atomic index 813f5741a10..2d66729629e 100644 --- a/libstdc++-v3/include/std/atomic +++ b/libstdc++-v3/include/std/atomic @@ -252,12 +252,14 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION bool compare_exchange_weak(_Tp& __e, _Tp __i, memory_order __m = memory_order_seq_cst) noexcept - { return compare_exchange_weak(__e, __i, __m, __m); } + { return compare_exchange_weak(__e, __i, __m, + __cmpexch_failure_order(__m)); } bool compare_exchange_weak(_Tp& __e, _Tp __i, memory_order __m = memory_order_seq_cst) volatile noexcept - { return compare_exchange_weak(__e, __i, __m, __m); } + { return compare_exchange_weak(__e, __i, __m, + __cmpexch_failure_order(__m)); } bool compare_exchange_strong(_Tp& __e, _Tp __i, memory_order __s, @@ -276,12 +278,14 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION bool compare_exchange_strong(_Tp& __e, _Tp __i, memory_order __m = memory_order_seq_cst) noexcept - { return compare_exchange_strong(__e, __i, __m, __m); } + { return compare_exchange_strong(__e, __i, __m, + __cmpexch_failure_order(__m)); } bool compare_exchange_strong(_Tp& __e, _Tp __i, memory_order __m = memory_order_seq_cst) volatile noexcept - { return compare_exchange_strong(__e, __i, __m, __m); } + { return compare_exchange_strong(__e, __i, __m, + __cmpexch_failure_order(__m)); } }; |

