diff options
author | François Dumont <fdumont@gcc.gnu.org> | 2012-09-05 19:41:16 +0000 |
---|---|---|
committer | François Dumont <fdumont@gcc.gnu.org> | 2012-09-05 19:41:16 +0000 |
commit | 3157879227a4b4e1e0921483b067607fa48aa050 (patch) | |
tree | 9f144135a489ba7ffa36c5d8d1fcd48b17eb1c51 /contrib/compare_tests | |
parent | b413068c9fd88857fee03d7e7cf966bc2add5a6f (diff) | |
download | gcc-3157879227a4b4e1e0921483b067607fa48aa050.zip gcc-3157879227a4b4e1e0921483b067607fa48aa050.tar.gz gcc-3157879227a4b4e1e0921483b067607fa48aa050.tar.bz2 |
re PR libstdc++/54296 (using the object in the map to erase element from the map crashes)
2012-09-05 François Dumont <fdumont@gcc.gnu.org>
PR libstdc++/54296
* include/bits/hashtable.h (_M_erase(size_type, __node_base*,
__node_type*)): New.
(erase(const_iterator)): Use latter.
(_M_erase(std::true_type, const key_type&)): New, likewise.
(_M_erase(std::false_type, const key_type&)): New. Find all nodes
matching the key before deallocating them so that the key doesn't
get invalidated.
(erase(const key_type&)): Use the new member functions.
* testsuite/23_containers/unordered_map/erase/54296.cc: New.
* testsuite/23_containers/unordered_multimap/erase/54296.cc: New.
From-SVN: r190991
Diffstat (limited to 'contrib/compare_tests')
0 files changed, 0 insertions, 0 deletions