mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-02-08 09:49:57 +08:00
formater.h: Include bits/c++config.h.
* include/debug/formater.h: Include bits/c++config.h. (_M_error): Mark noreturn. * include/bits/c++config (_GLIBCXX_PURE, _GLIBCXX_CONST, _GLIBCXX_NORETURN): New. * include/bits/stl_tree.h (_Rb_tree_increment, _Rb_tree_increment, _Rb_tree_decrement, _Rb_tree_decrement, _Rb_tree_black_count): Mark pure. * include/c_compatibility/stdatomic.h (atomic_flag_test_and_set_explicit, atomic_flag_clear_explicit, __atomic_flag_wait_explicit, __atomic_flag_for_address): Mark by throw (). * src/atomic.cc (atomic_flag_test_and_set_explicit, atomic_flag_clear_explicit, __atomic_flag_wait_explicit, __atomic_flag_for_address): Mark by throw (). From-SVN: r146317
This commit is contained in:
parent
a5cb563b79
commit
b8add5942c
@ -1,3 +1,18 @@
|
||||
2009-04-18 Jan Hubicka <jh@suse.cz>
|
||||
|
||||
* include/debug/formater.h: Include bits/c++config.h.
|
||||
(_M_error): Mark noreturn.
|
||||
* include/bits/c++config (_GLIBCXX_PURE, _GLIBCXX_CONST,
|
||||
_GLIBCXX_NORETURN): New.
|
||||
* include/bits/stl_tree.h (_Rb_tree_increment, _Rb_tree_increment,
|
||||
_Rb_tree_decrement, _Rb_tree_decrement, _Rb_tree_black_count): Mark pure.
|
||||
* include/c_compatibility/stdatomic.h (atomic_flag_test_and_set_explicit,
|
||||
atomic_flag_clear_explicit, __atomic_flag_wait_explicit,
|
||||
__atomic_flag_for_address): Mark by throw ().
|
||||
* src/atomic.cc (atomic_flag_test_and_set_explicit,
|
||||
atomic_flag_clear_explicit, __atomic_flag_wait_explicit,
|
||||
__atomic_flag_for_address): Mark by throw ().
|
||||
|
||||
2009-04-17 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
* config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Regenerated.
|
||||
|
@ -314,4 +314,16 @@ _GLIBCXX_END_NAMESPACE
|
||||
#undef min
|
||||
#undef max
|
||||
|
||||
#ifndef _GLIBCXX_PURE
|
||||
# define _GLIBCXX_PURE __attribute__ ((__pure__))
|
||||
#endif
|
||||
|
||||
#ifndef _GLIBCXX_CONST
|
||||
# define _GLIBCXX_CONST __attribute__ ((__const__))
|
||||
#endif
|
||||
|
||||
#ifndef _GLIBCXX_NORETURN
|
||||
# define _GLIBCXX_NORETURN __attribute__ ((__noreturn__))
|
||||
#endif
|
||||
|
||||
// End of prewritten config; the discovered settings follow.
|
||||
|
@ -137,16 +137,16 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
#endif
|
||||
};
|
||||
|
||||
_Rb_tree_node_base*
|
||||
_GLIBCXX_PURE _Rb_tree_node_base*
|
||||
_Rb_tree_increment(_Rb_tree_node_base* __x) throw ();
|
||||
|
||||
const _Rb_tree_node_base*
|
||||
_GLIBCXX_PURE const _Rb_tree_node_base*
|
||||
_Rb_tree_increment(const _Rb_tree_node_base* __x) throw ();
|
||||
|
||||
_Rb_tree_node_base*
|
||||
_GLIBCXX_PURE _Rb_tree_node_base*
|
||||
_Rb_tree_decrement(_Rb_tree_node_base* __x) throw ();
|
||||
|
||||
const _Rb_tree_node_base*
|
||||
_GLIBCXX_PURE const _Rb_tree_node_base*
|
||||
_Rb_tree_decrement(const _Rb_tree_node_base* __x) throw ();
|
||||
|
||||
template<typename _Tp>
|
||||
@ -1448,7 +1448,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
return __n;
|
||||
}
|
||||
|
||||
unsigned int
|
||||
_GLIBCXX_PURE unsigned int
|
||||
_Rb_tree_black_count(const _Rb_tree_node_base* __node,
|
||||
const _Rb_tree_node_base* __root) throw ();
|
||||
|
||||
|
@ -121,24 +121,24 @@ _GLIBCXX_BEGIN_EXTERN_C
|
||||
|
||||
// Accessor functions for base atomic_flag type.
|
||||
bool
|
||||
atomic_flag_test_and_set_explicit(volatile __atomic_flag_base*, memory_order);
|
||||
atomic_flag_test_and_set_explicit(volatile __atomic_flag_base*, memory_order) throw ();
|
||||
|
||||
inline bool
|
||||
atomic_flag_test_and_set(volatile __atomic_flag_base* __a)
|
||||
{ return atomic_flag_test_and_set_explicit(__a, memory_order_seq_cst); }
|
||||
|
||||
void
|
||||
atomic_flag_clear_explicit(volatile __atomic_flag_base*, memory_order);
|
||||
atomic_flag_clear_explicit(volatile __atomic_flag_base*, memory_order) throw ();
|
||||
|
||||
inline void
|
||||
atomic_flag_clear(volatile __atomic_flag_base* __a)
|
||||
{ atomic_flag_clear_explicit(__a, memory_order_seq_cst); }
|
||||
|
||||
void
|
||||
__atomic_flag_wait_explicit(volatile __atomic_flag_base*, memory_order);
|
||||
__atomic_flag_wait_explicit(volatile __atomic_flag_base*, memory_order) throw ();
|
||||
|
||||
volatile __atomic_flag_base*
|
||||
__atomic_flag_for_address(const volatile void* __z) __attribute__((const));
|
||||
_GLIBCXX_CONST volatile __atomic_flag_base*
|
||||
__atomic_flag_for_address(const volatile void* __z) throw ();
|
||||
|
||||
// Implementation specific defines.
|
||||
#define _ATOMIC_LOAD_(__a, __x) \
|
||||
|
@ -29,6 +29,7 @@
|
||||
#ifndef _GLIBCXX_DEBUG_FORMATTER_H
|
||||
#define _GLIBCXX_DEBUG_FORMATTER_H 1
|
||||
|
||||
#include <bits/c++config.h>
|
||||
#include <typeinfo>
|
||||
#include <debug/debug.h>
|
||||
|
||||
@ -347,7 +348,7 @@ namespace __gnu_debug
|
||||
const _Error_formatter&
|
||||
_M_message(_Debug_msg_id __id) const;
|
||||
|
||||
void
|
||||
_GLIBCXX_NORETURN void
|
||||
_M_error() const;
|
||||
|
||||
private:
|
||||
|
@ -78,7 +78,7 @@ namespace std
|
||||
{
|
||||
bool
|
||||
atomic_flag_test_and_set_explicit(volatile __atomic_flag_base* __a,
|
||||
memory_order __m)
|
||||
memory_order __m) throw ()
|
||||
{
|
||||
volatile atomic_flag d(__a->_M_i);
|
||||
return d.test_and_set(__m);
|
||||
@ -86,7 +86,7 @@ namespace std
|
||||
|
||||
void
|
||||
atomic_flag_clear_explicit(volatile __atomic_flag_base* __a,
|
||||
memory_order __m)
|
||||
memory_order __m) throw ()
|
||||
{
|
||||
volatile atomic_flag d(__a->_M_i);
|
||||
return d.clear(__m);
|
||||
@ -94,14 +94,14 @@ namespace std
|
||||
|
||||
void
|
||||
__atomic_flag_wait_explicit(volatile __atomic_flag_base* __a,
|
||||
memory_order __x)
|
||||
memory_order __x) throw ()
|
||||
{
|
||||
while (atomic_flag_test_and_set_explicit(__a, __x))
|
||||
{ };
|
||||
}
|
||||
|
||||
volatile __atomic_flag_base*
|
||||
__atomic_flag_for_address(const volatile void* __z)
|
||||
__atomic_flag_for_address(const volatile void* __z) throw ()
|
||||
{
|
||||
uintptr_t __u = reinterpret_cast<uintptr_t>(__z);
|
||||
__u += (__u >> 2) + (__u << 4);
|
||||
|
Loading…
Reference in New Issue
Block a user