Branch Coverage

/usr/include/c++/5/bits/stl_tree.h
Criterion Covered Total %
branch 119 232 51.2


line true false branch
107 5 3 while (__x->_M_left != 0) __x = __x->_M_left;
121 5 3 while (__x->_M_right != 0) __x = __x->_M_right;
368 2 47 if (_M_root)
372 1 1 if (_M_nodes->_M_left)
395 7 8 if (__node)
409 8 7 if (!_M_nodes)
414 6 1 if (_M_nodes)
416 3 3 if (_M_nodes->_M_right == __node)
420 2 1 if (_M_nodes->_M_left)
424 2 2 while (_M_nodes->_M_right)
427 0 2 if (_M_nodes->_M_left)
528 0 0 ::new(__node) _Rb_tree_node<_Val>;
58 0 ::new(__node) _Rb_tree_node<_Val>;
8 0 ::new(__node) _Rb_tree_node<_Val>;
4 0 ::new(__node) _Rb_tree_node<_Val>;
529 0 0 _Alloc_traits::construct(_M_get_Node_allocator(),
58 0 _Alloc_traits::construct(_M_get_Node_allocator(),
8 0 _Alloc_traits::construct(_M_get_Node_allocator(),
4 0 _Alloc_traits::construct(_M_get_Node_allocator(),
1454 49 0 if (this != &__x)
1458 0 49 if (_Alloc_traits::_S_propagate_on_copy_assign())
1462 0 0 if (!_Alloc_traits::_S_always_equal()
1468 0 0 std::__alloc_on_copy(__this_alloc, __that_alloc);
1476 3 46 if (__x._M_root() != 0)
1478 3 0 _M_root() = _M_copy(__x._M_begin(), _M_end(), __roan);
1579 5 4 if (__x->_M_right)
1580 5 0 __top->_M_right = _M_copy(_S_right(__x), __top, __node_gen);
1584 6 9 while (__x != 0)
1586 6 0 _Link_type __y = _M_clone_node(__x, __node_gen);
1589 1 5 if (__x->_M_right)
1590 1 0 __y->_M_right = _M_copy(_S_right(__x), __y, __node_gen);
1596 0 0 {
1610 0 0 while (__x != 0)
136 926 while (__x != 0)
1627 34 23 while (__x != 0)
53 34 while (__x != 0)
1628 20 14 if (!_M_impl._M_key_compare(_S_key(__x), __k))
29 24 if (!_M_impl._M_key_compare(_S_key(__x), __k))
1643 17 9 while (__x != 0)
1644 6 11 if (!_M_impl._M_key_compare(_S_key(__x), __k))
1659 10 17 while (__x != 0)
1660 2 8 if (_M_impl._M_key_compare(__k, _S_key(__x)))
1675 6 5 while (__x != 0)
1676 2 4 if (_M_impl._M_key_compare(__k, _S_key(__x)))
1694 32 5 while (__x != 0)
1696 5 27 if (_M_impl._M_key_compare(_S_key(__x), __k))
1698 10 17 else if (_M_impl._M_key_compare(__k, _S_key(__x)))
1707 17 0 _M_upper_bound(__xu, __yu, __k));
1725 11 0 while (__x != 0)
1727 1 10 if (_M_impl._M_key_compare(_S_key(__x), __k))
1729 5 5 else if (_M_impl._M_key_compare(__k, _S_key(__x)))
1738 5 0 _M_upper_bound(__xu, __yu, __k));
1807 0 0 while (__x != 0)
1810 0 0 __comp = _M_impl._M_key_compare(__k, _S_key(__x));
1811 0 0 __x = __comp ? _S_left(__x) : _S_right(__x);
1814 0 0 if (__comp)
1816 0 0 if (__j == begin())
1821 0 0 if (_M_impl._M_key_compare(_S_key(__j._M_node), __k))
0 0 if (_M_impl._M_key_compare(_S_key(__j._M_node), __k))
1838 132 111 while (__x != 0)
1841 132 0 __x = _M_impl._M_key_compare(__k, _S_key(__x)) ?
132 0 __x = _M_impl._M_key_compare(__k, _S_key(__x)) ?
48 84 __x = _M_impl._M_key_compare(__k, _S_key(__x)) ?
1910 0 0 if (__pos._M_node == _M_end())
1912 0 0 if (size() > 0
1913 0 0 && _M_impl._M_key_compare(_S_key(_M_rightmost()), __k))
1916 0 0 return _M_get_insert_unique_pos(__k);
1918 0 0 else if (_M_impl._M_key_compare(__k, _S_key(__pos._M_node)))
0 0 else if (_M_impl._M_key_compare(__k, _S_key(__pos._M_node)))
1922 0 0 if (__pos._M_node == _M_leftmost()) // begin()
1924 0 0 else if (_M_impl._M_key_compare(_S_key((--__before)._M_node), __k))
0 0 else if (_M_impl._M_key_compare(_S_key((--__before)._M_node), __k))
1926 0 0 if (_S_right(__before._M_node) == 0)
1932 0 0 return _M_get_insert_unique_pos(__k);
1934 0 0 else if (_M_impl._M_key_compare(_S_key(__pos._M_node), __k))
0 0 else if (_M_impl._M_key_compare(_S_key(__pos._M_node), __k))
1938 0 0 if (__pos._M_node == _M_rightmost())
1940 0 0 else if (_M_impl._M_key_compare(__k, _S_key((++__after)._M_node)))
0 0 else if (_M_impl._M_key_compare(__k, _S_key((++__after)._M_node)))
1942 0 0 if (_S_right(__pos._M_node) == 0)
1948 0 0 return _M_get_insert_unique_pos(__k);
2074 0 0 _S_key(__p)));
13 53 _S_key(__p)));
2153 8 0 auto __res = _M_get_insert_equal_pos(_S_key(__z));
8 0 auto __res = _M_get_insert_equal_pos(_S_key(__z));
4 0 auto __res = _M_get_insert_equal_pos(_S_key(__z));
4 0 auto __res = _M_get_insert_equal_pos(_S_key(__z));
2154 8 0 return _M_insert_node(__res.first, __res.second, __z);
4 0 return _M_insert_node(__res.first, __res.second, __z);
2174 0 0 auto __res = _M_get_insert_hint_unique_pos(__pos, _S_key(__z));
0 0 auto __res = _M_get_insert_hint_unique_pos(__pos, _S_key(__z));
2176 0 0 if (__res.second)
2177 0 0 return _M_insert_node(__res.first, __res.second, __z);
2259 4 6 if (__first == begin() && __last == end())
1 3 if (__first == begin() && __last == end())
4 6 if (__first == begin() && __last == end())
4 6 if (__first == begin() && __last == end())
10 0 if (__first == begin() && __last == end())
10 0 if (__first == begin() && __last == end())
1 9 if (__first == begin() && __last == end())
2262 7 9 while (__first != __last)
2272 3 0 pair __p = equal_range(__x);
2274 3 0 erase(__p.first, __p.second);
2295 292 0 iterator __j = _M_lower_bound(_M_begin(), _M_end(), __k);
17 0 iterator __j = _M_lower_bound(_M_begin(), _M_end(), __k);
2296 0 292 return (__j == end()
0 0 return (__j == end()
0 17 return (__j == end()
0 0 return (__j == end()
2297 17 0 || _M_impl._M_key_compare(__k,
2298 251 41 _S_key(__j._M_node))) ? end() : __j;
17 0 _S_key(__j._M_node))) ? end() : __j;
17 0 _S_key(__j._M_node))) ? end() : __j;
3 14 _S_key(__j._M_node))) ? end() : __j;
2320 3 0 pair __p = equal_range(__k);
2321 3 0 const size_type __n = std::distance(__p.first, __p.second);