François Dumont
d2f2f2e38c
2013-04-26 François Dumont <fdumont@gcc.gnu.org>
...
* include/bits/hashtable_policy.h
(_Insert_base<>::insert<_It>(_It, _It)): Enable move semantics.
* testsuite/23_containers/unordered_set/insert/move_range.cc: New.
From-SVN: r198346
2013-04-26 20:13:41 +00:00
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
Paolo Carlini
177d2b74b5
re PR libstdc++/57010 ([c++0x] priority_queue<>::pop() calls self-move-assignment operator)
...
2013-04-22 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/57010
* include/bits/stl_heap.h (pop_heap): Avoid self move-assignment.
* testsuite/25_algorithms/pop_heap/57010.cc: New.
From-SVN: r198125
2013-04-22 10:07:31 +00:00
Jonathan Wakely
f2e2de5f85
Makefile.am: Add ext/aligned_buffer.h
...
* include/Makefile.am: Add ext/aligned_buffer.h
* include/Makefile.in: Regenerate.
* include/ext/aligned_buffer.h: New.
* include/std/future (_Result): Use __aligned_buffer.
* include/bits/forward_list.h (_Fwd_list_node): Likewise.
* include/bits/shared_ptr_base.h (_Sp_counted_ptr_inplace): Likewise.
* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error line
number.
From-SVN: r197554
2013-04-07 17:44:40 +01:00
Jonathan Wakely
7db567cd08
forward_list.h: Only include required headers.
...
* include/bits/forward_list.h: Only include required headers.
(forward_list::reference): Define directly, not using __alloc_traits.
(forward_list::const_reference): Likewise.
From-SVN: r197552
2013-04-07 16:42:27 +01:00
Paolo Carlini
ad6fdc1976
PR libstdc++/55977 (partial, std::vector and std::deque bits)
...
2013-03-18 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/55977 (partial, std::vector and std::deque bits)
* include/bits/stl_vector.h (_M_range_initialize(_InputIterator,
_InputIterator, std::input_iterator_tag)): Use emplace_back.
* include/bits/deque.tcc (_M_range_initialize(_InputIterator,
_InputIterator, std::input_iterator_tag)): Likewise.
* testsuite/23_containers/vector/cons/55977.cc: New.
* testsuite/23_containers/deque/cons/55977.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
Adjust dg-error line number.
* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
Likewise.
From-SVN: r196774
2013-03-18 10:15:56 +00:00
Paolo Carlini
b4904956fa
re PR libstdc++/55979 ([C++11] std::list range construction imposes unnecessary conversion constraints)
...
2013-03-17 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/55979
* include/bits/stl_list.h (_M_initialize_dispatch(_InputIterator,
_InputIterator, __false_type)): Use emplace_back.
* testsuite/23_containers/list/cons/55979.cc: New.
* testsuite/23_containers/list/modifiers/1.h: Adjust.
* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
Adjust dg-error line number.
From-SVN: r196755
2013-03-17 18:27:52 +00:00
Jonathan Wakely
1f069142c7
re PR libstdc++/56613 (map::operator[](key_type&&) fails with custom allocator)
...
PR libstdc++/56613
* include/bits/stl_tree.h (_Rb_tree::_M_create_node): Use
allocator_traits instead of calling construct directly.
* testsuite/23_containers/map/56613.cc: New.
From-SVN: r196666
2013-03-14 23:28:11 +00:00
Benjamin Kosnik
cd1e666505
memoryfwd.h: New.
...
* include/bits/memoryfwd.h: New. Centralize forward declarations.
* include/bits/algorithmfwd.h: Consistent comments.
* include/bits/localefwd.h: Same.
* include/ext/vstring_fwd.h: Same.
* include/parallel/algorithmfwd.h: Same.
* include/parallel/numericfwd.h: Same.
* include/std/iosfwd: Same.
* include/bits/alloc_traits.h: Include memoryfwd.h, remove allocator
forward decl.
* include/ext/alloc_traits.h: Remove allocator forward decl.
* include/bits/stl_construct.h: Same.
* include/bits/stringfwd.h: Include memoryfwd.h, remove allocator
forward decl. Consistent comments.
* doc/doxygen/user.cfg.in (TEMPLATE_RELATIONS): To NO.
* include/Makefile.am (bits_headers): Add memoryfwd.h.
* include/Makefile.in: Regenerate.
* configure: Same.
e enter the commit message for your changes. Lines starting
From-SVN: r196559
2013-03-08 21:39:24 +00:00
François Dumont
68d047cb48
vector.tcc (vector<>operator=(const vector<>&): Reset pointers after deallocation when memory can be reused.
...
2013-03-08 François Dumont <fdumont@gcc.gnu.org>
* include/bits/vector.tcc (vector<>operator=(const vector<>&):
Reset pointers after deallocation when memory can be reused.
* testsuite/23_containers/vector/allocator/minimal.cc: Insert
elements to really challenge C++11 allocator integration.
* testsuite/23_containers/vector/allocator/copy.cc: Likewise.
* testsuite/23_containers/vector/allocator/copy_assign.cc:
Likewise.
* testsuite/23_containers/vector/allocator/move_assign.cc:
Likewise.
* testsuite/23_containers/vector/allocator/swap.cc: Likewise and
swap vector back before checks on memory/personality mapping are
performed.
* testsuite/23_containers/forward_list/allocator/minimal.cc:
Insert element to really challenge C++11 allocator integration.
* testsuite/23_containers/forward_list/allocator/copy.cc:
Likewise.
* testsuite/23_containers/forward_list/allocator/copy_assign.cc:
Likewise.
* testsuite/23_containers/forward_list/allocator/move_assign.cc:
Likewise.
* testsuite/23_containers/forward_list/allocator/swap.cc: Likewise
and swap forward_list back before checks on memory/personality
mapping are performed.
From-SVN: r196557
2013-03-08 20:08:20 +00:00
Jonathan Wakely
a26f0501b4
re PR libstdc++/56012 ([C++11] Narrowing conversion in atomic_flag)
...
PR libstdc++/56012
* include/bits/atomic_base.h (atomic_flag): Fix narrowing conversion.
* testsuite/29_atomics/atomic/operators/56012.cc: New.
PR libstdc++/56011
* include/std/atomic (atomic<bool>::operator=(bool) volatile): Add
missing overload.
* testsuite/29_atomics/atomic/operators/56011.cc: New.
From-SVN: r196296
2013-02-26 23:46:21 +00:00
Jonathan Wakely
2f2b63daf1
faq.html: Fix spelling.
...
* doc/html/faq.html: Fix spelling.
* doc/xml/faq.xml: Likewise.
* include/bits/basic_ios.h: Likewise.
* include/bits/regex.h: Likewise.
* include/std/istream: Likewise.
* include/std/streambuf: Likewise.
From-SVN: r196184
2013-02-20 22:41:51 +00:00
Benjamin Kosnik
c0ffa2badb
user.cfg.in: Set __cplusplus to 201103L.
...
2013-02-19 Benjamin Kosnik <bkoz@redhat.com>
* doc/doxygen/user.cfg.in: Set __cplusplus to 201103L. Change to
_GLIBCXX_INCLUDE_AS_CXX11. DIRECTORY_GRAPH, MARKDOWN_SUPPORT,
AUTOLINK_SUPPORT to NO. Update to doxygen 1.8.3.1.
* include/bits/stl_pair.h: Add to utilities group.
* include/std/tuple: Same.
* include/std/typeindex: Same.
* include/bits/stringfwd.h: Fix markup.
* include/std/limits: Same.
* include/std/type_traits: Same.
* include/tr1/memory: Same.
* include/tr1/regex: Same.
* scripts/run_doxygen: Comment.
* testsuite/20_util/uses_allocator/cons_neg.cc: Fixup line numbers.
From-SVN: r196162
2013-02-20 01:52:36 +00:00
François Dumont
d9a3647a22
hashtable_policy.h (_Hash_code_base): Restore default constructor protected.
...
2013-02-13 François Dumont <fdumont@gcc.gnu.org>
* include/bits/hashtable_policy.h (_Hash_code_base): Restore
default constructor protected.
* include/bits/hashtable.h: static assert that _Hash_code_base has
a default constructor available through inheritance.
From-SVN: r196030
2013-02-13 21:09:34 +00:00
Paolo Carlini
60f3a59f29
random.tcc (__transform): Remove.
...
2013-02-12 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/random.tcc (__transform): Remove.
(__normalize): Add.
(discrete_distribution<>::param_type::_M_initialize): Adjust.
(piecewise_constant_distribution<>::param_type::_M_initialize):
Likewise.
(piecewise_linear_distribution<>::param_type::_M_initialize):
Likewise.
From-SVN: r195970
2013-02-12 10:26:54 +00:00
Paolo Carlini
3b424b30be
re PR libstdc++/56282 (std::basic_ios<char> broken with -std=c++11 (undefined reference))
...
2013-02-11 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/56282
Revert:
2013-02-06 Edward Smith-Rowland <3dw4rd@verizon.net>
PR libstdc++/56193
* include/bits/basic_ios.h: Replace operator void*() const
with explicit operator bool() const in C++11 and greater.
* testsuite/27_io/basic_ios/pr56193.cc: New file.
From-SVN: r195939
2013-02-11 10:30:43 +00:00
Jonathan Wakely
dfed5434f3
re PR libstdc++/56267 (unordered containers require Assignable hash function)
...
PR libstdc++/56267
* include/bits/hashtable.h (__cache_default): Check if hash function
is copy assignable.
* testsuite/23_containers/unordered_set/56267.cc: New.
* testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
dg-error line number.
* testsuite/23_containers/unordered_set/
not_default_constructible_hash_neg.cc: Likewise.
From-SVN: r195936
2013-02-11 00:19:29 +00:00
Jonathan Wakely
a9b68b8289
re PR libstdc++/56278 (unordered containers fail static assertion)
...
PR libstdc++/56278
* include/bits/hashtable_policy.h (_Hash_code_base): Make default
constructor public.
* testsuite/23_containers/unordered_set/56278.cc: New.
From-SVN: r195935
2013-02-11 00:19:14 +00:00
Edward Smith-Rowland
fcf0430bda
PR56193 - Wrong test operator for basic_ios in C++11.
...
From-SVN: r195849
2013-02-07 14:27:45 +00:00
François Dumont
4df047dd34
functional_hash.h (std::__is_fast_hash<>): New.
...
2013-02-04 François Dumont <fdumont@gcc.gnu.org>
* include/bits/functional_hash.h (std::__is_fast_hash<>): New.
* include/bits/basic_string.h: Specialize previous to mark
std::hash for string types as slow.
* include/bits/hashtable.h (__cache_default): Replace is_integral
with __is_fast_hash.
* src/c++11/hash_c++0x.cc: Add type_traits include.
* testsuite/23_containers/unordered_set/instantiation_neg.cc:
Adapt dg-error line number.
* testsuite/23_containers/unordered_set/
not_default_constructible_hash_neg.cc: Likewise.
From-SVN: r195738
2013-02-04 21:14:07 +00:00
Manuel López-Ibáñez
9ea146e6da
PR libstdc++/56202 (again)
...
2013-02-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/56202 (again)
* include/bits/random.tcc (binomial_distribution<>::
_M_waiting(_UniformRandomNumberGenerator&, _IntType)): Fix thinko
in previous commit.
* include/bits/random.h: Fix comment typo.
Co-Authored-By: Paolo Carlini <paolo.carlini@oracle.com>
From-SVN: r195732
2013-02-04 19:28:40 +00:00
Manuel López-Ibáñez
85018f40ae
re PR libstdc++/56202 (SIGFPE (division by zero) in std::binomial_distribution)
...
2013-02-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/56202
* include/bits/random.tcc (binomial_distribution<>::
_M_waiting(_UniformRandomNumberGenerator&, _IntType)): Avoid
division by zero.
Co-Authored-By: Paolo Carlini <paolo.carlini@oracle.com>
From-SVN: r195722
2013-02-04 17:10:59 +00:00
Richard Sandiford
405feeb871
Update copyright in libstdc++-v3.
...
From-SVN: r195701
2013-02-03 17:54:05 +00:00
François Dumont
6e14794657
2013-02-01 François Dumont <fdumont@gcc.gnu.org>
...
* include/bits/hashtable_policy.h
(_Prime_rehash_policy::_M_next_bkt)
(_Prime_rehash_policy::_M_need_rehash): Move definition...
* src/c++11/hashtable_c++0x.cc: ... here.
* src/shared/hashtable-aux.cc: Remove c++config.h include.
* config/abi/gnu.ver (GLIBCXX_3.4.18): Export _Prime_rehash_policy
symbols.
From-SVN: r195676
2013-02-01 20:44:41 +00:00
Jonathan Wakely
0addb273c5
re PR libstdc++/56112 (cannot create unordered_map from range of types convertible to value_type)
...
PR libstdc++/56112
* include/bits/hashtable_policy.h (insert(_Pair&&)): Use _M_emplace
to construct value_type explicitly before trying to extract the key.
* testsuite/23_containers/unordered_map/cons/56112.cc: New.
From-SVN: r195520
2013-01-28 23:07:35 +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
Andi Kleen
d76b6ea417
libstdc++: Add mem_order_hle_acquire/release to atomic.h v2
...
The underlying compiler supports additional __ATOMIC_HLE_ACQUIRE/RELEASE
memmodel flags for TSX, but this was not exposed to the C++ wrapper.
Handle it there.
These are additional flags, so some of assert checks need to mask
off the flags before checking the memory model type.
libstdc++-v3/:
2013-01-12 Andi Kleen <ak@linux.intel.com>
Jonathan Wakely <jwakely.gcc@gmail.com>
PR libstdc++/55223
* include/bits/atomic_base.h (__memory_order_modifier): Add
__memory_order_mask, __memory_order_modifier_mask,
__memory_order_hle_acquire, __memory_order_hle_release.
(operator|,operator&): Add.
(__cmpexch_failure_order): Rename to __cmpexch_failure_order2.
(__cmpexch_failure_order): Add.
(clear, store, load, compare_exchange_weak, compare_exchange_strong):
Handle flags.
* testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
Add.
Co-Authored-By: Jonathan Wakely <jwakely.gcc@gmail.com>
From-SVN: r195321
2013-01-20 19:03:22 +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
Jonathan Wakely
1c2620dd6a
unordered_map.h: Fix typo in comments.
...
* include/bits/unordered_map.h: Fix typo in comments.
* doc/xml/manual/status_cxx2011.xml: Add implementation-defined bucket
counts for unordered associative containers.
From-SVN: r194954
2013-01-06 21:58:18 +00:00
Jakub Jelinek
90d04a445c
Update Copyright years for files modified in 2011 and/or 2012.
...
From-SVN: r194903
2013-01-04 13:49:55 +01:00
Jonathan Wakely
23df853421
functional (_Require): Move to ...
...
* include/std/functional (_Require): Move to ...
* include/std/type_traits (_Require): ... here.
* include/bits/shared_ptr_base.h (__shared_count::_S_create_from_up):
Handle unique_ptr for arrays or with custom pointer types.
(__shared_ptr::__shared_ptr(unique_ptr<_Tp1, _Del>&&): Likewise.
* include/bits/unique_ptr.h (unique_ptr<_Tp[], _Dp>): Use
_Dp::pointer if defined. Implement proposed resolution of LWG 2118.
* testsuite/20_util/shared_ptr/cons/unique_ptr_array.cc: New.
* testsuite/20_util/unique_ptr/assign/cv_qual.cc: New.
* testsuite/20_util/unique_ptr/cons/array_convertible_neg.cc: New.
* testsuite/20_util/unique_ptr/cons/convertible_neg.cc: New.
* testsuite/20_util/unique_ptr/cons/cv_qual.cc: New.
* testsuite/20_util/unique_ptr/modifiers/cv_qual.cc: New.
* testsuite/20_util/unique_ptr/requirements/pointer_type_array.cc: New.
* testsuite/20_util/shared_ptr/cons/unique_ptr.cc: Adjust comments.
* testsuite/20_util/unique_ptr/cons/pointer_array_convertible_neg.cc:
Likewise.
* testsuite/20_util/unique_ptr/requirements/pointer_type.cc: Likewise.
* testsuite/20_util/bind/ref_neg.cc: Adjust dg-error line number.
* testsuite/20_util/declval/requirements/1_neg.cc: Likewise.
* testsuite/20_util/default_delete/48631_neg.cc: Likewise.
* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
* testsuite/20_util/unique_ptr/assign/48635_neg.cc: Likewise.
* testsuite/20_util/unique_ptr/modifiers/reset_neg.cc: Adjust
dg-error text.
* testsuite/20_util/unique_ptr/cons/ptr_deleter_neg.cc: Use
different instantiations so static_assert fails for each.
From-SVN: r194651
2012-12-20 21:02:33 +00:00
Ollie Wild
29f696491c
Fix incorrect @headername Doxygen macro invocation.
...
Format is @headername{hdr1,hdr2} not @headername{hdr1 or hdr2}.
2012-11-27 Ollie Wild <aaw@google.com>
* include/bits/stl_tree.h (@headername): Fix incorrect Doxygen macro
invocation.
From-SVN: r193869
2012-11-27 20:52:02 +00:00
Paolo Carlini
25caa91e99
re PR libstdc++/55413 ([LTO] hashtable.h:1648 '__bbegin_bkt' may be used uninitialized in this function [-Werror=maybe-uninitialized])
...
2012-11-20 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/55413
* include/bits/hashtable.h (_Hashtable<>::_M_rehash_aux): Initialize
__bbegin_bkt and __prev_bkt to avoid uninitialized warnings.
* testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
dg-error line number.
From-SVN: r193663
2012-11-20 14:54:11 +00:00
Matthias Klose
3263c9a3a7
2012-11-20 Matthias Klose <doko@ubuntu.com>
...
* doc/doxygen/user.cfg.in (ALIASES). Escape sharp braces.
* include/bits/allocator.h: Escape sharp braces in comment.
* include/profile/impl/profiler_algos.h: Likewise.
From-SVN: r193662
2012-11-20 13:48:28 +00:00
Jonathan Wakely
1b5dc776ca
stl_algo.h (reverse_copy): Update comment per DR 2074.
...
* include/bits/stl_algo.h (reverse_copy): Update comment per DR 2074.
* include/bits/unordered_map.h: Apply DR 2005 resolution.
* doc/xml/manual/status_cxx2011.xml: Update per DR 2048.
* include/bits/allocator.h (allocator): Apply DR 2103 resolution.
* include/ext/array_allocator.h: Likewise.
* include/ext/bitmap_allocator.h: Likewise.
* include/ext/malloc_allocator.h: Likewise.
* include/ext/mt_allocator.h: Likewise.
* include/ext/new_allocator.h: Likewise.
* include/ext/pool_allocator.h: Likewise.
* include/ext/throw_allocator.h: Likewise.
* include/ext/alloc_traits.h (__allocator_always_compares_equal): Add
additional specializations.
* include/std/functional: Add comment about DR resolution.
* include/std/future: Likewise.
* include/std/scoped_allocator: Likewise.
* include/std/thread: Likewise.
* testsuite/20_util/allocator/requirements/typedefs.cc: New.
* testsuite/20_util/bind/ref_neg.cc: Adjust dg-error line numbers.
From-SVN: r193638
2012-11-19 22:28:00 +00:00
Jonathan Wakely
207585a63d
hashtable.h: Improve comments.
...
* include/bits/hashtable.h: Improve comments.
* include/bits/hashtable_policy.h: Likewise.
From-SVN: r193636
2012-11-19 21:33:52 +00:00
François Dumont
d4a7f7a15c
hashtable_policy.h (_Prime_rehash_policy): Remove automatic shrink.
...
2012-11-16 François Dumont <fdumont@gcc.gnu.org>
* include/bits/hashtable_policy.h (_Prime_rehash_policy): Remove
automatic shrink.
(_Prime_rehash_policy::_M_bkt_for_elements): Do not call
_M_next_bkt anymore.
(_Prime_rehash_policy::_M_next_bkt): Move usage of
_S_growth_factor ...
(_Prime_rehash_policy::_M_need_rehash): ... here.
* include/bits/hashtable.h (_Hashtable<>): Adapt.
* testsuite/performance/23_containers/insert_erase/41975.cc: Add
_USE_TR1 to force build using std::tr1 container.
* testsuite/performance/23_containers/insert/unordered_set.cc:
Likewise.
* testsuite/performance/23_containers/insert/54075.cc: New.
From-SVN: r193576
2012-11-16 21:28:44 +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
ecf07a67d0
re PR libstdc++/54075 ([4.7.1] unordered_map insert still slower than 4.6.2)
...
2012-11-08 François Dumont <fdumont@gcc.gnu.org>
PR libstdc++/54075
* include/bits/hashtable.h (_Hashtable<>::rehash): Reset hash
policy state if no rehash.
* testsuite/23_containers/unordered_set/modifiers/reserve.cc
(test02): New.
From-SVN: r193339
2012-11-08 20:16:04 +00:00
Paolo Carlini
54ba39f599
array (_GLIBCXX_THROW_OR_ABORT): Move...
...
2012-11-07 Paolo Carlini <paolo.carlini@oracle.com>
* include/debug/array (_GLIBCXX_THROW_OR_ABORT): Move...
* include/bits/c++config: ... here.
* include/bits/shared_ptr_base.h (__throw_bad_weak_ptr): Use it.
* include/ext/pb_ds/exception.hpp: Likewise.
* include/ext/throw_allocator.h (__throw_forced_error): Likewise.
* include/ext/concurrence.h (__throw_concurrence_lock_error,
__throw_concurrence_unlock_error, __throw_concurrence_broadcast_error,
__throw_concurrence_wait_error): Likewise.
* include/tr1/shared_ptr.h (__throw_bad_weak_ptr): Likewise.
* include/tr1/functional (function<_Res(_ArgTypes...)>::operator()
(_ArgTypes...)): Likewise.
* libsupc++/eh_aux_runtime.cc (__cxxabiv1::__cxa_bad_cast,
__cxxabiv1::__cxa_bad_typeid): Likewise.
* libsupc++/vec.cc (compute_size): Likewise.
* libsupc++/new_op.cc (operator new (std::size_t)): Likewise.
* src/c++11/functexcept.cc: Likewise.
* testsuite/util/io/illegal_input_error.hpp
(__throw_illegal_input_error): Likewise.
* libsupc++/eh_personality.cc: Avoid warning with -fno-exceptions.
* testsuite/ext/profile/mutex_extensions_neg.cc: Adjust dg-error line
numbers.
* testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc:
Likewise.
* testsuite/23_containers/array/tuple_interface/
tuple_element_debug_neg.cc: Likewise.
* testsuite/23_containers/array/tuple_interface/get_debug_neg.cc:
Likewise.
* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
From-SVN: r193295
2012-11-07 13:20:33 +00:00
Jonathan Wakely
d720a22b6e
stl_vector.h (vector(size_type)): Add missing allocator parameter.
...
* include/bits/stl_vector.h (vector(size_type)): Add missing allocator
parameter.
* include/bits/stl_bvector.h: Likewise.
* include/debug/vector (vector(size_type)): Likewise.
* include/profile/vector (vector(size_type)): Likewise. Pass allocator
to base constructor.
* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
Adjust dg-error line numbers.
* 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.
From-SVN: r193284
2012-11-07 09:17:42 +00:00
Paolo Carlini
c4ae987730
atomic_base.h: Don't include <cstddef>, use nullptr.
...
2012-11-06 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/atomic_base.h: Don't include <cstddef>, use nullptr.
* include/std/atomic: Likewise.
* include/tr2/dynamic_bitset: Likewise.
* libsupc++/vec.cc (compute_size(std::size_t, std::size_t,
std::size_t)): Fix for -fno-exceptions.
From-SVN: r193232
2012-11-06 11:03:45 +00:00
Paolo Carlini
935ec36fdd
re PR libstdc++/55215 (Constructor seeding is broken for Mersenne twister)
...
2012-11-05 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/55215
* include/bits/random.tcc (mersenne_twister_engine<>::seed(_Sseq&)):
Assign state_size to _M_p.
* testsuite/26_numerics/random/mersenne_twister_engine/cons/55215.cc:
New.
* testsuite/26_numerics/random/independent_bits_engine/cons/55215.cc:
Likewise.
* testsuite/26_numerics/random/shuffle_order_engine/cons/55215.cc:
Likewise.
* testsuite/26_numerics/random/subtract_with_carry_engine/cons/
55215.cc: Likewise.
* testsuite/26_numerics/random/discard_block_engine/cons/55215.cc:
Likewise.
* testsuite/26_numerics/random/linear_congruential_engine/cons/
55215.cc: Likewise.
From-SVN: r193181
2012-11-05 19:25:20 +00:00
Paolo Carlini
5bcb3b4d80
re PR libstdc++/55169 (std::discrete_distribution::operator(generator&) makes unnecessary copy of parameter vector)
...
2012-11-02 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/55169
* include/bits/random.h: Remove all uses of param().
(chi_squared_distribution<>::__generate_impl(_ForwardIterator,
_ForwardIterator, _UniformRandomNumberGenerator&): Declare
* include/bits/random.tcc: ... define.
* include/ext/random: Remove all uses of param().
From-SVN: r193092
2012-11-02 10:45:25 +00:00
Jonathan Wakely
50799846a5
forward_list.h (forward_list(size_type)): Add missing allocator parameter.
...
* include/bits/forward_list.h (forward_list(size_type)): Add missing
allocator parameter.
(_Fwd_list_node_base): Use NSDMI and define constructor as defaulted.
(_Fwd_list_node::_M_value): Replace with uninitialized storage.
(_Fwd_list_node::_M_valptr()): Define functions to access storage.
(_Fwd_list_iterator, _Fwd_list_const_iterator): Use _M_valptr.
(_Fwd_list_base::_M_create_node): Only use allocator to construct the
element not the node.
* include/bits/forward_list.tcc (_Fwd_list_base::_M_erase_after): Only
use allocator to destroy the element not the node.
* testsuite/23_containers/forward_list/cons/11.cc: Remove unused
headers.
* testsuite/23_containers/forward_list/cons/12.cc: Likewise.
* testsuite/23_containers/forward_list/cons/13.cc: New.
* testsuite/23_containers/forward_list/cons/14.cc: New.
From-SVN: r193086
2012-11-02 01:29:00 +00:00
François Dumont
0dd4969120
hashtable_policy.h (__details::_Before_begin<>): New, combine a base node instance and an allocator.
...
2012-11-01 François Dumont <fdumont@gcc.gnu.org>
* include/bits/hashtable_policy.h (__details::_Before_begin<>):
New, combine a base node instance and an allocator.
* include/bits/hashtable.h (_Hashtable<>::_M_node_allocator): Remove.
(_Hashtable<>::_M_before_begin): Rename into _M_bbegin and type
modified to __detail::_Before_begin<>.
(_Hashtable<>::_M_node_allocator()): New, get the node allocator
part of _M_bbegin.
(_Hashtable<>::_M_before_begin()): New, get the before begin node
part of _M_bbegin.
(_Hashtable<>): Adapt to use latter.
From-SVN: r193068
2012-11-01 20:55:51 +00:00
Jonathan Wakely
362261e71f
forward_list.h (forward_list::assign): Dispatch to new functions based on assignability of elements.
...
* include/bits/forward_list.h (forward_list::assign): Dispatch to new
functions based on assignability of elements.
(forward_list::_M_assign): Add overloaded functions for assigning
via assignment or via clearing and insertion.
(forward_list::_M_assign_val): Likewise.
(forward_list::_M_move_assign(forward_list&&, false_type)): Do not
erase elements that are not moved.
* include/bits/forward_list.tcc (forward_list::operator=): Call
assign() to copy elements.
* testsuite/23_containers/forward_list/cons/10.cc: New.
* testsuite/23_containers/forward_list/cons/11.cc: New.
* testsuite/23_containers/forward_list/cons/12.cc: New.
From-SVN: r193057
2012-11-01 01:30:34 +00:00
Jonathan Wakely
b0b4a25308
forward_list.h (forward_list): Adjust comments.
...
* include/bits/forward_list.h (forward_list): Adjust comments.
(forward_list(const forward_list&, const _Alloc&)): Use
_M_range_initialize to copy elements.
(forward_list(forward_list&&, const _Alloc&)): Add exception
specification.
(_Fwd_list_base(const _Fwd_list_base&, const _Node_alloc_type&)):
Remove.
* include/bits/forward_list.tcc (_Fwd_list_base(const _Fwd_list_base&,
const _Node_alloc_type&)): Remove.
(_Fwd_list_base(_Fwd_list_base&&, const _Node_alloc_type&)): Fix
memory leak when allocators are not equal.
From-SVN: r193009
2012-10-31 01:09:59 +00:00
Jonathan Wakely
1ea58d3499
re PR libstdc++/55123 ([C++11] Construction of shared_ptr<const T> from unique_ptr<const T> fails)
...
PR libstdc++/55123
* include/bits/shared_ptr_base.h (__shared_count::_S_create_from_up):
Do not instantiate allocator with element_type.
* testsuite/20_util/shared_ptr/cons/55123.cc: New.
From-SVN: r192964
2012-10-29 21:49:19 +00: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
Haakan Younes
c2d9083df2
re PR libstdc++/55047 (operator() in std::exponential_distribution may call log(0))
...
2012-10-24 Haakan Younes <hyounes@google.com>
Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/55047
* include/bits/random.h (exponential_distribution<>::operator):
Fix formula to std::log(result_type(1) - __aurng()).
* include/bits/random.tcc: Likewise, everywhere.
Co-Authored-By: Paolo Carlini <paolo.carlini@oracle.com>
From-SVN: r192762
2012-10-24 12:20:19 +00:00
François Dumont
637fd8b3be
unordered_set.h (unordered_set<>): Prefer aggregation to inheritance with _Hashtable.
...
2012-10-22 François Dumont <fdumont@gcc.gnu.org>
* include/bits/unordered_set.h (unordered_set<>): Prefer
aggregation to inheritance with _Hashtable.
(unordered_multiset<>): Likewise.
* include/debug/unordered_set (operator==): Adapt.
* include/profile/unordered_set (operator==): Adapt.
From-SVN: r192695
2012-10-22 19:53:38 +00:00
Jonathan Wakely
7aad1ae2b2
forward_list.h: Add C++11 allocator support.
...
* include/bits/forward_list.h: Add C++11 allocator support.
* include/bits/forward_list.tcc: Likewise.
* doc/xml/manual/status_cxx2011.xml: Update.
* testsuite/23_containers/forward_list/allocator/copy.cc: New.
* testsuite/23_containers/forward_list/allocator/copy_assign.cc: New.
* testsuite/23_containers/forward_list/allocator/minimal.cc: New.
* testsuite/23_containers/forward_list/allocator/move_assign.cc: New.
* testsuite/23_containers/forward_list/allocator/noexcept.cc: New.
* testsuite/23_containers/forward_list/allocator/swap.cc: New.
From-SVN: r192588
2012-10-18 22:06:21 +01:00
Benjamin Kosnik
a9ba8ba56c
move.h (move_if_noexcept): Mark constexpr.
...
2012-10-17 Benjamin Kosnik <bkoz@redhat.com>
* include/bits/move.h (move_if_noexcept): Mark constexpr.
* include/std/array (front, back): Same.
* include/std/chrono: Add comment.
* include/std/tuple (__tuple_compare): Mark __eq, __less constexpr.
(operator ==, <, >, !=, <=, >=): Same.
* testsuite/20_util/forward/c_neg.cc: Adjust line numbers.
* testsuite/20_util/forward/f_neg.cc: Same.
* testsuite/20_util/move_if_noexcept/constexpr.cc: New.
* testsuite/20_util/tuple/comparison_operators/constexpr.cc: New.
* testsuite/20_util/tuple/creation_functions/constexpr.cc: Add.
* testsuite/23_containers/array/element_access/
constexpr_element_access.cc: Same.
* testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust
line numbers.
* testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
Same.
* testsuite/20_util/tuple/comparison_operators/35480_neg.cc:
Temporarily add dg-excess-errors.
From-SVN: r192556
2012-10-18 08:36:06 +00:00
Paolo Carlini
a13ab2bcf7
hashtable_policy.h: Revert libstdc++/53067 quick hacks thanks to the resolution of c++/51213.
...
2012-10-12 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/hashtable_policy.h: Revert libstdc++/53067 quick
hacks thanks to the resolution of c++/51213.
From-SVN: r192380
2012-10-11 22:18:27 +00:00
Andrew MacLeod
3cedb9108b
re PR libstdc++/54861 (std::atomic_signal_fence(std::memory_order_seq_cst) issues unnecessary mfence)
...
2012-10-09 Andrew MacLeod <amacleod@redhat.com>
PR libstdc++/54861
* include/bits/atomic_base.h (atomic_signal_fence): Call
__atomic_signal_fence instead of __atomic_thread_fence.
From-SVN: r192268
2012-10-09 18:40:02 +00:00
Akira Takahashi
e80d3fda8e
re PR libstdc++/53515 (InputIterator version std::advance needs negative check)
...
2012-09-26 Akira Takahashi <faithandbrave@gmail.com>
PR libstdc++/53515
* include/bits/stl_iterator_base_funcs.h (__advance(_InputIterator&,
_Distance, input_iterator_tag)): Add _GLIBCXX_DEBUG_ASSERT(__n >= 0).
From-SVN: r191784
2012-09-26 23:56:39 +00:00
Ulrich Drepper
48c7b524c1
Optimize bulk mode for normal_distribution<double> for SSE3.
...
2012-09-26 Ulrich Drepper <drepper@gmail.com>
Optimize bulk mode for normal_distribution<double> for SSE3.
* configure.host: Define cpu_opt_bits_random.
* configure.ac: Substitute CPU_OPT_BITS_RANDOM.
* include/Makefile.am (bits_headers): Add ${bits_host_headers}.
(bits_host_headers): Define.
* include/bits/random.tcc: Move __details::_Power_of_2 to...
* include/bits/random.h: ...here.
* include/std/random: Include <bits/opt_random.h>.
* config/cpu/i486/opt/bits/opt_random.h: New file.
* config/cpu/generic/opt/bits/opt_random.h: New file.
* configure: Regenerated.
* Makefile.in: Regenerated.
* aclocal.m4: Regenerated.
* doc/Makefile.in: Regenerated.
* include/Makefile.in: Regenerated.
* libsupc++/Makefile.in: Regenerated.
* po/Makefile.in: Regenerated.
* python/Makefile.in: Regenerated.
* src/Makefile.in: Regenerated.
* src/c++11/Makefile.in: Regenerated.
* src/c++98/Makefile.in: Regenerated.
* testsuite/Makefile.in: Regenerated.
* config/cpu/generic/opt/ext/opt_random.h: Fix comment.
From-SVN: r191758
2012-09-26 13:10:26 +00:00
François Dumont
55826ab6d1
re PR libstdc++/44436 ([C++0x] Implement emplace* in associative containers)
...
2012-09-24 François Dumont <fdumont@gcc.gnu.org>
PR libstdc++/44436
* include/bits/stl_tree.h
(_Rb_tree<>::_M_insert_): Take _Base_ptr rather than
_Const_Base_ptr.
(_Rb_tree<>::_M_insert_node): New.
(_Rb_tree<>::_M_get_insert_unique_pos): New, search code of
_M_insert_unique method.
(_Rb_tree<>::_M_insert_unique): Use latter.
(_Rb_tree<>::_M_emplace_unique): New, likewise.
(_Rb_tree<>::_M_get_insert_equal_pos): New, search code of
_M_insert_equal method.
(_Rb_tree<>::_M_insert_equal): Use latter.
(_Rb_tree<>::_M_emplace_equal): New, likewise.
(_Rb_tree<>::_M_get_insert_hint_unique_pos): New, search code of
_M_insert_unique_ method.
(_Rb_tree<>::_M_insert_unique_): Use latter.
(_Rb_tree<>::_M_emplace_hint_unique): New, likewise.
(_Rb_tree<>::_M_get_insert_hint_equal_pos): New, search code of
_M_insert_equal_ method.
(_Rb_tree<>::_M_insert_equal_): Use latter.
(_Rb_tree<>::_M_emplace_hint_equal): New, likewise.
(_Rb_tree<>::_M_insert_lower): Remove first _Base_ptr parameter,
useless as always null.
* include/bits/stl_map.h: Include <tuple> in C++11.
(map<>::operator[](const key_type&)): Use
_Rb_tree<>::_M_emplace_hint_unique in C++11.
(map<>::operator[](key_type&&)): Likewise.
(map<>::emplace): New.
(map<>::emplace_hint): New.
* include/bits/stl_multimap.h (multimap<>::emplace): New.
(multimap<>::emplace_hint): New.
* include/bits/stl_set.h (set<>::emplace): New.
(set<>::emplace_hint): New.
* include/bits/stl_multiset.h (multiset<>::emplace): New.
(multiset<>::emplace_hint): New.
* include/debug/map.h (std::__debug::map<>::emplace): New.
(std::__debug::map<>::emplace_hint): New.
* include/debug/multimap.h (std::__debug::multimap<>::emplace):
New.
(std::__debug::multimap<>::emplace_hint): New.
* include/debug/set.h (std::__debug::set<>::emplace): New.
(std::__debug::set<>::emplace_hint): New.
* include/debug/multiset.h (std::__debug::multiset<>::emplace):
New.
(std::__debug::multiset<>::emplace_hint): New.
* include/profile/map.h (std::__profile::map<>::emplace): New.
(std::__profile::map<>::emplace_hint): New.
* include/profile/multimap.h (std::__profile::multimap<>::emplace):
New.
(std::__profile::multimap<>::emplace_hint): New.
* include/profile/set.h (std::__profile::set<>::emplace): New.
(std::__profile::set<>::emplace_hint): New.
* include/profile/multiset.h (std::__profile::multiset<>::emplace):
New.
(std::__profile::multiset<>::emplace_hint): New.
* testsuite/util/testsuite_container_traits.h: Signal that emplace
and emplace_hint are available on std::map, std::multimap,
std::set and std::multiset in C++11.
* testsuite/23_containers/map/operators/2.cc: New.
* testsuite/23_containers/map/modifiers/emplace/1.cc: New.
* testsuite/23_containers/multimap/modifiers/emplace/1.cc: New.
* testsuite/23_containers/set/modifiers/emplace/1.cc: New.
* testsuite/23_containers/multiset/modifiers/emplace/1.cc: New.
From-SVN: r191679
2012-09-24 19:53:36 +00:00
Paolo Carlini
4fd97a6380
revert: stl_algobase.h (max, min): Use conditional operator.
...
2012-09-23 Paolo Carlini <paolo.carlini@oracle.com>
Revert:
2012-09-21 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/stl_algobase.h (max, min): Use conditional operator.
From-SVN: r191652
2012-09-23 19:58:16 +00:00
Paolo Carlini
88a4c78be1
stl_algobase.h (max, min): Use conditional operator.
...
2012-09-21 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/stl_algobase.h (max, min): Use conditional operator.
From-SVN: r191608
2012-09-21 10:48:30 +00:00
François Dumont
3157879227
re PR libstdc++/54296 (using the object in the map to erase element from the map crashes)
...
2012-09-05 François Dumont <fdumont@gcc.gnu.org>
PR libstdc++/54296
* include/bits/hashtable.h (_M_erase(size_type, __node_base*,
__node_type*)): New.
(erase(const_iterator)): Use latter.
(_M_erase(std::true_type, const key_type&)): New, likewise.
(_M_erase(std::false_type, const key_type&)): New. Find all nodes
matching the key before deallocating them so that the key doesn't
get invalidated.
(erase(const key_type&)): Use the new member functions.
* testsuite/23_containers/unordered_map/erase/54296.cc: New.
* testsuite/23_containers/unordered_multimap/erase/54296.cc: New.
From-SVN: r190991
2012-09-05 19:41:16 +00:00
Benjamin Kosnik
3e7e2f128b
PR libstdc++/54005 continued
...
2012-08-30 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/54005 continued
* include/std/atomic: Use __atomic_lock_free with
* include/bits/atomic_base.h: Same.
From-SVN: r190810
2012-08-30 19:24:58 +00:00
Ulrich Drepper
25270f5e5a
random.h (random_device): Remove 'return' from constructor.
...
* include/bits/random.h (random_device) [GLIBCXX_USE_RANDOM_TR1]:
Remove 'return' from constructor.
From-SVN: r190806
2012-08-30 16:33:09 +00:00
Ulrich Drepper
a8c3f4c972
random.h (random_device): Move implementation to...
...
* include/bits/random.h (random_device): Move implementation to...
* src/c++11/random.cc: ...here. New file.
* config/abi/pre/gnu.ver: Add new version GLIBCXX_3.4.18. Export
std::random_device::* symbols.
* config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Generated.
* src/c++11/Makefile.am (sources): Add random.cc.
* src/c++11/Makefile.in: Regenerated.
From-SVN: r190787
2012-08-29 22:05:41 +00:00
Ulrich Drepper
7b93bdde91
Add interfaces to retrieve random numbers in bulk.
...
* include/bits/random.h (uniform_int_distribution<>): Add __generate
and __generate_impl functions.
(uniform_real_distribution<>): Likewise.
(bernoulli_distribution): Likewise.
(geometric_distribution<>): Likewise.
(negative_binomial_distribution<>): Likewise.
(poisson_distribution<>): Likewise.
(exponential_distribution<>): Likewise.
(normal_distribution<>): Likewise.
(lognormal_distribution<>): Likewise.
(chi_squared_distribution<>): Likewise.
(cauchy_distribution<>): Likewise.
(fisher_f_distribution<>): Likewise.
(student_t_distribution<>): Likewise.
(gamma_distribution<>): Likewise.
(weibull_distribution<>): Likewise.
(extreme_value_distribution<>): Likewise.
(discrete_distribution<>): Likewise.
(piecewise_constant_distribution<>): Likewise.
(piecewise_linear_distribution<>): Likewise.
* include/bits/random.tcc (__detail::_Power_of_2): New function.
(uniform_int_distribution<>::__generate_impl): New function.
(uniform_real_distribution<>::__generate_impl): New function.
(bernoulli_distribution::__generate_impl): New function.
(geometric_distribution<>::__generate_impl): New function.
(negative_binomial_distribution<>::__generate_impl): New function.
(poisson_distribution<>::__generate_impl): New function.
(exponential_distribution<>::__generate_impl): New function.
(normal_distribution<>::__generate_impl): New function.
(lognormal_distribution<>::__generate_impl): New function.
(chi_squared_distribution<>::__generate_impl): New function.
(cauchy_distribution<>::__generate_impl): New function.
(fisher_f_distribution<>::__generate_impl): New function.
(student_t_distribution<>::__generate_impl): New function.
(gamma_distribution<>::__generate_impl): New function.
(weibull_distribution<>::__generate_impl): New function.
(extreme_value_distribution<>::__generate_impl): New function.
(discrete_distribution<>::__generate_impl): New function.
(piecewise_constant_distribution<>::__generate_impl): New function.
(piecewise_linear_distribution<>::__generate_impl): New function.
From-SVN: r190712
2012-08-27 14:13:15 +00:00
Ulrich Drepper
b668e41af6
random.h (mersenne_twister_engine): Don't inline discard here.
...
* include/bits/random.h (mersenne_twister_engine): Don't inline
discard here. New member function _M_gen_rand.
* include/bits/random.tcc (mersenne_twister_engine<>::_M_gen_rand):
New function. Extracted from operator().
(mersenne_twister_engine<>::discard): New implementation which
skips in large steps.
(mersenne_twister_engine<>::operator()): Use _M_gen_rand.
From-SVN: r190711
2012-08-27 12:08:16 +00:00
Marc Glisse
a30e18c147
re PR libstdc++/54376 (incorrect complaint about redefinition)
...
2012-08-26 Marc Glisse <marc.glisse@inria.fr>
Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/54376
* include/bits/random.h (lognormal_distribution<>::operator==,
gamma_distribution<>::operator==,
chi_squared_distribution<>::operator==,
fisher_f_distribution<>::operator==,
student_t_distribution<>::operator==,
binomial_distribution<>::operator==,
negative_binomial_distribution<>::operator==,
poisson_distribution<>::operator==): Change inline friend definition
to non-template.
* testsuite/26_numerics/random/binomial_distribution/requirements/
explicit_instantiation/1.cc: New.
* testsuite/26_numerics/random/cauchy_distribution/requirements/
explicit_instantiation/1.cc: Likewise.
* testsuite/26_numerics/random/chi_squared_distribution/
requirements/explicit_instantiation/1.cc: Likewise.
* testsuite/26_numerics/random/discrete_distribution/requirements/
explicit_instantiation/1.cc: Likewise.
* testsuite/26_numerics/random/exponential_distribution/
requirements/explicit_instantiation/1.cc: Likewise.
* testsuite/26_numerics/random/extreme_value_distribution/
requirements/explicit_instantiation/1.cc: Likewise.
* testsuite/26_numerics/random/fisher_f_distribution/requirements/
explicit_instantiation/1.cc: Likewise.
* testsuite/26_numerics/random/gamma_distribution/requirements/
explicit_instantiation/1.cc: Likewise.
* testsuite/26_numerics/random/geometric_distribution/requirements/
explicit_instantiation/1.cc: Likewise.
* testsuite/26_numerics/random/lognormal_distribution/requirements/
explicit_instantiation/1.cc: Likewise.
* testsuite/26_numerics/random/negative_binomial_distribution/
requirements/explicit_instantiation/1.cc: Likewise.
* testsuite/26_numerics/random/normal_distribution/requirements/
explicit_instantiation/1.cc: Likewise.
* testsuite/26_numerics/random/piecewise_constant_distribution/
requirements/explicit_instantiation/1.cc: Likewise.
* testsuite/26_numerics/random/piecewise_linear_distribution/
requirements/explicit_instantiation/1.cc: Likewise.
* testsuite/26_numerics/random/poisson_distribution/requirements/
explicit_instantiation/1.cc: Likewise.
* testsuite/26_numerics/random/student_t_distribution/requirements/
explicit_instantiation/1.cc: Likewise.
* testsuite/26_numerics/random/uniform_int_distribution/
requirements/explicit_instantiation/1.cc: Likewise.
* testsuite/26_numerics/random/uniform_real_distribution/
requirements/explicit_instantiation/1.cc: Likewise.
* testsuite/26_numerics/random/weibull_distribution/requirements/
explicit_instantiation/1.cc: Likewise.
Co-Authored-By: Paolo Carlini <paolo.carlini@oracle.com>
From-SVN: r190694
2012-08-26 17:22:43 +00:00
Jonathan Wakely
6d79ba303c
re PR libstdc++/54351 (~unique_ptr() should not set stored pointer to null)
...
PR libstdc++/54351
* include/bits/unique_ptr.h (unique_ptr<T>::~unique_ptr): Do not use
reset().
(unique_ptr<T[]>::~unique_ptr()): Likewise.
* testsuite/20_util/unique_ptr/54351.cc: New.
* testsuite/20_util/unique_ptr/assign/48635_neg.cc: Adjust dg-error
line numbers.
From-SVN: r190676
2012-08-26 01:12:40 +01:00
Jonathan Wakely
05ee55c46b
re PR libstdc++/54248 (Comment in standard library header talks about boost)
...
PR libstdc++/54248
* include/bits/concept_check.h: Replace references to boost
namespace.
From-SVN: r190668
2012-08-25 19:51:53 +01:00
François Dumont
181a5a136f
2012-08-10 François Dumont <fdumont@gcc.gnu.org>
...
Ollie Wild <aaw@google.com>
* include/bits/hashtable.h
(_Hashtable<>_M_insert_multi_node(hash_code, node_type*)): New.
(_Hashtable<>_M_insert(_Args&&, false_type)): Use latter.
(_Hashtable<>::_M_emplace(false_type, _Args&&...)): Likewise.
(_Hashtable<>::_M_insert_bucket): Replace by ...
(_Hashtable<>::_M_insert_unique_node(size_type, hash_code, node_type*)):
... this, new.
(_Hashtable<>::_M_insert(_Args&&, true_type)): Use latter.
(_Hashtable<>::_M_emplace(true_type, _Args&&...)): Likewise.
* include/bits/hashtable_policy.h (_Map_base<>::operator[]): Use
latter, emplace the value_type rather than insert.
* include/std/unordered_map: Include tuple.
* include/std/unordered_set: Likewise.
* testsuite/util/testsuite_counter_type.h: New.
* testsuite/23_containers/unordered_map/operators/2.cc: New.
Co-Authored-By: Ollie Wild <aaw@google.com>
From-SVN: r190355
2012-08-13 19:43:19 +00:00
Jonathan Wakely
9ab48d6e6c
acinclude.m4: Update references to final C++11 standard.
...
* acinclude.m4: Update references to final C++11 standard.
* include/bits/shared_ptr.h: Likewise.
* include/bits/shared_ptr_base.h: Likewise.
* include/bits/unique_ptr.h: Likewise.
* include/std/chrono: Likewise.
* include/std/thread: Likewise.
From-SVN: r190271
2012-08-09 23:45:20 +01:00
Benjamin Kosnik
743ca87fe8
re PR libstdc++/54005 (Use __atomic_always_lock_free in libstdc++ is_lock_free instead of __atomic_is_lock_free)
...
2012-08-07 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/54005
* include/std/atomic: Use __atomic_always_lock_free.
* include/bits/atomic_base.h: Same.
From-SVN: r190216
2012-08-07 23:03:55 +00:00
Paolo Carlini
75235f0597
revert: stl_map.h (operator[](key_type&&)): Replace std::make_pair with value_type.
...
2012-08-04 Paolo Carlini <paolo.carlini@oracle.com>
Revert:
2012-08-03 Ollie Wild <aaw@google.com>
Richard Smith <richardsmith@google.com>
* include/bits/stl_map.h (operator[](key_type&&)): Replace
std::make_pair with value_type.
* testsuite/23_containers/map/operators/2.cc: New test.
From-SVN: r190142
2012-08-04 11:44:28 +00:00
Ollie Wild
2222df9f39
stl_map.h (operator[](key_type&&)): Replace std::make_pair with value_type.
...
2012-08-03 Ollie Wild <aaw@google.com>
Richard Smith <richardsmith@google.com>
* include/bits/stl_map.h (operator[](key_type&&)): Replace
std::make_pair with value_type.
* testsuite/23_containers/map/operators/2.cc: New test.
Co-Authored-By: Richard Smith <richardsmith@google.com>
From-SVN: r190128
2012-08-03 15:26:36 +00:00
Jonathan Wakely
6e48db73ed
memory: Include auto_ptr.h later.
...
* include/std/memory: Include auto_ptr.h later.
* include/bits/shared_ptr.h (shared_ptr(auto_ptr<_Up>&&): Remove
definition.
* include/bits/shared_ptr_base.h (__shared_ptr(auto_ptr<_Up>&&):
Likewise.
* include/bits/unique_ptr.h (unique_ptr(auto_ptr<_Up>&&): Likewise.
* include/backward/auto_ptr.h (unique_ptr(auto_ptr<_Up>&&): Define.
(shared_ptr(auto_ptr<_Up>&&, __shared_ptr(auto_ptr<_Up>&&): Likewise.
* include/std/future: Reduce header dependencies.
* testsuite/20_util/default_delete/48631_neg.cc: Adjust dg-error line
numbers.
* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
* testsuite/20_util/unique_ptr/assign/48635_neg.cc: Likewise.
From-SVN: r190109
2012-08-03 01:27:48 +01:00
François Dumont
62d3d3d431
c++config (_GLIBCXX_END_NAMESPACE_CONTAINER): Fix order of closures.
...
2012-07-30 François Dumont <fdumont@gcc.gnu.org>
* include/bits/c++config (_GLIBCXX_END_NAMESPACE_CONTAINER): Fix
order of closures.
(_GLIBCXX_END_NAMESPACE_ALGO): Likewise.
From-SVN: r189986
2012-07-30 20:08:59 +00:00
François Dumont
78aa145d9e
re PR libstdc++/54075 ([4.7.1] unordered_map insert still slower than 4.6.2)
...
2012-07-29 François Dumont <fdumont@gcc.gnu.org>
PR libstdc++/54075
* include/bits/hashtable_policy.h
(_Prime_rehash_policy::_M_next_bkt): Add a growth factor set to 2
to boost growth in the number of buckets.
* testsuite/performance/23_containers/insert/unordered_set.cc: New.
From-SVN: r189938
2012-07-29 16:44:18 +00:00
François Dumont
2514d7f1ff
re PR libstdc++/54075 ([4.7.1] unordered_map insert still slower than 4.6.2)
...
2012-07-25 François Dumont <fdumont@gcc.gnu.org>
PR libstdc++/54075
* include/bits/hashtable.h
(_Hashtable<>::_Hashtable(_InputIterator, _InputIterator,
size_type, ...): Remove std::max usage to guarantee that hashtable
state is consistent with hash policy state.
(_Hashtable<>::rehash): Likewise. Set _M_prev_resize to 0 to avoid
the hashtable to be shrinking on next insertion.
* testsuite/23_containers/unordered_set/modifiers/reserve.cc: New.
* testsuite/23_containers/unordered_multiset/modifiers/reserve.cc: New.
* testsuite/23_containers/unordered_map/modifiers/reserve.cc: New.
* testsuite/23_containers/unordered_multimap/modifiers/reserve.cc: New.
From-SVN: r189863
2012-07-25 19:32:48 +00:00
Jonathan Wakely
8db81fb2fe
re PR libstdc++/53978 (Missing static const definitions in <bits/alloc_traits.h>)
...
PR libstdc++/53978
* include/bits/alloc_traits.h (allocator_traits): Define static
constants.
* include/bits/ptr_traits.h (pointer_traits): Likewise.
* include/ext/alloc_traits.h (__allocator_always_compares_equal):
Likewise.
From-SVN: r189547
2012-07-16 21:43:11 +01: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
d695f91575
revert: re PR libstdc++/49561 ([C++0x] std::list::size complexity)
...
2012-07-02 Paolo Carlini <paolo.carlini@oracle.com>
Revert:
2011-10-04 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/49561
* include/bits/stl_list.h (_List_base<>::_List_impl::_M_size):
Add in C++0x mode.
(_List_base<>::_List_impl, _List_base<>::_M_get_node,
_List_base<>::_M_put_node, _List_base<>::_List_base(_List_base&&),
list<>::size, list<>::swap, list<>::splice): Use it.
(operator==(const list<>&, const list<>&)): Rewrite in C++0x mode.
* include/bits/list.tcc (list<>::erase): Likewise.
(list<>::merge): Adjust in C++0x mode.
* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
Adjust dg-error line number.
* 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: r189185
2012-07-03 00:47:17 +00:00
Benjamin Kosnik
e07b233d2e
c++config: Remove __regex nested namespace.
...
2012-06-27 Benjamin Kosnik <bkoz@redhat.com>
* include/bits/c++config: Remove __regex nested namespace.
* include/bits/regex_compiler.h: Change __regex to
__detail. Adjust doxygen markup, add regex-details group.
* include/bits/regex_constants.h: Same.
* include/bits/regex_cursor.h: Same.
* include/bits/regex_error.h: Same.
* include/bits/regex_grep_matcher.h: Same.
* include/bits/regex_grep_matcher.tcc: Same.
* include/bits/regex_nfa.h: Same.
* include/bits/regex_nfa.tcc: Same.
* include/bits/regex.h: Same. Remove static from global constants.
* testsuite/ext/profile/mutex_extensions_neg.cc: Adjust line numbers.
* include/bits/locale_classes.tcc: Add use_facet, has_facet to
locales group.
From-SVN: r189039
2012-06-28 07:50:34 +00:00
Benjamin Kosnik
7033d59e69
re PR libstdc++/53543 ([unordered_map] conflict with __is_convertible clang intrinsic)
...
2012-05-31 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/53543
* include/bits/hashtable_policy.h (_Insert::__is_convertible):
Rename to __is_conv to avoid clash with clang built-in.
From-SVN: r188088
2012-05-31 23:02:18 +00:00
François Dumont
80a009e565
2012-05-29 François Dumont <fdumont@gcc.gnu.org>
...
* include/bits/stl_tempbuf.h (__uninitialized_construct_buf)
(__uninitialized_construct_buf_dispatch<>::__ucr): Fix to work
with iterator returning rvalue.
* testsuite/25_algorithms/stable_sort/3.cc: New.
From-SVN: r187985
2012-05-29 19:29:29 +00:00
Dodji Seketeli
650dc14a73
PR c++/53322 - -Wunused-local-typedefs is not enabled by Wall or Wunused
...
As the audit trail of this shows, -Wunused-local-typedefs is not
turned on by -Wunused after all. Sigh.
Now that we have the EnabledBy construct for the *.opt files, it's
more precise and concise to use that to make -Wunused-local-typedefs
be triggered by -Wunused.
I have changed the gcc+.dg/warn/Wunused-local-typedefs.C test case to
make it use -Wunused instead of -Wunused-local-typedefs. I had to
adjust it to avoid the warnings due to the other -W* options triggered
by -Wunused there.
While testing the compiler, it turned out that some local typedefs
were not being used when the experimental "Concepts" support is turned
off, in the libstdc++ test suite. I also had to remove some obvious
useless local typedef usage in the fortran front-end. Fixed thus.
Bootstrapped and tested on x86_64-unknown-linux-gnu against trunk.
gcc/c-family/
PR c++/53322
* c.opt (Wunused-local-typedefs): Use EnabledBy(Wunused).
libstdc++-v3/
PR c++/53322
* include/bits/stl_algobase.h (lower_bound)
(lexicographical_compare): Do not declare unused local typedefs
here when Concepts are turned off.
gcc/fortran/
PR c++/53322
* f95-lang.c (gfc_init_builtin_functions): Remove the unused
typedef builtin_type.
gcc/testsuite/
PR c++/53322
* g++.dg/warn/Wunused-local-typedefs.C: Adjust to use -Wunused
instead of -Wunused-local-typedefs.
From-SVN: r187757
2012-05-22 05:50:26 +02:00
Paolo Carlini
5ac4e73a1d
re PR libstdc++/53339 (unordered_map::iterator requires Value to be complete type)
...
2012-05-15 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/53339
* include/bits/hashtable_policy.h (__detail::_Identity,
__detail::_Select1st): Add.
(_Map_base, _Hashtable_base): Use the latter, adjust parameters.
* include/bits/hashtable.h (_Hashtable::__key_extract): Adjust.
* include/bits/unordered_set.h (__uset_hashtable, __umset_hashtable):
Likewise.
* include/bits/unordered_map.h (__umap_hashtable, __ummap_hashtable):
Likewise.
* include/bits/stl_function.h (_Identity, _Select1st, _Select2nd)
Unconditionally derive from unary_function.
* include/ext/functional (identity, select1st, select2nd): Remove
#ifdef __GXX_EXPERIMENTAL_CXX0X__ bits.
* testsuite/23_containers/unordered_map/requirements/53339.cc: New.
* testsuite/23_containers/unordered_multimap/requirements/
53339.cc: Likewise.
From-SVN: r187515
2012-05-15 10:00:19 +00:00
DJ Delorie
586518549e
random.tcc (seed_seq::generate): Cast max() operands to size_t to ensure a template match.
...
* include/bits/random.tcc (seed_seq::generate): Cast max()
operands to size_t to ensure a template match.
* include/std/bitset (_M_copy_from_ptr): Cast min() operands to
size_t to ensure a template match.
From-SVN: r187376
2012-05-10 16:32:47 -04:00
Benjamin Kosnik
d632488ae0
re PR libstdc++/44015 (template parameters not documented)
...
2012-05-02 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/44015
* include/bits/basic_ios.h: Add tparam markup for
* doxygen. include/bits/basic_string.h: Same.
* include/bits/forward_list.h: Same.
* include/bits/stl_bvector.h: Same.
* include/bits/stl_deque.h: Same.
* include/bits/stl_list.h: Same. include/bits/stl_map.h:
* Same. include/bits/stl_multimap.h: Same.
* include/bits/stl_multiset.h: Same.
* include/bits/stl_pair.h: Same.
* include/bits/stl_queue.h: Same.
* include/bits/stl_set.h: Same.
* include/bits/stl_stack.h: Same.
* include/bits/stl_vector.h: Same.
* include/bits/unordered_map.h: Same.
* include/bits/unordered_set.h: Same. include/std/array:
* Same. include/std/atomic: Same. include/std/fstream:
* Same. include/std/istream: Same. include/std/ostream:
* Same. include/std/sstream: Same.
* include/std/streambuf: Same.
* testsuite/23_containers/deque/requirements/dr438/*:
Adjust line numbers.
* testsuite/23_containers/list/requirements/dr438/*: Same.
* testsuite/23_containers/vector/requirements/dr438/*: Same.
From-SVN: r187066
2012-05-02 22:25:28 +00:00
Benjamin Kosnik
63dc7fbee0
hashtable_policy.h: Correct namepace nesting for _Hashtable forward declaration.
...
2012-05-02 Benjamin Kosnik <bkoz@redhat.com>
* include/bits/hashtable_policy.h: Correct namepace nesting for
_Hashtable forward declaration.
From-SVN: r187052
2012-05-02 16:22:06 +00:00
François Dumont
b7a9facb2c
re PR libstdc++/53115 (_Hashtable::_M_rehash_aux(false_type) is broken)
...
2012-05-01 François Dumont <fdumont@gcc.gnu.org>
PR libstdc++/53115
* include/bits/hashtable.h
(_Hashtable<>::_M_rehash_aux(size_type, false_type)): Fix buckets
after insertion of several equivalent elements.
* testsuite/23_containers/unordered_multiset/insert/53115.cc: New.
* testsuite/23_containers/unordered_multimap/insert/53115.cc: New.
From-SVN: r187025
2012-05-01 20:29:16 +00:00
Marc Glisse
cf48c25519
re PR libstdc++/51795 (linear_congruential_engine doesn't work correctly)
...
2012-04-29 Marc Glisse <marc.glisse@inria.fr>
Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/51795
* include/bits/stl_algobase.h (__lg<>(_Size)): Remove.
(__lg(int), __lg(unsigned), __lg(long), __lg(unsigned long),
__lg(long long), __lg(unsigned long long)): Define constexpr.
* include/bits/random.h (_Mod<>): Overcome Schrage's algorithm
limitations.
(__mod): Adjust.
(linear_congruential): Remove FIXME static_assert.
* include/bits/random.tcc (_Mod<>): Adjust.
* testsuite/26_numerics/random/linear_congruential_engine/operators/
51795.cc: New.
Co-Authored-By: Paolo Carlini <paolo.carlini@oracle.com>
From-SVN: r186948
2012-04-29 23:36:09 +00:00
Benjamin Kosnik
af6204cc29
hashtable.h: Adjust doxygen markup for base classes.
...
2012-04-25 Benjamin Kosnik <bkoz@redhat.com>
* include/bits/hashtable.h: Adjust doxygen markup for base classes.
* include/bits/hashtable_policy.h: Same.
From-SVN: r186856
2012-04-26 02:20:32 +00:00
Paolo Carlini
970aa0b9a9
re PR c++/53067 (c++0x GCC 4.7.0 Regression std::ref with unordered sets)
...
2012-04-22 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/53067
* include/bits/hashtable_policy.h: Change inheritances to public.
* testsuite/23_containers/unordered_map/requirements/53067.cc: New.
* testsuite/23_containers/unordered_set/requirements/53067.cc: Likewise.
From-SVN: r186676
2012-04-22 17:37:57 +00:00
Jonathan Wakely
fcf6e948d1
ptr_traits.h (pointer_traits::rebind): Make public.
...
* include/bits/ptr_traits.h (pointer_traits::rebind): Make public.
* testsuite/20_util/pointer_traits/requirements/typedefs.cc: Check
rebind works.
From-SVN: r186670
2012-04-22 14:42:38 +01:00
Paolo Carlini
f84ca6e7ce
re PR libstdc++/52699 (infinite loop generated with -O0)
...
2012-04-14 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/52699
* include/bits/random.tcc (independent_bits_engine<>::operator()())
Avoid various overflows; use common_type on result_type and
_RandomNumberEngine::result_type; avoid floating point computations;
other smaller tweaks.
* include/bits/random.tcc (uniform_int_distribution<>::operator())
Use common_type; assume _UniformRandomNumberGenerator::result_type
unsigned; tidy.
* include/bits/stl_algobase.h (__lg(unsigned), __lg(unsigned long),
__lg(unsigned long long)): Add.
From-SVN: r186456
2012-04-14 22:33:22 +00:00
Benjamin Kosnik
4dad8b49ee
unordered_map.h (__unordered_map): Remove.
...
2012-04-12 Benjamin Kosnik <bkoz@redhat.com>
* include/bits/unordered_map.h (__unordered_map): Remove.
(__unordered_multimap): Remove.
Add aliases for __umap_traits, __umap_hashtable, __ummap_traits,
__ummap_hashtable.
(unordered_map): Derive from __umap_hashtable.
(unordered_multimap): Derive from __ummap_hashtable.
* include/bits/unordered_set.h (__unordered_set): Remove.
(__unordered_multiset): Remove.
Add aliases for __uset_traits, __uset_hashtable, __umset_traits,
__umset_hashtable.
(unordered_set): Derive from __uset_hashtable.
(unordered_multiset): Derive from __umset_hashtable.
* include/bits/hashtable.h (__cache_default): New, consolidated
cache defaults for _Hashtable. Adjust comments for doxygen.
(_Hashtable): Consolidate bool template parameters into new,
_Traits class. Inherited base classes synthesize _Hashtable in
CRTP via original 10 parameters. Prefer using declarations to
typedefs, add __node_type, __bucket_type, etc. Push many nested
types down hierarchy to _Hashtable_base. Add constructors
necessary for top-level unordered_containers. Consolidate insert
member functions and logic in new base class, __detail::_Insert
and __detail::_Insert_base.
(_Hashtable::operator=(initializer_list)): Add.
* include/bits/hashtable_policy.h: Convert to doxygen markup.
(_Hashtable_traits) New. Consolidate bool template parameters here.
(_Insert, _Insert_base): New, consolidated insert member functions.
(_Map_base, _Equality, _Rehash_base): Adjust template parameters,
use base types.
(_Hashtable_base): Move type declarations useful to other base
classes into this class.
* python/libstdcxx/v6/printers.py (Tr1HashtableIterator): Update.
* testsuite/23_containers/unordered_set/instantiation_neg.cc:
Adjust traits, line numbers.
From-SVN: r186403
2012-04-13 00:33:10 +00:00
Jeffrey Yasskin
2fc9b37dd0
Fix PR52822 (stable_partition move-assigns object to itself) by scanning for...
...
Fix PR52822 (stable_partition move-assigns object to itself) by
scanning for the first value that doesn't match the predicate before
starting to rearrange values.
2012-04-03 Jeffrey Yasskin <jyasskin@google.com>
PR libstdc++/52822
* include/bits/stl_algo.h (__find_if_not): Expose in
C++98 mode.
(__find_if_not_n): Like __find_if_not, but works on and updates a
counted range instead of a bounded range.
(stable_partition): Guarantee !__pred(*__first) in call to
__stable_partition_adaptive() or __inplace_stable_partition().
(__stable_partition_adaptive): Use new precondition to avoid
moving/copying objects onto themselves. Guarantee new
precondition to recursive calls.
(__inplace_stable_partition): Use new precondition to simplify
base case, remove __last parameter. Guarantee new precondition to
recursive calls.
* testsuite/25_algorithms/stable_partition/moveable.cc (test02):
Test a sequence that starts with a value matching the predicate.
* testsuite/25_algorithms/stable_partition/pr52822.cc:
Test vectors, which have a destructive self-move-assignment.
From-SVN: r186391
2012-04-12 20:59:09 +00:00
Paolo Carlini
b9b0921497
re PR libstdc++/52942 (using std::ref with a std::unordered_map fails to compile)
...
2012-04-12 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/52942
* include/bits/stl_function.h (_Identity, _Select1st, _Select2nd):
In C++11 mode do not derive from std::unary_function.
* include/ext/functional (identity, select1st, select2nd): Adjust.
* testsuite/23_containers/unordered_map/requirements/52942.cc: New.
* testsuite/23_containers/unordered_set/requirements/52942.cc: Likewise.
From-SVN: r186375
2012-04-12 12:18:06 +00:00
Jonathan Wakely
a00cc15e3d
re PR c++/52924 (Using an std::function object as deleter of shared_ptr in C++0x mode does not compile)
...
PR libstdc++/52924
* include/bits/shared_ptr_base.h (_Sp_counted_deleter): Add
user-defined destructor.
(_Sp_counted_inplace): Likewise.
* testsuite/20_util/shared_ptr/cons/52924.cc: New.
* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error
line numbers.
From-SVN: r186363
2012-04-11 23:54:53 +01:00
Paolo Carlini
7826329699
forward_list.h (splice_after(const_iterator, forward_list&), [...]): Add per C++11 as published (and LWG 1310).
...
2012-04-11 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/forward_list.h (splice_after(const_iterator,
forward_list&), splice_after(const_iterator, forward_list&,
consst_iterator), splice_after(const_iterator, forward_list&,
const_iterator, const_iterator), merge(forward_list&),
merge(forward_list&, _Comp)): Add per C++11 as published (and
LWG 1310).
* include/debug/forward_list: Adjust.
* include/bits/forward_list.h (splice_after(const_iterator,
forward_list&&, const_iterator)): Only declare.
(_M_transfer_after): Remove.
(_M_splice_after(const_iterator, forward_list&&)): Change signature.
(splice_after(const_iterator, forward_list&&, const_iterator,
const_iterator)): Use the latter.
* include/bits/forward_list.tcc (splice_after(const_iterator,
forward_list&&, const_iterator)): Define here.
(_M_splice_after): Define, use throughout.
* include/bits/forward_list.h (insert_after(const_iterator,
std::initializer_list<_Tp>)): Forward to insert_after(const_iterator,
_InputIterator, _InputIterator).
* include/bits/forward_list.tcc: Remove definition.
* testsuite/23_containers/forward_list/modifiers/6.cc: New.
* testsuite/23_containers/forward_list/operations/1.cc: Adjust.
From-SVN: r186338
2012-04-11 17:31:57 +00:00
Paolo Carlini
b16212bd3c
re PR libstdc++/52931 (std::hash shouldn't be defined for unknown types)
...
2012-04-11 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/52931
* include/bits/functional_hash.h (struct hash): Remove definition.
* testsuite/20_util/hash/52931.cc: New.
From-SVN: r186310
2012-04-11 11:27:50 +00:00
Jonathan Wakely
ea2c1a6d67
re PR libstdc++/52591 ([C++0x] [4.7 Regression] moving std::vector relies on movable elements)
...
PR libstdc++/52591
* include/bits/stl_vector.h (vector::operator=(vector&&)): Dispatch
to _M_move_assign depending on whether allocator is moved.
(vector::_M_move_assign): Add overloaded functions.
* testsuite/23_containers/vector/52591.cc: New.
* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
Adjust dg-error line number.
* 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.
From-SVN: r186057
2012-04-01 23:04:54 +01:00
Jeffrey Yasskin
195940adc0
re PR libstdc++/52799 (deque::emplace(iterator, ...) tries to call push_front(...), which doesn't exist)
...
2012-03-30 Jeffrey Yasskin <jyasskin@gcc.gnu.org>
Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/52799
* include/bits/deque.tcc (emplace): Fix thinko, replace push_front
-> emplace_front, and likewise for *_back.
* testsuite/23_containers/deque/modifiers/emplace/52799.cc: New.
* testsuite/23_containers/list/modifiers/emplace/52799.cc: Likewise.
* testsuite/23_containers/vector/modifiers/emplace/52799.cc: Likewise.
Co-Authored-By: Paolo Carlini <paolo.carlini@oracle.com>
From-SVN: r186035
2012-03-31 01:56:55 +00:00
Paolo Carlini
21669dfe20
forward_list.h: Slightly tweak two comments.
...
2012-03-23 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/forward_list.h: Slightly tweak two comments.
From-SVN: r185737
2012-03-23 13:26:49 +00:00
Jonathan Wakely
b4db974a6b
stl_list.h (list::_M_size): Use NSDMI.
...
* include/bits/stl_list.h (list::_M_size): Use NSDMI.
* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
Adjust line numbers.
* 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.
From-SVN: r185580
2012-03-20 17:01:19 +00:00
Benjamin Kosnik
fa7548481a
allocator.h (std::allocator): Base class is __allocator_base.
...
2012-03-19 Benjamin Kosnik <bkoz@redhat.com>
* include/bits/allocator.h (std::allocator): Base class is
__allocator_base.
(uses_allocator): Add to sub-grouping.
* include/ext/new_allocator.h: Doxygen markup for tparm.
* config/allocator/bitmap_allocator_base.h: Use __allocator_base
template alias in C++11.
* config/allocator/malloc_allocator_base.h: Same.
* config/allocator/mt_allocator_base.h: Same.
* config/allocator/new_allocator_base.h: Same.
* config/allocator/pool_allocator_base.h: Same.
From-SVN: r185544
2012-03-19 21:41:15 +00:00
François Dumont
ac0ab963f2
re PR libstdc++/52476 ([DR 518] Unordered multimap reorders equivalent elements)
...
2012-03-15 François Dumont <fdumont@gcc.gnu.org>
PR libstdc++/52476
* include/bits/hashtable.h (_Hashtable<>::_M_rehash_aux): Add.
(_Hashtable<>::_M_rehash): Use the latter.
* testsuite/23_containers/unordered_multimap/insert/52476.cc: New.
* testsuite/23_containers/unordered_multiset/insert/52476.cc: New.
From-SVN: r185476
2012-03-16 21:03:15 +00:00
Paolo Carlini
43094d442e
forward_list.h: Fix comments.
...
2012-03-14 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/forward_list.h: Fix comments.
From-SVN: r185382
2012-03-14 13:19:43 +00:00
Benjamin Kosnik
d8dd52a990
user.cfg.in: Update to Doxygen 1.8.0.
...
2012-03-08 Benjamin Kosnik <bkoz@redhat.com>
* doc/doxygen/user.cfg.in: Update to Doxygen 1.8.0.
* include/bits/locale_facets.h: Adjust markup to avoid warnings.
* include/ext/pb_ds/assoc_container.hpp: Same.
* include/ext/pb_ds/priority_queue.hpp: Same.
* include/std/fstream: Same.
* include/std/ratio: Same.
* testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Adjust line
numbers.
* testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Same.
Co-Authored-By: Ramana Radhakrishnan <ramana@gcc.gnu.org>
From-SVN: r185094
2012-03-08 05:20:52 +00:00
Paolo Carlini
93d9a365d2
stl_algobase.h (iter_swap): In C++11 mode just call swap.
...
2012-03-05 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/stl_algobase.h (iter_swap): In C++11 mode just
call swap.
* include/bits/stl_bvector.h (swap(_Bit_reference,
_Bit_reference), swap(_Bit_reference, bool&),
swap(bool&, _Bit_reference)): Add.
* testsuite/23_containers/vector/bool/swap.cc: New.
From-SVN: r184939
2012-03-05 16:31:50 +00:00
Paolo Carlini
2203cb90fb
re PR libstdc++/43813 ([DR1234] vector<T*>(3, NULL) fails to compile)
...
2012-03-04 Paolo Carlini <paolo.carlini@oracle.com>
Jonathan Wakely <jwakely.gcc@gmail.com>
PR libstdc++/43813
* include/bits/stl_iterator_base_types.h (_RequireInputIter): New.
* include/ext/vstring.h (__versa_string<>::__versa_string
(_InputIterator, _InputIterator, const _Alloc&),
__versa_string<>::append(_InputIterator, _InputIterator),
__versa_string<>::assign(_InputIterator, _InputIterator),
__versa_string<>::insert(iterator, _InputIterator,
_InputIterator), __versa_string<>::replace(iterator, iterator,
_InputIterator, _InputIterator)): Use it.
* include/bits/stl_list.h (list<>::list(_InputIterator,
_InputIterator, const allocator_type&), list<>::assign(_InputIterator,
_InputIterator), list<>::insert(iterator, _InputIterator,
_InputIterator)): Likewise.
* include/bits/stl_vector.h (vector<>::vector(_InputIterator,
_InputIterator, const allocator_type&), vector<>::assign(_InputIterator,
_InputIterator), vectort<>::insert(iterator, _InputIterator,
_InputIterator)): Likewise.
* include/bits/stl_deque.h (deque<>::deque(_InputIterator,
_InputIterator, const allocator_type&), deque<>::deque(_InputIterator,
_InputIterator), deque<>::insert(iterator, _InputIterator,
_InputIterator)): Likewise.
* include/bits/stl_bvector.h (vector<>::vector(_InputIterator,
_InputIterator, const allocator_type&), vector<>::deque(_InputIterator,
_InputIterator), vector<>::insert(iterator, _InputIterator,
_InputIterator)): Likewise.
* include/bits/forward_list.h (forward_list<>::forward_list
(_InputIterator, _InputIterator, const allocator_type&),
forward_list<>::assign(_InputIterator, _InputIterator),
forward_list<>::insert_after(const_iterator, _InputIterator,
_InputIterator)): Likewise.
(forward_list<>::_M_initialize_dispatch(,, __true_type): Remove.
(forward_list<>::_M_range_initialize): Add, adjust everywhere.
* include/bits/forward_list.tcc: Adjust.
* include/debug/forward_list: Adjust.
* include/debug/vector: Likewise.
* include/debug/deque: Likewise.
* include/debug/list: Likewise.
* testsuite/ext/vstring/requirements/do_the_right_thing.cc: New.
* testsuite/23_containers/forward_list/requirements/
do_the_right_thing.cc: Likewise.
* testsuite/23_containers/vector/requirements/
do_the_right_thing.cc: Likewise.
* testsuite/23_containers/deque/requirements/
do_the_right_thing.cc: Likewise.
* testsuite/23_containers/list/requirements/
do_the_right_thing.cc: Likewise.
* testsuite/23_containers/forward_list/requirements/dr438/
assign_neg.cc: Adjust dg-error line number.
* 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.
Co-Authored-By: Jonathan Wakely <jwakely.gcc@gmail.com>
From-SVN: r184911
2012-03-05 01:15:28 +00:00
Jason Merrill
6bfb3eb52e
locale_facets.h (class num_get): Undo reordering of do_get virtual functions.
...
* include/bits/locale_facets.h (class num_get): Undo reordering of
do_get virtual functions.
From-SVN: r184530
2012-02-23 17:14:56 -05:00
Paolo Carlini
d150390867
re PR libstdc++/52309 ([c++0x] unordered_set illegally requires value_type::operator!=)
...
2012-02-20 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/52309
* include/bits/hashtable_policy.h (_Equality_base<, true,>::
_M_equal(const _Hashtable&)): Compare values with operator==.
* testsuite/23_containers/unordered_set/operators/52309.cc: New.
From-SVN: r184388
2012-02-20 11:11:39 +00:00
Richard Henderson
b2cb69647e
PR libstdc++/51798 continued
...
PR libstdc++/51798 continued
* include/bits/shared_ptr_base.h
(_Sp_counted_base<_S_atomic>::_M_add_ref_lock): Hoist initial load
outside compare_exchange loop.
* include/tr1/shared_ptr.h: Same.
* include/parallel/compatibility.h (__compare_and_swap_32): Use strong
version of compare_exchange.
(__compare_and_swap_64): Same.
* include/profile/impl/profiler_state.h (__gnu_profile::__turn): Same.
* libsupc++/guard.cc (__cxa_guard_acquire): Same.
From-SVN: r184171
2012-02-13 13:30:31 -08:00
Benjamin Kosnik
75cee7c62a
PR libstdc++/51798 continued.
...
2012-02-10 Benjamin Kosnik <bkoz@redhat.com>
Jonathan Wakely <jwakely.gcc@gmail.com>
PR libstdc++/51798 continued.
* acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Use __atomic_*
builtins instead of __sync_* builtins for atomic functionality.
* include/bits/shared_ptr_base.h: Same.
* include/parallel/compatibility.h: Same.
* include/profile/impl/profiler_state.h: Same.
* include/tr1/shared_ptr.h: Same.
* libsupc++/eh_ptr.cc: Same.
* libsupc++/eh_throw.cc: Same.
* libsupc++/eh_tm.cc: Same.
* libsupc++/guard.cc: Same.
* configure: Regenerated.
* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust line numbers.
Co-Authored-By: Jonathan Wakely <jwakely.gcc@gmail.com>
From-SVN: r184110
2012-02-10 18:20:43 +00:00
Benjamin Kosnik
4035739819
re PR libstdc++/51811 ([C++0x] Incorrect increment/decrement of atomic pointers)
...
2012-02-03 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/51811
* include/bits/atomic_base.h (atomic<_Tp*>): Fix offsets.
* testsuite/29_atomics/atomic/operators/51811.cc: New.
* testsuite/29_atomics/atomic/operators/pointer_partial_void.cc: New.
From-SVN: r183875
2012-02-03 19:49:11 +00:00
Paolo Carlini
d9c257a7e2
re PR libstdc++/51795 (linear_congruential_engine doesn't work correctly)
...
2012-01-27 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/51795
* include/bits/random.h (linear_congruential_generator): Add
static_assert preventing instantiation for values of 'a' and 'm'
currently handled incorrectly but _Mod::__calc.
* include/bits/random.tcc (seed_seq::generate): Avoid unsafe
uses of _Mod::__calc.
From-SVN: r183655
2012-01-27 23:30:28 +00:00
Richard Henderson
e29137fe36
libstdc++: Use __GCC_ATOMIC_TEST_AND_SET in atomic_flag.
...
* include/bits/atomic_base.h (__atomic_flag_base): Define _M_i
based on the value of __GCC_ATOMIC_TEST_AND_SET_TRUEVAL.
(ATOMIC_FLAG_INIT): Initialize with 0, not false.
(atomic_flag::atomic_flag): Use __GCC_ATOMIC_TEST_AND_SET_TRUEVAL.
From-SVN: r183582
2012-01-26 13:50:52 -08:00
Jakub Jelinek
ac1384b7c5
re PR libstdc++/51845 (23_containers/unordered_multimap/erase/24061-multimap.cc segfault)
...
PR libstdc++/51845
* include/bits/hashtable.h
(_Hashtable<>::erase(const_iterator, const_iterator)): Also update
_M_buckets[__n_bkt] if __is_bucket_begin.
* testsuite/23_containers/unordered_multimap/erase/51845-multimap.cc:
New test.
From-SVN: r183300
2012-01-19 11:46:31 +01:00
François Dumont
66b432fd29
re PR libstdc++/51866 ([c++0x][4.7 Regression] unordered_multiset compares moved-out values)
...
2012-01-18 François Dumont <fdumont@gcc.gnu.org>
Roman Kononov <roman@binarylife.net>
PR libstdc++/51866
* include/bits/hashtable.h (_Hashtable<>::_M_insert(_Arg, false_type)):
Do not keep a reference to a potentially moved instance.
* testsuite/23_containers/unordered_multiset/insert/51866.cc: New.
* testsuite/23_containers/unordered_multimap/insert/51866.cc: New.
Co-Authored-By: Roman Kononov <roman@binarylife.net>
From-SVN: r183285
2012-01-18 20:17:57 +00:00
Jonathan Wakely
af7b9e82d0
* include/bits/stl_iterator.h (reverse_iterator): Doxygen comments.
...
From-SVN: r183182
2012-01-14 17:47:18 +00:00
François Dumont
f86b266c7c
hashtable_policy.h (_Hash_node_base): New, use it as base class of ...
...
2012-01-13 François Dumont <fdumont@gcc.gnu.org>
* include/bits/hashtable_policy.h (_Hash_node_base): New, use it as
base class of ...
(_Hash_node<Value, true>, _Hash_node<Value, false>): ... those.
* include/bits/hashtable.h (_Hashtable): Replace _M_begin_bucket_index
by _M_before_begin. Review implementation so that we do not need to
look for previous non-empty bucket when inserting nodes.
From-SVN: r183164
2012-01-13 21:49:14 +00:00
François Dumont
f7d6ad0a5c
hashtable_policy.h (_Hashtable_base<>::_M_eq()): protected rather than private, use it...
...
2012-01-05 François Dumont <fdumont@gcc.gnu.org>
* include/bits/hashtable_policy.h (_Hashtable_base<>::_M_eq()):
protected rather than private, use it...
* include/bits/hashtable.h (_Hashtable<>::key_eq()): ... here.
* testsuite/23_containers/unordered_set/observers.cc: New.
* testsuite/23_containers/unordered_multiset/observers.cc: New.
* testsuite/23_containers/unordered_map/observers.cc: New.
* testsuite/23_containers/unordered_multimap/observers.cc: New.
From-SVN: r182928
2012-01-05 20:59:17 +00:00
François Dumont
346afd846b
hashtable_policy.h (_Ebo_helper<>): Rename to the more specific _Hashtable_ebo_helper.
...
2012-01-03 François Dumont <fdumont@gcc.gnu.org>
* include/bits/hashtable_policy.h (_Ebo_helper<>): Rename to the more
specific _Hashtable_ebo_helper. Hide this implementation detail thanks
to private inheritance.
From-SVN: r182857
2012-01-03 20:33:20 +00:00
Paolo Carlini
f32fd5aaec
re PR libstdc++/51711 (regex.h contains incorrect code)
...
2011-12-30 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/51711
* include/bits/regex.h (regex_replace): Fix thinko.
* testsuite/28_regex/algorithms/regex_replace/char/51711.cc: New.
* testsuite/28_regex/algorithms/regex_replace/wchar_t/51711.cc:
Likewise.
From-SVN: r182740
2011-12-30 11:40:37 +00:00
Paolo Carlini
cc74ac5dbc
hashtable_policy.h (struct _Ebo_helper<>): Don't use _N, badname on Solaris; minor stylistic changes.
...
2011-12-29 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/hashtable_policy.h (struct _Ebo_helper<>): Don't use
_N, badname on Solaris; minor stylistic changes.
From-SVN: r182734
2011-12-29 22:04:16 +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
Jonathan Wakely
2ae90de665
regex.h (match_results::size_type): Use allocator_traits.
...
* include/bits/regex.h (match_results::size_type): Use
allocator_traits.
From-SVN: r182645
2011-12-23 01:47:41 +00:00
Paolo Carlini
92637e93ed
re PR libstdc++/51558 (Declaration of unspecialized std::hash<_Tp>::operator()(_Tp) turns compile-time errors into link-time errors)
...
2011-12-15 Paolo Carlini <paolo.carlini@oracle.com>
Jonathan Wakely <jwakely.gcc@gmail.com>
PR libstdc++/51558
* include/bits/functional_hash.h (struct hash): Add static_assert.
* src/compatibility-c++0x.cc: Adjust compatibility definitions.
* testsuite/23_containers/unordered_map/erase/51142.cc: Adjust.
* testsuite/23_containers/unordered_set/erase/51142.cc: Likewise.
* testsuite/23_containers/unordered_multimap/erase/51142.cc: Likewise.
* testsuite/23_containers/unordered_multiset/erase/51142.cc: Likewise.
Co-Authored-By: Jonathan Wakely <jwakely.gcc@gmail.com>
From-SVN: r182392
2011-12-15 22:15:21 +00:00
Jonathan Wakely
d36971dd86
re PR libstdc++/51540 (doxygen documentation for partial_sum misleading)
...
PR libstdc++/51540
* include/bits/stl_numeric.h (partial_sum): Adjust doxygen comments.
From-SVN: r182359
2011-12-15 09:49:59 +00:00
Benjamin Kosnik
7897a1c029
user.cfg.in: Add macros, directories.
...
2011-12-10 Benjamin Kosnik <bkoz@redhat.com>
* doc/doxygen/user.cfg.in: Add macros, directories.
* include/bits/locale_classes.h: Remove doxygen warnings, fix markup.
* include/bits/locale_classes.tcc: Same.
* include/bits/shared_ptr.h: Same.
* include/bits/stl_algo.h: Same.
* include/bits/stl_list.h: Same.
* include/bits/stl_numeric.h: Same.
* include/debug/safe_base.h: Same.
* include/parallel/equally_split.h: Same.
* include/std/bitset: Same.
* include/std/complex: Same.
* include/std/fstream: Same.
* include/std/istream: Same.
* include/std/ostream: Same.
* include/tr2/dynamic_bitset: Same.
* scripts/run_doxygen: Remove munging for names that no longer exist.
* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
Adjust line numbers.
* 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.
From-SVN: r182189
2011-12-10 15:33:06 +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
Jonathan Wakely
3d0c32fe56
atomic_base.h (__calculate_memory_order): Rename to...
...
* include/bits/atomic_base.h (__calculate_memory_order): Rename to...
(__cmpexch_failure_order): This, and rewrite as constexpr function.
(compare_exchange_strong, compare_exchange_weak): Use it.
* include/std/atomic (compare_exchange_strong, compare_exchange_weak):
Likewise.
From-SVN: r182105
2011-12-08 09:44:57 +00:00
François Dumont
95c0a8a714
re PR libstdc++/51386 (23_containers/unordered_set/hash_policy/load_factor.cc execution timeout)
...
2011-12-07 François Dumont <fdumont@gcc.gnu.org>
PR libstdc++/51386
* include/bits/hashtable_policy.h (_Prime_rehash_policy::_M_next_bkt):
Fix computation of _M_prev_resize so that hashtable do not keep on
being rehashed when _M_max_load_factor is lower than 1.
From-SVN: r182085
2011-12-07 19:47:03 +00:00
Paolo Carlini
8535715d0f
re PR libstdc++/51438 (std::exception and derived classes are not compatible with std::nested_exception and C++11 in general)
...
2011-12-06 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/51438
* libsupc++/nested_exception.h (nested_exception::~nested_exception):
Declare noexcept.
* libsupc++/nested_exception.cc: Adjust.
* testsuite/18_support/nested_exception/51438.cc: New.
* testsuite/18_support/nested_exception/throw_with_nested.cc: Adjust.
* testsuite/18_support/nested_exception/rethrow_if_nested.cc:
Likewise.
* src/shared_ptr.cc: Use noexcept where appropriate.
* include/std/system_error: Likewise.
* include/std/functional: Likewise.
* include/bits/shared_ptr_base.h: Likewise.
* src/stdexcept.cc: Use _GLIBCXX_USE_NOEXCEPT where appropriate.
* include/std/stdexcept: Likewise.
* libsupc++/bad_cast.cc: Likewise.
* libsupc++/bad_typeid.cc: Likewise.
* libsupc++/eh_exception.cc: Likewise.
* libsupc++/typeinfo: Likewise.
* libsupc++/exception: Likewise.
* libsupc++/eh_ptr.cc: Likewise.
* libsupc++/bad_alloc.cc: Likewise.
* libsupc++/exception_ptr.h: Likewise.
* include/std/chrono: Use noexcept where appropriate.
* src/chrono.cc: Likewise.
From-SVN: r182064
2011-12-06 20:03:25 +00:00
Jonathan Wakely
62b547b5f6
re PR libstdc++/51183 (pair piecewise_construct_t constructor copies)
...
2011-12-06 Jonathan Wakely <jwakely.gcc@gmail.com>
Chris Jefferson <chris@bubblescope.net>
PR libstdc++/51183
* include/std/stl_pair.h (pair<>::__cons, pair<>::__do_cons): Remove.
(pair<>::pair(piecewise_construct_t, tuple<>, tuple<>): Only declare.
(pair<>::pair(tuple<>&, tuple<>&, _Index_tuple<>, _Index_tuple<>)):
Declare.
* include/std/tuple (pair<>::__cons, pair<>::__do_cons): Remove.
(pair<>::pair(tuple<>&, tuple<>&, _Index_tuple<>, _Index_tuple<>)):
Define.
(pair<>::pair(piecewise_construct_t, tuple<>, tuple<>): Define,
delegating to the latter.
* testsuite/20_util/pair/piecewise2.cc: New.
Co-Authored-By: Chris Jefferson <chris@bubblescope.net>
From-SVN: r182054
2011-12-06 15:13:04 +00:00
Jonathan Wakely
13901e4b28
type_traits: Doxygen improvements.
...
* include/std/type_traits: Doxygen improvements.
* include/bits/move.h: Likewise.
* include/tr1/type_traits: Likewise.
* include/tr2/type_traits: Likewise.
* testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
line numbers
* testsuite/20_util/forward/c_neg.cc: Likewise.
* testsuite/20_util/forward/f_neg.cc: Likewise.
* testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
Likewise.
* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
Likewise.
From-SVN: r181993
2011-12-04 16:53:17 +00:00
Markus Trippelsdorf
e13afbace1
stl_heap.h (pop_heap): Check for non-empty range in overload taking a predicate.
...
* include/bits/stl_heap.h (pop_heap): Check for non-empty range in
overload taking a predicate.
* testsuite/25_algorithms/pop_heap/empty2_neg.cc: New.
Co-Authored-By: Jonathan Wakely <jwakely.gcc@gmail.com>
From-SVN: r181987
2011-12-04 13:21:53 +00:00
Jonathan Wakely
a8028a3ee8
macros.h (__glibcxx_check_non_empty_range): Define.
...
* include/debug/macros.h (__glibcxx_check_non_empty_range): Define.
* include/debug/debug.h (__glibcxx_requires_non_empty_range): Define.
* include/debug/formatter.h (__msg_non_empty_range): Add.
* src/debug.cc: Message text for __msg_non_empty_range.
* include/bits/stl_heap.h (pop_heap): Check for non-empty range.
* testsuite/25_algorithms/pop_heap/empty_neg.cc: New.
From-SVN: r181970
2011-12-03 15:35:35 +00:00
Benjamin Kosnik
a152e96f01
acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Remove size-specific macros.
...
2011-11-30 Benjamin Kosnik <bkoz@redhat.com>
* acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Remove
size-specific macros. _GLIBCXX_ATOMIC_BUILTINS_1,
_GLIBCXX_ATOMIC_BUILTINS_2, _GLIBCXX_ATOMIC_BUILTINS_4,
_GLIBCXX_ATOMIC_BUILTINS_8. Use _GLIBCXX_ATOMIC_BUILTINS to
indicate use of C++11 atomic builtins.
* config.h.in: Regenerate.
* configure: Regenerate.
* include/Makefile.am (bits_sup_headers): Add atomic_lockfree_defines.h.
* include/Makefile.in: Regenerate.
* libsupc++/Makefile.am: Compile C++11 support with -std=gnu++0x.
* libsupc++/Makefile.in: Regenerate.
* include/bits/atomic_base.h: Move lock-free property macros...
* libsupc++/atomic_lockfree_defines.h: ...here.
* include/std/future: Use C++11 macros.
* libsupc++/eh_ptr.cc: Same.
* libsupc++/eh_throw.cc: Same.
* libsupc++/exception: Same.
* libsupc++/exception_ptr.h: Same.
* libsupc++/guard.cc: Same.
* libsupc++/nested_exception.cc: Same.
* libsupc++/nested_exception.h: Same.
* src/future.cc: Same.
* include/ext/atomicity.h: Use _GLIBCXX_ATOMIC_BUILTINS.
* doc/doxygen/user.cfg.in
* doc/xml/manual/concurrency_extensions.xml
* testsuite/18_support/exception_ptr/lifespan.cc
* testsuite/lib/libstdc++.exp
From-SVN: r181869
2011-12-01 02:20:32 +00:00
François Dumont
40207762a8
hashtable.h (_Hashtable<>::_M_rehash): Remove code useless now that the hashtable implementation put the hash code in...
...
2011-11-29 François Dumont <fdumont@gcc.gnu.org>
* include/bits/hashtable.h (_Hashtable<>::_M_rehash): Remove code
useless now that the hashtable implementation put the hash code in
cache if the hash functor throws.
* testsuite/23_containers/unordered_set/erase/1.cc: Enhance test by
checking also distance between begin and end iterators to validate
underlying data model.
* testsuite/23_containers/unordered_multiset/erase/1.cc: Likewise.
* testsuire/23_containers/unordered_map/erase/1.cc: Likewise.
* testsuite/23_containers/unordered_multimap/erase/1.cc: Likewise.
* testsuite/23_containers/unordered_multiset/erase/2.cc: New.
* testsuite/23_containers/unordered_multimap/erase/2.cc: New.
From-SVN: r181799
2011-11-29 07:45:58 +00:00
Andrew MacLeod
62bad7cd05
c-family
...
* c-cpp-builtin.c (cpp_atomic_builtins):New. Emit all atomic
predefines in one place. Add LOCK_FREE predefines.
(c_cpp_builtins): Move Legacy HAVE_SYNC predefines to
new func.
libstdc++-v3
* include/bits/atomic_base.h (ATOMIC_*_LOCK_FREE): Use new cpp
predefined macros.
* testsuite/29_atomics/headers/atomic/macros.cc: Add BOOL and POINTER
macro checks. Check for expected compile time values.
From-SVN: r181784
2011-11-28 20:28:23 +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
Harti Brandt
919f402ca5
re PR libstdc++/51209 (The template _M_find_node in hashtable.h has a bad return value)
...
2011-11-18 Harti Brandt <hartmut.brandt@dlr.de>
PR libstdc++/51209
* include/bits/hashtable.h (_Hashtable<>::_M_find_node): Return
nullptr when no node is found.
* include/tr1/hashtable.h (_Hashtable<>::_M_find_node): Return
zero when no node is found.
From-SVN: r181480
2011-11-18 16:09:29 +00:00
Paolo Carlini
72f1c34bd4
hash-long-double-aux.cc: Rename to...
...
2011-11-18 Paolo Carlini <paolo.carlini@oracle.com>
* src/hash-long-double-aux.cc: Rename to...
* src/hash-long-double-tr1-aux.cc: ... this.
* src/compatibility-ldbl.cc: Adjust.
* src/hash_tr1.cc: Likewise.
* src/hash_c++0x.cc: Don't use src/hash-long-double-aux.cc.
* include/bits/functional_hash.h (hash<_Tp*>::operator(), specs
for integer types, hash<float>::operator(), hash<double>::operator(),
hash<long double>::operator()): Declare noexcept.
* include/debug/bitset (hash<__debug::bitset>::operator()): Likewise.
* include/debug/vector (hash<__debug::vector>::operator()): Likewise.
* include/std/system_error (hash<error_code>::operator()): Likewise.
* include/std/thread (hash<thread::id>::operator()): Likewise.
* include/std/bitset (hash<bitset>::operator()): Likewise.
* include/std/typeindex (hash<type_index>::operator()): Likewise.
* include/profile/bitset (hash<__profile::vector>::operator()):
Likewise.
* include/profile/vector (hash<__profile::vector>::operator()):
Likewise.
* include/ext/vstring.h (hash<__vstring>::operator(),
hash<__wvstring>::operator(), hash<__u16vstring>::operator(),
hash<__u32vstring>::operator()): Likewise.
* include/bits/shared_ptr.h (hash<shared_ptr>::operator()): Likewise.
* include/bits/shared_ptr_base.h (hash<__shared_ptr>::operator()):
Likewise.
* include/bits/unique_ptr.h (hash<unique_ptr>::operator()): Likewise.
* include/bits/basic_string.h (hash<string>::operator(),
hash<wstring>::operator(), hash<u16string>::operator(),
hash<u32string>::operator()): Likewise.
* include/bits/vector.tcc (hash<vector>::operator()): Likewise.
* include/bits/stl_bvector.h (hash<vector>::operator()): Likewise.
* libsupc++/typeinfo (type_info::hash_code): Use noexcept instead of
throw().
From-SVN: r181473
2011-11-18 12:37:06 +00:00
Andrew MacLeod
3b04e1e4c4
re PR libstdc++/51102 (missing macros in <atomic>)
...
2011-11-16 Andrew MacLeod <amacleod@redhat.com>
PR libstdc++/51102
* include/bits/atomic_base.h (ATOMIC_BOOL_LOCK_FREE,
ATOMIC_POINTER_LOCK_FREE): New. Add missing macros.
From-SVN: r181414
2011-11-16 15:43:15 +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