Commit b8add594 by Jan Hubicka Committed by Jan Hubicka

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
parent a5cb563b
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> 2009-04-17 Uros Bizjak <ubizjak@gmail.com>
* config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Regenerated. * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Regenerated.
......
...@@ -314,4 +314,16 @@ _GLIBCXX_END_NAMESPACE ...@@ -314,4 +314,16 @@ _GLIBCXX_END_NAMESPACE
#undef min #undef min
#undef max #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. // End of prewritten config; the discovered settings follow.
...@@ -137,16 +137,16 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -137,16 +137,16 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
#endif #endif
}; };
_Rb_tree_node_base* _GLIBCXX_PURE _Rb_tree_node_base*
_Rb_tree_increment(_Rb_tree_node_base* __x) throw (); _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_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 (); _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 (); _Rb_tree_decrement(const _Rb_tree_node_base* __x) throw ();
template<typename _Tp> template<typename _Tp>
...@@ -1448,7 +1448,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -1448,7 +1448,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
return __n; return __n;
} }
unsigned int _GLIBCXX_PURE unsigned int
_Rb_tree_black_count(const _Rb_tree_node_base* __node, _Rb_tree_black_count(const _Rb_tree_node_base* __node,
const _Rb_tree_node_base* __root) throw (); const _Rb_tree_node_base* __root) throw ();
......
...@@ -121,24 +121,24 @@ _GLIBCXX_BEGIN_EXTERN_C ...@@ -121,24 +121,24 @@ _GLIBCXX_BEGIN_EXTERN_C
// Accessor functions for base atomic_flag type. // Accessor functions for base atomic_flag type.
bool 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 inline bool
atomic_flag_test_and_set(volatile __atomic_flag_base* __a) atomic_flag_test_and_set(volatile __atomic_flag_base* __a)
{ return atomic_flag_test_and_set_explicit(__a, memory_order_seq_cst); } { return atomic_flag_test_and_set_explicit(__a, memory_order_seq_cst); }
void void
atomic_flag_clear_explicit(volatile __atomic_flag_base*, memory_order); atomic_flag_clear_explicit(volatile __atomic_flag_base*, memory_order) throw ();
inline void inline void
atomic_flag_clear(volatile __atomic_flag_base* __a) atomic_flag_clear(volatile __atomic_flag_base* __a)
{ atomic_flag_clear_explicit(__a, memory_order_seq_cst); } { atomic_flag_clear_explicit(__a, memory_order_seq_cst); }
void 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* _GLIBCXX_CONST volatile __atomic_flag_base*
__atomic_flag_for_address(const volatile void* __z) __attribute__((const)); __atomic_flag_for_address(const volatile void* __z) throw ();
// Implementation specific defines. // Implementation specific defines.
#define _ATOMIC_LOAD_(__a, __x) \ #define _ATOMIC_LOAD_(__a, __x) \
......
...@@ -29,6 +29,7 @@ ...@@ -29,6 +29,7 @@
#ifndef _GLIBCXX_DEBUG_FORMATTER_H #ifndef _GLIBCXX_DEBUG_FORMATTER_H
#define _GLIBCXX_DEBUG_FORMATTER_H 1 #define _GLIBCXX_DEBUG_FORMATTER_H 1
#include <bits/c++config.h>
#include <typeinfo> #include <typeinfo>
#include <debug/debug.h> #include <debug/debug.h>
...@@ -347,7 +348,7 @@ namespace __gnu_debug ...@@ -347,7 +348,7 @@ namespace __gnu_debug
const _Error_formatter& const _Error_formatter&
_M_message(_Debug_msg_id __id) const; _M_message(_Debug_msg_id __id) const;
void _GLIBCXX_NORETURN void
_M_error() const; _M_error() const;
private: private:
......
...@@ -78,7 +78,7 @@ namespace std ...@@ -78,7 +78,7 @@ namespace std
{ {
bool bool
atomic_flag_test_and_set_explicit(volatile __atomic_flag_base* __a, 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); volatile atomic_flag d(__a->_M_i);
return d.test_and_set(__m); return d.test_and_set(__m);
...@@ -86,7 +86,7 @@ namespace std ...@@ -86,7 +86,7 @@ namespace std
void void
atomic_flag_clear_explicit(volatile __atomic_flag_base* __a, atomic_flag_clear_explicit(volatile __atomic_flag_base* __a,
memory_order __m) memory_order __m) throw ()
{ {
volatile atomic_flag d(__a->_M_i); volatile atomic_flag d(__a->_M_i);
return d.clear(__m); return d.clear(__m);
...@@ -94,14 +94,14 @@ namespace std ...@@ -94,14 +94,14 @@ namespace std
void void
__atomic_flag_wait_explicit(volatile __atomic_flag_base* __a, __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)) while (atomic_flag_test_and_set_explicit(__a, __x))
{ }; { };
} }
volatile __atomic_flag_base* 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); uintptr_t __u = reinterpret_cast<uintptr_t>(__z);
__u += (__u >> 2) + (__u << 4); __u += (__u >> 2) + (__u << 4);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment