Check, after inserting entries, that they don't look empty.

Regstrapped on x86_64-linux-gnu.  Ok to install?


for  gcc/ChangeLog

        * hash-map.h (put, get_or_insert): Check that entry does not
        look empty after insertion.
---
 gcc/hash-map.h |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/gcc/hash-map.h b/gcc/hash-map.h
index 457967f4bf1ae..63fa21cf37c5b 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)

-- 
Alexandre Oliva, happy hacker                https://FSFLA.org/blogs/lxo/
   Free Software Activist                       GNU Toolchain Engineer
Disinformation flourishes because many people care deeply about injustice
but very few check the facts.  Ask me about <https://stallmansupport.org>

Reply via email to