diff options
author | gerald <gerald@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-06-05 16:48:14 +0000 |
---|---|---|
committer | gerald <gerald@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-06-05 16:48:14 +0000 |
commit | 4559711ecf362849c6fc2f1c1be3c7ade0555b1d (patch) | |
tree | 21fb7c11534bfdf4f1884a4aa1af6f79498f06bc /libitm | |
parent | 910d871e78e68edf2d44ff45be1b988a7589c7f6 (diff) | |
download | linaro-gcc-4559711ecf362849c6fc2f1c1be3c7ade0555b1d.tar.gz linaro-gcc-4559711ecf362849c6fc2f1c1be3c7ade0555b1d.tar.bz2 linaro-gcc-4559711ecf362849c6fc2f1c1be3c7ade0555b1d.zip |
PR bootstrap/56714
* local_atomic (__always_inline): Always define our version.
(__calculate_memory_order): Mark inline.
(atomic_thread_fence): Ditto.
(atomic_signal_fence): Ditto.
(atomic_bool::atomic_flag_test_and_set_explicit): Ditto.
(atomic_bool::atomic_flag_clear_explicit): Ditto.
(atomic_bool::atomic_flag_test_and_set): Ditto.
(atomic_bool::atomic_flag_clear): Ditto.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199704 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libitm')
-rw-r--r-- | libitm/ChangeLog | 12 | ||||
-rw-r--r-- | libitm/local_atomic | 27 |
2 files changed, 25 insertions, 14 deletions
diff --git a/libitm/ChangeLog b/libitm/ChangeLog index 04490fd8b1d..ed9114b9147 100644 --- a/libitm/ChangeLog +++ b/libitm/ChangeLog @@ -1,3 +1,15 @@ +2013-03-31 Gerald Pfeifer <gerald@pfeifer.com> + + PR bootstrap/56714 + * local_atomic (__always_inline): Always define our version. + (__calculate_memory_order): Mark inline. + (atomic_thread_fence): Ditto. + (atomic_signal_fence): Ditto. + (atomic_bool::atomic_flag_test_and_set_explicit): Ditto. + (atomic_bool::atomic_flag_clear_explicit): Ditto. + (atomic_bool::atomic_flag_test_and_set): Ditto. + (atomic_bool::atomic_flag_clear): Ditto. + 2013-04-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> * config/s390/sjlj.S: New file. diff --git a/libitm/local_atomic b/libitm/local_atomic index 4cd961af9ba..f6bbb11695c 100644 --- a/libitm/local_atomic +++ b/libitm/local_atomic @@ -41,9 +41,8 @@ #ifndef _GLIBCXX_ATOMIC #define _GLIBCXX_ATOMIC 1 -#ifndef __always_inline -#define __always_inline inline __attribute__((always_inline)) -#endif +#undef __always_inline +#define __always_inline __attribute__((always_inline)) // #pragma GCC system_header @@ -75,7 +74,7 @@ namespace std // _GLIBCXX_VISIBILITY(default) memory_order_seq_cst } memory_order; - __always_inline memory_order + inline __always_inline memory_order __calculate_memory_order(memory_order __m) noexcept { const bool __cond1 = __m == memory_order_release; @@ -85,13 +84,13 @@ namespace std // _GLIBCXX_VISIBILITY(default) return __mo2; } - __always_inline void + inline __always_inline void atomic_thread_fence(memory_order __m) noexcept { __atomic_thread_fence (__m); } - __always_inline void + inline __always_inline void atomic_signal_fence(memory_order __m) noexcept { __atomic_thread_fence (__m); @@ -1545,38 +1544,38 @@ namespace std // _GLIBCXX_VISIBILITY(default) // Function definitions, atomic_flag operations. - __always_inline bool + inline __always_inline bool atomic_flag_test_and_set_explicit(atomic_flag* __a, memory_order __m) noexcept { return __a->test_and_set(__m); } - __always_inline bool + inline __always_inline bool atomic_flag_test_and_set_explicit(volatile atomic_flag* __a, memory_order __m) noexcept { return __a->test_and_set(__m); } - __always_inline void + inline __always_inline void atomic_flag_clear_explicit(atomic_flag* __a, memory_order __m) noexcept { __a->clear(__m); } - __always_inline void + inline __always_inline void atomic_flag_clear_explicit(volatile atomic_flag* __a, memory_order __m) noexcept { __a->clear(__m); } - __always_inline bool + inline __always_inline bool atomic_flag_test_and_set(atomic_flag* __a) noexcept { return atomic_flag_test_and_set_explicit(__a, memory_order_seq_cst); } - __always_inline bool + inline __always_inline bool atomic_flag_test_and_set(volatile atomic_flag* __a) noexcept { return atomic_flag_test_and_set_explicit(__a, memory_order_seq_cst); } - __always_inline void + inline __always_inline void atomic_flag_clear(atomic_flag* __a) noexcept { atomic_flag_clear_explicit(__a, memory_order_seq_cst); } - __always_inline void + inline __always_inline void atomic_flag_clear(volatile atomic_flag* __a) noexcept { atomic_flag_clear_explicit(__a, memory_order_seq_cst); } |