]> git.ipfire.org Git - thirdparty/gcc.git/commit
libstdc++: Initialize all members of hashtable local iterators
authorJonathan Wakely <jwakely@redhat.com>
Thu, 12 Dec 2024 20:42:19 +0000 (20:42 +0000)
committerJonathan Wakely <redi@gcc.gnu.org>
Mon, 16 Dec 2024 14:05:10 +0000 (14:05 +0000)
commitf1309dbc7c281dc9fd70db8ec6e8cb804b2089fc
tree0103a392fcfc331aa94a08299afc29cf2d1d8053
parentfdfd0640ab7eddb24486214361c672d1b6d8a068
libstdc++: Initialize all members of hashtable local iterators

Currently the _M_bucket members are left uninitialized for
default-initialized local iterators, and then copy construction copies
indeterminate values. We should just ensure they're initialized on
construction.

Setting them to zero makes default-initialization consistent with
value-initialization and avoids indeterminate values.

For the _Local_iterator_base<..., false> specialization we preserve the
existing behaviour of setting _M_bucket_count to -1 in the default
constructor, as a sentinel value to indicate there's no hash object
present.

libstdc++-v3/ChangeLog:

* include/bits/hashtable_policy.h (_Local_iterator_base): Use
default member-initializers.
libstdc++-v3/include/bits/hashtable_policy.h