Paolo Carlini
03d7aff6ee
re PR libstdc++/57065 (incorrect default allocator template for debug and profile unordered_map)
...
2013-04-25 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/57065
* include/debug/unordered_map (unordered_map, unordered_multimap):
Fix default allocator type.
* include/profile/unordered_map (unordered_map, unordered_multimap):
Likewise.
* include/bits/unordered_map.h: Fix comments.
From-SVN: r198279
2013-04-25 09:42:46 +00:00
François Dumont
0462b6aa20
hashtable_policy.h: Add C++11 allocator support.
...
2013-04-22 François Dumont <fdumont@gcc.gnu.org>
* include/bits/hashtable_policy.h: Add C++11 allocator support.
* include/bits/hashtable.h: Likewise.
* include/bits/unordered_set.h: Likewise.
* include/bits/unordered_map.h: Likewise.
* include/debug/unordered_set: Likewise.
* include/debug/unordered_map: Likewise.
* include/std/unordered_set: Remove bits/algobase.h
include. Replace bits/alloc_traits.h by ext/alloc_traits.h.
* include/std/unordered_map: Likewise.
* include/ext/throw_allocator.h: Add checks on calls to allocator
construct/destroy.
(std::hash<__gnu_cxx::throw_value_limit>): Add conditional throw.
(std::hash<__gnu_cxx::throw_value_random>): Likewise.
* testsuite/util/regression/rand/priority_queue
/container_rand_regression_test.tcc: Adapt.
* testsuite/util/regression/rand/assoc
/container_rand_regression_test.tcc: Likewise.
* testsuite/util/testsuite_counter_type.h: Add count of destructors.
* testsuite/23_containers/unordered_set
/not_default_constructible_hash_neg.cc: Adjust dg-error line number.
* testsuite/23_containers/unordered_set/instantiation_neg.cc: Likewise.
* testsuite/23_containers/unordered_set/allocator/copy.cc: New.
* testsuite/23_containers/unordered_set/allocator/copy_assign.cc: New.
* testsuite/23_containers/unordered_set/allocator/minimal.cc: New.
* testsuite/23_containers/unordered_set/allocator/move_assign.cc: New.
* testsuite/23_containers/unordered_set/allocator/noexcept.cc: New.
* testsuite/23_containers/unordered_set/allocator/swap.cc: New.
* testsuite/23_containers/unordered_multiset/allocator/copy.cc: New.
* testsuite/23_containers/unordered_multiset/allocator/copy_assign.cc:
New.
* testsuite/23_containers/unordered_multiset/allocator/minimal.cc: New.
* testsuite/23_containers/unordered_multiset/allocator/move_assign.cc:
New.
* testsuite/23_containers/unordered_multiset/allocator/noexcept.cc: New.
* testsuite/23_containers/unordered_multiset/allocator/swap.cc: New.
* testsuite/23_containers/unordered_map/allocator/copy.cc: New.
* testsuite/23_containers/unordered_map/allocator/copy_assign.cc: New.
* testsuite/23_containers/unordered_map/allocator/minimal.cc: New.
* testsuite/23_containers/unordered_map/allocator/move_assign.cc: New.
* testsuite/23_containers/unordered_map/allocator/noexcept.cc:
New.
* testsuite/23_containers/unordered_map/allocator/swap.cc: New.
* testsuite/23_containers/unordered_multimap/allocator/copy.cc: New.
* testsuite/23_containers/unordered_multimap/allocator/copy_assign.cc:
New.
* testsuite/23_containers/unordered_multimap/allocator/minimal.cc: New.
* testsuite/23_containers/unordered_multimap/allocator/move_assign.cc:
New.
* testsuite/23_containers/unordered_multimap/allocator/noexcept.cc: New.
* testsuite/23_containers/unordered_multimap/allocator/swap.cc: New.
From-SVN: r198158
2013-04-22 20:22:07 +00:00
François Dumont
5b3be7cf99
hashtable_policy.h (_Local_iterator_base): Use _Hashtable_ebo_helper to embed functors into the local_iterator when necessary.
...
2013-01-28 François Dumont <fdumont@gcc.gnu.org>
* include/bits/hashtable_policy.h (_Local_iterator_base): Use
_Hashtable_ebo_helper to embed functors into the local_iterator
when necessary. Pass information about functors involved in hash
code by copy.
* include/bits/hashtable.h (__cache_default): Do not cache for
builtin integral types unless the hash functor is not noexcept
qualified or is not default constructible. Adapt static assertions
and local iterator instantiations.
* include/debug/unordered_set
(std::__debug::unordered_set<>::erase): Detect local iterators to
invalidate using contained node rather than generating a dummy
local_iterator instance.
(std::__debug::unordered_multiset<>::erase): Likewise.
* include/debug/unordered_map
(std::__debug::unordered_map<>::erase): Likewise.
(std::__debug::unordered_multimap<>::erase): Likewise.
* testsuite/performance/23_containers/insert_erase/41975.cc: Test
std::tr1 and std versions of unordered_set regardless of any
macro. Add test on default cache behavior.
* testsuite/performance/23_containers/insert/54075.cc: Likewise.
* testsuite/23_containers/unordered_set/instantiation_neg.cc:
Adapt line number.
* testsuite/23_containers/unordered_set/
not_default_constructible_hash_neg.cc: New.
* testsuite/23_containers/unordered_set/buckets/swap.cc: New.
From-SVN: r195517
2013-01-28 20:52:13 +00:00
Jonathan Wakely
b7202baf14
PR libstdc++/55043 (again)
...
PR libstdc++/55043 (again)
* include/bits/alloc_traits.h (allocator_traits::construct): Disable
unless construction would be well-formed.
(__allow_copy_cons, __check_copy_constructible): Define.
* include/bits/unordered_map.h (__check_copy_constructible): Use as
base class so copy constructor will be deleted if appropriate.
(is_copy_constructible): Remove specialization.
* include/bits/unordered_set.h: Likewise.
* include/debug/unordered_map.h: Undo previous commit. Default copy
and move constructors.
* include/debug/unordered_set.h: Likewise.
* include/profile/unordered_map.h: Undo previous commit.
* include/profile/unordered_set.h: Likewise.
* testsuite/23_containers/unordered_map/55043.cc: Fix test.
* testsuite/23_containers/unordered_multimap/55043.cc: Likewise.
* testsuite/23_containers/unordered_multiset/55043.cc: Likewise.
* testsuite/23_containers/unordered_set/55043.cc: Likewise.
* testsuite/23_containers/unordered_map/requirements/53339.cc: XFAIL,
cannot support incomplete types.
* testsuite/23_containers/unordered_multimap/requirements/53339.cc:
Likewise.
From-SVN: r195253
2013-01-16 23:56:00 +00:00
Jonathan Wakely
8175e9866c
re PR libstdc++/55043 (issue with nesting unordered_map containing unique_ptr into vector)
...
PR libstdc++/55043
* include/std/unordered_map: Include alloc_traits.h
* include/std/unordered_set: Likewise.
* include/bits/alloc_traits.h: Define __is_copy_insertable.
* include/bits/unordered_map.h: Use it.
* include/bits/unordered_set.h: Likewise.
* include/debug/unordered_map.h: Likewise.
* include/debug/unordered_set.h: Likewise.
* include/profile/unordered_map.h: Likewise.
* include/profile/unordered_set.h: Likewise.
* include/bits/hashtable.h: Fix comment typos.
* testsuite/23_containers/unordered_map/55043.cc: New.
* testsuite/23_containers/unordered_multimap/55043.cc: New.
* testsuite/23_containers/unordered_multiset/55043.cc: New.
* testsuite/23_containers/unordered_set/55043.cc: New.
From-SVN: r195231
2013-01-16 09:20:34 +00:00
Jason Merrill
734f50238f
* many: Replace uses of __GXX_EXPERIMENTAL_CXX0X__ with __cplusplus.
...
From-SVN: r193392
2012-11-10 12:27:22 -05:00
François Dumont
099e644e2d
unordered_map.h (unordered_map<>): Prefer aggregation to inheritance with _Hashtable.
...
2012-10-27 François Dumont <fdumont@gcc.gnu.org>
* include/bits/unordered_map.h (unordered_map<>): Prefer
aggregation to inheritance with _Hashtable.
(unordered_multimap<>): Likewise.
* include/bits/unordered_set.h
(unordered_set<>(const unordered_set&)): Use default
implementation.
(unordered_set<>(unordered_set&&)): Likewise.
(unordered_set<>::operator=(const unordered_set&)): Likewise.
(unordered_set<>::operator=(unordered_set&&)): Likewise.
(unordered_multiset<>(const unordered_multiset&)): Likewise.
(unordered_multiset<>(unordered_multiset&&)): Likewise.
(unordered_multiset<>::operator=(const unordered_multiset&)):
Likewise.
(unordered_multiset<>::operator=(unordered_multiset&&)): Likewise.
* include/debug/unordered_map (operator==): Adapt.
* include/profile/unordered_map (operator==): Adapt.
From-SVN: r192876
2012-10-27 12:20:18 +00:00
François Dumont
14cbb5d84c
formatter.h (_Debug_msg_id): Add __msg_valid_load_factor.
...
2012-10-18 François Dumont <fdumont@gcc.gnu.org>
* include/debug/formatter.h (_Debug_msg_id): Add
__msg_valid_load_factor.
* include/debug/macros.h (__glibcxx_check_max_load_factor): New.
* include/debug/unordered_set
(unordered_set<>::max_load_factor(float)): Check max load factor
is positive.
(unordered_multiset<>::max_load_factor(float)): Likewise.
* include/debug/unordered_map
(unordered_map<>::max_load_factor(float)): Likewise.
(unordered_multimap<>::max_load_factor(float)): Likewise.
* testsuite/23_containers/unordered_map/debug/max_load_factor_neg.cc:
New.
* testsuite/23_containers/unordered_multimap/debug/
max_load_factor_neg.cc: New.
* testsuite/23_containers/unordered_set/debug/max_load_factor_neg.cc:
New.
* testsuite/23_containers/unordered_multiset/debug/
max_load_factor_neg.cc: New.
From-SVN: r192575
2012-10-18 19:50:37 +00:00
François Dumont
7181e991b5
formatter.h (_Debug_msg_id): Add __msg_bucket_index_oob.
...
2012-10-16 François Dumont <fdumont@gcc.gnu.org>
* include/debug/formatter.h (_Debug_msg_id): Add
__msg_bucket_index_oob.
* include/debug/macros.h (__glibcxx_check_bucket_index): New.
* include/debug/unordered_set (unordered_set<>::begin(size_type)):
Add check on bucket index.
(unordered_set<>::begin(size_type) const): Likewise.
(unordered_set<>::cbegin(size_type) const): Likewise.
(unordered_set<>::end(size_type)): Likewise.
(unordered_set<>::end(size_type) const): Likewise.
(unordered_set<>::cend(size_type) const): Likewise.
(unordered_set<>::bucket_size(size_type)): Likewise.
(unordered_multiset<>::begin(size_type)): Likewise.
(unordered_multiset<>::begin(size_type) const): Likewise.
(unordered_multiset<>::cbegin(size_type) const): Likewise.
(unordered_multiset<>::end(size_type)): Likewise.
(unordered_multiset<>::end(size_type) const): Likewise.
(unordered_multiset<>::cend(size_type) const): Likewise.
(unordered_multiset<>::bucket_size(size_type)): Likewise.
* include/debug/unordered_map (unordered_map<>::begin(size_type)):
Likewise.
(unordered_map<>::begin(size_type) const): Likewise.
(unordered_map<>::cbegin(size_type) const): Likewise.
(unordered_map<>::end(size_type)): Likewise.
(unordered_map<>::end(size_type) const): Likewise.
(unordered_map<>::cend(size_type) const): Likewise.
(unordered_map<>::bucket_size(size_type)): Likewise.
(unordered_multimap<>::begin(size_type)): Likewise.
(unordered_multimap<>::begin(size_type) const): Likewise.
(unordered_multimap<>::cbegin(size_type) const): Likewise.
(unordered_multimap<>::end(size_type)): Likewise.
(unordered_multimap<>::end(size_type) const): Likewise.
(unordered_multimap<>::cend(size_type) const): Likewise.
(unordered_multimap<>::bucket_size(size_type)): Likewise.
* testsuite/23_containers/unordered_map/debug/bucket_size_neg.cc:
New.
* testsuite/23_containers/unordered_map/debug/begin1_neg.cc: New.
* testsuite/23_containers/unordered_map/debug/begin2_neg.cc: New.
* testsuite/23_containers/unordered_map/debug/cbegin_neg.cc: New.
* testsuite/23_containers/unordered_map/debug/end1_neg.cc: New.
* testsuite/23_containers/unordered_map/debug/end2_neg.cc: New.
* testsuite/23_containers/unordered_map/debug/cend_neg.cc: New.
* testsuite/23_containers/unordered_multimap/debug/bucket_size_neg.cc:
New.
* testsuite/23_containers/unordered_multimap/debug/begin1_neg.cc: New.
* testsuite/23_containers/unordered_multimap/debug/begin2_neg.cc: New.
* testsuite/23_containers/unordered_multimap/debug/cbegin_neg.cc: New.
* testsuite/23_containers/unordered_multimap/debug/end1_neg.cc: New.
* testsuite/23_containers/unordered_multimap/debug/end2_neg.cc: New.
* testsuite/23_containers/unordered_multimap/debug/cend_neg.cc: New.
* testsuite/23_containers/unordered_set/debug/bucket_size_neg.cc:
New.
* testsuite/23_containers/unordered_set/debug/begin1_neg.cc: New.
* testsuite/23_containers/unordered_set/debug/begin2_neg.cc: New.
* testsuite/23_containers/unordered_set/debug/cbegin_neg.cc: New.
* testsuite/23_containers/unordered_set/debug/end1_neg.cc: New.
* testsuite/23_containers/unordered_set/debug/end2_neg.cc: New.
* testsuite/23_containers/unordered_set/debug/cend_neg.cc: New.
* testsuite/23_containers/unordered_multiset/debug/bucket_size_neg.cc:
New.
* testsuite/23_containers/unordered_multiset/debug/begin1_neg.cc: New.
* testsuite/23_containers/unordered_multiset/debug/begin2_neg.cc: New.
* testsuite/23_containers/unordered_multiset/debug/cbegin_neg.cc: New.
* testsuite/23_containers/unordered_multiset/debug/end1_neg.cc: New.
* testsuite/23_containers/unordered_multiset/debug/end2_neg.cc: New.
* testsuite/23_containers/unordered_multiset/debug/cend_neg.cc: New.
From-SVN: r192512
2012-10-16 19:57:03 +00:00
Paolo Carlini
57cee56a1e
re PR libstdc++/53657 ([C++11] pair(pair&&) move constructor is non-trivial)
...
2012-07-13 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/53657
* include/bits/stl_pair.h (pair<>::pair(pair&&)): Declare defaulted,
per C++11.
* include/bits/stl_map.h (map<>::insert(_Pair&&), map<>::insert
(const_iterator, _Pair&&)): Constrain with std::is_constructible,
per LWG2005.
* include/bits/stl_multimap.h (multimap<>::insert(_Pair&&),
multimap<>::insert(const_iterator, _Pair&&)): Likewise.
* include/bits/hashtable_policy.h (_Insert<>::insert(_Pair&&),
_Insert<>::insert(const_iterator, _Pair&&)): Likewise.
* include/debug/unordered_map: Adjust.
* include/debug/map.h: Likewise.
* include/debug/multimap.h: Likewise.
* include/profile/unordered_map: Likewise.
* include/profile/map.h: Likewise.
* include/profile/multimap.h: Likewise.
From-SVN: r189456
2012-07-13 08:59:58 +00:00
Paolo Carlini
739fd6a6b3
formatter.h (enum _Debug_msg_id): Add __msg_self_move_assign.
...
2012-03-09 Paolo Carlini <paolo.carlini@oracle.com>
* include/debug/formatter.h (enum _Debug_msg_id): Add
__msg_self_move_assign.
* include/debug/macros.h (__glibcxx_check_self_move_assign): Add.
* src/c++11/debug.cc (_S_debug_messages): Update.
* include/debug/safe_iterator.h (_Safe_iterator<>::operator=
(_Safe_iterator&&)): Add check for self move assignment.
* include/debug/set.h: Likewise.
* include/debug/unordered_map: Likewise.
* include/debug/multiset.h: Likewise.
* include/debug/forward_list: Likewise.
* include/debug/unordered_set: Likewise.
* include/debug/vector: Likewise.
* include/debug/map.h: Likewise.
* include/debug/deque: Likewise.
* include/debug/string: Likewise.
* include/debug/list: Likewise.
* include/debug/multimap.h: Likewise.
* testsuite/21_strings/debug/self_move_assign_neg.cc: New.
* testsuite/21_strings/debug/iterator_self_move_assign_neg.cc: Likewise.
* testsuite/23_containers/unordered_map/debug/self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/unordered_map/debug/
iterator_self_move_assign_neg.cc: Likewise.
* testsuite/23_containers/multimap/debug/self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/multimap/debug/
iterator_self_move_assign_neg.cc: Likewise.
* testsuite/23_containers/set/debug/self_move_assign_neg.cc: Likewise.
* testsuite/23_containers/set/debug/iterator_self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multimap/debug/
self_move_assign_neg.cc: Likewise.
* testsuite/23_containers/unordered_multimap/debug/
iterator_self_move_assign_neg.cc: Likewise.
* testsuite/23_containers/forward_list/debug/self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/forward_list/debug/
iterator_self_move_assign_neg.cc: Likewise.
* testsuite/23_containers/unordered_set/debug/self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/unordered_set/debug/
iterator_self_move_assign_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/vector/debug/
iterator_self_move_assign_neg.cc: Likewise.
* testsuite/23_containers/deque/debug/self_move_assign_neg.cc: Likewise.
* testsuite/23_containers/deque/debug/iterator_self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/multiset/debug/self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/multiset/debug/
iterator_self_move_assign_neg.cc: Likewise.
* testsuite/23_containers/list/debug/self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/list/debug/iterator_self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/debug/
self_move_assign_neg.cc: Likewise.
* testsuite/23_containers/unordered_multiset/debug/
iterator_self_move_assign_neg.cc: Likewise.
* testsuite/23_containers/map/debug/self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/map/debug/iterator_self_move_assign_neg.cc:
Likewise.
From-SVN: r185134
2012-03-09 10:37:34 +00:00
François Dumont
a188284c61
re PR libstdc++/51608 ([C++11] Unordered containers end(size_type) isn't constant time)
...
2011-12-29 François Dumont <fdumont@gcc.gnu.org>
PR libstdc++/51608
* include/bits/hashtable_policy.h (_Equal_helper<>): New, change the
way the _Equal functor is used depending on whether hash code is
cached or not.
(_Ebo_helper<>): New helper type to introduce EBO when possible.
(_Hash_code_base): Use _Ebo_helper to limit memory footprint. Move
_Equal functor management...
(_Hashtable_base): ...here, new, use _Equal_helper.
(_Local_iterator_base<>, _Locale_iterator<>, _Locale_const_iterator<>):
New, use _Hash_code_base, implementation of...
* include/bits/hashtable.h (_Hashtable<>::local_iterator,
_Hashtable<>::const_local_iterator): ...those. Add static assertions
checking that some functors are empty depending on whether hash code
is cache or not.
(_Hashtable<>::_M_bucket_index): New overloads using current bucket
count, use through out the _Hastable<> implementation.
* include/bits/unordered_set.h (__unordered_set<>,
__unordered_multiset<>): Cache hash code iff hash functor is not
empty and not final.
* include/bits/unordered_map.h (__unordered_map<>,
__unordered_multimap<>): Likewise.
* include/debug/unordered_map
(unordered_map<>::_S_to_local, unordered_multimap<>::_S_to_local):
Adapt to match new local iterator implementation.
* include/debug/unordered_set (unordered_set<>::_S_to_local,
unordered_multiset<>::_S_to_local): Likewise.
* include/profile/unordered_map (unordered_map<>::_M_profile_destruct,
unordered_multimap<>::_M_profile_destruct): Enhance thanks to usage of
local iterators.
* include/profile/unordered_set (unordered_set<>::_M_profile_destruct,
unordered_multiset<>::_M_profile_destruct): Likewise.
* testsuite_files/23_containers/unordered_set/instantiation_neg.cc:
Fix error line.
* testsuite_files/23_containers/unordered_set/final_hash.cc: New.
* testsuite_files/23_containers/unordered_multiset/final_hash.cc: New.
* testsuite_files/23_containers/unordered_map/final_hash.cc: New.
* testsuite_files/23_containers/unordered_multimap/final_hash.cc: New.
From-SVN: r182727
2011-12-29 17:58:51 +00:00
François Dumont
9b81593bbc
hashtable.h (_Hashtable<>::emplace, [...]): Add.
...
2011-12-09 François Dumont <fdumont@gcc.gnu.org>
* include/bits/hashtable.h (_Hashtable<>::emplace,
_Hashtable<>::emplace_hint): Add.
* include/debug/unordered_set (unordered_set<>::emplace,
unordered_set<>::emplace_hint, unordered_multiset<>::emplace,
unordered_multiset<>::emplace_hint): Add.
* include/profile/unordered_set: Likewise.
* include/debug/unordered_map (unordered_map<>::emplace,
unordered_map<>::emplace_hint, unordered_multimap<>::emplace,
unordered_multimap<>::emplace_hint): Add.
* include/profile/unordered_map: Likewise.
* testsuite/23_containers/unordered_map/modifiers/emplace.cc: New.
* testsuite/23_containers/unordered_multimap/modifiers/emplace.cc:
New.
* testsuite/23_containers/unordered_set/modifiers/emplace.cc: New.
* testsuite/23_containers/unordered_multiset/modifiers/emplace.cc:
New.
* testsuite/util/testsuite_container_traits.h
(traits_base::has_emplace): Add and defined as std::true_type for
unordered containers.
* testsuite/util/exception/safety.h (emplace, emplace_hint): Add and
use them in basic_safety exception test case.
* doc/xml/manual/status_cxx2011.xml: Update unordered containers
status.
From-SVN: r182174
2011-12-09 20:01:04 +00:00
François Dumont
da29608a7a
re PR libstdc++/41975 ([C++0x] [DR579] unordered_set::erase performs worse when nearly empty)
...
2011-11-23 François Dumont <fdumont@gcc.gnu.org>
PR libstdc++/41975
* include/bits/hashtable.h (_Hashtable<>): Major data model
modification to limit performance impact of empty buckets in
erase(iterator) implementation.
* include/bits/hashtable_policy.h (_Hashtable_iterator,
_Hashtable_const_iterator): Remove not used anymore.
* include/bits/hashtable_policy.h (_Prime_rehash_policy): Remove
_M_grow_factor, just use natural evolution of prime numbers. Add
_M_prev_size to know when the number of buckets can be reduced.
* include/bits/unordered_set.h (__unordered_set<>,
__unordered_multiset<>), unordered_map.h (__unordered_map<>,
__unordered_multimap<>): Change default value of cache hash code
template parameter, false for integral types with noexcept hash
functor, true otherwise.
* include/debug/unordered_map, unordered_set: Adapt transformation
from iterator/const_iterator to respectively
local_iterator/const_local_iterator.
* testsuite/performance/23_containers/copy_construct/unordered_set.cc:
New.
* testsuite/23_containers/unordered_set/instantiation_neg.cc: New.
* testsuite/23_containers/unordered_set/hash_policy/rehash.cc: New.
* testsuite/23_containers/unordered_multiset/cons/copy.cc: New.
* testsuite/23_containers/unordered_multiset/erase/1.cc,
24061-multiset.cc: Add checks on the number of bucket elements.
* testsuite/23_containers/unordered_multiset/insert/multiset_range.cc,
multiset_single.cc, multiset_single_move.cc: Likewise.
From-SVN: r181677
2011-11-23 20:30:18 +00:00
Paolo Carlini
6dc88283f6
re PR libstdc++/51142 ([C++0x] map::erase(key) doesn't compile with -D_GLIBCXX_DEBUG.)
...
2011-11-15 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/51142
* include/debug/unordered_map (unordered_map<>::erase(iterator),
unordered_multimap<>::erase(iterator)): Add, consistently with
LWG 2059.
* include/debug/unordered_set (unordered_set<>::erase(iterator),
unordered_multiset<>::erase(iterator)): Likewise.
* include/debug/map.h (map<>::erase(iterator)): Likewise.
* include/debug/multimap.h (multimap<>::erase(iterator)): Likewise.
* include/profile/map.h (map<>::erase(iterator)): Likewise.
* include/profile/multimap.h (multimap<>::erase(iterator)): Likewise.
* include/bits/hashtable.h (_Hashtable<>::erase(iterator)): Likewise.
* include/bits/stl_map.h (map<>::erase(iterator)): Likewise.
* include/bits/stl_multimap.h (multimap<>::erase(iterator)): Likewise.
* include/bits/stl_tree.h (_Rb_tree<>::erase(iterator)): Likewise.
* testsuite/23_containers/unordered_map/erase/51142.cc: New.
* testsuite/23_containers/multimap/modifiers/erase/51142.cc: Likewise.
* testsuite/23_containers/set/modifiers/erase/51142.cc: Likewise.
* testsuite/23_containers/unordered_multimap/erase/51142.cc: Likewise.
* testsuite/23_containers/unordered_set/erase/51142.cc: Likewise.
* testsuite/23_containers/multiset/modifiers/erase/51142.cc: Likewise.
* testsuite/23_containers/unordered_multiset/erase/51142.cc: Likewise.
* testsuite/23_containers/map/modifiers/erase/51142.cc: Likewise.
From-SVN: r181394
2011-11-15 23:28:49 +00:00
Paolo Carlini
290df23d48
hashtable.h (_Hashtable<>::_Hashtable(_Hashtable&&)): Remove noexcept, the move constructor allocates memory...
...
2011-09-01 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/hashtable.h (_Hashtable<>::_Hashtable(_Hashtable&&)):
Remove noexcept, the move constructor allocates memory; rearrange
the code in the body to consistently update __ht._M_rehash_policy
before using _M_next_bkt on it.
* include/debug/unordered_map: Adjust.
* include/debug/unordered_set: Likewise.
* include/profile/unordered_map: Likewise.
* include/profile/unordered_set: Likewise.
* testsuite/23_containers/unordered_map/cons/
noexcept_move_construct.cc: Remove.
* testsuite/23_containers/unordered_set/cons/
noexcept_move_construct.cc: Likewise.
* testsuite/23_containers/unordered_multimap/cons/
noexcept_move_construct.cc: Likewise.
* testsuite/23_containers/unordered_multiset/cons/
noexcept_move_construct.cc: Likewise.
From-SVN: r178423
2011-09-01 15:45:20 +00:00
François Dumont
364c862b4d
safe_unordered_sequence.h, [...]: Rename respectively in...
...
2011-07-21 François Dumont <francois.cppdevs@free.fr>
* include/debug/safe_unordered_sequence.h,
safe_unordered_sequence.tcc: Rename respectively in...
* include/debug/safe_unordered_container.h,
safe_unordered_container.tcc: ...those. _Safe_unordered_sequence
rename _Safe_unordered_container.
* include/debug/safe_unordered_base.h: _Safe_unordered_sequence_base
rename _Safe_unordered_container_base.
* include/debug/unordered_map, unordered_set: Adapt to previous
modifications.
* config/abi/pre/gnu.ver: Likewise.
* src/debug.cc: Likewise.
* include/Makefile.am: Likewise.
* include/Makefile.in: Regenerate.
From-SVN: r176584
2011-07-21 19:56:36 +00:00
François Dumont
77e0bf4e07
safe_unordered_base.h, [...]: New, support for unordered sequence safe local iterators.
...
2011-07-19 François Dumont <francois.cppdevs@free.fr>
* include/debug/safe_unordered_base.h, safe_unordered_sequence.h,
safe_unordered_sequence.tcc, safe_local_iterator.h,
safe_local_iterator.tcc: New, support for unordered sequence safe
local iterators.
* include/Makefile.am: Add previous files.
* include/Makefile.in: Regenerate.
* include/debug/unordered_map, unordered_set: Implement
_Safe_unordered_sequence and expose _Safe_local_iterator.
* include/debug/safe_iterator.h, safe_iterator.tcc: Refactor
_Safe_iterator::_M_get_distance static method to expose it as
__get_distance function and use it in _Safe_local_iterator type.
* include/debug/formatter.h: Add __msg_local_iter_compare_bad
_Debug_msg_id enum entry to notify invalid comparison between local
iterators from different buckets. Add _Parameter constructor from
_Safe_local_iterator.
* include/debug/functions.h: Add __valid_range overload for
_Safe_local_iterator.
* src/debug.cc: Add _Safe_unordered_sequence_base and
_Safe_local_iterator_base methods implementations.
* config/abi/pre/gnu.ver: Add export of some
_Safe_unordered_sequence_base and _Safe_local_iterator_base methods.
* testsuite/util/debug/checks.h: Add use_invalid_iterator function to
simulate use of a singular iterator.
* testsuite/util/debug/unordered_checks.h: New, several functions
to simulate classic invalid usage of unordered sequence local
iterators.
* testsuite/23_containers/unordered_map/debug/
use_erased_local_iterator_neg.cc, invalid_local_iterator_range_neg.cc,
use_invalid_local_iterator_neg.cc, use_invalid_iterator_neg.cc,
invalid_local_iterator_compare_neg.cc: New.
* testsuite/23_containers/unordered_multimap/debug/
use_erased_local_iterator_neg.cc, invalid_local_iterator_range_neg.cc,
use_invalid_local_iterator_neg.cc, use_invalid_iterator_neg.cc,
invalid_local_iterator_compare_neg.cc: New.
* testsuite/23_containers/unordered_set/debug/
use_erased_local_iterator_neg.cc, invalid_local_iterator_range_neg.cc,
use_invalid_local_iterator_neg.cc, use_invalid_iterator_neg.cc,
invalid_local_iterator_compare_neg.cc: New.
* testsuite/23_containers/unordered_multiset/debug/
use_erased_local_iterator_neg.cc, invalid_local_iterator_range_neg.cc,
use_invalid_local_iterator_neg.cc, use_invalid_iterator_neg.cc,
invalid_local_iterator_compare_neg.cc: New.
From-SVN: r176487
2011-07-19 19:39:45 +00:00
François Dumont
4c2d93dbfa
set.h, [...]: Remove base class default constructor calls.
...
2011-06-29 François Dumont <francois.cppdevs@free.fr>
* include/debug/set.h, unordered_map, multiset.h, forward_list,
unordered_set, vector, deque, string, list, multimap.h: Remove base
class default constructor calls.
* include/debug/map.h: Likewise and cleanup several redefinition of
base iterator typedef.
From-SVN: r175665
2011-06-29 20:11:50 +00:00
Paolo Carlini
6f59ea252b
hashtable.h (_Hashtable<>::_Hashtable(_Hashtable&&)): Use std::move on the allocator, use noexcept.
...
2011-06-01 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/hashtable.h (_Hashtable<>::_Hashtable(_Hashtable&&)):
Use std::move on the allocator, use noexcept.
(_Hashtable<>::~_Hashtable): Use noexcept.
* include/bits/stl_list.h: Likewise.
* include/bits/forward_list.h: Likewise.
* include/bits/stl_vector.h: Likewise.
* include/bits/stl_bvector.h: Likewise.
* include/bits/stl_map.h (map<>::map(map&&)): Use noexcept.
* include/bits/stl_set.h: Likewise.
* include/bits/stl_multimap.h: Likewise.
* include/bits/stl_multiset.h: Likewise.
* include/bits/stl_tree.h (_Rb_tree<>::_Rb_tree(_Rb_tree&&)): Use
std::move on the allocator.
(_Rb_tree<>::~_Rb_tree): Use noexcept.
* include/bits/stl_deque.h: Likewise.
* include/bits/basic_string.h (basic_string<>::~basic_string): Use
noexcept.
* include/ext/vstring.h (__versa_string<>::~__versa_string): Likewise.
* include/debug/set.h: Adjust.
* include/debug/unordered_map: Likewise.
* include/debug/multiset.h: Likewise.
* include/debug/forward_list: Likewise.
* include/debug/vector: Likewise.
* include/debug/unordered_set: Likewise.
* include/debug/deque: Likewise.
* include/debug/map.h: Likewise.
* include/debug/string: Likewise.
* include/debug/list: Likewise.
* include/debug/multimap.h: Likewise.
* include/profile/set.h: Likewise.
* include/profile/unordered_map: Likewise.
* include/profile/multiset.h: Likewise.
* include/profile/forward_list: Likewise.
* include/profile/unordered_set: Likewise.
* include/profile/vector: Likewise.
* include/profile/deque: Likewise.
* include/profile/map.h: Likewise.
* include/profile/list: Likewise.
* include/profile/multimap.h: Likewise.
* testsuite/21_strings/basic_string/cons/wchar_t/
noexcept_move_construct.cc: New.
* testsuite/21_strings/basic_string/cons/char/
noexcept_move_construct.cc: Likewise.
* testsuite/ext/vstring/cons/noexcept_move_construct.cc: Likewise.
* testsuite/23_containers/unordered_map/cons/
noexcept_move_construct.cc: Likewise.
* testsuite/23_containers/multimap/cons/
noexcept_move_construct.cc: Likewise.
* testsuite/23_containers/set/cons/
noexcept_move_construct.cc: Likewise.
* testsuite/23_containers/unordered_multimap/cons/
noexcept_move_construct.cc: Likewise.
* testsuite/23_containers/forward_list/cons/
noexcept_move_construct.cc: Likewise.
* testsuite/23_containers/unordered_set/cons/
noexcept_move_construct.cc: Likewise.
* testsuite/23_containers/vector/bool/cons/
noexcept_move_construct.cc: Likewise.
* testsuite/23_containers/vector/cons/
noexcept_move_construct.cc: Likewise.
* testsuite/23_containers/multiset/cons/
noexcept_move_construct.cc: Likewise.
* testsuite/23_containers/list/cons/
noexcept_move_construct.cc: Likewise.
* testsuite/23_containers/unordered_multiset/cons/
noexcept_move_construct.cc: Likewise.
* testsuite/23_containers/map/cons/noexcept_move_construct.cc
* testsuite/23_containers/forward_list/requirements/dr438/
assign_neg.cc: Adjust dg-error line numbers.
* testsuite/23_containers/forward_list/requirements/dr438/
insert_neg.cc: Likewise.
* testsuite/23_containers/forward_list/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/forward_list/requirements/dr438/
constructor_2_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/
assign_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/
insert_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/
constructor_2_neg.cc: Likewise.
* testsuite/23_containers/deque/requirements/dr438/
assign_neg.cc: Likewise.
* testsuite/23_containers/deque/requirements/dr438/
insert_neg.cc: Likewise.
* testsuite/23_containers/deque/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/deque/requirements/dr438/
constructor_2_neg.cc: Likewise.
* testsuite/23_containers/list/requirements/dr438/
assign_neg.cc: Likewise.
* testsuite/23_containers/list/requirements/dr438/
insert_neg.cc: Likewise.
* testsuite/23_containers/list/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/list/requirements/dr438/
constructor_2_neg.cc: Likewise.
* include/bits/move.h (swap): Use __and_ in the noexcept.
* include/bits/algorithmfwd.h: Adjust.
From-SVN: r174525
2011-06-01 14:16:19 +00:00
Paolo Carlini
d3677132a2
list.cc: Use noexcept per the FDIS.
...
2011-05-26 Paolo Carlini <paolo.carlini@oracle.com>
* src/list.cc: Use noexcept per the FDIS.
* src/compatibility-list-2.cc: Likewise.
* include/debug/set.h: Likewise.
* include/debug/unordered_map: Likewise.
* include/debug/multiset.h: Likewise.
* include/debug/forward_list: Likewise.
* include/debug/unordered_set: Likewise.
* include/debug/vector: Likewise.
* include/debug/map.h: Likewise.
* include/debug/deque: Likewise.
* include/debug/list: Likewise.
* include/debug/multimap.h: Likewise.
* include/profile/set.h: Likewise.
* include/profile/unordered_map: Likewise.
* include/profile/multiset.h: Likewise.
* include/profile/forward_list: Likewise.
* include/profile/vector: Likewise.
* include/profile/unordered_set: Likewise.
* include/profile/map.h: Likewise.
* include/profile/deque: Likewise.
* include/profile/list: Likewise.
* include/profile/multimap.h: Likewise.
* include/bits/hashtable.h: Likewise.
* include/bits/stl_list.h: Likewise.
* include/bits/stl_map.h: Likewise.
* include/bits/hashtable_policy.h: Likewise.
* include/bits/stl_set.h: Likewise.
* include/bits/forward_list.h: Likewise.
* include/bits/stl_multimap.h: Likewise.
* include/bits/stl_vector.h: Likewise.
* include/bits/stl_deque.h: Likewise.
* include/bits/stl_multiset.h: Likewise.
* include/bits/stl_bvector.h: Likewise.
* include/bits/stl_tree.h: Likewise.
From-SVN: r174295
2011-05-26 15:35:02 +00:00
Benjamin Kosnik
12ffa22844
PR libstdc++/36104 part four
...
2011-01-30 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/36104 part four
* include/bits/c++config (_GLIBCXX_STD): Remove.
(_GLIBCXX_STD_D, _GLIBCXX_PR): Now _GLIBCXX_STD_C.
(_GLIBCXX_P): Now _GLIBCXX_STD_A.
(_GLIBCXX_NAMESPACE_DEBUG, _GLIBCXX_NAMESPACE_PARALLEL,
_GLIBCXX_NAMESPACE_PROFILE, _GLIBCXX_NAMESPACE_VERSION): Remove.
(_GLIBCXX_INLINE_DEBUG, _GLIBCXX_INLINE_PARALLEL,
_GLIBCXX_INLINE_PROFILE): Remove.
(_GLIBCXX_BEGIN_NAMESPACE(X)): Remove.
(_GLIBCXX_END_NAMESPACE): Remove.
(_GLIBCXX_BEGIN_NESTED_NAMESPACE(X, Y)): Remove.
(_GLIBCXX_END_NESTED_NAMESPACE): Remove.
(_GLIBCXX_BEGIN_NAMESPACE_ALGO): Add.
(_GLIBCXX_END_NAMESPACE_ALGO): Add.
(_GLIBCXX_BEGIN_NAMESPACE_CONTAINER): Add.
(_GLIBCXX_END_NAMESPACE_CONTAINER): Add.
(_GLIBCXX_BEGIN_NAMESPACE_VERSION): Add.
(_GLIBCXX_END_NAMESPACE_VERSION): Add.
(_GLIBCXX_BEGIN_LDBL_NAMESPACE): To _GLIBCXX_BEGIN_NAMESPACE_LDBL.
(_GLIBCXX_END_LDBL_NAMESPACE): To _GLIBCXX_END_NAMESPACE_LDBL.
(_GLIBCXX_VISIBILITY_ATTR): Revert to _GLIBCXX_VISIBILITY.
* include/*: Use new macros for namespace scope.
* config/*: Same.
* src/*: Same.
* src/Makefile.am (sources): Remove debug_list.cc, add
compatibility-debug_list-2.cc.
(parallel_sources): Remove parallel_list.cc, add
compatibility-parallel_list-2.cc.
(compatibility-parallel_list-2.[o,lo]): New rule.
* src/Makefile.in: Regenerate.
* src/debug_list.cc: Remove.
* src/parallel_list.cc: Remove.
* src/compatibility-list-2.cc: New.
* src/compatibility-debug_list-2.cc: New.
* src/compatibility-parallel_list-2.cc: New.
* doc/doxygen/user.cfg.in: Adjust macros.
* testsuite/20_util/auto_ptr/assign_neg.cc: Adjust line numbers, macros.
* testsuite/20_util/declval/requirements/1_neg.cc: Same.
* testsuite/20_util/duration/requirements/typedefs_neg1.cc: Same.
* testsuite/20_util/duration/requirements/typedefs_neg2.cc: Same.
* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Same.
* testsuite/20_util/forward/c_neg.cc: Same.
* testsuite/20_util/forward/f_neg.cc: Same.
* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Same.
* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Same.
* testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Same.
* testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Same.
* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Same.
* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Same.
* testsuite/23_containers/deque/requirements/dr438/assign_neg.cc: Same.
* testsuite/23_containers/deque/requirements/dr438/
constructor_1_neg.cc: Same.
* testsuite/23_containers/deque/requirements/dr438/
constructor_2_neg.cc: Same.
* testsuite/23_containers/deque/requirements/dr438/insert_neg.cc: Same.
* testsuite/23_containers/forward_list/capacity/1.cc: Same.
* testsuite/23_containers/forward_list/requirements/dr438/
assign_neg.cc: Same.
* testsuite/23_containers/forward_list/requirements/dr438/
constructor_1_neg.cc: Same.
* testsuite/23_containers/forward_list/requirements/dr438/
constructor_2_neg.cc: Same.
* testsuite/23_containers/forward_list/requirements/dr438/
insert_neg.cc: Same.
* testsuite/23_containers/list/capacity/29134.cc: Same.
* testsuite/23_containers/list/requirements/dr438/assign_neg.cc: Same.
* testsuite/23_containers/list/requirements/dr438/
constructor_1_neg.cc: Same.
* testsuite/23_containers/list/requirements/dr438/
constructor_2_neg.cc: Same.
* testsuite/23_containers/list/requirements/dr438/insert_neg.cc: Same.
* testsuite/23_containers/vector/bool/capacity/29134.cc: Same.
* testsuite/23_containers/vector/bool/modifiers/insert/31370.cc: Same.
* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc: Same.
* testsuite/23_containers/vector/requirements/dr438/
constructor_1_neg.cc: Same.
* testsuite/23_containers/vector/requirements/dr438/
constructor_2_neg.cc: Same.
* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc: Same.
* testsuite/25_algorithms/sort/35588.cc: Same.
* testsuite/27_io/ios_base/cons/assign_neg.cc: Same.
* testsuite/27_io/ios_base/cons/copy_neg.cc: Same.
* testsuite/ext/profile/mutex_extensions_neg.cc: Same.
* testsuite/ext/profile/profiler_algos.cc: Same.
* testsuite/ext/type_traits/add_unsigned_floating_neg.cc: Same.
* testsuite/ext/type_traits/add_unsigned_integer_neg.cc: Same.
* testsuite/ext/type_traits/remove_unsigned_floating_neg.cc: Same.
* testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Same.
* testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc: Same.
From-SVN: r169421
2011-01-30 22:39:36 +00:00
François Dumont
d3b8263e20
unordered_map (unordered_multimap<>::erase): Fix to erase all elements associated to the key.
...
2010-11-27 François Dumont <francois.cppdevs@free.fr>
* include/debug/unordered_map (unordered_multimap<>::erase): Fix to
erase all elements associated to the key.
* include/debug/unordered_set (unordered_multiset<>::erase): Likewise.
* testsuite/23_containers/unordered_multimap/erase/1.cc: Modify to
check for multiple erase.
* testsuite/23_containers/unordered_multiset/erase/1.cc: Likewise.
From-SVN: r167199
2010-11-27 13:09:47 +00:00
François Dumont
d66411ba66
2010-11-27 François Dumont <francois.cppdevs@free.fr>
...
* include/debug/unordered_map, unordered_set (unordered_map<>::insert,
unordered_multimap<>::insert, unordered_set<>::insert,
unordered_multiset<>::insert) Debug check iterator hint and pass it to
normal implementation.
From-SVN: r167198
2010-11-27 12:51:58 +00:00
François Dumont
afe96d415d
debug.cc: Introduce a mutex pool in get_safe_base_mutex.
...
2010-11-25 François Dumont <francois.cppdevs@free.fr>
* src/debug.cc: Introduce a mutex pool in get_safe_base_mutex.
Move code used to manipulate sequence safe iterators from safe
iterator methods to safe sequence ones. Remove usage of safe iterator
mutex, keep _Safe_iterator_base::_M_get_mutex for library backward
binary compatibility.
* src/Makefile.am: Build debug.cc in gnu++0x mode for _Hash_impl usage.
* src/Makefile.in: Regenerate
* include/debug/safe_base.h: Add _Safe_iterator_base _M_invalidate
and _M_reset. Add _Safe_sequence_base _M_attach, _M_attach_single,
_M_detach and _M_detach_single.
* include/debug.safe_iterator.h, safe_iterator.tcc: Remove
_Safe_iterator _M_invalidate and _M_invalidate_single. Implement all
methods in terms of normal iterators rather than safe ones.
* include/debug/safe_sequence.h: Replace _Safe_sequence
_M_transfe_iter with _M_transfer_from_if taking the source sequence
and a predicate signaling when a safe iterator shall be transfered.
Add _Equal_to predicate.
* include/debug/safe_sequence.tcc: New.
* include/Makefile.am: Adjust.
* include/Makefile.in: Regenerate.
* include/debug/forward_list: Swap safe iterators in move constructor.
Do not invalidate before begin in _M_invalidate_all method.
Reimplement safe methods using normal iterators rather than safe ones.
* include/debug/set.h, unordered_map, multiset.h, vector,
unordered_set, deque, map.h, list, multimap.h: Reimplement safe method
using normal iterators rather than safe ones.
* testsuite/23_containers/forward_list/debug/clear.cc, swap.cc,
move_constructor.cc, splice_after.cc, splice_after1.cc,
splice_after2.cc, splice_after3.cc, splice_after4.cc: New.
* testsuite/23_containers/vector/debug/multithreaded_swap.cc: New.
From-SVN: r167152
2010-11-25 20:53:39 +00:00
Paolo Carlini
fb7342fd6f
PR libstdc++/44436 (partial)
...
2010-10-28 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/44436 (partial)
* include/bits/hashtable.h (_Hashtable<>::insert(value_type&&),
insert(_Pair&&), insert(const_iterator, value_type&&),
insert(const_iterator, _Pair&&)): Add.
(_M_allocate_node, _M_insert, _M_insert_bucket): Templatize.
* include/bits/hashtable_policy.h (__detail::_Select1st): Add; use
it throughout.
(_Map_base<>::operator[](_Key&&)): Add.
* include/bits/unordered_map.h: Use __detail::_Select1st throughout.
* include/debug/unordered_map: Update.
* include/debug/unordered_set: Likewise.
* include/profile/unordered_map: Likewise.
* include/profile/unordered_set: Likewise.
* testsuite/util/testsuite_rvalref.h (struct hash<rvalstruct>): Add;
minor tweaks throughout, use deleted special members.
* testsuite/23_containers/unordered_map/insert/map_single_move-1.cc:
New.
* testsuite/23_containers/unordered_map/insert/map_single_move-2.cc:
Likewise.
* testsuite/23_containers/unordered_map/insert/array_syntax_move.cc:
Likewise.
* testsuite/23_containers/unordered_multimap/insert/
multimap_single_move-1.cc: Likewise.
* testsuite/23_containers/unordered_multimap/insert/
multimap_single_move-2.cc: Likewise.
* testsuite/23_containers/unordered_set/insert/set_single_move.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/insert/
multiset_single_move.cc: Likewise.
* testsuite/23_containers/unordered_map/insert/array_syntax.cc:
Minor cosmetic changes.
From-SVN: r166030
2010-10-28 16:01:05 +00:00
Paolo Carlini
1f5ca1a15c
[multiple changes]
...
2010-08-29 Paolo Carlini <paolo.carlini@oracle.com>
* testsuite/23_containers/bitset/invalidation: Move...
* testsuite/23_containers/bitset/debug/invalidation: ... here.
* testsuite/23_containers/deque/invalidation: Move...
* testsuite/23_containers/deque/debug/invalidation: ... here.
* testsuite/23_containers/list/invalidation: Move...
* testsuite/23_containers/list/debug/invalidation: ... here.
* testsuite/23_containers/map/invalidation: Move...
* testsuite/23_containers/map/debug/invalidation: ... here.
* testsuite/23_containers/multimap/invalidation: Move...
* testsuite/23_containers/multimap/debug/invalidation: ... here.
* testsuite/23_containers/set/invalidation: Move...
* testsuite/23_containers/set/debug/invalidation: ... here.
* testsuite/23_containers/multiset/invalidation: Move...
* testsuite/23_containers/multiset/debug/invalidation: ... here.
* testsuite/23_containers/vector/invalidation: Move...
* testsuite/23_containers/vector/debug/invalidation: ... here.
2010-08-29 François Dumont <francois.cppdevs@free.fr>
* include/bits/stl_algobase.h (_Iter_base): Move...
* include/bits/stl_iterator_base_types.h: ...here.
* include/debug/functions.h (__check_valid_range, __check_string,
__check_sorted): Fix to not depend on _GLIBCXX_DEBUG; include
formatter.h and use formatting macros for a consistent debug result.
* include/debug/formatter.h (__check_singular): Declare; do not
include debug.h.
* include/debug/debug.h: Do not include formatter.h.
* include/debug/safe_iterator.h (_Safe_iterator::_Base_Iterator)
rename to iterator_type.
(__gnu_debug::__base): Add.
* include/debug/set.h: Use everywhere __gnu_debug::__base once
iterator range valided.
* include/debug/unordered_map: Likewise.
* include/debug/multiset.h: Likewise.
* include/debug/vector: Likewise.
* include/debug/unordered_set: Likewise.
* include/debug/deque: Likewise.
* include/debug/map.h: Likewise.
* include/debug/string: Likewise.
* include/debug/list: Likewise.
* include/debug/multimap.h: Likewise.
* testsuite/23_containers/util/debug/assign_neg.h: New test cases on
debug checks performed on container assign operation.
* testsuite/23_containers/util/debug/construct_neg.h: New test cases
on debug checks on constructors.
* testsuite/23_containers/util/debug/insert_neg.h: New test cases on
debug checks performed on container insert operations.
* testsuite/23_containers/unordered_map/debug/cont_traits.h,
debug_cont_traits.h, construct1_neg.cc, construct2_neg.cc,
construct3_neg.cc, construct4_neg.cc, insert1_neg.cc, insert2_neg.cc,
insert3_neg.cc, insert4_neg.cc: New.
* testsuite/23_containers/multimap/debug/cont_traits.h,
debug_cont_traits.h, construct1_neg.cc, construct2_neg.cc,
construct3_neg.cc, construct4_neg.cc, insert1_neg.cc, insert2_neg.cc,
insert3_neg.cc, insert4_neg.cc: Likewise.
* testsuite/23_containers/set/debug/cont_traits.h,
debug_cont_traits.h, construct1_neg.cc, construct2_neg.cc,
construct3_neg.cc, construct4_neg.cc, insert1_neg.cc, insert2_neg.cc,
insert3_neg.cc, insert4_neg.cc: Likewise.
* testsuite/23_containers/unordered_multimap/debug/cont_traits.h,
debug_cont_traits.h, construct1_neg.cc, construct2_neg.cc,
construct3_neg.cc, construct4_neg.cc, insert1_neg.cc, insert2_neg.cc,
insert3_neg.cc, insert4_neg.cc: Likewise.
* testsuite/23_containers/unordered_set/debug/cont_traits.h,
debug_cont_traits.h, construct1_neg.cc, construct2_neg.cc,
construct3_neg.cc, construct4_neg.cc, insert1_neg.cc, insert2_neg.cc,
insert3_neg.cc, insert4_neg.cc: Likewise.
* testsuite/23_containers/multiset/debug/cont_traits.h,
debug_cont_traits.h, construct1_neg.cc, construct2_neg.cc,
construct3_neg.cc, construct4_neg.cc, insert1_neg.cc, insert2_neg.cc,
insert3_neg.cc, insert4_neg.cc: Likewise.
* testsuite/23_containers/unordered_multiset/debug/cont_traits.h,
debug_cont_traits.h, construct1_neg.cc, construct2_neg.cc,
construct3_neg.cc, construct4_neg.cc, insert1_neg.cc, insert2_neg.cc,
insert3_neg.cc, insert4_neg.cc: Likewise.
* testsuite/23_containers/map/debug/cont_traits.h,
debug_cont_traits.h, construct1_neg.cc, construct2_neg.cc,
construct3_neg.cc, construct4_neg.cc, insert1_neg.cc, insert2_neg.cc,
insert3_neg.cc, insert4_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/cont_traits.h,
debug_cont_traits.h, assign1_neg.cc, assign2_neg.cc, assign3_neg.cc,
assign4_neg.cc, construct1_neg.cc, construct2_neg.cc,
construct3_neg.cc, construct4_neg.cc, insert1_neg.cc, insert2_neg.cc,
insert3_neg.cc, insert4_neg.cc: Likewise.
* testsuite/23_containers/deque/debug/cont_traits.h,
debug_cont_traits.h, assign1_neg.cc, assign2_neg.cc, assign3_neg.cc,
assign4_neg.cc, construct1_neg.cc, construct2_neg.cc,
construct3_neg.cc, construct4_neg.cc, insert1_neg.cc, insert2_neg.cc,
insert3_neg.cc, insert4_neg.cc: Likewise.
* testsuite/23_containers/list/debug/cont_traits.h,
debug_cont_traits.h, assign1_neg.cc, assign2_neg.cc, assign3_neg.cc,
assign4_neg.cc, construct1_neg.cc, construct2_neg.cc,
construct3_neg.cc, construct4_neg.cc, insert1_neg.cc, insert2_neg.cc,
insert3_neg.cc, insert4_neg.cc: Likewise.
* testsuite/performance/23_containers/range_construct/
list_construct1.cc: New, validate performance impact of the patch
on the debug mode.
* testsuite/performance/23_containers/range_construct/
list_construct2.cc: Likewise.
* testsuite/performance/23_containers/range_construct/
vector_construct.cc: Likewise.
* testsuite/performance/23_containers/range_construct/
deque_construct.cc: Likewise.
From-SVN: r163628
2010-08-29 17:39:00 +00:00
Paolo Carlini
417e896ead
hashtable.h (_Hashtable<>::operator=(const _Hashtable&)): Move inline.
...
2010-08-13 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/hashtable.h (_Hashtable<>::operator=(const
_Hashtable&)): Move inline.
(operator=(_Hashtable&&)): Define.
* include/bits/unordered_map.h (unordered_map(unordered_map&&),
unordered_map(const unordered_map&), unordered_multimap
(unordered_multimap&&), unordered_multimap(const unordered_multimap&),
__unordered_map(__unordered_map&&), __unordered_map(const
__unordered_map&), __unordered_multimap(__unordered_multimap&&),
__unordered_multimap(const __unordered_multimap&)): Do not define,
leave implicit.
* include/bits/unordered_set.h (unordered_set(unordered_set&&),
unordered_set(const unordered_set&), unordered_multiset
(unordered_multiset&&), unordered_multiset(const unordered_multiset&),
__unordered_set(__unordered_set&&), __unordered_set(const
__unordered_set&), __unordered_multiset(__unordered_multiset&&),
__unordered_multiset(const __unordered_multiset&)): Likewise.
* include/bits/unordered_map.h (__unordered_map(initializer_list<>),
__unordered_map<>::operator=(initializer_list<>),
__unordered_multimap(initializer_list<>), __unordered_multimap<>::
operator=(initializer_list<>)): Add.
* include/bits/unordered_set.h (__unordered_set(initializer_list<>),
__unordered_set<>::operator=(initializer_list<>),
__unordered_multiset(initializer_list<>), __unordered_multiset<>::
operator=(initializer_list<>)): Likewise.
* include/bits/unordered_map.h (__unordered_map(_InputIterator,
_InputIterator, size_type __n), unordered_map(_InputIterator,
_InputIterator, size_type __n), unordered_map(initializer_list<>,
size_type __n), unordered_multimap(initializer_list<>, size_type __n)):
Fix __n default to 0.
* include/bits/unordered_set.h (__unordered_set(_InputIterator,
_InputIterator, size_type __n), unordered_set(_InputIterator,
_InputIterator, size_type __n), unordered_set(initializer_list<>,
size_type __n), unordered_multiset(initializer_list<>, size_type __n)):
Likewise.
* include/debug/unordered_map (unordered_map(_InputIterator,
_InputIterator, size_type __n), unordered_map(initializer_list<>,
size_type __n), unordered_map(_InputIterator, _InputIterator,
size_type __n), unordered_multimap(initializer_list<>, size_type __n)):
Likewise.
* include/debug/unordered_set (unordered_set(_InputIterator,
_InputIterator, size_type __n), unordered_set(initializer_list<>,
size_type __n), unordered_set(_InputIterator, _InputIterator,
size_type __n), unordered_multiset(initializer_list<>, size_type __n)):
Likewise.
* include/profile/unordered_map (unordered_map(_InputIterator,
_InputIterator, size_type __n), unordered_map(initializer_list<>,
size_type __n), unordered_map(_InputIterator, _InputIterator,
size_type __n), unordered_multimap(initializer_list<>, size_type __n)):
Likewise.
* include/profile/unordered_set (unordered_set(_InputIterator,
_InputIterator, size_type __n), unordered_set(initializer_list<>,
size_type __n), unordered_set(_InputIterator, _InputIterator,
size_type __n), unordered_multiset(initializer_list<>, size_type __n)):
Likewise.
From-SVN: r163236
2010-08-14 01:00:23 +00:00
Paolo Carlini
5f1fd3469f
move.h (forward): Update to N3092.
...
2010-08-05 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/move.h (forward): Update to N3092.
(identity): Remove (US 92 is NAD).
* include/debug/set.h: Fix move constructor to simply use move.
* include/debug/unordered_map: Likewise.
* include/debug/multiset.h: Likewise.
* include/debug/vector: Likewise.
* include/debug/unordered_set: Likewise.
* include/debug/deque: Likewise.
* include/debug/map.h: Likewise.
* include/debug/string: Likewise.
* include/debug/list: Likewise.
* include/debug/multimap.h: Likewise.
* include/profile/set.h: Likewise.
* include/profile/unordered_map: Likewise.
* include/profile/multiset.h: Likewise.
* include/profile/unordered_set: Likewise.
* include/profile/vector: Likewise.
* include/profile/deque: Likewise.
* include/profile/map.h: Likewise.
* include/profile/list: Likewise.
* include/profile/multimap.h: Likewise.
* include/ext/vstring.h: Likewise.
* include/bits/stl_list.h: Likewise.
* include/bits/stl_map.h: Likewise.
* include/bits/stl_set.h: Likewise.
* include/bits/forward_list.h: Likewise.
* include/bits/stl_multimap.h: Likewise.
* include/bits/unordered_map.h: Likewise.
* include/bits/stl_vector.h: Likewise.
* include/bits/stl_deque.h: Likewise.
* include/bits/stl_multiset.h: Likewise.
* include/bits/unordered_set.h: Likewise.
* include/bits/stl_bvector.h: Likewise.
* testsuite/20_util/identity/value.cc: Remove
* testsuite/20_util/identity/requirements/typedefs.cc: Likewise.
* testsuite/20_util/identity/requirements/explicit_instantiation.cc:
Likewise.
From-SVN: r162898
2010-08-05 07:34:08 +00:00
Paolo Carlini
c878d6baf6
unordered_map: Clean-up includes and guards.
...
2010-03-30 Paolo Carlini <paolo.carlini@oracle.com>
* include/debug/unordered_map: Clean-up includes and guards.
* include/debug/unordered_set: Likewise.
* include/debug/list: Likewise.
* include/profile/unordered_map: Likewise.
* include/profile/unordered_set: Likewise.
From-SVN: r157818
2010-03-30 10:59:17 +00:00
Paolo Carlini
5dc2271456
[multiple changes]
...
2010-03-25 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/unordered_map.h (operator==, operator!=): Add per N3068.
* include/bits/unordered_set.h (operator==, operator!=): Likewise.
* include/debug/unordered_map (operator==, operator!=): Likewise.
* include/debug/unordered_set: Likewise.
* include/profile/unordered_map: Likewise.
* include/profile/unordered_set: Likewise.
* testsuite/23_containers/unordered_map/operators/1.cc: New.
* testsuite/23_containers/unordered_multimap/operators/1.cc: Likewise.
* testsuite/23_containers/unordered_multimap/operators/2.cc: Likewise.
* testsuite/23_containers/unordered_set/operators/1.cc: Likewise.
* testsuite/23_containers/unordered_multiset/operators/1.cc: Likewise.
2010-03-25 John Lakos <jlakos@bloomberg.net>
Pablo Halpern <phalpern@halpernwightsoftware.com>
Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/hashtable_policy.h (struct _Equality_base): Add.
* include/bits/hashtable.h (_Hashtable<>): Derive from the latter.
From-SVN: r157736
2010-03-26 02:19:10 +00:00
Paolo Carlini
d723ced225
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
2010-03-09 01:56:42 +00:00
Paolo Carlini
932b650839
PR libstdc++/41975, DR 579
...
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: r156705
2010-02-11 18:11:01 +00:00
Paolo Carlini
ab65a4c7bd
hashtable.h: Fold in include/tr1_impl/hashtable.h contents.
...
2010-02-10 Paolo Carlini <paolo.carlini@oracle.com>
* include/tr1/hashtable.h: Fold in include/tr1_impl/hashtable.h
contents.
* include/tr1_impl/hashtable.h: Remove.
* include/tr1_impl/hashtable_policy.h: Move and rename...
* include/tr1/hashtable_policy.h: ... here.
* include/tr1_impl/unordered_map: Move and rename...
* include/tr1/unordered_map.h: ... here.
* include/tr1_impl/unordered_set: Move and rename...
* include/tr1/unordered_set.h: ... here.
* include/tr1_impl/unordered_map: Move and rename...
* include/tr1/unordered_map.h: ... here.
* include/tr1/unordered_map: Adjust.
* include/tr1/unordered_set: Likewise.
* include/Makefile.am: Adjust.
* include/Makefile.in: Regenerate.
* include/std/c++0x_warning.h: Move...
* include/bits/c++0x_warning.h: ... here.
* include/debug/unordered_map: Adjust.
* include/debug/unordered_set: Likewise.
* include/std/tuple: Likewise.
* include/std/system_error: Likewise.
* include/std/forward_list: Likewise.
* include/std/thread: Likewise.
* include/std/type_traits: Likewise.
* include/std/future: Likewise.
* include/std/regex: Likewise.
* include/std/atomic: Likewise.
* include/std/ratio: Likewise.
* include/std/random: Likewise.
* include/std/unordered_map: Likewise.
* include/std/chrono: Likewise.: Likewise.
* include/std/condition_variable: Likewise.
* include/std/mutex: Likewise.
* include/std/unordered_set: Likewise.
* include/std/array: Likewise.
* include/profile/unordered_map: Likewise.
* include/profile/unordered_set: Likewise.
* include/c_global/cinttypes: Likewise.
* include/c_global/ctgmath: Likewise.
* include/c_global/cfenv: Likewise.
* include/c_global/cstdint: Likewise.
* include/c_global/cstdbool: Likewise.
* include/c_global/ccomplex: Likewise.
* include/bits/shared_ptr.h: Do not include <bits/c++0x_warning.h>
at all, the file is not meant to be included by the users.
* include/bits/functional_hash.h: Likewise.
* include/bits/unique_ptr.h: Likewise.
* include/bits/forward_list.h: Likewise.
* testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust dg-*
line numbers.
* testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
* testsuite/23_containers/forward_list/requirements/dr438/
assign_neg.cc: Likewise.
* testsuite/23_containers/forward_list/requirements/dr438/
insert_neg.cc: Likewise.
* testsuite/23_containers/forward_list/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/forward_list/requirements/dr438/
constructor_2_neg.cc: Likewise.
* testsuite/20_util/unique_ptr/modifiers/reset_neg.cc: Likewise.
* testsuite/20_util/unique_ptr/assign/assign_neg.cc: Likewise.
From-SVN: r156667
2010-02-10 19:14:33 +00:00
Paolo Carlini
3b2524b126
hashtable.h: Fold in include/tr1_impl/hashtable.h for C++0x use.
...
2010-02-10 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/hashtable.h: Fold in include/tr1_impl/hashtable.h
for C++0x use.
* include/bits/hashtable_policy.h: New, copy and adjust for
C++0x use, include/tr1_impl/hashtable_policy.h; fix erase and
insert member functions per n3000.
* include/bits/unordered_map.h: Likewise for include/tr1_impl/
unordered_map.
* include/bits/unordered_set.h: Likewise for include/tr1_impl/
unordered_set.
* include/Makefile.am: Adjust.
* include/Makefile.in: Regenerate.
* include/tr1/unordered_map: Adjust.
* include/tr1/unordered_set: Likewise.
* include/tr1_impl/unordered_map: Adjust, now used only by tr1.
* include/tr1_impl/hashtable: Likewise.
* include/tr1_impl/hashtable_policy.h: Likewise.
* include/tr1_impl/unordered_set: Likewise.
* include/std/unordered_map: Adjust and simplify includes.
* include/std/unordered_set: Likewise.
* include/debug/unordered_map: Adjuse erase and insert members.
* include/debug/unordered_set: Likewise.
* include/profile/unordered_map: Likewise.
* include/profile/unordered_set: Likewise.
* testsuite/util/exception/safety.h: Fix for the updated erase and
insert member functions of the unordered_containers.
* testsuite/23_containers/unordered_map/erase/1.cc: New.
* testsuite/23_containers/unordered_map/erase/24061-map.cc: Likewise.
* testsuite/23_containers/unordered_map/insert/map_single.cc:
Likewise.
* testsuite/23_containers/unordered_map/insert/array_syntax.cc:
Likewise.
* testsuite/23_containers/unordered_map/insert/24061-map.cc: Likewise.
* testsuite/23_containers/unordered_map/insert/map_range.cc: Likewise.
* testsuite/23_containers/set/operators/1_neg.cc: Likewise.
* testsuite/23_containers/unordered_multimap/erase/1.cc: Likewise.
* testsuite/23_containers/unordered_multimap/erase/
24061-multimap.cc: Likewise.
* testsuite/23_containers/unordered_multimap/insert/
24061-multimap.cc: Likewise.
* testsuite/23_containers/unordered_multimap/insert/
multimap_range.cc: Likewise.
* testsuite/23_containers/unordered_multimap/insert/
multimap_single.cc: Likewise.
* testsuite/23_containers/unordered_set/erase/1.cc: Likewise.
* testsuite/23_containers/unordered_set/erase/24061-set.cc: Likewise.
* testsuite/23_containers/unordered_set/insert/set_single.cc: Likewise.
* testsuite/23_containers/unordered_set/insert/24061-set.cc: Likewise.
* testsuite/23_containers/unordered_set/insert/set_range.cc: Likewise.
* testsuite/23_containers/unordered_multiset/erase/1.cc: Likewise.
* testsuite/23_containers/unordered_multiset/erase/
24061-multiset.cc: Likewise.
* testsuite/23_containers/unordered_multiset/insert/
24061-multiset.cc: Likewise.
* testsuite/23_containers/unordered_multiset/insert/
multiset_range.cc: Likewise.
* testsuite/23_containers/unordered_multiset/insert/
multiset_single.cc: Likewise.
* testsuite/23_containers/set/operators/1_neg.cc: Tweak dg-errors
to avoid spurious fails in debug-mode.
* testsuite/23_containers/map/operators/1_neg.cc: Likewise.
From-SVN: r156661
2010-02-10 16:09:42 +00:00
Paolo Carlini
0462fd5e01
set.h: Revert last change, per DR 1204 [Ready]; mention the latter in comment.
...
2010-01-09 Paolo Carlini <paolo.carlini@oracle.com>
* include/debug/set.h: Revert last change, per DR 1204 [Ready];
mention the latter in comment.
* include/debug/unordered_map: Likewise.
* include/debug/multiset.h: Likewise.
* include/debug/vector: Likewise.
* include/debug/unordered_set: Likewise.
* include/debug/deque: Likewise.
* include/debug/map.h: Likewise.
* include/debug/list: Likewise.
* include/debug/multimap.h: Likewise.
* include/tr1_impl/unordered_map: Likewise.
* include/tr1_impl/unordered_set: Likewise.
* include/profile/set.h: Likewise.
* include/profile/unordered_map: Likewise.
* include/profile/multiset.h: Likewise.
* include/profile/unordered_set: Likewise.
* include/profile/vector: Likewise.
* include/profile/deque: Likewise.
* include/profile/map.h: Likewise.
* include/profile/list: Likewise.
* include/profile/multimap.h: Likewise.
* include/ext/vstring.h: Likewise.
* include/bits/stl_list.h: Likewise.
* include/bits/stl_map.h: Likewise.
* include/bits/stl_set.h: Likewise.
* include/bits/stl_multimap.h: Likewise.
* include/bits/stl_vector.h: Likewise.
* include/bits/stl_deque.h: Likewise.
* include/bits/stl_multiset.h: Likewise.
* include/bits/forward_list.h: Remove pre-existing check.
* include/ext/vstring.h: Likewise.
* testsuite/ext/vstring/cons/self_move_assign.cc: Remove.
* testsuite/23_containers/unordered_map/cons/self_move_assign.cc:
Likewise.
* testsuite/23_containers/multimap/cons/self_move_assign.cc: Likewise.
* testsuite/23_containers/set/cons/self_move_assign.cc: Likewise.
* testsuite/23_containers/unordered_multimap/cons/
self_move_assign.cc: Likewise.
* testsuite/23_containers/forward_list/cons/self_move_assign.cc:
Likewise.
* testsuite/23_containers/unordered_set/cons/self_move_assign.cc:
Likewise.
* testsuite/23_containers/vector/cons/self_move_assign.cc: Likewise.
* testsuite/23_containers/deque/cons/self_move_assign.cc: Likewise.
* testsuite/23_containers/multiset/cons/self_move_assign.cc: Likewise.
* testsuite/23_containers/list/cons/self_move_assign.cc: Likewise.
* testsuite/23_containers/unordered_multiset/cons/
self_move_assign.cc: Likewise.
* testsuite/23_containers/map/cons/self_move_assign.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
Adjust dg-error line numbers.
* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
Likewise.
* testsuite/23_containers/vector/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/
constructor_2_neg.cc: Likewise.
* testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
Likewise.
* testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
Likewise.
* testsuite/23_containers/deque/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/forward_list/requirements/dr438/
assign_neg.cc: Likewise.
* testsuite/23_containers/forward_list/requirements/dr438/
insert_neg.cc: Likewise.
* testsuite/23_containers/forward_list/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/forward_list/requirements/dr438/
constructor_2_neg.cc: Likewise.
* testsuite/23_containers/deque/requirements/dr438/
constructor_2_neg.cc: Likewise.
* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
Likewise.
* testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
Likewise.
* testsuite/23_containers/list/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/list/requirements/dr438/
constructor_2_neg.cc: Likewise.
From-SVN: r155756
2010-01-09 11:16:42 +00:00
Paolo Carlini
6b592ab357
set.h: Protect move assignment operator vs self assignment.
...
2010-01-08 Paolo Carlini <paolo.carlini@oracle.com>
* include/debug/set.h: Protect move assignment operator vs self
assignment.
* include/debug/unordered_map: Likewise.
* include/debug/multiset.h: Likewise.
* include/debug/vector: Likewise.
* include/debug/unordered_set: Likewise.
* include/debug/deque: Likewise.
* include/debug/map.h: Likewise.
* include/debug/list: Likewise.
* include/debug/multimap.h: Likewise.
* include/tr1_impl/unordered_map: Likewise.
* include/tr1_impl/unordered_set: Likewise.
* include/profile/set.h: Likewise.
* include/profile/unordered_map: Likewise.
* include/profile/multiset.h: Likewise.
* include/profile/unordered_set: Likewise.
* include/profile/vector: Likewise.
* include/profile/deque: Likewise.
* include/profile/map.h: Likewise.
* include/profile/list: Likewise.
* include/profile/multimap.h: Likewise.
* include/ext/vstring.h: Likewise.
* include/bits/stl_list.h: Likewise.
* include/bits/stl_map.h: Likewise.
* include/bits/stl_set.h: Likewise.
* include/bits/stl_multimap.h: Likewise.
* include/bits/stl_vector.h: Likewise.
* include/bits/stl_deque.h: Likewise.
* include/bits/stl_multiset.h: Likewise.
* include/ext/vstring.h: Use clear().
* testsuite/ext/vstring/cons/self_move_assign.cc: New.
* testsuite/23_containers/unordered_map/cons/self_move_assign.cc:
Likewise.
* testsuite/23_containers/multimap/cons/self_move_assign.cc: Likewise.
* testsuite/23_containers/set/cons/self_move_assign.cc: Likewise.
* testsuite/23_containers/unordered_multimap/cons/
self_move_assign.cc: Likewise.
* testsuite/23_containers/forward_list/cons/self_move_assign.cc:
Likewise.
* testsuite/23_containers/unordered_set/cons/self_move_assign.cc:
Likewise.
* testsuite/23_containers/vector/cons/self_move_assign.cc: Likewise.
* testsuite/23_containers/deque/cons/self_move_assign.cc: Likewise.
* testsuite/23_containers/multiset/cons/self_move_assign.cc: Likewise.
* testsuite/23_containers/list/cons/self_move_assign.cc: Likewise.
* testsuite/23_containers/unordered_multiset/cons/
self_move_assign.cc: Likewise.
* testsuite/23_containers/map/cons/self_move_assign.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
Adjust dg-error line numbers.
* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
Likewise.
* testsuite/23_containers/vector/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/
constructor_2_neg.cc: Likewise.
* testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
Likewise.
* testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
Likewise.
* testsuite/23_containers/deque/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/deque/requirements/dr438/
constructor_2_neg.cc: Likewise.
* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
Likewise.
* testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
Likewise.
* testsuite/23_containers/list/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/list/requirements/dr438/
constructor_2_neg.cc: Likewise.
* testsuite/ext/vstring/moveable.cc: Move to...
* testsuite/ext/vstring/cons/moveable.cc: ... here.
* testsuite/23_containers/unordered_map/moveable.cc: Move to...
* testsuite/23_containers/unordered_map/cons/moveable.cc ... here.
* testsuite/23_containers/multimap/moveable.cc: Move to...
* testsuite/23_containers/multimap/cons/moveable.cc: ... here.
* testsuite/23_containers/set/moveable.cc: Move to...
* testsuite/23_containers/set/cons/moveable.cc: ... here.
* testsuite/23_containers/unordered_multimap/moveable.cc: Move to...
* testsuite/23_containers/unordered_multimap/cons/moveable.cc:
... here.
* testsuite/23_containers/forward_list/moveable.cc: Move to...
* testsuite/23_containers/forward_list/cons/moveable.cc: ... here.
* testsuite/23_containers/unordered_set/moveable.cc Move to...
* testsuite/23_containers/unordered_set/moveable.cc: ... here.
* testsuite/23_containers/vector/cons/moveable.cc Move to...
* testsuite/23_containers/vector/cons/moveable2.cc: ... this.
* testsuite/23_containers/deque/cons/moveable.cc Move to...
* testsuite/23_containers/deque/cons/moveable2.cc: ... this.
* testsuite/23_containers/multiset/moveable.cc Move to...
* testsuite/23_containers/multiset/cons/moveable.cc: ... here.
* testsuite/23_containers/list/moveable.h Move to...
* testsuite/23_containers/list/cons/moveable.h: ... here.
* testsuite/23_containers/list/moveable.cc Move to...
* testsuite/23_containers/list/cons/moveable.cc: ... here.
* testsuite/23_containers/unordered_multiset/moveable.cc Move to...
* testsuite/23_containers/unordered_multiset/cons/moveable.cc:
... here.
* testsuite/23_containers/map/moveable.cc Move to...
* testsuite/23_containers/map/cons/moveable.cc: ... here.
* testsuite/23_containers/vector/moveable.cc: Move to...
* testsuite/23_containers/vector/cons/moveable.cc: ... here.
* testsuite/23_containers/deque/moveable.cc: Move to...
* testsuite/23_containers/deque/cons/moveable.cc: ... here.
From-SVN: r155754
2010-01-09 02:49:53 +00:00
Benjamin Kosnik
1ceb9e066c
bitset: Add doxygen markup.
...
2009-11-17 Benjamin Kosnik <bkoz@redhat.com>
* include/debug/bitset: Add doxygen markup.
* include/debug/deque: Same.
* include/debug/list: Same.
* include/debug/map.h: Same.
* include/debug/multimap.h: Same.
* include/debug/set.h: Same.
* include/debug/multiset.h: Same.
* include/debug/unordered_map: Same.
* include/debug/unordered_set: Same.
* include/debug/string: Same.
* include/debug/vector: Same.
From-SVN: r154268
2009-11-17 20:38:33 +00:00
Jonathan Wakely
ff74fd1325
stl_pair.h (swap): Do not swap rvalues.
...
2009-05-18 Jonathan Wakely <jwakely.gcc@gmail.com>
* include/bits/stl_pair.h (swap): Do not swap rvalues.
* include/bits/stl_deque.h (swap): Likewise.
* include/bits/stl_list.h (swap): Likewise.
* include/bits/stl_vector.h (swap): Likewise.
* include/bits/stl_bvector.h (swap): Likewise.
* include/bits/stl_queue.h (swap): Likewise.
* include/bits/stl_stack.h (swap): Likewise.
* include/bits/stl_tree.h (swap): Likewise.
* include/bits/stl_map.h (swap): Likewise.
* include/bits/stl_multimap.h (swap): Likewise.
* include/bits/stl_set.h (swap): Likewise.
* include/bits/stl_multiset.h (swap): Likewise.
* include/bits/forward_list.h (swap): Likewise.
* include/bits/unique_ptr.h (swap): Likewise.
* include/debug/deque (swap): Likewise.
* include/debug/list (swap): Likewise.
* include/debug/vector (swap): Likewise.
* include/debug/map.h (swap): Likewise.
* include/debug/multimap.h (swap): Likewise.
* include/debug/set.h (swap): Likewise.
* include/debug/multiset.h (swap): Likewise.
* include/debug/unordered_map (swap): Likewise.
* include/debug/unordered_set (swap): Likewise.
* include/ext/vstring.h (swap): Likewise.
* include/tr1_impl/unordered_map (swap): Likewise.
* include/tr1_impl/hashtable (swap): Likewise.
* include/tr1_impl/unordered_set (swap): Likewise.
* include/std/tuple (swap): Likewise.
* include/std/mutex (swap): Likewise.
* include/std/thread (swap): Likewise.
(operator<<): Only output to lvalue streams.
* testsuite/20_util/shared_ptr/modifiers/swap_rvalue.cc: Remove.
* testsuite/23_containers/headers/forward_list/synopsis.cc: Adjust.
* testsuite/23_containers/deque/requirements/dr438/
assign_neg.cc: Adjust line numbers.
* testsuite/23_containers/deque/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/deque/requirements/dr438/
constructor_2_neg.cc: Likewise.
* testsuite/23_containers/deque/requirements/dr438/
insert_neg.cc: Likewise.
* testsuite/23_containers/list/requirements/dr438/
assign_neg.cc: Likewise.
* testsuite/23_containers/list/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/list/requirements/dr438/
constructor_2_neg.cc: Likewise.
* testsuite/23_containers/list/requirements/dr438/
insert_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/
assign_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/
constructor_2_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/
insert_neg.cc: Likewise.
* testsuite/30_threads/thread/swap/1.cc: Swap with lvalue and also
test non-member swap.
* testsuite/30_threads/thread/swap/2.cc: Remove.
From-SVN: r147678
2009-05-18 23:15:56 +01:00
Jakub Jelinek
748086b7b2
Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception.
...
From-SVN: r145841
2009-04-09 17:00:19 +02:00
Paolo Carlini
ced3cb9f72
PR libstdc++/30085 (again)
...
2008-09-30 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/30085 (again)
* include/debug/unordered_map (unordered_map<>, unordered_multimap<>):
Do not derive from _Safe_association, derive from _GLIBCXX_STD_D::
unordered_map / unordered_multimap; add missing member functions.
* include/debug/unordered_set (unordered_set<>, unordered_multiset<>):
Likewise for _GLIBCXX_STD_D::unordered_set / unordered_multiset.
* include/debug/safe_association.h: Remove.
* include/Makefile.am: Adjust.
* include/Makefile.in: Regenerate.
* testsuite/23_containers/unordered_multimap/init-list.cc: Remove
xfail.
From-SVN: r140786
2008-09-30 13:48:55 +00:00
Jason Merrill
988499f434
Add initializer_list support as per N2679.
...
* include/debug/unordered_map: Add initializer_list support.
* include/debug/safe_association.h: Likewise.
* include/debug/unordered_set: Likewise.
* include/debug/vector: Likewise.
* include/debug/deque: Likewise.
* include/debug/map.h: Likewise.
* include/debug/set.h: Likewise.
* include/debug/string: Likewise.
* include/debug/list: Likewise.
* include/debug/multimap.h: Likewise.
* include/tr1_impl/unordered_map: Likewise.
* include/tr1_impl/hashtable: Likewise.
* include/tr1_impl/unordered_set: Likewise.
* include/tr1_impl/regex: Likewise.
* include/std/valarray: Likewise.
* include/std/unordered_map: Likewise.
* include/std/unordered_set: Likewise.
* include/bits/stl_list.h: Likewise.
* include/bits/stl_map.h: Likewise.
* include/bits/stl_set.h: Likewise.
* include/bits/basic_string.h: Likewise.
* include/bits/basic_string.tcc: Likewise.
* include/bits/stl_multimap.h: Likewise.
* include/bits/stl_vector.h: Likewise.
* include/bits/stl_deque.h: Likewise.
* include/bits/stl_multiset.h: Likewise.
* include/bits/stl_bvector.h: Likewise.
* include/ext/vstring.h: Likewise.
* include/ext/rc_string_base.h: Likewise.
* include/ext/sso_string_base.h: Likewise.
* src/Makefile.am (w?string-inst): Build with -std=gnu++0x.
* src/Makefile.in: Likewise.
* config/abi/pre/gnu.ver: Add new w?string exports.
...
From-SVN: r138043
2008-07-21 15:40:39 -04:00
Paolo Carlini
69b3331e2a
unordered_map (operator==(const unordered_map&, const unordered_map&), [...]): Remove.
...
2007-12-03 Paolo Carlini <pcarlini@suse.de>
* include/debug/unordered_map (operator==(const unordered_map&,
const unordered_map&), operator!=(const unordered_map&,
const unordered_map&), operator==(const unordered_multimap&,
const unordered_multimap&), operator!=(const unordered_multimap&,
const unordered_multimap&)): Remove.
(unordered_map<>::unordered_map(unordered_map&&),
operator=(unordered_map&&), clear, _M_invalidate_all,
unordered_multimap<>::unordered_multimap(unordered_multimap&&),
operator=(unordered_map&&), clear, _M_invalidate_all,
swap(unordered_map<>&&, unordered_map<>&), swap(unordered_map<>&,
unordered_map<>&&), swap(unordered_multimap<>&&,
unordered_multimap<>&), swap(unordered_multimap<>&,
unordered_multimap<>&&)): Add.
* include/debug/unordered_set (operator==(const unordered_set&,
const unordered_set&), operator!=(const unordered_set&,
const unordered_set&), operator==(const unordered_multiset&,
const unordered_multiset&), operator!=(const unordered_multiset&,
const unordered_multiset&)): Remove.
(unordered_set<>::unordered_set(unordered_set&&),
operator=(unordered_set&&), clear, _M_invalidate_all,
unordered_multiset<>::unordered_multiset(unordered_multiset&&),
operator=(unordered_set&&), clear, _M_invalidate_all,
swap(unordered_set<>&&, unordered_set<>&), swap(unordered_set<>&,
unordered_set<>&&), swap(unordered_multiset<>&&,
unordered_multiset<>&), swap(unordered_multiset<>&,
unordered_multiset<>&&)): Add.
* include/debug/safe_association.h (_Safe_association<>::
_Safe_association(_Safe_association&&)): Add.
(_Safe_association<>::clear, _M_invalidate_all): Remove.
From-SVN: r130581
2007-12-03 13:12:51 +00:00
Benjamin Kosnik
e63637ea90
re PR libstdc++/30085 (switch debug mode hash containers from ext to tr1)
...
2007-10-18 Benjamin Kosnik <bkoz@redhat.com>
* include/ext/hash_map: To...
* include/backward/hash_map: ...here. Remove debug mode.
* include/ext/hash_set: To...
* include/backward/hash_set: ...here. Remove debug mode.
* include/ext/hash_fun.h: To...
* include/backward/hash_fun.h: ...here.
* include/ext/hashtable.h: To...
* include/backward/hashtable.h: ...here.
* include/bits/c++config: Remove __gnu_cxx namespace from debug mode.
* include/debug/debug.h: Same.
* include/debug/hash_map: Remove.
* include/debug/hash_multimap.h: Remove.
* include/debug/hash_set.h: Remove.
* include/debug/hash_set: Remove.
* include/debug/hash_multiset.h: Remove.
* include/debug/hash_map.h: Remove.
* include/Makefile.am (ext_headers): Move hash_set, hash_map to
backward.
(debug_headers): Remove hash_map, hash_set, hash_map.h,
hash_map.h, hash_multiset.h, hash_multimap.h.
* include/Makefile.in: Regenerate.
* docs/html/debug.html: Update.
* docs/html/ext/howto.html: Same.
* docs/html/faq/index.html: Same.
* docs/doxygen/Intro.3: Same.
* docs/doxygen/user.cfg.in: Adjust includes.
* testsuite/ext/hash_map: Move to...
* testsuite/backward/hash_map: ...here.
* testsuite/ext/hash_set: Move to...
* testsuite/backward/hash_set: ...here.
2007-10-18 Benjamin Kosnik <bkoz@redhat.com>
Removal of pre-ISO C++ items from include/backwards.
* include/Makefile.am (backward_headers): Remove all but strstream,
backward_warning.h.
* include/Makefile.in: Regenerate.
* include/backward/new.h: Remove.
* include/backward/iterator.h: Same.
* include/backward/alloc.h: Same.
* include/backward/set.h: Same.
* include/backward/hashtable.h: Same.
* include/backward/hash_set.h: Same.
* include/backward/fstream.h: Same.
* include/backward/tempbuf.h: Same.
* include/backward/istream.h: Same.
* include/backward/bvector.h: Same.
* include/backward/stack.h: Same.
* include/backward/rope.h: Same.
* include/backward/complex.h: Same.
* include/backward/ostream.h: Same.
* include/backward/heap.h: Same.
* include/backward/iostream.h: Same.
* include/backward/function.h: Same.
* include/backward/multimap.h: Same.
* include/backward/pair.h: Same.
* include/backward/stream.h: Same.
* include/backward/iomanip.h: Same.
* include/backward/slist.h: Same.
* include/backward/tree.h: Same.
* include/backward/vector.h: Same.
* include/backward/deque.h: Same.
* include/backward/multiset.h: Same.
* include/backward/defalloc.h: Same.
* include/backward/list.h: Same.
* include/backward/map.h: Same.
* include/backward/algobase.h: Same.
* include/backward/hash_map.h: Same.
* include/backward/algo.h: Same.
* include/backward/queue.h: Same.
* include/backward/streambuf.h: Same.
* testsuite/backward/header_hash_set_h.cc: Same.
* testsuite/backward/header_slist_h.cc: Same.
* testsuite/backward/header_hash_map_h.cc: Same.
* testsuite/backward/header_tempbuf_h.cc: Same.
* testsuite/backward/header_deque_h.cc: Same.
* testsuite/backward/header_rope_h.cc: Same.
* testsuite/backward/header_iterator_h.cc: Same.
* testsuite/backward/header_hashtable_h.cc: Same.
2007-10-18 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/30085
* include/debug/unordered_map: New.
* include/debug/unordered_set: New.
* include/debug/safe_association.h: New.
* include/std/unordered_map: Include debug header if _GLIBCXX_DEBUG.
* include/std/unordered_set: Same.
* include/Makefile.am (debug_headers): Add unordered_map,
unordered_set, safe_association.h.
* include/Makefile.in: Regenerate.
* testsuite/23_containers/unordered_map/requirements/debug.cc: New.
* testsuite/23_containers/unordered_multimap/requirements/
debug.cc: New.
* testsuite/23_containers/unordered_set/requirements/debug.cc: New.
* testsuite/23_containers/unordered_multiset/requirements/
debug.cc: New.
2007-10-18 Benjamin Kosnik <bkoz@redhat.com>
* testsuite/util/native_type/assoc/native_hash_multimap.hpp: Remove
hash_map include.
From-SVN: r129442
2007-10-18 15:22:58 +00:00