Branch Coverage

/usr/include/c++/5/bits/hashtable.h
Criterion Covered Total %
branch 189 392 48.2


line true false branch
341 0 8 if (__builtin_expect(__n == 1, false))
0 8 if (__builtin_expect(__n == 1, false))
0 8 if (__builtin_expect(__n == 1, false))
0 10 if (__builtin_expect(__n == 1, false))
353 4 8 if (_M_uses_single_bucket(__bkts))
4 8 if (_M_uses_single_bucket(__bkts))
4 8 if (_M_uses_single_bucket(__bkts))
5 10 if (_M_uses_single_bucket(__bkts))
726 12 0 { return _M_emplace(__unique_keys(), std::forward<_Args>(__args)...); }
8 0 { return _M_emplace(__unique_keys(), std::forward<_Args>(__args)...); }
12 0 { return _M_emplace(__unique_keys(), std::forward<_Args>(__args)...); }
10 0 { return _M_emplace(__unique_keys(), std::forward<_Args>(__args)...); }
749 3 0 { return _M_erase(__unique_keys(), __k); }
3 0 { return _M_erase(__unique_keys(), __k); }
3 0 { return _M_erase(__unique_keys(), __k); }
3 0 { return _M_erase(__unique_keys(), __k); }
788 2 1 return __n ? static_cast<__node_type*>(__n->_M_nxt) : nullptr;
2 1 return __n ? static_cast<__node_type*>(__n->_M_nxt) : nullptr;
2 1 return __n ? static_cast<__node_type*>(__n->_M_nxt) : nullptr;
2 1 return __n ? static_cast<__node_type*>(__n->_M_nxt) : nullptr;
1308 3 2 return __p ? iterator(__p) : end();
3 2 return __p ? iterator(__p) : end();
3 2 return __p ? iterator(__p) : end();
2 2 return __p ? iterator(__p) : end();
1346 3 0 if (this->_M_equals(__k, __code, __p))
2 0 if (this->_M_equals(__k, __code, __p))
3 0 if (this->_M_equals(__k, __code, __p))
2 0 if (this->_M_equals(__k, __code, __p))
1348 0 0 else if (__result)
0 0 else if (__result)
0 0 else if (__result)
0 0 else if (__result)
1353 2 1 if (!__p->_M_nxt || _M_bucket_index(__p->_M_next()) != __n)
1 1 if (!__p->_M_nxt || _M_bucket_index(__p->_M_next()) != __n)
2 1 if (!__p->_M_nxt || _M_bucket_index(__p->_M_next()) != __n)
1 1 if (!__p->_M_nxt || _M_bucket_index(__p->_M_next()) != __n)
1 0 if (!__p->_M_nxt || _M_bucket_index(__p->_M_next()) != __n)
2 0 if (!__p->_M_nxt || _M_bucket_index(__p->_M_next()) != __n)
2 1 if (!__p->_M_nxt || _M_bucket_index(__p->_M_next()) != __n)
1 1 if (!__p->_M_nxt || _M_bucket_index(__p->_M_next()) != __n)
2 1 if (!__p->_M_nxt || _M_bucket_index(__p->_M_next()) != __n)
1 1 if (!__p->_M_nxt || _M_bucket_index(__p->_M_next()) != __n)
1 0 if (!__p->_M_nxt || _M_bucket_index(__p->_M_next()) != __n)
2 0 if (!__p->_M_nxt || _M_bucket_index(__p->_M_next()) != __n)
1376 2 1 while (__p1 && _M_bucket_index(__p1) == __n
1 2 while (__p1 && _M_bucket_index(__p1) == __n
1 1 while (__p1 && _M_bucket_index(__p1) == __n
0 2 while (__p1 && _M_bucket_index(__p1) == __n
2 1 while (__p1 && _M_bucket_index(__p1) == __n
1 2 while (__p1 && _M_bucket_index(__p1) == __n
1 1 while (__p1 && _M_bucket_index(__p1) == __n
0 2 while (__p1 && _M_bucket_index(__p1) == __n
1427 13 10 if (!__prev_p)
13 6 if (!__prev_p)
13 10 if (!__prev_p)
16 8 if (!__prev_p)
1433 10 0 if (this->_M_equals(__k, __code, __p))
6 0 if (this->_M_equals(__k, __code, __p))
10 0 if (this->_M_equals(__k, __code, __p))
8 0 if (this->_M_equals(__k, __code, __p))
1436 0 0 if (!__p->_M_nxt || _M_bucket_index(__p->_M_next()) != __n)
0 0 if (!__p->_M_nxt || _M_bucket_index(__p->_M_next()) != __n)
0 0 if (!__p->_M_nxt || _M_bucket_index(__p->_M_next()) != __n)
0 0 if (!__p->_M_nxt || _M_bucket_index(__p->_M_next()) != __n)
0 0 if (!__p->_M_nxt || _M_bucket_index(__p->_M_next()) != __n)
0 0 if (!__p->_M_nxt || _M_bucket_index(__p->_M_next()) != __n)
0 0 if (!__p->_M_nxt || _M_bucket_index(__p->_M_next()) != __n)
0 0 if (!__p->_M_nxt || _M_bucket_index(__p->_M_next()) != __n)
0 0 if (!__p->_M_nxt || _M_bucket_index(__p->_M_next()) != __n)
0 0 if (!__p->_M_nxt || _M_bucket_index(__p->_M_next()) != __n)
0 0 if (!__p->_M_nxt || _M_bucket_index(__p->_M_next()) != __n)
0 0 if (!__p->_M_nxt || _M_bucket_index(__p->_M_next()) != __n)
1452 0 8 if (_M_buckets[__bkt])
0 8 if (_M_buckets[__bkt])
0 8 if (_M_buckets[__bkt])
0 10 if (_M_buckets[__bkt])
1466 4 4 if (__node->_M_nxt)
4 4 if (__node->_M_nxt)
4 4 if (__node->_M_nxt)
5 5 if (__node->_M_nxt)
1484 0 1 if (!__next || __next_bkt != __bkt)
0 0 if (!__next || __next_bkt != __bkt)
0 1 if (!__next || __next_bkt != __bkt)
0 0 if (!__next || __next_bkt != __bkt)
0 1 if (!__next || __next_bkt != __bkt)
0 0 if (!__next || __next_bkt != __bkt)
0 1 if (!__next || __next_bkt != __bkt)
0 0 if (!__next || __next_bkt != __bkt)
1488 0 1 if (__next)
0 1 if (__next)
0 1 if (__next)
0 1 if (__next)
1492 0 1 if (&_M_before_begin == _M_buckets[__bkt])
0 1 if (&_M_before_begin == _M_buckets[__bkt])
0 1 if (&_M_before_begin == _M_buckets[__bkt])
0 1 if (&_M_before_begin == _M_buckets[__bkt])
1531 8 0 __code = this->_M_hash_code(__k);
10 0 __code = this->_M_hash_code(__k);
1534 0 0 {
0 0 {
1540 0 8 if (__node_type* __p = _M_find_node(__bkt, __k, __code))
0 10 if (__node_type* __p = _M_find_node(__bkt, __k, __code))
1548 8 0 return std::make_pair(_M_insert_unique_node(__bkt, __code, __node),
10 0 return std::make_pair(_M_insert_unique_node(__bkt, __code, __node),
1570 12 0 __code = this->_M_hash_code(this->_M_extract()(__node->_M_v()));
12 0 __code = this->_M_hash_code(this->_M_extract()(__node->_M_v()));
12 0 __code = this->_M_hash_code(this->_M_extract()(__node->_M_v()));
12 0 __code = this->_M_hash_code(this->_M_extract()(__node->_M_v()));
1573 0 0 {
0 0 {
1594 8 0 = _M_rehash_policy._M_need_rehash(_M_bucket_count, _M_element_count, 1);
10 0 = _M_rehash_policy._M_need_rehash(_M_bucket_count, _M_element_count, 1);
1598 8 0 if (__do_rehash.first)
10 0 if (__do_rehash.first)
1600 8 0 _M_rehash(__do_rehash.second, __saved_state);
10 0 _M_rehash(__do_rehash.second, __saved_state);
1601 8 0 __bkt = _M_bucket_index(this->_M_extract()(__node->_M_v()), __code);
8 0 __bkt = _M_bucket_index(this->_M_extract()(__node->_M_v()), __code);
10 0 __bkt = _M_bucket_index(this->_M_extract()(__node->_M_v()), __code);
10 0 __bkt = _M_bucket_index(this->_M_extract()(__node->_M_v()), __code);
1612 0 0 {
0 0 {
1633 12 0 = _M_rehash_policy._M_need_rehash(_M_bucket_count, _M_element_count, 1);
12 0 = _M_rehash_policy._M_need_rehash(_M_bucket_count, _M_element_count, 1);
1637 8 4 if (__do_rehash.first)
8 4 if (__do_rehash.first)
1638 8 0 _M_rehash(__do_rehash.second, __saved_state);
8 0 _M_rehash(__do_rehash.second, __saved_state);
1641 12 0 const key_type& __k = this->_M_extract()(__node->_M_v());
12 0 const key_type& __k = this->_M_extract()(__node->_M_v());
1642 12 0 size_type __bkt = _M_bucket_index(__k, __code);
12 0 size_type __bkt = _M_bucket_index(__k, __code);
1648 0 0 && this->_M_equals(__k, __code, __hint)
0 0 && this->_M_equals(__k, __code, __hint)
1650 0 12 : _M_find_before_node(__bkt, __k, __code);
0 0 : _M_find_before_node(__bkt, __k, __code);
12 0 : _M_find_before_node(__bkt, __k, __code);
0 12 : _M_find_before_node(__bkt, __k, __code);
0 0 : _M_find_before_node(__bkt, __k, __code);
12 0 : _M_find_before_node(__bkt, __k, __code);
1651 4 8 if (__prev)
4 8 if (__prev)
1656 0 4 if (__builtin_expect(__prev == __hint, false))
0 4 if (__builtin_expect(__prev == __hint, false))
1659 0 0 if (__node->_M_nxt
0 0 if (__node->_M_nxt
0 0 if (__node->_M_nxt
0 0 if (__node->_M_nxt
0 0 if (__node->_M_nxt
0 0 if (__node->_M_nxt
1660 0 0 && !this->_M_equals(__k, __code, __node->_M_next()))
0 0 && !this->_M_equals(__k, __code, __node->_M_next()))
1677 0 0 {
0 0 {
1760 1 0 if (__prev_n == _M_buckets[__bkt])
1 0 if (__prev_n == _M_buckets[__bkt])
1761 0 1 _M_remove_bucket_begin(__bkt, __n->_M_next(),
0 1 _M_remove_bucket_begin(__bkt, __n->_M_next(),
1763 0 0 else if (__n->_M_nxt)
0 0 else if (__n->_M_nxt)
1772 1 0 this->_M_deallocate_node(__n);
1 0 this->_M_deallocate_node(__n);
1829 1 0 do
1 0 do
1840 1 1 do
1 1 do
1850 1 0 if (__prev_n == _M_buckets[__bkt])
1 0 if (__prev_n == _M_buckets[__bkt])
1852 0 0 else if (__n_last && __n_last_bkt != __bkt)
0 0 else if (__n_last && __n_last_bkt != __bkt)
0 0 else if (__n_last && __n_last_bkt != __bkt)
0 0 else if (__n_last && __n_last_bkt != __bkt)
1953 8 0 _M_rehash_aux(__n, __unique_keys());
8 0 _M_rehash_aux(__n, __unique_keys());
8 0 _M_rehash_aux(__n, __unique_keys());
10 0 _M_rehash_aux(__n, __unique_keys());
1978 4 8 while (__p)
5 10 while (__p)
1987 0 4 if (__p->_M_nxt)
0 5 if (__p->_M_nxt)
2024 4 8 while (__p)
4 8 while (__p)
2029 0 4 if (__prev_p && __prev_bkt == __bkt)
0 0 if (__prev_p && __prev_bkt == __bkt)
2046 0 4 if (__check_bucket)
0 4 if (__check_bucket)
2050 0 0 if (__prev_p->_M_nxt)
0 0 if (__prev_p->_M_nxt)
2061 4 0 if (!__new_buckets[__bkt])
4 0 if (!__new_buckets[__bkt])
2066 0 4 if (__p->_M_nxt)
0 4 if (__p->_M_nxt)
2081 0 8 if (__check_bucket && __prev_p->_M_nxt)
0 0 if (__check_bucket && __prev_p->_M_nxt)
0 8 if (__check_bucket && __prev_p->_M_nxt)
0 0 if (__check_bucket && __prev_p->_M_nxt)