From: Alexandre Oliva Date: Thu, 29 Dec 2022 17:33:04 +0000 (-0300) Subject: hash-map: reject empty-looking insertions X-Git-Tag: basepoints/gcc-14~2277 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8d48107702aa8027f5e8b35ade919c5c0d50ef1e;p=thirdparty%2Fgcc.git hash-map: reject empty-looking insertions Check, after inserting entries, that they don't look empty. for gcc/ChangeLog * hash-map.h (put, get_or_insert): Check that entry does not look empty after insertion. --- diff --git a/gcc/hash-map.h b/gcc/hash-map.h index 457967f4bf1a..63fa21cf37c5 100644 --- a/gcc/hash-map.h +++ b/gcc/hash-map.h @@ -169,11 +169,12 @@ public: { hash_entry *e = m_table.find_slot_with_hash (k, Traits::hash (k), INSERT); - bool ins = hash_entry::is_empty (*e); + bool ins = Traits::is_empty (*e); if (ins) { e->m_key = k; new ((void *) &e->m_value) Value (v); + gcc_checking_assert (!Traits::is_empty (*e)); } else e->m_value = v; @@ -203,6 +204,7 @@ public: { e->m_key = k; new ((void *)&e->m_value) Value (); + gcc_checking_assert (!Traits::is_empty (*e)); } if (existed != NULL)