streambuf_iterator.h: Use noexcept per the FDIS.
[gcc.git] / libstdc++-v3 / ChangeLog
index 2d8462d8adbc1552b2778d15fcde1d5a80eff399..76afc47d46fd1fd8fde26c0165276c087358ab1a 100644 (file)
@@ -1,3 +1,393 @@
+2011-05-23  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * include/bits/streambuf_iterator.h: Use noexcept per the FDIS.
+       (istreambuf_iterator<>::istreambuf_iterator(const
+       istreambuf_iterator&),  ~istreambuf_iterator()): Add defaulted
+       in C++0x mode.
+
+2011-05-23  Jason Merrill  <jason@redhat.com>
+
+       * libsupc++/exception_ptr.h: Fix compilation in C++0x mode.
+
+2011-05-22  Jonathan Wakely  <jwakely.gcc@gmail.com>
+
+       * testsuite/20_util/bind/cv_quals_2.cc: New.
+
+2011-05-22  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR libstdc++/49058
+       * include/std/functional (_Bind<_Functor(_Bound_args...)>::
+       operator()(_Args&&...)): Don't cv qualify _Functor directly
+       in the default template argument, SFINAE doesn't apply when
+       the functor has no arguments.
+       * testsuite/20_util/bind/49058_1.cc: New.
+       * testsuite/20_util/bind/49058_2.cc: Likewise.
+
+2011-05-21  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * include/bits/unique_ptr.h: Use noexcept per the FDIS.
+
+2011-05-20  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * testsuite/21_strings/basic_string/requirements/exception/
+       propagation_consistent.cc: Fix vs POD-ness of value_type.
+       * testsuite/21_strings/basic_string/requirements/exception/
+       basic.cc: Likewise.
+       * testsuite/ext/vstring/requirements/exception/
+       propagation_consistent.cc: Likewise.
+       * testsuite/ext/vstring/requirements/exception/basic.cc: Likewise.
+
+2011-05-20  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * include/bits/char_traits.h: Use noexcept throughout.
+       * include/std/typeindex: Likewise.
+
+       * include/std/tuple (_Tuple_impl<>_Tuple_impl(_Tuple_impl&&)): Use
+       noexcept; adjust callers.
+       * include/bits/stl_pair.h (pair<>::pair(pair<>&&)): Use noexcept.
+       * testsuite/20_util/tuple/cons/noexcept_move_construct.cc: New.
+       * testsuite/20_util/pair/cons/noexcept_move_construct.cc: Likewise.
+       * testsuite/20_util/pair/noexcept_swap.cc: Likewise.
+       * testsuite/20_util/pair/noexcept_move_assign.cc: Likewise.
+       * testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust dg-warning
+       line numbers.
+
+2011-05-20  Jason Merrill  <jason@redhat.com>
+
+       * include/ext/pb_ds/assoc_container.hpp: Explicitly qualify calls to
+       functions from dependent bases.
+       * include/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp: Likewise.
+       * include/ext/pb_ds/detail/rb_tree_map_/
+       split_join_fn_imps.hpp: Likewise.
+       * include/ext/pb_ds/detail/splay_tree_/erase_fn_imps.hpp: Likewise.
+       * include/ext/pb_ds/detail/splay_tree_/insert_fn_imps.hpp: Likewise.
+       * include/ext/pb_ds/detail/splay_tree_/splay_fn_imps.hpp: Likewise.
+       * include/ext/pb_ds/detail/splay_tree_/
+       split_join_fn_imps.hpp: Likewise.
+       * include/ext/pb_ds/detail/tree_policy/
+       order_statistics_imp.hpp: Likewise.
+       * include/ext/pb_ds/detail/trie_policy/
+       prefix_search_node_update_imp.hpp: Likewise.
+       * include/ext/rc_string_base.h: Likewise.
+       * include/ext/rope: Likewise.
+       * include/ext/ropeimpl.h: Likewise.
+       * testsuite/util/exception/safety.h: Likewise.
+       * testsuite/util/native_type/native_priority_queue.hpp: Likewise.
+       * testsuite/util/testsuite_io.h: Likewise.
+       * include/std/functional: Declare mem_fn earlier.
+       * include/tr1/functional: Likewise.
+       * include/tr1/exp_integral.tcc: Declare __expint_E1 earlier.
+
+2011-05-19  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * include/std/tuple (tuple_element<__i, const _Tp>,
+       tuple_element<__i, volatile _Tp>, tuple_element<__i,
+       const volatile _Tp>, tuple_size<const _Tp>, tuple_size<volatile _Tp>,
+       tuple_size<const volatile _Tp>): Add.
+       * include/std/utility (tuple_size<std::pair<_Tp1, _Tp2>>): Tweak.
+       * include/std/array (tuple_size<array<_Tp, _Nm>>): Likewise.
+       * testsuite/20_util/tuple/cv_tuple_size.cc: New.
+       * testsuite/20_util/tuple/cv_tuple_element.cc: Likewise.
+       * testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Tweak dg-warning
+       line number.
+
+2011-05-19  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * include/std/tuple (tuple<>::operator=(tuple&&)): Specify as
+        noexcept.
+       (__get_helper): Likewise.
+       (_Head_base<>::_M_head, _Tuple_impl<>::_M_head, _M_tail): Likewise.
+       * include/bits/move.h (swap): Likewise.
+       * include/bits/algorithmfwd.h (swap): Adjust.
+       * include/bits/stl_pair.h (pair<>::operator=(pair&&)): Spec noexcept.
+       * testsuite/util/testsuite_allocator.h (uneq_allocator): In C++0x
+       mode, prefer delete to access control to make the type not copy
+       assignable.
+       * testsuite/util/testsuite_tr1.h: Add test classes.
+       * testsuite/20_util/tuple/noexcept_swap.cc: New.
+       * testsuite/20_util/tuple/noexcept_move_assign.cc: Likewise.
+       * testsuite/25_algorithms/reverse/moveable.cc: Likewise, prefer
+       delete to access control.
+       * testsuite/25_algorithms/swap_ranges/moveable.cc: Likewise.
+       * testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust dg-warning
+       line numbers.
+
+2011-05-19  Daniel Krugler  <daniel.kruegler@googlemail.com>
+
+       * testsuite/util/testsuite_tr1.h: Add test classes.
+       * testsuite/20_util/is_nothrow_assignable/value.cc: Add.
+
+2011-05-19  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * include/std/type_traits (is_assignable, is_copy_assignable,
+       is_move_assignable, is_nothrow_assignable, is_nothrow_copy_assignable,
+       is_nothrow_move_assignable): Add; minor tweaks elsewhere.
+       (has_nothrow_copy_assign): Remove.
+       * testsuite/util/testsuite_tr1.h: Add test classes.
+       * testsuite/20_util/is_assignable/requirements/typedefs.cc: Add.
+       * testsuite/20_util/is_assignable/requirements/
+       explicit_instantiation.cc: Likewise.
+       * testsuite/20_util/is_nothrow_assignable/value.cc: Likewise.
+       * testsuite/20_util/is_nothrow_assignable/requirements/typedefs.cc:
+       Likewise.
+       * testsuite/20_util/is_nothrow_assignable/requirements/
+       explicit_instantiation.cc: Likewise.
+       * testsuite/20_util/is_move_assignable/value.cc: Likewise.
+       * testsuite/20_util/is_move_assignable/requirements/typedefs.cc:
+       Likewise.
+       * testsuite/20_util/is_move_assignable/requirements/
+       explicit_instantiation.cc: Likewise.
+       * testsuite/20_util/is_copy_assignable/value.cc: Likewise.
+       * testsuite/20_util/is_copy_assignable/requirements/typedefs.cc:
+       Likewise.
+       * testsuite/20_util/is_copy_assignable/requirements/
+       explicit_instantiation.cc: Likewise.
+       * testsuite/20_util/is_nothrow_move_assignable/value.cc: Likewise.
+       * testsuite/20_util/is_nothrow_move_assignable/requirements/
+       typedefs.cc: Likewise.
+       * testsuite/20_util/is_nothrow_move_assignable/requirements/
+       explicit_instantiation.cc: Likewise.
+       * testsuite/20_util/is_nothrow_copy_assignable/value.cc: Likewise.
+       * testsuite/20_util/is_nothrow_copy_assignable/requirements/
+       typedefs.cc: Likewise.
+       * testsuite/20_util/is_nothrow_copy_assignable/requirements/
+       explicit_instantiation.cc: Likewise.
+       * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
+       dg-error line numbers.
+       * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
+       Likewise.
+       * testsuite/20_util/declval/requirements/1_neg.cc: Likewise.
+
+2011-05-18  Jonathan Wakely  <jwakely.gcc@gmail.com>
+
+       * include/bits/shared_ptr_base.h: Use noexcept. Define special member
+       functions as defaulted/deleted.
+       * include/bits/shared_ptr.h: Use noexcept.
+       * 20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error line numbers.
+       * 20_util/weak_ptr/comparison/cmp_neg.cc: Likewise.
+
+2011-05-18  Jonathan Wakely  <jwakely.gcc@gmail.com>
+
+       * doc/xml/manual/bitmap_allocator.xml: Fix typos.
+
+2011-05-18  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * libsupc++/initializer_list: Use noexcept specifier.
+       (initializer_list<>::size, begin, end): Qualify as const.
+       * include/bits/move.h (__addressof, forward, move, addressof): Specify
+       as noexcept.
+       * include/std/bitset: Use noexcept specifier throughout.
+       * include/debug/bitset: Update.
+       * include/profile/bitset: Likewise.
+
+2011-05-17  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * include/std/tuple: Use noexcept where appropriate.
+       (tuple<>::swap): Rework implementation.
+       (_Head_base<>::_M_swap_impl): Remove.
+       (get(std::tuple<>&&)): Add.
+       * testsuite/20_util/tuple/element_access/get2.cc: New.
+       * testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust dg-error
+       line number.
+
+2011-05-16  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * include/std/utility: Simplify the last commit, the whole
+       std::get code is C++0x only.
+
+2011-05-16  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * include/std/utility (get(std::pair<>&&)): Add.
+       * include/bits/stl_pair.h (pair::swap(pair&),
+       swap(pair<>&, pair<>&)): Use noexcept.
+       * include/bits/random.h (discard_block_engine<>::base,
+       independent_bits_engine<>::base, shuffle_order_engine<>::base,
+       random_device::entropy): Use noexcept.
+       * include/std/array: Use noexcept where appropriate.
+       (get(array<>&&)): Add.
+       * testsuite/23_containers/array/requirements/get.cc: New.
+       * testsuite/20_util/pair/get.cc: Likewise.
+       * testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Tweak dg-error
+       line number.
+
+2011-05-15  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * include/bits/c++config (_GLIBCXX_NOEXCEPT, _GLIBCXX_USE_NOEXCEPT):
+       Add.
+       * include/std/limits: Use the latter everywhere.
+       (numeric_limits<char16_t>, numeric_limits<char32_t>): Simplify
+       macro usages, the specializations exist only in C++0x mode.
+       * testsuite/ext/profile/mutex_extensions_neg.cc: Adjust dg-error
+       line number.
+
+2011-05-11  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * testsuite/26_numerics/headers/cmath/overloads_c++0x_neg.cc: Use
+       dg-require-cmath.
+       * testsuite/tr1/8_c_compatibility/cmath/overloads_neg.cc: Likewise.
+
+2011-05-11  François Dumont  <francois.cppdevs@free.fr>
+
+       * include/ext/pb_ds/detail/resize_policy/
+       hash_load_check_resize_trigger_imp.hpp (assert_valid): Replace
+       _GLIBCXX_DEBUG_ASSERT calls with PB_DS_DEBUG_VERIFY.
+       * include/ext/pb_ds/detail/binomial_heap_base_/erase_fn_imps.hpp,
+       find_fn_imps.hpp, insert_fn_imps.hpp, binomial_heap_base_.hpp,
+       constructors_destructor_fn_imps.hpp, split_join_fn_imps.hpp
+       (PB_DS_ASSERT_VALID): Rename in PB_DS_ASSERT_VALID_COND.
+       * include/ext/pb_ds/detail/debug_map_base.hpp,
+       splay_tree_/splay_tree_.hpp, ov_tree_map_/ov_tree_map_.hpp,
+       cc_hash_table_map_/cc_ht_map_.hpp, pat_trie_/pat_trie_.hpp,
+       leaf.hpp, internal_node.hpp, gp_hash_table_map_/gp_ht_map_.hpp,
+       bin_search_tree_/bin_search_tree_.hpp, list_update_map_/lu_map_.hpp,
+       rb_tree_map_/rb_tree_.hpp (PB_DS_ASSERT_VALID, PB_DS_DEBUG_VERIFY,
+       PB_DS_CHECK_KEY_EXISTS, PB_DS_CHECK_KEY_DOES_NOT_EXIST): Duplicate
+       macro definitions move...
+       * include/ext/pb_ds/detail/container_base_dispatch.hpp: ... here...
+       * include/ext/pb_ds/detail/basic_tree_policy/traits.hpp: ... and here.
+       * include/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp,
+       resize_policy.hpp, pairing_heap_/pairing_heap_.hpp,
+       left_child_next_sibling_heap_/left_child_next_sibling_heap_.hpp,
+       binomial_heap_/binomial_heap_.hpp, thin_heap_/thin_heap_.hpp,
+       rc_binomial_heap_/rc_binomial_heap_.hpp, rc.hpp (PB_DS_ASSERT_VALID,
+       PB_DS_DEBUG_VERIFY): Duplicate macro definitions move...
+       * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp:
+       ...here.
+
+2011-05-09  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR libstdc++/48933
+       * include/c_global/cmath (acosh, asinh, atanh, cbrt, copysign,
+       erf, erfc, exp2, expm1, fdim, fma, fmax, hypot, ilogb, lgamma,
+       llrint, llround, log1p, log2, logb, lrint, lround, nearbyint,
+       nextafter, nexttoward, remainder, remquo, rint, round, scalbln,
+       scalbn, tgamma, trunc): Use __enable_if on the return type.
+       * include/tr1/cmath: Likewise.
+       * testsuite/26_numerics/headers/cmath/overloads_c++0x_neg.cc: New.
+       * testsuite/tr1/8_c_compatibility/cmath/overloads_neg.cc: Likewise.
+
+2011-05-07  François Dumont  <francois.cppdevs@free.fr>
+
+       * include/debug/macro.h (_GLIBCXX_DEBUG_VERIFY_AT): New.
+       (_GLICXX_DEBUG_VERIFY): Use latter.
+       * include/ext/pb_ds/detail/resize_policy/
+       hash_load_check_resize_trigger_imp.hpp: Emit assertion on the line
+       containing the original assert call.
+       * include/ext/pb_ds/detail/binomial_heap_base_/erase_fn_imps.hpp,
+       find_fn_imps.hpp, insert_fn_imps.hpp, binomial_heap_base_.hpp,
+       constructors_destructor_fn_imps.hpp, debug_fn_imps.hpp,
+       split_join_fn_imps.hpp: Likewise.
+       * include/ext/pb_ds/detail/cc_hash_table_map_/
+       erase_store_hash_fn_imps.hpp, insert_no_store_hash_fn_imps.hpp,
+       find_fn_imps.hpp, insert_store_hash_fn_imps.hpp, debug_fn_imps.hpp,
+       debug_no_store_hash_fn_imps.hpp, cc_ht_map_.hpp, resize_fn_imps.hpp,
+       constructor_destructor_fn_imps.hpp, debug_store_hash_fn_imps.hpp,
+       erase_no_store_hash_fn_imps.hpp: Likewise.
+       * include/ext/pb_ds/detail/pat_trie_/find_fn_imps.hpp,
+       insert_join_fn_imps.hpp, pat_trie_/head.hpp, debug_fn_imps.hpp,
+       constructors_destructor_fn_imps.hpp, pat_trie_.hpp, split_fn_imps.hpp,
+       leaf.hpp, erase_fn_imps.hpp, node_base.hpp, internal_node.hpp:
+       Likewise.
+       * include/ext/pb_ds/detail/bin_search_tree_/find_fn_imps.hpp,
+       r_erase_fn_imps.hpp, constructors_destructor_fn_imps.hpp,
+       debug_fn_imps.hpp, rotate_fn_imps.hpp, erase_fn_imps.hpp,
+       bin_search_tree_.hpp, insert_fn_imps.hpp, split_join_fn_imps.hpp:
+       Likewise.
+       * include/ext/pb_ds/detail/gp_hash_table_map_/
+       erase_store_hash_fn_imps.hpp, insert_no_store_hash_fn_imps.hpp,
+       find_fn_imps.hpp, gp_ht_map_.hpp, insert_store_hash_fn_imps.hpp,
+       debug_fn_imps.hpp, erase_fn_imps.hpp, debug_no_store_hash_fn_imps.hpp,
+       resize_fn_imps.hpp, constructor_destructor_fn_imps.hpp,
+       debug_store_hash_fn_imps.hpp, erase_no_store_hash_fn_imps.hpp:
+       Likewise.
+       * include/ext/pb_ds/detail/binary_heap_/find_fn_imps.hpp,
+       constructors_destructor_fn_imps.hpp, debug_fn_imps.hpp,
+       erase_fn_imps.hpp, insert_fn_imps.hpp, binary_heap_.hpp,
+       resize_policy.hpp, split_join_fn_imps.hpp: Likewise.
+       * include/ext/pb_ds/detail/pairing_heap_/erase_fn_imps.hpp,
+       find_fn_imps.hpp, insert_fn_imps.hpp,
+       constructors_destructor_fn_imps.hpp, debug_fn_imps.hpp,
+       pairing_heap_.hpp, split_join_fn_imps.hpp: Likewise.
+       * include/ext/pb_ds/detail/binomial_heap_/
+       constructors_destructor_fn_imps.hpp, debug_fn_imps.hpp,
+       binomial_heap_.hpp: Likewise.
+       * include/ext/pb_ds/detail/left_child_next_sibling_heap_/
+       erase_fn_imps.hpp, left_child_next_sibling_heap_.hpp,
+       constructors_destructor_fn_imps.hpp, debug_fn_imps.hpp: Likewise.
+       * include/ext/pb_ds/detail/thin_heap_/erase_fn_imps.hpp,
+       find_fn_imps.hpp, thin_heap_.hpp, insert_fn_imps.hpp,
+       constructors_destructor_fn_imps.hpp, debug_fn_imps.hpp,
+       split_join_fn_imps.hpp: Likewise.
+       * include/ext/pb_ds/detail/ov_tree_map_/erase_fn_imps.hpp,
+       ov_tree_map_.hpp, constructors_destructor_fn_imps.hpp,
+       debug_fn_imps.hpp, split_join_fn_imps.hpp, info_fn_imps.hpp: Likewise.
+       * include/ext/pb_ds/detail/debug_map_base.hpp: Likewise.
+       * include/ext/pb_ds/detail/splay_tree_/erase_fn_imps.hpp,
+       find_fn_imps.hpp, insert_fn_imps.hpp,
+       constructors_destructor_fn_imps.hpp, debug_fn_imps.hpp,
+       splay_fn_imps.hpp, split_join_fn_imps.hpp, splay_tree_.hpp: Likewise.
+       * include/ext/pb_ds/detail/list_update_map_/erase_fn_imps.hpp,
+       find_fn_imps.hpp, lu_map_.hpp, constructor_destructor_fn_imps.hpp,
+       insert_fn_imps.hpp, debug_fn_imps.hpp: Likewise.
+       * include/ext/pb_ds/detail/rc_binomial_heap_/erase_fn_imps.hpp,
+       rc_binomial_heap_.hpp, insert_fn_imps.hpp,
+       constructors_destructor_fn_imps.hpp, debug_fn_imps.hpp, rc.hpp,
+       split_join_fn_imps.hpp: Likewise.
+       * include/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp,
+       insert_fn_imps.hpp, constructors_destructor_fn_imps.hpp,
+       debug_fn_imps.hpp, rb_tree_.hpp, split_join_fn_imps.hpp: Likewise.
+       * include/ext/pb_ds/hash_policy.hpp: Likewise.
+
+2011-05-06  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * testsuite/22_locale/messages_byname/named_equivalence.cc: Fix.
+
+2011-05-04  Marc Glisse  <marc.glisse@normalesup.org>
+
+       PR libstdc++/47913 (again)
+       * include/std/ratio (ratio_add, ratio_less): Rewrite.
+       * testsuite/20_util/ratio/operations/47913.cc: Extend.
+       * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Adjust dg-error
+       line numbers.
+       * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
+
+2011-05-03  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR libstdc++/48848
+       * include/std/valarray (valarray<>::valarray(valarray&&),
+       valarray<>::operator=(valarray&&), valarray<>::swap): Add.
+       * doc/xml/manual/status_cxx200x.xml: Update.
+       * testsuite/26_numerics/valarray/moveable.cc: New.
+       * testsuite/26_numerics/valarray/swap.cc: Likewise.
+
+2011-05-03  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR libstdc++/48750
+       * include/parallel/multiway_merge.h: Run _ValueType destructors.
+       * include/parallel/multiway_mergesort.h: Likewise.
+       * include/parallel/quicksort.h: Likewise.
+       * include/parallel/random_shuffle.h: Likewise.
+       * include/parallel/partial_sum.h: Likewise.
+       * include/parallel/losertree.h: Run destructors; minor tweaks.
+       * include/parallel/par_loop.h: Run destructors, fix memory
+       allocations and deallocations.
+       * testsuite/26_numerics/accumulate/48750.cc: New.
+
+       * testsuite/ext/profile/mutex_extensions_neg.cc: Do not run in
+       parallel-mode to avoid spurious multiple errors.
+
+2011-05-03  Jonathan Wakely  <jwakely.gcc@gmail.com>
+
+       * include/std/functional (bind): Remove from overload set when first
+       argument type might be a socket file descriptor.
+       * testsuite/20_util/bind/socket.cc: New.
+
+2011-05-03  Jonathan Wakely  <jwakely.gcc@gmail.com>
+
+       PR libstdc++/48848
+       * doc/xml/manual/status_cxx200x.xml: Update valarray status.
+       * doc/html/*: Regenerate.
+
 2011-05-02  Ollie Wild  <aaw@google.com>
 
        * include/ext/sso_string_base.h (__sso_string_base<>::_M_construct):