2012-09-05 François Dumont <fdumont@gcc.gnu.org>
authorfdumont <fdumont@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 5 Sep 2012 19:41:16 +0000 (19:41 +0000)
committerfdumont <fdumont@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 5 Sep 2012 19:41:16 +0000 (19:41 +0000)
commit439cd9b7c2a753a387db542125e4e568d89d9e9e
tree9f144135a489ba7ffa36c5d8d1fcd48b17eb1c51
parentd9c5e5f4b0d0e1606d4a060a271ebd7db420cd92
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190991 138bc75d-0d04-0410-961f-82ee72b054a4
libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/hashtable.h
libstdc++-v3/testsuite/23_containers/unordered_map/erase/54276.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/54276.cc [new file with mode: 0644]