+2006-08-30 Benjamin Kosnik <bkoz@redhat.com>
+ Richard Guenther <rguenther@suse.de>
+
+ * config/abi/pre/gnu.ver: Spell out exact signatures for atomic
+ access functions.
+
+ * include/bits/atomicity.h (__atomic_add_dispatch): Remove
+ volatile qualification for _Atomic_word argument.
+ (__atomic_add_single): Same.
+ (__exchange_and_add_dispatch): Same.
+ (__exchange_and_add_single): Same.
+
2006-08-29 Paolo Carlini <pcarlini@suse.de>
* include/tr1/random (subtract_with_carry_01<>::_M_initialize_npows):
# __gnu_cxx::__atomic_add
# __gnu_cxx::__exchange_and_add
- _ZN9__gnu_cxx12__atomic_add*;
- _ZN9__gnu_cxx18__exchange_and_add*;
+ _ZN9__gnu_cxx12__atomic_addEPVii;
+ _ZN9__gnu_cxx18__exchange_and_addEPVii;
# debug mode
_ZN10__gnu_norm15_List_node_base4hook*;
#endif
static inline _Atomic_word
- __exchange_and_add_single(volatile _Atomic_word* __mem, int __val)
+ __exchange_and_add_single(_Atomic_word* __mem, int __val)
{
_Atomic_word __result = *__mem;
*__mem += __val;
}
static inline void
- __atomic_add_single(volatile _Atomic_word* __mem, int __val)
+ __atomic_add_single(_Atomic_word* __mem, int __val)
{ *__mem += __val; }
static inline _Atomic_word
__attribute__ ((__unused__))
- __exchange_and_add_dispatch(volatile _Atomic_word* __mem, int __val)
+ __exchange_and_add_dispatch(_Atomic_word* __mem, int __val)
{
#ifdef __GTHREADS
if (__gthread_active_p())
static inline void
__attribute__ ((__unused__))
- __atomic_add_dispatch(volatile _Atomic_word* __mem, int __val)
+ __atomic_add_dispatch(_Atomic_word* __mem, int __val)
{
#ifdef __GTHREADS
if (__gthread_active_p())
_GLIBCXX_END_NAMESPACE
-// Even if the CPU doesn't need a memory barrier, we need to ensure that
-// the compiler doesn't reorder memory accesses across the barriers.
+// Even if the CPU doesn't need a memory barrier, we need to ensure
+// that the compiler doesn't reorder memory accesses across the
+// barriers.
#ifndef _GLIBCXX_READ_MEM_BARRIER
#define _GLIBCXX_READ_MEM_BARRIER __asm __volatile ("":::"memory")
#endif