From b93d5ca9df26104f89b75ff120a3dd2b1bcbae58 Mon Sep 17 00:00:00 2001 From: Benjamin Kosnik Date: Wed, 30 Aug 2006 09:39:45 +0000 Subject: [PATCH] gnu.ver: Spell out exact signatures for atomic access functions. 2006-08-30 Benjamin Kosnik Richard Guenther * 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. Co-Authored-By: Richard Guenther From-SVN: r116584 --- libstdc++-v3/ChangeLog | 12 ++++++++++++ libstdc++-v3/config/abi/pre/gnu.ver | 4 ++-- libstdc++-v3/include/bits/atomicity.h | 13 +++++++------ 3 files changed, 21 insertions(+), 8 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index cf8546c87a0..caa1fcf68e5 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,15 @@ +2006-08-30 Benjamin Kosnik + Richard Guenther + + * 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 * include/tr1/random (subtract_with_carry_01<>::_M_initialize_npows): diff --git a/libstdc++-v3/config/abi/pre/gnu.ver b/libstdc++-v3/config/abi/pre/gnu.ver index ee869a262db..1a1cfcee816 100644 --- a/libstdc++-v3/config/abi/pre/gnu.ver +++ b/libstdc++-v3/config/abi/pre/gnu.ver @@ -378,8 +378,8 @@ GLIBCXX_3.4 { # __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*; diff --git a/libstdc++-v3/include/bits/atomicity.h b/libstdc++-v3/include/bits/atomicity.h index 18832fed800..79af99ec724 100644 --- a/libstdc++-v3/include/bits/atomicity.h +++ b/libstdc++-v3/include/bits/atomicity.h @@ -60,7 +60,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) #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; @@ -68,12 +68,12 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) } 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()) @@ -87,7 +87,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) 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()) @@ -101,8 +101,9 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) _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