diff --git a/include/__hash_table b/include/__hash_table index 84ff16735..08bc519ae 100644 --- a/include/__hash_table +++ b/include/__hash_table @@ -2202,7 +2202,8 @@ __hash_table<_Tp, _Hash, _Equal, _Alloc>::find(const _Key& __k) if (__nd != nullptr) { for (__nd = __nd->__next_; __nd != nullptr && - __constrain_hash(__nd->__hash_, __bc) == __chash; + (__nd->__hash_ == __hash + || __constrain_hash(__nd->__hash_, __bc) == __chash); __nd = __nd->__next_) { if ((__nd->__hash_ == __hash) && key_eq()(__nd->__value_, __k)) @@ -2231,7 +2232,7 @@ __hash_table<_Tp, _Hash, _Equal, _Alloc>::find(const _Key& __k) const if (__nd != nullptr) { for (__nd = __nd->__next_; __nd != nullptr && - __constrain_hash(__nd->__hash_, __bc) == __chash; + (__hash == __nd->__hash_ || __constrain_hash(__nd->__hash_, __bc) == __chash); __nd = __nd->__next_) { if ((__nd->__hash_ == __hash) && key_eq()(__nd->__value_, __k))