diff options
author | Paolo Carlini <paolo.carlini@oracle.com> | 2010-03-09 01:56:42 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2010-03-09 01:56:42 +0000 |
commit | d723ced225a7a6e0130799c4bc2ce4daadfe358d (patch) | |
tree | 7b4ab3323cd7e2deb3c657e1214ad0e38e3149fe /libstdc++-v3/testsuite | |
parent | dc344e877ab5ab11883350111f5d5e8cdbd732a2 (diff) | |
download | gcc-d723ced225a7a6e0130799c4bc2ce4daadfe358d.zip gcc-d723ced225a7a6e0130799c4bc2ce4daadfe358d.tar.gz gcc-d723ced225a7a6e0130799c4bc2ce4daadfe358d.tar.bz2 |
revert: PR libstdc++/41975, DR 579
2010-03-08 Paolo Carlini <paolo.carlini@oracle.com>
Revert:
2010-02-11 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/41975, DR 579
* include/bits/hashtable.h (_Hashtable<>::_M_erase_node): Remove.
(erase(const_iterator), erase(const_iterator, const_iterator)):
Change return type to void.
* include/debug/unordered_map: Adjust.
* include/debug/unordered_set: Likewise.
* testsuite/util/exception/safety.h: Likewise.
* testsuite/23_containers/unordered_map/erase/1.cc: Likewise.
* testsuite/23_containers/unordered_map/erase/24061-map.cc: Likewise.
* testsuite/23_containers/unordered_set/erase/1.cc: Likewise.
* testsuite/23_containers/unordered_set/erase/24061-map.cc: Likewise.
* testsuite/23_containers/unordered_multimap/erase/1.cc: Likewise.
* testsuite/23_containers/unordered_multimap/erase/24061-map.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/erase/1.cc: Likewise.
* testsuite/23_containers/unordered_multiset/erase/24061-map.cc:
Likewise.
From-SVN: r157300
Diffstat (limited to 'libstdc++-v3/testsuite')
9 files changed, 78 insertions, 36 deletions
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_map/erase/1.cc b/libstdc++-v3/testsuite/23_containers/unordered_map/erase/1.cc index 70fb41e..f9b74e0 100644 --- a/libstdc++-v3/testsuite/23_containers/unordered_map/erase/1.cc +++ b/libstdc++-v3/testsuite/23_containers/unordered_map/erase/1.cc @@ -113,7 +113,7 @@ void test01() VERIFY( m1.size() == 2 ); VERIFY( ++it10 == m1.end() ); - m1.erase(m1.begin()); + VERIFY( m1.erase(m1.begin()) != m1.end() ); VERIFY( m1.size() == 1 ); VERIFY( m1.begin() == it11 ); diff --git a/libstdc++-v3/testsuite/23_containers/unordered_map/erase/24061-map.cc b/libstdc++-v3/testsuite/23_containers/unordered_map/erase/24061-map.cc index 759602b..87ab474 100644 --- a/libstdc++-v3/testsuite/23_containers/unordered_map/erase/24061-map.cc +++ b/libstdc++-v3/testsuite/23_containers/unordered_map/erase/24061-map.cc @@ -51,8 +51,10 @@ void test01() ++it1; iterator it2 = it1; ++it2; - m1.erase(it1); + iterator it3 = m1.erase(it1); VERIFY( m1.size() == 9 ); + VERIFY( it3 == it2 ); + VERIFY( *it3 == *it2 ); iterator it4 = m1.begin(); ++it4; @@ -61,8 +63,10 @@ void test01() iterator it5 = it4; ++it5; ++it5; - m1.erase(it4, it5); + iterator it6 = m1.erase(it4, it5); VERIFY( m1.size() == 7 ); + VERIFY( it6 == it5 ); + VERIFY( *it6 == *it5 ); const_iterator it7 = m1.begin(); ++it7; @@ -70,8 +74,10 @@ void test01() ++it7; const_iterator it8 = it7; ++it8; - m1.erase(it7); + const_iterator it9 = m1.erase(it7); VERIFY( m1.size() == 6 ); + VERIFY( it9 == it8 ); + VERIFY( *it9 == *it8 ); const_iterator it10 = m1.begin(); ++it10; @@ -80,11 +86,16 @@ void test01() ++it11; ++it11; ++it11; - m1.erase(it10, it11); + const_iterator it12 = m1.erase(it10, it11); VERIFY( m1.size() == 2 ); + VERIFY( it12 == it11 ); + VERIFY( *it12 == *it11 ); + VERIFY( ++it12 == m1.end() ); - m1.erase(m1.begin(), m1.end()); + iterator it13 = m1.erase(m1.begin(), m1.end()); VERIFY( m1.size() == 0 ); + VERIFY( it13 == it12 ); + VERIFY( it13 == m1.begin() ); } int main() diff --git a/libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/1.cc b/libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/1.cc index 0e60b8a..0aa1a07 100644 --- a/libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/1.cc +++ b/libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/1.cc @@ -113,7 +113,7 @@ void test01() VERIFY( mm1.size() == 2 ); VERIFY( ++it10 == mm1.end() ); - mm1.erase(mm1.begin()); + VERIFY( mm1.erase(mm1.begin()) != mm1.end() ); VERIFY( mm1.size() == 1 ); VERIFY( mm1.begin() == it11 ); diff --git a/libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/24061-multimap.cc b/libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/24061-multimap.cc index 0fe4eee..545d082 100644 --- a/libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/24061-multimap.cc +++ b/libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/24061-multimap.cc @@ -55,8 +55,10 @@ void test01() ++it1; iterator it2 = it1; ++it2; - mm1.erase(it1); + iterator it3 = mm1.erase(it1); VERIFY( mm1.size() == 12 ); + VERIFY( it3 == it2 ); + VERIFY( *it3 == *it2 ); iterator it4 = mm1.begin(); ++it4; @@ -65,8 +67,10 @@ void test01() iterator it5 = it4; ++it5; ++it5; - mm1.erase(it4, it5); + iterator it6 = mm1.erase(it4, it5); VERIFY( mm1.size() == 10 ); + VERIFY( it6 == it5 ); + VERIFY( *it6 == *it5 ); const_iterator it7 = mm1.begin(); ++it7; @@ -74,8 +78,10 @@ void test01() ++it7; const_iterator it8 = it7; ++it8; - mm1.erase(it7); + const_iterator it9 = mm1.erase(it7); VERIFY( mm1.size() == 9 ); + VERIFY( it9 == it8 ); + VERIFY( *it9 == *it8 ); const_iterator it10 = mm1.begin(); ++it10; @@ -84,11 +90,15 @@ void test01() ++it11; ++it11; ++it11; - mm1.erase(it10, it11); + const_iterator it12 = mm1.erase(it10, it11); VERIFY( mm1.size() == 5 ); + VERIFY( it12 == it11 ); + VERIFY( *it12 == *it11 ); - mm1.erase(mm1.begin(), mm1.end()); + iterator it13 = mm1.erase(mm1.begin(), mm1.end()); VERIFY( mm1.size() == 0 ); + VERIFY( it13 == mm1.end() ); + VERIFY( it13 == mm1.begin() ); } int main() diff --git a/libstdc++-v3/testsuite/23_containers/unordered_multiset/erase/1.cc b/libstdc++-v3/testsuite/23_containers/unordered_multiset/erase/1.cc index fbd8899..9951838 100644 --- a/libstdc++-v3/testsuite/23_containers/unordered_multiset/erase/1.cc +++ b/libstdc++-v3/testsuite/23_containers/unordered_multiset/erase/1.cc @@ -112,7 +112,7 @@ void test01() VERIFY( ms1.size() == 2 ); VERIFY( ++it10 == ms1.end() ); - ms1.erase(ms1.begin()); + VERIFY( ms1.erase(ms1.begin()) != ms1.end() ); VERIFY( ms1.size() == 1 ); VERIFY( ms1.begin() == it11 ); diff --git a/libstdc++-v3/testsuite/23_containers/unordered_multiset/erase/24061-multiset.cc b/libstdc++-v3/testsuite/23_containers/unordered_multiset/erase/24061-multiset.cc index 568862f..c5eea6e 100644 --- a/libstdc++-v3/testsuite/23_containers/unordered_multiset/erase/24061-multiset.cc +++ b/libstdc++-v3/testsuite/23_containers/unordered_multiset/erase/24061-multiset.cc @@ -54,8 +54,10 @@ void test01() ++it1; iterator it2 = it1; ++it2; - ms1.erase(it1); + iterator it3 = ms1.erase(it1); VERIFY( ms1.size() == 12 ); + VERIFY( it3 == it2 ); + VERIFY( *it3 == *it2 ); iterator it4 = ms1.begin(); ++it4; @@ -64,8 +66,10 @@ void test01() iterator it5 = it4; ++it5; ++it5; - ms1.erase(it4, it5); + iterator it6 = ms1.erase(it4, it5); VERIFY( ms1.size() == 10 ); + VERIFY( it6 == it5 ); + VERIFY( *it6 == *it5 ); const_iterator it7 = ms1.begin(); ++it7; @@ -73,8 +77,10 @@ void test01() ++it7; const_iterator it8 = it7; ++it8; - ms1.erase(it7); + const_iterator it9 = ms1.erase(it7); VERIFY( ms1.size() == 9 ); + VERIFY( it9 == it8 ); + VERIFY( *it9 == *it8 ); const_iterator it10 = ms1.begin(); ++it10; @@ -83,11 +89,15 @@ void test01() ++it11; ++it11; ++it11; - ms1.erase(it10, it11); + const_iterator it12 = ms1.erase(it10, it11); VERIFY( ms1.size() == 5 ); + VERIFY( it12 == it11 ); + VERIFY( *it12 == *it11 ); - ms1.erase(ms1.begin(), ms1.end()); + iterator it13 = ms1.erase(ms1.begin(), ms1.end()); VERIFY( ms1.size() == 0 ); + VERIFY( it13 == ms1.end() ); + VERIFY( it13 == ms1.begin() ); } int main() diff --git a/libstdc++-v3/testsuite/23_containers/unordered_set/erase/1.cc b/libstdc++-v3/testsuite/23_containers/unordered_set/erase/1.cc index 9bfa771..8f59773 100644 --- a/libstdc++-v3/testsuite/23_containers/unordered_set/erase/1.cc +++ b/libstdc++-v3/testsuite/23_containers/unordered_set/erase/1.cc @@ -112,7 +112,7 @@ void test01() VERIFY( s1.size() == 2 ); VERIFY( ++it10 == s1.end() ); - s1.erase(s1.begin()); + VERIFY( s1.erase(s1.begin()) != s1.end() ); VERIFY( s1.size() == 1 ); VERIFY( s1.begin() == it11 ); diff --git a/libstdc++-v3/testsuite/23_containers/unordered_set/erase/24061-set.cc b/libstdc++-v3/testsuite/23_containers/unordered_set/erase/24061-set.cc index 6d89208..b4cdde6 100644 --- a/libstdc++-v3/testsuite/23_containers/unordered_set/erase/24061-set.cc +++ b/libstdc++-v3/testsuite/23_containers/unordered_set/erase/24061-set.cc @@ -50,8 +50,10 @@ void test01() ++it1; iterator it2 = it1; ++it2; - s1.erase(it1); + iterator it3 = s1.erase(it1); VERIFY( s1.size() == 9 ); + VERIFY( it3 == it2 ); + VERIFY( *it3 == *it2 ); iterator it4 = s1.begin(); ++it4; @@ -60,8 +62,10 @@ void test01() iterator it5 = it4; ++it5; ++it5; - s1.erase(it4, it5); + iterator it6 = s1.erase(it4, it5); VERIFY( s1.size() == 7 ); + VERIFY( it6 == it5 ); + VERIFY( *it6 == *it5 ); const_iterator it7 = s1.begin(); ++it7; @@ -69,8 +73,10 @@ void test01() ++it7; const_iterator it8 = it7; ++it8; - s1.erase(it7); + const_iterator it9 = s1.erase(it7); VERIFY( s1.size() == 6 ); + VERIFY( it9 == it8 ); + VERIFY( *it9 == *it8 ); const_iterator it10 = s1.begin(); ++it10; @@ -79,11 +85,16 @@ void test01() ++it11; ++it11; ++it11; - s1.erase(it10, it11); + const_iterator it12 = s1.erase(it10, it11); VERIFY( s1.size() == 2 ); + VERIFY( it12 == it11 ); + VERIFY( *it12 == *it11 ); + VERIFY( ++it12 == s1.end() ); - s1.erase(s1.begin(), s1.end()); + iterator it13 = s1.erase(s1.begin(), s1.end()); VERIFY( s1.size() == 0 ); + VERIFY( it13 == s1.end() ); + VERIFY( it13 == s1.begin() ); } int main() diff --git a/libstdc++-v3/testsuite/util/exception/safety.h b/libstdc++-v3/testsuite/util/exception/safety.h index a17b755..aef58b6 100644 --- a/libstdc++-v3/testsuite/util/exception/safety.h +++ b/libstdc++-v3/testsuite/util/exception/safety.h @@ -285,9 +285,9 @@ namespace __gnu_test typedef typename container_type::iterator iterator; typedef typename container_type::const_iterator const_iterator; - void (container_type::* _F_erase_point)(const_iterator); - void (container_type::* _F_erase_range)(const_iterator, - const_iterator); + iterator (container_type::* _F_erase_point)(const_iterator); + iterator (container_type::* _F_erase_range)(const_iterator, + const_iterator); erase_base() : _F_erase_point(&container_type::erase), @@ -304,9 +304,9 @@ namespace __gnu_test typedef typename container_type::iterator iterator; typedef typename container_type::const_iterator const_iterator; - void (container_type::* _F_erase_point)(const_iterator); - void (container_type::* _F_erase_range)(const_iterator, - const_iterator); + iterator (container_type::* _F_erase_point)(const_iterator); + iterator (container_type::* _F_erase_range)(const_iterator, + const_iterator); erase_base() : _F_erase_point(&container_type::erase), @@ -321,9 +321,9 @@ namespace __gnu_test typedef typename container_type::iterator iterator; typedef typename container_type::const_iterator const_iterator; - void (container_type::* _F_erase_point)(const_iterator); - void (container_type::* _F_erase_range)(const_iterator, - const_iterator); + iterator (container_type::* _F_erase_point)(const_iterator); + iterator (container_type::* _F_erase_range)(const_iterator, + const_iterator); erase_base() : _F_erase_point(&container_type::erase), @@ -338,9 +338,9 @@ namespace __gnu_test typedef typename container_type::iterator iterator; typedef typename container_type::const_iterator const_iterator; - void (container_type::* _F_erase_point)(const_iterator); - void (container_type::* _F_erase_range)(const_iterator, - const_iterator); + iterator (container_type::* _F_erase_point)(const_iterator); + iterator (container_type::* _F_erase_range)(const_iterator, + const_iterator); erase_base() : _F_erase_point(&container_type::erase), |