diff options
author | David Malcolm <dmalcolm@redhat.com> | 2022-02-08 16:37:08 -0500 |
---|---|---|
committer | David Malcolm <dmalcolm@redhat.com> | 2022-02-08 21:27:12 -0500 |
commit | 391512ade5f6cda95456133296c8dcc42d5fbefd (patch) | |
tree | 64514e2a5ac45d9b7554fd992bc44edd263668de /gcc/analyzer/region.h | |
parent | 53cac72cf0821217f99d0640ba72cc2999ec7dc0 (diff) | |
download | gcc-391512ade5f6cda95456133296c8dcc42d5fbefd.zip gcc-391512ade5f6cda95456133296c8dcc42d5fbefd.tar.gz gcc-391512ade5f6cda95456133296c8dcc42d5fbefd.tar.bz2 |
analyzer: fix hashing of bit_range_region::key_t [PR104452]
gcc/analyzer/ChangeLog:
PR analyzer/104452
* region-model.cc (selftest::test_bit_range_regions): New.
(selftest::analyzer_region_model_cc_tests): Call it.
* region.h (bit_range_region::key_t::hash): Fix hashing of m_bits
to avoid using uninitialized data.
gcc/testsuite/ChangeLog:
PR analyzer/104452
* gcc.dg/analyzer/pr104452.c: New test.
Signed-off-by: David Malcolm <dmalcolm@redhat.com>
Diffstat (limited to 'gcc/analyzer/region.h')
-rw-r--r-- | gcc/analyzer/region.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/analyzer/region.h b/gcc/analyzer/region.h index 206b157..5311217 100644 --- a/gcc/analyzer/region.h +++ b/gcc/analyzer/region.h @@ -1156,7 +1156,8 @@ public: inchash::hash hstate; hstate.add_ptr (m_parent); hstate.add_ptr (m_type); - hstate.add (&m_bits, sizeof (m_bits)); + hstate.add_wide_int (m_bits.m_start_bit_offset); + hstate.add_wide_int (m_bits.m_size_in_bits); return hstate.end (); } |