aboutsummaryrefslogtreecommitdiff
path: root/gcc/analyzer/region.h
diff options
context:
space:
mode:
authorDavid Malcolm <dmalcolm@redhat.com>2022-02-08 16:37:08 -0500
committerDavid Malcolm <dmalcolm@redhat.com>2022-02-08 21:27:12 -0500
commit391512ade5f6cda95456133296c8dcc42d5fbefd (patch)
tree64514e2a5ac45d9b7554fd992bc44edd263668de /gcc/analyzer/region.h
parent53cac72cf0821217f99d0640ba72cc2999ec7dc0 (diff)
downloadgcc-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.h3
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 ();
}