mirror of git://gcc.gnu.org/git/gcc.git
tree.cc (_Rb_tree_increment, [...]): Mark nothrow; update uses of _Rb_tree_rotate_left, _Rb_tree_rotate_right.
* tree.cc (_Rb_tree_increment, _Rb_tree_decrement, _Rb_tree_rebalance_for_erase, _Rb_tree_black_count): Mark nothrow; update uses of _Rb_tree_rotate_left, _Rb_tree_rotate_right. (_Rb_tree_rotate_left, _Rb_tree_rotate_right): Make wrapper and break out body to ... (local_Rb_tree_rotate_left, local_Rb_tree_rotate_right): New static functions. * stl_tree.h (_Rb_tree_increment, _Rb_tree_decrement, _Rb_tree_insert_and_rebalance, _Rb_tree_rebalance_for_erase, _Rb_tree_black_count): Mark nothrow. From-SVN: r146184
This commit is contained in:
parent
41fd0f9b80
commit
1cf1c842c5
|
|
@ -1,3 +1,16 @@
|
||||||
|
2009-04-16 Jan Hubicka <jh@suse.cz>
|
||||||
|
|
||||||
|
* tree.cc (_Rb_tree_increment, _Rb_tree_decrement,
|
||||||
|
_Rb_tree_rebalance_for_erase, _Rb_tree_black_count): Mark nothrow;
|
||||||
|
update uses of _Rb_tree_rotate_left, _Rb_tree_rotate_right.
|
||||||
|
(_Rb_tree_rotate_left, _Rb_tree_rotate_right): Make wrapper and break
|
||||||
|
out body to ...
|
||||||
|
(local_Rb_tree_rotate_left, local_Rb_tree_rotate_right): New static
|
||||||
|
functions.
|
||||||
|
* stl_tree.h (_Rb_tree_increment, _Rb_tree_decrement,
|
||||||
|
_Rb_tree_insert_and_rebalance, _Rb_tree_rebalance_for_erase,
|
||||||
|
_Rb_tree_black_count): Mark nothrow.
|
||||||
|
|
||||||
2009-04-16 Paolo Carlini <paolo.carlini@oracle.com>
|
2009-04-16 Paolo Carlini <paolo.carlini@oracle.com>
|
||||||
|
|
||||||
* include/bits/forward_list.h: Remove default std::allocator<_Tp>
|
* include/bits/forward_list.h: Remove default std::allocator<_Tp>
|
||||||
|
|
|
||||||
|
|
@ -138,16 +138,16 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
|
||||||
};
|
};
|
||||||
|
|
||||||
_Rb_tree_node_base*
|
_Rb_tree_node_base*
|
||||||
_Rb_tree_increment(_Rb_tree_node_base* __x);
|
_Rb_tree_increment(_Rb_tree_node_base* __x) throw ();
|
||||||
|
|
||||||
const _Rb_tree_node_base*
|
const _Rb_tree_node_base*
|
||||||
_Rb_tree_increment(const _Rb_tree_node_base* __x);
|
_Rb_tree_increment(const _Rb_tree_node_base* __x) throw ();
|
||||||
|
|
||||||
_Rb_tree_node_base*
|
_Rb_tree_node_base*
|
||||||
_Rb_tree_decrement(_Rb_tree_node_base* __x);
|
_Rb_tree_decrement(_Rb_tree_node_base* __x) throw ();
|
||||||
|
|
||||||
const _Rb_tree_node_base*
|
const _Rb_tree_node_base*
|
||||||
_Rb_tree_decrement(const _Rb_tree_node_base* __x);
|
_Rb_tree_decrement(const _Rb_tree_node_base* __x) throw ();
|
||||||
|
|
||||||
template<typename _Tp>
|
template<typename _Tp>
|
||||||
struct _Rb_tree_iterator
|
struct _Rb_tree_iterator
|
||||||
|
|
@ -310,11 +310,11 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
|
||||||
_Rb_tree_insert_and_rebalance(const bool __insert_left,
|
_Rb_tree_insert_and_rebalance(const bool __insert_left,
|
||||||
_Rb_tree_node_base* __x,
|
_Rb_tree_node_base* __x,
|
||||||
_Rb_tree_node_base* __p,
|
_Rb_tree_node_base* __p,
|
||||||
_Rb_tree_node_base& __header);
|
_Rb_tree_node_base& __header) throw ();
|
||||||
|
|
||||||
_Rb_tree_node_base*
|
_Rb_tree_node_base*
|
||||||
_Rb_tree_rebalance_for_erase(_Rb_tree_node_base* const __z,
|
_Rb_tree_rebalance_for_erase(_Rb_tree_node_base* const __z,
|
||||||
_Rb_tree_node_base& __header);
|
_Rb_tree_node_base& __header) throw ();
|
||||||
|
|
||||||
|
|
||||||
template<typename _Key, typename _Val, typename _KeyOfValue,
|
template<typename _Key, typename _Val, typename _KeyOfValue,
|
||||||
|
|
@ -1450,7 +1450,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
|
||||||
|
|
||||||
unsigned int
|
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);
|
const _Rb_tree_node_base* __root) throw ();
|
||||||
|
|
||||||
template<typename _Key, typename _Val, typename _KeyOfValue,
|
template<typename _Key, typename _Val, typename _KeyOfValue,
|
||||||
typename _Compare, typename _Alloc>
|
typename _Compare, typename _Alloc>
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,7 @@
|
||||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||||
|
|
||||||
_Rb_tree_node_base*
|
_Rb_tree_node_base*
|
||||||
_Rb_tree_increment(_Rb_tree_node_base* __x)
|
_Rb_tree_increment(_Rb_tree_node_base* __x) throw ()
|
||||||
{
|
{
|
||||||
if (__x->_M_right != 0)
|
if (__x->_M_right != 0)
|
||||||
{
|
{
|
||||||
|
|
@ -78,13 +78,13 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
|
||||||
}
|
}
|
||||||
|
|
||||||
const _Rb_tree_node_base*
|
const _Rb_tree_node_base*
|
||||||
_Rb_tree_increment(const _Rb_tree_node_base* __x)
|
_Rb_tree_increment(const _Rb_tree_node_base* __x) throw ()
|
||||||
{
|
{
|
||||||
return _Rb_tree_increment(const_cast<_Rb_tree_node_base*>(__x));
|
return _Rb_tree_increment(const_cast<_Rb_tree_node_base*>(__x));
|
||||||
}
|
}
|
||||||
|
|
||||||
_Rb_tree_node_base*
|
_Rb_tree_node_base*
|
||||||
_Rb_tree_decrement(_Rb_tree_node_base* __x)
|
_Rb_tree_decrement(_Rb_tree_node_base* __x) throw ()
|
||||||
{
|
{
|
||||||
if (__x->_M_color == _S_red
|
if (__x->_M_color == _S_red
|
||||||
&& __x->_M_parent->_M_parent == __x)
|
&& __x->_M_parent->_M_parent == __x)
|
||||||
|
|
@ -110,14 +110,14 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
|
||||||
}
|
}
|
||||||
|
|
||||||
const _Rb_tree_node_base*
|
const _Rb_tree_node_base*
|
||||||
_Rb_tree_decrement(const _Rb_tree_node_base* __x)
|
_Rb_tree_decrement(const _Rb_tree_node_base* __x) throw ()
|
||||||
{
|
{
|
||||||
return _Rb_tree_decrement(const_cast<_Rb_tree_node_base*>(__x));
|
return _Rb_tree_decrement(const_cast<_Rb_tree_node_base*>(__x));
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
static void
|
||||||
_Rb_tree_rotate_left(_Rb_tree_node_base* const __x,
|
local_Rb_tree_rotate_left(_Rb_tree_node_base* const __x,
|
||||||
_Rb_tree_node_base*& __root)
|
_Rb_tree_node_base*& __root)
|
||||||
{
|
{
|
||||||
_Rb_tree_node_base* const __y = __x->_M_right;
|
_Rb_tree_node_base* const __y = __x->_M_right;
|
||||||
|
|
||||||
|
|
@ -136,9 +136,19 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
|
||||||
__x->_M_parent = __y;
|
__x->_M_parent = __y;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Static keyword was missing on _Rb_tree_rotate_left.
|
||||||
|
Export the symbol for backward compatibility until
|
||||||
|
next ABI change. */
|
||||||
void
|
void
|
||||||
_Rb_tree_rotate_right(_Rb_tree_node_base* const __x,
|
_Rb_tree_rotate_left(_Rb_tree_node_base* const __x,
|
||||||
_Rb_tree_node_base*& __root)
|
_Rb_tree_node_base*& __root)
|
||||||
|
{
|
||||||
|
local_Rb_tree_rotate_left (__x, __root);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
local_Rb_tree_rotate_right(_Rb_tree_node_base* const __x,
|
||||||
|
_Rb_tree_node_base*& __root)
|
||||||
{
|
{
|
||||||
_Rb_tree_node_base* const __y = __x->_M_left;
|
_Rb_tree_node_base* const __y = __x->_M_left;
|
||||||
|
|
||||||
|
|
@ -157,11 +167,21 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
|
||||||
__x->_M_parent = __y;
|
__x->_M_parent = __y;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Static keyword was missing on _Rb_tree_rotate_right
|
||||||
|
Export the symbol for backward compatibility until
|
||||||
|
next ABI change. */
|
||||||
|
void
|
||||||
|
_Rb_tree_rotate_right(_Rb_tree_node_base* const __x,
|
||||||
|
_Rb_tree_node_base*& __root)
|
||||||
|
{
|
||||||
|
local_Rb_tree_rotate_right (__x, __root);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
_Rb_tree_insert_and_rebalance(const bool __insert_left,
|
_Rb_tree_insert_and_rebalance(const bool __insert_left,
|
||||||
_Rb_tree_node_base* __x,
|
_Rb_tree_node_base* __x,
|
||||||
_Rb_tree_node_base* __p,
|
_Rb_tree_node_base* __p,
|
||||||
_Rb_tree_node_base& __header)
|
_Rb_tree_node_base& __header) throw ()
|
||||||
{
|
{
|
||||||
_Rb_tree_node_base *& __root = __header._M_parent;
|
_Rb_tree_node_base *& __root = __header._M_parent;
|
||||||
|
|
||||||
|
|
@ -215,11 +235,11 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
|
||||||
if (__x == __x->_M_parent->_M_right)
|
if (__x == __x->_M_parent->_M_right)
|
||||||
{
|
{
|
||||||
__x = __x->_M_parent;
|
__x = __x->_M_parent;
|
||||||
_Rb_tree_rotate_left(__x, __root);
|
local_Rb_tree_rotate_left(__x, __root);
|
||||||
}
|
}
|
||||||
__x->_M_parent->_M_color = _S_black;
|
__x->_M_parent->_M_color = _S_black;
|
||||||
__xpp->_M_color = _S_red;
|
__xpp->_M_color = _S_red;
|
||||||
_Rb_tree_rotate_right(__xpp, __root);
|
local_Rb_tree_rotate_right(__xpp, __root);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
@ -237,11 +257,11 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
|
||||||
if (__x == __x->_M_parent->_M_left)
|
if (__x == __x->_M_parent->_M_left)
|
||||||
{
|
{
|
||||||
__x = __x->_M_parent;
|
__x = __x->_M_parent;
|
||||||
_Rb_tree_rotate_right(__x, __root);
|
local_Rb_tree_rotate_right(__x, __root);
|
||||||
}
|
}
|
||||||
__x->_M_parent->_M_color = _S_black;
|
__x->_M_parent->_M_color = _S_black;
|
||||||
__xpp->_M_color = _S_red;
|
__xpp->_M_color = _S_red;
|
||||||
_Rb_tree_rotate_left(__xpp, __root);
|
local_Rb_tree_rotate_left(__xpp, __root);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -250,7 +270,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
|
||||||
|
|
||||||
_Rb_tree_node_base*
|
_Rb_tree_node_base*
|
||||||
_Rb_tree_rebalance_for_erase(_Rb_tree_node_base* const __z,
|
_Rb_tree_rebalance_for_erase(_Rb_tree_node_base* const __z,
|
||||||
_Rb_tree_node_base& __header)
|
_Rb_tree_node_base& __header) throw ()
|
||||||
{
|
{
|
||||||
_Rb_tree_node_base *& __root = __header._M_parent;
|
_Rb_tree_node_base *& __root = __header._M_parent;
|
||||||
_Rb_tree_node_base *& __leftmost = __header._M_left;
|
_Rb_tree_node_base *& __leftmost = __header._M_left;
|
||||||
|
|
@ -337,7 +357,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
|
||||||
{
|
{
|
||||||
__w->_M_color = _S_black;
|
__w->_M_color = _S_black;
|
||||||
__x_parent->_M_color = _S_red;
|
__x_parent->_M_color = _S_red;
|
||||||
_Rb_tree_rotate_left(__x_parent, __root);
|
local_Rb_tree_rotate_left(__x_parent, __root);
|
||||||
__w = __x_parent->_M_right;
|
__w = __x_parent->_M_right;
|
||||||
}
|
}
|
||||||
if ((__w->_M_left == 0 ||
|
if ((__w->_M_left == 0 ||
|
||||||
|
|
@ -356,14 +376,14 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
|
||||||
{
|
{
|
||||||
__w->_M_left->_M_color = _S_black;
|
__w->_M_left->_M_color = _S_black;
|
||||||
__w->_M_color = _S_red;
|
__w->_M_color = _S_red;
|
||||||
_Rb_tree_rotate_right(__w, __root);
|
local_Rb_tree_rotate_right(__w, __root);
|
||||||
__w = __x_parent->_M_right;
|
__w = __x_parent->_M_right;
|
||||||
}
|
}
|
||||||
__w->_M_color = __x_parent->_M_color;
|
__w->_M_color = __x_parent->_M_color;
|
||||||
__x_parent->_M_color = _S_black;
|
__x_parent->_M_color = _S_black;
|
||||||
if (__w->_M_right)
|
if (__w->_M_right)
|
||||||
__w->_M_right->_M_color = _S_black;
|
__w->_M_right->_M_color = _S_black;
|
||||||
_Rb_tree_rotate_left(__x_parent, __root);
|
local_Rb_tree_rotate_left(__x_parent, __root);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -375,7 +395,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
|
||||||
{
|
{
|
||||||
__w->_M_color = _S_black;
|
__w->_M_color = _S_black;
|
||||||
__x_parent->_M_color = _S_red;
|
__x_parent->_M_color = _S_red;
|
||||||
_Rb_tree_rotate_right(__x_parent, __root);
|
local_Rb_tree_rotate_right(__x_parent, __root);
|
||||||
__w = __x_parent->_M_left;
|
__w = __x_parent->_M_left;
|
||||||
}
|
}
|
||||||
if ((__w->_M_right == 0 ||
|
if ((__w->_M_right == 0 ||
|
||||||
|
|
@ -393,14 +413,14 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
|
||||||
{
|
{
|
||||||
__w->_M_right->_M_color = _S_black;
|
__w->_M_right->_M_color = _S_black;
|
||||||
__w->_M_color = _S_red;
|
__w->_M_color = _S_red;
|
||||||
_Rb_tree_rotate_left(__w, __root);
|
local_Rb_tree_rotate_left(__w, __root);
|
||||||
__w = __x_parent->_M_left;
|
__w = __x_parent->_M_left;
|
||||||
}
|
}
|
||||||
__w->_M_color = __x_parent->_M_color;
|
__w->_M_color = __x_parent->_M_color;
|
||||||
__x_parent->_M_color = _S_black;
|
__x_parent->_M_color = _S_black;
|
||||||
if (__w->_M_left)
|
if (__w->_M_left)
|
||||||
__w->_M_left->_M_color = _S_black;
|
__w->_M_left->_M_color = _S_black;
|
||||||
_Rb_tree_rotate_right(__x_parent, __root);
|
local_Rb_tree_rotate_right(__x_parent, __root);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -411,7 +431,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
|
||||||
|
|
||||||
unsigned int
|
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)
|
const _Rb_tree_node_base* __root) throw ()
|
||||||
{
|
{
|
||||||
if (__node == 0)
|
if (__node == 0)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue