diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index dcd313b3a218..9de49201eebe 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,21 @@ +2009-04-21 Jan Hubicka + + * include/ext/atomicity.h + (__exchange_and_add, __atomic_add): Mark throw (). + * config/os/aix/atomicity.h + * config/os/aix/atomicity.h + * config/os/irix/atomicity.h + * config/cpu/cris/atomicity.h + * config/cpu/m68k/atomicity.h + * config/cpu/hppa/atomicity.h + * config/cpu/sparc/atomicity.h + * config/cpu/i386/atomicity.h + * config/cpu/i486/atomicity.h + * config/cpu/sh/atomicity.h + * config/cpu/generic/atomicity_mutex/atomicity.h + * config/cpu/generic/atomicity_builtins/atomicity.h + (__exchange_and_add, __atomic_add): Mark throw (). + 2009-04-21 Paolo Carlini PR libstdc++/39835 diff --git a/libstdc++-v3/config/cpu/cris/atomicity.h b/libstdc++-v3/config/cpu/cris/atomicity.h index 37be3a84719d..92254273e1ee 100644 --- a/libstdc++-v3/config/cpu/cris/atomicity.h +++ b/libstdc++-v3/config/cpu/cris/atomicity.h @@ -27,7 +27,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) _Atomic_word - __exchange_and_add(volatile _Atomic_word* __mem, int __val) + __exchange_and_add(volatile _Atomic_word* __mem, int __val) throw () { int __tmp; _Atomic_word __result; @@ -80,7 +80,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) } void - __atomic_add(volatile _Atomic_word* __mem, int __val) + __atomic_add(volatile _Atomic_word* __mem, int __val) throw () { __exchange_and_add(__mem, __val); } _GLIBCXX_END_NAMESPACE diff --git a/libstdc++-v3/config/cpu/generic/atomicity_builtins/atomicity.h b/libstdc++-v3/config/cpu/generic/atomicity_builtins/atomicity.h index 9b3b997db3c3..ae69ecc7dd74 100644 --- a/libstdc++-v3/config/cpu/generic/atomicity_builtins/atomicity.h +++ b/libstdc++-v3/config/cpu/generic/atomicity_builtins/atomicity.h @@ -34,12 +34,12 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) _Atomic_word __attribute__ ((__unused__)) - __exchange_and_add(volatile _Atomic_word* __mem, int __val) + __exchange_and_add(volatile _Atomic_word* __mem, int __val) throw () { return __sync_fetch_and_add(__mem, __val); } void __attribute__ ((__unused__)) - __atomic_add(volatile _Atomic_word* __mem, int __val) + __atomic_add(volatile _Atomic_word* __mem, int __val) throw () { __sync_fetch_and_add(__mem, __val); } _GLIBCXX_END_NAMESPACE diff --git a/libstdc++-v3/config/cpu/generic/atomicity_mutex/atomicity.h b/libstdc++-v3/config/cpu/generic/atomicity_mutex/atomicity.h index d8a5245c6315..fe3ade84d342 100644 --- a/libstdc++-v3/config/cpu/generic/atomicity_mutex/atomicity.h +++ b/libstdc++-v3/config/cpu/generic/atomicity_mutex/atomicity.h @@ -44,7 +44,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) _Atomic_word __attribute__ ((__unused__)) - __exchange_and_add(volatile _Atomic_word* __mem, int __val) + __exchange_and_add(volatile _Atomic_word* __mem, int __val) throw () { __gnu_cxx::__scoped_lock sentry(get_atomic_mutex()); _Atomic_word __result; @@ -55,7 +55,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) void __attribute__ ((__unused__)) - __atomic_add(volatile _Atomic_word* __mem, int __val) + __atomic_add(volatile _Atomic_word* __mem, int __val) throw () { __exchange_and_add(__mem, __val); } _GLIBCXX_END_NAMESPACE diff --git a/libstdc++-v3/config/cpu/hppa/atomicity.h b/libstdc++-v3/config/cpu/hppa/atomicity.h index 6a167e955fed..cf1ceb05ac82 100644 --- a/libstdc++-v3/config/cpu/hppa/atomicity.h +++ b/libstdc++-v3/config/cpu/hppa/atomicity.h @@ -43,7 +43,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) int __attribute__ ((__unused__)) - __exchange_and_add(volatile _Atomic_word* __mem, int __val) + __exchange_and_add(volatile _Atomic_word* __mem, int __val) throw () { _Atomic_word result; int tmp; @@ -68,7 +68,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) void __attribute__ ((__unused__)) - __atomic_add(volatile _Atomic_word* __mem, int __val) + __atomic_add(volatile _Atomic_word* __mem, int __val) throw () { int tmp; volatile int& lock = _Atomicity_lock<0>::_S_atomicity_lock; diff --git a/libstdc++-v3/config/cpu/i386/atomicity.h b/libstdc++-v3/config/cpu/i386/atomicity.h index de2b329e8781..8f7619307fe8 100644 --- a/libstdc++-v3/config/cpu/i386/atomicity.h +++ b/libstdc++-v3/config/cpu/i386/atomicity.h @@ -39,7 +39,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) _Atomic_word __attribute__ ((__unused__)) - __exchange_and_add(volatile _Atomic_word* __mem, int __val) + __exchange_and_add(volatile _Atomic_word* __mem, int __val) throw () { register _Atomic_word __result, __tmp = 1; @@ -64,7 +64,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) void __attribute__ ((__unused__)) - __atomic_add(volatile _Atomic_word* __mem, int __val) + __atomic_add(volatile _Atomic_word* __mem, int __val) throw () { __exchange_and_add(__mem, __val); } _GLIBCXX_END_NAMESPACE diff --git a/libstdc++-v3/config/cpu/i486/atomicity.h b/libstdc++-v3/config/cpu/i486/atomicity.h index 42f9a8fecff9..d9e68f4d8caf 100644 --- a/libstdc++-v3/config/cpu/i486/atomicity.h +++ b/libstdc++-v3/config/cpu/i486/atomicity.h @@ -28,7 +28,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) _Atomic_word __attribute__ ((__unused__)) - __exchange_and_add(volatile _Atomic_word* __mem, int __val) + __exchange_and_add(volatile _Atomic_word* __mem, int __val) throw () { register _Atomic_word __result; __asm__ __volatile__ ("lock; xadd{l} {%0,%1|%1,%0}" @@ -39,7 +39,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) void __attribute__ ((__unused__)) - __atomic_add(volatile _Atomic_word* __mem, int __val) + __atomic_add(volatile _Atomic_word* __mem, int __val) throw () { __asm__ __volatile__ ("lock; add{l} {%1,%0|%0,%1}" : "=m" (*__mem) : "ir" (__val), "m" (*__mem)); diff --git a/libstdc++-v3/config/cpu/m68k/atomicity.h b/libstdc++-v3/config/cpu/m68k/atomicity.h index e6cdbeebc277..5b3692eecefb 100644 --- a/libstdc++-v3/config/cpu/m68k/atomicity.h +++ b/libstdc++-v3/config/cpu/m68k/atomicity.h @@ -32,7 +32,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) // These variants support compare-and-swap. _Atomic_word __attribute__ ((__unused__)) - __exchange_and_add(volatile _Atomic_word* __mem, int __val) + __exchange_and_add(volatile _Atomic_word* __mem, int __val) throw () { register _Atomic_word __result = *__mem; register _Atomic_word __temp; @@ -50,7 +50,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) // Disable interrupts, which we can do only from supervisor mode. _Atomic_word __attribute__ ((__unused__)) - __exchange_and_add(volatile _Atomic_word* __mem, int __val) + __exchange_and_add(volatile _Atomic_word* __mem, int __val) throw () { _Atomic_word __result; short __level, __tmpsr; @@ -79,7 +79,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) _Atomic_word __attribute__ ((__unused__)) - __exchange_and_add(volatile _Atomic_word* __mem, int __val) + __exchange_and_add(volatile _Atomic_word* __mem, int __val) throw () { _Atomic_word __result; @@ -119,7 +119,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) void __attribute__ ((__unused__)) - __atomic_add(volatile _Atomic_word* __mem, int __val) + __atomic_add(volatile _Atomic_word* __mem, int __val) throw () { // Careful: using add.l with a memory destination is not // architecturally guaranteed to be atomic. diff --git a/libstdc++-v3/config/cpu/sh/atomicity.h b/libstdc++-v3/config/cpu/sh/atomicity.h index acd5e87d8af7..251d49ff2b9c 100644 --- a/libstdc++-v3/config/cpu/sh/atomicity.h +++ b/libstdc++-v3/config/cpu/sh/atomicity.h @@ -33,7 +33,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) _Atomic_word __attribute__ ((__unused__)) - __exchange_and_add (volatile _Atomic_word* __mem, int __val) + __exchange_and_add (volatile _Atomic_word* __mem, int __val) throw () { _Atomic_word __result; @@ -54,7 +54,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) void __attribute__ ((__unused__)) - __atomic_add (volatile _Atomic_word* __mem, int __val) + __atomic_add (volatile _Atomic_word* __mem, int __val) throw () { asm("0:\n" "\tmovli.l\t@%1,r0\n" @@ -84,7 +84,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) _Atomic_word __attribute__ ((__unused__)) - __exchange_and_add(volatile _Atomic_word* __mem, int __val) + __exchange_and_add(volatile _Atomic_word* __mem, int __val) throw () { __gnu_cxx::__scoped_lock sentry(atomic_mutex); _Atomic_word __result; @@ -95,7 +95,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) void __attribute__ ((__unused__)) - __atomic_add(volatile _Atomic_word* __mem, int __val) + __atomic_add(volatile _Atomic_word* __mem, int __val) throw () { __exchange_and_add(__mem, __val); } _GLIBCXX_END_NAMESPACE diff --git a/libstdc++-v3/config/cpu/sparc/atomicity.h b/libstdc++-v3/config/cpu/sparc/atomicity.h index be3b07f3f7ce..1ead48d2788e 100644 --- a/libstdc++-v3/config/cpu/sparc/atomicity.h +++ b/libstdc++-v3/config/cpu/sparc/atomicity.h @@ -30,7 +30,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) #ifdef __arch64__ _Atomic_word __attribute__ ((__unused__)) - __exchange_and_add(volatile _Atomic_word* __mem, int __val) + __exchange_and_add(volatile _Atomic_word* __mem, int __val) throw () { _Atomic_word __tmp1, __tmp2; _Atomic_word __val_extended = __val; @@ -48,7 +48,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) void __attribute__ ((__unused__)) - __atomic_add(volatile _Atomic_word* __mem, int __val) + __atomic_add(volatile _Atomic_word* __mem, int __val) throw () { _Atomic_word __tmp1, __tmp2; _Atomic_word __val_extended = __val; @@ -78,7 +78,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) _Atomic_word __attribute__ ((__unused__)) - __exchange_and_add(volatile _Atomic_word* __mem, int __val) + __exchange_and_add(volatile _Atomic_word* __mem, int __val) throw () { _Atomic_word __result, __tmp; @@ -100,7 +100,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) void __attribute__ ((__unused__)) - __atomic_add(volatile _Atomic_word* __mem, int __val) + __atomic_add(volatile _Atomic_word* __mem, int __val) throw () { _Atomic_word __tmp; diff --git a/libstdc++-v3/config/os/aix/atomicity.h b/libstdc++-v3/config/os/aix/atomicity.h index 03718e20b181..38622b128150 100644 --- a/libstdc++-v3/config/os/aix/atomicity.h +++ b/libstdc++-v3/config/os/aix/atomicity.h @@ -42,12 +42,12 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) _Atomic_word __attribute__ ((__unused__)) - __exchange_and_add (volatile _Atomic_word* __mem, int __val) + __exchange_and_add (volatile _Atomic_word* __mem, int __val) throw () { return ::fetch_and_add(const_cast(__mem), __val); } void __attribute__ ((__unused__)) - __atomic_add (volatile _Atomic_word* __mem, int __val) + __atomic_add (volatile _Atomic_word* __mem, int __val) throw () { (void) ::fetch_and_add(const_cast(__mem), __val); } _GLIBCXX_END_NAMESPACE diff --git a/libstdc++-v3/config/os/irix/atomicity.h b/libstdc++-v3/config/os/irix/atomicity.h index 4771ef4a57f1..9048fb2be67b 100644 --- a/libstdc++-v3/config/os/irix/atomicity.h +++ b/libstdc++-v3/config/os/irix/atomicity.h @@ -28,11 +28,11 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) _Atomic_word - __exchange_and_add(volatile _Atomic_word* __mem, int __val) + __exchange_and_add(volatile _Atomic_word* __mem, int __val) throw () { return (_Atomic_word) test_then_add((unsigned long*) const_cast<_Atomic_word*>(__mem), __val); } void - __atomic_add(volatile _Atomic_word* __mem, int __val) + __atomic_add(volatile _Atomic_word* __mem, int __val) throw () { __exchange_and_add(__mem, __val); } _GLIBCXX_END_NAMESPACE diff --git a/libstdc++-v3/include/ext/atomicity.h b/libstdc++-v3/include/ext/atomicity.h index bb891e8afe6e..5cb419ecf599 100644 --- a/libstdc++-v3/include/ext/atomicity.h +++ b/libstdc++-v3/include/ext/atomicity.h @@ -51,11 +51,11 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) #else _Atomic_word __attribute__ ((__unused__)) - __exchange_and_add(volatile _Atomic_word*, int); + __exchange_and_add(volatile _Atomic_word*, int) throw (); void __attribute__ ((__unused__)) - __atomic_add(volatile _Atomic_word*, int); + __atomic_add(volatile _Atomic_word*, int) throw (); #endif static inline _Atomic_word