Fix warnings when bootstrapping on darwin with vtable verification enabled.
[gcc.git] / libstdc++-v3 / ChangeLog
index 47777ac7c498f08a0b491191f0fd7f10a9994401..f92a67d1fd3be71b27e873cf7d89af313f179d39 100644 (file)
@@ -1,3 +1,559 @@
+2015-08-12  Caroline Tice <cmtice@google.com>
+
+       PR 66521, Contributed by Eric Gallager
+       * acinclude.m4 (VTV_CXXLINKFLAGS): Make this variable OS-specific, and
+       fix the rpath flag to work properly for darwin.
+       * configure: Regenerated.
+
+2015-08-12  Jonathan Wakely  <jwakely@redhat.com>
+
+       * doc/xml/manual/appendix_contributing.xml: Update patch email policy.
+       * doc/xml/manual/status_cxx2017.xml: Update status table.
+       * doc/html/manual/*: Regenerate.
+
+2015-08-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
+
+       Implement N4279, Improved insertion interface for unique-key maps.
+       * include/bits/stl_map.h (try_emplace, insert_or_assign): New.
+       * include/bits/stl_tree.h (_M_get_insert_unique_pos,
+       _M_get_insert_equal_pos, _M_get_insert_hint_unique_pos,
+       _M_get_insert_hint_equal_pos): Make public.
+       * include/bits/unordered_map.h (try_emplace, insert_or_assign): New.
+       * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
+       Likewise.
+       * testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise.
+       * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
+       Likewise.
+       * testsuite/23_containers/unordered_map/modifiers/try_emplace.cc:
+       Likewise.
+
+2015-08-08  Ville Voutilainen  <ville.voutilainen@gmail.com>
+
+       Implement N4089 Safe conversions in unique_ptr<T[]> (LWG 2118)
+       and N4366 LWG 2228: Missing SFINAE rule in unique_ptr
+       templated assignment
+       * include/bits/unique_ptr.h
+       (__remove_cv, __is_derived_Tp): Remove.
+       (default_delete::default_delete(const default_delete<_Up[]>)):
+       Constrain with array convertibility.
+       (default_delete::operator(_Up*)): Turn into a template,
+       constrain with array convertibility.
+       (__safe_conversion_up): New, single object version.
+       (unique_ptr(unique_ptr<_Up, _Ep>&&)): Constrain with deleter
+       convertibility.
+       (unique_ptr::operator=(unique_ptr<_Up, _Ep>&&)): Likewise, and add
+       is_assignable as a constraint.
+       (__safe_conversion_up): Array version, renamed from __safe_conversion,
+       updated to implement N4089.
+       (__safe_conversion_raw): New.
+       (unique_ptr(_Up)): Turn into a template, constrain with array
+       convertibility.
+       (unique_ptr(_Up,
+       typename conditional<is_reference<deleter_type>::value,
+       deleter_type, const deleter_type&>::type)): Likewise.
+       (unique_ptr(_Up, typename
+       remove_reference<deleter_type>::type&&)): Likewise.
+       (unique_ptr(unique_ptr<_Up, _Ep>&&)): Likewise.
+       (operator=(unique_ptr<_Up, _Ep>&&)): Likewise, and add
+       is_assignable as a constraint (array version).
+       (reset(_Up)): Turn into a template, constrain with array
+       convertibility.
+       (reset(nullptr_t)): New.
+       * testsuite/20_util/default_delete/48631_neg.cc: Adjust.
+       * testsuite/20_util/unique_ptr/assign/48635.cc: Likewise.
+       * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Likewise.
+       * testsuite/20_util/unique_ptr/assign/cv_qual.cc: Likewise.
+       * testsuite/20_util/unique_ptr/cons/cv_qual.cc: Likewise.
+       * testsuite/20_util/unique_ptr/dr2228.cc: New.
+       * testsuite/20_util/unique_ptr/modifiers/cv_qual.cc: Adjust.
+
+2015-08-05  Nikolai Bozhenov  <n.bozhenov@samsung.com>
+
+       * testsuite/20_util/enable_shared_from_this/cons/constexpr.cc: Remove
+       redundant -save-temps option.
+       * testsuite/20_util/shared_ptr/cons/constexpr.cc: Likewise.
+       * testsuite/20_util/unique_ptr/cons/constexpr.cc: Likewise.
+       * testsuite/20_util/weak_ptr/cons/constexpr.cc: Likewise.
+       * testsuite/30_threads/future/cons/constexpr.cc: Likewise.
+       * testsuite/30_threads/shared_future/cons/constexpr.cc: Likewise.
+
+2015-08-03  Jonathan Wakely  <jwakely@redhat.com>
+
+       PR libstdc++/67078
+       * include/bits/range_access.h (size, empty, data): Fix _N bad name.
+
+2015-07-30  Jonathan Wakely  <jwakely@redhat.com>
+
+       * testsuite/experimental/filesystem/operations/current_path.cc: Use
+       canonical paths for comparisons.
+
+2015-07-30  Tim Shen  <timshen@google.com>
+
+       * include/bits/regex_automaton.h (_State_base, _State<>):
+       Remove _TraitsT dependency from _State<>; Make matcher member
+       into the union to reduce struct size.
+       * include/bits/regex_automaton.tcc (_State_base<>::_M_print,
+       _State_base<>::_M_dot, _StateSeq<>::_M_clone):
+       Adjust to fit the interface. Factor out common parts in
+       _M_clone as _State<>::_M_has_alt.
+       * include/bits/regex_executor.h (_Executer<>::_M_lookahead):
+       Only pass state id instead of the whole state.
+       * include/bits/regex_executor.tcc (_Executer<>::_M_dfs,
+       _Executer<>::_M_lookahead): Adjust to fit the interface.
+       * include/std/regex: Include <ext/aligned_buffer.h>
+
+2015-07-30  Jonathan Wakely  <jwakely@redhat.com>
+
+       * include/experimental/any (any::operator=(const any&)): Check for
+       self-assignment.
+       * testsuite/experimental/any/assign/self.cc: New.
+       * testsuite/experimental/any/misc/any_cast_neg.cc: Adjust dg-error.
+
+2015-07-29  Jonathan Wakely  <jwakely@redhat.com>
+
+       PR libstdc++/66829
+       * testsuite/lib/libstdc++.exp (v3-build_support): Compile
+       testsuite_shared.cc with -std=gnu++98.
+
+2015-07-29  Ville Voutilainen  <ville.voutilainen@gmail.com>
+
+       * include/bits/range_access.h: Change class to typename in every
+       template.
+       (size, empty, data): New functions from N4280.
+       * testsuite/24_iterators/container_access.cc: New.
+
+       PR libstdc++/60970
+       * include/bits/functional_hash.h (__hash_enum): New.
+       (hash): Derive from __hash_enum.
+       * testsuite/20_util/hash/60970.cc: New.
+
+2015-07-29  Tim Shen  <timshen@google.com>
+
+       PR libstdc++/67015
+       * include/bits/regex_compiler.h (_Compiler<>::_M_expression_term,
+       _BracketMatcher<>::_M_add_collating_element): Change signature
+       to make checking the and of bracket expression easier.
+       * include/bits/regex_compiler.tcc (_Compiler<>::_M_expression_term):
+       Treat '-' as a valid literal if it's at the end of bracket expression.
+       * testsuite/28_regex/algorithms/regex_match/cstring_bracket_01.cc:
+       New testcases.
+
+2015-07-24  Jonathan Wakely  <jwakely@redhat.com>
+
+       * include/bits/atomic_futex.h [_GLIBCXX_HAVE_LINUX_FUTEX]
+       (_M_load_and_test_until): Whitespace.
+       (_M_load_and_test): Value-initialize the unused durations.
+       (_M_load_when_equal): Add missing return value.
+
+2015-07-24  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
+
+       * fragment.am (AM_CPPFLAGS): Add CPPFLAGS.
+       * Makefile.in: Regenerate.
+       * doc/Makefile.in: Regenerate.
+       * include/Makefile.in: Regenerate.
+       * libsupc++/Makefile.in: Regenerate.
+       * po/Makefile.in: Regenerate.
+       * python/Makefile.in: Regenerate.
+       * src/Makefile.in: Regenerate.
+       * src/c++11/Makefile.in: Regenerate.
+       * src/c++98/Makefile.in: Regenerate.
+       * src/filesystem/Makefile.in: Regenerate.
+       * testsuite/Makefile.in: Regenerate.
+
+2015-07-23  DJ Delorie  <dj@redhat.com>
+
+       * include/bits/functional_hash.h: Add specializations for __intN
+       types.
+
+       * include/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp (__gnu_pbds):
+       Guard against values that might exceed size_t's precision.
+
+2015-07-20  Jason Merrill  <jason@redhat.com>
+
+       * include/bits/c++config: Fix abi_tag in special modes.
+
+2015-07-19  Jonathan Wakely  <jwakely@redhat.com>
+
+       * doc/xml/manual/status_cxx2017.xml: Fix URL for N4279.
+       * doc/html/manual/status.html: Regenerate.
+
+2015-07-17  Jonathan Wakely  <jwakely@redhat.com>
+
+       * doc/xml/manual/status_cxx2011.xml: Add caveats for native_handle.
+       * doc/html/manual/status.html: Regenerate.
+
+2015-07-16  François Dumont  <fdumont@gcc.gnu.org>
+
+       * include/bits/stl_algobase.h (__miter_base): Move...
+       * include/bits/cpp_type_traits.h: ...here.
+       * include/debug/functions.h (__foreign_iterator_aux): Use latter.
+       * testsuite/23_containers/vector/debug/insert7_neg.cc: New.
+
+2015-07-13  Jonathan Wakely  <jwakely@redhat.com>
+
+       PR libstdc++/66855
+       * src/c++11/codecvt.cc (__codecvt_utf8_utf16_base::do_in): Override
+       endianness bit in mode.
+       * testsuite/22_locale/codecvt/codecvt_utf8_utf16/66855.cc: New.
+
+       * include/bits/c++config (_GLIBCXX_NOEXCEPT_IF): Define.
+       * include/bits/forward_list.h (forward_list::swap): Make noexcept
+       unconditional.
+       * include/bits/hashtable.h (_Hashtable::swap): Do not use
+       _S_nothrow_swap().
+       * include/bits/stl_bvector.h (vector<bool>::swap): Make noexcept
+       unconditional.
+       * include/bits/stl_deque.h (deque::swap): Likewise.
+       (swap(deque&, deque&)): Use _GLIBCXX_NOEXCEPT_IF.
+       * include/bits/stl_list.h (list::swap): Make noexcept unconditional.
+       (swap(list&, list&)): Use _GLIBCXX_NOEXCEPT_IF.
+       * include/bits/stl_map.h (map::swap, swap(map&, map&)): Use
+       _GLIBCXX_NOEXCEPT_IF, do not depend on _S_nothrow_swap.
+       * include/bits/stl_multimap.h (multimap::swap,
+       swap(multimap&, multimap&)): Likewise.
+       * include/bits/stl_multiset.h (multiset::swap,
+       swap(multiset&, multiset&)): Likewise.
+       * include/bits/stl_set.h (set::swap, swap(set&, set&)): Likewise.
+       * include/bits/stl_tree.h (_Rb_tree::swap,
+       swap(_Rb_tree&, _Rb_tree&)): Likewise.
+       * include/bits/stl_vector.h (vector::swap): Make noexcept
+       unconditional.
+       (swap(vector&, vector&)): Use _GLIBCXX_NOEXCEPT_IF.
+       * include/debug/deque (deque::swap, swap): Likewise.
+       * include/debug/forward_list (swap): Add noexcept.
+       * include/debug/list (list::swap, swap): Use _GLIBCXX_NOEXCEPT_IF.
+       * include/debug/map.h (map::swap, swap): Likewise.
+       * include/debug/multimap.h (multimap::swap, swap): Likewise.
+       * include/debug/multiset.h (multiset::Swap, swap): Likewise.
+       * include/debug/set.h (set::swap, swap): Likewise.
+       * include/debug/unordered_map (unordered_map::swap,
+       unordered_multimap::swap, swap): Likewise.
+       * include/debug/unordered_set (unordered_set::swap,
+       unordered_multiset::swap, swap): Likewise.
+       * include/debug/vector (vector::swap, swap): Likewise.
+       * include/ext/alloc_traits.h (__alloc_traits::_S_nothrow_swap()):
+       Remove.
+       * include/profile/deque (deque::swap, swap): Use _GLIBCXX_NOEXCEPT_IF.
+       * include/profile/forward_list (swap): Add noexcept.
+       * include/profile/list (list::swap, swap) : Use _GLIBCXX_NOEXCEPT_IF.
+       * include/profile/map.h (map::swap, swap): Likewise.
+       * include/profile/multimap.h (multimap::swap, swap): Likewise.
+       * include/profile/multiset.h (multiset::swap, swap): Likewise.
+       * include/profile/set.h (set::swap, swap): Likewise.
+       * include/profile/unordered_map (swap): Likewise.
+       * include/profile/unordered_set (swap): Likewise.
+       * include/profile/vector (vector::swap, swap): Likewise. Remove
+       overloads for swapping rvalues.
+       * testsuite/23_containers/deque/allocator/noexcept.cc: Update tests
+       for noexcept on swap.
+       * testsuite/23_containers/forward_list/allocator/noexcept.cc:
+       Likewise.
+       * testsuite/23_containers/list/allocator/noexcept.cc: Likewise.
+       * testsuite/23_containers/map/allocator/noexcept.cc: Likewise.
+       * testsuite/23_containers/multimap/allocator/noexcept.cc: Likewise.
+       * testsuite/23_containers/multiset/allocator/noexcept.cc: Likewise.
+       * testsuite/23_containers/set/allocator/noexcept.cc: Likewise.
+       * testsuite/23_containers/unordered_map/allocator/noexcept.cc:
+       Likewise.
+       * testsuite/23_containers/unordered_multimap/allocator/noexcept.cc:
+       Likewise.
+       * testsuite/23_containers/unordered_multiset/allocator/noexcept.cc:
+       Likewise.
+       * testsuite/23_containers/unordered_set/allocator/noexcept.cc:
+       Likewise.
+       * testsuite/23_containers/vector/allocator/noexcept.cc: Likewise.
+       * testsuite/23_containers/vector/bool/allocator/noexcept.cc: Likewise.
+       * testsuite/ext/profile/mutex_extensions_neg.cc: Adjust dg-error line
+       number.
+
+2015-07-13  John Marino  <gnugcc@marino.st>
+
+       * config/os/bsd/dragonfly/os_defines.h (_GLIBCXX_USE_C99_CHECK,
+       _GLIBCXX_USE_C99_DYNAMIC, _GLIBCXX_USE_C99_LONG_LONG_CHECK,
+       _GLIBCXX_USE_C99_LONG_LONG_DYNAMIC): Define.
+
+2015-07-05  François Dumont  <fdumont@gcc.gnu.org>
+
+       * include/bits/hashtable.h (_Hashtable<>::__rehash_policy): Do not
+       rehash container.
+       * testsuite/23_containers/unordered_set/max_load_factor/robustness.cc:
+       Adapt.
+
+2015-07-03  Jonathan Wakely  <jwakely@redhat.com>
+
+       * doc/xml/manual/status_cxx2017.xml: Update status table.
+       * doc/html/manual/*: Regenerate.
+
+2015-07-03  Ville Voutilainen  <ville.voutilainen@gmail.com>
+
+       Implement std::experimental::fundamentals_v2::propagate_const.
+       * include/Makefile.am: Add propagate_const.
+       * include/Makefile.in: Regenerate.
+       * include/experimental/propagate_const: New.
+       * testsuite/experimental/propagate_const/assignment/copy.cc: Likewise.
+       * testsuite/experimental/propagate_const/assignment/move.cc: Likewise.
+       * testsuite/experimental/propagate_const/assignment/move_neg.cc:
+       Likewise.
+       * testsuite/experimental/propagate_const/cons/copy.cc: Likewise.
+       * testsuite/experimental/propagate_const/cons/default.cc: Likewise.
+       * testsuite/experimental/propagate_const/cons/move.cc: Likewise.
+       * testsuite/experimental/propagate_const/cons/move_neg.cc: Likewise.
+       * testsuite/experimental/propagate_const/hash/1.cc: Likewise.
+       * testsuite/experimental/propagate_const/observers/1.cc: Likewise.
+       * testsuite/experimental/propagate_const/relops/1.cc: Likewise.
+       * testsuite/experimental/propagate_const/requirements1.cc: Likewise.
+       * testsuite/experimental/propagate_const/requirements2.cc: Likewise.
+       * testsuite/experimental/propagate_const/requirements3.cc: Likewise.
+       * testsuite/experimental/propagate_const/requirements4.cc: Likewise.
+       * testsuite/experimental/propagate_const/requirements5.cc: Likewise.
+       * testsuite/experimental/propagate_const/swap/1.cc: Likewise.
+       * testsuite/experimental/propagate_const/typedefs.cc: Likewise.
+
+2015-07-02  Jonathan Wakely  <jwakely@redhat.com>
+
+       * acinclude.m4 (GLIBCXX_DEFAULT_ABI): Change valid arguments for
+       --with-default-libstdcxx-abi
+       * configure: Regenerate.
+       * doc/xml/manual/configure.xml: Document valid arguments.
+
+2015-07-02  Uros Bizjak  <ubizjak@gmail.com>
+
+       * libsupc++/guard.cc (__test_and_acquire): Use __p after __atomic_load
+       to avoid unused variable warning.
+       (__set_and_release): Use __p after __atomic_store to avoid unused
+       variable warning.
+
+2015-07-01  Jonathan Wakely  <jwakely@redhat.com>
+
+       * include/bits/alloc_traits.h (__alloctr_rebind): Remove.
+       (__allocator_traits_base): New base class.
+       (__alloc_rebind): Reimplement in terms of detection idiom.
+       (allocator_traits): Derive from __allocator_traits_base. Reimplement
+       nested types in terms of detection idiom. Simplify SFINAE constraints
+       on overloaded static member functions.
+       * include/bits/hashtable.h (_Hashtable): Use __alloc_rebind instead
+       of __alloctr_rebind.
+       * testsuite/20_util/scoped_allocator/propagation.cc: Define rebind.
+       * testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
+       dg-error line number.
+
+       * include/bits/ptr_traits.h (__ptrtr_elt_type, __ptrtr_diff_type,
+       __ptrtr_rebind, __ptrtr_not_void): Remove
+       (__get_first_arg, __replace_first_arg, __make_not_void): Define new
+       transformations.
+       (__detected_or_): New detection trait.
+       (pointer_traits): Use new traits.
+       * testsuite/20_util/pointer_traits/pointer_to.cc: Add rebind member.
+       * testsuite/20_util/pointer_traits/requirements/
+       explicit_instantiation.cc: Use valid arguments to pointer_traits.
+
+       * doc/xml/manual/status_cxx2017.xml: Update status table.
+       * include/experimental/type_traits (void_t, is_detected,
+       is_detected_v, detected_t, detected_or, detected_or_t,
+       is_detected_exact, is_detected_exact_v, is_detected_convertible,
+       is_detected_convertible_v): Define.
+       * include/std/type_traits (__detector, __detected_or, __detected_or_t,
+       __detected_or_t_): Define.
+       * testsuite/experimental/type_traits/detection.cc: New.
+
+2015-06-30  Jonathan Wakely  <jwakely@redhat.com>
+
+       * doc/Makefile.am (stamp-pdf-doxygen): Grep for LaTeX errors in log.
+       * doc/Makefile.in: Regenerate.
+
+       * include/bits/stl_pair.h: Replace class keyword with typename.
+
+2015-06-30  Ville Voutilainen  <ville.voutilainen@gmail.com>
+
+       Implement N4387, "Improving pair and tuple", and LWG 2367.
+
+       * include/bits/stl_pair.h (_ConstructiblePair,
+       _ImplicitlyConvertiblePair, _MoveConstructiblePair,
+       _ImplicitlyMoveConvertiblePair): New.
+       (pair()): Constrain it.
+       (pair(const _T1&, const _T2&), pair(const pair<_U1, _U2>&),
+       pair(_U1&&, const _T2&), pair(const _T1&, _U2&&), pair(_U1&&, _U2&&),
+       pair(pair<_U1, _U2>&&)): Make conditionally explicit.
+       * include/std/tuple (_TC, tuple::_TC2, tuple::TCC, tuple::TMC): New.
+       (tuple()): Constrain it.
+       (tuple(const _UElements&...), tuple(_UElements&&...),
+       tuple(const tuple<_UElements...>&), tuple(tuple<_UElements...>&&),
+       tuple(allocator_arg_t, const _Alloc&, const _UElements&...),
+       tuple(allocator_arg_t, const _Alloc&, _UElements&&...),
+       tuple(allocator_arg_t, const _Alloc&, const tuple<_UElements...>&),
+       tuple(allocator_arg_t, const _Alloc&, tuple<_UElements...>&&),
+       tuple(const pair<_U1, _U2>&), tuple(pair<_U1, _U2>&&),
+       tuple(allocator_arg_t, const _Alloc&, const pair<_U1, _U2>&),
+       tuple(allocator_arg_t, const _Alloc&, pair<_U1, _U2>&&)): Make
+       conditionally explicit.
+       * include/experimental/functional (__boyer_moore_array_base): Name
+       array type explicitly instead of using an empty braced-init-list.
+       * testsuite/20_util/pair/cons/explicit_construct.cc: New.
+       * testsuite/20_util/pair/piecewise.cc: Use piecewise_construct.
+       * testsuite/20_util/pair/requirements/dr2367.cc: New.
+       * testsuite/20_util/tuple/cons/explicit_construct.cc: New.
+       * testsuite/20_util/tuple/requirements/dr2367.cc: New.
+
+2015-06-30  Jonathan Wakely  <jwakely@redhat.com>
+
+       * configure: Regenerate.
+
+2015-06-29  François Dumont  <fdumont@gcc.gnu.org>
+
+       * include/bits/stl_iterator_base_types.h (_Iter_base): Limit definition
+       to pre-C++11 mode.
+       * include/debug/functions.h
+       (__gnu_debug::__valid_range, __gnu_debug::__base): Move...
+       * include/debug/safe_iterator.h
+       (__gnu_debug::_Sequence_traits): New.
+       (__gnu_debug::__get_distance_from_begin): New.
+       (__gnu_debug::__get_distance_to_end): New.
+       (__gnu_debug::_Safe_iterator<>::_M_valid_range): Expose iterator range
+       distance information. Add optional check_dereferenceable parameter,
+       default true.
+       (__gnu_debug::_Distance_precision, __gnu_debug::__get_distance): Move
+       default definition...
+       (__gnu_debug::__get_distance): New overload for _Safe_iterator.
+       (__gnu_debug::__unsafe): Likewise.
+       * include/debug/helper_functions.h: ...here. New.
+       (__gnu_debug::__unsafe): New helper function to remove safe iterator
+       layer.
+       * include/debug/stl_iterator.h: New. Include latter.
+       * include/bits/stl_iterator.h: Include latter in debug mode.
+       * include/debug/stl_iterator.tcc: Adapt.
+       * include/debug/safe_local_iterator.h (__gnu_debug::__get_distance): Add
+       overload for _Safe_local_iterator.
+       (__gnu_debug::__unsafe): Likewise.
+       * include/debug/safe_local_iterator.tcc: Adapt.
+       * include/debug/macros.h (__glibcxx_check_valid_range2): New.
+       (__glibcxx_check_insert_range): Add _Dist parameter.
+       (__glibcxx_check_insert_range_after): Likewise.
+       (__glibcxx_check_string, __glibcxx_check_string_len): Implement using
+       _GLIBCXX_DEBUG_PEDASSERT.
+       * include/debug/deque (deque<>::assign): Remove iterator debug layer
+       when possible.
+       (deque<>::insert): Likewise.
+       * include/debug/forward_list (__glibcxx_check_valid_fl_range): New.
+       (forward_list<>::splice_after): Use latter.
+       (forward_list<>::assign): Remove iterator debug layer when possible.
+       (forward_list<>::insert_after): Likewise.
+       (__gnu_debug::_Sequence_traits<>): Partial specialization.
+       * include/debug/list (list<>::assign): Remove iterator debug layer when
+       possible.
+       (list<>::insert): Likewise.
+       [__gnu_debug::_Sequence_traits<>]: Partial specialization pre C++11 ABI.
+       * include/debug/map.h (map<>::insert): Remove iterator debug layer when
+       possible.
+       * include/debug/multimap.h (multimap<>::insert): Likewise.
+       * include/debug/set.h (set<>::insert): Likewise.
+       * include/debug/multiset.h (multiset<>::insert): Likewise.
+       * include/debug/string (basic_string<>::append, basic_string<>::assign,
+       basic_string<>::insert, basic_string<>::replace): Likewise.
+       * include/debug/unordered_map
+       (unordered_map<>::insert, unordered_multimap<>::insert): Likewise.
+       * include/debug/unordered_set
+       (unordered_set<>::insert, unordered_multiset<>insert): Likewise.
+       * include/debug/vector
+       (vector<>::assign, vector<>::insert): Likewise.
+       * include/Makefile.am: Add new debug headers.
+       * include/Makefile.in: Regenerate.
+
+2015-06-26  Jonathan Wakely  <jwakely@redhat.com>
+
+       * doc/xml/manual/intro.xml: Document LWG 2108 status.
+       * include/bits/alloc_traits.h (allocator_traits::is_always_equal):
+       Define.
+       * include/bits/allocator.h (allocator::is_always_equal): Likewise.
+       * include/bits/forward_list.h
+       (forward_list::operator=(forward_list&&)): Use __bool_constant.
+       (forward_list::swap(forward_list&)): Add noexcept.
+       * include/bits/hashtable.h (_Hashtable::operator=(_Hashtable&&)):
+       Likewise.
+       (_Hashtable::swap(_Hashtable&)): Likewise.
+       * include/bits/stl_deque.h (_Deque_base::_Deque_base(_Deque_base&&)):
+       Use _Alloc_traits::is_always_equal.
+       (deque::operator=(deque&&)): Likewise.
+       (deque::_M_move_assign1(deque&&, false_type)): Add comment and use
+       __bool_constant.
+       (swap(deque&, deque&)): Add noexcept.
+       * include/bits/stl_list.h (list::operator=(list&&)): Use
+       __bool_constant.
+       (swap(list&, list&)): Add noexcept.
+       * include/bits/stl_map.h (map::swap(map&)): Include _Compare in
+       noexcept.
+       (swap(map&, map&)): Add noexcept.
+       * include/bits/stl_multimap.h (multimap::swap(multimap&)): Include
+       _Compare in noexcept.
+       (swap(multimap&, multimap&)): Add noexcept.
+       * include/bits/stl_multiset.h (multiset::swap(multiset&)): Include
+       _Compare in noexcept.
+       (swap(multiset&, multiset&)): Add noexcept.
+       * include/bits/stl_set.h (set::swap(set&)): Include _Compare in
+       noexcept.
+       (swap(set&, set&)): Add noexcept.
+       * include/bits/stl_tree.h (_Rb_tree::operator=(_Rb_tree&&)): Include
+       _Compare in noexcept.
+       (_Rb_tree::_Rb_tree(_Rb_tree&&, _Node_alloc_type&&)): Use
+       is_always_equal.
+       * include/bits/stl_vector.h (vector::operator=(vector&&)): Use
+       __bool_constant.
+       (swap(vector&, vector&)): Add noexcept.
+       * include/bits/unordered_map.h (swap(unordered_map&, unordered_map&),
+       swap(unordered_multimap& unordered_multimap&)): Add noexcept.
+       * include/bits/unordered_set.h (swap(unordered_set&, unordered_set&),
+       swap(unordered_multiset& unordered_multiset&)): Add noexcept.
+       * include/ext/alloc_traits.h (__allocator_always_compares_equal):
+       Remove.
+       (__alloc_traits::_S_always_equal()): Use is_always_equal instead of
+       __allocator_always_compares_equal.
+       * include/ext/array_allocator.h (array_allocator::is_always_equal):
+       Define.
+       * include/std/scoped_allocator (__any_of, __propagate_on_copy,
+       __propagate_on_move, __propagate_on_swap): Remove.
+       (scoped_allocator_adaptor::propagate_on_container_copy_assignment,
+       scoped_allocator_adaptor::propagate_on_container_move_assignment,
+       scoped_allocator_adaptor::propagate_on_container_swap): Define with
+       __and_ instead of __any_of.
+       (scoped_allocator_adaptor::is_always_equal): Define.
+       * testsuite/20_util/allocator_traits/members/is_always_equal.cc: New.
+       * testsuite/20_util/scoped_allocator/propagation.cc: Make traits
+       derive from true_type or false_type.
+       * testsuite/23_containers/deque/allocator/move_assign-2.cc: Add
+       is_always_equal member and remove the trait specialization.
+       * testsuite/23_containers/vector/52591.cc: Likewise.
+       * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
+       Adjust dg-error line number.
+       * testsuite/23_containers/deque/requirements/dr438/
+       constructor_1_neg.cc: Likewise.
+       * testsuite/23_containers/deque/requirements/dr438/
+       constructor_2_neg.cc: Likewise.
+       * testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
+       Likewise.
+       * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
+       Likewise.
+       * testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc:
+       Likewise.
+       * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
+       Likewise.
+       * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
+       Likewise.
+       * testsuite/23_containers/vector/requirements/dr438/
+       constructor_1_neg.cc: Likewise.
+       * testsuite/23_containers/vector/requirements/dr438/
+       constructor_2_neg.cc: Likewise.
+       * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
+       Likewise.
+
+       * include/bits/stl_bvector.h (vector<bool>::vector()): Add noexcept.
+       * include/bits/stl_map.h (map::map()): Likewise.
+       * include/bits/stl_multimap.h (multimap::multimap()): Likewise.
+       * include/bits/stl_multiset.h (multiset::multiset()): Likewise.
+       * include/bits/stl_set.h (set::set()): Likewise.
+
+2015-06-25  Jonathan Wakely  <jwakely@redhat.com>
+
+       * include/bits/locale_conv.h (__do_str_codecvt): Set __count.
+
 2015-06-24  François Dumont  <fdumont@gcc.gnu.org>
 
        * include/bits/basic_string.h (basic_string<>::front()): Add !empty