From 9319160e8d9026bd8068029c63db10501ba1b11f Mon Sep 17 00:00:00 2001 From: David Malcolm Date: Wed, 8 Jul 2020 14:25:02 -0400 Subject: [PATCH 290/315] FIXME: fix hash fns for svalue key types --- gcc/analyzer/analyzer.h | 6 ++++++ gcc/analyzer/region-model2.h | 39 +++++++++++++++++++++++++++++------- 2 files changed, 38 insertions(+), 7 deletions(-) diff --git a/gcc/analyzer/analyzer.h b/gcc/analyzer/analyzer.h index 0fcc52f7174..183a11cf0fe 100644 --- a/gcc/analyzer/analyzer.h +++ b/gcc/analyzer/analyzer.h @@ -231,6 +231,12 @@ struct setjmp_record && m_setjmp_call == other.m_setjmp_call); } + void add_to_hash (inchash::hash *hstate) const + { + hstate->add_ptr (m_enode); + hstate->add_ptr (m_setjmp_call); + } + const exploded_node *m_enode; const gcall *m_setjmp_call; }; diff --git a/gcc/analyzer/region-model2.h b/gcc/analyzer/region-model2.h index d1271ffbeea..fd5e3f66262 100644 --- a/gcc/analyzer/region-model2.h +++ b/gcc/analyzer/region-model2.h @@ -378,7 +378,10 @@ public: hashval_t hash () const { - return 42; // FIXME + inchash::hash hstate; + hstate.add_int (m_kind); + hstate.add_ptr (m_type); + return hstate.end (); } bool operator== (const key_t &other) const @@ -444,7 +447,10 @@ public: hashval_t hash () const { - return 42; // FIXME + inchash::hash hstate; + m_record.add_to_hash (&hstate); + hstate.add_ptr (m_type); + return hstate.end (); } bool operator== (const key_t &other) const @@ -563,7 +569,11 @@ public: hashval_t hash () const { - return 42; // FIXME + inchash::hash hstate; + hstate.add_ptr (m_type); + hstate.add_int (m_op); + hstate.add_ptr (m_arg); + return hstate.end (); } bool operator== (const key_t &other) const @@ -644,7 +654,12 @@ public: hashval_t hash () const { - return 42; // FIXME + inchash::hash hstate; + hstate.add_ptr (m_type); + hstate.add_int (m_op); + hstate.add_ptr (m_arg0); + hstate.add_ptr (m_arg1); + return hstate.end (); } bool operator== (const key_t &other) const @@ -733,7 +748,11 @@ public: hashval_t hash () const { - return 42; // FIXME + inchash::hash hstate; + hstate.add_ptr (m_type); + hstate.add_ptr (m_parent_svalue); + hstate.add_ptr (m_subregion); + return hstate.end (); } bool operator== (const key_t &other) const @@ -970,7 +989,10 @@ public: hashval_t hash () const { - return 42; // FIXME + inchash::hash hstate; + hstate.add_ptr (m_base_sval); + hstate.add_ptr (m_iter_sval); + return hstate.end (); } bool operator== (const key_t &other) const @@ -1086,7 +1108,10 @@ public: hashval_t hash () const { - return 42; // FIXME + inchash::hash hstate; + hstate.add_ptr (m_type); + //hstate.add_ptr (m_map_ptr); // TODO + return hstate.end (); } bool operator== (const key_t &other) const -- 2.26.2