+2010-03-17 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ PR libstdc++/43397
+ * include/std/functional (_Mem_fn): Use perfect forwarding.
+ * testsuite/20_util/function/43397.cc: New.
+
+2010-03-16 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR libstdc++/43394
+ * include/parallel/compatibility.h: Add __k8 and __core2 among the
+ i386 targets supporting atomic operations.
+
+2010-03-16 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * include/backward/hash_map: Use consistently the _BACKWARD_*
+ prefix for the include guard.
+ * include/backward/hash_fun.h: Likewise.
+ * include/backward/hashtable.h: Likewise.
+ * include/backward/auto_ptr.h: Likewise.
+ * include/backward/strstream: Likewise.
+ * include/backward/binders.h: Likewise.
+ * include/backward/hash_set: Likewise.
+
+2010-03-16 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * include/bits/random.h (operator==(const uniform_int_distribution<>&,
+ const uniform_int_distribution<>&), operator==(const
+ uniform_real_distribution<>&, const uniform_real_distribution<>&),
+ operator==(const lognormal_distribution<>&,
+ const lognormal_distribution<>&), operator==(const
+ chi_squared_distribution<>&, const chi_squared_distribution<>&),
+ operator==(const cauchy_distribution<>&, const cauchy_distribution<>&),
+ operator==(const fisher_distribution<>&, const fisher_distribution<>&),
+ operator==(const student_t_distribution<>&,
+ const student_t_distribution<>&), operator==(const
+ bernoulli_distribution<>&, const bernoulli_distribution<>&),
+ operator==(const binomial_distribution<>&, const
+ binomial_distribution<>&), operator==(const geometric_distribution<>&,
+ const geometric_distribution<>&), operator==(const
+ negative_binomial_distribution<>&, const
+ negative_binomial_distribution<>&), operator==(const
+ poisson_distribution<>&, const poisson_distribution<>&),
+ operator==(const exponential_distribution<>&,
+ const exponential_distribution<>&), operator==(const
+ gamma_distribution<>&, const gamma_distribution<>&), operator==(const
+ weibull_distribution<>&, const weibull_distribution<>&),
+ operator==(const extreme_value_distribution<>&,
+ const extreme_value_distribution<>&), operator==(const
+ discrete_distribution<>&, const discrete_distribution<>&),
+ operator==(const piecewise_constant_distribution<>&,
+ const piecewise_constant_distribution<>&), operator==(const
+ piecewise_linear_distribution<>&, const
+ piecewise_linear_distribution<>&)): Add, likewise for operator!=.
+ (operator!=(const independent_bits_engine<>&, const
+ independent_bits_engine<>&), operator!=(const
+ subtract_with_carry_engine<>&, const subtract_with_carry_engine<>&),
+ operator!=(const discard_block_engine<>&, const
+ discard_block_engine<>&), operator!=(const mersenne_twister_engine<>&,
+ const mersenne_twister_engine<>&), operator!=(const
+ linear_congruential_engine<>&, const linear_congruential_engine<>&),
+ operator!=(const shuffle_order_engine<>&, const
+ shuffle_order_engine<>&): Add.
+ * include/bits/random.tcc (operator==(const normal_distribution<>&,
+ const normal_distribution<>&)): Add.
+ * testsuite/26_numerics/random/uniform_real_distribution/operators/
+ inequal.cc: New.
+ * testsuite/26_numerics/random/uniform_real_distribution/operators/
+ equal.cc: Likewise.
+ * testsuite/26_numerics/random/piecewise_constant_distribution/
+ operators/inequal.cc: Likewise.
+ * testsuite/26_numerics/random/piecewise_constant_distribution/
+ operators/equal.cc: Likewise.
+ * testsuite/26_numerics/random/chi_squared_distribution/operators/
+ inequal.cc: Likewise.
+ * testsuite/26_numerics/random/chi_squared_distribution/operators/
+ equal.cc: Likewise.
+ * testsuite/26_numerics/random/normal_distribution/operators/
+ inequal.cc: Likewise.
+ * testsuite/26_numerics/random/normal_distribution/operators/
+ equal.cc: Likewise.
+ * testsuite/26_numerics/random/uniform_int_distribution/operators/
+ inequal.cc: Likewise.
+ * testsuite/26_numerics/random/uniform_int_distribution/operators/
+ equal.cc: Likewise.
+ * testsuite/26_numerics/random/poisson_distribution/operators/
+ inequal.cc: Likewise.
+ * testsuite/26_numerics/random/poisson_distribution/operators/
+ equal.cc: Likewise.
+ * testsuite/26_numerics/random/bernoulli_distribution/operators/
+ inequal.cc: Likewise.
+ * testsuite/26_numerics/random/bernoulli_distribution/operators/
+ equal.cc: Likewise.
+ * testsuite/26_numerics/random/discrete_distribution/operators/
+ inequal.cc: Likewise.
+ * testsuite/26_numerics/random/discrete_distribution/operators/
+ equal.cc: Likewise.
+ * testsuite/26_numerics/random/weibull_distribution/operators/
+ inequal.cc: Likewise.
+ * testsuite/26_numerics/random/weibull_distribution/operators/
+ equal.cc: Likewise.
+ * testsuite/26_numerics/random/independent_bits_engine/operators/
+ inequal.cc: Likewise.
+ * testsuite/26_numerics/random/subtract_with_carry_engine/operators/
+ inequal.cc: Likewise.
+ * testsuite/26_numerics/random/discard_block_engine/operators/
+ inequal.cc: Likewise.
+ * testsuite/26_numerics/random/cauchy_distribution/operators/
+ inequal.cc: Likewise.
+ * testsuite/26_numerics/random/cauchy_distribution/operators/
+ equal.cc: Likewise.
+ * testsuite/26_numerics/random/negative_binomial_distribution/
+ operators/inequal.cc: Likewise.
+ * testsuite/26_numerics/random/negative_binomial_distribution/
+ operators/equal.cc: Likewise.
+ * testsuite/26_numerics/random/gamma_distribution/operators/
+ inequal.cc: Likewise.
+ * testsuite/26_numerics/random/gamma_distribution/operators/
+ equal.cc: Likewise.
+ * testsuite/26_numerics/random/mersenne_twister_engine/operators/
+ inequal.cc: Likewise.
+ * testsuite/26_numerics/random/fisher_f_distribution/operators/
+ inequal.cc: Likewise.
+ * testsuite/26_numerics/random/fisher_f_distribution/operators/
+ equal.cc: Likewise.
+ * testsuite/26_numerics/random/exponential_distribution/operators/
+ inequal.cc: Likewise.
+ * testsuite/26_numerics/random/exponential_distribution/operators/
+ equal.cc: Likewise.
+ * testsuite/26_numerics/random/binomial_distribution/operators/
+ inequal.cc: Likewise.
+ * testsuite/26_numerics/random/binomial_distribution/operators/
+ equal.cc: Likewise.
+ * testsuite/26_numerics/random/lognormal_distribution/operators/
+ inequal.cc: Likewise.
+ * testsuite/26_numerics/random/lognormal_distribution/operators/
+ equal.cc: Likewise.
+ * testsuite/26_numerics/random/extreme_value_distribution/operators/
+ inequal.cc: Likewise.
+ * testsuite/26_numerics/random/extreme_value_distribution/operators/
+ equal.cc: Likewise.
+ * testsuite/26_numerics/random/piecewise_linear_distribution/
+ operators/inequal.cc: Likewise.
+ * testsuite/26_numerics/random/piecewise_linear_distribution/
+ operators/equal.cc: Likewise.
+ * testsuite/26_numerics/random/student_t_distribution/operators/
+ inequal.cc: Likewise.
+ * testsuite/26_numerics/random/student_t_distribution/operators/
+ equal.cc: Likewise.
+ * testsuite/26_numerics/random/linear_congruential_engine/operators/
+ inequal.cc: Likewise.
+ * testsuite/26_numerics/random/shuffle_order_engine/operators/
+ inequal.cc: Likewise.
+ * testsuite/26_numerics/random/geometric_distribution/operators/
+ inequal.cc: Likewise.
+ * testsuite/26_numerics/random/geometric_distribution/operators/
+ equal.cc: Likewise.
+
+2010-03-15 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * include/bits/forward_list.tcc (_Fwd_list_node_base::
+ _M_transfer_after): Return _Fwd_list_node_base*.
+ (forward_list<>::_M_splice_after): Add.
+ (forward_list<>::insert_after(const_iterator, size_type, const _Tp&),
+ insert_after(const_iterator, _InputIterator, _InputIterator),
+ insert_after(const_iterator, initializer_list<>)): Use the above,
+ implement DR 1278 ([Ready] in Pittsburgh).
+ * include/bits/forward_list.h (insert_after(const_iterator,
+ size_type, const _Tp&), insert_after(const_iterator, _InputIterator,
+ _InputIterator), insert_after(const_iterator, initializer_list<>)):
+ Only declare.
+ * testsuite/23_containers/forward_list/modifiers/2.cc: Adjust.
+ * 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.
+
+2010-03-15 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * testsuite/23_containers/forward_list/requirements/dr438/
+ assign_neg.cc: Adjust dg-error line number.
+ * 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/forward_list/requirements/dr438/
+ insert_neg.cc: Likewise.
+ * testsuite/23_containers/forward_list/capacity/1.cc: Adjust.
+
+ Revert:
+ 2008-11-11 Bob Walters <bob.s.walters@gmail.com>
+
+ * include/bits/forward_list.h: Support non-standard pointer types
+ (_Fwd_list_node_base): Add _Alloc template parameter.
+ (_Fwd_list_node<>): Likewise.
+ (_Fwd_list_iterator<>): Likewise.
+ (_Fwd_list_const_iterator<>): Likewise.
+ (_Fwd_list_node_base::_M_next, _M_transfer_after, _M_reverse_after):
+ Use _Alloc<_Tp>::pointer.
+ (_Fwd_list_iterator<>::_M_node): Use _Node_base::_Pointer.
+ (_Fwd_list_base<>::_M_get_node, _M_create_node, _M_create_node,
+ _M_insert_after, _M_put_node, _M_erase_after): Likewise.
+ (_Fwd_list_const_iterator<>::_M_node): use _Node_base::_Const_pointer.
+ (forward_list<>): Use __static_pointer_cast in place of static_cast,
+ and __const_pointer_cast in place of const_cast.
+ * include/bits/forward_list.tcc
+ (_Fwd_list_node<>::_M_sort_after): Using _Pointer typedefs in place
+ of standard pointers, __static_pointer_cast in place of static_cast.
+ (_Fwd_list_base<>::_Fwd_list_base, _M_insert_after, _M_erase_after):
+ Likewise.
+ (forward_list<>::_M_initialize_dispatch, _M_fill_initialize,
+ splice_after, remove, remove_if, merge): Likewise.
+ * testsuite/23_containers/forward_list/ext_pointer/modifiers/1.cc: New.
+ * testsuite/23_containers/forward_list/ext_pointer/modifiers/2.cc:
+ Likewise.
+ * testsuite/23_containers/forward_list/ext_pointer/modifiers/3.cc:
+ Likewise.
+ * testsuite/23_containers/forward_list/ext_pointer/modifiers/4.cc:
+ Likewise.
+ * testsuite/23_containers/forward_list/ext_pointer/modifiers/5.cc:
+ Likewise.
+ * testsuite/23_containers/forward_list/ext_pointer/operations/1.cc:
+ Likewise.
+ * testsuite/23_containers/forward_list/ext_pointer/operations/2.cc:
+ Likewise.
+ * testsuite/23_containers/forward_list/ext_pointer/operations/3.cc:
+ Likewise.
+ * testsuite/23_containers/forward_list/ext_pointer/operations/4.cc:
+ Likewise.
+ * testsuite/23_containers/forward_list/ext_pointer/operations/5.cc:
+ Likewise.
+ * testsuite/23_containers/forward_list/ext_pointer/operations/6.cc:
+ Likewise.
+ * testsuite/23_containers/forward_list/ext_pointer/operations/7.cc:
+ Likewise.
+ * testsuite/23_containers/forward_list/ext_pointer/requirements/1.cc:
+ Likewise.
+ * testsuite/23_containers/forward_list/ext_pointer/requirements/
+ explicit_instantiation/1.cc: Likewise.
+ * testsuite/23_containers/forward_list/ext_pointer/requirements/
+ explicit_instantiation/3.cc: Likewise.
+ * testsuite/23_containers/forward_list/ext_pointer/1.cc: Likewise.
+
+2010-03-13 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * include/tr1_impl/array (swap(array<>&, array<>&)): Use member swap.
+
+ * include/bits/stl_algo.h: Improve comment.
+
+2010-03-12 Benjamin Kosnik <bkoz@redhat.com>
+
+ * scripts/run_doxygen: Adjust.
+ * doc/doxygen/user.cfg.in: Adjust latex, xml prefs.
+ * doc/xml/api.xml: Update.
+ * doc/Makefile.am: Re-do stamp rules.
+ * doc/Makefile.in: Regenerate.
+
+2010-03-10 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * include/bits/hashtable_policy.h (_Rehash_base<_Prime_rehash_policy,
+ _Hashtable>::reserve): Add, per DR 1189.
+ * include/bits/hashtable.h (_Hashtable<>::size_type,
+ _Hashtable<>::difference_type): Do not typedef from _Allocator.
+ * testsuite/23_containers/unordered_map/dr1189.cc: New.
+ * testsuite/23_containers/unordered_set/dr1189.cc: Likewise.
+ * testsuite/23_containers/unordered_multimap/dr1189.cc: Likewise.
+ * testsuite/23_containers/unordered_multiset/dr1189.cc: Likewise.
+
+2010-03-08 Paolo Carlini <paolo.carlini@oracle.com>
+
+ Revert:
+ 2010-02-11 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR libstdc++/41975, DR 579
+ * include/bits/hashtable.h (_Hashtable<>::_M_erase_node): Remove.
+ (erase(const_iterator), erase(const_iterator, const_iterator)):
+ Change return type to void.
+ * include/debug/unordered_map: Adjust.
+ * include/debug/unordered_set: Likewise.
+ * testsuite/util/exception/safety.h: Likewise.
+ * testsuite/23_containers/unordered_map/erase/1.cc: Likewise.
+ * testsuite/23_containers/unordered_map/erase/24061-map.cc: Likewise.
+ * testsuite/23_containers/unordered_set/erase/1.cc: Likewise.
+ * testsuite/23_containers/unordered_set/erase/24061-map.cc: Likewise.
+ * testsuite/23_containers/unordered_multimap/erase/1.cc: Likewise.
+ * testsuite/23_containers/unordered_multimap/erase/24061-map.cc:
+ Likewise.
+ * testsuite/23_containers/unordered_multiset/erase/1.cc: Likewise.
+ * testsuite/23_containers/unordered_multiset/erase/24061-map.cc:
+ Likewise.
+
+2010-03-04 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * testsuite/util/testsuite_container_traits.h (traits_base): Add
+ has_throwing_erase trait.
+ (traits<vector>, traits<deque>): Typedef the latter to true_type.
+ * testsuite/util/exception/safety.h (generation_prohibited):
+ Do not test vector::erase and deque::erase: can throw if
+ either copy constructor or assignment operator of value_type
+ throws.
+ * testsuite/23_containers/vector/requirements/exception/
+ generation_prohibited.cc: Remove xfail.
+ * testsuite/23_containers/deque/requirements/exception/
+ generation_prohibited.cc: Likewise.
+
+ * include/ext/throw_allocator.h (hash<__gnu_cxx::throw_value_limit>::
+ operator(), hash<__gnu_cxx::throw_value_random>::operator()): Pass
+ argument by const ref.
+
+ * testsuite/util/testsuite_container_traits.h (traits<map>,
+ traits<multimap>, traits<set>, traits<multiset>,
+ traits<unordered_map>, traits<unordered_multimap>,
+ traits<unordered_set>, traits<unordered_multiset>): Typedef
+ consistently has_erase and has_insert as true_type.
+
+ * testsuite/util/testsuite_container_traits.h
+ (traits<unordered_map>, traits<unordered_multimap>,
+ traits<unordered_set>, traits<unordered_multiset>): Do not wrongly
+ typedef has_size_type_constructor as true_type: the constructor
+ accepting a size_type actually gets the initial number of
+ buckets.
+
+2010-03-03 Benjamin Kosnik <bkoz@redhat.com>
+
+ * doc/Makefile.am: Re-organize xml sources.
+ (doc-latex-doxygen): New.
+ (doc-pdf-doxygen): New.
+ (stamp-xml-doxygen, stamp-latex-doxygen): New.
+ * doc/Makefile.in: Regenerate.
+ * doc/doxygen/user.cfg.in: Add support here.
+ * doc/xml/manual/appendix_contributing.xml: Add specifics.
+
+ * doc/xml/manual/concurrency.xml: New.
+ * doc/xml/manual/atomics.xml: New.
+ * doc/xml/manual/spine.xml: Adjust.
+ * doc/xml/manual/diagnostics.xml: Adjust.
+
2010-03-03 Paolo Carlini <paolo.carlini@oracle.com>
Jonathan Wakely <jwakely.gcc@gmail.com>