summaryrefslogtreecommitdiff
path: root/libstdc++-v3
diff options
context:
space:
mode:
authorbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2014-01-23 11:48:32 +0000
committerbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2014-01-23 11:48:32 +0000
commitf6fc17d03f28a94e35a53d0562595ea179ae2629 (patch)
treee32f9a0a6bdc05a424906b384d8c31c4fa78eb35 /libstdc++-v3
parent8e6ce8a843f5da1c63f8e21c58188e7b7f1a471f (diff)
downloadgcc-f6fc17d03f28a94e35a53d0562595ea179ae2629.tar.gz
2014-01-23 Basile Starynkevitch <basile@starynkevitch.net>
{{merge using svnmerge.py with trunk GCC 4.9 svn rev.206958. All is well compiled.}} git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@206959 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3')
-rw-r--r--libstdc++-v3/ChangeLog4877
-rw-r--r--libstdc++-v3/ChangeLog-20134599
-rw-r--r--libstdc++-v3/doc/xml/manual/backwards_compatibility.xml27
-rw-r--r--libstdc++-v3/doc/xml/manual/codecvt.xml117
-rw-r--r--libstdc++-v3/doc/xml/manual/containers.xml21
-rw-r--r--libstdc++-v3/doc/xml/manual/ctype.xml26
-rw-r--r--libstdc++-v3/doc/xml/manual/status_cxx1998.xml27
-rw-r--r--libstdc++-v3/doc/xml/manual/support.xml12
-rw-r--r--libstdc++-v3/include/bits/hashtable.h31
-rw-r--r--libstdc++-v3/include/bits/hashtable_policy.h123
-rw-r--r--libstdc++-v3/include/bits/regex.h59
-rw-r--r--libstdc++-v3/include/bits/regex.tcc2
-rw-r--r--libstdc++-v3/include/bits/regex_automaton.h7
-rw-r--r--libstdc++-v3/include/bits/regex_automaton.tcc27
-rw-r--r--libstdc++-v3/include/bits/regex_compiler.h310
-rw-r--r--libstdc++-v3/include/bits/regex_compiler.tcc196
-rw-r--r--libstdc++-v3/include/bits/regex_executor.h26
-rw-r--r--libstdc++-v3/include/bits/regex_executor.tcc9
-rw-r--r--libstdc++-v3/include/bits/regex_scanner.h240
-rw-r--r--libstdc++-v3/include/bits/regex_scanner.tcc165
-rw-r--r--libstdc++-v3/include/bits/stl_deque.h14
-rw-r--r--libstdc++-v3/include/bits/stl_list.h12
-rw-r--r--libstdc++-v3/include/bits/stl_vector.h15
-rw-r--r--libstdc++-v3/include/debug/deque5
-rw-r--r--libstdc++-v3/include/debug/list6
-rw-r--r--libstdc++-v3/include/debug/map.h57
-rw-r--r--libstdc++-v3/include/debug/multimap.h58
-rw-r--r--libstdc++-v3/include/debug/multiset.h58
-rw-r--r--libstdc++-v3/include/debug/safe_base.h6
-rw-r--r--libstdc++-v3/include/debug/safe_local_iterator.h2
-rw-r--r--libstdc++-v3/include/debug/set.h57
-rw-r--r--libstdc++-v3/include/debug/unordered_map12
-rw-r--r--libstdc++-v3/include/debug/unordered_set12
-rw-r--r--libstdc++-v3/include/debug/vector33
-rw-r--r--libstdc++-v3/include/experimental/string_view9
-rw-r--r--libstdc++-v3/include/profile/deque6
-rw-r--r--libstdc++-v3/include/profile/list10
-rw-r--r--libstdc++-v3/include/profile/map.h63
-rw-r--r--libstdc++-v3/include/profile/multimap.h68
-rw-r--r--libstdc++-v3/include/profile/multiset.h68
-rw-r--r--libstdc++-v3/include/profile/set.h68
-rw-r--r--libstdc++-v3/include/profile/vector10
-rw-r--r--libstdc++-v3/include/std/regex4
-rw-r--r--libstdc++-v3/src/c++11/thread.cc2
-rw-r--r--libstdc++-v3/testsuite/23_containers/deque/58764.cc28
-rw-r--r--libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/assign_neg.cc2
-rw-r--r--libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/constructor_1_neg.cc2
-rw-r--r--libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/constructor_2_neg.cc2
-rw-r--r--libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/insert_neg.cc2
-rw-r--r--libstdc++-v3/testsuite/23_containers/list/58764.cc28
-rw-r--r--libstdc++-v3/testsuite/23_containers/list/requirements/dr438/assign_neg.cc2
-rw-r--r--libstdc++-v3/testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc2
-rw-r--r--libstdc++-v3/testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc2
-rw-r--r--libstdc++-v3/testsuite/23_containers/list/requirements/dr438/insert_neg.cc2
-rw-r--r--libstdc++-v3/testsuite/23_containers/map/58764.cc28
-rw-r--r--libstdc++-v3/testsuite/23_containers/multimap/58764.cc28
-rw-r--r--libstdc++-v3/testsuite/23_containers/multiset/58764.cc28
-rw-r--r--libstdc++-v3/testsuite/23_containers/set/58764.cc28
-rw-r--r--libstdc++-v3/testsuite/23_containers/unordered_set/56267-2.cc (renamed from libstdc++-v3/testsuite/23_containers/unordered_set/not_default_constructible_hash_neg.cc)46
-rw-r--r--libstdc++-v3/testsuite/23_containers/unordered_set/instantiation_neg.cc2
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/58764.cc29
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/allocator/move.cc2
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/allocator/move_assign.cc21
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/debug/move_assign_neg.cc50
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/assign_neg.cc2
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_1_neg.cc2
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_2_neg.cc2
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/insert_neg.cc2
-rw-r--r--libstdc++-v3/testsuite/28_regex/basic_regex/multiple_quantifiers.cc33
-rw-r--r--libstdc++-v3/testsuite/28_regex/constants/syntax_option_type.cc13
-rw-r--r--libstdc++-v3/testsuite/experimental/string_view/element_access/char/2.cc5
-rw-r--r--libstdc++-v3/testsuite/experimental/string_view/element_access/wchar_t/2.cc3
-rw-r--r--libstdc++-v3/testsuite/util/testsuite_allocator.h2
73 files changed, 6534 insertions, 5420 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 4b81c9eeb6a..3d78f785927 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,2595 +1,61 @@
-2014-01-07 Tim Shen <timshen91@gmail.com>
-
- * include/bits/regex_compiler.h (_AnyMatcher<>::_AnyMatcher(),
- _AnyMatcher<>::operator(), _AnyMatcher<>::_M_apply(),
- _CharMatcher<>::_CharMatcher(), _CharMatcher<>::_M_translate(),
- _BracketMatcher<>::_BracketMatcher(), _BracketMatcher<>::operator(),
- _BracketMatcher<>::_M_add_char(),
- _BracketMatcher<>::_M_add_collating_element(),
- _BracketMatcher<>::_M_add_equivalence_class(),
- _BracketMatcher<>::_M_add_character_class(),
- _BracketMatcher<>::_M_make_range(), _BracketMatcher<>::_M_ready(),
- _BracketMatcher<>::_M_apply(), _BracketMatcher<>::_M_make_cache()):
- Fix _AnyMatcher behavior of POSIX style and move _M_flags
- to template parameter; Add cache for _BracketMatcher. Adjust
- declarations from here...
- * include/bits/regex.h (basic_regex<>::imbue()): ...to here. Also,
- imbuing a regex will trigger a recompilation to rebuild the cache.
- * include/bits/regex_compiler.tcc (_Compiler<>::_M_atom(),
- _Compiler<>::_M_bracket_expression()): Adjust matchers' caller for
- different template bool parameters.
- * include/bits/regex_executor.h: Remove unnecessary declarations.
- * include/std/regex: Adjust including orders.
- * testsuite/28_regex/traits/char/user_defined.cc: New.
- * testsuite/28_regex/traits/wchar_t/user_defined.cc: New.
-
-2014-01-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
-
- * config/abi/post/solaris2.9/baseline_symbols.txt: Regenerate.
- * config/abi/post/solaris2.9/sparcv9/baseline_symbols.txt: Likewise.
- * config/abi/post/solaris2.10/baseline_symbols.txt: Likewise.
- * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
- * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
-
-2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
-
- Update copyright years
-
-2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
-
- * testsuite/18_support/new_handler.cc,
- testsuite/18_support/terminate_handler.cc,
- testsuite/18_support/unexpected_handler.cc: Use the standard form for
- the copyright notice.
-
-2013-12-22 Hans-Peter Nilsson <hp@axis.com>
-
- * testsuite/20_util/hash/chi2_quality.h: Break out from
- chi2_quality.cc.
- * testsuite/20_util/hash/chi2_q_bit_flip_set.cc: Ditto.
- * testsuite/20_util/hash/chi2_q_document_words.cc: Ditto.
- * testsuite/20_util/hash/chi2_q_bit_string_set.cc: Ditto. Increase
- SAMPLES to 35000 for simulator targets.
- * testsuite/20_util/hash/chi2_q_numeric_pattern_set.cc: Ditto.
- * testsuite/20_util/hash/chi2_q_uniform_random.cc: Ditto.
- * testsuite/20_util/hash/chi2_quality.cc: Remove.
-
-2013-12-10 Paolo Carlini <paolo.carlini@oracle.com>
-
- * testsuite/20_util/is_base_of/value.cc: Add test.
-
- * include/std/fstream: Tiny formatting tweak.
-
-2013-12-09 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR libstdc++/59427
- * include/bits/fstream.tcc (basic_filebuf<>::overflow,
- basic_filebuf<>::xsputn): Per lwg/596, ios_base::app implies
- ios_base:out.
- * include/std/fstream (basic_filebuf<>::_M_set_buffer): Likewise.
- * testsuite/27_io/basic_filebuf/sputc/char/59427.cc: New.
- * testsuite/27_io/basic_filebuf/sputn/char/59427.cc: Likewise.
-
-2013-12-09 Renlin Li <Renlin.Li@arm.com>
-
- * testsuite/20_util/hash/chi2_quality.cc: Change -DSAMPLES=30000.
-
-2013-12-08 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * testsuite/30_threads/async/async.cc: Fix race condition in test.
-
-2013-12-08 Paolo Carlini <paolo.carlini@oracle.com>
-
- * testsuite/20_util/add_const/requirements/explicit_instantiation.cc:
- New.
- * testsuite/20_util/add_const/value.cc: Likewise.
- * testsuite/20_util/add_cv/requirements/explicit_instantiation.cc:
- Likewise.
- * testsuite/20_util/add_cv/value.cc: Likewise.
- * testsuite/20_util/add_pointer/requirements/explicit_instantiation.cc:
- Likewise.
- * testsuite/20_util/add_pointer/value.cc: Likewise.
- * testsuite/20_util/add_volatile/requirements/
- explicit_instantiation.cc: Likewise.
- * testsuite/20_util/add_volatile/value.cc: Likewise.
- * testsuite/20_util/alignment_of/requirements/
- explicit_instantiation.cc: Likewise.
- * testsuite/20_util/alignment_of/requirements/typedefs.cc: Likewise.
- * testsuite/20_util/alignment_of/value.cc: Likewise.
- * testsuite/20_util/extent/requirements/explicit_instantiation.cc:
- Likewise.
- * testsuite/20_util/extent/requirements/typedefs.cc: Likewise.
- * testsuite/20_util/extent/value.cc: Likewise.
- * testsuite/20_util/has_virtual_destructor/requirements/
- explicit_instantiation.cc: Likewise.
- * testsuite/20_util/has_virtual_destructor/requirements/
- typedefs.cc: Likewise.
- * testsuite/20_util/has_virtual_destructor/value.cc: Likewise.
- * testsuite/20_util/is_abstract/requirements/explicit_instantiation.cc:
- Likewise.
- * testsuite/20_util/is_abstract/requirements/typedefs.cc: Likewise.
- * testsuite/20_util/is_abstract/value.cc: Likewise.
- * testsuite/20_util/is_arithmetic/requirements/
- explicit_instantiation.cc: Likewise.
- * testsuite/20_util/is_arithmetic/requirements/typedefs.cc: Likewise.
- * testsuite/20_util/is_arithmetic/value.cc: Likewise.
- * testsuite/20_util/is_array/requirements/explicit_instantiation.cc:
- Likewise.
- * testsuite/20_util/is_array/requirements/typedefs.cc: Likewise.
- * testsuite/20_util/is_array/value.cc: Likewise.
- * testsuite/20_util/is_base_of/requirements/explicit_instantiation.cc:
- Likewise.
- * testsuite/20_util/is_base_of/requirements/typedefs.cc: Likewise.
- * testsuite/20_util/is_base_of/value.cc: Likewise.
- * testsuite/20_util/is_class/requirements/explicit_instantiation.cc:
- Likewise.
- * testsuite/20_util/is_class/requirements/typedefs.cc: Likewise.
- * testsuite/20_util/is_class/value.cc: Likewise.
- * testsuite/20_util/is_const/requirements/explicit_instantiation.cc:
- Likewise.
- * testsuite/20_util/is_const/requirements/typedefs.cc: Likewise.
- * testsuite/20_util/is_const/value.cc: Likewise.
- * testsuite/20_util/is_empty/requirements/explicit_instantiation.cc:
- Likewise.
- * testsuite/20_util/is_empty/requirements/typedefs.cc: Likewise.
- * testsuite/20_util/is_empty/value.cc: Likewise.
- * testsuite/20_util/is_enum/requirements/explicit_instantiation.cc:
- Likewise.
- * testsuite/20_util/is_enum/requirements/typedefs.cc
- * testsuite/20_util/is_enum/value.cc: Likewise.
- * testsuite/20_util/is_pointer/requirements/explicit_instantiation.cc
- * testsuite/20_util/is_pointer/value.cc: Likewise.
- * testsuite/20_util/is_polymorphic/requirements/
- explicit_instantiation.cc: Likewise.
- * testsuite/20_util/is_polymorphic/requirements/typedefs.cc: Likewise.
- * testsuite/20_util/is_polymorphic/value.cc: Likewise.
- * testsuite/20_util/is_same/requirements/explicit_instantiation.cc
- * testsuite/20_util/is_same/requirements/typedefs.cc: Likewise.
- * testsuite/20_util/is_same/value.cc: Likewise.
- * testsuite/20_util/is_union/requirements/
- explicit_instantiation.cc: Likewise.
- * testsuite/20_util/is_union/requirements/typedefs.cc: Likewise.
- * testsuite/20_util/is_union/value.cc: Likewise.
- * testsuite/20_util/is_void/requirements/explicit_instantiation.cc
- * testsuite/20_util/is_void/requirements/typedefs.cc: Likewise.
- * testsuite/20_util/is_void/value.cc: Likewise.
- * testsuite/20_util/is_volatile/requirements/
- explicit_instantiation.cc: Likewise.
- * testsuite/20_util/is_volatile/requirements/typedefs.cc: Likewise.
- * testsuite/20_util/is_volatile/value.cc: Likewise.
- * testsuite/20_util/rank/requirements/explicit_instantiation.cc:
- Likewise.
- * testsuite/20_util/rank/requirements/typedefs.cc: Likewise.
- * testsuite/20_util/rank/value.cc: Likewise.
- * testsuite/20_util/remove_all_extents/requirements/
- explicit_instantiation.cc: Likewise.
- * testsuite/20_util/remove_all_extents/value.cc: Likewise.
- * testsuite/20_util/remove_const/requirements/
- explicit_instantiation.cc: Likewise.
- * testsuite/20_util/remove_const/value.cc: Likewise.
- * testsuite/20_util/remove_cv/requirements/explicit_instantiation.cc:
- Likewise.
- * testsuite/20_util/remove_cv/value.cc: Likewise.
- * testsuite/20_util/remove_extent/requirements/
- explicit_instantiation.cc: Likewise.
- * testsuite/20_util/remove_extent/value.cc: Likewise.
- * testsuite/20_util/remove_pointer/requirements/
- explicit_instantiation.cc: Likewise.
- * testsuite/20_util/remove_pointer/value.cc: Likewise.
- * testsuite/20_util/remove_volatile/requirements/
- explicit_instantiation.cc: Likewise.
- * testsuite/20_util/remove_volatile/value.cc: Likewise.
-
-2013-12-06 Paolo Carlini <paolo.carlini@oracle.com>
-
- * testsuite/util/testsuite_tr1.h (test_category, test_property,
- test_relationship): constexpr in c++11 mode.
- * testsuite/20_util/add_lvalue_reference/value.cc: Use static_assert
- and change to dg-do compile testcase.
- * testsuite/20_util/add_rvalue_reference/value.cc: Likewise.
- * testsuite/20_util/aligned_storage/value.cc: Likewise.
- * testsuite/20_util/has_trivial_copy_assign/value.cc: Likewise.
- * testsuite/20_util/has_trivial_copy_constructor/value.cc: Likewise.
- * testsuite/20_util/has_trivial_default_constructor/value.cc: Likewise.
- * testsuite/20_util/is_compound/value.cc: Likewise.
- * testsuite/20_util/is_constructible/value.cc: Likewise.
- * testsuite/20_util/is_convertible/value.cc: Likewise.
- * testsuite/20_util/is_copy_assignable/value.cc: Likewise.
- * testsuite/20_util/is_copy_constructible/value.cc: Likewise.
- * testsuite/20_util/is_floating_point/value.cc: Likewise.
- * testsuite/20_util/is_function/value.cc: Likewise.
- * testsuite/20_util/is_fundamental/value.cc: Likewise.
- * testsuite/20_util/is_integral/value.cc: Likewise.
- * testsuite/20_util/is_literal_type/value.cc: Likewise.
- * testsuite/20_util/is_lvalue_reference/value.cc: Likewise.
- * testsuite/20_util/is_member_function_pointer/value.cc: Likewise.
- * testsuite/20_util/is_member_object_pointer/value.cc: Likewise.
- * testsuite/20_util/is_member_pointer/value.cc: Likewise.
- * testsuite/20_util/is_move_assignable/value.cc: Likewise.
- * testsuite/20_util/is_move_constructible/value.cc: Likewise.
- * testsuite/20_util/is_nothrow_assignable/value.cc: Likewise.
- * testsuite/20_util/is_nothrow_constructible/value.cc: Likewise.
- * testsuite/20_util/is_nothrow_copy_assignable/value.cc: Likewise.
- * testsuite/20_util/is_nothrow_copy_constructible/value.cc: Likewise.
- * testsuite/20_util/is_nothrow_default_constructible/value.cc: Likewise.
- * testsuite/20_util/is_nothrow_move_assignable/value.cc: Likewise.
- * testsuite/20_util/is_nothrow_move_constructible/value.cc: Likewise.
- * testsuite/20_util/is_null_pointer/value.cc: Likewise.
- * testsuite/20_util/is_object/value.cc: Likewise.
- * testsuite/20_util/is_pod/value.cc: Likewise.
- * testsuite/20_util/is_reference/value.cc: Likewise.
- * testsuite/20_util/is_rvalue_reference/value.cc: Likewise.
- * testsuite/20_util/is_scalar/value.cc: Likewise.
- * testsuite/20_util/is_signed/value.cc: Likewise.
- * testsuite/20_util/is_standard_layout/value.cc: Likewise.
- * testsuite/20_util/is_trivial/value.cc: Likewise.
- * testsuite/20_util/is_trivially_destructible/value.cc: Likewise.
- * testsuite/20_util/is_unsigned/value.cc: Likewise.
- * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Likewise.
- * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc: Likewise.
- * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc: Likewise.
- * testsuite/20_util/remove_reference/value.cc: Likewise.
-
-2013-12-03 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * include/std/fstream (basic_filebuf::open): Use preformatted text
- for table in Doxygen comment.
-
-2013-12-03 Tim Shen <timshen91@gmail.com>
-
- * regex_compiler.h: Add todo comment.
- * regex_executor.tcc: Likewise.
-
-2013-11-29 Matthias Klose <doko@ubuntu.com>
-
- * testsuite/experimental/string_view/requirements/exception,
- testsuite/experimental/string_view/capacity/wchar_t,
- testsuite/experimental/string_view/capacity/char: Remove empty dirs.
-
-2013-11-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
-
- * testsuite/ext/random/hypergeometric_distribution/operators/values.cc:
- Use dg-require-cmath instead.
-
- * testsuite/ext/random/hypergeometric_distribution/operators/values.cc
- (test01): Wrap in _GLIBCXX_USE_C99_MATH_TR1.
-
-2013-11-22 François Dumont <fdumont@gcc.gnu.org>
-
- * include/debug/safe_local_iterator.h (_Safe_local_iterator<>):
- Remove _M_bucket, use same information in normal local_iterator.
- (operator==): Remove redundant _M_can_compare check.
- * include/debug/safe_local_iterator.tcc: Adapt.
- * include/debug/unordered_set: Likewise.
- * include/debug/unordered_map: Likewise.
-
-2013-11-22 Jakub Jelinek <jakub@redhat.com>
-
- * testsuite/Makefile.am (check_DEJAGNU_normal_targets): Add 10.
- (check-DEJAGNU): Add normal10, run 28_regex/[ab]*
- tests as another separate job.
- * testsuite/Makefile.in: Regenerated.
-
-2013-11-22 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * acinclude.m4 (libtool_VERSION): Bump.
- * configure: Regenerate.
- * doc/xml/manual/abi.xml: Update version information.
-
- PR libstdc++/59247
- * include/bits/c++config (_GLIBCXX_INLINE_VERSION): Declare namespace
- std::experimental::__7 as inline.
- * include/bits/regex.h (_GLIBCXX_BEGIN_NAMESPACE_VERSION): Do not
- enclose namespace __detail.
- * include/bits/regex.tcc (_GLIBCXX_BEGIN_NAMESPACE_VERSION): Likewise.
- * include/std/iomanip (_GLIBCXX_BEGIN_NAMESPACE_VERSION): Likewise.
- * include/ext/pb_ds/tag_and_trait.hpp (detail): Fix comment.
- * testsuite/ext/profile/mutex_extensions_neg.cc: Adjust line number.
-
-2013-11-22 Paolo Carlini <paolo.carlini@oracle.com>
-
- * testsuite/ext/random/hypergeometric_distribution/operators/
- values.cc: Fix further thinkos.
-
-2013-11-22 Paolo Carlini <paolo.carlini@oracle.com>
-
- * testsuite/ext/random/hypergeometric_distribution/operators/
- values.cc: Fix thinkos.
-
-2013-11-21 Edward Smith-Rowland <3dw4rd@verizon.net>
-
- * include/experimental/string_view: Rep empty string with unit-length
- static constexpr string. Uncomment _GLIBCXX_VISIBILITY. Enforce
- invariant of no nullptr string pointer.
- * include/experimental/string_view.tcc: Ditto.
- * testsuite/experimental/string_view/cons/char/1.cc: data() for empty
- string_view is no longer nullptr.
- * testsuite/experimental/string_view/cons/wchar_t/1.cc: Ditto.
- * testsuite/experimental/string_view/operations/data/char/1.cc: Ditto.
- * testsuite/experimental/string_view/operations/data/wchar_t/1.cc:
- Ditto.
-
-2013-11-21 Edward Smith-Rowland <3dw4rd@verizon.net>
-
- Implement __gnu_cxx::hypergeometric_distribution.
- * include/ext/random: Add hypergeometric_distribution.
- * include/ext/random.tcc: Add hypergeometric_distribution.
- * testsuite/util/testsuite_random.h (hypergeometric_pdf): New pdf
- for the hypergeometric discreet distribution;
- (lbincoef): New supporting function for binomial coefficients.
- * testsuite/ext/random/hypergeometric_distribution/operators/
- serialize.cc: New.
- * testsuite/ext/random/hypergeometric_distribution/operators/
- equal.cc: New.
- * testsuite/ext/random/hypergeometric_distribution/operators/
- inequal.cc: New.
- * testsuite/ext/random/hypergeometric_distribution/operators/
- values.cc: New.
- * testsuite/ext/random/hypergeometric_distribution/cons/parms.cc: New.
- * testsuite/ext/random/hypergeometric_distribution/cons/default.cc: New.
- * testsuite/ext/random/hypergeometric_distribution/requirements/
- explicit_instantiation/1.cc: New.
- * testsuite/ext/random/hypergeometric_distribution/requirements/
- typedefs.cc: New.
-
-2013-11-20 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- PR c++/59173
- * include/ext/pointer.h (pointer_traits<>::rebind<>): Add template
- keyword in nested name.
-
- PR libstdc++/49204
- * include/std/future (__future_base::_State_base): Rename to
- __future_base::_State_baseV2.
- (__future_base::_State_baseV2::~_State_baseV2): Define as defaulted.
- (__future_base::_State_baseV2::_M_run_deferred): Rename to
- _M_complete_async.
- (__future_base::_State_baseV2::_M_has_deferred): Add new virtual.
- (__future_base::_State_baseV2::wait_for): Call _M_has_deferred() to
- test for a deferred function, or call _M_complete_async() to join an
- async thread that has made the shared state ready.
- (__future_base::_State_baseV2::wait_until): Likewise.
- (__future_base::_Async_state_common): Rename to _Async_state_commonV2.
- (__future_base::_Async_state_commonV2::_M_run_deferred): Rename to
- _M_complete_async.
- * src/c++11/compatibility-thread-c++0x.cc (__future_base::_State_base):
- Export old definition.
- (__future_base::_Async_state_common): Likewise.
- * src/c++11/future.cc (__future_base::_State_base::~_State_base):
- Remove.
- * doc/xml/manual/status_cxx2011.xml: Update status.
- * testsuite/30_threads/async/async.cc: Test future_status::timeout
- and future_status::ready.
- * testsuite/30_threads/async/sync.cc: Test future_status::deferred.
-
-2013-11-20 David Edelsohn <dje.gcc@gmail.com>
-
- * testsuite/17_intro/static.cc: Ignore AIX TOC reload warnings.
-
-2013-11-19 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * testsuite/23_containers/forward_list/allocator/noexcept.cc: Change
- to compile-only test. Adjust swap overload to handle rebound
- allocators.
- * 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/allocator/swap.cc: Add elements
- before swapping.
-
- * config/abi/pre/gnu.ver (_ZNSt11regex_errorC*): Export regex_error
- constructors.
- * testsuite/20_util/addressof/1.cc: Remove { dg-do compile }.
- * testsuite/20_util/allocator_traits/members/destroy.cc: Likewise.
- * testsuite/20_util/allocator_traits/members/select.cc: Likewise. Fix
- failure.
- * testsuite/28_regex/basic_regex/ctors/extended/cstring.cc: Likewise.
- * testsuite/28_regex/init-list.cc: Likewise.
- * testsuite/28_regex/regex_error/regex_error.cc: Likewise.
- * testsuite/28_regex/sub_match/length.cc: Likewise. Add main.
- * testsuite/28_regex/sub_match/cast_char.cc: Likewise. Fix test.
- * testsuite/28_regex/sub_match/cast_wchar_t.cc: Likewise.
- * testsuite/tr1/7_regular_expressions/regex/cons/char/
- c_string_extended.cc: Delete.
-
-2013-11-19 Paolo Carlini <paolo.carlini@oracle.com>
-
- * include/experimental/string_view (_S_max_size): Remove.
- (basic_string_view<>::max_size): Adjust.
- * testsuite/experimental/string_view/capacity/1.cc: Clean-up.
- * testsuite/experimental/string_view/inserters/pod/10081-out.cc:
- Likewise.
-
-2013-11-19 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * doc/xml/manual/status_cxx2014.xml: Create new table for TS statuses.
-
-2013-11-18 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * include/bits/shared_ptr_base.h (_Sp_counted_base<_S_single>): Use
- non-atomic operations.
- * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust line number.
- * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
-
-2013-11-16 Edward Smith-Rowland <3dw4rd@verizon.net>
-
- Implement N3762 string_view: a non-owning reference to a string.
- * include/Makefile.am: Add string_view and string_view.tcc.
- * include/Makefile.in: Regenerate.
- * include/experimental/string_view: Implement basic_string_view.
- * include/experimental/string_view.tcc: Implement basic_string_view.
- * testsuite/experimental/string_view/capacity/1.cc: New.
- * testsuite/experimental/string_view/cons/char/1.cc: New.
- * testsuite/experimental/string_view/cons/char/2.cc: New.
- * testsuite/experimental/string_view/cons/char/3.cc: New.
- * testsuite/experimental/string_view/cons/wchar_t/1.cc: New.
- * testsuite/experimental/string_view/cons/wchar_t/2.cc: New.
- * testsuite/experimental/string_view/cons/wchar_t/3.cc: New.
- * testsuite/experimental/string_view/element_access/char/1.cc: New.
- * testsuite/experimental/string_view/element_access/char/2.cc: New.
- * testsuite/experimental/string_view/element_access/char/empty.cc: New.
- * testsuite/experimental/string_view/element_access/char/front_back.cc:
- New.
- * testsuite/experimental/string_view/element_access/wchar_t/1.cc: New.
- * testsuite/experimental/string_view/element_access/wchar_t/2.cc: New.
- * testsuite/experimental/string_view/element_access/wchar_t/empty.cc:
- New.
- * testsuite/experimental/string_view/element_access/wchar_t/
- front_back.cc: New.
- * testsuite/experimental/string_view/include.cc: New.
- * testsuite/experimental/string_view/inserters/char/1.cc: New.
- * testsuite/experimental/string_view/inserters/char/2.cc: New.
- * testsuite/experimental/string_view/inserters/char/3.cc: New.
- * testsuite/experimental/string_view/inserters/pod/10081-out.cc: New.
- * testsuite/experimental/string_view/inserters/wchar_t/1.cc: New.
- * testsuite/experimental/string_view/inserters/wchar_t/2.cc: New.
- * testsuite/experimental/string_view/inserters/wchar_t/3.cc: New.
- * testsuite/experimental/string_view/literals/types.cc: New.
- * testsuite/experimental/string_view/literals/values.cc: New.
- * testsuite/experimental/string_view/modifiers/remove_prefix/char/1.cc:
- New.
- * testsuite/experimental/string_view/modifiers/remove_prefix/wchar_t/
- 1.cc: New.
- * testsuite/experimental/string_view/modifiers/remove_suffix/char/1.cc:
- New.
- * testsuite/experimental/string_view/modifiers/remove_suffix/wchar_t/
- 1.cc: New.
- * testsuite/experimental/string_view/operations/compare/char/1.cc: New.
- * testsuite/experimental/string_view/operations/compare/char/13650.cc:
- New.
- * testsuite/experimental/string_view/operations/compare/wchar_t/1.cc:
- New.
- * testsuite/experimental/string_view/operations/compare/wchar_t/
- 13650.cc: New.
- * testsuite/experimental/string_view/operations/data/char/1.cc: New.
- * testsuite/experimental/string_view/operations/data/wchar_t/1.cc: New.
- * testsuite/experimental/string_view/operations/find/char/1.cc: New.
- * testsuite/experimental/string_view/operations/find/char/2.cc: New.
- * testsuite/experimental/string_view/operations/find/char/3.cc: New.
- * testsuite/experimental/string_view/operations/find/char/4.cc: New.
- * testsuite/experimental/string_view/operations/find/wchar_t/1.cc: New.
- * testsuite/experimental/string_view/operations/find/wchar_t/2.cc: New.
- * testsuite/experimental/string_view/operations/find/wchar_t/3.cc: New.
- * testsuite/experimental/string_view/operations/find/wchar_t/4.cc: New.
- * testsuite/experimental/string_view/operations/rfind/char/1.cc: New.
- * testsuite/experimental/string_view/operations/rfind/char/2.cc: New.
- * testsuite/experimental/string_view/operations/rfind/char/3.cc: New.
- * testsuite/experimental/string_view/operations/rfind/wchar_t/1.cc: New.
- * testsuite/experimental/string_view/operations/rfind/wchar_t/2.cc: New.
- * testsuite/experimental/string_view/operations/rfind/wchar_t/3.cc: New.
- * testsuite/experimental/string_view/operations/substr/char/1.cc: New.
- * testsuite/experimental/string_view/operations/substr/wchar_t/1.cc:
- New.
- * testsuite/experimental/string_view/operators/char/2.cc: New.
- * testsuite/experimental/string_view/operators/wchar_t/2.cc: New.
- * testsuite/experimental/string_view/range_access/char/1.cc: New.
- * testsuite/experimental/string_view/range_access/wchar_t/1.cc: New.
- * testsuite/experimental/string_view/requirements/
- explicit_instantiation/1.cc: New.
- * testsuite/experimental/string_view/requirements/
- explicit_instantiation/char/1.cc: New.
- * testsuite/experimental/string_view/requirements/
- explicit_instantiation/char16_t/1.cc: New.
- * testsuite/experimental/string_view/requirements/
- explicit_instantiation/char32_t/1.cc: New.
- * testsuite/experimental/string_view/requirements/
- explicit_instantiation/wchar_t/1.cc: New.
- * testsuite/experimental/string_view/requirements/typedefs.cc: New.
- * testsuite/experimental/string_view/types/1.cc: New.
-
-2013-11-16 François Dumont <fdumont@gcc.gnu.org>
-
- * testsuite/23_containers/unordered_set/55043.cc (equal): Add
- missing & on rhs parameter.
-
-2013-11-15 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * include/bits/stl_bvector.h (vector<bool>::emplace_back()): LWG 2187:
- Define.
- (vector<bool>::emplace()): Likewise.
- * testsuite/23_containers/vector/bool/emplace.cc: New.
-
-2013-11-15 Ondřej Bílka <neleai@seznam.cz>
- Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * doc/xml/manual/build_hacking.xml: Fix documentation typos.
- * doc/xml/manual/configure.xml: Likewise.
- * include/bits/atomic_base.h: Fix typos in comments.
- * include/bits/random.h: Likewise.
- * include/ext/cast.h: Likewise.
- * libsupc++/cxxabi.h: Likewise.
- * testsuite/ext/pb_ds/example/hash_illegal_resize.cc: Likewise.
- * testsuite/tr1/5_numerical_facilities/special_functions/testcase.h:
- Likewise.
- * testsuite/util/exception/safety.h: Likewise.
- * testsuite/util/testsuite_containers.h: Likewise.
- * testsuite/util/testsuite_hooks.cc: Likewise.
-
-2013-11-15 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * include/bits/stl_map.h (map): Implement C++11 allocator-aware
- container requirements.
- * include/bits/stl_multimap.h (multimap): Likewise.
- * include/bits/stl_multiset.h (multiset): Likewise.
- * include/bits/stl_set.h (set): Likewise.
- * include/bits/stl_tree.h (_Rb_tree_node): Use __aligned_buffer and
- add accessors for value.
- (_Rb_tree_iterator, _Rb_tree_const_iterator): Use _Rb_tree_node
- accessors.
- (_Rb_tree): Use allocator_traits and implement support for sets and
- maps the be allocator-aware.
- * include/bits/forward_list.h (_Fwd_list_base::_M_create_node): Do
- not zero-initialize storage buffer.
- * include/bits/hashtable_policy.h (_Hashtable_alloc::_M_allocate_node):
- Likewise.
- * include/bits/stl_vector.h (vector(vector&&, const allocator_type&)):
- Add conditional noexcept specification.
- * doc/xml/manual/status_cxx2011.xml: Update status of containers.
- * testsuite/util/testsuite_allocator.h: Re-indent.
- * testsuite/23_containers/forward_list/allocator/copy.cc: Test
- allocator-extended copy constructor.
- * testsuite/23_containers/unordered_map/allocator/copy.cc: Likewise.
- * testsuite/23_containers/unordered_multimap/allocator/copy.cc:
- Likewise.
- * testsuite/23_containers/unordered_multiset/allocator/copy.cc:
- Likewise.
- * testsuite/23_containers/unordered_set/allocator/copy.cc: Likewise.
- * testsuite/23_containers/vector/allocator/copy.cc: Likewise.
- * testsuite/23_containers/forward_list/allocator/move.cc: New.
- * testsuite/23_containers/unordered_map/allocator/move.cc: New.
- * testsuite/23_containers/unordered_multimap/allocator/move.cc: New.
- * testsuite/23_containers/unordered_multiset/allocator/move.cc: New.
- * testsuite/23_containers/unordered_set/allocator/move.cc: New.
- * testsuite/23_containers/vector/allocator/move.cc: New.
- * testsuite/23_containers/map/allocator/copy.cc: New.
- * testsuite/23_containers/map/allocator/copy_assign.cc: New.
- * testsuite/23_containers/map/allocator/minimal.cc: New.
- * testsuite/23_containers/map/allocator/move.cc: New.
- * testsuite/23_containers/map/allocator/move_assign.cc: New.
- * testsuite/23_containers/map/allocator/noexcept.cc: New.
- * testsuite/23_containers/map/allocator/swap.cc: New.
- * testsuite/23_containers/multimap/allocator/copy.cc: New.
- * testsuite/23_containers/multimap/allocator/copy_assign.cc: New.
- * testsuite/23_containers/multimap/allocator/minimal.cc: New.
- * testsuite/23_containers/multimap/allocator/move.cc: New.
- * testsuite/23_containers/multimap/allocator/move_assign.cc: New.
- * testsuite/23_containers/multimap/allocator/noexcept.cc: New.
- * testsuite/23_containers/multimap/allocator/swap.cc: New.
- * testsuite/23_containers/multiset/allocator/copy.cc: New.
- * testsuite/23_containers/multiset/allocator/copy_assign.cc: New.
- * testsuite/23_containers/multiset/allocator/minimal.cc: New.
- * testsuite/23_containers/multiset/allocator/move.cc: New.
- * testsuite/23_containers/multiset/allocator/move_assign.cc: New.
- * testsuite/23_containers/multiset/allocator/noexcept.cc: New.
- * testsuite/23_containers/multiset/allocator/swap.cc: New.
- * testsuite/23_containers/set/allocator/copy.cc: New.
- * testsuite/23_containers/set/allocator/copy_assign.cc: New.
- * testsuite/23_containers/set/allocator/minimal.cc: New.
- * testsuite/23_containers/set/allocator/move.cc: New.
- * testsuite/23_containers/set/allocator/move_assign.cc: New.
- * testsuite/23_containers/set/allocator/noexcept.cc: New.
- * testsuite/23_containers/set/allocator/swap.cc: New.
- * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
+2014-01-22 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/stl_deque.h (_Deque_impl): Move comment.
+
+ PR libstdc++/58764
+ * include/bits/stl_deque.h (deque::deque(const allocator_type&):
+ Split into separate default constructor and constructor taking
+ allocator.
+ * include/bits/stl_list.h (list::list(const allocator_type&): Likewise.
+ * include/bits/stl_vector.h (vector::vector(const allocator_type&):
+ Likewise.
+ * include/debug/deque (deque::deque(const allocator_type&)): Likewise.
+ * include/debug/list (list::list(const _Allocator&)): Likewise.
+ * include/debug/map.h (map::map(const _Compare&, const _Allocator&)):
+ Likewise.
+ * include/debug/multimap.h
+ (multimap::multimap(const _Compare&, const _Allocator&)): Likewise.
+ * include/debug/set.h (set::set(const _Compare&, const _Allocator&)):
+ Likewise.
+ * include/debug/multiset.h
+ (multiset::multiset(const _Compare&, const _Allocator&)): Likewise.
+ * include/debug/vector (vector::vector(const allocator_type&)):
+ Likewise.
+ * include/profile/deque (deque::deque(const _Allocator&)): Likewise.
+ * include/profile/list (list::list(const _Allocator&)): Likewise.
+ * include/profile/map.h
+ (map::map(const _Compare&, const _Allocator&)): Likewise.
+ * include/profile/multimap.h
+ (multimap::multimap(const _Compare&, const _Allocator&)): Likewise.
+ * include/profile/set.h
+ (set::set(const _Compare&, const _Allocator&)): Likewise.
+ * include/profile/multiset.h
+ (multiset::multiset(const _Compare&, const _Allocator&)): Likewise.
+ * include/profile/vector (vector::vector(const _Allocator&)):
+ Likewise.
+ * testsuite/23_containers/deque/58764.cc: New.
+ * testsuite/23_containers/list/58764.cc: New.
+ * testsuite/23_containers/map/58764.cc: New.
+ * testsuite/23_containers/multimap/58764.cc: New.
+ * testsuite/23_containers/set/58764.cc: New.
+ * testsuite/23_containers/multiset/58764.cc: New.
+ * testsuite/23_containers/vector/58764.cc: New.
+ * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
Adjust dg-error line number.
- * testsuite/23_containers/vector/requirements/dr438/
+ * testsuite/23_containers/deque/requirements/dr438/
constructor_1_neg.cc: Likewise.
- * testsuite/23_containers/vector/requirements/dr438/
+ * testsuite/23_containers/deque/requirements/dr438/
constructor_2_neg.cc: Likewise.
- * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
- Likewise.
-
-2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
-
- * scripts/extract_symvers.in: Ignore <localentry: > fields
- in readelf --symbols output.
-
-2013-11-14 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * include/bits/alloc_traits.h (__allow_copy_cons): Remove.
- (__check_copy_constructible): Likewise.
- * include/bits/unordered_map.h (unordered_map, unordered_multimap):
- Do not derive from __check_copy_constructible.
- * include/bits/unordered_set.h (unordered_set, unordered_multiset):
- Likewise.
- * testsuite/23_containers/unordered_map/55043.cc: It is no longer
- necessary for is_copy_constructible to be correct to use nested
- unordered containers.
- * testsuite/23_containers/unordered_multimap/55043.cc: Likewise.
- * testsuite/23_containers/unordered_set/55043.cc: Likewise.
- * testsuite/23_containers/unordered_multiset/55043.cc: Likewise.
-
-2013-11-13 Marc Glisse <marc.glisse@inria.fr>
-
- PR libstdc++/59087
- * include/ext/pod_char_traits.h: Uglify V, I and S.
-
-2013-11-11 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- PR libstdc++/54562
- * include/std/mutex (__timed_mutex_impl::__clock_t): Use
- high_resolution_clock for absolute timeouts, because
- pthread_mutex_timedlock uses CLOCK_REALTIME not CLOCK_MONOTONIC.
- (__timed_mutex_impl::_M_try_lock_for): Use steady_clock for relative
- timeouts as per [thread.req.timing].
- (__timed_mutex_impl::_M_try_lock_until<Clock,Duration>): Convert to
- __clock_t time point instead of using _M_try_lock_for.
-
-2013-11-09 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- PR libstdc++/58982
- * include/bits/stl_algobase.h (__copy_move::__copy_m): Use assertion
- to prevent using memmove() on non-assignable types.
- (__copy_move_backward::__copy_move_b): Likewise.
- * include/bits/stl_uninitialized.h (uninitialized_copy
- uninitialized_copy_n, uninitialized_fill, uninitialized_fill_n,
- __uninitialized_default, __uninitialized_default_n): Check for
- assignable as well as trivial.
- * testsuite/20_util/specialized_algorithms/uninitialized_copy/
- 58982.cc: New.
- * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/
- 58982.cc: New.
- * testsuite/20_util/specialized_algorithms/uninitialized_fill/
- 58982.cc: New.
- * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/
- 58982.cc: New.
- * testsuite/25_algorithms/copy/58982.cc: New.
- * testsuite/25_algorithms/copy_n/58982.cc: New.
-
-2013-11-08 François Dumont <fdumont@gcc.gnu.org>
-
- * include/debug/safe_iterator.h (_BeforeBeginHelper<>::_S_Is):
- Take only a const safe iterator reference.
- (_BeforeBeginHelper<>::_S_Is_beginnest): Likewise.
- (__get_distance): Take only one type of iterator.
- (_Safe_iterator<>::_M_valid_range<>): Not template anymore.
- (_Safe_iterator<>::_M_get_sequence()): Return pointer to const
- sequence from a const_iterator and a pointer to sequence from an
- iterator.
- * include/debug/safe_iterator.tcc: Adapt.
- * include/debug/safe_local_iterator.h
- (_Safe_local_iterator<>::_M_valid_range<>): Not template anymore.
- (_Safe_local_iterator<>::_M_get_sequence()): Return pointer to
- const sequence from a const_iterator and a pointer to sequence
- from an iterator.
- * include/debug/safe_local_iterator.tcc: Adapt.
- * include/debug/forward_list
- (_BeforeBeginHelper<std::__debug::forward_list<>>): Adapt.
-
-2013-11-08 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * include/bits/regex_automaton.h (__detail::_State): Split
- non-dependent parts into new _State_base.
- (__detail::_NFA): Likewise for _NFA_base. Use std::move() to avoid
- copies when inserting _MatcherT and _StateT objects.
- * include/bits/regex_automaton.tcc: Move member definitions to base
- class. Qualify dependent names.
- * include/bits/regex_compiler.h (__detail::_Compiler::_M_get_nfa): Make
- non-const and use std::move to avoid copying.
- * include/bits/regex_compiler.tcc: Likewise.
- * include/bits/regex_executor.h (__detail::_Executor::_M_is_word): Use
- array, so past-the-end iterator is valid.
-
- * include/bits/regex_automaton.h (__detail::_State, __detail::_NFA,
- __detail::_StateSeq): Remove redundant _CharT template parameters.
- * include/bits/regex_automaton.tcc: Likewise.
- * include/bits/regex_compiler.h (__detail::_Compiler): Likewise.
- (__compile_nfa): Add object generator for _Compiler.
- * include/bits/regex_compiler.tcc: Remove _CharT template parameters.
- * include/bits/regex_executor.h: Likewise.
- * include/bits/regex_executor.tcc: Likewise.
- * include/bits/regex.h (basic_regex): Assert char_type matches. Use
- __compile_nfa object generator. Remove _CharT template parameter.
-
- * include/bits/regex_compiler.h (__detail::_AnyMatcher,
- __detail::_CharMatcher, __detail::_BracketMatcher): Remove redundant
- _CharT template parameters.
- * include/bits/regex_compiler.tcc: Likewise.
-
- * include/bits/regex_compiler.h (__detail::__compile_nfa): Overload
- so that std::basic_string<C> and std::vector<C> iterators dispatch to
- the const C* compiler.
-
- * include/bits/regex_compiler.h (__detail::__has_contiguous_iter):
- vector<bool> storage is not contiguous.
-
-2013-11-06 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * include/bits/regex_automaton.h (_S_opcode_word_boundry): Rename to
- _S_opcode_word_boundary.
- * include/bits/regex_automaton.tcc: Likewise.
- * include/bits/regex_executor.h (__detail::_Executor::_M_word_boundry):
- Rename to _M_word_boundary.
- * include/bits/regex_executor.tcc: Likewise.
-
-2013-11-05 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- N3655 C++1y TransformationTraits Redux
- * include/std/type_traits (remove_const_t, remove_volatile_t,
- remove_cv_t, add_const_t, add_volatile_t, add_cv_t, remove_reference_t,
- add_lvalue_reference_t, add_rvalue_reference_t, make_signed_t,
- make_unsigned_t, remove_extent_t, remove_all_extents_t,
- remove_pointer_t, add_pointer_t, aligned_storage_t, decay_t,
- enable_if_t, conditional_t, common_type_t, underlying_type_t,
- result_of_t): Define.
- * doc/xml/manual/status_cxx2014.xml: Update.
- * testsuite/20_util/add_lvalue_reference/requirements/typedefs-3.cc:
- New.
- * testsuite/20_util/add_rvalue_reference/requirements/typedefs-3.cc:
- New.
- * testsuite/20_util/common_type/requirements/typedefs-3.cc: New.
- * testsuite/20_util/conditional/requirements/typedefs-2.cc: New.
- * testsuite/20_util/decay/requirements/typedefs-2.cc: New.
- * testsuite/20_util/enable_if/requirements/typedefs-2.cc: New.
- * testsuite/20_util/make_signed/requirements/typedefs-3.cc: New.
- * testsuite/20_util/make_unsigned/requirements/typedefs-3.cc: New.
- * testsuite/20_util/remove_reference/requirements/typedefs.cc: New.
- * testsuite/20_util/result_of/requirements/typedefs.cc: New.
- * testsuite/20_util/underlying_type/requirements/typedefs-3.cc: New.
- * testsuite/20_util/common_type/requirements/typedefs-2.cc: Change to
- compile-only test.
- * testsuite/20_util/decay/requirements/typedefs.cc: Likewise.
- * testsuite/20_util/make_signed/requirements/typedefs-1.cc: Likewise.
- * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
- line number.
- * testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
- Likewise.
- * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
- Likewise.
-
-2013-11-05 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * doc/xml/manual/status_cxx2011.xml: Document aligned_union as
- missing.
-
-2013-11-05 Jonathan Wakely <jwakely.gcc@gmail.com>
- Paolo Carlini <paolo.carlini@oracle.com>
-
- * include/experimental/optional: Use __and_<> and __not_<> in
- conditions. Style fixes.
- (__constexpr_addressof, swap): Make inline.
- * testsuite/experimental/optional/cons/copy.cc: Adjust constants for
- 32-bit targets.
- * testsuite/experimental/optional/cons/move.cc: Likewise.
- * testsuite/experimental/optional/cons/value.cc: Likewise.
- * testsuite/experimental/optional/constexpr/cons/value.cc: Likewise.
-
-2013-11-01 Michael Brune <lucdanton@free.fr>
-
- * include/bits/enable_special_members.h: New.
- * include/experimental/optional: New.
- * include/Makefile.am: Handle include/experimental.
- * include/Makefile.in: Regenerate.
- * testsuite/libstdc++-dg/conformance.exp: Run tests from
- testsuite/experimental sub-directory.
- * testsuite/experimental/optional/assignment/1.cc: New.
- * testsuite/experimental/optional/assignment/2.cc: New.
- * testsuite/experimental/optional/assignment/3.cc: New.
- * testsuite/experimental/optional/assignment/4.cc: New.
- * testsuite/experimental/optional/assignment/5.cc: New.
- * testsuite/experimental/optional/assignment/6.cc: New.
- * testsuite/experimental/optional/cons/copy.cc: New.
- * testsuite/experimental/optional/cons/default.cc: New.
- * testsuite/experimental/optional/cons/move.cc: New.
- * testsuite/experimental/optional/cons/value.cc: New.
- * testsuite/experimental/optional/constexpr/cons/default.cc: New.
- * testsuite/experimental/optional/constexpr/cons/value.cc: New.
- * testsuite/experimental/optional/constexpr/in_place.cc: New.
- * testsuite/experimental/optional/constexpr/make_optional.cc: New.
- * testsuite/experimental/optional/constexpr/nullopt.cc: New.
- * testsuite/experimental/optional/constexpr/observers/1.cc: New.
- * testsuite/experimental/optional/constexpr/observers/2.cc: New.
- * testsuite/experimental/optional/constexpr/observers/3.cc: New.
- * testsuite/experimental/optional/constexpr/observers/4.cc: New.
- * testsuite/experimental/optional/constexpr/observers/5.cc: New.
- * testsuite/experimental/optional/constexpr/relops/1.cc: New.
- * testsuite/experimental/optional/constexpr/relops/2.cc: New.
- * testsuite/experimental/optional/constexpr/relops/3.cc: New.
- * testsuite/experimental/optional/constexpr/relops/4.cc: New.
- * testsuite/experimental/optional/constexpr/relops/5.cc: New.
- * testsuite/experimental/optional/constexpr/relops/6.cc: New.
- * testsuite/experimental/optional/in_place.cc: New.
- * testsuite/experimental/optional/make_optional.cc: New.
- * testsuite/experimental/optional/nullopt.cc: New.
- * testsuite/experimental/optional/observers/1.cc: New.
- * testsuite/experimental/optional/observers/2.cc: New.
- * testsuite/experimental/optional/observers/3.cc: New.
- * testsuite/experimental/optional/observers/4.cc: New.
- * testsuite/experimental/optional/observers/5.cc: New.
- * testsuite/experimental/optional/relops/1.cc: New.
- * testsuite/experimental/optional/relops/2.cc: New.
- * testsuite/experimental/optional/relops/3.cc: New.
- * testsuite/experimental/optional/relops/4.cc: New.
- * testsuite/experimental/optional/relops/5.cc: New.
- * testsuite/experimental/optional/relops/6.cc: New.
- * testsuite/experimental/optional/requirements.cc: New.
- * testsuite/experimental/optional/swap/1.cc: New.
-
-2013-11-01 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * include/bits/stl_function.h (logical_not<void>): Add noexcept.
-
-2013-11-01 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR libstdc++/58952
- * include/c_global/cstdio: Undef getchar.
-
-2013-11-01 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- N3421 C++1y Transparent functors
- * include/bits/stl_function.h (plus<void>, minus<void>,
- multiplies<void>, divides<void>, modulus<void>, negate<void>,
- equal_to<void>, not_equal_to<void>, greater<void>, less<void>,
- greater_equal<void>, less_equal<void>, logical_and<void>,
- logical_or<void>, logical_not<void>, bit_and<void>, bit_or<void>,
- bit_xor<void>, bit_not<void>): Define.
- * doc/xml/manual/status_cxx2014.xml: Update.
- * testsuite/20_util/function_objects/comparisons_void.cc: New.
-
-2013-10-31 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * include/std/tuple (_Index_tuple, _Build_index_tuple): Move to
- <utility>.
- * include/std/utility (integer_sequence, make_integer_sequence,
- index_sequence, make_index_sequence, index_sequence_for): Define.
- * doc/xml/manual/status_cxx2014.xml: Update.
- * testsuite/20_util/integer_sequence/intseq.cc: New.
- * testsuite/20_util/integer_sequence/requirements/typedefs.cc: New.
-
-2013-10-31 Steve Ellcey <sellcey@mips.com>
-
- * configure.ac: Add header checks for fenv.h and complex.h.
- * configure: Regenerate.
-
-2013-10-31 Edward Smith-Rowland <3dw4rd@verizon.net>
-
- Implement C++14 digit separators.
- * include/include/bits/parse_numbers.h: Change struct _Digit<_Base, '`'>
- to struct _Digit<_Base, '\''>.
-
-2013-10-31 Paolo Carlini <paolo.carlini@oracle.com>
-
- * testsuite/20_util/default_delete/48631_neg.cc: Tweak dg-prune.
-
-2013-10-30 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc: Fix
- and enable VERIFY tests.
-
-2013-10-30 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * include/bits/shared_ptr (__shared_ptr): Assert non-void pointer.
- * include/bits/shared_ptr (default_delete): Likewise.
- * testsuite/20_util/shared_ptr/cons/58839.cc: Do not use
- default_delete<void>.
- * testsuite/20_util/shared_ptr/cons/void_neg.cc: New.
- * testsuite/20_util/default_delete/void_neg.cc: New.
- * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust line numbers.
- * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Likewise.
-
-2013-10-29 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- PR libstdc++/58839
- * include/bits/shared_ptr_base.h
- (__shared_ptr<T>::__shared_ptr(unique_ptr<U,D>&&)): Only use addressof
- when unique_ptr<U,D>::pointer is not a built-in pointer type.
- * testsuite/20_util/shared_ptr/cons/58839.cc: New.
- * testsuite/20_util/enable_shared_from_this/members/assign.cc: New.
- * testsuite/20_util/enable_shared_from_this/members/unique_ptr.cc: New.
-
-2013-10-29 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * include/bits/hashtable.cc (__access_protected_ctor): Define and use
- new type instead of _Hashtable_ebo_helper.
- * testsuite/23_containers/unordered_set/
- not_default_constructible_hash_neg.cc: Adjust line number.
-
-2013-10-28 Tim Shen <timshen91@gmail.com>
-
- * regex_executor.tcc: Add comments.
-
-2013-10-26 Tim Shen <timshen91@gmail.com>
-
- * include/bits/regex.h: Remove unnecessary friends.
- * include/bits/regex.tcc (__regex_algo_impl<>): Move __get_executor
- to here.
- * include/bits/regex_executor.h: Remove _DFSExecutor and _BFSExecutor;
- they are merged into _Executor. Eliminate quantifier tracking part, so
- it's faster.
- * include/bits/regex_executor.tcc: Implement _Executor.
- * testsuite/28_regex/algorithms/regex_match/ecma/char/ungreedy.cc: New.
- * testsuite/28_regex/algorithms/regex_search/ecma/greedy.cc: Adjust
- duplicate testcases.
- * testsuite/performance/28_regex/split.h: New.
- * testsuite/performance/28_regex/split_bfs.cc: New.
- * testsuite/util/testsuite_regex.h: Adjust behavior of two-executors
- agreement judger: do not compare match_results when executor return
- false.
-
-2013-10-25 François Dumont <fdumont@gcc.gnu.org>
-
- * include/debug/formatter.h (__check_singular): Add const on
- iterator reference.
- * include/debug/functions.h (__check_singular): Likewise.
- (__check_singular(const _Safe_iterator<_Ite, _Seq>&)): Delete.
- (__check_dereferenceable(const _Ite&)): Add const on iterator
- reference.
- (__check_dereferenceable(const _Safe_local_iterator<>&)): New.
- * include/debug/safe_iterator.h (__check_singular_aux): Review
- comment.
- * testsuite/23_containers/vector/debug/debug_functions.cc: New.
- * testsuite/23_containers/unordered_set/debug/debug_functions.cc:
- New.
-
-2013-10-23 Chris Jefferson <chris@bubblescope.net>
- Paolo Carlini <paolo.carlini@oracle.com>
-
- * testsuite/util/testsuite_containergen.h: New.
- * testsuite/util/testsuite_iterators.h (test_container<>::val): Add.
- * testsuite/25_algorithms/nth_element/random_test.cc: New, use the
- above.
- * testsuite/25_algorithms/partial_sort/random_test.cc: Likewise.
- * testsuite/25_algorithms/partial_sort_copy/random_test.cc: Likewise.
- * testsuite/25_algorithms/sort/random_test.cc: Likewise.
-
-2013-10-23 Jason Merrill <jason@redhat.com>
-
- * include/bits/hashtable.h (_Hashtable): Force EBO for _Hash_code_base.
-
-2013-10-23 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR libstdc++/58850
- * include/std/chrono (minutes, hours): Change typedefs to uniformly
- use int64_t.
- * testsuite/20_util/duration/arithmetic/58850.cc: New.
-
-2013-10-23 Paolo Carlini <paolo.carlini@oracle.com>
-
- * testsuite/decimal/pr58815.cc: Fix thinko.
-
-2013-10-23 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR libstdc++/58815
- * include/decimal/decimal (decimal32::operator long long(),
- decimal64::operator long long(), decimal128::operator long long()):
- Add in c++11 mode per n3407.
- * testsuite/decimal/pr58815.cc: New.
-
-2013-10-22 Edward Smith-Rowland <3dw4rd@verizon.net>
-
- * include/bits/basic_string.h (operator""s): Remove space between quotes
- and literal identifier.
- * include/std/chrono (operator""h, operator""min, operator""s,
- operator""ms, operator""us, operator""ns): Ditto.
-
-2013-10-22 Ed Smith-Rowland <3dw4rd@verizon.net>
-
- Implement N3779 - User-defined Literals for std::complex,
- part 2 of UDL for Standard Library Types
- * include/std/complex: Add complex literal operators.
- * testsuite/26_numerics/complex/literals/types.cc: New.
- * testsuite/26_numerics/complex/literals/values.cc: New.
-
-2013-10-21 Edward Smith-Rowland <3dw4rd@verizon.net>
-
- PR libstdc++/58804
- PR libstdc++/58729
- * include/tr2/dynamic_bitset
- (__dynamic_bitset_base<_WordT, _Alloc>::_M_are_all_aux,
- __dynamic_bitset_base<_WordT, _Alloc>::_M_do_count):
- Use __builtin_popcountll() instead of __builtin_popcountl().
- * include/tr2/dynamic_bitset.tcc
- (__dynamic_bitset_base<_WordT, _Alloc>::_M_do_find_first,
- __dynamic_bitset_base<_WordT, _Alloc>::_M_do_find_next):
- Use __builtin_ctzll() instead of __builtin_ctzl().
-
-2013-10-20 Tim Shen <timshen91@gmail.com>
-
- * include/bits/regex.h: Remove virtual class _Automaton.
- * include/bits/regex_automaton.h: Likewise.
- * include/bits/regex.tcc: Adjust comment for policy changing.
- * include/bits/regex_executor.h: Update comments of complexity.
- * include/bits/regex_executor.tcc: Adjust executor choosing
- policy. Now DFS executor is the default one.
- * testsuite/util/testsuite_regex.h (regex_match_debug,
- regex_search_debug): Adjust for policy changing.
-
-2013-10-20 Chris Jefferson <chris@bubblescope.net>
- Paolo Carlini <paolo.carlini@oracle.com>
-
- PR libstdc++/58800
- * include/bits/stl_algo.h (__unguarded_partition_pivot): Change
- __last - 2 to __last - 1.
- * testsuite/25_algorithms/nth_element/58800.cc: New
-
-2013-10-18 Edward Smith-Rowland <3dw4rd@verizon.net>
-
- PR libstdc++/58729
- * include/tr2/dynamic_bitset (_M_resize, resize): Use input value
- to set bits; (_M_do_left_shift, _M_do_right_shift, _M_do_to_ulong,
- _M_do_to_ullong, _M_do_find_first, _M_do_find_next, _M_copy_from_ptr,
- operator>>): Move long methods outline to...
- * include/tr2/dynamic_bitset.tcc: New.
- * include/Makefile.am: Add dynamic_bitset.tcc.
- * include/Makefile.in: Add dynamic_bitset.tcc.
- * testsuite/tr2/dynamic_bitset/pr58729.cc: New.
-
-2013-10-18 Tim Shen <timshen91@gmail.com>
-
- * include/bits/regex_scanner.tcc: (_Scanner<>::_M_scan_normal,
- _Scanner<>::_M_eat_escape_ecma, _Scanner<>::_M_eat_escape_posix,
- _Scanner<>::_M_eat_escape_awk): Narrow character before finding in maps.
- * testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/cjk_match.cc:
- New.
-
-2013-10-17 Tim Shen <timshen91@gmail.com>
-
- * include/bits/regex.h (regex_token_iterator<>::regex_token_iterator):
- Fix initialization orders in initialization list and add explicit braces
- for potentially ambiguous(actually not) `else` branch to eliminate
- warnings.
- * include/bits/regex_automaton.h (_NFA<>::_NFA): Likewise.
- * include/bits/regex_compiler.h (_CharMatcher<>::_CharMatcher,
- _BracketMatcher<>::_BracketMatcher): Likewise.
- * include/bits/regex_compiler.tcc (_Compiler<>::_Compiler,
- _Compiler<>::_M_atom): Likewise.
- * include/bits/regex_executor.h (_Executor<>::_Executor): Likewise.
- * include/bits/regex_executor.tcc (_DFSExecutor<>::_M_dfs,
- _Executor<>::_M_word_boundry): Likewise.
- * include/bits/regex_scanner.tcc (_Scanner<>::_Scanner,
- _Scanner<>::_M_eat_class): Likewise.
- * include/bits/regex.tcc (__regex_algo_impl<>,
- regex_iterator<>::operator++): Likewise, and remove unused typedef.
-
-2013-10-16 Tim Shen <timshen91@gmail.com>
-
- * include/bits/regex.h (regex_token_iterator<>::regex_token_iterator):
- Add initialization for _M_has_m1.
- * include/bits/regex.tcc (regex_token_iterator<>::operator=): Add return
- statment.
-
-2013-10-15 Diego Novillo <dnovillo@google.com>
-
- * testsuite/20_util/exchange/1.cc: Add missing function
- bodies.
-
-2013-10-15 Tim Shen <timshen91@gmail.com>
-
- PR libstdc++/58737
- * include/bits/regex_automaton.h (_Automaton<>::~_Automaton): Fix memory
- leak by adding it.
- * include/bits/regex_executor.h (_Executor<>::~_Executor): Likewise.
-
-2013-10-11 H.J. Lu <hongjiu.lu@intel.com>
-
- * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Update.
-
-2013-10-10 Marcus Shawcroft <marcus.shawcroft@arm.com>
-
- * testsuite/29_atomics/atomic/cons/49445.cc
- (dg-require-atomic-builtins): Add.
-
-2013-10-09 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * testsuite/20_util/shared_ptr/cons/58659.cc: Use VERIFY instead of
- aborting.
-
-2013-10-09 Marcus Shawcroft <marcus.shawcroft@arm.com>
-
- * testsuite/20_util/shared_ptr/cons/58659.cc: Use __builtin_abort().
-
-2013-10-08 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * testsuite/*: Remove stray semi-colons after function definitions.
-
-2013-10-08 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- PR libstdc++/58659
- * include/bits/shared_ptr_base.h (__shared_count::__shared_count(P,D)):
- Delegate to constructor taking allocator.
- (__shared_count::_S_create_from_up): Inline into ...
- (__shared_count::__shared_count(unique_ptr<Y,D>&&): Here. Use
- std::conditional instead of constrained overloads. Allocate memory
- using the allocator type that will be used for deallocation.
- * testsuite/20_util/shared_ptr/cons/58659.cc: New.
- * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust.
-
-2013-10-08 Tim Shen <timshen91@gmail.com>
-
- * include/bits/regex_executor.h: Add _TodoList class.
- * include/bits/regex_executor.tcc (_BFSExecutor<>::_M_main): Add
- _M_match_stack and _M_stack to make everything faster. Break if
- _M_stack is empty, to reduce unnecessary idling.
- * testsuite/performance/28_regex/split.cc: New.
-
-2013-10-06 Tim Shen <timshen91@gmail.com>
-
- * include/bits/regex.h: (regex_token_iterator<>::regex_token_iterator):
- Fix compile error.
- * include/bits/regex.tcc: (regex_replace<>): Remove default parameter.
-
-2013-10-06 Tim Shen <timshen91@gmail.com>
-
- * include/bits/regex.h (__regex_algo_impl<>, regex_match<>,
- regex_search<>): New abstract function for regex_match and regex_search.
- * include/bits/regex.tcc (__regex_algo_impl<>): Implement.
- * include/bits/regex_executor.h
- (_Executor<>::_M_lookahead,
- _DFSExecutor<>::_M_clone,
- _BFSExecutor<>::_M_clone): Let _M_clone to choose which executor to
- use.
- * include/bits/regex_executor.tcc (__get_executor<>): Update the
- definition to support __policy.
- * testsuite/28_regex/algorithms/regex_match/awk/cstring_01.cc: Use
- *_debug.
- * testsuite/28_regex/algorithms/regex_match/basic/empty_range.cc: Same.
- * testsuite/28_regex/algorithms/regex_match/basic/string_01.cc: Same.
- * testsuite/28_regex/algorithms/regex_match/basic/string_range_00_03.cc:
- Same.
- * testsuite/28_regex/algorithms/regex_match/basic/string_range_01_03.cc:
- Same.
- * testsuite/28_regex/algorithms/regex_match/basic/string_range_02_03.cc:
- Same.
- * testsuite/28_regex/algorithms/regex_match/ecma/char/53622.cc: Same.
- * testsuite/28_regex/algorithms/regex_match/ecma/char/57173.cc: Same.
- * testsuite/28_regex/algorithms/regex_match/ecma/char/58576.cc: Same.
- * testsuite/28_regex/algorithms/regex_match/ecma/char/anymatcher.cc:
- Same.
- * testsuite/28_regex/algorithms/regex_match/ecma/char/backref.cc: Same.
- * testsuite/28_regex/algorithms/regex_match/ecma/char/empty_range.cc:
- Same.
- * testsuite/28_regex/algorithms/regex_match/ecma/char/emptygroup.cc:
- Same.
- * testsuite/28_regex/algorithms/regex_match/ecma/char/hex.cc: Same.
- * testsuite/28_regex/algorithms/regex_match/ecma/char/quoted_char.cc:
- Same.
- * testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/anymatcher.cc:
- Same.
- * testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/hex.cc: Same.
- * testsuite/28_regex/algorithms/regex_match/extended/
- string_bracket_01.cc: Same.
- * testsuite/28_regex/algorithms/regex_match/extended/cstring_plus.cc:
- Same.
- * testsuite/28_regex/algorithms/regex_match/extended/
- string_questionmark.cc: Same.
- * testsuite/28_regex/algorithms/regex_match/extended/cstring_range.cc:
- Same.
- * testsuite/28_regex/algorithms/regex_match/extended/string_any.cc:
- Same.
- * testsuite/28_regex/algorithms/regex_match/extended/
- string_dispatch_01.cc: Same.
- * testsuite/28_regex/algorithms/regex_match/extended/
- string_range_00_03.cc: Same.
- * testsuite/28_regex/algorithms/regex_match/extended/
- string_range_01_03.cc: Same.
- * testsuite/28_regex/algorithms/regex_match/extended/
- string_range_02_03.cc: Same.
- * testsuite/28_regex/algorithms/regex_match/extended/wstring_locale.cc:
- Same.
- * testsuite/28_regex/algorithms/regex_search/basic/string_01.cc: Same.
- * testsuite/28_regex/algorithms/regex_search/ecma/assertion.cc: Same.
- * testsuite/28_regex/algorithms/regex_search/ecma/flags.cc: Same.
- * testsuite/28_regex/algorithms/regex_search/ecma/greedy.cc: Same.
- * testsuite/28_regex/algorithms/regex_search/ecma/string_01.cc: Same.
- * testsuite/28_regex/match_results/format.cc: Same.
- * testsuite/util/testsuite_regex.h
- (regex_match_debug<>, regex_search_debug<>): Implement.
-
-2013-10-06 Oleg Endo <olegendo@gcc.gnu.org>
- Paolo Carlini <paolo.carlini@oracle.com>
-
- PR libstdc++/58625
- * include/c_global/cmath (signbit): Use __builtin_signbitf and
- __builtin_signbitl.
-
-2013-10-03 Tim Shen <timshen91@gmail.com>
-
- * include/bits/regex_executor.tcc (_DFSExecutor<>::_M_dfs): Fix wrong
- backup variable initialization.
-
-2013-10-03 John Woolverton <jdwoolverton@gmail.com>
-
- PR libstdc++/58604
- * include/std/vector: Fix garbled line in HP Copyright.
-
-2013-10-03 Marc Glisse <marc.glisse@inria.fr>
-
- * libsupc++/del_op.cc (operator delete): Don't test for 0 before free.
- * libsupc++/del_opnt.cc (free): Only declare if freestanding.
- (operator delete): Qualify free with std::.
-
-2013-10-02 Jonathan Wakely <jwakely.gcc@gmail.com>
- Daniel Krugler <daniel.kruegler@gmail.com>
-
- PR libstdc++/58569
- * include/std/functional (function::_CheckResult): Move to namespace
- scope and rename to __check_func_return_type.
- * testsuite/20_util/function/58569.cc: New.
-
-2013-10-02 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- PR libstdc++/58594
- * include/bits/shared_ptr_base.h
- (_Sp_counted_ptr_inplace::_M_get_deleter()): Cast away cv-quals.
- * testsuite/20_util/shared_ptr/creation/58594.cc: New.
-
-2013-10-02 Tim Shen <timshen91@gmail.com>
-
- * include/bits/regex_compiler.h
- (_BracketMatcher<>::_M_add_equivalence_class): Implement it correctly.
- * include/bits/regex_compiler.tcc (_BracketMatcher<>::operator()):
- Add _M_equiv_set support.
- * testsuite/28_regex/algorithms/regex_match/extended/
- cstring_bracket_01.cc: Add new "[[=a=]]" testcase.
-
-2013-10-01 Tim Shen <timshen91@gmail.com>
-
- * doc/xml/manual/status_cxx2011.xml: Change "is not implemented" to
- "is not correctly implemented".
-
-2013-10-01 Tim Shen <timshen91@gmail.com>
-
- * doc/xml/manual/status_cxx2011.xml: Update regex status.
- * include/bits/regex.h (match_results<>::begin,
- match_results<>::cbegin, match_results<>::end, match_results<>::cend):
- [28.10.3.13], [28.10.3.14] Always iterate the range [0, size()-2).
-
-2013-10-01 François Dumont <fdumont@gcc.gnu.org>
-
- * include/parallel/algobase.h (mismatch, equal): Provide parallel
- version for N3671 overloads.
-
-2013-10-01 Paul Pluzhnikov <ppluzhnikov@google.com>
-
- * src/c++11/snprintf_lite.cc: Add missing
- _GLIBCXX_{BEGIN,END}_NAMESPACE_VERSION
-
-2013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
-
- * acinclude.m4 (GLIBCXX_ENABLE_SJLJ_EXCEPTIONS): Also check for
- _Unwind_SjLj_Register when deciding if to set enable_sjlj_exceptions.
- * configure: Regenerate.
-
-2013-10-01 Tim Shen <timshen91@gmail.com>
-
- PR libstdc++/58576
- * include/bits/regex_automaton.tcc (_NFA<>::_M_eliminate_dummy)
- (_StateSeq<>::_M_clone): Add _S_opcode_subexpr_lookahead branch.
- * testsuite/28_regex/algorithms/regex_match/ecma/char/58576.cc: New.
-
-2013-09-30 Paolo Carlini <paolo.carlini@oracle.com>
-
- * include/parallel/algo.h (__find_switch): Use __binder2nd.
-
-2013-09-30 Chris Jefferson <chris@bubblescope.net>
-
- PR libstdc++/58437
- * include/bits/stl_algo.h (__move_median_first): Rename to
- __move_median_to_first, change to take an addition argument.
- (__unguarded_partition_pivot): Adjust.
- * testsuite/performance/25_algorithms/sort.cc: New.
- * testsuite/performance/25_algorithms/sort_heap.cc: Likewise.
- * testsuite/performance/25_algorithms/stable_sort.cc: Likewise.
-
-2013-09-28 François Dumont <fdumont@gcc.gnu.org>
-
- * include/bits/stl_algo.h (remove_copy, remove_copy_if): Declare
- inline.
- (rotate_copy, stable_partition, partial_sort_copy): Likewise.
- (lower_bound, upper_bound, equal_range, inplace_merge): Likewise.
- (includes, next_permutation, prev_permutation): Likewise.
- (replace_copy, replace_copy_if, is_sorted_until): Likewise.
- (minmax_element, is_permutation, adjacent_find): Likewise.
- (count, count_if, search, search_n, merge): Likewise.
- (set_intersection, set_difference): Likewise.
- (set_symmetric_difference, min_element, max_element): Likewise.
- * include/bits/stl_algobase.h (lower_bound): Likewise.
- (lexicographical_compare, mismatch): Likewise.
-
-2013-09-28 Tim Shen <timshen91@gmail.com>
-
- * include/bits/regex_scanner.tcc (_Scanner<>::_M_eat_escape_posix):
- Let ordinary char escaping in POSIX be valid.
- * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Test this
- change.
-
-2013-09-27 François Dumont <fdumont@gcc.gnu.org>
-
- * include/bits/predefined_ops.h: New.
- * include/bits/stl_heap.h: Include <bits/predefined_ops.h>.
- (__is_heap_until, __push_heap, __adjust_heap, __pop_heap): Remove
- algo duplication.
- (__is_heap): Adapt.
- (__make_heap): New.
- (make_heap): Adapt to use latter.
- (__sort_heap): New.
- (sort_heap): Adapt to use latter.
- * include/bits/algobase.h: Include <bits/predefined_ops.h>.
- (__lexicographical_compare_impl): New.
- (__lexicographical_compare<false>::__lc): Adapt to use latter.
- (lexicographical_compare): Likewise.
- (__lower_bound): New.
- (lower_bound): Adapt to use latter.
- (equal): Use _GLIBCXX_STD_A::equal in N3671 overloads.
- (__mismatch): New.
- (mismatch): Use latter.
- * include/bits/algo.h: Include <bits/predefined_ops.h>. Remove
- <functional> include.
- (__move_median_first, __find, __find_if, __find_if_not): Remove
- algo duplication.
- (__find_end): Likewise.
- (__search_n): Rename into ...
- (__search_n_aux): ... this.
- (__search_n): Renew, use latter.
- (search_n): Use latter.
- (__search): New.
- (search): Use latter.
- (__find_end): Likewise.
- (__remove_copy_if): New.
- (remove_copy): Use latter.
- (__adjacent_find): New.
- (adjacent_find): Use latter.
- (__unique): New.
- (unique): Use latter.
- (__unique_copy): Remove algo duplication.
- (__stable_partition): New.
- (stable_partition): Use latter.
- (__heap_select): Remove algo duplication, use __make_heap.
- (__partial_sort): New, use latter.
- (partial_sort): Use latter.
- (__partial_sort_copy): New.
- (partial_sort_copy): Use latter.
- (__unguarded_linear_insert, __insertion_sort): Remove algo
- duplication.
- (__unguarded_insertion_sort, __final_insertion_sort): Likewise.
- (__unguarded_partition, __unguarded_partition_pivot): Likewise.
- (__partial_sort): New.
- (partial_sort): Use latter.
- (__sort): New.
- (sort): Use latter.
- (lower_bound): Use __lower_bound.
- (__upper_bound): New.
- (upper_bound): Use latter.
- (__equal_range): New.
- (equal_range): Use latter.
- (__move_merge_adaptive, __move_merge_adaptive_backward): Remove
- algo duplication.
- (__merge_adaptive, __merge_without_buffer): Likewise.
- (__inplace_merge): New.
- (inplace_merge): Use latter.
- (__move_merge, __merge_sort_loop, __chunk_insertion_sort): Remove
- algo duplication.
- (__merge_sort_with_buffer, __stable_sort_adaptive): Likewise.
- (__inplace_stable_sort): Likewise.
- (__include): New.
- (includes): Use latter.
- (__next_permutation): New.
- (next_permutation): Use latter.
- (__prev_permutation): New.
- (prev_permutation): Use latter.
- (__replace_copy_if): New.
- (replace_copy): Use latter.
- (__is_sorted_until): New.
- (is_sorted_unitl): Use latter.
- (__minmax_element): New.
- (minmax_element): Use latter.
- (__is_permutation): New.
- (is_permutation): Use latter.
- (__adjacent_find): New.
- (adjacent_find): Use latter.
- (__count_if): New.
- (count): Use latter.
- (count_if): Likewise.
- (__merge): New.
- (merge): Use latter.
- (__stable_sort): New.
- (stable_sort): Use latter.
- (__set_union): New.
- (set_union): Use latter.
- (__set_intersection): New.
- (set_intersection): Use latter.
- (__set_difference): New.
- (set_difference): Use latter.
- (__set_symmetric_difference): New.
- (set_symmetric_difference): Use latter.
- (__min_element): New.
- (min_element): Use latter.
- (__max_element): New.
- (max_element): Use latter.
- * include/Makefile.am: Add predefined_ops.h.
- * include/Makefile.in: Regenerate.
- * include/parallel/algobase.h (equal, mismatch): Add overloads
- from N3671.
- * testsuite/25_algorithms/is_permutation/vectorbool.cc: New.
- * testsuite/25_algorithms/adjacent_find/vectorbool.cc: Likewise.
- * testsuite/25_algorithms/find/vectorbool.cc: Likewise.
- * testsuite/25_algorithms/find_if/vectorbool.cc: Likewise.
- * testsuite/25_algorithms/find_first_of/vectorbool.cc: Likewise.
- * testsuite/25_algorithms/heap/vectorbool.cc: Likewise.
- * testsuite/25_algorithms/find_end/vectorbool.cc: Likewise.
- * testsuite/25_algorithms/find_if_not/vectorbool.cc: Likewise.
-
-2013-09-27 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- PR libstdc++/57465
- * include/std/functional
- (_Function_base::_Base_manager::_M_not_empty_function): Fix overload
- for pointers.
- * testsuite/20_util/function/cons/57465.cc: New.
-
-2013-09-26 Tim Shen <timshen91@gmail.com>
-
- * regex_error.h: Remove _S_error_last to follow the standard.
- * regex_scanner.tcc:
- (_Scanner<_FwdIter>::_M_scan_in_brace): Change error_brace to
- error_badbrace.
- (_Scanner<>::_M_eat_escape_posix): Extended doesn't support
- back-reference.
- * testsuite/28_regex/algorithms/regex_match/ecma/char/53622.cc:
- Move here from ../../extended.
- * testsuite/28_regex/algorithms/regex_match/ecma/char/57173.cc:
- Likewise.
-
-2013-09-25 Marc Glisse <marc.glisse@inria.fr>
-
- PR libstdc++/58338
- * include/bits/forward_list.h (_Fwd_list_node_base::_M_transfer_after):
- Mark as noexcept.
- (_Fwd_list_iterator) [_Fwd_list_iterator, operator*, operator->,
- operator++, operator==, operator!=, _M_next]: Likewise.
- (_Fwd_list_const_iterator) [_Fwd_list_const_iterator, operator*,
- operator->, operator++, operator==, operator!=, _M_next]: Likewise.
- (operator==(const _Fwd_list_iterator&, const _Fwd_list_const_iterator&),
- operator!=(const _Fwd_list_iterator&, const _Fwd_list_const_iterator&)):
- Likewise.
- * include/bits/hashtable_policy.h (_Hash_node_base::_Hash_node_base,
- _Hash_node::_M_next, _Node_iterator_base::_Node_iterator_base,
- _Node_iterator_base::_M_incr, operator==(const _Node_iterator_base&,
- const _Node_iterator_base&), operator!=(const _Node_iterator_base&,
- const _Node_iterator_base&)): Likewise.
- (_Node_iterator) [_Node_iterator, operator*, operator->, operator++]:
- Likewise.
- (_Node_const_iterator) [_Node_const_iterator, operator*, operator->,
- operator++]: Likewise.
- * include/debug/safe_iterator.h (_Safe_iterator) [_Safe_iterator,
- operator=, operator*, operator->, operator++, operator--, operator[],
- operator+=, operator+, operator-=, operator-, base, operator _Iterator]:
- Likewise.
- (operator==(const _Safe_iterator&, const _Safe_iterator&),
- operator!=(const _Safe_iterator&, const _Safe_iterator&),
- operator<(const _Safe_iterator&, const _Safe_iterator&),
- operator<=(const _Safe_iterator&, const _Safe_iterator&),
- operator>(const _Safe_iterator&, const _Safe_iterator&),
- operator>=(const _Safe_iterator&, const _Safe_iterator&),
- operator-(const _Safe_iterator&, const _Safe_iterator&),
- operator+(difference_type, const _Safe_iterator&)): Likewise.
- * include/profile/iterator_tracker.h (__iterator_tracker)
- [__iterator_tracker, base, operator _Iterator, operator->, operator++,
- operator--, operator=, operator*, operator[], operator+=, operator+,
- operator-=, operator-]: Likewise.
- (operator==(const __iterator_tracker&, const __iterator_tracker&),
- operator!=(const __iterator_tracker&, const __iterator_tracker&),
- operator<(const __iterator_tracker&, const __iterator_tracker&),
- operator<=(const __iterator_tracker&, const __iterator_tracker&),
- operator>(const __iterator_tracker&, const __iterator_tracker&),
- operator>=(const __iterator_tracker&, const __iterator_tracker&),
- operator-(const __iterator_tracker&, const __iterator_tracker&),
- operator+(difference_type, const __iterator_tracker&)): Likewise.
-
-2013-09-24 Marc Glisse <marc.glisse@inria.fr>
-
- PR libstdc++/58338
- PR libstdc++/56166
- * include/bits/basic_string.h (basic_string)
- [basic_string(basic_string&&)]: Make the noexcept conditional.
- [operator=(basic_string&&), assign(basic_string&&)]: Link to PR 58265.
- [begin(), end(), rbegin(), rend(), clear]: Remove noexcept.
- [pop_back]: Comment on the lack of noexcept.
- * include/debug/string (basic_string) [basic_string(const _Allocator&),
- basic_string(basic_string&&), begin(), end(), rbegin(), rend(), clear,
- operator[](size_type), pop_back]: Comment out noexcept, until vstring
- replaces basic_string.
-
-2013-09-24 Tim Shen <timshen91@gmail.com>
-
- * include/Makefile.am: Add regex.tcc.
- * include/Makefile.in: Regenerate.
- * include/bits/regex.h: Remove definitions to regex.tcc.
- * include/bits/regex.tcc: New.
- (match_results::format, regex_replace): Implement;
- * include/bits/regex_compiler.h: Move _M_flags to the top of class
- member list, because other members' initialization depend on it.
- * include/bits/regex_compiler.tcc
- (_Compiler<>::_Compiler): Adjust member initializations.
- (_Compiler<>::_M_quantifier): Fix ungreedy interval quantifier.
- * include/bits/regex_executor.h: Remove _RegexT from _*Executor classes.
- In the future, all regex classes may refactor to *Impl style.
- * include/bits/regex_executor.tcc (_Executor::_M_set_results):
- Merge identical code from _*Executor classes.
- * testsuite/28_regex/algorithms/regex_match/extended/
- string_dispatch_01.cc (fake_match<>): Adjust the hacking-style testcase
- caller for new __get_executors interface.
- * testsuite/28_regex/algorithms/regex_replace/char/basic_replace.cc:
- New.
- * testsuite/28_regex/match_results/format.cc: New.
- * testsuite/28_regex/traits/char/lookup_collatename.cc: Remove digraph
- testcase.
- * testsuite/28_regex/traits/wchar_t/lookup_collatename.cc: Likewise.
-
-2013-09-23 Paul Pluzhnikov <ppluzhnikov@google.com>
-
- * src/c++11/snprintf_lite.cc (__concat_size_t): Use
- unsigned long long conditionally.
-
-2013-09-23 Paul Pluzhnikov <ppluzhnikov@google.com>
-
- * src/c++11/snprintf_lite.cc (__concat_size_t): Use only
- std::__int_to_char<unsigned long long>()
-
-2013-09-21 Paul Pluzhnikov <ppluzhnikov@google.com>
-
- * include/bits/functexcept.h (__throw_out_of_range_fmt): New.
- * src/c++11/functexcept.cc (__throw_out_of_range_fmt): New.
- * src/c++11/snprintf_lite.cc: New.
- * src/c++11/Makefile.am: Add snprintf_lite.cc.
- * src/c++11/Makefile.in: Regenerate.
- * config/abi/pre/gnu.ver: Add _ZSt24__throw_out_of_range_fmtPKcz.
- * include/std/array (at): Use __throw_out_of_range_fmt.
- * include/debug/array (at): Likewise.
- * include/profile/array (at): Likewise.
- * include/std/bitset (_M_check_initial_position, _M_check): New.
- (bitset::bitset): Use _M_check_initial_position.
- (set, reset, flip, test): Use _M_check.
- * include/ext/vstring.h (_M_check, at): Use __throw_out_of_range_fmt.
- * include/bits/stl_vector.h (_M_range_check): Likewise.
- * include/bits/stl_bvector.h (_M_range_check): Likewise.
- * include/bits/stl_deque.h (_M_range_check): Likewise.
- * include/bits/basic_string.h (_M_check, at): Likewise.
- * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc: Adjust.
- * 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/array/tuple_interface/tuple_element_neg.cc: Likewise.
- * testsuite/23_containers/array/tuple_interface/tuple_element_debug_neg.cc:
- Likewise.
- * testsuite/23_containers/array/tuple_interface/get_neg.cc: Likewise.
- * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc: Likewise.
- * testsuite/util/exception/safety.h (generate): Use __throw_out_of_range_fmt.
-
-2013-09-20 Jakub Jelinek <jakub@redhat.com>
-
- PR testsuite/57605
- * testsuite/lib/libstdc++.exp (libstdc++_init): Prepend
- -fdiagnostics-color=never to cxxflags.
-
-2013-09-20 Marc Glisse <marc.glisse@inria.fr>
-
- PR libstdc++/58338
- * include/bits/allocator.h (__alloc_swap::_S_do_it,
- __shrink_to_fit_aux::_S_do_it): Mark as noexcept.
- * include/bits/basic_string.h (basic_string::_Rep) [_S_empty_rep,
- _M_is_leaked, _M_is_shared, _M_set_leaked, _M_set_sharable,
- _M_set_length_and_sharable, _M_dispose]: Likewise.
- (basic_string::_Alloc_hider::_Alloc_hider): Likewise.
- (basic_string) [_M_data, _M_rep, _M_ibegin, _M_iend, _M_limit,
- _M_disjunct, _M_copy, _M_move, _M_assign, _S_copy_chars, _S_compare,
- _S_empty_rep, shrink_to_fit, operator[] const, front const, back const]:
- Likewise.
- [clear]: Link to PR 56166.
- [swap]: Link to PR 58265.
- * include/bits/stl_deque.h (_Deque_iterator) [_S_buffer_size,
- _Deque_iterator, _M_const_cast, operator*, operator->, operator++,
- operator--, operator+=, operator+, operator-=, operator-, operator[],
- _M_set_node]: Mark as noexcept.
- (operator==(const _Deque_iterator&, const _Deque_iterator&),
- operator!=(const _Deque_iterator&, const _Deque_iterator&),
- operator<(const _Deque_iterator&, const _Deque_iterator&),
- operator>(const _Deque_iterator&, const _Deque_iterator&),
- operator<=(const _Deque_iterator&, const _Deque_iterator&),
- operator>=(const _Deque_iterator&, const _Deque_iterator&),
- operator-(const _Deque_iterator&, const _Deque_iterator&),
- operator+(ptrdiff_t, const _Deque_iterator&)): Likewise.
- (_Deque_base) [_Deque_base(const allocator_type&)]: Add missing call to
- _M_initialize_map.
- [~_Deque_base, _M_deallocate_node, _M_deallocate_map, _M_destroy_nodes]:
- Mark as noexcept.
- (_Deque_base::_Deque_impl) [_Deque_impl(const _Tp_alloc_type&),
- _Deque_impl(_Tp_alloc_type&&)]: Likewise.
- (deque) [_S_buffer_size, operator=(deque&&), shrink_to_fit, operator[],
- front, back, pop_front, pop_back, swap]: Likewise.
- [deque(), deque(const allocator_type&)]: Merge.
- * include/debug/deque (deque) [operator=(deque&&), shrink_to_fit,
- operator[], front, back, pop_front, pop_back, swap]: Mark as noexcept.
- * include/profile/deque (deque) [operator=(deque&&), operator[], front,
- back, pop_front, pop_back, swap]: Likewise.
- * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
- Adjust 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.
-
-2013-09-20 Alan Modra <amodra@gmail.com>
-
- * configure: Regenerate.
-
-2013-09-19 Marc Glisse <marc.glisse@inria.fr>
-
- PR libstdc++/58338
- * include/bits/stl_tree.h (_Rb_tree_node_base) [_S_minimum, _S_maximum]:
- Mark as noexcept.
- (_Rb_tree_iterator) [_Rb_tree_iterator, operator*, operator->,
- operator++, operator--, operator==, operator!=]: Likewise.
- (_Rb_tree_const_iterator) [_Rb_tree_const_iterator, _M_const_cast,
- operator*, operator->, operator++, operator--, operator==, operator!=]:
- Likewise.
- (operator==(const _Rb_tree_iterator&, const _Rb_tree_const_iterator&),
- operator!=(const _Rb_tree_iterator&, const _Rb_tree_const_iterator&)):
- Likewise.
- (_Rb_tree) [_M_put_node, _M_destroy_node, _M_root, _M_leftmost,
- _M_rightmost, _M_begin, _M_end, _S_left, _S_right, _S_minimum,
- _S_maximum]: Likewise.
- * include/debug/string (basic_string) [basic_string(const _Allocator&),
- shrink_to_fit, operator[], pop_back]: Likewise.
- * include/ext/vstring.h (__versa_string) [_M_limit, _M_disjunct,
- _M_ibegin, _M_iend, __versa_string(const _Alloc&),
- operator=(__versa_string&&), shrink_to_fit, operator[], front,
- back, assign(__versa_string&&), swap]: Likewise.
- (__versa_string) [__versa_string(), __versa_string(const _Alloc&)]:
- Merge.
-
-2013-09-18 Marc Glisse <marc.glisse@inria.fr>
-
- PR libstdc++/58338
- * include/bits/stl_iterator.h (__normal_iterator) [__normal_iterator,
- _M_const_cast, operator*, operator->, operator++, operator--,
- operator[], operator+=, operator+, operator-=, operator-, base]:
- Mark as noexcept.
- (operator==(const __normal_iterator&, const __normal_iterator&),
- operator!=(const __normal_iterator&, const __normal_iterator&),
- operator<(const __normal_iterator&, const __normal_iterator&),
- operator>(const __normal_iterator&, const __normal_iterator&),
- operator<=(const __normal_iterator&, const __normal_iterator&),
- operator>=(const __normal_iterator&, const __normal_iterator&),
- operator-(const __normal_iterator&, const __normal_iterator&),
- operator+(difference_type, const __normal_iterator&)): Likewise.
- * include/bits/stl_list.h (list) [splice, _M_check_equal_allocators]:
- Likewise.
- (list::_M_check_equal_allocators): Abort instead of throwing.
- * include/debug/array (array) [operator[], front, back]: Mark as
- noexcept.
- * include/profile/array (array) [operator[], front, back]: Likewise.
- * include/std/array (array) [operator[], front, back]: Likewise.
- * include/debug/list (list::splice): Likewise.
- * include/profile/list (list::splice): Likewise.
- * testsuite/23_containers/list/operations/5.cc: Remove file.
- * testsuite/23_containers/list/operations/5.h: Likewise.
-
-2013-09-18 Tim Shen <timshen91@gmail.com>
-
- * include/bits/regex.h: Add friend classes.
- (match_results<>::position, regex_iterator<>::operator++):
- Implement position specification in regex_iterator.
- (regex_match<>, regex_search<>):
- Move match_results initializations to these function. Remove `todo`.
- * include/bits/regex_compiler.tcc:
- (_Compiler<>::_M_quantifier): Fix greedy/ungreedy of interval matching.
- * include/bits/regex_constants.h:
- Fix indentation. Change match_flag_type to enum type.
- * include/bits/regex_executor.h:
- Merge identical code to the base class _Executor.
- Support flags in regex_constants.
- * include/bits/regex_executor.tcc: Likewise.
- * include/bits/regex_scanner.h: Add comments.
- * include/bits/regex_scanner.tcc: Same.
- * testsuite/28_regex/algorithms/regex_search/ecma/assertion.cc:
- Add a testcase.
- * testsuite/28_regex/algorithms/regex_search/ecma/flags.cc: New.
- * testsuite/28_regex/iterators/regex_iterator/char/
- string_position_01.cc: Remove `xfail`.
- * testsuite/28_regex/iterators/regex_iterator/wchar_t/string_02.cc:
- Remove `xfail` and make the case really work.
-
-2013-09-18 Paolo Carlini <paolo.carlini@oracle.com>
-
- * testsuite/performance/25_algorithms/search_n.cc: Fix typo.
-
-2013-09-18 Marc Glisse <marc.glisse@inria.fr>
-
- PR libstdc++/58338
- * include/bits/list.tcc (_List_base::_M_clear, list::erase): Mark as
- noexcept.
- * include/bits/stl_list.h (_List_iterator) [_List_iterator,
- _M_const_cast, operator*, operator->, operator++, operator--,
- operator==, operator!=]: Likewise.
- (_List_const_iterator) [_List_const_iterator, _M_const_cast, operator*,
- operator->, operator++, operator--, operator==, operator!=]: Likewise.
- (operator==(const _List_iterator&, const _List_const_iterator&),
- operator!=(const _List_iterator&, const _List_const_iterator&)):
- Likewise.
- (_List_impl) [_List_impl(const _Node_alloc_type&),
- _List_impl(_Node_alloc_type&&)]: Likewise.
- (_List_base) [_M_put_node, _List_base(const _Node_alloc_type&),
- _List_base(_List_base&&), _M_clear, _M_init]: Likewise.
- (list) [list(), list(const allocator_type&)]: Merge.
- (list) [list(const allocator_type&), front, back, pop_front, pop_back,
- erase, _M_erase]: Mark as noexcept.
- * include/debug/list (list) [list(const _Allocator&), front, back,
- pop_front, pop_back, _M_erase, erase]: Likewise.
- * include/profile/list (list) [list(const _Allocator&), front, back,
- pop_front, pop_back, erase]: Likewise.
* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
- Adjust line number.
+ Likewise.
* testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc:
Likewise.
* testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc:
Likewise.
* testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
Likewise.
-
-2013-09-17 Marc Glisse <marc.glisse@inria.fr>
-
- PR libstdc++/58338
- * include/bits/stl_vector.h (vector::vector(),
- vector::vector(const allocator_type&)): Merge.
- (_Vector_impl::_Vector_impl(_Tp_alloc_type const&),
- _Vector_impl::_Vector_impl(_Tp_alloc_type&&),
- _Vector_impl::_M_swap_data,
- _Vector_base::_Vector_base(const allocator_type&),
- _Vector_base::_Vector_base(allocator_type&&),
- _Vector_base::_Vector_base(_Vector_base&&), _Vector_base::~_Vector_base,
- vector::vector(const allocator_type&), vector::operator[],
- vector::operator[] const, vector::front, vector::front const,
- vector::back, vector::back const, vector::pop_back,
- vector::_M_erase_at_end): Mark as noexcept.
- * include/debug/vector (vector::vector(const _Allocator&),
- vector::operator[], vector::operator[] const, vector::front,
- vector::front const, vector::back, vector::back const, vector::pop_back,
- _M_requires_reallocation, _M_update_guaranteed_capacity,
- _M_invalidate_after_nth): Mark as noexcept.
- * include/profile/vector (vector::vector(const _Allocator&),
- vector::operator[], vector::operator[] const, vector::front,
- vector::front const, vector::back, vector::back const): Mark as
- noexcept.
- (vector::vector(vector&&, const _Allocator&)): Remove wrong noexcept.
- * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
- Adjust 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.
-
-2013-09-14 Tim Shen <timshen91@gmail.com>
-
- * include/bits/regex.h (regex_match<>, regex_search<>):
- Change regex_executor caller. Now use their return value instead
- of checking __m[0].matched to find out if it's successful.
- (regex_search<>): Move the search logic to regex_executor.
- * include/bits/regex_automaton.h: Add some new _Opcode. Refactor
- _NFA::_M_insert_*.
- * include/bits/regex_automaton.tcc: Add DEBUG dump for new
- _Opcode. Refactor _NFA::_M_insert_*.
- * include/bits/regex_compiler.h (_Compiler<>::_M_get_nfa):
- Use make_shared instead of construct by hand.
- * include/bits/regex_compiler.tcc: Implement _Compiler<>::_M_assertion.
- * include/bits/regex_constants.h: Fix indentation and line breaking.
- * include/bits/regex_executor.h: Add _ResultsEntry to support
- greedy/ungreedy mode. Move regex_search logic here.
- * include/bits/regex_executor.tcc: Implement assertions and
- greedy/ungreedy matching.
- * include/bits/regex_scanner.h: Add a new token _S_token_ungreedy.
- * include/bits/regex_scanner.tcc: Parse a new token _S_token_ungreedy.
- * testsuite/28_regex/algorithms/regex_search/ecma/assertion.cc: New.
- * testsuite/28_regex/algorithms/regex_search/ecma/greedy.cc: New.
- * testsuite/28_regex/algorithms/regex_search/ecma/string_01.cc:
- Fix comment.
-
-2013-09-13 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR libstdc++/58415
- * include/ext/sso_string_base.h (__sso_string_base<>::
- __sso_string_base(__sso_string_base&&)): Fix thinkos about
- _M_length vs _M_set_length.
- * testsuite/ext/vstring/cons/58415-1.cc: New.
- * testsuite/ext/vstring/cons/58415-2.cc: Likewise.
-
-2013-09-12 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR libstdc++/58403
- * include/bits/stl_iterator.h (__normal_iterator<>::operator[],
- operator+=, operator+, operator-=, operator-): Take the argument
- by value.
- * testsuite/24_iterators/normal_iterator/58403.cc: New.
-
-2013-09-11 Mitsuru Kariya <kariya_mitsuru@hotmail.com>
- Chris Jefferson <chris@bubblescope.net>
-
- PR libstdc++/58358
- * include/bits/stl_algo.h (search_n): Fix to guarantee a number
- of comparisons <= number of elements in the range.
- * testsuite/25_algorithms/search_n/58358.cc: New.
- * testsuite/25_algorithms/search_n/iterator.cc: Extend.
-
-2013-09-10 Ed Smith-Rowland <3dw4rd@verizon.net>
-
- * testsuite/28_regex/traits/wchar_t/value.cc: Change template args
- from char to wchar_t, literals from 'x' to L'x'.
-
-2013-09-10 Kai Tietz <ktietz@redhat.com>
-
- PR libstdc++/54314
- * config/abi/pre/gnu-versioned-namespace.ver: Add thunk _ZTv0_n12_NS*
- like in gnu.ver.
-
-2013-09-07 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR libstdc++/58341
- * include/bits/stl_algobase.h (copy_backward): Fix documentation
- per DR 1206.
-
-2013-09-05 Tim Shen <timshen91@gmail.com>
-
- * include/bits/regex_automaton.h: Add dummy node type. Rewrite
- _StateSeq.
- * include/bits/regex_automaton.tcc: Implement them.
- * include/bits/regex_compiler.h: Rewrite _Compiler to use new
- _StateSeq interfaces.
- * include/bits/regex_compiler.tcc: Implement them.
- * include/bits/regex_scanner.h: Add word boundry assertion token.
- * include/bits/regex_scanner.tcc (_Scanner<>::_M_eat_escape_ecma):
- Support word boundry.
- * testsuite/28_regex/algorithms/regex_match/basic/
- string_range_02_03.cc: Remove "xfail".
- * testsuite/28_regex/algorithms/regex_match/extended/cstring_plus.cc:
- Likewise.
- * testsuite/28_regex/algorithms/regex_match/extended/
- string_range_02_03.cc: Likewise.
- * testsuite/28_regex/algorithms/regex_match/extended/
- cstring_questionmark.cc: Remove xfail and get correct length of
- c-string.
- * testsuite/28_regex/algorithms/regex_match/extended/
- string_range_00_03.cc: Likewise.
- * testsuite/28_regex/algorithms/regex_match/ecma/char/quoted_char.cc:
- New.
- * testsuite/28_regex/algorithms/regex_match/extended/cstring_range.cc:
- New.
- * testsuite/28_regex/iterators/regex_iterator/wchar_t/string_02.cc: New.
-
-2013-09-03 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR libstdc++/58302
- * include/bits/random.tcc (negative_binomial_distribution<>::
- operator()(_UniformRandomNumberGenerator&, const param_type&)):
- Fix typo in template argument.
- * testsuite/26_numerics/random/negative_binomial_distribution/
- operators/58302.cc: New.
-
-2013-09-02 Tim Shen <timshen91@gmail.com>
-
- * regex_automaton.h: Rearrange _NFA's layout.
- * include/bits/regex_compiler.h: Add _AnyMatcher and _CharMatcher.
- Rearrange _BracketMatcher's layout.
- (_BracketMatcher<>::_M_add_char): Use set instead of vector for
- _M_char_set.
- (_BracketMatcher<>::_M_add_collating_element): Likewise.
- (_BracketMatcher<>::_M_make_range): Likewise.
- * include/bits/regex_compiler.tcc (_Compiler<>::_M_atom): Use
- appropriate constructors of matchers above.
- * testsuite/28_regex/algorithms/regex_match/ecma/char/anymatcher.cc:
- New.
- * testsuite/28_regex/algorithms/regex_match/ecma/char/backref.cc: New.
- * testsuite/28_regex/algorithms/regex_match/ecma/char/empty_range.cc:
- New.
- * testsuite/28_regex/algorithms/regex_match/ecma/char/emptygroup.cc:
- New.
- * testsuite/28_regex/algorithms/regex_match/ecma/char/hex.cc: New.
- * testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/anymatcher.cc:
- New.
- * testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/hex.cc: New.
-
-2013-08-30 François Dumont <fdumont@gcc.gnu.org>
-
- PR libstdc++/58148
- * include/debug/functions.h (__foreign_iterator_aux4): Use
- sequence const_pointer as common type to compare pointers. Add a
- fallback overload in case pointers cannot be cast to sequence
- const_pointer.
- * testsuite/23_containers/vector/modifiers/insert/58148.cc: New.
-
-2013-08-30 François Dumont <fdumont@gcc.gnu.org>
-
- PR libstdc++/58191
- * include/debug/macros.h (__glibcxx_check_partitioned_lower): Add
- __gnu_debug::__base calls on iterators passed to internal debug
- check.
- (__glibcxx_check_partitioned_lower_pred): Likewise.
- (__glibcxx_check_partitioned_upper): Likewise.
- (__glibcxx_check_partitioned_upper_pred): Likewise.
- (__glibcxx_check_sorted): Likewise.
- (__glibcxx_check_sorted_pred): Likewise.
- (__glibcxx_check_sorted_set): Likewise.
- (__glibcxx_check_sorted_set_pred): Likewise.
- * include/debug/functions.h (__check_partitioned_lower):
- Remove code to detect safe iterators.
- (__check_partitioned_upper): Likewise.
- (__check_sorted): Likewise.
-
-2013-08-29 Tim Shen <timshen91@gmail.com>
-
- * include/bits/regex.h (basic_regex<>::assign): Don't lose _M_traits.
- (regex_iterator<>::regex_iterator): Return nullptr when regex_search
- failed.
- (regex_token_iterator<>::_M_end_of_seq): Should be defined true when
- _M_result is(not isn't) nullptr.
- * include/bits/regex_compiler.h: Store _Compiler::_M_traits by reference
- instead of by value.
- * include/bits/regex_executor.h (_DFSExecutor<>::_DFSExecutor): Add
- _M_traits to _DFSExecutor.
- * include/bits/regex_executor.tcc (__get_executor<>): Pass traits to
- _DFSExecutor too.
- * testsuite/28_regex/algorithms/regex_match/extended/wstring_locale.cc:
- New.
- * testsuite/28_regex/iterators/regex_token_iterator/wchar_t/
- wstring_02.cc: New.
-
-2013-08-26 Tim Shen <timshen91@gmail.com>
-
- * include/Makefile.am: Add regex_scanner.{h,tcc}.
- * include/Makefile.in: Regenerate.
- * include/bits/regex.h (match_search): Handle the `__first == __last`
- situation correctly.
- * include/bits/regex_compiler.h: Move _Scanner...
- * include/bits/regex_scanner.h: ...to here. New.
- * include/bits/regex_compiler.tcc: Move _Scanner...
- * include/bits/regex_scanner.tcc: ...to here, too. New.
- * include/bits/regex_executor.tcc: Use value instead of reference for
- submatch.
- * include/std/regex: Add regex_scanner.h
- * testsuite/28_regex/algorithms/regex_match/awk/cstring_01.cc: New.
- * testsuite/28_regex/algorithms/regex_match/basic/empty_range.cc: New.
- * testsuite/28_regex/algorithms/regex_match/ecma/cstring_hex.cc: New.
- * testsuite/28_regex/algorithms/regex_match/ecma/empty_range.cc: New.
- * testsuite/28_regex/algorithms/regex_search/ecma/string_01.cc: New.
-
-2013-08-22 Tim Shen <timshen91@gmail.com>
-
- * include/bits/regex.h: Replace 8 spaces in indentation with a tab.
- * include/bits/regex_automaton.h: Same.
- * include/bits/regex_automaton.tcc: Same.
- * include/bits/regex_compiler.h: Same.
- * include/bits/regex_compiler.tcc: Same.
- * include/bits/regex_constants.h: Same.
- * include/bits/regex_executor.h: Same.
- * include/bits/regex_executor.tcc: Same.
-
-2013-08-22 Tim Shen <timshen91@gmail.com>
-
- * include/bits/regex.h: Executor caller.
- * include/bits/regex_executor.h: Fix empty grouping problem.
- * include/bits/regex_executor.tcc: Same.
- * testsuite/28_regex/algorithms/regex_match/ecma/cstring_emptygroup.cc:
- New.
-
-2013-08-20 Phil Muldoon <pmuldoon@redhat.com>
-
- PR libstdc++/53477
- http://sourceware.org/bugzilla/show_bug.cgi?id=15195
-
- * python/libstdcxx/v6/printers.py (Printer.__call__): If a value
- is a reference, fetch referenced value.
- (RxPrinter.invoke): Ditto.
- * testsuite/libstdc++-prettyprinters/cxx11.cc (main): Add -O0
- flag. Add referenced value tests.
-
-2013-08-20 Tim Shen <timshen91@gmail.com>
-
- * include/bits/regex_constants.h: Add underlying `unsigned int` for
- enum syntax_option_type.
-
-2013-08-18 Tim Shen <timshen91@gmail.com>
-
- * include/bits/regex_automaton.h: _S_opcode_backref.
- * include/bits/regex_automaton.tcc: Backref automaton support.
- * include/bits/regex_compiler.tcc: Parsing support.
- * include/bits/regex_executor.h: Add _M_traits for _DFSExecutor.
- * include/bits/regex_executor.tcc: Add _S_opcode_backref support.
- * testsuite/28_regex/algorithms/regex_match/ecma/string_backref.cc: New.
-
-2013-08-16 Tim Shen <timshen91@gmail.com>
-
- * include/bits/regex.h (regex_traits<>::transform_primary):
- Avoid past-the-end dereferences.
-
-2013-08-14 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR libstdc++/58163
- * include/bits/basic_string.h (basic_string<>::operator[]): Fix
- _GLIBCXX_DEBUG_PEDASSERT check vs C++11.
- * include/ext/vstring.h: Likewise.
- * testsuite/21_strings/basic_string/element_access/char/58163.cc:
- New.
- * testsuite/21_strings/basic_string/element_access/wchar_t/58163.cc:
- Likewise.
- * testsuite/ext/vstring/element_access/char/58163.cc: Likewise.
- * testsuite/ext/vstring/element_access/wchar_t/58163.cc: Likewise.
-
-2013-08-14 Uros Bizjak <ubizjak@gmail.com>
-
- * src/c++98/compatibility.cc (_ZTIe): Use
- reinterpret_cast<const cast *> to avoid -Wcast-qual warnings.
- (_ZTIPe): Ditto.
- (ZTIPKe): Ditto.
-
-2013-08-09 Tim Shen <timshen91@gmail.com>
-
- * include/bits/regex_constants.h: Change syntax_option_type to enum
- type.
-
-2013-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
-
- * include/bits/regex.h: Replace _A, _B, _C, _R by _Ap, _Bp, _Cp, _Rp.
-
-2013-08-08 François Dumont <fdumont@gcc.gnu.org>
-
- * include/bits/hashtable_policy.h (_Hashtable_alloc): New.
- (_ReuseOrAllocNode, _AllocNode): Adapt to use latter rather than
- _Hashtable.
- (_Before_begin<>): Remove.
- * include/bits/hashtable.h (_Hashtable): Inherit from
- _Hashtable_alloc and adapt. Restore _M_before_begin field.
- * src/c++11/hashtable_c++0x.cc: Add ext/alloc_traits.h include.
- * python/libstdcxx/v6/printers.py (StdHashtableIterator): Adapt
- access to hashtable before begin.
- * testsuite/23_containers/unordered_set/
- not_default_constructible_hash_neg.cc: Adapt dg-error line number.
- * testsuite/23_containers/unordered_set/instantiation_neg.cc:
- Likewise.
-
-2013-08-07 Tim Shen <timshen91@gmail.com>
-
- * include/Makefile.am: Adjust to new files.
- * include/Makefile.in: Regenerate.
- * include/bits/regex.h: Adjust to new interfaces.
- * include/bits/regex_automaton.h: New.
- * include/bits/regex_automaton.tcc: New.
- * include/bits/regex_compiler.h: Adjust to new files.
- * include/bits/regex_compiler.tcc: New.
- * include/bits/regex_constants.h: Tail spaces.
- * include/bits/regex_error.h: Likewise.
- * include/bits/regex_executor.h: New.
- * include/bits/regex_executor.tcc: New.
- * include/std/regex: Adjust to new files.
- * testsuite/28_regex/algorithms/regex_match/extended/
- string_dispatch_01.cc: Adjust to new interfaces.
-
-2013-08-07 Paolo Carlini <paolo.carlini@oracle.com>
-
- * include/ext/atomicity.h: Add #pragma GCC system_header.
-
-2013-08-07 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR libstdc++/58098
- * include/bits/random.h (cauchy_distribution<>::min,
- extreme_value_distribution<>::min, normal_distribution<>::min,
- student_t_distribution<>::min): Fix.
- * include/ext/random (normal_mv_distribution<>::min): Likewise.
- * testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc:
- Adjust.
- testsuite/26_numerics/random/cauchy_distribution/cons/default.cc:
- Likewise.
- * testsuite/26_numerics/random/extreme_value_distribution/cons/
- parms.cc: Likewise.
- testsuite/26_numerics/random/extreme_value_distribution/cons/
- default.cc: Likewise.
- * testsuite/26_numerics/random/normal_distribution/cons/parms.cc:
- Likewise.
- * testsuite/26_numerics/random/normal_distribution/cons/default.cc:
- Likewise.
- * testsuite/26_numerics/random/student_t_distribution/cons/parms.cc:
- Likewise.
- * testsuite/26_numerics/random/student_t_distribution/cons/default.cc:
- Likewise.
- * testsuite/ext/random/normal_mv_distribution/cons/parms.cc: Likewise.
- * testsuite/ext/random/normal_mv_distribution/cons/default.cc: Likewise.
-
- * testsuite/26_numerics/random/exponential_distribution/cons/parms.cc:
- Minor tweak.
- * testsuite/26_numerics/random/exponential_distribution/cons/default.cc:
- Likewise.
-
- * testsuite/ext/von_mises_distribution/*: Move to...
- * testsuite/ext/random/von_mises_distribution/*: ... here.
- * testsuite/ext/triangular_distribution/*: Move to...
- * testsuite/ext/random/triangular_distribution/*: ... here.
-
-2013-08-06 Caroline Tice <cmtice@google.com>
-
- * fragment.am: Add XTEMPLATE_FLAGS.
- * configure.ac: Add definitions for --enable-vtable-verify.
- * acinclude.m4: Add --enable-vtable-verify and
- --disable-vtable-verify; define --enable-vtable-verify; define
- VTV_CXXFLAGS, VTV_PCH_CXXFLAGS and VTV_CXXLINKFLAGS.
- * config/abi/pre/gnu.ver: Export symbols for vtable verification.
- * libsupc++/Makefile.am: Define vtv_sources and add it to
- libsupc___la_SOURCES and libsupc__convenience_la_SOURCES.
- * libsupc++/vtv_stubs.cc: New file.
- * include/Makefile.am: Add VTV_PCH_CXXFLAGS to PCHFLAGS.
- * src/Makefile.am: Add VTV_CXXFLAGS to AM_CXXFLAGS; add
- VTV_CXXLINKFLAGS to CXXLINK.
- * src/c++98/Makefile.am: Comment out XTEMPLATE_FLAGS; add VTV_CXXFLAGS
- to AM_CXXFLAGS; add VTV_CXXXLINKFLAGS to CXXLINK.
- * src/C++11/Makefile.am: Ditto.
- * doc/xml/manual/configure.xml: Add entry for --enable-vtable-verify.
- * scripts/testsuite_flags.in: Add cxxvtvflags to Usage; cause
- cxxvtvflags to use VTV_CXXFLAGS and VTV_CXXLINKFLAGS.
- * testsuite/lib/libstdc++.exp: Add cxxvtvflags; add code to locate
- libvtv if --enable-vtable-verify was used; set cxxvtvflags; add
- cxxvtvflags to cxx_final.
- * testsuite/18_support/bad_exception/23591_thread-1.c: Add
- -fvtable-verify=none to compiler flags.
- * testsuite/17_intro/freestanding.cc: Add -fvtable-verify=none
- to compiler flags.
- * configure: Regenerated.
- * Makefile.in: Regenerated.
- * python/Makefile.in: Regenerated.
- * include/Makefile.in: Regenerated.
- * libsupc++/Makefile.in: Regenerated.
- * config.h.in: Regenerated.
- * po/Makefile.in: Regenerated.
- * src/Makefile.in: Regenerated.
- * src/c++98/Makefile.in: Regenerated.
- * src/c++11/Makefile.in: Regenerated.
- * doc/Makefile.in: Regenerated.
- * testsuite/Makefile.in: Regenerated.
-
-2013-08-06 Paolo Carlini <paolo.carlini@oracle.com>
-
- Revert the last commit.
-
-2013-08-06 François Dumont <fdumont@gcc.gnu.org>
-
- * include/bits/hashtable_policy.h (_Hashtable_alloc): New.
- (_ReuseOrAllocNode, _AllocNode): Adapt to use latter rather than
- _Hashtable.
- (_Before_begin<>): Remove.
- * include/bits/hashtable.h (_Hashtable): Inherit from
- _Hashtable_alloc and adapt. Restore _M_before_begin field.
- * python/libstdcxx/v6/printers.py (StdHashtableIterator): Adapt
- access to hashtable before begin.
- * testsuite/23_containers/unordered_set/
- not_default_constructible_hash_neg.cc: Adapt dg-error line number.
- * testsuite/23_containers/unordered_set/instantiation_neg.cc:
- Likewise.
-
-2013-08-03 Tim Shen <timshen91@gmail.com>
-
- Implement bracket expression.
- * include/bits/regex.h: Remove constexpr from "|=", etc.
- * include/bits/regex_compiler.h: Parse bracket expression.
- * include/bits/regex_nfa.h: _Comparator and _BracketMatcher(old
- _RangeMatcher).
- * include/bits/regex_nfa.tcc: Implement them.
- * testsuite/28_regex/algorithms/regex_match/extended/53622.cc:
- from regex_search to regex_match.
- * testsuite/28_regex/algorithms/regex_match/extended/
- cstring_bracket_01.cc: New.
-
-2013-08-02 Paolo Carlini <paolo.carlini@oracle.com>
-
- * include/debug/functions.h (__foreign_iterator_aux4):
- Initialize __l and __ge.
-
-2013-08-02 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR libstdc++/58049
- * include/debug/functions.h: Include <bits/move.h>; minor formatting
- changes.
- (__foreign_iterator_aux4): Declare __l and __ge constexpr.
- * include/debug/safe_iterator.h (_Safe_iterator<>::operator->):
- Use __addressof.
- * include/debug/safe_local_iterator.h (_Safe_local_iterator<>::
- operator->): Likewise.
-
-2013-08-01 François Dumont <fdumont@gcc.gnu.org>
-
- PR libstdc++/57779
- * include/debug/formatter.h (_Debug_msg_id): Add
- __msg_insert_itself_range entry.
- * include/debug/functions.h (_Insert_range_from_self_is_safe<>):
- New, indicate container types supporting self range insertion in
- GNU implementation.
- (__foreign_iterator): New, check if an iterator points to a given
- sequence.
- * include/debug/macros.h (__glibcxx_check_insert_range): Add check
- using __foreign_iterator.
- (__gibcxx_check_insert_range_after): Likewise.
- * include/debug/string (_Insert_range_from_self_is_safe<>):
- Partially specialized to mark __gnu_debug::basic_string<> as
- supporting self range insert.
- * include/debug/list (_Insert_range_from_self_is_safe<>):
- Partially specialized to mark std::list as supporting self range
- insert if _GLIBCXX_DEBUG_PEDANTIC is not defined.
- * include/debug/forward_list (_Insert_range_from_self_is_safe<>):
- Likewise.
- * src/c++11/debug.cc (_S_debug_messages): Add
- __msg_insert_itself_range_entry message.
- (_Error_formatter::_Parameter::_M_print_description): Display
- iterator sequence address rather than sequence address when the
- parameter type is an iterator.
- (_Error_formatter::_M_print_word): Enhance behavior when
- displaying a word with an appended '\n'.
- * testsuite/util/debug/checks.h (check_insert4<>): New.
- * testsuite/23_containers/deque/debug/insert5_neg.cc: New.
- * testsuite/23_containers/vector/debug/insert5_neg.cc: Likewise.
- * testsuite/23_containers/vector/debug/insert6_neg.cc: Likewise.
- * testsuite/23_containers/vector/debug/57779_neg.cc: Likewise.
- * testsuite/23_containers/list/debug/insert5_neg.cc: Likewise.
- * testsuite/23_containers/forward_list/debug/insert_after4_neg.cc:
- Likewise.
-
-2013-08-01 Fabien Chêne <fabien@gcc.gnu.org>
-
- PR c++/54537
- * include/tr1/cmath: Remove pow(double,double) overload, remove a
- duplicated comment about DR 550. Add a comment to explain the
- issue.
- * testsuite/tr1/8_c_compatibility/cmath/pow_cmath.cc: New.
-
-2013-07-31 Tim Shen <timshen91@gmail.com>
-
- Thompson matcher refactored. Fix grouping problem.
- * include/bits/regex.h: Use a dispatcher _M_get_matcher().
- * include/bits/regex_compiler.h: Tweak for auto switching.
- * include/bits/regex_grep_matcher.h: Class structure.
- * include/bits/regex_grep_matcher.tcc: _BFSMatcher(Thompson
- matcher) refactoring.
- * include/bits/regex_nfa.h: Change _Results's interfaces.
- * include/std/regex: Includes <map> and <queue>.
- * testsuite/28_regex/algorithms/regex_match/extended/53622.cc:
- For both matchers.
- * testsuite/28_regex/algorithms/regex_match/extended/57173.cc:
- For both matchers.
- * testsuite/28_regex/algorithms/regex_match/extended/
- string_dispatch_01.cc: New.
-
-2013-07-31 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR libstdc++/56627
- * include/bits/stl_bvector.h: Use friend struct hash intead of
- friend class hash to work around useless warnings produced by
- some compilers.
- * include/std/bitset: Likewise.
-
-2013-07-31 Paolo Carlini <paolo.carlini@oracle.com>
-
- * src/c++11/functexcept.cc: Do not include the whole <regex>.
- * src/c++11/regex.cc: Likewise.
-
-2013-07-31 Tim Shen <timshen91@gmail.com>
-
- Revert last commit.
-
-2013-07-31 Tim Shen <timshen91@gmail.com>
-
- Thompson matcher refactored. Fix grouping problem.
- * include/bits/regex.h: Use a dispatcher _M_get_matcher().
- * include/bits/regex_compiler.h: Tweak for auto switching.
- * include/bits/regex_grep_matcher.h: Class structure.
- * include/bits/regex_grep_matcher.tcc: _BFSMatcher(Thompson
- matcher) refactoring.
- * include/bits/regex_nfa.h: Change _Results's interfaces.
- * include/std/regex: Includes <map> and <queue>.
- * testsuite/28_regex/algorithms/regex_match/extended/53622.cc:
- For both matchers.
- * testsuite/28_regex/algorithms/regex_match/extended/57173.cc:
- For both matchers.
- * testsuite/28_regex/algorithms/regex_match/extended/
- string_dispatch_01.cc: New.
-
-2013-07-30 Paolo Carlini <paolo.carlini@oracle.com>
-
- Revert last commit.
-
-2013-07-30 Tim Shen <timshen91@gmail.com>
-
- Thompson matcher refactored. Fix grouping problem.
- * include/bits/regex.h: Use a dispatcher _M_get_matcher().
- * include/bits/regex_compiler.h: Tweak for auto switching.
- * include/bits/regex_grep_matcher.h: Class structure.
- * include/bits/regex_grep_matcher.tcc: _BFSMatcher(Thompson
- matcher) refactoring.
- * include/bits/regex_nfa.h: Change _Results's interfaces.
- * include/std/regex: Includes <map> and <queue>.
- * testsuite/28_regex/algorithms/regex_match/extended/53622.cc:
- For both matchers.
- * testsuite/28_regex/algorithms/regex_match/extended/57173.cc:
- For both matchers.
- * testsuite/28_regex/algorithms/regex_match/extended/
- string_dispatch_01.cc: New.
-
-2013-07-29 Nathan Froyd <froydnj@gcc.gnu.org>
-
- * include/std/atomic (compare_exchange_weak, compare_exchange_strong):
- Add call to __cmpexch_failure_order.
- * testsuite/util/testsuite_common_types.h
- (compare_exchange_order_lowering): New generator.
- * testsuite/29_atomics/atomic/requirements/compare_exchange_lowering.cc:
- New test.
-
-2013-07-25 Paolo Carlini <paolo.carlini@oracle.com>
-
- * include/std/complex (pow(const complex<>&, int)): Enable in
- C++11 mode too.
- * testsuite/26_numerics/complex/dr844.cc: Adjust.
- * doc/xml/manual/intro.xml: Update.
-
-2013-07-25 Tim Shen <timshen91@gmail.com>
-
- Add documents and comments.
- * include/bits/regex.h: Documents and comments.
- * include/bits/regex_grep_matcher.h: Likewise.
- * include/bits/regex_grep_matcher.tcc: Likewise.
- * testsuite/28_regex/iterators/regex_iterator/char/
- string_position_01.cc: New.
-
-2013-07-24 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR libstdc++/57976
- * doc/xml/manual/status_cxx2011.xml: Note missing time_get::get and
- time_get::do_get.
-
-2013-07-24 Paolo Carlini <paolo.carlini@oracle.com>
-
- * include/bits/random.h (random_device): Avoid using the FILE type.
- * include/std/random: Do not include <cstdio>.
- * src/c++11/random.cc: ... include it here.
- (random_device::_M_init, random_device::_M_fini,
- random_device::_M_getval): Cast back and forth void* and FILE*.
-
-2013-07-24 Tim Shen <timshen91@gmail.com>
-
- Reimplment matcher using Depth-first search(backtracking).
- PR libstdc++/53622
- PR libstdc++/57173
- * include/bits/regex.h: regex_match() and regex_search().
- * include/bits/regex_cursor.h: Fix _M_set_pos().
- * include/bits/regex_grep_matcher.h: add _M_dfs_match().
- * include/bits/regex_grep_matcher.tcc: Implement it.
- * testsuite/28_regex/algorithms/regex_match/extended/53622.cc: New.
- * testsuite/28_regex/algorithms/regex_match/extended/57173.cc: New.
- * testsuite/28_regex/algorithms/regex_search/basic/string_01.cc:
- Remove xfail.
-
-2013-07-23 Tim Shen <timshen91@gmail.com>
-
- Implement regex_iterator and regex_token_iterator.
- * include/bits/regex.h: regex_iterator and regex_token_iterator.
- * testsuite/28_regex/iterators/regex_iterator/char/string_01.cc:
- New.
- * testsuite/28_regex/iterators/regex_iterator/wchar_t/string_01.cc:
- New.
- * testsuite/28_regex/iterators/regex_token_iterator/char/string_01.cc:
- New.
- * testsuite/28_regex/iterators/regex_token_iterator/wchar_t/
- string_01.cc: New.
-
-2013-07-23 Paolo Carlini <paolo.carlini@oracle.com>
-
- * include/std/random: Add back <cstdio> include.
- * src/c++11/random.cc: Don't include <cstdio> here.
-
-2013-07-22 Jason Merrill <jason@redhat.com>
-
- PR libstdc++/57914
- * libsupc++/atexit_thread.cc (run): Delete cleanup elts.
-
-2013-07-22 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/57920
- * src/c++11/random.cc (random_device::_M_getval): If possible, use
- read instead of std::fread.
- * include/std/random: Do not include <cstdio> unnecessarily.
-
-2013-07-21 Tim Shen <timshen91@gmail.com>
-
- Partially implement regex_search.
- * include/bits/regex.h: regex_search.
- * include/bits/regex_grep_matcher.h: _M_search_from_first.
- * include/bits/regex_grep_matcher.tcc: Implement it.
- * testsuite/28_regex/algorithms/regex_search/basic/string_01.cc: New.
-
-2013-07-21 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- PR libstdc++/54352
- * include/std/condition_variable (condition_variable_any): Move into
- inline namespace _V2 and replace mutex member with shared_ptr<mutex>.
- * src/c++11/condition_variable.cc (condition_variable_any): Move
- definitions to ...
- * src/c++11/compatibility-condvar.cc (condition_variable_any): Here.
- * src/Makefile.am: Add new source file.
- * src/Makefile.in: Regenerate.
-
-2013-07-09 Tim Shen <timshen91@gmail.com>
-
- Implement class regex_traits.
- * include/bits/regex.h: Implement lookup_classname and
- lookup_collatename; modify isctype; partially implement
- transform_primary.
- * testsuite/28_regex/traits/char/isctype.cc: Add more test cases.
- * testsuite/28_regex/traits/char/lookup_classname.cc: Likewise.
- * testsuite/28_regex/traits/char/lookup_collatename.cc: Likewise.
- * testsuite/28_regex/traits/char/transform_primary.cc: Likewise.
- * testsuite/28_regex/traits/wchar_t/isctype.cc: New.
- * testsuite/28_regex/traits/wchar_t/lookup_classname.cc: New.
- * testsuite/28_regex/traits/wchar_t/lookup_collatename.cc: New.
- * testsuite/28_regex/traits/wchar_t/transform_primary.cc: New.
-
-2013-07-07 Ed Smith-Rowland <3dw4rd@verizon.net>
-
- * doc/xml/manual/status_cxx2014.xml: Add links for papers.
-
-2013-07-05 François Dumont <fdumont@gcc.gnu.org>
-
- * include/bits/hashtable_policy.h (_ReuseOrAllocNode): Use forward
- pattern.
- (_MoveReuseOrAllocNode): Remove.
- (_Insert_base): Take a functor defining how the node is generated.
- * include/bits/hashtable.h: Adapt.
- (operator=(initializer_list<value_type>)): Reuse node if any.
- * 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.
-
-2013-07-05 Paolo Carlini <paolo.carlini@oracle.com>
-
- * testsuite/23_containers/deque/modifiers/insert/const_iterator.cc:
- Tweak, avoid potential undefined behavior.
- * testsuite/23_containers/list/modifiers/insert/const_iterator.cc:
- Likewise.
- * testsuite/23_containers/vector/bool/modifiers/insert/
- const_iterator.cc: Likewise.
- * testsuite/23_containers/vector/modifiers/insert/const_iterator.cc:
- Likewise.
-
-2013-07-04 Veres Lajos <vlajos@gmail.com>
- Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * config/locale/generic/codecvt_members.cc: Fix typo.
- * configure.host: Likewise.
- * doc/html/manual/policy_data_structures_design.html: Likewise.
- * doc/xml/manual/policy_data_structures.xml: Likewise.
- * include/bits/hashtable.h: Likewise.
- * include/bits/random.h: Likewise.
- * include/profile/impl/profiler_trace.h: Likewise.
- * testsuite/23_containers/deque/cons/2.cc: Likewise.
- * testsuite/23_containers/deque/debug/shrink_to_fit.cc: Likewise.
- * testsuite/ext/pb_ds/example/basic_multimap.cc: Likewise.
- * testsuite/performance/23_containers/insert_erase/41975.cc: Likewise.
-
-2013-07-04 Ray Chason <chasonr@newsguy.com>
- Paolo Carlini <paolo.carlini@oracle.com>
-
- PR libstdc++/57808
- * include/bits/regex.h (regex_token_iterator<>::operator==,
- regex_token_iterator<>::operator!=, regex_token_iterator<>::operator*,
- regex_token_iterator<>::operator->): Declare const.
-
-2013-07-01 Paolo Carlini <paolo.carlini@oracle.com>
-
- * include/bits/stl_list.h (list<>::insert(iterator,
- size_type, const value_type&), list<>::insert(iterator,
- initializer_list<>), list<>::insert(iterator, _InputIterator,
- _InputIterator), list<>::splice(iterator, list&&),
- list<>::splice(iterator, list&), list<>::splice(iterator, list&&,
- iterator), list<>::splice(iterator, list&, iterator),
- list<>::splice(iterator, list&&, iterator, iterator),
- list<>::splice(iterator, list&, iterator, iterator)): Adjust C++11
- signatures to take const_iterator(s).
- * include/bits/list.tcc (list<>::insert(const_iterator, size_type,
- const value_type&), list<>::insert(const_iterator, _InputIterator,
- _InputIterator)): Define.
- * include/ext/vstring.h (__versa_string<>::insert(iterator,
- size_type, _CharT), __versa_string<>::insert(iterator,
- _InputIterator, _InputIterator), __versa_string<>::insert(iterator,
- std::initializer_list<>), __versa_string<>::replace(iterator,
- iterator, _InputIterator, _InputIterator), __versa_string<>::
- replace(iterator, iterator, std::initializer_list<>)): Adjust C++11
- signatures to take const_iterator(s).
- (__versa_string<>::_M_replace_dispatch): Take const_iterators.
- * include/ext/vstring.tcc: Likewise.
- * include/debug/list: Adjust.
- * include/profile/list: Likewise.
- * testsuite/23_containers/list/operations/splice/const_iterator.cc:
- New.
- * testsuite/23_containers/list/modifiers/insert/const_iterator.cc:
- Extend.
- * testsuite/ext/vstring/modifiers/insert/char/const_iterator.cc:
- Likewise.
- * testsuite/ext/vstring/modifiers/insert/wchar_t/const_iterator.cc:
- Likewise.
- * testsuite/ext/vstring/modifiers/replace/char/const_iterator.cc:
- Likewise.
- * testsuite/ext/vstring/modifiers/replace/wchar_t/const_iterator.cc:
- Likewise.
-
- * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
- Adjust dg-error line number.
- * 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.
-
-2013-06-30 Paolo Carlini <paolo.carlini@oracle.com>
-
- * include/bits/stl_deque.h (deque<>::insert(iterator,
- size_type, const value_type&), deque<>::insert(iterator,
- initializer_list<>), deque<>::insert(iterator, _InputIterator,
- _InputIterator)): Adjust C++11 signatures to take a const_iterator.
- * include/bits/stl_vector.h: Likewise.
- * include/bits/stl_bvector.h: Likewise.
- * include/debug/deque: Adjust.
- * include/debug/vector: Likewise.
- * include/profile/deque: Likewise.
- * include/profile/vector: Likewise.
- * testsuite/23_containers/deque/modifiers/insert/const_iterator.cc:
- Extend.
- * testsuite/23_containers/vector/bool/modifiers/insert/
- const_iterator.cc: Likewise.
- * testsuite/23_containers/vector/modifiers/insert/const_iterator.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/vector/requirements/dr438/assign_neg.cc:
Likewise.
* testsuite/23_containers/vector/requirements/dr438/
@@ -2599,123 +65,18 @@
* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
Likewise.
-2013-06-29 François Dumont <fdumont@gcc.gnu.org>
-
- * include/bits/hashtable_policy.h (_Insert_base): Consider hint in
- insert methods.
- * include/bits/hashtable.h: Likewise.
- * testsuite/23_containers/unordered_multimap/insert/hint.cc: New.
- * testsuite/performance/23_containers/insert/unordered_multiset_hint.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.
- * doc/xml/manual/containers.xml: Document hinting in unordered
- containers.
-
-2013-06-27 Paolo Carlini <paolo.carlini@oracle.com>
-
- * testsuite/21_strings/basic_string/operations/*: Move inside
- testsuite/21_strings/basic_string/operations/data/.
- * testsuite/21_strings/basic_string/compare/*: Move inside
- testsuite/21_strings/basic_string/operations/.
- * testsuite/21_strings/basic_string/find/*: Likewise.
- * testsuite/21_strings/basic_string/rfind/*: Likewise.
- * testsuite/21_strings/basic_string/substr/*: Likewise.
-
-2013-06-27 Paolo Carlini <paolo.carlini@oracle.com>
-
- * testsuite/21_strings/basic_string/append/*: Move inside
- testsuite/21_strings/basic_string/modifiers/.
- * testsuite/21_strings/basic_string/assign/*: Likewise.
- * testsuite/21_strings/basic_string/insert/*: Likewise.
- * testsuite/21_strings/basic_string/replace/*: Likewise.
- * testsuite/21_strings/basic_string/modifiers/pop_back/char/
- pop_back.cc: Rename to 1.cc.
- * testsuite/21_strings/basic_string/modifiers/pop_back/wchar_t/
- pop_back.cc: Likewise.
- * testsuite/ext/vstring/assign/*: Move inside
- testsuite/ext/vstring/modifiers/.
-
-2013-06-27 Paolo Carlini <paolo.carlini@oracle.com>
-
- * include/bits/stl_deque.h (deque<>::insert(iterator,
- const value_type&), deque<>::insert(iterator, value_type&&),
- deque<>::emplace(iterator, _Args&&...)): Adjust C++11 signatures to
- take a const_iterator.
- (deque<>::erase): Simplify.
- * include/bits/stl_list.h: Likewise.
- (_List_iterator<>::_M_const_cast): Add.
- * include/bits/stl_vector.h: Likewise.
- * include/bits/stl_bvector.h: Likewise.
- (_Bit_iterator::_M_const_cast): Add.
- * include/bits/deque.tcc: Adjust definitions.
- * include/bits/list.tcc: Likewise.
- * include/bits/vector.tcc: Likewise.
- * include/bits/stl_iterator.h (__normal_iterator<>::_M_const_cast):
- Define trivial version in C++98 mode.
- * include/ext/vstring.h (__versa_string<>::insert(iterator, _CharT),
- __versa_string<>::replace(iterator, iterator, const __versa_string&),
- __versa_string<>::replace(iterator, iterator, const _CharT*,
- size_type), __versa_string<>::replace(iterator, iterator,
- const _CharT*), __versa_string<>::replace(iterator, iterator,
- size_type, _CharT)): Adjust C++11 signatures to take a pair of
- const_iterators.
- * include/debug/deque: Adjust.
- * include/debug/list: Likewise.
- * include/debug/vector: Likewise.
- * include/profile/deque: Likewise.
- * include/profile/list: Likewise.
- * include/profile/vector: Likewise.
- (vector<>::emplace): Add.
- * testsuite/util/exception/safety.h: Update.
- * testsuite/23_containers/deque/modifiers/emplace/const_iterator.cc:
- New.
- * testsuite/23_containers/deque/modifiers/insert/const_iterator.cc:
- Likewise.
- * testsuite/23_containers/list/modifiers/emplace/const_iterator.cc:
- Likewise.
- * testsuite/23_containers/list/modifiers/insert/const_iterator.cc:
- Likewise.
- * testsuite/23_containers/vector/bool/modifiers/insert/
- const_iterator.cc: Likewise.
- * testsuite/23_containers/vector/modifiers/emplace/const_iterator.cc:
- Likewise.
- * testsuite/23_containers/vector/modifiers/insert/const_iterator.cc:
- Likewise.
- * testsuite/ext/vstring/modifiers/insert/char/const_iterator.cc:
- Likewise.
- * testsuite/ext/vstring/modifiers/insert/wchar_t/const_iterator.cc:
- Likewise.
- * testsuite/ext/vstring/modifiers/replace/char/const_iterator.cc:
- Likewise.
- * testsuite/ext/vstring/modifiers/replace/wchar_t/const_iterator.cc:
- Likewise.
-
- * testsuite/ext/vstring/modifiers/char/54577.cc: Move to testsuite/
- ext/vstring/modifiers/erase/char/.
- * testsuite/ext/vstring/modifiers/wchar_t/54577.cc: Move to testsuite/
- ext/vstring/modifiers/wchar_t/.
- * testsuite/ext/vstring/modifiers/char/pop_back.cc: Move to testsuite/
- ext/vstring/modifiers/pop_back/char/.
- * testsuite/ext/vstring/modifiers/wchar_t/pop_back.cc: Move to
- testsuite/ext/vstring/modifiers/pop_back/wchar_t/.
-
- * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
+ PR libstdc++/58764 (again)
+ * include/bits/stl_list.h (list): Make default constructor's exception
+ specification conditional.
+ * include/bits/stl_vector.h (vector): Likewise.
+ * testsuite/util/testsuite_allocator.h (SimpleAllocator): Add noexcept
+ to default constructor.
+ * testsuite/23_containers/list/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:
+ * testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc:
Likewise.
- * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
+ * testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc:
Likewise.
- * testsuite/23_containers/list/requirements/dr438/
- constructor_1_neg.cc: Likewise.
- * testsuite/23_containers/list/requirements/dr438/
- constructor_2_neg.cc: Likewise.
* testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
Likewise.
* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
@@ -2727,1916 +88,280 @@
* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
Likewise.
-2013-06-25 Ed Smith-Rowland <3dw4rd@verizon.net>
-
- Status page for C++2014 library features
- * doc/xml/faq.xml: Add link to new C++14 status page.
- * doc/xml/manual/intro.xml: Ditto.
- * doc/xml/manual/status_cxx2014.xml: New.
-
-2013-06-25 Paolo Carlini <paolo.carlini@oracle.com>
-
- * testsuite/23_containers/map/modifiers/erase/abi_tag.cc: Avoid
- spurious fails with check-debug.
- * testsuite/23_containers/multimap/modifiers/erase/abi_tag.cc:
- Likewise.
- * testsuite/23_containers/set/modifiers/erase/abi_tag.cc: Likewise.
- * testsuite/23_containers/multiset/modifiers/erase/abi_tag.cc:
- Likewise.
-
-2013-06-25 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR libstdc++/57704
- * include/bits/char_traits.h (char_traits<char>::lt): Implement
- LWG 467.
- * testsuite/21_strings/char_traits/requirements/char/57704.cc: New.
-
-2013-06-24 Bernd Edlinger <bernd.edlinger@hotmail.de>
-
- PR libstdc++/57691
- * include/c_global/cstdlib (atexit, at_quick_exit): If !_GLIBCC_HOSTED,
- declare per the letter of the C++ standard in terms of void.
- * include/c_std/cstdlib: Likewise.
-
-2013-06-22 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR libstdc++/57674
- * include/bits/random.h (binomial_distribution<>::_M_waiting):
- Add double parameter.
- * include/bits/random.tcc (binomial_distribution<>::operator()
- (_UniformRandomNumberGenerator&, const param_type&)): Pass
- __param._M_q to _M_waiting.
- (_M_waiting): Adjust.
- * testsuite/26_numerics/random/binomial_distribution/
- operators/values.cc: Add tests.
-
-2013-06-21 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR libstdc++/57666
- * include/std/valarray (valarray<>::operator=(const _Expr<>&)):
- Implement correctly C++11 26.6.2.3/1.
- * testsuite/26_numerics/valarray/dr630-3.C: New.
-
-2013-06-18 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- PR libstdc++/57641
- * include/std/mutex (timed_mutex, recursive_timed_mutex): Move common
- functionality to new __timed_mutex_impl mixin. Overload try_lock_until
- to handle conversion between different clocks. Replace constrained
- __try_lock_for_impl overloads with conditional increment.
- * include/std/shared_mutex (shared_mutex::_Mutex): Use the new mixin.
- * testsuite/30_threads/timed_mutex/try_lock_until/57641.cc: New.
-
-2013-06-17 Jonathan Wakely <jwakely.gcc@gmail.com>
- Chris Jefferson <chris@bubblescope.net>
-
- * include/bits/stl_algobase.h (equal): Make C++14 overloads from N3671
- dispatch to traditional std::equal for random-access iterators.
- (__equal2_aux, __equal2): Remove.
- (__equal::equal): Remove unused overloads.
- * include/bits/stl_algo.h (is_permutation): Fix typos.
-
-2013-06-16 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * include/std/shared_mutex (shared_lock::operator=): Add missing
- return statement.
-
-2013-06-16 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- PR libstdc++/57263
- * include/bits/forward_list.h (_Fwd_list_base): Convert to/from
- allocator's pointer type.
- * include/bits/hashtable.h (_Hashtable): Likewise.
- * testsuite/util/testsuite_allocator.h (CustomPointerAlloc): Add.
- * testsuite/23_containers/forward_list/allocator/ext_ptr.cc: New.
- * testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: New.
- * testsuite/23_containers/vector/allocator/ext_ptr.cc: New.
-
-2013-06-16 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * include/std/shared_mutex: Implement N3659.
- * include/bits/c++14_warning.h: New.
- * include/Makefile.am: Add new headers.
- * include/Makefile.in: Regenerate.
- * testsuite/30_threads/shared_lock/cons/1.cc: New.
- * testsuite/30_threads/shared_lock/locking/2.cc: New.
- * testsuite/30_threads/shared_lock/cons/2.cc: New.
- * testsuite/30_threads/shared_lock/locking/3.cc: New.
- * testsuite/30_threads/shared_lock/cons/3.cc: New.
- * testsuite/30_threads/shared_lock/locking/4.cc: New.
- * testsuite/30_threads/shared_lock/cons/4.cc: New.
- * testsuite/30_threads/shared_lock/modifiers/1.cc: New.
- * testsuite/30_threads/shared_lock/cons/5.cc: New.
- * testsuite/30_threads/shared_lock/modifiers/2.cc: New.
- * testsuite/30_threads/shared_lock/cons/6.cc: New.
- * testsuite/30_threads/shared_lock/requirements/
- explicit_instantiation.cc: New.
- * testsuite/30_threads/shared_lock/locking/1.cc: New.
- * testsuite/30_threads/shared_lock/requirements/typedefs.cc: New.
- * testsuite/30_threads/shared_mutex/cons/1.cc: New.
- * testsuite/30_threads/shared_mutex/cons/assign_neg.cc: New.
- * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: New.
- * testsuite/30_threads/shared_mutex/requirements/
- standard_layout.cc: New.
- * testsuite/30_threads/shared_mutex/try_lock/1.cc: New.
- * testsuite/30_threads/shared_mutex/try_lock/2.cc: New.
-
-2013-06-15 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR libstdc++/57619
- * include/bits/unordered_map.h (unordered_map<>::insert,
- unordered_multimap<>::insert): Use std::forward, not std::move.
- * testsuite/23_containers/unordered_map/insert/57619.C: New.
- * testsuite/23_containers/unordered_multimap/insert/57619.C: Likewise.
-
-2013-06-14 Alan Modra <amodra@gmail.com>
-
- * configure.host (abi_baseline_pair): Match powerpc64*.
-
-2013-06-13 Daniel Krugler <daniel.kruegler@gmail.com>
-
- * include/std/type_traits (is_function): Support ref-qualified
- functions.
- (is_copy_constructible, is_move_constructible, is_copy_assignable,
- is_move_assignable, is_nothrow_copy_constructible,
- is_nothrow_move_constructible, is_nothrow_copy_assignable,
- is_nothrow_move_assignable): Implement LWG 2196.
- (add_lvalue_reference, add_rvalue_reference, add_pointer): Implement
- LWG 2101.
- (__strip_reference_wrapper<<const reference_wrapper<_Tp>>): Remove,
- unused.
- * testsuite/20_util/add_lvalue_reference/value.cc: Extend.
- * testsuite/20_util/add_rvalue_reference/value.cc: Likewise.
- * testsuite/20_util/decay/requirements/typedefs.cc: Likewise.
- * testsuite/20_util/is_assignable/value.cc: Likewise.
- * testsuite/20_util/is_constructible/value-2.cc: Likewise.
- * testsuite/20_util/is_copy_assignable/value.cc: Likewise.
- * testsuite/20_util/is_copy_constructible/value.cc: Likewise.
- * testsuite/20_util/is_function/value.cc: Likewise.
- * testsuite/20_util/is_move_assignable/value.cc: Likewise.
- * testsuite/20_util/is_move_constructible/value.cc: Likewise.
- * testsuite/20_util/is_nothrow_copy_assignable/value.cc: Likewise.
- * testsuite/20_util/is_nothrow_copy_constructible/value.cc: Likewise.
- * testsuite/20_util/is_nothrow_move_assignable/value.cc: Likewise.
- * testsuite/20_util/is_nothrow_move_constructible/value.cc: Likewise.
-
- * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
- line number.
- * testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
- Likewise.
- * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
- Likewise.
-
-2013-06-13 Paolo Carlini <paolo.carlini@oracle.com>
-
- * include/tr1/modified_bessel_func.tcc (__gnu_cxx::__airy_ai(),
- __gnu_cxx::__airy_bi()): Remove.
- * testsuite/tr1/5_numerical_facilities/special_functions/
- 10_cyl_bessel_k/airy.cc: Fix.
-
-2013-06-12 Ed Smith-Rowland <3dw4rd@verizon.net>
-
- PR libstdc++/56430
- * include/tr1/modified_bessel_func.tcc (__airy): Remove return
- from void function.
- (__gnu_cxx::__airy_ai(), __gnu_cxx::__airy_bi()): New functions.
- * testsuite/tr1/5_numerical_facilities/special_functions/
- 10_cyl_bessel_k/airy.cc: New.
-
-2013-06-11 Ed Smith-Rowland <3dw4rd@verizon.net>
-
- Fix library literals error involving namespace __detail.
- * include/std/chrono: Rename __detail to __select_type. Reformat.
- * include/bits/basic_string.h: Reformat.
- * testsuite/20_util/duration/literals/ns_detail.cc: New.
-
-2013-06-11 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR libstdc++/56019
- * include/c_global/cstddef (max_align_t): Add to namespace std.
- * include/c_std/cstddef: Likewise.
- * testsuite/18_support/max_align_t/requirements/1.cc: New.
- * testsuite/18_support/max_align_t/requirements/2.cc: Likewise.
-
-2013-06-10 Benjamin Kosnik <bkoz@redhat.com>
-
- * include/bits/c++config (_GLIBCXX_ABI_TAG_CXX11): Add.
- * include/bits/stl_map.h (erase): Use abi_tag when C++11.
- * include/bits/stl_multimap.h: Same.
- * include/bits/stl_multiset.h: Same.
- * include/bits/stl_set.h: Same.
- * include/bits/stl_tree.h: Same.
- * include/std/complex (real, imag): Use macro for abi_tag.
-
- * testsuite/lib/libstdc++.exp: Disable inlinling with -fno-inline.
- * testsuite/util/testsuite_containers.h (erase_external): New
- declarations.
- (erase_external_iterators): Same.
- (linkage_check_cxx98_cxx11_erase): Same.
- (linkage_check_cxx98_cxx11_erase_iterators): Same.
- * testsuite/util/testsuite_shared.cc: Define.
- * testsuite/23_containers/map/modifiers/erase/abi_tag.cc: New.
- * testsuite/23_containers/map/modifiers/erase/
- dr130-linkage-check.cc: New.
- * testsuite/23_containers/multimap/modifiers/erase/abi_tag.cc: New.
- * testsuite/23_containers/multimap/modifiers/erase/
- dr130-linkage-check.cc: New.
- * testsuite/23_containers/multiset/modifiers/erase/abi_tag.cc: New.
- * testsuite/23_containers/multiset/modifiers/erase/
- dr130-linkage-check.cc: New.
- * testsuite/23_containers/set/modifiers/erase/abi_tag.cc: New.
- * testsuite/23_containers/set/modifiers/erase/dr130-linkage-check.cc:
- New.
- * testsuite/ext/profile/mutex_extensions_neg.cc: Adjust line number.
-
- * testsuite/23_containers/map/dr130.cc: Move...
- * testsuite/23_containers/map/modifiers/dr130.cc: ...here.
- * testsuite/23_containers/multimap/dr130.cc: Move ...
- * testsuite/23_containers/multimap/modifiers/dr130.cc: ...here.
- * testsuite/23_containers/multiset/dr130.cc: Move...
- * testsuite/23_containers/multiset/modifiers/dr130.cc: ...here.
- * testsuite/23_containers/set/dr130.cc: Move...
- * testsuite/23_containers/set/modifiers/dr130.cc: ...here.
-
-2013-06-10 Thomas Schwinge <thomas@codesourcery.com>
-
- * testsuite/17_intro/headers/c++1998/49745.cc: Extend current
- handling of Linux-based x86 systems to cover all GNU systems.
- * testsuite/18_support/bad_exception/23591_thread-1.c: Likewise.
- * testsuite/18_support/pthread_guard.cc: Likewise.
- * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
- Likewise.
- * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc:
- Likewise.
- * testsuite/21_strings/basic_string/pthread18185.cc: Likewise.
- * testsuite/21_strings/basic_string/pthread4.cc: Likewise.
- * testsuite/22_locale/ctype/is/char/2.cc: Likewise.
- * testsuite/22_locale/ctype/is/wchar_t/2.cc: Likewise.
- * testsuite/22_locale/locale/cons/12658_thread-1.cc: Likewise.
- * testsuite/22_locale/locale/cons/12658_thread-2.cc: Likewise.
- * testsuite/23_containers/list/pthread1.cc: Likewise.
- * testsuite/23_containers/list/pthread5.cc: Likewise.
- * testsuite/23_containers/map/pthread6.cc: Likewise.
- * testsuite/23_containers/vector/debug/multithreaded_swap.cc:
- Likewise.
- * testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc:
- Likewise.
- * testsuite/27_io/basic_ofstream/pthread2.cc: Likewise.
- * testsuite/27_io/basic_ostringstream/pthread3.cc: Likewise.
- * testsuite/30_threads/async/42819.cc: Likewise.
- * testsuite/30_threads/async/49668.cc: Likewise.
- * testsuite/30_threads/async/54297.cc: Likewise.
- * testsuite/30_threads/async/any.cc: Likewise.
- * testsuite/30_threads/async/async.cc: Likewise.
- * testsuite/30_threads/async/launch.cc: Likewise.
- * testsuite/30_threads/async/sync.cc: Likewise.
- * testsuite/30_threads/call_once/39909.cc: Likewise.
- * testsuite/30_threads/call_once/49668.cc: Likewise.
- * testsuite/30_threads/call_once/call_once1.cc: Likewise.
- * testsuite/30_threads/condition_variable/54185.cc: Likewise.
- * testsuite/30_threads/condition_variable/cons/1.cc: Likewise.
- * testsuite/30_threads/condition_variable/members/1.cc: Likewise.
- * testsuite/30_threads/condition_variable/members/2.cc: Likewise.
- * testsuite/30_threads/condition_variable/members/53841.cc:
- Likewise.
- * testsuite/30_threads/condition_variable/native_handle/typesizes.cc:
- Likewise.
- * testsuite/30_threads/condition_variable_any/50862.cc: Likewise.
- * testsuite/30_threads/condition_variable_any/53830.cc: Likewise.
- * testsuite/30_threads/condition_variable_any/cons/1.cc: Likewise.
- * testsuite/30_threads/condition_variable_any/members/1.cc:
- Likewise.
- * testsuite/30_threads/condition_variable_any/members/2.cc:
- Likewise.
- * testsuite/30_threads/future/cons/move.cc: Likewise.
- * testsuite/30_threads/future/members/45133.cc: Likewise.
- * testsuite/30_threads/future/members/get.cc: Likewise.
- * testsuite/30_threads/future/members/get2.cc: Likewise.
- * testsuite/30_threads/future/members/share.cc: Likewise.
- * testsuite/30_threads/future/members/valid.cc: Likewise.
- * testsuite/30_threads/future/members/wait.cc: Likewise.
- * testsuite/30_threads/future/members/wait_for.cc: Likewise.
- * testsuite/30_threads/future/members/wait_until.cc: Likewise.
- * testsuite/30_threads/lock/1.cc: Likewise.
- * testsuite/30_threads/lock/2.cc: Likewise.
- * testsuite/30_threads/lock/3.cc: Likewise.
- * testsuite/30_threads/lock/4.cc: Likewise.
- * testsuite/30_threads/mutex/cons/1.cc: Likewise.
- * testsuite/30_threads/mutex/dest/destructor_locked.cc: Likewise.
- * testsuite/30_threads/mutex/lock/1.cc: Likewise.
- * testsuite/30_threads/mutex/native_handle/1.cc: Likewise.
- * testsuite/30_threads/mutex/native_handle/typesizes.cc: Likewise.
- * testsuite/30_threads/mutex/try_lock/1.cc: Likewise.
- * testsuite/30_threads/mutex/try_lock/2.cc: Likewise.
- * testsuite/30_threads/mutex/unlock/1.cc: Likewise.
- * testsuite/30_threads/packaged_task/49668.cc: Likewise.
- * testsuite/30_threads/packaged_task/cons/1.cc: Likewise.
- * testsuite/30_threads/packaged_task/cons/2.cc: Likewise.
- * testsuite/30_threads/packaged_task/cons/3.cc: Likewise.
- * testsuite/30_threads/packaged_task/cons/56492.cc: Likewise.
- * testsuite/30_threads/packaged_task/cons/alloc.cc: Likewise.
- * testsuite/30_threads/packaged_task/cons/move.cc: Likewise.
- * testsuite/30_threads/packaged_task/cons/move_assign.cc:
- Likewise.
- * testsuite/30_threads/packaged_task/members/get_future.cc:
- Likewise.
- * testsuite/30_threads/packaged_task/members/get_future2.cc:
- Likewise.
- * testsuite/30_threads/packaged_task/members/invoke.cc: Likewise.
- * testsuite/30_threads/packaged_task/members/invoke2.cc: Likewise.
- * testsuite/30_threads/packaged_task/members/invoke3.cc: Likewise.
- * testsuite/30_threads/packaged_task/members/invoke4.cc: Likewise.
- * testsuite/30_threads/packaged_task/members/invoke5.cc: Likewise.
- * testsuite/30_threads/packaged_task/members/reset.cc: Likewise.
- * testsuite/30_threads/packaged_task/members/reset2.cc: Likewise.
- * testsuite/30_threads/packaged_task/members/swap.cc: Likewise.
- * testsuite/30_threads/packaged_task/members/valid.cc: Likewise.
- * testsuite/30_threads/promise/cons/1.cc: Likewise.
- * testsuite/30_threads/promise/cons/alloc.cc: Likewise.
- * testsuite/30_threads/promise/cons/move.cc: Likewise.
- * testsuite/30_threads/promise/cons/move_assign.cc: Likewise.
- * testsuite/30_threads/promise/members/get_future.cc: Likewise.
- * testsuite/30_threads/promise/members/get_future2.cc: Likewise.
- * testsuite/30_threads/promise/members/set_exception.cc: Likewise.
- * testsuite/30_threads/promise/members/set_exception2.cc:
- Likewise.
- * testsuite/30_threads/promise/members/set_value.cc: Likewise.
- * testsuite/30_threads/promise/members/set_value2.cc: Likewise.
- * testsuite/30_threads/promise/members/set_value3.cc: Likewise.
- * testsuite/30_threads/promise/members/swap.cc: Likewise.
- * testsuite/30_threads/recursive_mutex/cons/1.cc: Likewise.
- * testsuite/30_threads/recursive_mutex/dest/destructor_locked.cc:
- Likewise.
- * testsuite/30_threads/recursive_mutex/lock/1.cc: Likewise.
- * testsuite/30_threads/recursive_mutex/native_handle/1.cc:
- Likewise.
- * testsuite/30_threads/recursive_mutex/native_handle/typesizes.cc:
- Likewise.
- * testsuite/30_threads/recursive_mutex/try_lock/1.cc: Likewise.
- * testsuite/30_threads/recursive_mutex/try_lock/2.cc: Likewise.
- * testsuite/30_threads/recursive_mutex/unlock/1.cc: Likewise.
- * testsuite/30_threads/recursive_timed_mutex/cons/1.cc: Likewise.
- * testsuite/30_threads/recursive_timed_mutex/dest/destructor_locked.cc:
- Likewise.
- * testsuite/30_threads/recursive_timed_mutex/lock/1.cc: Likewise.
- * testsuite/30_threads/recursive_timed_mutex/lock/2.cc: Likewise.
- * testsuite/30_threads/recursive_timed_mutex/native_handle/1.cc:
- Likewise.
- * testsuite/30_threads/recursive_timed_mutex/native_handle/typesizes.cc:
- Likewise.
- * testsuite/30_threads/recursive_timed_mutex/try_lock/1.cc:
- Likewise.
- * testsuite/30_threads/recursive_timed_mutex/try_lock/2.cc:
- Likewise.
- * testsuite/30_threads/recursive_timed_mutex/try_lock_for/1.cc:
- Likewise.
- * testsuite/30_threads/recursive_timed_mutex/try_lock_for/2.cc:
- Likewise.
- * testsuite/30_threads/recursive_timed_mutex/try_lock_for/3.cc:
- Likewise.
- * testsuite/30_threads/recursive_timed_mutex/try_lock_until/1.cc:
- Likewise.
- * testsuite/30_threads/recursive_timed_mutex/try_lock_until/2.cc:
- Likewise.
- * testsuite/30_threads/recursive_timed_mutex/unlock/1.cc:
- Likewise.
- * testsuite/30_threads/shared_future/cons/move.cc: Likewise.
- * testsuite/30_threads/shared_future/members/45133.cc: Likewise.
- * testsuite/30_threads/shared_future/members/get.cc: Likewise.
- * testsuite/30_threads/shared_future/members/get2.cc: Likewise.
- * testsuite/30_threads/shared_future/members/valid.cc: Likewise.
- * testsuite/30_threads/shared_future/members/wait.cc: Likewise.
- * testsuite/30_threads/shared_future/members/wait_for.cc:
- Likewise.
- * testsuite/30_threads/shared_future/members/wait_until.cc:
- Likewise.
- * testsuite/30_threads/this_thread/1.cc: Likewise.
- * testsuite/30_threads/this_thread/2.cc: Likewise.
- * testsuite/30_threads/this_thread/3.cc: Likewise.
- * testsuite/30_threads/this_thread/4.cc: Likewise.
- * testsuite/30_threads/thread/cons/1.cc: Likewise.
- * testsuite/30_threads/thread/cons/2.cc: Likewise.
- * testsuite/30_threads/thread/cons/3.cc: Likewise.
- * testsuite/30_threads/thread/cons/4.cc: Likewise.
- * testsuite/30_threads/thread/cons/49668.cc: Likewise.
- * testsuite/30_threads/thread/cons/5.cc: Likewise.
- * testsuite/30_threads/thread/cons/6.cc: Likewise.
- * testsuite/30_threads/thread/cons/7.cc: Likewise.
- * testsuite/30_threads/thread/cons/8.cc: Likewise.
- * testsuite/30_threads/thread/cons/9.cc: Likewise.
- * testsuite/30_threads/thread/cons/moveable.cc: Likewise.
- * testsuite/30_threads/thread/members/1.cc: Likewise.
- * testsuite/30_threads/thread/members/2.cc: Likewise.
- * testsuite/30_threads/thread/members/3.cc: Likewise.
- * testsuite/30_threads/thread/members/4.cc: Likewise.
- * testsuite/30_threads/thread/members/5.cc: Likewise.
- * testsuite/30_threads/thread/members/hardware_concurrency.cc:
- Likewise.
- * testsuite/30_threads/thread/native_handle/cancel.cc: Likewise.
- * testsuite/30_threads/thread/native_handle/typesizes.cc:
- Likewise.
- * testsuite/30_threads/thread/swap/1.cc: Likewise.
- * testsuite/30_threads/timed_mutex/cons/1.cc: Likewise.
- * testsuite/30_threads/timed_mutex/dest/destructor_locked.cc:
- Likewise.
- * testsuite/30_threads/timed_mutex/lock/1.cc: Likewise.
- * testsuite/30_threads/timed_mutex/native_handle/1.cc: Likewise.
- * testsuite/30_threads/timed_mutex/native_handle/typesizes.cc:
- Likewise.
- * testsuite/30_threads/timed_mutex/try_lock/1.cc: Likewise.
- * testsuite/30_threads/timed_mutex/try_lock/2.cc: Likewise.
- * testsuite/30_threads/timed_mutex/try_lock_for/1.cc: Likewise.
- * testsuite/30_threads/timed_mutex/try_lock_for/2.cc: Likewise.
- * testsuite/30_threads/timed_mutex/try_lock_for/3.cc: Likewise.
- * testsuite/30_threads/timed_mutex/try_lock_until/1.cc: Likewise.
- * testsuite/30_threads/timed_mutex/try_lock_until/2.cc: Likewise.
- * testsuite/30_threads/timed_mutex/unlock/1.cc: Likewise.
- * testsuite/30_threads/try_lock/1.cc: Likewise.
- * testsuite/30_threads/try_lock/2.cc: Likewise.
- * testsuite/30_threads/try_lock/3.cc: Likewise.
- * testsuite/30_threads/try_lock/4.cc: Likewise.
- * testsuite/30_threads/unique_lock/cons/1.cc: Likewise.
- * testsuite/30_threads/unique_lock/cons/2.cc: Likewise.
- * testsuite/30_threads/unique_lock/cons/3.cc: Likewise.
- * testsuite/30_threads/unique_lock/cons/4.cc: Likewise.
- * testsuite/30_threads/unique_lock/cons/5.cc: Likewise.
- * testsuite/30_threads/unique_lock/cons/6.cc: Likewise.
- * testsuite/30_threads/unique_lock/locking/1.cc: Likewise.
- * testsuite/30_threads/unique_lock/locking/2.cc: Likewise.
- * testsuite/30_threads/unique_lock/locking/3.cc: Likewise.
- * testsuite/30_threads/unique_lock/locking/4.cc: Likewise.
- * testsuite/30_threads/unique_lock/modifiers/1.cc: Likewise.
- * testsuite/30_threads/unique_lock/modifiers/2.cc: Likewise.
- * testsuite/ext/mt_allocator/22309_thread.cc: Likewise.
- * testsuite/ext/profile/mh.cc: Likewise.
- * testsuite/ext/rope/pthread7-rope.cc: Likewise.
- * testsuite/lib/libstdc++.exp (libstdc++_init): Likewise.
- * testsuite/tr1/2_general_utilities/shared_ptr/thread/default_weaktoshared.cc:
- Likewise.
- * testsuite/tr1/2_general_utilities/shared_ptr/thread/mutex_weaktoshared.cc:
- Likewise.
- * testsuite/util/testsuite_performance.h: Extend current handling
- of Linux-based systems to cover all glibc-based systems.
-
-2013-06-09 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * include/std/mutex (call_once): Remove parentheses to fix error in
- c++1y and gnu++1y mode.
- * testsuite/30_threads/mutex/try_lock/2.cc: Call try_lock() in new
- thread to avoid undefined behaviour.
-
-2013-06-08 Ed Smith-Rowland <3dw4rd@verizon.net>
-
- Simplify and clean up library literals.
- * include/std/chrono: Simplify namespace and versioning management.
- * include/bits/basic_string.h: Ditto.
- * testsuite/20_util/duration/literals/types.cc: Remove bogus comment.
- * testsuite/20_util/duration/literals/values.cc: Ditto.
- * testsuite/21_strings/basic_string/literals/types.cc: Ditto.
- * testsuite/21_strings/basic_string/literals/values.cc: Ditto.
-
-2013-06-08 Ed Smith-Rowland <3dw4rd@verizon.net>
-
- Implement N3654 - Quoted Strings Library Proposal
- * include/std/iomanip: Add quoted(String, Char delim, Char escape)
- manipulators and supporting machinery in c++1y mode.
- * testsuite/27_io/manipulators/standard/char/quoted.cc: New.
- * testsuite/27_io/manipulators/standard/wchar_t/quoted.cc: New.
-
-2013-06-08 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * include/bits/alloc_traits.h (allocator_traits::max_size()): LWG
- 2162: Add noexcept.
-
-2013-06-08 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * include/bits/stl_algo.h (is_permutation): Add overloads from N3671.
- * include/bits/stl_algobase.h (equal, mismatch): Likewise.
- * testsuite/25_algorithms/equal/1.cc: Remove duplicate test case.
- * testsuite/25_algorithms/equal/2.cc: New.
- * testsuite/25_algorithms/equal/check_type2.cc: New.
- * testsuite/25_algorithms/is_permutationqual/2.cc: New.
- * testsuite/25_algorithms/is_permutationqual/check_type2.cc: New.
- * testsuite/25_algorithms/mismatch/2.cc: New.
- * testsuite/25_algorithms/mismatch/check_type2.cc: New.
- * testsuite/util/testsuite_iterators.h: Fix spelling.
-
-2013-06-08 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * include/std/type-traits (integral_constant::operator()): Implement
- N3545.
- * testsuite/20_util/integral_constant/call_operator.cc: New.
- * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
- line numbers.
- * testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
- Likewise.
- * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
- Likewise.
-
-2013-06-07 Uros Bizjak <ubizjak@gmail.com>
-
- * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
-
-2013-06-05 Tom Tromey <tromey@redhat.com>
-
- * testsuite/libstdc++-prettyprinters/shared_ptr.cc: Use -O0.
-
-2013-06-03 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR c++/57419
- * testsuite/20_util/default_delete/48631_neg.cc: Adjust.
-
-2013-06-01 Ed Smith-Rowland <3dw4rd@verizon.net>
-
- * include/std/chrono: Collapse redundant 'inline' from 'inline
- constexpr'.
- * include/std/tuple: Ditto.
- * include/bits/move.h: Ditto.
-
-2013-05-30 Ed Smith-Rowland <3dw4rd@verizon.net>
-
- Implement N3642 - User-defined Literals for Standard Library Types
- * include/bits/parse_numbers.h: New.
- * include/std/chrono: Add duration literal operators.
- * include/bits/basic_string.h: Add string literal operators.
- * include/Makefile.in: Add parse_numbers.h.
- * include/Makefile.am: Ditto.
- * testsuite/20_util/duration/literals/values.cc: New.
- * testsuite/20_util/duration/literals/types.cc: New.
- * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Adjust.
- * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Adjust.
- * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Adjust.
- * testsuite/21_strings/basic_string/literals/values.cc: New.
- * testsuite/21_strings/basic_string/literals/types.cc: New.
-
-2013-05-28 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * src/c++11/compatibility-chrono.cc (steady_clock::now()): If
- !_GLIBCXX_USE_GETTIMEOFDAY perform conversion inline instead of
- calling non-existent from_time_t.
-
-2013-05-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
-
- * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt:
- Regenerate.
-
-2013-05-24 Benjamin Kosnik <bkoz@redhat.com>
-
- * include/std/chrono: Wrap clocks in inline namespace _V2.
- * src/c++11/chrono.cc: Same.
- * src/c++11/compatibility-chrono.cc: Revert to previous chrono.cc
- file, with default configure macros selected.
-
- * config/abi/pre/gnu.ver (GLIBCXX_3.4.19): Use symbols from inline
- namespace.
- * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Fix up.
-
- * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Regenerated.
- * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Regenerated.
- * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
- Regenerated.
- * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt:
- Regenerated.
- * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Regenerated.
- * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt:
- Regenerated.
- * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Regenerated.
- * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Regenerated.
- * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Regenerated.
- * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerated.
- * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Regenerated.
- * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt:
- Regenerated.
- * config/abi/post/solaris2.9/baseline_symbols.txt: Regenerated.
- * config/abi/post/solaris2.9/sparcv9/baseline_symbols.txt: Regenerated.
-
-2013-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
-
- * config/os/solaris/solaris2.9/os_defines.h [!CLOCK_MONOTONIC]
- (CLOCK_MONOTONIC): Define.
-
-2013-05-24 Paolo Carlini <paolo.carlini@oracle.com>
-
- * include/ext/type_traits.h (__is_null_pointer): Add std::nullptr_t
- overload.
-
- * include/bits/cpp_type_traits.h (__is_fundamental): Remove, unused.
-
-2013-05-24 Jakub Jelinek <jakub@redhat.com>
-
- * src/c++11/chrono.cc: If _GLIBCXX_USE_CLOCK_GETTIME_SYSCALL,
- include unistd.h and sys/syscall.h. If _GLIBCXX_COMPATIBILITY_CXX0X,
- don't define system_clock::is_steady, system_clock::now() and
- steady_clock::is_steady.
- (std::chrono::system_clock::now()): If
- _GLIBCXX_USE_CLOCK_GETTIME_SYSCALL, call
- syscall (SYS_clock_gettime, ...) instead of clock_gettime (...).
- (std::chrono::system_clock::now()): Likewise. Add weak attribute
- if _GLIBCXX_COMPATIBILITY_CXX0X and compatibility-chrono.cc will
- be non-empty.
- * src/Makefile.am (cxx11_sources): Add compatibility-chrono.cc.
- (compatibility-chrono.lo, compatibility-chrono.o): New goals.
- * src/c++11/compatibility-chrono.cc: New file.
- * acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): On linux*, check for
- syscall (SYS_clock_gettime, CLOCK_MONOTONIC, &tp).
- * testsuite/util/testsuite_abi.cc (check_version): Add
- GLIBCXX_3.4.20 version and make it the latest.
- * config/abi/pre/gnu.ver (_ZNSt6chrono12steady_clock3nowEv): Export
- also @@GLIBCXX_3.4.19. Move all symbols so far added for GCC 4.9 to
- @@GLIBCXX_3.4.20 instead.
- * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Regenerated.
- * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Regenerated.
- * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
- Regenerated.
- * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt:
- Regenerated.
- * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Regenerated.
- * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt:
- Regenerated.
- * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Regenerated.
- * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Regenerated.
- * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Regenerated.
- * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerated.
- * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Regenerated.
- * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt:
- Regenerated.
- * config/abi/post/solaris2.9/baseline_symbols.txt: Regenerated.
- * config/abi/post/solaris2.9/sparcv9/baseline_symbols.txt: Regenerated.
- * config.h.in: Regenerated.
- * src/Makefile.in: Regenerated.
- * configure: Regenerated.
-
-2013-05-23 Matthias Klose <doko@ubuntu.com>
-
- * include/Makefile.am (bits_headers): Remove ${bits_host_headers}.
- (ext_headers): Remove ${ext_host_headers}.
- (stamp-${host_alias}): Create ${host_builddir}/../ext.
- (stamp-host): Link ${bits_host_headers} and ${ext_host_headers}.
- (install-headers): Install ${bits_host_headers} and ${ext_host_headers}.
- * include/Makefile.in: Regenerate.
- * include/ext/random: Include ext/opt_random.h.
-
-2013-05-22 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Add KIND=auto to
- enable features if target OS is known to support them.
- * configure.ac (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Default to 'auto'.
- * configure: Regenerate.
-
-2013-05-21 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- PR libstdc++/57336
- * include/std/functional (__invoke): Do not form function types with
- abstract return type.
- * testsuite/20_util/reference_wrapper/invoke-3.cc: New.
-
-2013-05-19 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * include/std/tuple (get): Implement N3670.
- * include/std/utility (get): Likewise.
- * testsuite/20_util/pair/get.cc: Move to ...
- * testsuite/20_util/pair/astuple/get.cc: Here.
- * testsuite/20_util/pair/astuple/astuple.cc: New.
- * testsuite/20_util/pair/astuple/constexpr_get.cc: New.
- * testsuite/20_util/pair/astuple/constexpr_get_by_type.cc: New.
- * testsuite/20_util/pair/astuple/get_by_type.cc: New.
- * testsuite/20_util/pair/astuple/get_by_type_neg.cc: New.
- * testsuite/20_util/pair/astuple/get_neg.cc: New.
- * testsuite/20_util/tuple/element_access/constexpr_get_by_type.cc: New.
- * testsuite/20_util/tuple/element_access/get2_by_type.cc: New.
- * testsuite/20_util/tuple/element_access/get_by_type.cc: New.
-
-2013-05-19 Paolo Carlini <paolo.carlini@oracle.com>
-
- * Revert last commit.
-
-2013-05-19 Matthias Klose <doko@ubuntu.com>
-
- * include/Makefile.am (bits_headers): Remove ${bits_host_headers}.
- (ext_headers): Remove ${ext_host_headers}.
- (stamp-${host_alias}): Create ${host_builddir}/../ext.
- (stamp-host): Link ${bits_host_headers} and ${ext_host_headers}.
- (install-headers): Install ${bits_host_headers} and ${ext_host_headers}.
- * include/Makefile.in: Regenerate.
-
-2013-05-18 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * include/std/system_error (error_category::error_category()): LWG
- 2145: Declare public and constexpr.
- * src/c++11/system_error.cc (error_category::error_category()): Move
- definition to ...
- * src/c++11/compatibility-c++0x.cc: Here.
-
-2013-05-18 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * include/std/typeindex (type_index::name()): LWG 2144: Add noexcept.
-
-2013-05-18 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * include/bits/unique_ptr.h (make_unique): Declare inline.
- (unique_ptr<T[],D>::reset()): Combine two overloads into one.
- (default_delete, unique_ptr): Add doxygen comments.
- * include/bits/shared_ptr_base.h: Improve doxygen comments.
- * include/bits/shared_ptr.h: Likewise.
- * testsuite/20_util/default_delete/48631_neg.cc: Adjust dg-error line
- number.
- * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Likewise.
-
-2013-05-18 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * doc/xml/manual/status_cxx2011.xml: Fix markup error.
-
-2013-05-18 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * doc/xml/manual/status_cxx2011.xml: Fix markup error.
-
-2013-05-18 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * include/std/utility (exchange): Define.
- * testsuite/20_util/exchange/1.cc: New.
-
-2013-05-18 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * include/bits/unique_ptr.h (make_unique): Define.
- * testsuite/20_util/unique_ptr/creation/single.cc: New.
- * testsuite/20_util/unique_ptr/creation/array.cc: New.
- * testsuite/20_util/unique_ptr/creation/array_neg.cc: New.
-
-2013-05-15 François Dumont <fdumont@gcc.gnu.org>
-
- * python/libstdcxx/v6/printers.py (Tr1HashtableIterator): Fix
- rendering of std::tr1 unordered containers iterator.
- (StdHashtableIterator): New, render std unordered containers iterator.
- * testsuite/libstdc++-prettyprinters/tr1.cc: New.
-
-2013-05-15 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * include/bits/basic_string.h (getline): Fix doxygen comments.
-
-2013-05-14 Paolo Carlini <paolo.carlini@oracle.com>
-
- * include/bits/stl_iterator.h (__normal_iterator<>::_M_const_cast):
- Use std::pointer_traits.
-
-2013-05-13 Benjamin Kosnik <bkoz@redhat.com>
-
- * libsupc++/Makefile.am (sources): Add bad_array_length.cc,
- bad_array_new.cc.
- * libsupc++/Makefile.in: Regenerate.
- * libsupc++/bad_array_length.cc: Tweak.
- * libsupc++/bad_array_new.cc: Tweak.
-
-2013-05-10 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR libstdc++/54577
- * include/bits/stl_deque.h (erase): Fix signatures in C++11 mode.
- (_Deque_iterator<>::_M_const_cast): Add.
- (deque<>::_M_erase): Declare.
- * include/bits/deque.tcc: ... and define.
- * include/bits/stl_list.h (erase): Fix signatures in C++11 mode.
- (_List_const_iterator<>::_M_const_cast): Add.
- * include/bits/list.tcc (erase (iterator)): Fix.
- * include/bits/stl_iterator.h (__normal_iterator<>::_M_const_cast):
- Add; include <ext/cast.h>.
- * include/bits/stl_vector.h (erase): Fix signatures in C++11 mode.
- (vector<>::_M_erase): Declare.
- * include/bits/stl_bvector.h: Likewise.
- * include/bits/vector.tcc (vector<>::_M_erase): Define.
- * include/ext/vstring.h (erase): Fix signatures in C++11 mode.
- * include/debug/deque: Adjust.
- * include/debug/list: Likewise.
- * include/debug/vector: Likewise.
- * include/profile/deque: Likewise.
- * include/profile/list: Likewise.
- * include/profile/vector: Likewise.
- * testsuite/util/exception/safety.h (erase_base<deque>,
- erase_base<deque>, erase_base<vector>): Remove.
- (erase_base<__versa_string>): Update.
- * testsuite/ext/vstring/modifiers/char/54577.cc: New.
- * testsuite/ext/vstring/modifiers/wchar_t/54577.cc: Likewise.
- * testsuite/23_containers/deque/modifiers/erase/54577.cc: Likewise.
- * testsuite/23_containers/list/modifiers/erase/54577.cc: Likewise.
- * testsuite/23_containers/vector/bool/modifiers/erase/54577.cc:
- Likewise.
- * testsuite/23_containers/vector/modifiers/erase/54577.cc: Likewise.
- * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
- Adjust dg-error line numbers.
- * testsuite/23_containers/deque/requirements/dr438/
- constructor_1_neg.cc: Likewise.
- * testsuite/23_containers/deque/requirements/dr438/
- constructor_2_neg.cc: Likewise.
- * testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
- Likewise.
- * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
- Likewise.
- * testsuite/23_containers/list/requirements/dr438/
- constructor_1_neg.cc: Likewise.
- * testsuite/23_containers/list/requirements/dr438/
- constructor_2_neg.cc: Likewise.
- * testsuite/23_containers/list/requirements/dr438/
- insert_neg.cc: Likewise.
- * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
- Likewise.
- * testsuite/23_containers/vector/requirements/dr438/
- constructor_1_neg.cc: Likewise.
- * testsuite/23_containers/vector/requirements/dr438/
- constructor_2_neg.cc: Likewise.
- * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
- Likewise.
-
-2013-05-09 Uros Bizjak <ubizjak@gmail.com>
-
- * testsuite/util/testsuite_abi.cc (check_version): Add CXXABI_1.3.8.
-
-2013-05-08 Jason Merrill <jason@redhat.com>
-
- Add std::bad_array_length (N3639)
- * libsupc++/new: Add std::bad_array_length.
- * libsupc++/bad_array_length.cc: New.
- * libsupc++/eh_aux_runtime.cc: Add __cxa_bad_array_length.
- * libsupc++/Makefile.in: Build them.
- * config/abi/pre/gnu.ver: Add new symbols.
- * config/abi/pre/gnu-versioned-namespace.ver: Add new symbols.
-
-2013-05-08 Andi Kleen <ak@linux.intel.com>
-
- PR target/55947
- * libstdc++-v3/include/bits/atomic_base.h
- (_GLIBCXX_ALWAYS_INLINE): Add new macro.
- (atomic_thread_fence, atomic_signal_fence, test_and_set,
- clear, store, load, exchange, compare_exchange_weak)
- compare_exchange_strong, fetch_add, fetch_sub, fetch_and,
- fetch_or, fetch_xor): Mark _GLIBCXX_ALWAYS_INLINE.
-
-2013-05-08 Jason Merrill <jason@redhat.com>
-
- Add std::bad_array_new_length (N2932)
- * libsupc++/new: Add std::bad_array_new_length.
- * libsupc++/bad_array_new.cc: New.
- * libsupc++/eh_aux_runtime.cc: Add __cxa_throw_bad_array_new_length.
- * libsupc++/Makefile.in: Build them.
- * config/abi/pre/gnu.ver: Add new symbols.
- * config/abi/pre/gnu-versioned-namespace.ver: Add new symbols.
-
-2013-05-08 Andoni Morales Alastruey <ylatuya@gmail.com>
-
- PR libstdc++/57212
- * include/Makefile.am (_GLIBCXX___MINGW32_GLIBCXX___): Modify
- to __MINGW32__.
- * include/Makefile.in: Regenerated.
-
-2013-05-07 François Dumont <fdumont@gcc.gnu.org>
-
- * include/profile/unordered_base.h: New.
- * include/Makefile.am: Add new profile header.
- * include/Makefile.in: Regenerate.
- * include/profile/impl/profiler.h
- (__profcxx_inefficient_hash_is_on): New macro.
- * include/profile/unordered_map (std::profile::unordered_map<>):
- Use new _Unordered_profile base class. Use default implementations
- for special functions.
- (std::profile::unordered_multimap<>): Likewise.
- * include/profile/unordered_set (std::profile::unordered_set<>):
- Likewise.
- (std::profile::unordered_multiset<>): Likewise.
- * testsuite/23_containers/unordered_multiset/55043.cc: Fix
- MoveOnly equality operator signature.
-
-2013-05-02 Paolo Carlini <paolo.carlini@oracle.com>
-
- * testsuite/tr1/4_metaprogramming/integral_constant/requirements/
- constexpr_data.cc: Move...
- * testsuite/20_util/integral_constant/requirements/constexpr_data.cc:
- ... here.
- * testsuite/20_util/integral_constant/requirements/
- explicit_instantiation.cc: New.
- * testsuite/20_util/integral_constant/requirements/typedefs.cc:
- Likewise.
- * testsuite/20_util/integral_constant/static_definition.cc: Likewise.
- * testsuite/20_util/integral_constant/true_false_type_typedefs.cc:
- Likewise.
- * testsuite/20_util/integral_constant/true_false_value.cc: Likewise.
- * testsuite/20_util/integral_constant/operator_value_type.cc: Likewise.
-
-2013-05-02 Paolo Carlini <paolo.carlini@oracle.com>
-
- * include/std/type_traits (is_null_pointer): Add.
- (__is_nullptr_t): Implement in terms of the latter.
- (is_fundamental, is_scalar): Adjust.
- * testsuite/20_util/is_null_pointer/requirements/
- explicit_instantiation.cc: New.
- * testsuite/20_util/is_null_pointer/requirements/typedefs.cc:
- Likewise.
- * testsuite/20_util/is_null_pointer/value.cc: Likewise.
- * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
- line number.
- * testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
- Likewise.
- * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
- Likewise.
-
-2013-05-02 Paolo Carlini <paolo.carlini@oracle.com>
-
- * include/c_global/cstdio: Add comment about LWG 2249.
- * include/c_std/cstdio: Likewise.
-
-2013-04-28 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * include/bits/hashtable_policy.h (_Hashtable_ebo_helper): Fix
- comment.
- * include/std/mutex (__recursive_mutex_base): Likewise.
-
-2013-04-28 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- PR libstdc++/51365
- * include/bits/shared_ptr_base (_Sp_ebo_helper): Helper class to
- implement EBO safely.
- (_Sp_counted_base::_M_get_deleter): Add noexcept.
- (_Sp_counter_ptr): Use noexcept instead of comments.
- (_Sp_counted_deleter): Likewise. Use _Sp_ebo_helper.
- (_Sp_counted_ptr_inplace): Likewise.
- * testsuite/20_util/shared_ptr/cons/51365.cc: New.
- * testsuite/20_util/shared_ptr/cons/52924.cc: Add rebind member to
- custom allocator and test construction with custom allocator.
- * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error
- line number.
-
-2013-04-26 Paolo Carlini <paolo.carlini@oracle.com>
-
- * testsuite/23_containers/unordered_set/insert/move_range.cc: Adjust
- dialect to -std=gnu++11.
-
-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.
-
-2013-04-26 Paolo Carlini <paolo.carlini@oracle.com>
-
- * include/c_global/cstdio (gets): Provide only in C++98 and C++11.
- * include/c_std/cstdio (gets): Likewise.
- * testsuite/27_io/headers/cstdio/functions_std.cc: Adjust.
-
-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.
-
-2013-04-24 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- PR libstdc++/56905
- * libsupc++/exception_ptr.h (copy_exception): Deprecate and
- move implementation to make_exception_ptr.
- * include/std/future (_State_base::_M_break_promise): Replace
- copy_exception with make_exception_ptr.
- * testsuite/18_support/exception_ptr/move.cc: Likewise.
- * testsuite/18_support/exception_ptr/rethrow_exception.cc: Likewise.
- * testsuite/30_threads/future/members/get2.cc: Likewise.
- * testsuite/30_threads/promise/members/set_exception.cc: Likewise.
- * testsuite/30_threads/promise/members/set_exception2.cc: Likewise.
- * testsuite/30_threads/promise/members/set_value2.cc: Likewise.
- * testsuite/30_threads/shared_future/members/get2.cc: Likewise.
-
-2013-04-22 Jason Merrill <jason@redhat.com>
-
- * src/c++11/hashtable_c++0x.cc: Include ext/aligned_buffer.h.
-
- * testsuite/lib/prune.exp (libstdc++-dg-prune): Also ignore "In
- substitution" lines.
-
- * testsuite/20_util/is_assignable/value.cc: Comment out tests involving
- function-cv-quals.
- * testsuite/20_util/is_constructible/value-2.cc: Likewise.
- * testsuite/20_util/reference_wrapper/result_type.cc: Likewise.
- * testsuite/20_util/reference_wrapper/typedefs-2.cc: Likewise.
-
-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.
-
-2013-04-22 Paolo Carlini <paolo.carlini@oracle.com>
-
- * include/std/type_traits (is_signed): Simplify.
- * 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.
-
-2013-04-22 Paolo Carlini <paolo.carlini@oracle.com>
-
- N3669
- * include/std/complex (complex<float>::real, complex<float>::imag,
- complex<double>::real, complex<double>::imag,
- complex<long double>::real, complex<long double>::imag): Declare
- as const member functions.
- * include/std/type_traits (integral_constant<>::operator value_type):
- Likewise.
-
-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.
-
-2013-04-21 Evgeniy Stepanov <eugenis@google.com>
-
- * src/c++11/system_error.cc (generic_category_instance): Add
- initializer.
- (system_category_instance): Likewise.
- * src/c++11/future.cc (__fec): Likewise.
-
-2013-04-20 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * doc/xml/manual/extensions.xml: Fix anachronism.
-
-2013-04-09 Tom Tromey <tromey@redhat.com>
-
- * configure, config.h.in: Rebuild.
- * configure.ac: Use GLIBCXX_CHECK_SDT_H. Don't check for
- sys/sdt.h.
- * acinclude.m4 (GLIBCXX_CHECK_SDT_H): New defun.
-
-2013-04-09 Uros Bizjak <ubizjak@gmail.com>
-
- * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
-
-2013-04-08 Paolo Carlini <paolo.carlini@oracle.com>
-
- * testsuite/libstdc++-prettyprinters/cxx11.cc: Include <memory>.
-
-2013-04-07 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * 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.
-
-2013-04-07 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * include/bits/forward_list.h: Only include required headers.
- (forward_list::reference): Define directly, not using __alloc_traits.
- (forward_list::const_reference): Likewise.
-
-2013-04-07 François Dumont <fdumont@gcc.gnu.org>
-
- * include/std/functional (_Derives_from_unary_function): Remove.
- (_Derives_from_binary_function): Remove.
- * include/std/type_traits (__sfinae_types): Remove.
- (__is_assignable_helper): Adapt.
- (__is_convertible_helper): Adapt.
- (_GLIBCXX_HAS_NESTED_TYPE): Adapt.
- Remove several explicit instantiations of integral_constant.
- * testsuite/20_util/reference_wrapper/typedefs-3.cc: Adapt.
- * testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
- Adapt dg-error line number.
- * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
- Likewise.
- * testsuite/20_util/declval/requirements/1_neg.cc: Likewise.
- * testsuite/20_util/bind/ref_neg.cc: Likewise.
-
-2013-04-05 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- PR libstdc++/56841
- * libsupc++/eh_ptr.cc (rethrow_exception): Use get_unexpected() and
- get_terminate() accessors.
- * libsupc++/eh_throw.cc (__cxa_throw): Likewise.
- * libsupc++/eh_terminate.cc: Use mutex when atomic builtins not
- available.
- * libsupc++/new_handler.cc: Likewise.
-
-2013-04-04 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * testsuite/util/testsuite_abi.cc: Add GLIBCXX_3.4.19 version.
-
-2013-04-03 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR libstdc++/56834
- * include/debug/array (tuple_size, tuple_element): Do not declare.
- * include/profile/array: Likewise.
- * testsuite/23_containers/array/tuple_interface/
- tuple_element_debug_neg.cc: Adjust dg-error line number.
-
-2013-04-03 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * libsupc++/exception (get_terminate(), get_unexpected()): Declare.
- * libsupc++/eh_terminate.cc (get_terminate() , set_unexpected()):
- Define.
- (set_terminate(terminate_handler)): Set atomically.
- (set_unexpected(terminate_handler)): Likewise.
- * libsupc++/new (get_new_handler()): Declare.
- * libsupc++/new_handler.cc (get_new_handler()): Define.
- (set_new_handler(new_handler)): Set atomically.
- (__new_handler): Use internal linkage.
- * libsupc++/new_op.cc (operator new): Use get_new_handler().
- * libsupc++/new_opnt.cc (operator new): Likewise.
- * acinclude.m4: Bump libtool_VERSION to 6:19:0.
- * configure: Regenerate.
- * libsupc++/Makefile.am: Compile above files with -std=gnu++11.
- * libsupc++/Makefile.in: Regenerate.
- * config/abi/pre/gnu.ver: Add new exports.
- * doc/xml/manual/status_cxx2011.xml: Update.
- * testsuite/18_support/headers/exception/synopsis.cc: Check accessors
- for handlers.
- * testsuite/18_support/headers/new/synopsis.cc: Likewise.
- * testsuite/18_support/new_handler.cc: New.
- * testsuite/18_support/terminate_handler.cc: New.
- * testsuite/18_support/unexpected_handler.cc: New.
-
-2013-04-02 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * doc/xml/manual/appendix_contributing.xml: Remove broken link and
- defer to general documentation on contributing to GCC.
- * doc/html/*: Regenerate.
-
-2013-03-30 Gerald Pfeifer <gerald@pfeifer.com>
-
- * doc/xml/manual/allocator.xml: Adjust link to Dr.Dobb's article.
-
- * doc/xml/manual/appendix_contributing.xml: Adjust link to GNU
- Coding Standards.
-
- * doc/xml/manual/debug.xml: Adjust link for ThreadSanitizer.
-
- * doc/xml/manual/debug_mode.xml: Adjust link for SafeSTL.
-
- * doc/xml/manual/documentation_hacking.xml: Adjust Doxygen link.
-
- * doc/xml/manual/messages.xml: Adjust link to Java API specs.
-
- * doc/xml/manual/policy_data_structures: Remove direct link to
- IBM Haifa Research Labs.
-
- * doc/xml/manual/policy_data_structures_biblio.xml: Adjust links
- for biblio.maverik_lowerbounds and biblio.nelson96stlpq.
-
- * doc/xml/manual/profile_mode.xml: Adjust two links to acm.org
- papers.
-
- * doc/xml/manual/shared_ptr.xml: Use canonical address for
- www.boost.org.
-
-2013-03-27 Kai Tietz <ktietz@redhat.com>
-
- * crossconfig.m4: Add support for cygwin x64 target.
- * configure: Regenerated.
-
-2013-03-25 Kai Tietz <ktietz@redhat.com>
-
- * testsuite/18_support/50594.cc: For mingw-targets use only static
- libstdc++-version.
- * testsuite/19_diagnostics/error_category/operators/equal.cc
- * testsuite/19_diagnostics/error_code/cons/1.cc
- * testsuite/19_diagnostics/error_code/operators/bool.cc
- * testsuite/19_diagnostics/error_code/operators/equal.cc
- * testsuite/19_diagnostics/error_code/operators/not_equal.cc
- * testsuite/19_diagnostics/error_condition/cons/1.cc
- * testsuite/19_diagnostics/error_condition/operators/bool.cc
- * testsuite/19_diagnostics/error_condition/operators/equal.cc
- * testsuite/19_diagnostics/error_condition/operators/not_equal.cc
- * testsuite/23_containers/set/requirements/exception/basic.cc
- * testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc
- * testsuite/lib/dg-options.exp (dg-additional-options): New option.
-
-2013-03-24 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- PR libstdc++/56170
- * include/ext/debug_allocator.h (debug_allocator): Add missing members
- to meet allocator requirements.
- * testsuite/ext/debug_allocator/56170.cc: New.
-
-2013-03-22 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR libstdc++/56678
- * include/std/chrono (__is_ratio): Uglify T.
-
-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.
-
-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.
-
-2013-03-16 Jason Merrill <jason@redhat.com>
-
- PR c++/55017
- * testsuite/20_util/pair/piecewise2.cc (test01): Use std::move.
-
-2013-03-16 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- PR libstdc++/56468
- * libsupc++/exception_ptr.h (type_info): Declare.
-
-2013-03-16 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- PR libstdc++/56002
- * include/std/mutex (lock_guard, unique_lock, lock): Define without
- depending on _GLIBCXX_HAS_GTHREADS.
- * testsuite/30_threads/lock_guard/cons/1.cc: Run on all targets.
-
-2013-03-16 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- PR libstdc++/56492
- * include/std/future (__future_base::_Result): Add result_type
- typedef.
- (__future_base::_S_allocate_result): Overload for std::allocator.
- (__future_base::_Task_setter): Use _Result::result_type instead of
- deducing the type from the task.
- (__future_base::_Task_state): Store allocator to allow shared state
- to be reset. Replace std::function with member of target object type
- accessed via ...
- (__future_base::_Task_state_base): New abstract base class.
- (__future_base::_Task_state_base::_M_run): New virtual function to
- invoke type-erased target object.
- (__future_base::_Task_state_base::_M_reset): New virtual function to
- create new shared_state using same target object and allocator.
- (__future_base::__create_task_state): Allocate a new _Task_state.
- (packaged_task::packaged_task): Use __create_task_state.
- (packaged_task::reset): Use _Task_state_base::_M_reset.
- * testsuite/30_threads/packaged_task/cons/56492.cc: New.
-
-2013-03-15 Tom Tromey <tromey@redhat.com>
-
- * libsupc++/unwind-cxx.h: Include sys/sdt.h if detected.
- (PROBE2): New macro.
- * libsupc++/eh_throw.cc (__cxa_throw, __cxa_rethrow): Add probe.
- * libsupc++/eh_catch.cc (__cxa_begin_catch): Add probe.
- * configure.ac: Check for sys/sdt.h.
- * configure, config.h.in: Rebuild.
-
-2013-03-14 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- 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.
-
-2013-03-13 Benjamin Kosnik <bkoz@redhat.com>
-
- * doc/html/*: Regenerate.
-
-2013-03-13 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR libstdc++/56609
- * include/std/type_traits (is_fundamental): Add std::nullptr_t.
- * testsuite/20_util/is_fundamental/value.cc: Extend.
- * testsuite/20_util/is_compound/value.cc: Likewise.
-
-2013-03-09 Paolo Carlini <paolo.carlini@oracle.com>
-
- * testsuite/20_util/function_objects/mem_fn/55463.cc: Avoid
- -Wunused warnings.
-
-2013-03-08 Benjamin Kosnik <bkoz@redhat.com>
-
- * 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.
-
-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.
-
-2013-03-07 Jakub Jelinek <jakub@redhat.com>
-
- * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
- * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
- * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt:
- Likewise.
- * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
- * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Likewise.
- * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Likewise.
- * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Likewise.
- * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
- * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Likewise.
-
-2013-03-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
-
- * scripts/extract_symvers.pl: Omit symbols bound to base
- versions.
- * scripts/extract_symvers.in: Likewise.
- * config/abi/post/solaris2.9/baseline_symbols.txt: Regenerate.
- * config/abi/post/solaris2.9/sparcv9/baseline_symbols.txt: Likewise.
- * config/abi/post/solaris2.10/baseline_symbols.txt: Likewise.
- * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
- * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
-
-2013-03-04 Ulrich Drepper <drepper@gmail.com>
-
- * include/ext/random (__gnu_cxx::von_mises_distribution<>):
- Optimize generation function by pulling computation of __r into the
- constructor for param_type. Also compare _M_mu in operator==.
- Fix comment.
-
-2013-03-02 Ulrich Drepper <drepper@gmail.com>
-
- Add triangular and von Mises distributions.
- * include/ext/random: Include <ext/cmath>.
- Add __gnu_cxx::triangular_distribution<> and
- __gnu_cxx::von_mises_distribution<> classes.
- * include/ext/random.tcc: Add out-of-line functions for
- __gnu_cxx::triangular_distribution<> and
- __gnu_cxx::von_mises_distribution<>.
- * testsuite/ext/triangular_distribution/cons/default.cc: New file.
- * testsuite/ext/triangular_distribution/cons/parms.cc: New file.
- * testsuite/ext/triangular_distribution/operators/serialize.cc:
- New file.
- * testsuite/ext/triangular_distribution/operators/equal.cc:
- New file.
- * testsuite/ext/triangular_distribution/operators/inequal.cc:
- New file.
- * testsuite/ext/triangular_distribution/requirements/typedefs.cc:
- New file.
- * testsuite/ext/triangular_distribution/requirements/
- explicit_instantiation/1.cc: New file.
- * testsuite/ext/von_mises_distribution/cons/default.cc: New file.
- * testsuite/ext/von_mises_distribution/cons/parms.cc: New file.
- * testsuite/ext/von_mises_distribution/operators/serialize.cc:
- New file.
- * testsuite/ext/von_mises_distribution/operators/equal.cc: New file.
- * testsuite/ext/von_mises_distribution/operators/inequal.cc:
- New file.
- * testsuite/ext/von_mises_distribution/requirements/typedefs.cc:
- New file.
- * testsuite/ext/von_mises_distribution/requirements/
- explicit_instantiation/1.cc: New file.
-
- Add math constants.
- * include/Makefile.am (ext_headers): Add cmath.
- * include/Makefile.in: Regenerated.
- * include/ext/cmath: New file.
-
-2013-03-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
-
- * config/abi/post/solaris2.9/baseline_symbols.txt: Regenerate.
- * config/abi/post/solaris2.9/sparcv9/baseline_symbols.txt: Likewise.
- * config/abi/post/solaris2.10/baseline_symbols.txt: Likewise.
- * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
- * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
-
-2013-02-26 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- 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.
-
-2013-02-25 Jason Merrill <jason@redhat.com>
-
- * configure.ac: Check for __cxa_thread_atexit_impl.
- * libsupc++/atexit_thread.cc (__cxa_thread_atexit): Just forward
- to it if available.
- * config.h.in, configure: Regenerate.
-
-2013-02-20 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * include/std/streambuf (basic_streambuf): Use injected class name
- instead of non-standard __streambuf_type typedef. Fix unclosed Doxygen
- group.
-
-2013-02-20 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * 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.
-
-2013-02-20 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * testsuite/23_containers/unordered_set/55043.cc: Add missing
- namespace qualification.
- * testsuite/23_containers/unordered_multiset/55043.cc: Likewise.
-
-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.
-
-2013-02-14 Jason Merrill <jason@redhat.com>
-
- * testsuite/18_support/quick_exit/quick_exit.cc: #if out the whole
- test if unsupported.
-
-2013-02-13 Marc Glisse <marc.glisse@inria.fr>
-
- PR libstdc++/56111
- * include/std/complex (complex): Undefine.
- * include/c_compatibility/complex.h (complex): Only undefine if
- <complex> has been included.
- * testsuite/26_numerics/complex/56111.cc: New testcase.
-
-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.
-
-2013-02-12 Paolo Carlini <paolo.carlini@oracle.com>
-
- * include/c_std/cstdlib (at_quick_exit, quick_exit): Provide in
- C++11 mode.
-
-2013-02-12 Julian Brown <julian@codesourcery.com>
-
- * testsuite/22_locale/time_get/get_weekday/char/38081-1.cc (test01):
- Don't expect dots after abbreviated weekday names for ru_RU for
- glibc versions >= 2.17.
- * testsuite/22_locale/time_get/get_weekday/char/38081-2.cc (test01):
- Likewise.
-
-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.
-
-2013-02-11 Benjamin Kosnik <bkoz@redhat.com>
-
- * src/c++11/Makefile.am (hashtable_c++0x.lo, hashtable_c++0x.o):
- Use -fimplicit-templates.
- * src/c++11/Makefile.in: Regenerate.
- * src/c++11/hashtable_c++0x.cc: Remove instantiation for
- std::lower_bound template.
-
-2013-02-11 Paolo Carlini <paolo.carlini@oracle.com>
-
- * include/c_std/cstdlib (at_quick_exit, quick_exit): Do not declare.
- * include/c_global/cstdlib (at_quick_exit, quick_exit): Declare only
- in C++11 mode and if available in the underlying C library.
- * testsuite/18_support/quick_exit/quick_exit.cc: Compile with
- -std=gnu++11; check _GLIBCXX_HAVE_AT_QUICK_EXIT and
- _GLIBCXX_HAVE_QUICK_EXIT.
-
-2013-02-11 Benjamin Kosnik <bkoz@redhat.com>
-
- * doc/html/*: Regenerate.
-
-2013-02-11 Jason Merrill <jason@redhat.com>
-
- * linkage.m4 (GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE): New.
- (GLIBCXX_CHECK_STDLIB_SUPPORT): Check for atexit and at_quick_exit.
- * config.h.in, configure: Regenerate.
- * include/c_std/cstdlib: Add atexit and at_quick_exit.
- * include/c_global/cstdlib: Add atexit and at_quick_exit.
- * testsuite/18_support/quick_exit/quick_exit.cc: New.
-
-2013-02-11 Paolo Carlini <paolo.carlini@oracle.com>
+2014-01-21 Tim Shen <timshen91@gmail.com>
- PR libstdc++/56282
- Revert:
- 2013-02-06 Edward Smith-Rowland <3dw4rd@verizon.net>
+ * include/bits/regex.tcc: Remove incorrect `nosubs` handling.
+ * include/bits/regex_scanner.tcc: Handle `nosubs` correctly.
+ * testsuite/28_regex/constants/syntax_option_type.cc: Add a test case.
- 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.
-
-2013-02-10 François Dumont <fdumont@gcc.gnu.org>
- Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * doc/xml/manual/containers.xml: Add section on unordered containers.
- * doc/xml/manual/using.xml: Fix incomplete sentence.
-
-2013-02-10 Jonathan Wakely <jwakely.gcc@gmail.com>
+2014-01-21 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/56267
- * include/bits/hashtable.h (__cache_default): Check if hash function
- is copy assignable.
- * testsuite/23_containers/unordered_set/56267.cc: New.
+ * include/bits/hashtable.h (__cache_default): Do not depend on
+ whether the hash function is DefaultConstructible or CopyAssignable.
+ (_Hashtable): Adjust static assertions.
+ * doc/xml/manual/containers.xml (containers.unordered.cache): Update.
* 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.
-
- PR libstdc++/56278
- * include/bits/hashtable_policy.h (_Hash_code_base): Make default
- constructor public.
- * testsuite/23_containers/unordered_set/56278.cc: New.
-
-2013-02-09 François Dumont <fdumont@gcc.gnu.org>
-
- * include/tr1/bessel_function.tcc (__cyl_bessel_ij_series): Code
- simplification.
-
-2013-02-08 Edward Smith-Rowland <3dw4rd@verizon.net>
-
- PR libstdc++/56216
- * include/tr1/special_function_util.h: Remove spurious const
- from numeric arguments.
- * include/tr1/riemann_zeta.tcc: Likewise.
- * include/tr1/exp_integral.tcc: Likewise.
- * include/tr1/bessel_function.tcc: Likewise.
- * include/tr1/hypergeometric.tcc: Likewise.
- * include/tr1/modified_bessel_func.tcc: Likewise.
- * include/tr1/poly_laguerre.tcc: Likewise.
- * include/tr1/gamma.tcc: Likewise.
- * include/tr1/legendre_function.tcc: Likewise.
- * include/tr1/poly_hermite.tcc: Likewise.
- * include/tr1/ell_integral.tcc: Likewise.
- * include/tr1/bessel_function.tcc (__cyl_bessel_ij_series):
- If argument is zero return function value.
- * testsuite/tr1/5_numerical_facilities/special_functions/
- 08_cyl_bessel_i/pr56216.cc: New.
-
-2013-02-07 Paolo Carlini <paolo.carlini@oracle.com>
-
- * testsuite/27_io/basic_ios/pr56193.cc: Tweak.
-
-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.
-
-2013-02-04 Dodji Seketeli <dodji@redhat.com>
-
- Add missing explicit instantiation for std::lower_bound template
- * libstdc++-v3/src/c++11/hashtable_c++0x.cc (namespace std): Add
- missing instantiation for std::lower_bound template.
-
-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.
-
-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.
-
-2013-02-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
- Paolo Carlini <paolo.carlini@oracle.com>
+ not_default_constructible_hash_neg.cc: Remove.
- PR libstdc++/56202
- * include/bits/random.tcc (binomial_distribution<>::
- _M_waiting(_UniformRandomNumberGenerator&, _IntType)): Avoid
- division by zero.
+2014-01-20 François Dumont <fdumont@gcc.gnu.org>
-2013-02-03 Richard Sandiford <rdsandiford@googlemail.com>
+ * scripts/create_testsuite_files: Add testsuite/experimental in
+ the list of folders to search for tests.
+ * include/experimental/string_view
+ (basic_string_view<>::operator[]): Comment _GLIBCXX_DEBUG_ASSERT,
+ incompatible with constexpr qualifier.
+ (basic_string_view<>::front()): Likewise.
+ (basic_string_view<>::back()): Likewise.
+ * testsuite/experimental/string_view/element_access/wchar_t/2.cc:
+ Merge dg-options directives into one.
+ * testsuite/experimental/string_view/element_access/char/2.cc:
+ Likewise. Remove invalid experimental namespace scope on
+ string_view_type.
- Update copyright years.
- * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc,
- testsuite/23_containers/deque/requirements/dr438/constructor_1_neg.cc,
- testsuite/23_containers/deque/requirements/dr438/constructor_2_neg.cc,
- testsuite/23_containers/deque/requirements/dr438/insert_neg.cc,
- testsuite/23_containers/list/requirements/dr438/assign_neg.cc,
- testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc,
- testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc,
- testsuite/23_containers/list/requirements/dr438/insert_neg.cc,
- testsuite/23_containers/vector/requirements/dr438/assign_neg.cc,
- testsuite/23_containers/vector/requirements/dr438/constructor_1_neg.cc,
- testsuite/23_containers/vector/requirements/dr438/constructor_2_neg.cc,
- testsuite/23_containers/vector/requirements/dr438/insert_neg.cc,
- testsuite/29_atomics/atomic/cons/assign_neg.cc,
- testsuite/29_atomics/atomic/cons/copy_neg.cc,
- testsuite/29_atomics/atomic_integral/cons/assign_neg.cc,
- testsuite/29_atomics/atomic_integral/cons/copy_neg.cc,
- testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc,
- testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc,
- testsuite/29_atomics/atomic_integral/operators/increment_neg.cc:
- Update lines in dg error matches.
+2014-01-20 Jonathan Wakely <jwakely@redhat.com>
-2013-02-03 Richard Sandiford <rdsandiford@googlemail.com>
-
- * config/os/mingw32/ctype_inline.h: Fix copyright typo.
-
-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.
-
-2013-01-29 Jason Merrill <jason@redhat.com>
-
- PR libstdc++/54314
- * config/abi/pre/gnu.ver: Don't export construction vtables.
- * config/abi/pre/gnu-versioned-namespace.ver: Likewise.
-
-2013-01-28 Jonathan Wakely <jwakely.gcc@gmail.com>
+ PR libstdc++/56267
+ * include/bits/hashtable_policy.h (_Hash_code_base<... false>): Grant
+ friendship to _Local_iterator_base<..., false>.
+ (_Local_iterator_base): Give protected access to all existing members.
+ (_Local_iterator_base::_M_curr()): New public accessor.
+ (_Local_iterator_base::_M_get_bucket()): New public accessor.
+ (_Local_iterator_base<..., false>::_M_init()): New function to manage
+ the lifetime of the _Hash_code_base explicitly.
+ (_Local_iterator_base<..., false>::_M_destroy()): Likewise.
+ (_Local_iterator_base<..., false>): Define copy constructor and copy
+ assignment operator that use new functions to manage _Hash_code_base.
+ (operator==(const _Local_iterator_base&, const _Local_iterator_base&),
+ operator==(const _Local_iterator_base&, const _Local_iterator_base&)):
+ Use public API for _Local_iterator_base.
+ * include/debug/safe_local_iterator.h (_Safe_local_iterator): Likewise.
+ * include/debug/unordered_map (__debug::unordered_map::erase(),
+ __debug::unordered_multimap::erase()): Likewise.
+ * include/debug/unordered_set (__debug::unordered_set::erase(),
+ __debug::unordered_multiset::erase()): Likewise.
+ * testsuite/23_containers/unordered_set/56267-2.cc: New test.
+
+2014-01-19 Tim Shen <timshen91@gmail.com>
+
+ * include/bits/regex_compiler.h (_Comipler<>::_M_quantifier()):
+ Fix parse error of multiple consecutive quantifiers like "a**".
+ * include/bits/regex_compiler.tcc (_Comipler<>::_M_quantifier()):
+ Likewise.
+ * testsuite/28_regex/basic_regex/multiple_quantifiers.cc: New.
+
+2014-01-17 François Dumont <fdumont@gcc.gnu.org>
+
+ * include/profile/set.h (set): Implement C++11 allocator-aware
+ container requirements.
+ * include/profile/map.h (map): Likewise.
+ * include/profile/multiset.h (multiset): Likewise.
+ * include/profile/multimap.h (multimap): Likewise.
+ * include/profile/set.h
+ (set::operator=(const set&)): Define as default in C++11 mode.
+ (set::operator=(set&&)): Likewise.
+ * include/profile/map.h
+ (map::operator=(const map&)): Likewise.
+ (map::operator=(map&&)): Likewise.
+ * include/profile/multiset.h
+ (multiset::operator=(const multiset&)): Likewise.
+ (multiset::operator=(multiset&&)): Likewise.
+ * include/profile/multimap.h
+ (multimap::operator=(const multimap&)): Likewise.
+ (multimap::operator=(multimap&&)): Likewise.
+ * include/profile/set.h (set::operator=(std::initializer_list<>)):
+ Rely on the same operator from normal mode.
+ * include/profile/map.h (map::operator=(std::initializer_list<>)):
+ Likewise.
+ * include/profile/multiset.h
+ (multiset::operator=(std::initializer_list<>)): Likewise.
+ * include/profile/multimap.h
+ (multimap::operator=(std::initializer_list<>)): Likewise.
+ * include/profile/set.h (set::swap(set&)): Add noexcept
+ specification.
+ * include/profile/map.h (map::swap(map&)): Likewise.
+ * include/profile/multiset.h (multiset::swap(multiset&)): Likewise.
+ * include/profile/multimap.h (multimap::swap(multimap&)): Likewise.
+
+2014-01-17 Tim Shen <timshen91@gmail.com>
+
+ * include/bits/regex_automaton.tcc (_StateSeq<>::_M_clone()): Do not
+ use std::map.
+ * include/bits/regex_automaton.h: Do not use std::set.
+ * include/bits/regex_compiler.h (_BracketMatcher<>::_M_add_char(),
+ _BracketMatcher<>::_M_add_collating_element(),
+ _BracketMatcher<>::_M_add_equivalence_class(),
+ _BracketMatcher<>::_M_make_range()): Likewise.
+ * include/bits/regex_compiler.tcc (_BracketMatcher<>::_M_apply()):
+ Likewise.
+ * include/bits/regex_executor.h: Do not use std::queue.
+ * include/bits/regex_executor.tcc (_Executor<>::_M_main(),
+ _Executor<>::_M_dfs()): Likewise.
+ * include/std/regex: Remove <map>, <set> and <queue>.
- 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.
+2014-01-17 Tim Shen <timshen91@gmail.com>
-2013-01-28 François Dumont <fdumont@gcc.gnu.org>
+ * include/bits/regex.h (__compile_nfa<>(), basic_regex<>::basic_regex(),
+ basic_regex<>::assign()): Change __compile_nfa to accept
+ const _CharT* only.
+ * include/bits/regex_compiler.h: Change _Compiler's template
+ argument from <_FwdIter, _TraitsT> to <_TraitsT>.
+ * include/bits/regex_compiler.tcc: Likewise.
- * 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.
+2014-01-17 Tim Shen <timshen91@gmail.com>
+
+ * include/bits/regex_compiler.h: Change _ScannerT into char-type
+ templated.
+ * include/bits/regex_scanner.h (_Scanner<>::_Scanner()): Separate
+ _ScannerBase from _Scanner; Change _Scanner's template argument from
+ _FwdIter to _CharT. Avoid use of std::map and std::set by using arrays
+ instead.
+ * include/bits/regex_scanner.tcc (_Scanner<>::_Scanner(),
+ _Scanner<>::_M_scan_normal(), _Scanner<>::_M_eat_escape_ecma(),
+ _Scanner<>::_M_eat_escape_posix(), _Scanner<>::_M_eat_escape_awk()):
+ Likewise.
+ * include/std/regex: Add <cstring> for using strchr.
+
+2014-01-17 Tim Shen <timshen91@gmail.com>
+
+ * bits/regex_automaton.tcc: Indentation fix.
+ * bits/regex_compiler.h (__compile_nfa<>(), _Compiler<>,
+ _RegexTranslator<> _AnyMatcher<>, _CharMatcher<>,
+ _BracketMatcher<>): Add bool option template parameters and
+ specializations to make matching more efficient and space saving.
+ * bits/regex_compiler.tcc: Likewise.
+
+2014-01-15 François Dumont <fdumont@gcc.gnu.org>
+
+ PR libstdc++/59712
+ * include/bits/hashtable_policy.h: Fix some long lines.
+ * include/bits/hashtable.h (__hash_code_base_access): Define and
+ use it to check its _M_bucket_index noexcept qualification. Use
+ also in place of...
+ (__access_protected_ctor): ...this.
* 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.
-
-2013-01-24 Paolo Carlini <paolo.carlini@oracle.com>
-
- PR libstdc++/56085
- * include/std/complex (pow(const complex<>&, int)): Avoid __n
- signed overflow.
-
-2013-01-22 Jakub Jelinek <jakub@redhat.com>
-
- * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
- Tightten scan-assembler-times regexps, add dg-additional-options for
- ia32, add -g0 -fno-exceptions -fno-asynchronous-unwind-tables to
- dg-options.
-
-2013-01-12 Andi Kleen <ak@linux.intel.com>
- Jonathan Wakely <jwakely.gcc@gmail.com>
-
- PR libstdc++/55233
- * 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.
-
-2013-01-19 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- PR libstdc++/55861
- * include/std/future (_State_base::_S_check(const shared_ptr<T>&)):
- Fix return type.
- (__basic_future::_M_get_result()): Const qualify.
- (shared_future::get()): Likewise.
- * testsuite/30_threads/shared_future/members/get.cc: Use const
- objects.
-
-2013-01-16 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- 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.
-
-2013-01-16 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- 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.
-
-2013-01-03 Janis Johnson <janisjo@codesourcery.com>
-
- * testsuite/lib/gdb-test.exp (gdb_batch_check): Catch error running
- gdb command.
-
-2013-01-08 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- * doc/xml/manual/status_cxx2011.xml: Document that N3189 is missing.
-
-2013-01-08 Jonathan Wakely <jwakely.gcc@gmail.com>
-
- PR libstdc++/55908
- * include/std/functional (_Mem_fn::operator()): Fix constraints to
- avoid ambiguity.
- * testsuite/20_util/function_objects/mem_fn/55908.cc: New.
- * testsuite/20_util/bind/ref_neg.cc: Adjust dg-error line numbers.
-
-2013-01-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
-
- PR libstdc++/55594
- * acinclude.m4 (GLIBCXX_CHECK_ASSEMBLER_HWCAP): Restrict test to
- Solaris targets.
- * configure: Regenerate.
+ not_default_constructible_hash_neg.cc: Likewise.
-2013-01-07 Jonathan Wakely <jwakely.gcc@gmail.com>
+2014-01-13 François Dumont <fdumont@gcc.gnu.org>
- PR libstdc++/55847
- * src/c++11/shared_ptr.cc (bad_weak_ptr::what()): Correct string.
- * testsuite/20_util/shared_ptr/cons/weak_ptr_expired.cc: Verify
- string.
+ * include/debug/set.h (set): Implement C++11 allocator-aware
+ container requirements.
+ * include/debug/map.h (map): Likewise.
+ * include/debug/multiset.h (multiset): Likewise.
+ * include/debug/multimap.h (multimap): Likewise.
+ * include/debug/set.h (set::operator=(set&&)): Add noexcept and
+ fix implementation regarding management of safe iterators.
+ * include/debug/map.h (map::operator=(map&&)): Likewise.
+ * include/debug/multiset.h (multiset::operator=(multiset&&)): Likewise.
+ * include/debug/multimap.h (multimap::operator=(multimap&&)):
+ Likewise.
+ * include/debug/set.h (set::operator=(std::initializer_list<>)):
+ Rely on the same operator from normal mode.
+ * include/debug/map.h (map::operator=(std::initializer_list<>)):
+ Likewise.
+ * include/debug/multiset.h
+ (multiset::operator=(std::initializer_list<>)): Likewise.
+ * include/debug/multimap.h
+ (multimap::operator=(std::initializer_list<>)): Likewise.
+ * include/debug/set.h (set::swap(set&)): Add noexcept
+ specification, add allocator equality check.
+ * include/debug/map.h (map::swap(map&)): Likewise.
+ * include/debug/multiset.h (multiset::swap(multiset&)): Likewise.
+ * include/debug/multimap.h (multimap::swap(multimap&)): Likewise.
+
+2014-01-10 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/59698
+ * doc/xml/manual/status_cxx1998.xml (iso.1998.specific): Markup
+ and stylistic improvements.
+ * doc/xml/manual/codecvt.xml (std.localization.facet.codecvt): Likewise
+ and update for C++11.
+ * doc/xml/manual/ctype.xml (std.localization.facet.ctype): Likewise.
+
+ PR libstdc++/59687
+ * doc/xml/manual/backwards_compatibility.xml
+ (backwards.third.nocreate_noreplace): Correct and expand.
+
+ PR libstdc++/59699
+ * doc/xml/manual/support.xml (std.support.types.null): Update links.
+
+2014-01-09 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/59738
+ * include/bits/stl_vector.h (vector<>::_M_move_assign): Restore
+ support for non-Movable types.
+
+ PR libstdc++/59680
+ * src/c++11/thread.cc (__sleep_for): Fix call to ::sleep.
+
+2014-01-08 François Dumont <fdumont@gcc.gnu.org>
+
+ * include/bits/stl_vector.h (std::vector<>::_M_move_assign): Pass
+ *this allocator instance when building temporary vector instance
+ so that *this allocator does not get moved.
+ * include/debug/safe_base.h
+ (_Safe_sequence_base(_Safe_sequence_base&&)): New.
+ * include/debug/vector (__gnu_debug::vector<>(vector&&)): Use new
+ move constructor from _Safe_sequence_base.
+ (__gnu_debug::vector<>(vector&&, const allocator_type&)): Swap
+ safe iterators if the instance is moved.
+ (__gnu_debug::vector<>::operator=(vector&&)): Likewise.
+ * testsuite/23_containers/vector/allocator/move.cc (test01): Add
+ check on a vector iterator.
+ * testsuite/23_containers/vector/allocator/move_assign.cc
+ (test02): Likewise.
+ (test03): New, test with a non-propagating allocator.
+ * testsuite/23_containers/vector/debug/move_assign_neg.cc: New.
- PR libstdc++/55728
- * include/std/functional (bad_function_call::what()): Declare.
- * src/c++11/functional.cc (bad_function_call::what()): Define.
- * config/abi/pre/gnu.ver (bad_function_call::what()): Export.
- * testsuite/20_util/bad_function_call/what.cc: New.
+2014-01-07 Tim Shen <timshen91@gmail.com>
-2013-01-06 Jonathan Wakely <jwakely.gcc@gmail.com>
+ * include/bits/regex_compiler.h (_AnyMatcher<>::_AnyMatcher(),
+ _AnyMatcher<>::operator(), _AnyMatcher<>::_M_apply(),
+ _CharMatcher<>::_CharMatcher(), _CharMatcher<>::_M_translate(),
+ _BracketMatcher<>::_BracketMatcher(), _BracketMatcher<>::operator(),
+ _BracketMatcher<>::_M_add_char(),
+ _BracketMatcher<>::_M_add_collating_element(),
+ _BracketMatcher<>::_M_add_equivalence_class(),
+ _BracketMatcher<>::_M_add_character_class(),
+ _BracketMatcher<>::_M_make_range(), _BracketMatcher<>::_M_ready(),
+ _BracketMatcher<>::_M_apply(), _BracketMatcher<>::_M_make_cache()):
+ Fix _AnyMatcher behavior of POSIX style and move _M_flags
+ to template parameter; Add cache for _BracketMatcher. Adjust
+ declarations from here...
+ * include/bits/regex.h (basic_regex<>::imbue()): ...to here. Also,
+ imbuing a regex will trigger a recompilation to rebuild the cache.
+ * include/bits/regex_compiler.tcc (_Compiler<>::_M_atom(),
+ _Compiler<>::_M_bracket_expression()): Adjust matchers' caller for
+ different template bool parameters.
+ * include/bits/regex_executor.h: Remove unnecessary declarations.
+ * include/std/regex: Adjust including orders.
+ * testsuite/28_regex/traits/char/user_defined.cc: New.
+ * testsuite/28_regex/traits/wchar_t/user_defined.cc: New.
- * include/bits/unordered_map.h: Fix typo in comments.
- * doc/xml/manual/status_cxx2011.xml: Add implementation-defined bucket
- counts for unordered associative containers.
+2014-01-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
-2013-01-06 Jonathan Wakely <jwakely.gcc@gmail.com>
+ * config/abi/post/solaris2.9/baseline_symbols.txt: Regenerate.
+ * config/abi/post/solaris2.9/sparcv9/baseline_symbols.txt: Likewise.
+ * config/abi/post/solaris2.10/baseline_symbols.txt: Likewise.
+ * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
+ * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
- * doc/xml/manual/abi.xml: Update library and symbol versions.
+2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
-2013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
+ Update copyright years
- * include/ext/pb_ds/detail/splay_tree_/insert_fn_imps.hpp: Fix typo
- in copyright years.
- * testsuite/22_locale/time_get/get_weekday/wchar_t/3.cc: Likewise.
+2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
+ * testsuite/18_support/new_handler.cc,
+ testsuite/18_support/terminate_handler.cc,
+ testsuite/18_support/unexpected_handler.cc: Use the standard form for
+ the copyright notice.
-Copyright (C) 2013-2014 Free Software Foundation, Inc.
+Copyright (C) 2014 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/libstdc++-v3/ChangeLog-2013 b/libstdc++-v3/ChangeLog-2013
new file mode 100644
index 00000000000..820b029a783
--- /dev/null
+++ b/libstdc++-v3/ChangeLog-2013
@@ -0,0 +1,4599 @@
+2013-12-22 Hans-Peter Nilsson <hp@axis.com>
+
+ * testsuite/20_util/hash/chi2_quality.h: Break out from
+ chi2_quality.cc.
+ * testsuite/20_util/hash/chi2_q_bit_flip_set.cc: Ditto.
+ * testsuite/20_util/hash/chi2_q_document_words.cc: Ditto.
+ * testsuite/20_util/hash/chi2_q_bit_string_set.cc: Ditto. Increase
+ SAMPLES to 35000 for simulator targets.
+ * testsuite/20_util/hash/chi2_q_numeric_pattern_set.cc: Ditto.
+ * testsuite/20_util/hash/chi2_q_uniform_random.cc: Ditto.
+ * testsuite/20_util/hash/chi2_quality.cc: Remove.
+
+2013-12-10 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * testsuite/20_util/is_base_of/value.cc: Add test.
+
+ * include/std/fstream: Tiny formatting tweak.
+
+2013-12-09 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR libstdc++/59427
+ * include/bits/fstream.tcc (basic_filebuf<>::overflow,
+ basic_filebuf<>::xsputn): Per lwg/596, ios_base::app implies
+ ios_base:out.
+ * include/std/fstream (basic_filebuf<>::_M_set_buffer): Likewise.
+ * testsuite/27_io/basic_filebuf/sputc/char/59427.cc: New.
+ * testsuite/27_io/basic_filebuf/sputn/char/59427.cc: Likewise.
+
+2013-12-09 Renlin Li <Renlin.Li@arm.com>
+
+ * testsuite/20_util/hash/chi2_quality.cc: Change -DSAMPLES=30000.
+
+2013-12-08 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * testsuite/30_threads/async/async.cc: Fix race condition in test.
+
+2013-12-08 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * testsuite/20_util/add_const/requirements/explicit_instantiation.cc:
+ New.
+ * testsuite/20_util/add_const/value.cc: Likewise.
+ * testsuite/20_util/add_cv/requirements/explicit_instantiation.cc:
+ Likewise.
+ * testsuite/20_util/add_cv/value.cc: Likewise.
+ * testsuite/20_util/add_pointer/requirements/explicit_instantiation.cc:
+ Likewise.
+ * testsuite/20_util/add_pointer/value.cc: Likewise.
+ * testsuite/20_util/add_volatile/requirements/
+ explicit_instantiation.cc: Likewise.
+ * testsuite/20_util/add_volatile/value.cc: Likewise.
+ * testsuite/20_util/alignment_of/requirements/
+ explicit_instantiation.cc: Likewise.
+ * testsuite/20_util/alignment_of/requirements/typedefs.cc: Likewise.
+ * testsuite/20_util/alignment_of/value.cc: Likewise.
+ * testsuite/20_util/extent/requirements/explicit_instantiation.cc:
+ Likewise.
+ * testsuite/20_util/extent/requirements/typedefs.cc: Likewise.
+ * testsuite/20_util/extent/value.cc: Likewise.
+ * testsuite/20_util/has_virtual_destructor/requirements/
+ explicit_instantiation.cc: Likewise.
+ * testsuite/20_util/has_virtual_destructor/requirements/
+ typedefs.cc: Likewise.
+ * testsuite/20_util/has_virtual_destructor/value.cc: Likewise.
+ * testsuite/20_util/is_abstract/requirements/explicit_instantiation.cc:
+ Likewise.
+ * testsuite/20_util/is_abstract/requirements/typedefs.cc: Likewise.
+ * testsuite/20_util/is_abstract/value.cc: Likewise.
+ * testsuite/20_util/is_arithmetic/requirements/
+ explicit_instantiation.cc: Likewise.
+ * testsuite/20_util/is_arithmetic/requirements/typedefs.cc: Likewise.
+ * testsuite/20_util/is_arithmetic/value.cc: Likewise.
+ * testsuite/20_util/is_array/requirements/explicit_instantiation.cc:
+ Likewise.
+ * testsuite/20_util/is_array/requirements/typedefs.cc: Likewise.
+ * testsuite/20_util/is_array/value.cc: Likewise.
+ * testsuite/20_util/is_base_of/requirements/explicit_instantiation.cc:
+ Likewise.
+ * testsuite/20_util/is_base_of/requirements/typedefs.cc: Likewise.
+ * testsuite/20_util/is_base_of/value.cc: Likewise.
+ * testsuite/20_util/is_class/requirements/explicit_instantiation.cc:
+ Likewise.
+ * testsuite/20_util/is_class/requirements/typedefs.cc: Likewise.
+ * testsuite/20_util/is_class/value.cc: Likewise.
+ * testsuite/20_util/is_const/requirements/explicit_instantiation.cc:
+ Likewise.
+ * testsuite/20_util/is_const/requirements/typedefs.cc: Likewise.
+ * testsuite/20_util/is_const/value.cc: Likewise.
+ * testsuite/20_util/is_empty/requirements/explicit_instantiation.cc:
+ Likewise.
+ * testsuite/20_util/is_empty/requirements/typedefs.cc: Likewise.
+ * testsuite/20_util/is_empty/value.cc: Likewise.
+ * testsuite/20_util/is_enum/requirements/explicit_instantiation.cc:
+ Likewise.
+ * testsuite/20_util/is_enum/requirements/typedefs.cc
+ * testsuite/20_util/is_enum/value.cc: Likewise.
+ * testsuite/20_util/is_pointer/requirements/explicit_instantiation.cc
+ * testsuite/20_util/is_pointer/value.cc: Likewise.
+ * testsuite/20_util/is_polymorphic/requirements/
+ explicit_instantiation.cc: Likewise.
+ * testsuite/20_util/is_polymorphic/requirements/typedefs.cc: Likewise.
+ * testsuite/20_util/is_polymorphic/value.cc: Likewise.
+ * testsuite/20_util/is_same/requirements/explicit_instantiation.cc
+ * testsuite/20_util/is_same/requirements/typedefs.cc: Likewise.
+ * testsuite/20_util/is_same/value.cc: Likewise.
+ * testsuite/20_util/is_union/requirements/
+ explicit_instantiation.cc: Likewise.
+ * testsuite/20_util/is_union/requirements/typedefs.cc: Likewise.
+ * testsuite/20_util/is_union/value.cc: Likewise.
+ * testsuite/20_util/is_void/requirements/explicit_instantiation.cc
+ * testsuite/20_util/is_void/requirements/typedefs.cc: Likewise.
+ * testsuite/20_util/is_void/value.cc: Likewise.
+ * testsuite/20_util/is_volatile/requirements/
+ explicit_instantiation.cc: Likewise.
+ * testsuite/20_util/is_volatile/requirements/typedefs.cc: Likewise.
+ * testsuite/20_util/is_volatile/value.cc: Likewise.
+ * testsuite/20_util/rank/requirements/explicit_instantiation.cc:
+ Likewise.
+ * testsuite/20_util/rank/requirements/typedefs.cc: Likewise.
+ * testsuite/20_util/rank/value.cc: Likewise.
+ * testsuite/20_util/remove_all_extents/requirements/
+ explicit_instantiation.cc: Likewise.
+ * testsuite/20_util/remove_all_extents/value.cc: Likewise.
+ * testsuite/20_util/remove_const/requirements/
+ explicit_instantiation.cc: Likewise.
+ * testsuite/20_util/remove_const/value.cc: Likewise.
+ * testsuite/20_util/remove_cv/requirements/explicit_instantiation.cc:
+ Likewise.
+ * testsuite/20_util/remove_cv/value.cc: Likewise.
+ * testsuite/20_util/remove_extent/requirements/
+ explicit_instantiation.cc: Likewise.
+ * testsuite/20_util/remove_extent/value.cc: Likewise.
+ * testsuite/20_util/remove_pointer/requirements/
+ explicit_instantiation.cc: Likewise.
+ * testsuite/20_util/remove_pointer/value.cc: Likewise.
+ * testsuite/20_util/remove_volatile/requirements/
+ explicit_instantiation.cc: Likewise.
+ * testsuite/20_util/remove_volatile/value.cc: Likewise.
+
+2013-12-06 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * testsuite/util/testsuite_tr1.h (test_category, test_property,
+ test_relationship): constexpr in c++11 mode.
+ * testsuite/20_util/add_lvalue_reference/value.cc: Use static_assert
+ and change to dg-do compile testcase.
+ * testsuite/20_util/add_rvalue_reference/value.cc: Likewise.
+ * testsuite/20_util/aligned_storage/value.cc: Likewise.
+ * testsuite/20_util/has_trivial_copy_assign/value.cc: Likewise.
+ * testsuite/20_util/has_trivial_copy_constructor/value.cc: Likewise.
+ * testsuite/20_util/has_trivial_default_constructor/value.cc: Likewise.
+ * testsuite/20_util/is_compound/value.cc: Likewise.
+ * testsuite/20_util/is_constructible/value.cc: Likewise.
+ * testsuite/20_util/is_convertible/value.cc: Likewise.
+ * testsuite/20_util/is_copy_assignable/value.cc: Likewise.
+ * testsuite/20_util/is_copy_constructible/value.cc: Likewise.
+ * testsuite/20_util/is_floating_point/value.cc: Likewise.
+ * testsuite/20_util/is_function/value.cc: Likewise.
+ * testsuite/20_util/is_fundamental/value.cc: Likewise.
+ * testsuite/20_util/is_integral/value.cc: Likewise.
+ * testsuite/20_util/is_literal_type/value.cc: Likewise.
+ * testsuite/20_util/is_lvalue_reference/value.cc: Likewise.
+ * testsuite/20_util/is_member_function_pointer/value.cc: Likewise.
+ * testsuite/20_util/is_member_object_pointer/value.cc: Likewise.
+ * testsuite/20_util/is_member_pointer/value.cc: Likewise.
+ * testsuite/20_util/is_move_assignable/value.cc: Likewise.
+ * testsuite/20_util/is_move_constructible/value.cc: Likewise.
+ * testsuite/20_util/is_nothrow_assignable/value.cc: Likewise.
+ * testsuite/20_util/is_nothrow_constructible/value.cc: Likewise.
+ * testsuite/20_util/is_nothrow_copy_assignable/value.cc: Likewise.
+ * testsuite/20_util/is_nothrow_copy_constructible/value.cc: Likewise.
+ * testsuite/20_util/is_nothrow_default_constructible/value.cc: Likewise.
+ * testsuite/20_util/is_nothrow_move_assignable/value.cc: Likewise.
+ * testsuite/20_util/is_nothrow_move_constructible/value.cc: Likewise.
+ * testsuite/20_util/is_null_pointer/value.cc: Likewise.
+ * testsuite/20_util/is_object/value.cc: Likewise.
+ * testsuite/20_util/is_pod/value.cc: Likewise.
+ * testsuite/20_util/is_reference/value.cc: Likewise.
+ * testsuite/20_util/is_rvalue_reference/value.cc: Likewise.
+ * testsuite/20_util/is_scalar/value.cc: Likewise.
+ * testsuite/20_util/is_signed/value.cc: Likewise.
+ * testsuite/20_util/is_standard_layout/value.cc: Likewise.
+ * testsuite/20_util/is_trivial/value.cc: Likewise.
+ * testsuite/20_util/is_trivially_destructible/value.cc: Likewise.
+ * testsuite/20_util/is_unsigned/value.cc: Likewise.
+ * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Likewise.
+ * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc: Likewise.
+ * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc: Likewise.
+ * testsuite/20_util/remove_reference/value.cc: Likewise.
+
+2013-12-03 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * include/std/fstream (basic_filebuf::open): Use preformatted text
+ for table in Doxygen comment.
+
+2013-12-03 Tim Shen <timshen91@gmail.com>
+
+ * regex_compiler.h: Add todo comment.
+ * regex_executor.tcc: Likewise.
+
+2013-11-29 Matthias Klose <doko@ubuntu.com>
+
+ * testsuite/experimental/string_view/requirements/exception,
+ testsuite/experimental/string_view/capacity/wchar_t,
+ testsuite/experimental/string_view/capacity/char: Remove empty dirs.
+
+2013-11-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * testsuite/ext/random/hypergeometric_distribution/operators/values.cc:
+ Use dg-require-cmath instead.
+
+ * testsuite/ext/random/hypergeometric_distribution/operators/values.cc
+ (test01): Wrap in _GLIBCXX_USE_C99_MATH_TR1.
+
+2013-11-22 François Dumont <fdumont@gcc.gnu.org>
+
+ * include/debug/safe_local_iterator.h (_Safe_local_iterator<>):
+ Remove _M_bucket, use same information in normal local_iterator.
+ (operator==): Remove redundant _M_can_compare check.
+ * include/debug/safe_local_iterator.tcc: Adapt.
+ * include/debug/unordered_set: Likewise.
+ * include/debug/unordered_map: Likewise.
+
+2013-11-22 Jakub Jelinek <jakub@redhat.com>
+
+ * testsuite/Makefile.am (check_DEJAGNU_normal_targets): Add 10.
+ (check-DEJAGNU): Add normal10, run 28_regex/[ab]*
+ tests as another separate job.
+ * testsuite/Makefile.in: Regenerated.
+
+2013-11-22 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * acinclude.m4 (libtool_VERSION): Bump.
+ * configure: Regenerate.
+ * doc/xml/manual/abi.xml: Update version information.
+
+ PR libstdc++/59247
+ * include/bits/c++config (_GLIBCXX_INLINE_VERSION): Declare namespace
+ std::experimental::__7 as inline.
+ * include/bits/regex.h (_GLIBCXX_BEGIN_NAMESPACE_VERSION): Do not
+ enclose namespace __detail.
+ * include/bits/regex.tcc (_GLIBCXX_BEGIN_NAMESPACE_VERSION): Likewise.
+ * include/std/iomanip (_GLIBCXX_BEGIN_NAMESPACE_VERSION): Likewise.
+ * include/ext/pb_ds/tag_and_trait.hpp (detail): Fix comment.
+ * testsuite/ext/profile/mutex_extensions_neg.cc: Adjust line number.
+
+2013-11-22 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * testsuite/ext/random/hypergeometric_distribution/operators/
+ values.cc: Fix further thinkos.
+
+2013-11-22 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * testsuite/ext/random/hypergeometric_distribution/operators/
+ values.cc: Fix thinkos.
+
+2013-11-21 Edward Smith-Rowland <3dw4rd@verizon.net>
+
+ * include/experimental/string_view: Rep empty string with unit-length
+ static constexpr string. Uncomment _GLIBCXX_VISIBILITY. Enforce
+ invariant of no nullptr string pointer.
+ * include/experimental/string_view.tcc: Ditto.
+ * testsuite/experimental/string_view/cons/char/1.cc: data() for empty
+ string_view is no longer nullptr.
+ * testsuite/experimental/string_view/cons/wchar_t/1.cc: Ditto.
+ * testsuite/experimental/string_view/operations/data/char/1.cc: Ditto.
+ * testsuite/experimental/string_view/operations/data/wchar_t/1.cc:
+ Ditto.
+
+2013-11-21 Edward Smith-Rowland <3dw4rd@verizon.net>
+
+ Implement __gnu_cxx::hypergeometric_distribution.
+ * include/ext/random: Add hypergeometric_distribution.
+ * include/ext/random.tcc: Add hypergeometric_distribution.
+ * testsuite/util/testsuite_random.h (hypergeometric_pdf): New pdf
+ for the hypergeometric discreet distribution;
+ (lbincoef): New supporting function for binomial coefficients.
+ * testsuite/ext/random/hypergeometric_distribution/operators/
+ serialize.cc: New.
+ * testsuite/ext/random/hypergeometric_distribution/operators/
+ equal.cc: New.
+ * testsuite/ext/random/hypergeometric_distribution/operators/
+ inequal.cc: New.
+ * testsuite/ext/random/hypergeometric_distribution/operators/
+ values.cc: New.
+ * testsuite/ext/random/hypergeometric_distribution/cons/parms.cc: New.
+ * testsuite/ext/random/hypergeometric_distribution/cons/default.cc: New.
+ * testsuite/ext/random/hypergeometric_distribution/requirements/
+ explicit_instantiation/1.cc: New.
+ * testsuite/ext/random/hypergeometric_distribution/requirements/
+ typedefs.cc: New.
+
+2013-11-20 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ PR c++/59173
+ * include/ext/pointer.h (pointer_traits<>::rebind<>): Add template
+ keyword in nested name.
+
+ PR libstdc++/49204
+ * include/std/future (__future_base::_State_base): Rename to
+ __future_base::_State_baseV2.
+ (__future_base::_State_baseV2::~_State_baseV2): Define as defaulted.
+ (__future_base::_State_baseV2::_M_run_deferred): Rename to
+ _M_complete_async.
+ (__future_base::_State_baseV2::_M_has_deferred): Add new virtual.
+ (__future_base::_State_baseV2::wait_for): Call _M_has_deferred() to
+ test for a deferred function, or call _M_complete_async() to join an
+ async thread that has made the shared state ready.
+ (__future_base::_State_baseV2::wait_until): Likewise.
+ (__future_base::_Async_state_common): Rename to _Async_state_commonV2.
+ (__future_base::_Async_state_commonV2::_M_run_deferred): Rename to
+ _M_complete_async.
+ * src/c++11/compatibility-thread-c++0x.cc (__future_base::_State_base):
+ Export old definition.
+ (__future_base::_Async_state_common): Likewise.
+ * src/c++11/future.cc (__future_base::_State_base::~_State_base):
+ Remove.
+ * doc/xml/manual/status_cxx2011.xml: Update status.
+ * testsuite/30_threads/async/async.cc: Test future_status::timeout
+ and future_status::ready.
+ * testsuite/30_threads/async/sync.cc: Test future_status::deferred.
+
+2013-11-20 David Edelsohn <dje.gcc@gmail.com>
+
+ * testsuite/17_intro/static.cc: Ignore AIX TOC reload warnings.
+
+2013-11-19 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * testsuite/23_containers/forward_list/allocator/noexcept.cc: Change
+ to compile-only test. Adjust swap overload to handle rebound
+ allocators.
+ * 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/allocator/swap.cc: Add elements
+ before swapping.
+
+ * config/abi/pre/gnu.ver (_ZNSt11regex_errorC*): Export regex_error
+ constructors.
+ * testsuite/20_util/addressof/1.cc: Remove { dg-do compile }.
+ * testsuite/20_util/allocator_traits/members/destroy.cc: Likewise.
+ * testsuite/20_util/allocator_traits/members/select.cc: Likewise. Fix
+ failure.
+ * testsuite/28_regex/basic_regex/ctors/extended/cstring.cc: Likewise.
+ * testsuite/28_regex/init-list.cc: Likewise.
+ * testsuite/28_regex/regex_error/regex_error.cc: Likewise.
+ * testsuite/28_regex/sub_match/length.cc: Likewise. Add main.
+ * testsuite/28_regex/sub_match/cast_char.cc: Likewise. Fix test.
+ * testsuite/28_regex/sub_match/cast_wchar_t.cc: Likewise.
+ * testsuite/tr1/7_regular_expressions/regex/cons/char/
+ c_string_extended.cc: Delete.
+
+2013-11-19 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * include/experimental/string_view (_S_max_size): Remove.
+ (basic_string_view<>::max_size): Adjust.
+ * testsuite/experimental/string_view/capacity/1.cc: Clean-up.
+ * testsuite/experimental/string_view/inserters/pod/10081-out.cc:
+ Likewise.
+
+2013-11-19 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * doc/xml/manual/status_cxx2014.xml: Create new table for TS statuses.
+
+2013-11-18 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * include/bits/shared_ptr_base.h (_Sp_counted_base<_S_single>): Use
+ non-atomic operations.
+ * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust line number.
+ * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
+
+2013-11-16 Edward Smith-Rowland <3dw4rd@verizon.net>
+
+ Implement N3762 string_view: a non-owning reference to a string.
+ * include/Makefile.am: Add string_view and string_view.tcc.
+ * include/Makefile.in: Regenerate.
+ * include/experimental/string_view: Implement basic_string_view.
+ * include/experimental/string_view.tcc: Implement basic_string_view.
+ * testsuite/experimental/string_view/capacity/1.cc: New.
+ * testsuite/experimental/string_view/cons/char/1.cc: New.
+ * testsuite/experimental/string_view/cons/char/2.cc: New.
+ * testsuite/experimental/string_view/cons/char/3.cc: New.
+ * testsuite/experimental/string_view/cons/wchar_t/1.cc: New.
+ * testsuite/experimental/string_view/cons/wchar_t/2.cc: New.
+ * testsuite/experimental/string_view/cons/wchar_t/3.cc: New.
+ * testsuite/experimental/string_view/element_access/char/1.cc: New.
+ * testsuite/experimental/string_view/element_access/char/2.cc: New.
+ * testsuite/experimental/string_view/element_access/char/empty.cc: New.
+ * testsuite/experimental/string_view/element_access/char/front_back.cc:
+ New.
+ * testsuite/experimental/string_view/element_access/wchar_t/1.cc: New.
+ * testsuite/experimental/string_view/element_access/wchar_t/2.cc: New.
+ * testsuite/experimental/string_view/element_access/wchar_t/empty.cc:
+ New.
+ * testsuite/experimental/string_view/element_access/wchar_t/
+ front_back.cc: New.
+ * testsuite/experimental/string_view/include.cc: New.
+ * testsuite/experimental/string_view/inserters/char/1.cc: New.
+ * testsuite/experimental/string_view/inserters/char/2.cc: New.
+ * testsuite/experimental/string_view/inserters/char/3.cc: New.
+ * testsuite/experimental/string_view/inserters/pod/10081-out.cc: New.
+ * testsuite/experimental/string_view/inserters/wchar_t/1.cc: New.
+ * testsuite/experimental/string_view/inserters/wchar_t/2.cc: New.
+ * testsuite/experimental/string_view/inserters/wchar_t/3.cc: New.
+ * testsuite/experimental/string_view/literals/types.cc: New.
+ * testsuite/experimental/string_view/literals/values.cc: New.
+ * testsuite/experimental/string_view/modifiers/remove_prefix/char/1.cc:
+ New.
+ * testsuite/experimental/string_view/modifiers/remove_prefix/wchar_t/
+ 1.cc: New.
+ * testsuite/experimental/string_view/modifiers/remove_suffix/char/1.cc:
+ New.
+ * testsuite/experimental/string_view/modifiers/remove_suffix/wchar_t/
+ 1.cc: New.
+ * testsuite/experimental/string_view/operations/compare/char/1.cc: New.
+ * testsuite/experimental/string_view/operations/compare/char/13650.cc:
+ New.
+ * testsuite/experimental/string_view/operations/compare/wchar_t/1.cc:
+ New.
+ * testsuite/experimental/string_view/operations/compare/wchar_t/
+ 13650.cc: New.
+ * testsuite/experimental/string_view/operations/data/char/1.cc: New.
+ * testsuite/experimental/string_view/operations/data/wchar_t/1.cc: New.
+ * testsuite/experimental/string_view/operations/find/char/1.cc: New.
+ * testsuite/experimental/string_view/operations/find/char/2.cc: New.
+ * testsuite/experimental/string_view/operations/find/char/3.cc: New.
+ * testsuite/experimental/string_view/operations/find/char/4.cc: New.
+ * testsuite/experimental/string_view/operations/find/wchar_t/1.cc: New.
+ * testsuite/experimental/string_view/operations/find/wchar_t/2.cc: New.
+ * testsuite/experimental/string_view/operations/find/wchar_t/3.cc: New.
+ * testsuite/experimental/string_view/operations/find/wchar_t/4.cc: New.
+ * testsuite/experimental/string_view/operations/rfind/char/1.cc: New.
+ * testsuite/experimental/string_view/operations/rfind/char/2.cc: New.
+ * testsuite/experimental/string_view/operations/rfind/char/3.cc: New.
+ * testsuite/experimental/string_view/operations/rfind/wchar_t/1.cc: New.
+ * testsuite/experimental/string_view/operations/rfind/wchar_t/2.cc: New.
+ * testsuite/experimental/string_view/operations/rfind/wchar_t/3.cc: New.
+ * testsuite/experimental/string_view/operations/substr/char/1.cc: New.
+ * testsuite/experimental/string_view/operations/substr/wchar_t/1.cc:
+ New.
+ * testsuite/experimental/string_view/operators/char/2.cc: New.
+ * testsuite/experimental/string_view/operators/wchar_t/2.cc: New.
+ * testsuite/experimental/string_view/range_access/char/1.cc: New.
+ * testsuite/experimental/string_view/range_access/wchar_t/1.cc: New.
+ * testsuite/experimental/string_view/requirements/
+ explicit_instantiation/1.cc: New.
+ * testsuite/experimental/string_view/requirements/
+ explicit_instantiation/char/1.cc: New.
+ * testsuite/experimental/string_view/requirements/
+ explicit_instantiation/char16_t/1.cc: New.
+ * testsuite/experimental/string_view/requirements/
+ explicit_instantiation/char32_t/1.cc: New.
+ * testsuite/experimental/string_view/requirements/
+ explicit_instantiation/wchar_t/1.cc: New.
+ * testsuite/experimental/string_view/requirements/typedefs.cc: New.
+ * testsuite/experimental/string_view/types/1.cc: New.
+
+2013-11-16 François Dumont <fdumont@gcc.gnu.org>
+
+ * testsuite/23_containers/unordered_set/55043.cc (equal): Add
+ missing & on rhs parameter.
+
+2013-11-15 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * include/bits/stl_bvector.h (vector<bool>::emplace_back()): LWG 2187:
+ Define.
+ (vector<bool>::emplace()): Likewise.
+ * testsuite/23_containers/vector/bool/emplace.cc: New.
+
+2013-11-15 Ondřej Bílka <neleai@seznam.cz>
+ Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * doc/xml/manual/build_hacking.xml: Fix documentation typos.
+ * doc/xml/manual/configure.xml: Likewise.
+ * include/bits/atomic_base.h: Fix typos in comments.
+ * include/bits/random.h: Likewise.
+ * include/ext/cast.h: Likewise.
+ * libsupc++/cxxabi.h: Likewise.
+ * testsuite/ext/pb_ds/example/hash_illegal_resize.cc: Likewise.
+ * testsuite/tr1/5_numerical_facilities/special_functions/testcase.h:
+ Likewise.
+ * testsuite/util/exception/safety.h: Likewise.
+ * testsuite/util/testsuite_containers.h: Likewise.
+ * testsuite/util/testsuite_hooks.cc: Likewise.
+
+2013-11-15 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * include/bits/stl_map.h (map): Implement C++11 allocator-aware
+ container requirements.
+ * include/bits/stl_multimap.h (multimap): Likewise.
+ * include/bits/stl_multiset.h (multiset): Likewise.
+ * include/bits/stl_set.h (set): Likewise.
+ * include/bits/stl_tree.h (_Rb_tree_node): Use __aligned_buffer and
+ add accessors for value.
+ (_Rb_tree_iterator, _Rb_tree_const_iterator): Use _Rb_tree_node
+ accessors.
+ (_Rb_tree): Use allocator_traits and implement support for sets and
+ maps the be allocator-aware.
+ * include/bits/forward_list.h (_Fwd_list_base::_M_create_node): Do
+ not zero-initialize storage buffer.
+ * include/bits/hashtable_policy.h (_Hashtable_alloc::_M_allocate_node):
+ Likewise.
+ * include/bits/stl_vector.h (vector(vector&&, const allocator_type&)):
+ Add conditional noexcept specification.
+ * doc/xml/manual/status_cxx2011.xml: Update status of containers.
+ * testsuite/util/testsuite_allocator.h: Re-indent.
+ * testsuite/23_containers/forward_list/allocator/copy.cc: Test
+ allocator-extended copy constructor.
+ * testsuite/23_containers/unordered_map/allocator/copy.cc: Likewise.
+ * testsuite/23_containers/unordered_multimap/allocator/copy.cc:
+ Likewise.
+ * testsuite/23_containers/unordered_multiset/allocator/copy.cc:
+ Likewise.
+ * testsuite/23_containers/unordered_set/allocator/copy.cc: Likewise.
+ * testsuite/23_containers/vector/allocator/copy.cc: Likewise.
+ * testsuite/23_containers/forward_list/allocator/move.cc: New.
+ * testsuite/23_containers/unordered_map/allocator/move.cc: New.
+ * testsuite/23_containers/unordered_multimap/allocator/move.cc: New.
+ * testsuite/23_containers/unordered_multiset/allocator/move.cc: New.
+ * testsuite/23_containers/unordered_set/allocator/move.cc: New.
+ * testsuite/23_containers/vector/allocator/move.cc: New.
+ * testsuite/23_containers/map/allocator/copy.cc: New.
+ * testsuite/23_containers/map/allocator/copy_assign.cc: New.
+ * testsuite/23_containers/map/allocator/minimal.cc: New.
+ * testsuite/23_containers/map/allocator/move.cc: New.
+ * testsuite/23_containers/map/allocator/move_assign.cc: New.
+ * testsuite/23_containers/map/allocator/noexcept.cc: New.
+ * testsuite/23_containers/map/allocator/swap.cc: New.
+ * testsuite/23_containers/multimap/allocator/copy.cc: New.
+ * testsuite/23_containers/multimap/allocator/copy_assign.cc: New.
+ * testsuite/23_containers/multimap/allocator/minimal.cc: New.
+ * testsuite/23_containers/multimap/allocator/move.cc: New.
+ * testsuite/23_containers/multimap/allocator/move_assign.cc: New.
+ * testsuite/23_containers/multimap/allocator/noexcept.cc: New.
+ * testsuite/23_containers/multimap/allocator/swap.cc: New.
+ * testsuite/23_containers/multiset/allocator/copy.cc: New.
+ * testsuite/23_containers/multiset/allocator/copy_assign.cc: New.
+ * testsuite/23_containers/multiset/allocator/minimal.cc: New.
+ * testsuite/23_containers/multiset/allocator/move.cc: New.
+ * testsuite/23_containers/multiset/allocator/move_assign.cc: New.
+ * testsuite/23_containers/multiset/allocator/noexcept.cc: New.
+ * testsuite/23_containers/multiset/allocator/swap.cc: New.
+ * testsuite/23_containers/set/allocator/copy.cc: New.
+ * testsuite/23_containers/set/allocator/copy_assign.cc: New.
+ * testsuite/23_containers/set/allocator/minimal.cc: New.
+ * testsuite/23_containers/set/allocator/move.cc: New.
+ * testsuite/23_containers/set/allocator/move_assign.cc: New.
+ * testsuite/23_containers/set/allocator/noexcept.cc: New.
+ * testsuite/23_containers/set/allocator/swap.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.
+
+2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+
+ * scripts/extract_symvers.in: Ignore <localentry: > fields
+ in readelf --symbols output.
+
+2013-11-14 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * include/bits/alloc_traits.h (__allow_copy_cons): Remove.
+ (__check_copy_constructible): Likewise.
+ * include/bits/unordered_map.h (unordered_map, unordered_multimap):
+ Do not derive from __check_copy_constructible.
+ * include/bits/unordered_set.h (unordered_set, unordered_multiset):
+ Likewise.
+ * testsuite/23_containers/unordered_map/55043.cc: It is no longer
+ necessary for is_copy_constructible to be correct to use nested
+ unordered containers.
+ * testsuite/23_containers/unordered_multimap/55043.cc: Likewise.
+ * testsuite/23_containers/unordered_set/55043.cc: Likewise.
+ * testsuite/23_containers/unordered_multiset/55043.cc: Likewise.
+
+2013-11-13 Marc Glisse <marc.glisse@inria.fr>
+
+ PR libstdc++/59087
+ * include/ext/pod_char_traits.h: Uglify V, I and S.
+
+2013-11-11 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ PR libstdc++/54562
+ * include/std/mutex (__timed_mutex_impl::__clock_t): Use
+ high_resolution_clock for absolute timeouts, because
+ pthread_mutex_timedlock uses CLOCK_REALTIME not CLOCK_MONOTONIC.
+ (__timed_mutex_impl::_M_try_lock_for): Use steady_clock for relative
+ timeouts as per [thread.req.timing].
+ (__timed_mutex_impl::_M_try_lock_until<Clock,Duration>): Convert to
+ __clock_t time point instead of using _M_try_lock_for.
+
+2013-11-09 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ PR libstdc++/58982
+ * include/bits/stl_algobase.h (__copy_move::__copy_m): Use assertion
+ to prevent using memmove() on non-assignable types.
+ (__copy_move_backward::__copy_move_b): Likewise.
+ * include/bits/stl_uninitialized.h (uninitialized_copy
+ uninitialized_copy_n, uninitialized_fill, uninitialized_fill_n,
+ __uninitialized_default, __uninitialized_default_n): Check for
+ assignable as well as trivial.
+ * testsuite/20_util/specialized_algorithms/uninitialized_copy/
+ 58982.cc: New.
+ * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/
+ 58982.cc: New.
+ * testsuite/20_util/specialized_algorithms/uninitialized_fill/
+ 58982.cc: New.
+ * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/
+ 58982.cc: New.
+ * testsuite/25_algorithms/copy/58982.cc: New.
+ * testsuite/25_algorithms/copy_n/58982.cc: New.
+
+2013-11-08 François Dumont <fdumont@gcc.gnu.org>
+
+ * include/debug/safe_iterator.h (_BeforeBeginHelper<>::_S_Is):
+ Take only a const safe iterator reference.
+ (_BeforeBeginHelper<>::_S_Is_beginnest): Likewise.
+ (__get_distance): Take only one type of iterator.
+ (_Safe_iterator<>::_M_valid_range<>): Not template anymore.
+ (_Safe_iterator<>::_M_get_sequence()): Return pointer to const
+ sequence from a const_iterator and a pointer to sequence from an
+ iterator.
+ * include/debug/safe_iterator.tcc: Adapt.
+ * include/debug/safe_local_iterator.h
+ (_Safe_local_iterator<>::_M_valid_range<>): Not template anymore.
+ (_Safe_local_iterator<>::_M_get_sequence()): Return pointer to
+ const sequence from a const_iterator and a pointer to sequence
+ from an iterator.
+ * include/debug/safe_local_iterator.tcc: Adapt.
+ * include/debug/forward_list
+ (_BeforeBeginHelper<std::__debug::forward_list<>>): Adapt.
+
+2013-11-08 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * include/bits/regex_automaton.h (__detail::_State): Split
+ non-dependent parts into new _State_base.
+ (__detail::_NFA): Likewise for _NFA_base. Use std::move() to avoid
+ copies when inserting _MatcherT and _StateT objects.
+ * include/bits/regex_automaton.tcc: Move member definitions to base
+ class. Qualify dependent names.
+ * include/bits/regex_compiler.h (__detail::_Compiler::_M_get_nfa): Make
+ non-const and use std::move to avoid copying.
+ * include/bits/regex_compiler.tcc: Likewise.
+ * include/bits/regex_executor.h (__detail::_Executor::_M_is_word): Use
+ array, so past-the-end iterator is valid.
+
+ * include/bits/regex_automaton.h (__detail::_State, __detail::_NFA,
+ __detail::_StateSeq): Remove redundant _CharT template parameters.
+ * include/bits/regex_automaton.tcc: Likewise.
+ * include/bits/regex_compiler.h (__detail::_Compiler): Likewise.
+ (__compile_nfa): Add object generator for _Compiler.
+ * include/bits/regex_compiler.tcc: Remove _CharT template parameters.
+ * include/bits/regex_executor.h: Likewise.
+ * include/bits/regex_executor.tcc: Likewise.
+ * include/bits/regex.h (basic_regex): Assert char_type matches. Use
+ __compile_nfa object generator. Remove _CharT template parameter.
+
+ * include/bits/regex_compiler.h (__detail::_AnyMatcher,
+ __detail::_CharMatcher, __detail::_BracketMatcher): Remove redundant
+ _CharT template parameters.
+ * include/bits/regex_compiler.tcc: Likewise.
+
+ * include/bits/regex_compiler.h (__detail::__compile_nfa): Overload
+ so that std::basic_string<C> and std::vector<C> iterators dispatch to
+ the const C* compiler.
+
+ * include/bits/regex_compiler.h (__detail::__has_contiguous_iter):
+ vector<bool> storage is not contiguous.
+
+2013-11-06 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * include/bits/regex_automaton.h (_S_opcode_word_boundry): Rename to
+ _S_opcode_word_boundary.
+ * include/bits/regex_automaton.tcc: Likewise.
+ * include/bits/regex_executor.h (__detail::_Executor::_M_word_boundry):
+ Rename to _M_word_boundary.
+ * include/bits/regex_executor.tcc: Likewise.
+
+2013-11-05 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ N3655 C++1y TransformationTraits Redux
+ * include/std/type_traits (remove_const_t, remove_volatile_t,
+ remove_cv_t, add_const_t, add_volatile_t, add_cv_t, remove_reference_t,
+ add_lvalue_reference_t, add_rvalue_reference_t, make_signed_t,
+ make_unsigned_t, remove_extent_t, remove_all_extents_t,
+ remove_pointer_t, add_pointer_t, aligned_storage_t, decay_t,
+ enable_if_t, conditional_t, common_type_t, underlying_type_t,
+ result_of_t): Define.
+ * doc/xml/manual/status_cxx2014.xml: Update.
+ * testsuite/20_util/add_lvalue_reference/requirements/typedefs-3.cc:
+ New.
+ * testsuite/20_util/add_rvalue_reference/requirements/typedefs-3.cc:
+ New.
+ * testsuite/20_util/common_type/requirements/typedefs-3.cc: New.
+ * testsuite/20_util/conditional/requirements/typedefs-2.cc: New.
+ * testsuite/20_util/decay/requirements/typedefs-2.cc: New.
+ * testsuite/20_util/enable_if/requirements/typedefs-2.cc: New.
+ * testsuite/20_util/make_signed/requirements/typedefs-3.cc: New.
+ * testsuite/20_util/make_unsigned/requirements/typedefs-3.cc: New.
+ * testsuite/20_util/remove_reference/requirements/typedefs.cc: New.
+ * testsuite/20_util/result_of/requirements/typedefs.cc: New.
+ * testsuite/20_util/underlying_type/requirements/typedefs-3.cc: New.
+ * testsuite/20_util/common_type/requirements/typedefs-2.cc: Change to
+ compile-only test.
+ * testsuite/20_util/decay/requirements/typedefs.cc: Likewise.
+ * testsuite/20_util/make_signed/requirements/typedefs-1.cc: Likewise.
+ * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
+ line number.
+ * testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
+ Likewise.
+ * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
+ Likewise.
+
+2013-11-05 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * doc/xml/manual/status_cxx2011.xml: Document aligned_union as
+ missing.
+
+2013-11-05 Jonathan Wakely <jwakely.gcc@gmail.com>
+ Paolo Carlini <paolo.carlini@oracle.com>
+
+ * include/experimental/optional: Use __and_<> and __not_<> in
+ conditions. Style fixes.
+ (__constexpr_addressof, swap): Make inline.
+ * testsuite/experimental/optional/cons/copy.cc: Adjust constants for
+ 32-bit targets.
+ * testsuite/experimental/optional/cons/move.cc: Likewise.
+ * testsuite/experimental/optional/cons/value.cc: Likewise.
+ * testsuite/experimental/optional/constexpr/cons/value.cc: Likewise.
+
+2013-11-01 Michael Brune <lucdanton@free.fr>
+
+ * include/bits/enable_special_members.h: New.
+ * include/experimental/optional: New.
+ * include/Makefile.am: Handle include/experimental.
+ * include/Makefile.in: Regenerate.
+ * testsuite/libstdc++-dg/conformance.exp: Run tests from
+ testsuite/experimental sub-directory.
+ * testsuite/experimental/optional/assignment/1.cc: New.
+ * testsuite/experimental/optional/assignment/2.cc: New.
+ * testsuite/experimental/optional/assignment/3.cc: New.
+ * testsuite/experimental/optional/assignment/4.cc: New.
+ * testsuite/experimental/optional/assignment/5.cc: New.
+ * testsuite/experimental/optional/assignment/6.cc: New.
+ * testsuite/experimental/optional/cons/copy.cc: New.
+ * testsuite/experimental/optional/cons/default.cc: New.
+ * testsuite/experimental/optional/cons/move.cc: New.
+ * testsuite/experimental/optional/cons/value.cc: New.
+ * testsuite/experimental/optional/constexpr/cons/default.cc: New.
+ * testsuite/experimental/optional/constexpr/cons/value.cc: New.
+ * testsuite/experimental/optional/constexpr/in_place.cc: New.
+ * testsuite/experimental/optional/constexpr/make_optional.cc: New.
+ * testsuite/experimental/optional/constexpr/nullopt.cc: New.
+ * testsuite/experimental/optional/constexpr/observers/1.cc: New.
+ * testsuite/experimental/optional/constexpr/observers/2.cc: New.
+ * testsuite/experimental/optional/constexpr/observers/3.cc: New.
+ * testsuite/experimental/optional/constexpr/observers/4.cc: New.
+ * testsuite/experimental/optional/constexpr/observers/5.cc: New.
+ * testsuite/experimental/optional/constexpr/relops/1.cc: New.
+ * testsuite/experimental/optional/constexpr/relops/2.cc: New.
+ * testsuite/experimental/optional/constexpr/relops/3.cc: New.
+ * testsuite/experimental/optional/constexpr/relops/4.cc: New.
+ * testsuite/experimental/optional/constexpr/relops/5.cc: New.
+ * testsuite/experimental/optional/constexpr/relops/6.cc: New.
+ * testsuite/experimental/optional/in_place.cc: New.
+ * testsuite/experimental/optional/make_optional.cc: New.
+ * testsuite/experimental/optional/nullopt.cc: New.
+ * testsuite/experimental/optional/observers/1.cc: New.
+ * testsuite/experimental/optional/observers/2.cc: New.
+ * testsuite/experimental/optional/observers/3.cc: New.
+ * testsuite/experimental/optional/observers/4.cc: New.
+ * testsuite/experimental/optional/observers/5.cc: New.
+ * testsuite/experimental/optional/relops/1.cc: New.
+ * testsuite/experimental/optional/relops/2.cc: New.
+ * testsuite/experimental/optional/relops/3.cc: New.
+ * testsuite/experimental/optional/relops/4.cc: New.
+ * testsuite/experimental/optional/relops/5.cc: New.
+ * testsuite/experimental/optional/relops/6.cc: New.
+ * testsuite/experimental/optional/requirements.cc: New.
+ * testsuite/experimental/optional/swap/1.cc: New.
+
+2013-11-01 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * include/bits/stl_function.h (logical_not<void>): Add noexcept.
+
+2013-11-01 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR libstdc++/58952
+ * include/c_global/cstdio: Undef getchar.
+
+2013-11-01 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ N3421 C++1y Transparent functors
+ * include/bits/stl_function.h (plus<void>, minus<void>,
+ multiplies<void>, divides<void>, modulus<void>, negate<void>,
+ equal_to<void>, not_equal_to<void>, greater<void>, less<void>,
+ greater_equal<void>, less_equal<void>, logical_and<void>,
+ logical_or<void>, logical_not<void>, bit_and<void>, bit_or<void>,
+ bit_xor<void>, bit_not<void>): Define.
+ * doc/xml/manual/status_cxx2014.xml: Update.
+ * testsuite/20_util/function_objects/comparisons_void.cc: New.
+
+2013-10-31 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * include/std/tuple (_Index_tuple, _Build_index_tuple): Move to
+ <utility>.
+ * include/std/utility (integer_sequence, make_integer_sequence,
+ index_sequence, make_index_sequence, index_sequence_for): Define.
+ * doc/xml/manual/status_cxx2014.xml: Update.
+ * testsuite/20_util/integer_sequence/intseq.cc: New.
+ * testsuite/20_util/integer_sequence/requirements/typedefs.cc: New.
+
+2013-10-31 Steve Ellcey <sellcey@mips.com>
+
+ * configure.ac: Add header checks for fenv.h and complex.h.
+ * configure: Regenerate.
+
+2013-10-31 Edward Smith-Rowland <3dw4rd@verizon.net>
+
+ Implement C++14 digit separators.
+ * include/include/bits/parse_numbers.h: Change struct _Digit<_Base, '`'>
+ to struct _Digit<_Base, '\''>.
+
+2013-10-31 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * testsuite/20_util/default_delete/48631_neg.cc: Tweak dg-prune.
+
+2013-10-30 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc: Fix
+ and enable VERIFY tests.
+
+2013-10-30 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * include/bits/shared_ptr (__shared_ptr): Assert non-void pointer.
+ * include/bits/shared_ptr (default_delete): Likewise.
+ * testsuite/20_util/shared_ptr/cons/58839.cc: Do not use
+ default_delete<void>.
+ * testsuite/20_util/shared_ptr/cons/void_neg.cc: New.
+ * testsuite/20_util/default_delete/void_neg.cc: New.
+ * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust line numbers.
+ * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Likewise.
+
+2013-10-29 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ PR libstdc++/58839
+ * include/bits/shared_ptr_base.h
+ (__shared_ptr<T>::__shared_ptr(unique_ptr<U,D>&&)): Only use addressof
+ when unique_ptr<U,D>::pointer is not a built-in pointer type.
+ * testsuite/20_util/shared_ptr/cons/58839.cc: New.
+ * testsuite/20_util/enable_shared_from_this/members/assign.cc: New.
+ * testsuite/20_util/enable_shared_from_this/members/unique_ptr.cc: New.
+
+2013-10-29 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * include/bits/hashtable.cc (__access_protected_ctor): Define and use
+ new type instead of _Hashtable_ebo_helper.
+ * testsuite/23_containers/unordered_set/
+ not_default_constructible_hash_neg.cc: Adjust line number.
+
+2013-10-28 Tim Shen <timshen91@gmail.com>
+
+ * regex_executor.tcc: Add comments.
+
+2013-10-26 Tim Shen <timshen91@gmail.com>
+
+ * include/bits/regex.h: Remove unnecessary friends.
+ * include/bits/regex.tcc (__regex_algo_impl<>): Move __get_executor
+ to here.
+ * include/bits/regex_executor.h: Remove _DFSExecutor and _BFSExecutor;
+ they are merged into _Executor. Eliminate quantifier tracking part, so
+ it's faster.
+ * include/bits/regex_executor.tcc: Implement _Executor.
+ * testsuite/28_regex/algorithms/regex_match/ecma/char/ungreedy.cc: New.
+ * testsuite/28_regex/algorithms/regex_search/ecma/greedy.cc: Adjust
+ duplicate testcases.
+ * testsuite/performance/28_regex/split.h: New.
+ * testsuite/performance/28_regex/split_bfs.cc: New.
+ * testsuite/util/testsuite_regex.h: Adjust behavior of two-executors
+ agreement judger: do not compare match_results when executor return
+ false.
+
+2013-10-25 François Dumont <fdumont@gcc.gnu.org>
+
+ * include/debug/formatter.h (__check_singular): Add const on
+ iterator reference.
+ * include/debug/functions.h (__check_singular): Likewise.
+ (__check_singular(const _Safe_iterator<_Ite, _Seq>&)): Delete.
+ (__check_dereferenceable(const _Ite&)): Add const on iterator
+ reference.
+ (__check_dereferenceable(const _Safe_local_iterator<>&)): New.
+ * include/debug/safe_iterator.h (__check_singular_aux): Review
+ comment.
+ * testsuite/23_containers/vector/debug/debug_functions.cc: New.
+ * testsuite/23_containers/unordered_set/debug/debug_functions.cc:
+ New.
+
+2013-10-23 Chris Jefferson <chris@bubblescope.net>
+ Paolo Carlini <paolo.carlini@oracle.com>
+
+ * testsuite/util/testsuite_containergen.h: New.
+ * testsuite/util/testsuite_iterators.h (test_container<>::val): Add.
+ * testsuite/25_algorithms/nth_element/random_test.cc: New, use the
+ above.
+ * testsuite/25_algorithms/partial_sort/random_test.cc: Likewise.
+ * testsuite/25_algorithms/partial_sort_copy/random_test.cc: Likewise.
+ * testsuite/25_algorithms/sort/random_test.cc: Likewise.
+
+2013-10-23 Jason Merrill <jason@redhat.com>
+
+ * include/bits/hashtable.h (_Hashtable): Force EBO for _Hash_code_base.
+
+2013-10-23 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR libstdc++/58850
+ * include/std/chrono (minutes, hours): Change typedefs to uniformly
+ use int64_t.
+ * testsuite/20_util/duration/arithmetic/58850.cc: New.
+
+2013-10-23 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * testsuite/decimal/pr58815.cc: Fix thinko.
+
+2013-10-23 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR libstdc++/58815
+ * include/decimal/decimal (decimal32::operator long long(),
+ decimal64::operator long long(), decimal128::operator long long()):
+ Add in c++11 mode per n3407.
+ * testsuite/decimal/pr58815.cc: New.
+
+2013-10-22 Edward Smith-Rowland <3dw4rd@verizon.net>
+
+ * include/bits/basic_string.h (operator""s): Remove space between quotes
+ and literal identifier.
+ * include/std/chrono (operator""h, operator""min, operator""s,
+ operator""ms, operator""us, operator""ns): Ditto.
+
+2013-10-22 Ed Smith-Rowland <3dw4rd@verizon.net>
+
+ Implement N3779 - User-defined Literals for std::complex,
+ part 2 of UDL for Standard Library Types
+ * include/std/complex: Add complex literal operators.
+ * testsuite/26_numerics/complex/literals/types.cc: New.
+ * testsuite/26_numerics/complex/literals/values.cc: New.
+
+2013-10-21 Edward Smith-Rowland <3dw4rd@verizon.net>
+
+ PR libstdc++/58804
+ PR libstdc++/58729
+ * include/tr2/dynamic_bitset
+ (__dynamic_bitset_base<_WordT, _Alloc>::_M_are_all_aux,
+ __dynamic_bitset_base<_WordT, _Alloc>::_M_do_count):
+ Use __builtin_popcountll() instead of __builtin_popcountl().
+ * include/tr2/dynamic_bitset.tcc
+ (__dynamic_bitset_base<_WordT, _Alloc>::_M_do_find_first,
+ __dynamic_bitset_base<_WordT, _Alloc>::_M_do_find_next):
+ Use __builtin_ctzll() instead of __builtin_ctzl().
+
+2013-10-20 Tim Shen <timshen91@gmail.com>
+
+ * include/bits/regex.h: Remove virtual class _Automaton.
+ * include/bits/regex_automaton.h: Likewise.
+ * include/bits/regex.tcc: Adjust comment for policy changing.
+ * include/bits/regex_executor.h: Update comments of complexity.
+ * include/bits/regex_executor.tcc: Adjust executor choosing
+ policy. Now DFS executor is the default one.
+ * testsuite/util/testsuite_regex.h (regex_match_debug,
+ regex_search_debug): Adjust for policy changing.
+
+2013-10-20 Chris Jefferson <chris@bubblescope.net>
+ Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR libstdc++/58800
+ * include/bits/stl_algo.h (__unguarded_partition_pivot): Change
+ __last - 2 to __last - 1.
+ * testsuite/25_algorithms/nth_element/58800.cc: New
+
+2013-10-18 Edward Smith-Rowland <3dw4rd@verizon.net>
+
+ PR libstdc++/58729
+ * include/tr2/dynamic_bitset (_M_resize, resize): Use input value
+ to set bits; (_M_do_left_shift, _M_do_right_shift, _M_do_to_ulong,
+ _M_do_to_ullong, _M_do_find_first, _M_do_find_next, _M_copy_from_ptr,
+ operator>>): Move long methods outline to...
+ * include/tr2/dynamic_bitset.tcc: New.
+ * include/Makefile.am: Add dynamic_bitset.tcc.
+ * include/Makefile.in: Add dynamic_bitset.tcc.
+ * testsuite/tr2/dynamic_bitset/pr58729.cc: New.
+
+2013-10-18 Tim Shen <timshen91@gmail.com>
+
+ * include/bits/regex_scanner.tcc: (_Scanner<>::_M_scan_normal,
+ _Scanner<>::_M_eat_escape_ecma, _Scanner<>::_M_eat_escape_posix,
+ _Scanner<>::_M_eat_escape_awk): Narrow character before finding in maps.
+ * testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/cjk_match.cc:
+ New.
+
+2013-10-17 Tim Shen <timshen91@gmail.com>
+
+ * include/bits/regex.h (regex_token_iterator<>::regex_token_iterator):
+ Fix initialization orders in initialization list and add explicit braces
+ for potentially ambiguous(actually not) `else` branch to eliminate
+ warnings.
+ * include/bits/regex_automaton.h (_NFA<>::_NFA): Likewise.
+ * include/bits/regex_compiler.h (_CharMatcher<>::_CharMatcher,
+ _BracketMatcher<>::_BracketMatcher): Likewise.
+ * include/bits/regex_compiler.tcc (_Compiler<>::_Compiler,
+ _Compiler<>::_M_atom): Likewise.
+ * include/bits/regex_executor.h (_Executor<>::_Executor): Likewise.
+ * include/bits/regex_executor.tcc (_DFSExecutor<>::_M_dfs,
+ _Executor<>::_M_word_boundry): Likewise.
+ * include/bits/regex_scanner.tcc (_Scanner<>::_Scanner,
+ _Scanner<>::_M_eat_class): Likewise.
+ * include/bits/regex.tcc (__regex_algo_impl<>,
+ regex_iterator<>::operator++): Likewise, and remove unused typedef.
+
+2013-10-16 Tim Shen <timshen91@gmail.com>
+
+ * include/bits/regex.h (regex_token_iterator<>::regex_token_iterator):
+ Add initialization for _M_has_m1.
+ * include/bits/regex.tcc (regex_token_iterator<>::operator=): Add return
+ statment.
+
+2013-10-15 Diego Novillo <dnovillo@google.com>
+
+ * testsuite/20_util/exchange/1.cc: Add missing function
+ bodies.
+
+2013-10-15 Tim Shen <timshen91@gmail.com>
+
+ PR libstdc++/58737
+ * include/bits/regex_automaton.h (_Automaton<>::~_Automaton): Fix memory
+ leak by adding it.
+ * include/bits/regex_executor.h (_Executor<>::~_Executor): Likewise.
+
+2013-10-11 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Update.
+
+2013-10-10 Marcus Shawcroft <marcus.shawcroft@arm.com>
+
+ * testsuite/29_atomics/atomic/cons/49445.cc
+ (dg-require-atomic-builtins): Add.
+
+2013-10-09 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * testsuite/20_util/shared_ptr/cons/58659.cc: Use VERIFY instead of
+ aborting.
+
+2013-10-09 Marcus Shawcroft <marcus.shawcroft@arm.com>
+
+ * testsuite/20_util/shared_ptr/cons/58659.cc: Use __builtin_abort().
+
+2013-10-08 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * testsuite/*: Remove stray semi-colons after function definitions.
+
+2013-10-08 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ PR libstdc++/58659
+ * include/bits/shared_ptr_base.h (__shared_count::__shared_count(P,D)):
+ Delegate to constructor taking allocator.
+ (__shared_count::_S_create_from_up): Inline into ...
+ (__shared_count::__shared_count(unique_ptr<Y,D>&&): Here. Use
+ std::conditional instead of constrained overloads. Allocate memory
+ using the allocator type that will be used for deallocation.
+ * testsuite/20_util/shared_ptr/cons/58659.cc: New.
+ * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust.
+
+2013-10-08 Tim Shen <timshen91@gmail.com>
+
+ * include/bits/regex_executor.h: Add _TodoList class.
+ * include/bits/regex_executor.tcc (_BFSExecutor<>::_M_main): Add
+ _M_match_stack and _M_stack to make everything faster. Break if
+ _M_stack is empty, to reduce unnecessary idling.
+ * testsuite/performance/28_regex/split.cc: New.
+
+2013-10-06 Tim Shen <timshen91@gmail.com>
+
+ * include/bits/regex.h: (regex_token_iterator<>::regex_token_iterator):
+ Fix compile error.
+ * include/bits/regex.tcc: (regex_replace<>): Remove default parameter.
+
+2013-10-06 Tim Shen <timshen91@gmail.com>
+
+ * include/bits/regex.h (__regex_algo_impl<>, regex_match<>,
+ regex_search<>): New abstract function for regex_match and regex_search.
+ * include/bits/regex.tcc (__regex_algo_impl<>): Implement.
+ * include/bits/regex_executor.h
+ (_Executor<>::_M_lookahead,
+ _DFSExecutor<>::_M_clone,
+ _BFSExecutor<>::_M_clone): Let _M_clone to choose which executor to
+ use.
+ * include/bits/regex_executor.tcc (__get_executor<>): Update the
+ definition to support __policy.
+ * testsuite/28_regex/algorithms/regex_match/awk/cstring_01.cc: Use
+ *_debug.
+ * testsuite/28_regex/algorithms/regex_match/basic/empty_range.cc: Same.
+ * testsuite/28_regex/algorithms/regex_match/basic/string_01.cc: Same.
+ * testsuite/28_regex/algorithms/regex_match/basic/string_range_00_03.cc:
+ Same.
+ * testsuite/28_regex/algorithms/regex_match/basic/string_range_01_03.cc:
+ Same.
+ * testsuite/28_regex/algorithms/regex_match/basic/string_range_02_03.cc:
+ Same.
+ * testsuite/28_regex/algorithms/regex_match/ecma/char/53622.cc: Same.
+ * testsuite/28_regex/algorithms/regex_match/ecma/char/57173.cc: Same.
+ * testsuite/28_regex/algorithms/regex_match/ecma/char/58576.cc: Same.
+ * testsuite/28_regex/algorithms/regex_match/ecma/char/anymatcher.cc:
+ Same.
+ * testsuite/28_regex/algorithms/regex_match/ecma/char/backref.cc: Same.
+ * testsuite/28_regex/algorithms/regex_match/ecma/char/empty_range.cc:
+ Same.
+ * testsuite/28_regex/algorithms/regex_match/ecma/char/emptygroup.cc:
+ Same.
+ * testsuite/28_regex/algorithms/regex_match/ecma/char/hex.cc: Same.
+ * testsuite/28_regex/algorithms/regex_match/ecma/char/quoted_char.cc:
+ Same.
+ * testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/anymatcher.cc:
+ Same.
+ * testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/hex.cc: Same.
+ * testsuite/28_regex/algorithms/regex_match/extended/
+ string_bracket_01.cc: Same.
+ * testsuite/28_regex/algorithms/regex_match/extended/cstring_plus.cc:
+ Same.
+ * testsuite/28_regex/algorithms/regex_match/extended/
+ string_questionmark.cc: Same.
+ * testsuite/28_regex/algorithms/regex_match/extended/cstring_range.cc:
+ Same.
+ * testsuite/28_regex/algorithms/regex_match/extended/string_any.cc:
+ Same.
+ * testsuite/28_regex/algorithms/regex_match/extended/
+ string_dispatch_01.cc: Same.
+ * testsuite/28_regex/algorithms/regex_match/extended/
+ string_range_00_03.cc: Same.
+ * testsuite/28_regex/algorithms/regex_match/extended/
+ string_range_01_03.cc: Same.
+ * testsuite/28_regex/algorithms/regex_match/extended/
+ string_range_02_03.cc: Same.
+ * testsuite/28_regex/algorithms/regex_match/extended/wstring_locale.cc:
+ Same.
+ * testsuite/28_regex/algorithms/regex_search/basic/string_01.cc: Same.
+ * testsuite/28_regex/algorithms/regex_search/ecma/assertion.cc: Same.
+ * testsuite/28_regex/algorithms/regex_search/ecma/flags.cc: Same.
+ * testsuite/28_regex/algorithms/regex_search/ecma/greedy.cc: Same.
+ * testsuite/28_regex/algorithms/regex_search/ecma/string_01.cc: Same.
+ * testsuite/28_regex/match_results/format.cc: Same.
+ * testsuite/util/testsuite_regex.h
+ (regex_match_debug<>, regex_search_debug<>): Implement.
+
+2013-10-06 Oleg Endo <olegendo@gcc.gnu.org>
+ Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR libstdc++/58625
+ * include/c_global/cmath (signbit): Use __builtin_signbitf and
+ __builtin_signbitl.
+
+2013-10-03 Tim Shen <timshen91@gmail.com>
+
+ * include/bits/regex_executor.tcc (_DFSExecutor<>::_M_dfs): Fix wrong
+ backup variable initialization.
+
+2013-10-03 John Woolverton <jdwoolverton@gmail.com>
+
+ PR libstdc++/58604
+ * include/std/vector: Fix garbled line in HP Copyright.
+
+2013-10-03 Marc Glisse <marc.glisse@inria.fr>
+
+ * libsupc++/del_op.cc (operator delete): Don't test for 0 before free.
+ * libsupc++/del_opnt.cc (free): Only declare if freestanding.
+ (operator delete): Qualify free with std::.
+
+2013-10-02 Jonathan Wakely <jwakely.gcc@gmail.com>
+ Daniel Krugler <daniel.kruegler@gmail.com>
+
+ PR libstdc++/58569
+ * include/std/functional (function::_CheckResult): Move to namespace
+ scope and rename to __check_func_return_type.
+ * testsuite/20_util/function/58569.cc: New.
+
+2013-10-02 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ PR libstdc++/58594
+ * include/bits/shared_ptr_base.h
+ (_Sp_counted_ptr_inplace::_M_get_deleter()): Cast away cv-quals.
+ * testsuite/20_util/shared_ptr/creation/58594.cc: New.
+
+2013-10-02 Tim Shen <timshen91@gmail.com>
+
+ * include/bits/regex_compiler.h
+ (_BracketMatcher<>::_M_add_equivalence_class): Implement it correctly.
+ * include/bits/regex_compiler.tcc (_BracketMatcher<>::operator()):
+ Add _M_equiv_set support.
+ * testsuite/28_regex/algorithms/regex_match/extended/
+ cstring_bracket_01.cc: Add new "[[=a=]]" testcase.
+
+2013-10-01 Tim Shen <timshen91@gmail.com>
+
+ * doc/xml/manual/status_cxx2011.xml: Change "is not implemented" to
+ "is not correctly implemented".
+
+2013-10-01 Tim Shen <timshen91@gmail.com>
+
+ * doc/xml/manual/status_cxx2011.xml: Update regex status.
+ * include/bits/regex.h (match_results<>::begin,
+ match_results<>::cbegin, match_results<>::end, match_results<>::cend):
+ [28.10.3.13], [28.10.3.14] Always iterate the range [0, size()-2).
+
+2013-10-01 François Dumont <fdumont@gcc.gnu.org>
+
+ * include/parallel/algobase.h (mismatch, equal): Provide parallel
+ version for N3671 overloads.
+
+2013-10-01 Paul Pluzhnikov <ppluzhnikov@google.com>
+
+ * src/c++11/snprintf_lite.cc: Add missing
+ _GLIBCXX_{BEGIN,END}_NAMESPACE_VERSION
+
+2013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
+
+ * acinclude.m4 (GLIBCXX_ENABLE_SJLJ_EXCEPTIONS): Also check for
+ _Unwind_SjLj_Register when deciding if to set enable_sjlj_exceptions.
+ * configure: Regenerate.
+
+2013-10-01 Tim Shen <timshen91@gmail.com>
+
+ PR libstdc++/58576
+ * include/bits/regex_automaton.tcc (_NFA<>::_M_eliminate_dummy)
+ (_StateSeq<>::_M_clone): Add _S_opcode_subexpr_lookahead branch.
+ * testsuite/28_regex/algorithms/regex_match/ecma/char/58576.cc: New.
+
+2013-09-30 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * include/parallel/algo.h (__find_switch): Use __binder2nd.
+
+2013-09-30 Chris Jefferson <chris@bubblescope.net>
+
+ PR libstdc++/58437
+ * include/bits/stl_algo.h (__move_median_first): Rename to
+ __move_median_to_first, change to take an addition argument.
+ (__unguarded_partition_pivot): Adjust.
+ * testsuite/performance/25_algorithms/sort.cc: New.
+ * testsuite/performance/25_algorithms/sort_heap.cc: Likewise.
+ * testsuite/performance/25_algorithms/stable_sort.cc: Likewise.
+
+2013-09-28 François Dumont <fdumont@gcc.gnu.org>
+
+ * include/bits/stl_algo.h (remove_copy, remove_copy_if): Declare
+ inline.
+ (rotate_copy, stable_partition, partial_sort_copy): Likewise.
+ (lower_bound, upper_bound, equal_range, inplace_merge): Likewise.
+ (includes, next_permutation, prev_permutation): Likewise.
+ (replace_copy, replace_copy_if, is_sorted_until): Likewise.
+ (minmax_element, is_permutation, adjacent_find): Likewise.
+ (count, count_if, search, search_n, merge): Likewise.
+ (set_intersection, set_difference): Likewise.
+ (set_symmetric_difference, min_element, max_element): Likewise.
+ * include/bits/stl_algobase.h (lower_bound): Likewise.
+ (lexicographical_compare, mismatch): Likewise.
+
+2013-09-28 Tim Shen <timshen91@gmail.com>
+
+ * include/bits/regex_scanner.tcc (_Scanner<>::_M_eat_escape_posix):
+ Let ordinary char escaping in POSIX be valid.
+ * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Test this
+ change.
+
+2013-09-27 François Dumont <fdumont@gcc.gnu.org>
+
+ * include/bits/predefined_ops.h: New.
+ * include/bits/stl_heap.h: Include <bits/predefined_ops.h>.
+ (__is_heap_until, __push_heap, __adjust_heap, __pop_heap): Remove
+ algo duplication.
+ (__is_heap): Adapt.
+ (__make_heap): New.
+ (make_heap): Adapt to use latter.
+ (__sort_heap): New.
+ (sort_heap): Adapt to use latter.
+ * include/bits/algobase.h: Include <bits/predefined_ops.h>.
+ (__lexicographical_compare_impl): New.
+ (__lexicographical_compare<false>::__lc): Adapt to use latter.
+ (lexicographical_compare): Likewise.
+ (__lower_bound): New.
+ (lower_bound): Adapt to use latter.
+ (equal): Use _GLIBCXX_STD_A::equal in N3671 overloads.
+ (__mismatch): New.
+ (mismatch): Use latter.
+ * include/bits/algo.h: Include <bits/predefined_ops.h>. Remove
+ <functional> include.
+ (__move_median_first, __find, __find_if, __find_if_not): Remove
+ algo duplication.
+ (__find_end): Likewise.
+ (__search_n): Rename into ...
+ (__search_n_aux): ... this.
+ (__search_n): Renew, use latter.
+ (search_n): Use latter.
+ (__search): New.
+ (search): Use latter.
+ (__find_end): Likewise.
+ (__remove_copy_if): New.
+ (remove_copy): Use latter.
+ (__adjacent_find): New.
+ (adjacent_find): Use latter.
+ (__unique): New.
+ (unique): Use latter.
+ (__unique_copy): Remove algo duplication.
+ (__stable_partition): New.
+ (stable_partition): Use latter.
+ (__heap_select): Remove algo duplication, use __make_heap.
+ (__partial_sort): New, use latter.
+ (partial_sort): Use latter.
+ (__partial_sort_copy): New.
+ (partial_sort_copy): Use latter.
+ (__unguarded_linear_insert, __insertion_sort): Remove algo
+ duplication.
+ (__unguarded_insertion_sort, __final_insertion_sort): Likewise.
+ (__unguarded_partition, __unguarded_partition_pivot): Likewise.
+ (__partial_sort): New.
+ (partial_sort): Use latter.
+ (__sort): New.
+ (sort): Use latter.
+ (lower_bound): Use __lower_bound.
+ (__upper_bound): New.
+ (upper_bound): Use latter.
+ (__equal_range): New.
+ (equal_range): Use latter.
+ (__move_merge_adaptive, __move_merge_adaptive_backward): Remove
+ algo duplication.
+ (__merge_adaptive, __merge_without_buffer): Likewise.
+ (__inplace_merge): New.
+ (inplace_merge): Use latter.
+ (__move_merge, __merge_sort_loop, __chunk_insertion_sort): Remove
+ algo duplication.
+ (__merge_sort_with_buffer, __stable_sort_adaptive): Likewise.
+ (__inplace_stable_sort): Likewise.
+ (__include): New.
+ (includes): Use latter.
+ (__next_permutation): New.
+ (next_permutation): Use latter.
+ (__prev_permutation): New.
+ (prev_permutation): Use latter.
+ (__replace_copy_if): New.
+ (replace_copy): Use latter.
+ (__is_sorted_until): New.
+ (is_sorted_unitl): Use latter.
+ (__minmax_element): New.
+ (minmax_element): Use latter.
+ (__is_permutation): New.
+ (is_permutation): Use latter.
+ (__adjacent_find): New.
+ (adjacent_find): Use latter.
+ (__count_if): New.
+ (count): Use latter.
+ (count_if): Likewise.
+ (__merge): New.
+ (merge): Use latter.
+ (__stable_sort): New.
+ (stable_sort): Use latter.
+ (__set_union): New.
+ (set_union): Use latter.
+ (__set_intersection): New.
+ (set_intersection): Use latter.
+ (__set_difference): New.
+ (set_difference): Use latter.
+ (__set_symmetric_difference): New.
+ (set_symmetric_difference): Use latter.
+ (__min_element): New.
+ (min_element): Use latter.
+ (__max_element): New.
+ (max_element): Use latter.
+ * include/Makefile.am: Add predefined_ops.h.
+ * include/Makefile.in: Regenerate.
+ * include/parallel/algobase.h (equal, mismatch): Add overloads
+ from N3671.
+ * testsuite/25_algorithms/is_permutation/vectorbool.cc: New.
+ * testsuite/25_algorithms/adjacent_find/vectorbool.cc: Likewise.
+ * testsuite/25_algorithms/find/vectorbool.cc: Likewise.
+ * testsuite/25_algorithms/find_if/vectorbool.cc: Likewise.
+ * testsuite/25_algorithms/find_first_of/vectorbool.cc: Likewise.
+ * testsuite/25_algorithms/heap/vectorbool.cc: Likewise.
+ * testsuite/25_algorithms/find_end/vectorbool.cc: Likewise.
+ * testsuite/25_algorithms/find_if_not/vectorbool.cc: Likewise.
+
+2013-09-27 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ PR libstdc++/57465
+ * include/std/functional
+ (_Function_base::_Base_manager::_M_not_empty_function): Fix overload
+ for pointers.
+ * testsuite/20_util/function/cons/57465.cc: New.
+
+2013-09-26 Tim Shen <timshen91@gmail.com>
+
+ * regex_error.h: Remove _S_error_last to follow the standard.
+ * regex_scanner.tcc:
+ (_Scanner<_FwdIter>::_M_scan_in_brace): Change error_brace to
+ error_badbrace.
+ (_Scanner<>::_M_eat_escape_posix): Extended doesn't support
+ back-reference.
+ * testsuite/28_regex/algorithms/regex_match/ecma/char/53622.cc:
+ Move here from ../../extended.
+ * testsuite/28_regex/algorithms/regex_match/ecma/char/57173.cc:
+ Likewise.
+
+2013-09-25 Marc Glisse <marc.glisse@inria.fr>
+
+ PR libstdc++/58338
+ * include/bits/forward_list.h (_Fwd_list_node_base::_M_transfer_after):
+ Mark as noexcept.
+ (_Fwd_list_iterator) [_Fwd_list_iterator, operator*, operator->,
+ operator++, operator==, operator!=, _M_next]: Likewise.
+ (_Fwd_list_const_iterator) [_Fwd_list_const_iterator, operator*,
+ operator->, operator++, operator==, operator!=, _M_next]: Likewise.
+ (operator==(const _Fwd_list_iterator&, const _Fwd_list_const_iterator&),
+ operator!=(const _Fwd_list_iterator&, const _Fwd_list_const_iterator&)):
+ Likewise.
+ * include/bits/hashtable_policy.h (_Hash_node_base::_Hash_node_base,
+ _Hash_node::_M_next, _Node_iterator_base::_Node_iterator_base,
+ _Node_iterator_base::_M_incr, operator==(const _Node_iterator_base&,
+ const _Node_iterator_base&), operator!=(const _Node_iterator_base&,
+ const _Node_iterator_base&)): Likewise.
+ (_Node_iterator) [_Node_iterator, operator*, operator->, operator++]:
+ Likewise.
+ (_Node_const_iterator) [_Node_const_iterator, operator*, operator->,
+ operator++]: Likewise.
+ * include/debug/safe_iterator.h (_Safe_iterator) [_Safe_iterator,
+ operator=, operator*, operator->, operator++, operator--, operator[],
+ operator+=, operator+, operator-=, operator-, base, operator _Iterator]:
+ Likewise.
+ (operator==(const _Safe_iterator&, const _Safe_iterator&),
+ operator!=(const _Safe_iterator&, const _Safe_iterator&),
+ operator<(const _Safe_iterator&, const _Safe_iterator&),
+ operator<=(const _Safe_iterator&, const _Safe_iterator&),
+ operator>(const _Safe_iterator&, const _Safe_iterator&),
+ operator>=(const _Safe_iterator&, const _Safe_iterator&),
+ operator-(const _Safe_iterator&, const _Safe_iterator&),
+ operator+(difference_type, const _Safe_iterator&)): Likewise.
+ * include/profile/iterator_tracker.h (__iterator_tracker)
+ [__iterator_tracker, base, operator _Iterator, operator->, operator++,
+ operator--, operator=, operator*, operator[], operator+=, operator+,
+ operator-=, operator-]: Likewise.
+ (operator==(const __iterator_tracker&, const __iterator_tracker&),
+ operator!=(const __iterator_tracker&, const __iterator_tracker&),
+ operator<(const __iterator_tracker&, const __iterator_tracker&),
+ operator<=(const __iterator_tracker&, const __iterator_tracker&),
+ operator>(const __iterator_tracker&, const __iterator_tracker&),
+ operator>=(const __iterator_tracker&, const __iterator_tracker&),
+ operator-(const __iterator_tracker&, const __iterator_tracker&),
+ operator+(difference_type, const __iterator_tracker&)): Likewise.
+
+2013-09-24 Marc Glisse <marc.glisse@inria.fr>
+
+ PR libstdc++/58338
+ PR libstdc++/56166
+ * include/bits/basic_string.h (basic_string)
+ [basic_string(basic_string&&)]: Make the noexcept conditional.
+ [operator=(basic_string&&), assign(basic_string&&)]: Link to PR 58265.
+ [begin(), end(), rbegin(), rend(), clear]: Remove noexcept.
+ [pop_back]: Comment on the lack of noexcept.
+ * include/debug/string (basic_string) [basic_string(const _Allocator&),
+ basic_string(basic_string&&), begin(), end(), rbegin(), rend(), clear,
+ operator[](size_type), pop_back]: Comment out noexcept, until vstring
+ replaces basic_string.
+
+2013-09-24 Tim Shen <timshen91@gmail.com>
+
+ * include/Makefile.am: Add regex.tcc.
+ * include/Makefile.in: Regenerate.
+ * include/bits/regex.h: Remove definitions to regex.tcc.
+ * include/bits/regex.tcc: New.
+ (match_results::format, regex_replace): Implement;
+ * include/bits/regex_compiler.h: Move _M_flags to the top of class
+ member list, because other members' initialization depend on it.
+ * include/bits/regex_compiler.tcc
+ (_Compiler<>::_Compiler): Adjust member initializations.
+ (_Compiler<>::_M_quantifier): Fix ungreedy interval quantifier.
+ * include/bits/regex_executor.h: Remove _RegexT from _*Executor classes.
+ In the future, all regex classes may refactor to *Impl style.
+ * include/bits/regex_executor.tcc (_Executor::_M_set_results):
+ Merge identical code from _*Executor classes.
+ * testsuite/28_regex/algorithms/regex_match/extended/
+ string_dispatch_01.cc (fake_match<>): Adjust the hacking-style testcase
+ caller for new __get_executors interface.
+ * testsuite/28_regex/algorithms/regex_replace/char/basic_replace.cc:
+ New.
+ * testsuite/28_regex/match_results/format.cc: New.
+ * testsuite/28_regex/traits/char/lookup_collatename.cc: Remove digraph
+ testcase.
+ * testsuite/28_regex/traits/wchar_t/lookup_collatename.cc: Likewise.
+
+2013-09-23 Paul Pluzhnikov <ppluzhnikov@google.com>
+
+ * src/c++11/snprintf_lite.cc (__concat_size_t): Use
+ unsigned long long conditionally.
+
+2013-09-23 Paul Pluzhnikov <ppluzhnikov@google.com>
+
+ * src/c++11/snprintf_lite.cc (__concat_size_t): Use only
+ std::__int_to_char<unsigned long long>()
+
+2013-09-21 Paul Pluzhnikov <ppluzhnikov@google.com>
+
+ * include/bits/functexcept.h (__throw_out_of_range_fmt): New.
+ * src/c++11/functexcept.cc (__throw_out_of_range_fmt): New.
+ * src/c++11/snprintf_lite.cc: New.
+ * src/c++11/Makefile.am: Add snprintf_lite.cc.
+ * src/c++11/Makefile.in: Regenerate.
+ * config/abi/pre/gnu.ver: Add _ZSt24__throw_out_of_range_fmtPKcz.
+ * include/std/array (at): Use __throw_out_of_range_fmt.
+ * include/debug/array (at): Likewise.
+ * include/profile/array (at): Likewise.
+ * include/std/bitset (_M_check_initial_position, _M_check): New.
+ (bitset::bitset): Use _M_check_initial_position.
+ (set, reset, flip, test): Use _M_check.
+ * include/ext/vstring.h (_M_check, at): Use __throw_out_of_range_fmt.
+ * include/bits/stl_vector.h (_M_range_check): Likewise.
+ * include/bits/stl_bvector.h (_M_range_check): Likewise.
+ * include/bits/stl_deque.h (_M_range_check): Likewise.
+ * include/bits/basic_string.h (_M_check, at): Likewise.
+ * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc: Adjust.
+ * 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/array/tuple_interface/tuple_element_neg.cc: Likewise.
+ * testsuite/23_containers/array/tuple_interface/tuple_element_debug_neg.cc:
+ Likewise.
+ * testsuite/23_containers/array/tuple_interface/get_neg.cc: Likewise.
+ * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc: Likewise.
+ * testsuite/util/exception/safety.h (generate): Use __throw_out_of_range_fmt.
+
+2013-09-20 Jakub Jelinek <jakub@redhat.com>
+
+ PR testsuite/57605
+ * testsuite/lib/libstdc++.exp (libstdc++_init): Prepend
+ -fdiagnostics-color=never to cxxflags.
+
+2013-09-20 Marc Glisse <marc.glisse@inria.fr>
+
+ PR libstdc++/58338
+ * include/bits/allocator.h (__alloc_swap::_S_do_it,
+ __shrink_to_fit_aux::_S_do_it): Mark as noexcept.
+ * include/bits/basic_string.h (basic_string::_Rep) [_S_empty_rep,
+ _M_is_leaked, _M_is_shared, _M_set_leaked, _M_set_sharable,
+ _M_set_length_and_sharable, _M_dispose]: Likewise.
+ (basic_string::_Alloc_hider::_Alloc_hider): Likewise.
+ (basic_string) [_M_data, _M_rep, _M_ibegin, _M_iend, _M_limit,
+ _M_disjunct, _M_copy, _M_move, _M_assign, _S_copy_chars, _S_compare,
+ _S_empty_rep, shrink_to_fit, operator[] const, front const, back const]:
+ Likewise.
+ [clear]: Link to PR 56166.
+ [swap]: Link to PR 58265.
+ * include/bits/stl_deque.h (_Deque_iterator) [_S_buffer_size,
+ _Deque_iterator, _M_const_cast, operator*, operator->, operator++,
+ operator--, operator+=, operator+, operator-=, operator-, operator[],
+ _M_set_node]: Mark as noexcept.
+ (operator==(const _Deque_iterator&, const _Deque_iterator&),
+ operator!=(const _Deque_iterator&, const _Deque_iterator&),
+ operator<(const _Deque_iterator&, const _Deque_iterator&),
+ operator>(const _Deque_iterator&, const _Deque_iterator&),
+ operator<=(const _Deque_iterator&, const _Deque_iterator&),
+ operator>=(const _Deque_iterator&, const _Deque_iterator&),
+ operator-(const _Deque_iterator&, const _Deque_iterator&),
+ operator+(ptrdiff_t, const _Deque_iterator&)): Likewise.
+ (_Deque_base) [_Deque_base(const allocator_type&)]: Add missing call to
+ _M_initialize_map.
+ [~_Deque_base, _M_deallocate_node, _M_deallocate_map, _M_destroy_nodes]:
+ Mark as noexcept.
+ (_Deque_base::_Deque_impl) [_Deque_impl(const _Tp_alloc_type&),
+ _Deque_impl(_Tp_alloc_type&&)]: Likewise.
+ (deque) [_S_buffer_size, operator=(deque&&), shrink_to_fit, operator[],
+ front, back, pop_front, pop_back, swap]: Likewise.
+ [deque(), deque(const allocator_type&)]: Merge.
+ * include/debug/deque (deque) [operator=(deque&&), shrink_to_fit,
+ operator[], front, back, pop_front, pop_back, swap]: Mark as noexcept.
+ * include/profile/deque (deque) [operator=(deque&&), operator[], front,
+ back, pop_front, pop_back, swap]: Likewise.
+ * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
+ Adjust 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.
+
+2013-09-20 Alan Modra <amodra@gmail.com>
+
+ * configure: Regenerate.
+
+2013-09-19 Marc Glisse <marc.glisse@inria.fr>
+
+ PR libstdc++/58338
+ * include/bits/stl_tree.h (_Rb_tree_node_base) [_S_minimum, _S_maximum]:
+ Mark as noexcept.
+ (_Rb_tree_iterator) [_Rb_tree_iterator, operator*, operator->,
+ operator++, operator--, operator==, operator!=]: Likewise.
+ (_Rb_tree_const_iterator) [_Rb_tree_const_iterator, _M_const_cast,
+ operator*, operator->, operator++, operator--, operator==, operator!=]:
+ Likewise.
+ (operator==(const _Rb_tree_iterator&, const _Rb_tree_const_iterator&),
+ operator!=(const _Rb_tree_iterator&, const _Rb_tree_const_iterator&)):
+ Likewise.
+ (_Rb_tree) [_M_put_node, _M_destroy_node, _M_root, _M_leftmost,
+ _M_rightmost, _M_begin, _M_end, _S_left, _S_right, _S_minimum,
+ _S_maximum]: Likewise.
+ * include/debug/string (basic_string) [basic_string(const _Allocator&),
+ shrink_to_fit, operator[], pop_back]: Likewise.
+ * include/ext/vstring.h (__versa_string) [_M_limit, _M_disjunct,
+ _M_ibegin, _M_iend, __versa_string(const _Alloc&),
+ operator=(__versa_string&&), shrink_to_fit, operator[], front,
+ back, assign(__versa_string&&), swap]: Likewise.
+ (__versa_string) [__versa_string(), __versa_string(const _Alloc&)]:
+ Merge.
+
+2013-09-18 Marc Glisse <marc.glisse@inria.fr>
+
+ PR libstdc++/58338
+ * include/bits/stl_iterator.h (__normal_iterator) [__normal_iterator,
+ _M_const_cast, operator*, operator->, operator++, operator--,
+ operator[], operator+=, operator+, operator-=, operator-, base]:
+ Mark as noexcept.
+ (operator==(const __normal_iterator&, const __normal_iterator&),
+ operator!=(const __normal_iterator&, const __normal_iterator&),
+ operator<(const __normal_iterator&, const __normal_iterator&),
+ operator>(const __normal_iterator&, const __normal_iterator&),
+ operator<=(const __normal_iterator&, const __normal_iterator&),
+ operator>=(const __normal_iterator&, const __normal_iterator&),
+ operator-(const __normal_iterator&, const __normal_iterator&),
+ operator+(difference_type, const __normal_iterator&)): Likewise.
+ * include/bits/stl_list.h (list) [splice, _M_check_equal_allocators]:
+ Likewise.
+ (list::_M_check_equal_allocators): Abort instead of throwing.
+ * include/debug/array (array) [operator[], front, back]: Mark as
+ noexcept.
+ * include/profile/array (array) [operator[], front, back]: Likewise.
+ * include/std/array (array) [operator[], front, back]: Likewise.
+ * include/debug/list (list::splice): Likewise.
+ * include/profile/list (list::splice): Likewise.
+ * testsuite/23_containers/list/operations/5.cc: Remove file.
+ * testsuite/23_containers/list/operations/5.h: Likewise.
+
+2013-09-18 Tim Shen <timshen91@gmail.com>
+
+ * include/bits/regex.h: Add friend classes.
+ (match_results<>::position, regex_iterator<>::operator++):
+ Implement position specification in regex_iterator.
+ (regex_match<>, regex_search<>):
+ Move match_results initializations to these function. Remove `todo`.
+ * include/bits/regex_compiler.tcc:
+ (_Compiler<>::_M_quantifier): Fix greedy/ungreedy of interval matching.
+ * include/bits/regex_constants.h:
+ Fix indentation. Change match_flag_type to enum type.
+ * include/bits/regex_executor.h:
+ Merge identical code to the base class _Executor.
+ Support flags in regex_constants.
+ * include/bits/regex_executor.tcc: Likewise.
+ * include/bits/regex_scanner.h: Add comments.
+ * include/bits/regex_scanner.tcc: Same.
+ * testsuite/28_regex/algorithms/regex_search/ecma/assertion.cc:
+ Add a testcase.
+ * testsuite/28_regex/algorithms/regex_search/ecma/flags.cc: New.
+ * testsuite/28_regex/iterators/regex_iterator/char/
+ string_position_01.cc: Remove `xfail`.
+ * testsuite/28_regex/iterators/regex_iterator/wchar_t/string_02.cc:
+ Remove `xfail` and make the case really work.
+
+2013-09-18 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * testsuite/performance/25_algorithms/search_n.cc: Fix typo.
+
+2013-09-18 Marc Glisse <marc.glisse@inria.fr>
+
+ PR libstdc++/58338
+ * include/bits/list.tcc (_List_base::_M_clear, list::erase): Mark as
+ noexcept.
+ * include/bits/stl_list.h (_List_iterator) [_List_iterator,
+ _M_const_cast, operator*, operator->, operator++, operator--,
+ operator==, operator!=]: Likewise.
+ (_List_const_iterator) [_List_const_iterator, _M_const_cast, operator*,
+ operator->, operator++, operator--, operator==, operator!=]: Likewise.
+ (operator==(const _List_iterator&, const _List_const_iterator&),
+ operator!=(const _List_iterator&, const _List_const_iterator&)):
+ Likewise.
+ (_List_impl) [_List_impl(const _Node_alloc_type&),
+ _List_impl(_Node_alloc_type&&)]: Likewise.
+ (_List_base) [_M_put_node, _List_base(const _Node_alloc_type&),
+ _List_base(_List_base&&), _M_clear, _M_init]: Likewise.
+ (list) [list(), list(const allocator_type&)]: Merge.
+ (list) [list(const allocator_type&), front, back, pop_front, pop_back,
+ erase, _M_erase]: Mark as noexcept.
+ * include/debug/list (list) [list(const _Allocator&), front, back,
+ pop_front, pop_back, _M_erase, erase]: Likewise.
+ * include/profile/list (list) [list(const _Allocator&), front, back,
+ pop_front, pop_back, erase]: Likewise.
+ * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
+ Adjust line number.
+ * 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.
+
+2013-09-17 Marc Glisse <marc.glisse@inria.fr>
+
+ PR libstdc++/58338
+ * include/bits/stl_vector.h (vector::vector(),
+ vector::vector(const allocator_type&)): Merge.
+ (_Vector_impl::_Vector_impl(_Tp_alloc_type const&),
+ _Vector_impl::_Vector_impl(_Tp_alloc_type&&),
+ _Vector_impl::_M_swap_data,
+ _Vector_base::_Vector_base(const allocator_type&),
+ _Vector_base::_Vector_base(allocator_type&&),
+ _Vector_base::_Vector_base(_Vector_base&&), _Vector_base::~_Vector_base,
+ vector::vector(const allocator_type&), vector::operator[],
+ vector::operator[] const, vector::front, vector::front const,
+ vector::back, vector::back const, vector::pop_back,
+ vector::_M_erase_at_end): Mark as noexcept.
+ * include/debug/vector (vector::vector(const _Allocator&),
+ vector::operator[], vector::operator[] const, vector::front,
+ vector::front const, vector::back, vector::back const, vector::pop_back,
+ _M_requires_reallocation, _M_update_guaranteed_capacity,
+ _M_invalidate_after_nth): Mark as noexcept.
+ * include/profile/vector (vector::vector(const _Allocator&),
+ vector::operator[], vector::operator[] const, vector::front,
+ vector::front const, vector::back, vector::back const): Mark as
+ noexcept.
+ (vector::vector(vector&&, const _Allocator&)): Remove wrong noexcept.
+ * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
+ Adjust 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.
+
+2013-09-14 Tim Shen <timshen91@gmail.com>
+
+ * include/bits/regex.h (regex_match<>, regex_search<>):
+ Change regex_executor caller. Now use their return value instead
+ of checking __m[0].matched to find out if it's successful.
+ (regex_search<>): Move the search logic to regex_executor.
+ * include/bits/regex_automaton.h: Add some new _Opcode. Refactor
+ _NFA::_M_insert_*.
+ * include/bits/regex_automaton.tcc: Add DEBUG dump for new
+ _Opcode. Refactor _NFA::_M_insert_*.
+ * include/bits/regex_compiler.h (_Compiler<>::_M_get_nfa):
+ Use make_shared instead of construct by hand.
+ * include/bits/regex_compiler.tcc: Implement _Compiler<>::_M_assertion.
+ * include/bits/regex_constants.h: Fix indentation and line breaking.
+ * include/bits/regex_executor.h: Add _ResultsEntry to support
+ greedy/ungreedy mode. Move regex_search logic here.
+ * include/bits/regex_executor.tcc: Implement assertions and
+ greedy/ungreedy matching.
+ * include/bits/regex_scanner.h: Add a new token _S_token_ungreedy.
+ * include/bits/regex_scanner.tcc: Parse a new token _S_token_ungreedy.
+ * testsuite/28_regex/algorithms/regex_search/ecma/assertion.cc: New.
+ * testsuite/28_regex/algorithms/regex_search/ecma/greedy.cc: New.
+ * testsuite/28_regex/algorithms/regex_search/ecma/string_01.cc:
+ Fix comment.
+
+2013-09-13 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR libstdc++/58415
+ * include/ext/sso_string_base.h (__sso_string_base<>::
+ __sso_string_base(__sso_string_base&&)): Fix thinkos about
+ _M_length vs _M_set_length.
+ * testsuite/ext/vstring/cons/58415-1.cc: New.
+ * testsuite/ext/vstring/cons/58415-2.cc: Likewise.
+
+2013-09-12 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR libstdc++/58403
+ * include/bits/stl_iterator.h (__normal_iterator<>::operator[],
+ operator+=, operator+, operator-=, operator-): Take the argument
+ by value.
+ * testsuite/24_iterators/normal_iterator/58403.cc: New.
+
+2013-09-11 Mitsuru Kariya <kariya_mitsuru@hotmail.com>
+ Chris Jefferson <chris@bubblescope.net>
+
+ PR libstdc++/58358
+ * include/bits/stl_algo.h (search_n): Fix to guarantee a number
+ of comparisons <= number of elements in the range.
+ * testsuite/25_algorithms/search_n/58358.cc: New.
+ * testsuite/25_algorithms/search_n/iterator.cc: Extend.
+
+2013-09-10 Ed Smith-Rowland <3dw4rd@verizon.net>
+
+ * testsuite/28_regex/traits/wchar_t/value.cc: Change template args
+ from char to wchar_t, literals from 'x' to L'x'.
+
+2013-09-10 Kai Tietz <ktietz@redhat.com>
+
+ PR libstdc++/54314
+ * config/abi/pre/gnu-versioned-namespace.ver: Add thunk _ZTv0_n12_NS*
+ like in gnu.ver.
+
+2013-09-07 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR libstdc++/58341
+ * include/bits/stl_algobase.h (copy_backward): Fix documentation
+ per DR 1206.
+
+2013-09-05 Tim Shen <timshen91@gmail.com>
+
+ * include/bits/regex_automaton.h: Add dummy node type. Rewrite
+ _StateSeq.
+ * include/bits/regex_automaton.tcc: Implement them.
+ * include/bits/regex_compiler.h: Rewrite _Compiler to use new
+ _StateSeq interfaces.
+ * include/bits/regex_compiler.tcc: Implement them.
+ * include/bits/regex_scanner.h: Add word boundry assertion token.
+ * include/bits/regex_scanner.tcc (_Scanner<>::_M_eat_escape_ecma):
+ Support word boundry.
+ * testsuite/28_regex/algorithms/regex_match/basic/
+ string_range_02_03.cc: Remove "xfail".
+ * testsuite/28_regex/algorithms/regex_match/extended/cstring_plus.cc:
+ Likewise.
+ * testsuite/28_regex/algorithms/regex_match/extended/
+ string_range_02_03.cc: Likewise.
+ * testsuite/28_regex/algorithms/regex_match/extended/
+ cstring_questionmark.cc: Remove xfail and get correct length of
+ c-string.
+ * testsuite/28_regex/algorithms/regex_match/extended/
+ string_range_00_03.cc: Likewise.
+ * testsuite/28_regex/algorithms/regex_match/ecma/char/quoted_char.cc:
+ New.
+ * testsuite/28_regex/algorithms/regex_match/extended/cstring_range.cc:
+ New.
+ * testsuite/28_regex/iterators/regex_iterator/wchar_t/string_02.cc: New.
+
+2013-09-03 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR libstdc++/58302
+ * include/bits/random.tcc (negative_binomial_distribution<>::
+ operator()(_UniformRandomNumberGenerator&, const param_type&)):
+ Fix typo in template argument.
+ * testsuite/26_numerics/random/negative_binomial_distribution/
+ operators/58302.cc: New.
+
+2013-09-02 Tim Shen <timshen91@gmail.com>
+
+ * regex_automaton.h: Rearrange _NFA's layout.
+ * include/bits/regex_compiler.h: Add _AnyMatcher and _CharMatcher.
+ Rearrange _BracketMatcher's layout.
+ (_BracketMatcher<>::_M_add_char): Use set instead of vector for
+ _M_char_set.
+ (_BracketMatcher<>::_M_add_collating_element): Likewise.
+ (_BracketMatcher<>::_M_make_range): Likewise.
+ * include/bits/regex_compiler.tcc (_Compiler<>::_M_atom): Use
+ appropriate constructors of matchers above.
+ * testsuite/28_regex/algorithms/regex_match/ecma/char/anymatcher.cc:
+ New.
+ * testsuite/28_regex/algorithms/regex_match/ecma/char/backref.cc: New.
+ * testsuite/28_regex/algorithms/regex_match/ecma/char/empty_range.cc:
+ New.
+ * testsuite/28_regex/algorithms/regex_match/ecma/char/emptygroup.cc:
+ New.
+ * testsuite/28_regex/algorithms/regex_match/ecma/char/hex.cc: New.
+ * testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/anymatcher.cc:
+ New.
+ * testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/hex.cc: New.
+
+2013-08-30 François Dumont <fdumont@gcc.gnu.org>
+
+ PR libstdc++/58148
+ * include/debug/functions.h (__foreign_iterator_aux4): Use
+ sequence const_pointer as common type to compare pointers. Add a
+ fallback overload in case pointers cannot be cast to sequence
+ const_pointer.
+ * testsuite/23_containers/vector/modifiers/insert/58148.cc: New.
+
+2013-08-30 François Dumont <fdumont@gcc.gnu.org>
+
+ PR libstdc++/58191
+ * include/debug/macros.h (__glibcxx_check_partitioned_lower): Add
+ __gnu_debug::__base calls on iterators passed to internal debug
+ check.
+ (__glibcxx_check_partitioned_lower_pred): Likewise.
+ (__glibcxx_check_partitioned_upper): Likewise.
+ (__glibcxx_check_partitioned_upper_pred): Likewise.
+ (__glibcxx_check_sorted): Likewise.
+ (__glibcxx_check_sorted_pred): Likewise.
+ (__glibcxx_check_sorted_set): Likewise.
+ (__glibcxx_check_sorted_set_pred): Likewise.
+ * include/debug/functions.h (__check_partitioned_lower):
+ Remove code to detect safe iterators.
+ (__check_partitioned_upper): Likewise.
+ (__check_sorted): Likewise.
+
+2013-08-29 Tim Shen <timshen91@gmail.com>
+
+ * include/bits/regex.h (basic_regex<>::assign): Don't lose _M_traits.
+ (regex_iterator<>::regex_iterator): Return nullptr when regex_search
+ failed.
+ (regex_token_iterator<>::_M_end_of_seq): Should be defined true when
+ _M_result is(not isn't) nullptr.
+ * include/bits/regex_compiler.h: Store _Compiler::_M_traits by reference
+ instead of by value.
+ * include/bits/regex_executor.h (_DFSExecutor<>::_DFSExecutor): Add
+ _M_traits to _DFSExecutor.
+ * include/bits/regex_executor.tcc (__get_executor<>): Pass traits to
+ _DFSExecutor too.
+ * testsuite/28_regex/algorithms/regex_match/extended/wstring_locale.cc:
+ New.
+ * testsuite/28_regex/iterators/regex_token_iterator/wchar_t/
+ wstring_02.cc: New.
+
+2013-08-26 Tim Shen <timshen91@gmail.com>
+
+ * include/Makefile.am: Add regex_scanner.{h,tcc}.
+ * include/Makefile.in: Regenerate.
+ * include/bits/regex.h (match_search): Handle the `__first == __last`
+ situation correctly.
+ * include/bits/regex_compiler.h: Move _Scanner...
+ * include/bits/regex_scanner.h: ...to here. New.
+ * include/bits/regex_compiler.tcc: Move _Scanner...
+ * include/bits/regex_scanner.tcc: ...to here, too. New.
+ * include/bits/regex_executor.tcc: Use value instead of reference for
+ submatch.
+ * include/std/regex: Add regex_scanner.h
+ * testsuite/28_regex/algorithms/regex_match/awk/cstring_01.cc: New.
+ * testsuite/28_regex/algorithms/regex_match/basic/empty_range.cc: New.
+ * testsuite/28_regex/algorithms/regex_match/ecma/cstring_hex.cc: New.
+ * testsuite/28_regex/algorithms/regex_match/ecma/empty_range.cc: New.
+ * testsuite/28_regex/algorithms/regex_search/ecma/string_01.cc: New.
+
+2013-08-22 Tim Shen <timshen91@gmail.com>
+
+ * include/bits/regex.h: Replace 8 spaces in indentation with a tab.
+ * include/bits/regex_automaton.h: Same.
+ * include/bits/regex_automaton.tcc: Same.
+ * include/bits/regex_compiler.h: Same.
+ * include/bits/regex_compiler.tcc: Same.
+ * include/bits/regex_constants.h: Same.
+ * include/bits/regex_executor.h: Same.
+ * include/bits/regex_executor.tcc: Same.
+
+2013-08-22 Tim Shen <timshen91@gmail.com>
+
+ * include/bits/regex.h: Executor caller.
+ * include/bits/regex_executor.h: Fix empty grouping problem.
+ * include/bits/regex_executor.tcc: Same.
+ * testsuite/28_regex/algorithms/regex_match/ecma/cstring_emptygroup.cc:
+ New.
+
+2013-08-20 Phil Muldoon <pmuldoon@redhat.com>
+
+ PR libstdc++/53477
+ http://sourceware.org/bugzilla/show_bug.cgi?id=15195
+
+ * python/libstdcxx/v6/printers.py (Printer.__call__): If a value
+ is a reference, fetch referenced value.
+ (RxPrinter.invoke): Ditto.
+ * testsuite/libstdc++-prettyprinters/cxx11.cc (main): Add -O0
+ flag. Add referenced value tests.
+
+2013-08-20 Tim Shen <timshen91@gmail.com>
+
+ * include/bits/regex_constants.h: Add underlying `unsigned int` for
+ enum syntax_option_type.
+
+2013-08-18 Tim Shen <timshen91@gmail.com>
+
+ * include/bits/regex_automaton.h: _S_opcode_backref.
+ * include/bits/regex_automaton.tcc: Backref automaton support.
+ * include/bits/regex_compiler.tcc: Parsing support.
+ * include/bits/regex_executor.h: Add _M_traits for _DFSExecutor.
+ * include/bits/regex_executor.tcc: Add _S_opcode_backref support.
+ * testsuite/28_regex/algorithms/regex_match/ecma/string_backref.cc: New.
+
+2013-08-16 Tim Shen <timshen91@gmail.com>
+
+ * include/bits/regex.h (regex_traits<>::transform_primary):
+ Avoid past-the-end dereferences.
+
+2013-08-14 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR libstdc++/58163
+ * include/bits/basic_string.h (basic_string<>::operator[]): Fix
+ _GLIBCXX_DEBUG_PEDASSERT check vs C++11.
+ * include/ext/vstring.h: Likewise.
+ * testsuite/21_strings/basic_string/element_access/char/58163.cc:
+ New.
+ * testsuite/21_strings/basic_string/element_access/wchar_t/58163.cc:
+ Likewise.
+ * testsuite/ext/vstring/element_access/char/58163.cc: Likewise.
+ * testsuite/ext/vstring/element_access/wchar_t/58163.cc: Likewise.
+
+2013-08-14 Uros Bizjak <ubizjak@gmail.com>
+
+ * src/c++98/compatibility.cc (_ZTIe): Use
+ reinterpret_cast<const cast *> to avoid -Wcast-qual warnings.
+ (_ZTIPe): Ditto.
+ (ZTIPKe): Ditto.
+
+2013-08-09 Tim Shen <timshen91@gmail.com>
+
+ * include/bits/regex_constants.h: Change syntax_option_type to enum
+ type.
+
+2013-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * include/bits/regex.h: Replace _A, _B, _C, _R by _Ap, _Bp, _Cp, _Rp.
+
+2013-08-08 François Dumont <fdumont@gcc.gnu.org>
+
+ * include/bits/hashtable_policy.h (_Hashtable_alloc): New.
+ (_ReuseOrAllocNode, _AllocNode): Adapt to use latter rather than
+ _Hashtable.
+ (_Before_begin<>): Remove.
+ * include/bits/hashtable.h (_Hashtable): Inherit from
+ _Hashtable_alloc and adapt. Restore _M_before_begin field.
+ * src/c++11/hashtable_c++0x.cc: Add ext/alloc_traits.h include.
+ * python/libstdcxx/v6/printers.py (StdHashtableIterator): Adapt
+ access to hashtable before begin.
+ * testsuite/23_containers/unordered_set/
+ not_default_constructible_hash_neg.cc: Adapt dg-error line number.
+ * testsuite/23_containers/unordered_set/instantiation_neg.cc:
+ Likewise.
+
+2013-08-07 Tim Shen <timshen91@gmail.com>
+
+ * include/Makefile.am: Adjust to new files.
+ * include/Makefile.in: Regenerate.
+ * include/bits/regex.h: Adjust to new interfaces.
+ * include/bits/regex_automaton.h: New.
+ * include/bits/regex_automaton.tcc: New.
+ * include/bits/regex_compiler.h: Adjust to new files.
+ * include/bits/regex_compiler.tcc: New.
+ * include/bits/regex_constants.h: Tail spaces.
+ * include/bits/regex_error.h: Likewise.
+ * include/bits/regex_executor.h: New.
+ * include/bits/regex_executor.tcc: New.
+ * include/std/regex: Adjust to new files.
+ * testsuite/28_regex/algorithms/regex_match/extended/
+ string_dispatch_01.cc: Adjust to new interfaces.
+
+2013-08-07 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * include/ext/atomicity.h: Add #pragma GCC system_header.
+
+2013-08-07 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR libstdc++/58098
+ * include/bits/random.h (cauchy_distribution<>::min,
+ extreme_value_distribution<>::min, normal_distribution<>::min,
+ student_t_distribution<>::min): Fix.
+ * include/ext/random (normal_mv_distribution<>::min): Likewise.
+ * testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc:
+ Adjust.
+ testsuite/26_numerics/random/cauchy_distribution/cons/default.cc:
+ Likewise.
+ * testsuite/26_numerics/random/extreme_value_distribution/cons/
+ parms.cc: Likewise.
+ testsuite/26_numerics/random/extreme_value_distribution/cons/
+ default.cc: Likewise.
+ * testsuite/26_numerics/random/normal_distribution/cons/parms.cc:
+ Likewise.
+ * testsuite/26_numerics/random/normal_distribution/cons/default.cc:
+ Likewise.
+ * testsuite/26_numerics/random/student_t_distribution/cons/parms.cc:
+ Likewise.
+ * testsuite/26_numerics/random/student_t_distribution/cons/default.cc:
+ Likewise.
+ * testsuite/ext/random/normal_mv_distribution/cons/parms.cc: Likewise.
+ * testsuite/ext/random/normal_mv_distribution/cons/default.cc: Likewise.
+
+ * testsuite/26_numerics/random/exponential_distribution/cons/parms.cc:
+ Minor tweak.
+ * testsuite/26_numerics/random/exponential_distribution/cons/default.cc:
+ Likewise.
+
+ * testsuite/ext/von_mises_distribution/*: Move to...
+ * testsuite/ext/random/von_mises_distribution/*: ... here.
+ * testsuite/ext/triangular_distribution/*: Move to...
+ * testsuite/ext/random/triangular_distribution/*: ... here.
+
+2013-08-06 Caroline Tice <cmtice@google.com>
+
+ * fragment.am: Add XTEMPLATE_FLAGS.
+ * configure.ac: Add definitions for --enable-vtable-verify.
+ * acinclude.m4: Add --enable-vtable-verify and
+ --disable-vtable-verify; define --enable-vtable-verify; define
+ VTV_CXXFLAGS, VTV_PCH_CXXFLAGS and VTV_CXXLINKFLAGS.
+ * config/abi/pre/gnu.ver: Export symbols for vtable verification.
+ * libsupc++/Makefile.am: Define vtv_sources and add it to
+ libsupc___la_SOURCES and libsupc__convenience_la_SOURCES.
+ * libsupc++/vtv_stubs.cc: New file.
+ * include/Makefile.am: Add VTV_PCH_CXXFLAGS to PCHFLAGS.
+ * src/Makefile.am: Add VTV_CXXFLAGS to AM_CXXFLAGS; add
+ VTV_CXXLINKFLAGS to CXXLINK.
+ * src/c++98/Makefile.am: Comment out XTEMPLATE_FLAGS; add VTV_CXXFLAGS
+ to AM_CXXFLAGS; add VTV_CXXXLINKFLAGS to CXXLINK.
+ * src/C++11/Makefile.am: Ditto.
+ * doc/xml/manual/configure.xml: Add entry for --enable-vtable-verify.
+ * scripts/testsuite_flags.in: Add cxxvtvflags to Usage; cause
+ cxxvtvflags to use VTV_CXXFLAGS and VTV_CXXLINKFLAGS.
+ * testsuite/lib/libstdc++.exp: Add cxxvtvflags; add code to locate
+ libvtv if --enable-vtable-verify was used; set cxxvtvflags; add
+ cxxvtvflags to cxx_final.
+ * testsuite/18_support/bad_exception/23591_thread-1.c: Add
+ -fvtable-verify=none to compiler flags.
+ * testsuite/17_intro/freestanding.cc: Add -fvtable-verify=none
+ to compiler flags.
+ * configure: Regenerated.
+ * Makefile.in: Regenerated.
+ * python/Makefile.in: Regenerated.
+ * include/Makefile.in: Regenerated.
+ * libsupc++/Makefile.in: Regenerated.
+ * config.h.in: Regenerated.
+ * po/Makefile.in: Regenerated.
+ * src/Makefile.in: Regenerated.
+ * src/c++98/Makefile.in: Regenerated.
+ * src/c++11/Makefile.in: Regenerated.
+ * doc/Makefile.in: Regenerated.
+ * testsuite/Makefile.in: Regenerated.
+
+2013-08-06 Paolo Carlini <paolo.carlini@oracle.com>
+
+ Revert the last commit.
+
+2013-08-06 François Dumont <fdumont@gcc.gnu.org>
+
+ * include/bits/hashtable_policy.h (_Hashtable_alloc): New.
+ (_ReuseOrAllocNode, _AllocNode): Adapt to use latter rather than
+ _Hashtable.
+ (_Before_begin<>): Remove.
+ * include/bits/hashtable.h (_Hashtable): Inherit from
+ _Hashtable_alloc and adapt. Restore _M_before_begin field.
+ * python/libstdcxx/v6/printers.py (StdHashtableIterator): Adapt
+ access to hashtable before begin.
+ * testsuite/23_containers/unordered_set/
+ not_default_constructible_hash_neg.cc: Adapt dg-error line number.
+ * testsuite/23_containers/unordered_set/instantiation_neg.cc:
+ Likewise.
+
+2013-08-03 Tim Shen <timshen91@gmail.com>
+
+ Implement bracket expression.
+ * include/bits/regex.h: Remove constexpr from "|=", etc.
+ * include/bits/regex_compiler.h: Parse bracket expression.
+ * include/bits/regex_nfa.h: _Comparator and _BracketMatcher(old
+ _RangeMatcher).
+ * include/bits/regex_nfa.tcc: Implement them.
+ * testsuite/28_regex/algorithms/regex_match/extended/53622.cc:
+ from regex_search to regex_match.
+ * testsuite/28_regex/algorithms/regex_match/extended/
+ cstring_bracket_01.cc: New.
+
+2013-08-02 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * include/debug/functions.h (__foreign_iterator_aux4):
+ Initialize __l and __ge.
+
+2013-08-02 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR libstdc++/58049
+ * include/debug/functions.h: Include <bits/move.h>; minor formatting
+ changes.
+ (__foreign_iterator_aux4): Declare __l and __ge constexpr.
+ * include/debug/safe_iterator.h (_Safe_iterator<>::operator->):
+ Use __addressof.
+ * include/debug/safe_local_iterator.h (_Safe_local_iterator<>::
+ operator->): Likewise.
+
+2013-08-01 François Dumont <fdumont@gcc.gnu.org>
+
+ PR libstdc++/57779
+ * include/debug/formatter.h (_Debug_msg_id): Add
+ __msg_insert_itself_range entry.
+ * include/debug/functions.h (_Insert_range_from_self_is_safe<>):
+ New, indicate container types supporting self range insertion in
+ GNU implementation.
+ (__foreign_iterator): New, check if an iterator points to a given
+ sequence.
+ * include/debug/macros.h (__glibcxx_check_insert_range): Add check
+ using __foreign_iterator.
+ (__gibcxx_check_insert_range_after): Likewise.
+ * include/debug/string (_Insert_range_from_self_is_safe<>):
+ Partially specialized to mark __gnu_debug::basic_string<> as
+ supporting self range insert.
+ * include/debug/list (_Insert_range_from_self_is_safe<>):
+ Partially specialized to mark std::list as supporting self range
+ insert if _GLIBCXX_DEBUG_PEDANTIC is not defined.
+ * include/debug/forward_list (_Insert_range_from_self_is_safe<>):
+ Likewise.
+ * src/c++11/debug.cc (_S_debug_messages): Add
+ __msg_insert_itself_range_entry message.
+ (_Error_formatter::_Parameter::_M_print_description): Display
+ iterator sequence address rather than sequence address when the
+ parameter type is an iterator.
+ (_Error_formatter::_M_print_word): Enhance behavior when
+ displaying a word with an appended '\n'.
+ * testsuite/util/debug/checks.h (check_insert4<>): New.
+ * testsuite/23_containers/deque/debug/insert5_neg.cc: New.
+ * testsuite/23_containers/vector/debug/insert5_neg.cc: Likewise.
+ * testsuite/23_containers/vector/debug/insert6_neg.cc: Likewise.
+ * testsuite/23_containers/vector/debug/57779_neg.cc: Likewise.
+ * testsuite/23_containers/list/debug/insert5_neg.cc: Likewise.
+ * testsuite/23_containers/forward_list/debug/insert_after4_neg.cc:
+ Likewise.
+
+2013-08-01 Fabien Chêne <fabien@gcc.gnu.org>
+
+ PR c++/54537
+ * include/tr1/cmath: Remove pow(double,double) overload, remove a
+ duplicated comment about DR 550. Add a comment to explain the
+ issue.
+ * testsuite/tr1/8_c_compatibility/cmath/pow_cmath.cc: New.
+
+2013-07-31 Tim Shen <timshen91@gmail.com>
+
+ Thompson matcher refactored. Fix grouping problem.
+ * include/bits/regex.h: Use a dispatcher _M_get_matcher().
+ * include/bits/regex_compiler.h: Tweak for auto switching.
+ * include/bits/regex_grep_matcher.h: Class structure.
+ * include/bits/regex_grep_matcher.tcc: _BFSMatcher(Thompson
+ matcher) refactoring.
+ * include/bits/regex_nfa.h: Change _Results's interfaces.
+ * include/std/regex: Includes <map> and <queue>.
+ * testsuite/28_regex/algorithms/regex_match/extended/53622.cc:
+ For both matchers.
+ * testsuite/28_regex/algorithms/regex_match/extended/57173.cc:
+ For both matchers.
+ * testsuite/28_regex/algorithms/regex_match/extended/
+ string_dispatch_01.cc: New.
+
+2013-07-31 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR libstdc++/56627
+ * include/bits/stl_bvector.h: Use friend struct hash intead of
+ friend class hash to work around useless warnings produced by
+ some compilers.
+ * include/std/bitset: Likewise.
+
+2013-07-31 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * src/c++11/functexcept.cc: Do not include the whole <regex>.
+ * src/c++11/regex.cc: Likewise.
+
+2013-07-31 Tim Shen <timshen91@gmail.com>
+
+ Revert last commit.
+
+2013-07-31 Tim Shen <timshen91@gmail.com>
+
+ Thompson matcher refactored. Fix grouping problem.
+ * include/bits/regex.h: Use a dispatcher _M_get_matcher().
+ * include/bits/regex_compiler.h: Tweak for auto switching.
+ * include/bits/regex_grep_matcher.h: Class structure.
+ * include/bits/regex_grep_matcher.tcc: _BFSMatcher(Thompson
+ matcher) refactoring.
+ * include/bits/regex_nfa.h: Change _Results's interfaces.
+ * include/std/regex: Includes <map> and <queue>.
+ * testsuite/28_regex/algorithms/regex_match/extended/53622.cc:
+ For both matchers.
+ * testsuite/28_regex/algorithms/regex_match/extended/57173.cc:
+ For both matchers.
+ * testsuite/28_regex/algorithms/regex_match/extended/
+ string_dispatch_01.cc: New.
+
+2013-07-30 Paolo Carlini <paolo.carlini@oracle.com>
+
+ Revert last commit.
+
+2013-07-30 Tim Shen <timshen91@gmail.com>
+
+ Thompson matcher refactored. Fix grouping problem.
+ * include/bits/regex.h: Use a dispatcher _M_get_matcher().
+ * include/bits/regex_compiler.h: Tweak for auto switching.
+ * include/bits/regex_grep_matcher.h: Class structure.
+ * include/bits/regex_grep_matcher.tcc: _BFSMatcher(Thompson
+ matcher) refactoring.
+ * include/bits/regex_nfa.h: Change _Results's interfaces.
+ * include/std/regex: Includes <map> and <queue>.
+ * testsuite/28_regex/algorithms/regex_match/extended/53622.cc:
+ For both matchers.
+ * testsuite/28_regex/algorithms/regex_match/extended/57173.cc:
+ For both matchers.
+ * testsuite/28_regex/algorithms/regex_match/extended/
+ string_dispatch_01.cc: New.
+
+2013-07-29 Nathan Froyd <froydnj@gcc.gnu.org>
+
+ * include/std/atomic (compare_exchange_weak, compare_exchange_strong):
+ Add call to __cmpexch_failure_order.
+ * testsuite/util/testsuite_common_types.h
+ (compare_exchange_order_lowering): New generator.
+ * testsuite/29_atomics/atomic/requirements/compare_exchange_lowering.cc:
+ New test.
+
+2013-07-25 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * include/std/complex (pow(const complex<>&, int)): Enable in
+ C++11 mode too.
+ * testsuite/26_numerics/complex/dr844.cc: Adjust.
+ * doc/xml/manual/intro.xml: Update.
+
+2013-07-25 Tim Shen <timshen91@gmail.com>
+
+ Add documents and comments.
+ * include/bits/regex.h: Documents and comments.
+ * include/bits/regex_grep_matcher.h: Likewise.
+ * include/bits/regex_grep_matcher.tcc: Likewise.
+ * testsuite/28_regex/iterators/regex_iterator/char/
+ string_position_01.cc: New.
+
+2013-07-24 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR libstdc++/57976
+ * doc/xml/manual/status_cxx2011.xml: Note missing time_get::get and
+ time_get::do_get.
+
+2013-07-24 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * include/bits/random.h (random_device): Avoid using the FILE type.
+ * include/std/random: Do not include <cstdio>.
+ * src/c++11/random.cc: ... include it here.
+ (random_device::_M_init, random_device::_M_fini,
+ random_device::_M_getval): Cast back and forth void* and FILE*.
+
+2013-07-24 Tim Shen <timshen91@gmail.com>
+
+ Reimplment matcher using Depth-first search(backtracking).
+ PR libstdc++/53622
+ PR libstdc++/57173
+ * include/bits/regex.h: regex_match() and regex_search().
+ * include/bits/regex_cursor.h: Fix _M_set_pos().
+ * include/bits/regex_grep_matcher.h: add _M_dfs_match().
+ * include/bits/regex_grep_matcher.tcc: Implement it.
+ * testsuite/28_regex/algorithms/regex_match/extended/53622.cc: New.
+ * testsuite/28_regex/algorithms/regex_match/extended/57173.cc: New.
+ * testsuite/28_regex/algorithms/regex_search/basic/string_01.cc:
+ Remove xfail.
+
+2013-07-23 Tim Shen <timshen91@gmail.com>
+
+ Implement regex_iterator and regex_token_iterator.
+ * include/bits/regex.h: regex_iterator and regex_token_iterator.
+ * testsuite/28_regex/iterators/regex_iterator/char/string_01.cc:
+ New.
+ * testsuite/28_regex/iterators/regex_iterator/wchar_t/string_01.cc:
+ New.
+ * testsuite/28_regex/iterators/regex_token_iterator/char/string_01.cc:
+ New.
+ * testsuite/28_regex/iterators/regex_token_iterator/wchar_t/
+ string_01.cc: New.
+
+2013-07-23 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * include/std/random: Add back <cstdio> include.
+ * src/c++11/random.cc: Don't include <cstdio> here.
+
+2013-07-22 Jason Merrill <jason@redhat.com>
+
+ PR libstdc++/57914
+ * libsupc++/atexit_thread.cc (run): Delete cleanup elts.
+
+2013-07-22 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/57920
+ * src/c++11/random.cc (random_device::_M_getval): If possible, use
+ read instead of std::fread.
+ * include/std/random: Do not include <cstdio> unnecessarily.
+
+2013-07-21 Tim Shen <timshen91@gmail.com>
+
+ Partially implement regex_search.
+ * include/bits/regex.h: regex_search.
+ * include/bits/regex_grep_matcher.h: _M_search_from_first.
+ * include/bits/regex_grep_matcher.tcc: Implement it.
+ * testsuite/28_regex/algorithms/regex_search/basic/string_01.cc: New.
+
+2013-07-21 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ PR libstdc++/54352
+ * include/std/condition_variable (condition_variable_any): Move into
+ inline namespace _V2 and replace mutex member with shared_ptr<mutex>.
+ * src/c++11/condition_variable.cc (condition_variable_any): Move
+ definitions to ...
+ * src/c++11/compatibility-condvar.cc (condition_variable_any): Here.
+ * src/Makefile.am: Add new source file.
+ * src/Makefile.in: Regenerate.
+
+2013-07-09 Tim Shen <timshen91@gmail.com>
+
+ Implement class regex_traits.
+ * include/bits/regex.h: Implement lookup_classname and
+ lookup_collatename; modify isctype; partially implement
+ transform_primary.
+ * testsuite/28_regex/traits/char/isctype.cc: Add more test cases.
+ * testsuite/28_regex/traits/char/lookup_classname.cc: Likewise.
+ * testsuite/28_regex/traits/char/lookup_collatename.cc: Likewise.
+ * testsuite/28_regex/traits/char/transform_primary.cc: Likewise.
+ * testsuite/28_regex/traits/wchar_t/isctype.cc: New.
+ * testsuite/28_regex/traits/wchar_t/lookup_classname.cc: New.
+ * testsuite/28_regex/traits/wchar_t/lookup_collatename.cc: New.
+ * testsuite/28_regex/traits/wchar_t/transform_primary.cc: New.
+
+2013-07-07 Ed Smith-Rowland <3dw4rd@verizon.net>
+
+ * doc/xml/manual/status_cxx2014.xml: Add links for papers.
+
+2013-07-05 François Dumont <fdumont@gcc.gnu.org>
+
+ * include/bits/hashtable_policy.h (_ReuseOrAllocNode): Use forward
+ pattern.
+ (_MoveReuseOrAllocNode): Remove.
+ (_Insert_base): Take a functor defining how the node is generated.
+ * include/bits/hashtable.h: Adapt.
+ (operator=(initializer_list<value_type>)): Reuse node if any.
+ * 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.
+
+2013-07-05 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * testsuite/23_containers/deque/modifiers/insert/const_iterator.cc:
+ Tweak, avoid potential undefined behavior.
+ * testsuite/23_containers/list/modifiers/insert/const_iterator.cc:
+ Likewise.
+ * testsuite/23_containers/vector/bool/modifiers/insert/
+ const_iterator.cc: Likewise.
+ * testsuite/23_containers/vector/modifiers/insert/const_iterator.cc:
+ Likewise.
+
+2013-07-04 Veres Lajos <vlajos@gmail.com>
+ Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * config/locale/generic/codecvt_members.cc: Fix typo.
+ * configure.host: Likewise.
+ * doc/html/manual/policy_data_structures_design.html: Likewise.
+ * doc/xml/manual/policy_data_structures.xml: Likewise.
+ * include/bits/hashtable.h: Likewise.
+ * include/bits/random.h: Likewise.
+ * include/profile/impl/profiler_trace.h: Likewise.
+ * testsuite/23_containers/deque/cons/2.cc: Likewise.
+ * testsuite/23_containers/deque/debug/shrink_to_fit.cc: Likewise.
+ * testsuite/ext/pb_ds/example/basic_multimap.cc: Likewise.
+ * testsuite/performance/23_containers/insert_erase/41975.cc: Likewise.
+
+2013-07-04 Ray Chason <chasonr@newsguy.com>
+ Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR libstdc++/57808
+ * include/bits/regex.h (regex_token_iterator<>::operator==,
+ regex_token_iterator<>::operator!=, regex_token_iterator<>::operator*,
+ regex_token_iterator<>::operator->): Declare const.
+
+2013-07-01 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * include/bits/stl_list.h (list<>::insert(iterator,
+ size_type, const value_type&), list<>::insert(iterator,
+ initializer_list<>), list<>::insert(iterator, _InputIterator,
+ _InputIterator), list<>::splice(iterator, list&&),
+ list<>::splice(iterator, list&), list<>::splice(iterator, list&&,
+ iterator), list<>::splice(iterator, list&, iterator),
+ list<>::splice(iterator, list&&, iterator, iterator),
+ list<>::splice(iterator, list&, iterator, iterator)): Adjust C++11
+ signatures to take const_iterator(s).
+ * include/bits/list.tcc (list<>::insert(const_iterator, size_type,
+ const value_type&), list<>::insert(const_iterator, _InputIterator,
+ _InputIterator)): Define.
+ * include/ext/vstring.h (__versa_string<>::insert(iterator,
+ size_type, _CharT), __versa_string<>::insert(iterator,
+ _InputIterator, _InputIterator), __versa_string<>::insert(iterator,
+ std::initializer_list<>), __versa_string<>::replace(iterator,
+ iterator, _InputIterator, _InputIterator), __versa_string<>::
+ replace(iterator, iterator, std::initializer_list<>)): Adjust C++11
+ signatures to take const_iterator(s).
+ (__versa_string<>::_M_replace_dispatch): Take const_iterators.
+ * include/ext/vstring.tcc: Likewise.
+ * include/debug/list: Adjust.
+ * include/profile/list: Likewise.
+ * testsuite/23_containers/list/operations/splice/const_iterator.cc:
+ New.
+ * testsuite/23_containers/list/modifiers/insert/const_iterator.cc:
+ Extend.
+ * testsuite/ext/vstring/modifiers/insert/char/const_iterator.cc:
+ Likewise.
+ * testsuite/ext/vstring/modifiers/insert/wchar_t/const_iterator.cc:
+ Likewise.
+ * testsuite/ext/vstring/modifiers/replace/char/const_iterator.cc:
+ Likewise.
+ * testsuite/ext/vstring/modifiers/replace/wchar_t/const_iterator.cc:
+ Likewise.
+
+ * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
+ Adjust dg-error line number.
+ * 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.
+
+2013-06-30 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * include/bits/stl_deque.h (deque<>::insert(iterator,
+ size_type, const value_type&), deque<>::insert(iterator,
+ initializer_list<>), deque<>::insert(iterator, _InputIterator,
+ _InputIterator)): Adjust C++11 signatures to take a const_iterator.
+ * include/bits/stl_vector.h: Likewise.
+ * include/bits/stl_bvector.h: Likewise.
+ * include/debug/deque: Adjust.
+ * include/debug/vector: Likewise.
+ * include/profile/deque: Likewise.
+ * include/profile/vector: Likewise.
+ * testsuite/23_containers/deque/modifiers/insert/const_iterator.cc:
+ Extend.
+ * testsuite/23_containers/vector/bool/modifiers/insert/
+ const_iterator.cc: Likewise.
+ * testsuite/23_containers/vector/modifiers/insert/const_iterator.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/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.
+
+2013-06-29 François Dumont <fdumont@gcc.gnu.org>
+
+ * include/bits/hashtable_policy.h (_Insert_base): Consider hint in
+ insert methods.
+ * include/bits/hashtable.h: Likewise.
+ * testsuite/23_containers/unordered_multimap/insert/hint.cc: New.
+ * testsuite/performance/23_containers/insert/unordered_multiset_hint.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.
+ * doc/xml/manual/containers.xml: Document hinting in unordered
+ containers.
+
+2013-06-27 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * testsuite/21_strings/basic_string/operations/*: Move inside
+ testsuite/21_strings/basic_string/operations/data/.
+ * testsuite/21_strings/basic_string/compare/*: Move inside
+ testsuite/21_strings/basic_string/operations/.
+ * testsuite/21_strings/basic_string/find/*: Likewise.
+ * testsuite/21_strings/basic_string/rfind/*: Likewise.
+ * testsuite/21_strings/basic_string/substr/*: Likewise.
+
+2013-06-27 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * testsuite/21_strings/basic_string/append/*: Move inside
+ testsuite/21_strings/basic_string/modifiers/.
+ * testsuite/21_strings/basic_string/assign/*: Likewise.
+ * testsuite/21_strings/basic_string/insert/*: Likewise.
+ * testsuite/21_strings/basic_string/replace/*: Likewise.
+ * testsuite/21_strings/basic_string/modifiers/pop_back/char/
+ pop_back.cc: Rename to 1.cc.
+ * testsuite/21_strings/basic_string/modifiers/pop_back/wchar_t/
+ pop_back.cc: Likewise.
+ * testsuite/ext/vstring/assign/*: Move inside
+ testsuite/ext/vstring/modifiers/.
+
+2013-06-27 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * include/bits/stl_deque.h (deque<>::insert(iterator,
+ const value_type&), deque<>::insert(iterator, value_type&&),
+ deque<>::emplace(iterator, _Args&&...)): Adjust C++11 signatures to
+ take a const_iterator.
+ (deque<>::erase): Simplify.
+ * include/bits/stl_list.h: Likewise.
+ (_List_iterator<>::_M_const_cast): Add.
+ * include/bits/stl_vector.h: Likewise.
+ * include/bits/stl_bvector.h: Likewise.
+ (_Bit_iterator::_M_const_cast): Add.
+ * include/bits/deque.tcc: Adjust definitions.
+ * include/bits/list.tcc: Likewise.
+ * include/bits/vector.tcc: Likewise.
+ * include/bits/stl_iterator.h (__normal_iterator<>::_M_const_cast):
+ Define trivial version in C++98 mode.
+ * include/ext/vstring.h (__versa_string<>::insert(iterator, _CharT),
+ __versa_string<>::replace(iterator, iterator, const __versa_string&),
+ __versa_string<>::replace(iterator, iterator, const _CharT*,
+ size_type), __versa_string<>::replace(iterator, iterator,
+ const _CharT*), __versa_string<>::replace(iterator, iterator,
+ size_type, _CharT)): Adjust C++11 signatures to take a pair of
+ const_iterators.
+ * include/debug/deque: Adjust.
+ * include/debug/list: Likewise.
+ * include/debug/vector: Likewise.
+ * include/profile/deque: Likewise.
+ * include/profile/list: Likewise.
+ * include/profile/vector: Likewise.
+ (vector<>::emplace): Add.
+ * testsuite/util/exception/safety.h: Update.
+ * testsuite/23_containers/deque/modifiers/emplace/const_iterator.cc:
+ New.
+ * testsuite/23_containers/deque/modifiers/insert/const_iterator.cc:
+ Likewise.
+ * testsuite/23_containers/list/modifiers/emplace/const_iterator.cc:
+ Likewise.
+ * testsuite/23_containers/list/modifiers/insert/const_iterator.cc:
+ Likewise.
+ * testsuite/23_containers/vector/bool/modifiers/insert/
+ const_iterator.cc: Likewise.
+ * testsuite/23_containers/vector/modifiers/emplace/const_iterator.cc:
+ Likewise.
+ * testsuite/23_containers/vector/modifiers/insert/const_iterator.cc:
+ Likewise.
+ * testsuite/ext/vstring/modifiers/insert/char/const_iterator.cc:
+ Likewise.
+ * testsuite/ext/vstring/modifiers/insert/wchar_t/const_iterator.cc:
+ Likewise.
+ * testsuite/ext/vstring/modifiers/replace/char/const_iterator.cc:
+ Likewise.
+ * testsuite/ext/vstring/modifiers/replace/wchar_t/const_iterator.cc:
+ Likewise.
+
+ * testsuite/ext/vstring/modifiers/char/54577.cc: Move to testsuite/
+ ext/vstring/modifiers/erase/char/.
+ * testsuite/ext/vstring/modifiers/wchar_t/54577.cc: Move to testsuite/
+ ext/vstring/modifiers/wchar_t/.
+ * testsuite/ext/vstring/modifiers/char/pop_back.cc: Move to testsuite/
+ ext/vstring/modifiers/pop_back/char/.
+ * testsuite/ext/vstring/modifiers/wchar_t/pop_back.cc: Move to
+ testsuite/ext/vstring/modifiers/pop_back/wchar_t/.
+
+ * 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/
+ constructor_2_neg.cc: Likewise.
+ * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
+ Likewise.
+ * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
+ Likewise.
+ * testsuite/23_containers/vector/requirements/dr438/
+ constructor_1_neg.cc: Likewise.
+ * testsuite/23_containers/vector/requirements/dr438/
+ constructor_2_neg.cc: Likewise.
+ * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
+ Likewise.
+
+2013-06-25 Ed Smith-Rowland <3dw4rd@verizon.net>
+
+ Status page for C++2014 library features
+ * doc/xml/faq.xml: Add link to new C++14 status page.
+ * doc/xml/manual/intro.xml: Ditto.
+ * doc/xml/manual/status_cxx2014.xml: New.
+
+2013-06-25 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * testsuite/23_containers/map/modifiers/erase/abi_tag.cc: Avoid
+ spurious fails with check-debug.
+ * testsuite/23_containers/multimap/modifiers/erase/abi_tag.cc:
+ Likewise.
+ * testsuite/23_containers/set/modifiers/erase/abi_tag.cc: Likewise.
+ * testsuite/23_containers/multiset/modifiers/erase/abi_tag.cc:
+ Likewise.
+
+2013-06-25 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR libstdc++/57704
+ * include/bits/char_traits.h (char_traits<char>::lt): Implement
+ LWG 467.
+ * testsuite/21_strings/char_traits/requirements/char/57704.cc: New.
+
+2013-06-24 Bernd Edlinger <bernd.edlinger@hotmail.de>
+
+ PR libstdc++/57691
+ * include/c_global/cstdlib (atexit, at_quick_exit): If !_GLIBCC_HOSTED,
+ declare per the letter of the C++ standard in terms of void.
+ * include/c_std/cstdlib: Likewise.
+
+2013-06-22 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR libstdc++/57674
+ * include/bits/random.h (binomial_distribution<>::_M_waiting):
+ Add double parameter.
+ * include/bits/random.tcc (binomial_distribution<>::operator()
+ (_UniformRandomNumberGenerator&, const param_type&)): Pass
+ __param._M_q to _M_waiting.
+ (_M_waiting): Adjust.
+ * testsuite/26_numerics/random/binomial_distribution/
+ operators/values.cc: Add tests.
+
+2013-06-21 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR libstdc++/57666
+ * include/std/valarray (valarray<>::operator=(const _Expr<>&)):
+ Implement correctly C++11 26.6.2.3/1.
+ * testsuite/26_numerics/valarray/dr630-3.C: New.
+
+2013-06-18 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ PR libstdc++/57641
+ * include/std/mutex (timed_mutex, recursive_timed_mutex): Move common
+ functionality to new __timed_mutex_impl mixin. Overload try_lock_until
+ to handle conversion between different clocks. Replace constrained
+ __try_lock_for_impl overloads with conditional increment.
+ * include/std/shared_mutex (shared_mutex::_Mutex): Use the new mixin.
+ * testsuite/30_threads/timed_mutex/try_lock_until/57641.cc: New.
+
+2013-06-17 Jonathan Wakely <jwakely.gcc@gmail.com>
+ Chris Jefferson <chris@bubblescope.net>
+
+ * include/bits/stl_algobase.h (equal): Make C++14 overloads from N3671
+ dispatch to traditional std::equal for random-access iterators.
+ (__equal2_aux, __equal2): Remove.
+ (__equal::equal): Remove unused overloads.
+ * include/bits/stl_algo.h (is_permutation): Fix typos.
+
+2013-06-16 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * include/std/shared_mutex (shared_lock::operator=): Add missing
+ return statement.
+
+2013-06-16 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ PR libstdc++/57263
+ * include/bits/forward_list.h (_Fwd_list_base): Convert to/from
+ allocator's pointer type.
+ * include/bits/hashtable.h (_Hashtable): Likewise.
+ * testsuite/util/testsuite_allocator.h (CustomPointerAlloc): Add.
+ * testsuite/23_containers/forward_list/allocator/ext_ptr.cc: New.
+ * testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: New.
+ * testsuite/23_containers/vector/allocator/ext_ptr.cc: New.
+
+2013-06-16 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * include/std/shared_mutex: Implement N3659.
+ * include/bits/c++14_warning.h: New.
+ * include/Makefile.am: Add new headers.
+ * include/Makefile.in: Regenerate.
+ * testsuite/30_threads/shared_lock/cons/1.cc: New.
+ * testsuite/30_threads/shared_lock/locking/2.cc: New.
+ * testsuite/30_threads/shared_lock/cons/2.cc: New.
+ * testsuite/30_threads/shared_lock/locking/3.cc: New.
+ * testsuite/30_threads/shared_lock/cons/3.cc: New.
+ * testsuite/30_threads/shared_lock/locking/4.cc: New.
+ * testsuite/30_threads/shared_lock/cons/4.cc: New.
+ * testsuite/30_threads/shared_lock/modifiers/1.cc: New.
+ * testsuite/30_threads/shared_lock/cons/5.cc: New.
+ * testsuite/30_threads/shared_lock/modifiers/2.cc: New.
+ * testsuite/30_threads/shared_lock/cons/6.cc: New.
+ * testsuite/30_threads/shared_lock/requirements/
+ explicit_instantiation.cc: New.
+ * testsuite/30_threads/shared_lock/locking/1.cc: New.
+ * testsuite/30_threads/shared_lock/requirements/typedefs.cc: New.
+ * testsuite/30_threads/shared_mutex/cons/1.cc: New.
+ * testsuite/30_threads/shared_mutex/cons/assign_neg.cc: New.
+ * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: New.
+ * testsuite/30_threads/shared_mutex/requirements/
+ standard_layout.cc: New.
+ * testsuite/30_threads/shared_mutex/try_lock/1.cc: New.
+ * testsuite/30_threads/shared_mutex/try_lock/2.cc: New.
+
+2013-06-15 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR libstdc++/57619
+ * include/bits/unordered_map.h (unordered_map<>::insert,
+ unordered_multimap<>::insert): Use std::forward, not std::move.
+ * testsuite/23_containers/unordered_map/insert/57619.C: New.
+ * testsuite/23_containers/unordered_multimap/insert/57619.C: Likewise.
+
+2013-06-14 Alan Modra <amodra@gmail.com>
+
+ * configure.host (abi_baseline_pair): Match powerpc64*.
+
+2013-06-13 Daniel Krugler <daniel.kruegler@gmail.com>
+
+ * include/std/type_traits (is_function): Support ref-qualified
+ functions.
+ (is_copy_constructible, is_move_constructible, is_copy_assignable,
+ is_move_assignable, is_nothrow_copy_constructible,
+ is_nothrow_move_constructible, is_nothrow_copy_assignable,
+ is_nothrow_move_assignable): Implement LWG 2196.
+ (add_lvalue_reference, add_rvalue_reference, add_pointer): Implement
+ LWG 2101.
+ (__strip_reference_wrapper<<const reference_wrapper<_Tp>>): Remove,
+ unused.
+ * testsuite/20_util/add_lvalue_reference/value.cc: Extend.
+ * testsuite/20_util/add_rvalue_reference/value.cc: Likewise.
+ * testsuite/20_util/decay/requirements/typedefs.cc: Likewise.
+ * testsuite/20_util/is_assignable/value.cc: Likewise.
+ * testsuite/20_util/is_constructible/value-2.cc: Likewise.
+ * testsuite/20_util/is_copy_assignable/value.cc: Likewise.
+ * testsuite/20_util/is_copy_constructible/value.cc: Likewise.
+ * testsuite/20_util/is_function/value.cc: Likewise.
+ * testsuite/20_util/is_move_assignable/value.cc: Likewise.
+ * testsuite/20_util/is_move_constructible/value.cc: Likewise.
+ * testsuite/20_util/is_nothrow_copy_assignable/value.cc: Likewise.
+ * testsuite/20_util/is_nothrow_copy_constructible/value.cc: Likewise.
+ * testsuite/20_util/is_nothrow_move_assignable/value.cc: Likewise.
+ * testsuite/20_util/is_nothrow_move_constructible/value.cc: Likewise.
+
+ * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
+ line number.
+ * testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
+ Likewise.
+ * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
+ Likewise.
+
+2013-06-13 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * include/tr1/modified_bessel_func.tcc (__gnu_cxx::__airy_ai(),
+ __gnu_cxx::__airy_bi()): Remove.
+ * testsuite/tr1/5_numerical_facilities/special_functions/
+ 10_cyl_bessel_k/airy.cc: Fix.
+
+2013-06-12 Ed Smith-Rowland <3dw4rd@verizon.net>
+
+ PR libstdc++/56430
+ * include/tr1/modified_bessel_func.tcc (__airy): Remove return
+ from void function.
+ (__gnu_cxx::__airy_ai(), __gnu_cxx::__airy_bi()): New functions.
+ * testsuite/tr1/5_numerical_facilities/special_functions/
+ 10_cyl_bessel_k/airy.cc: New.
+
+2013-06-11 Ed Smith-Rowland <3dw4rd@verizon.net>
+
+ Fix library literals error involving namespace __detail.
+ * include/std/chrono: Rename __detail to __select_type. Reformat.
+ * include/bits/basic_string.h: Reformat.
+ * testsuite/20_util/duration/literals/ns_detail.cc: New.
+
+2013-06-11 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR libstdc++/56019
+ * include/c_global/cstddef (max_align_t): Add to namespace std.
+ * include/c_std/cstddef: Likewise.
+ * testsuite/18_support/max_align_t/requirements/1.cc: New.
+ * testsuite/18_support/max_align_t/requirements/2.cc: Likewise.
+
+2013-06-10 Benjamin Kosnik <bkoz@redhat.com>
+
+ * include/bits/c++config (_GLIBCXX_ABI_TAG_CXX11): Add.
+ * include/bits/stl_map.h (erase): Use abi_tag when C++11.
+ * include/bits/stl_multimap.h: Same.
+ * include/bits/stl_multiset.h: Same.
+ * include/bits/stl_set.h: Same.
+ * include/bits/stl_tree.h: Same.
+ * include/std/complex (real, imag): Use macro for abi_tag.
+
+ * testsuite/lib/libstdc++.exp: Disable inlinling with -fno-inline.
+ * testsuite/util/testsuite_containers.h (erase_external): New
+ declarations.
+ (erase_external_iterators): Same.
+ (linkage_check_cxx98_cxx11_erase): Same.
+ (linkage_check_cxx98_cxx11_erase_iterators): Same.
+ * testsuite/util/testsuite_shared.cc: Define.
+ * testsuite/23_containers/map/modifiers/erase/abi_tag.cc: New.
+ * testsuite/23_containers/map/modifiers/erase/
+ dr130-linkage-check.cc: New.
+ * testsuite/23_containers/multimap/modifiers/erase/abi_tag.cc: New.
+ * testsuite/23_containers/multimap/modifiers/erase/
+ dr130-linkage-check.cc: New.
+ * testsuite/23_containers/multiset/modifiers/erase/abi_tag.cc: New.
+ * testsuite/23_containers/multiset/modifiers/erase/
+ dr130-linkage-check.cc: New.
+ * testsuite/23_containers/set/modifiers/erase/abi_tag.cc: New.
+ * testsuite/23_containers/set/modifiers/erase/dr130-linkage-check.cc:
+ New.
+ * testsuite/ext/profile/mutex_extensions_neg.cc: Adjust line number.
+
+ * testsuite/23_containers/map/dr130.cc: Move...
+ * testsuite/23_containers/map/modifiers/dr130.cc: ...here.
+ * testsuite/23_containers/multimap/dr130.cc: Move ...
+ * testsuite/23_containers/multimap/modifiers/dr130.cc: ...here.
+ * testsuite/23_containers/multiset/dr130.cc: Move...
+ * testsuite/23_containers/multiset/modifiers/dr130.cc: ...here.
+ * testsuite/23_containers/set/dr130.cc: Move...
+ * testsuite/23_containers/set/modifiers/dr130.cc: ...here.
+
+2013-06-10 Thomas Schwinge <thomas@codesourcery.com>
+
+ * testsuite/17_intro/headers/c++1998/49745.cc: Extend current
+ handling of Linux-based x86 systems to cover all GNU systems.
+ * testsuite/18_support/bad_exception/23591_thread-1.c: Likewise.
+ * testsuite/18_support/pthread_guard.cc: Likewise.
+ * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
+ Likewise.
+ * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string/pthread18185.cc: Likewise.
+ * testsuite/21_strings/basic_string/pthread4.cc: Likewise.
+ * testsuite/22_locale/ctype/is/char/2.cc: Likewise.
+ * testsuite/22_locale/ctype/is/wchar_t/2.cc: Likewise.
+ * testsuite/22_locale/locale/cons/12658_thread-1.cc: Likewise.
+ * testsuite/22_locale/locale/cons/12658_thread-2.cc: Likewise.
+ * testsuite/23_containers/list/pthread1.cc: Likewise.
+ * testsuite/23_containers/list/pthread5.cc: Likewise.
+ * testsuite/23_containers/map/pthread6.cc: Likewise.
+ * testsuite/23_containers/vector/debug/multithreaded_swap.cc:
+ Likewise.
+ * testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc:
+ Likewise.
+ * testsuite/27_io/basic_ofstream/pthread2.cc: Likewise.
+ * testsuite/27_io/basic_ostringstream/pthread3.cc: Likewise.
+ * testsuite/30_threads/async/42819.cc: Likewise.
+ * testsuite/30_threads/async/49668.cc: Likewise.
+ * testsuite/30_threads/async/54297.cc: Likewise.
+ * testsuite/30_threads/async/any.cc: Likewise.
+ * testsuite/30_threads/async/async.cc: Likewise.
+ * testsuite/30_threads/async/launch.cc: Likewise.
+ * testsuite/30_threads/async/sync.cc: Likewise.
+ * testsuite/30_threads/call_once/39909.cc: Likewise.
+ * testsuite/30_threads/call_once/49668.cc: Likewise.
+ * testsuite/30_threads/call_once/call_once1.cc: Likewise.
+ * testsuite/30_threads/condition_variable/54185.cc: Likewise.
+ * testsuite/30_threads/condition_variable/cons/1.cc: Likewise.
+ * testsuite/30_threads/condition_variable/members/1.cc: Likewise.
+ * testsuite/30_threads/condition_variable/members/2.cc: Likewise.
+ * testsuite/30_threads/condition_variable/members/53841.cc:
+ Likewise.
+ * testsuite/30_threads/condition_variable/native_handle/typesizes.cc:
+ Likewise.
+ * testsuite/30_threads/condition_variable_any/50862.cc: Likewise.
+ * testsuite/30_threads/condition_variable_any/53830.cc: Likewise.
+ * testsuite/30_threads/condition_variable_any/cons/1.cc: Likewise.
+ * testsuite/30_threads/condition_variable_any/members/1.cc:
+ Likewise.
+ * testsuite/30_threads/condition_variable_any/members/2.cc:
+ Likewise.
+ * testsuite/30_threads/future/cons/move.cc: Likewise.
+ * testsuite/30_threads/future/members/45133.cc: Likewise.
+ * testsuite/30_threads/future/members/get.cc: Likewise.
+ * testsuite/30_threads/future/members/get2.cc: Likewise.
+ * testsuite/30_threads/future/members/share.cc: Likewise.
+ * testsuite/30_threads/future/members/valid.cc: Likewise.
+ * testsuite/30_threads/future/members/wait.cc: Likewise.
+ * testsuite/30_threads/future/members/wait_for.cc: Likewise.
+ * testsuite/30_threads/future/members/wait_until.cc: Likewise.
+ * testsuite/30_threads/lock/1.cc: Likewise.
+ * testsuite/30_threads/lock/2.cc: Likewise.
+ * testsuite/30_threads/lock/3.cc: Likewise.
+ * testsuite/30_threads/lock/4.cc: Likewise.
+ * testsuite/30_threads/mutex/cons/1.cc: Likewise.
+ * testsuite/30_threads/mutex/dest/destructor_locked.cc: Likewise.
+ * testsuite/30_threads/mutex/lock/1.cc: Likewise.
+ * testsuite/30_threads/mutex/native_handle/1.cc: Likewise.
+ * testsuite/30_threads/mutex/native_handle/typesizes.cc: Likewise.
+ * testsuite/30_threads/mutex/try_lock/1.cc: Likewise.
+ * testsuite/30_threads/mutex/try_lock/2.cc: Likewise.
+ * testsuite/30_threads/mutex/unlock/1.cc: Likewise.
+ * testsuite/30_threads/packaged_task/49668.cc: Likewise.
+ * testsuite/30_threads/packaged_task/cons/1.cc: Likewise.
+ * testsuite/30_threads/packaged_task/cons/2.cc: Likewise.
+ * testsuite/30_threads/packaged_task/cons/3.cc: Likewise.
+ * testsuite/30_threads/packaged_task/cons/56492.cc: Likewise.
+ * testsuite/30_threads/packaged_task/cons/alloc.cc: Likewise.
+ * testsuite/30_threads/packaged_task/cons/move.cc: Likewise.
+ * testsuite/30_threads/packaged_task/cons/move_assign.cc:
+ Likewise.
+ * testsuite/30_threads/packaged_task/members/get_future.cc:
+ Likewise.
+ * testsuite/30_threads/packaged_task/members/get_future2.cc:
+ Likewise.
+ * testsuite/30_threads/packaged_task/members/invoke.cc: Likewise.
+ * testsuite/30_threads/packaged_task/members/invoke2.cc: Likewise.
+ * testsuite/30_threads/packaged_task/members/invoke3.cc: Likewise.
+ * testsuite/30_threads/packaged_task/members/invoke4.cc: Likewise.
+ * testsuite/30_threads/packaged_task/members/invoke5.cc: Likewise.
+ * testsuite/30_threads/packaged_task/members/reset.cc: Likewise.
+ * testsuite/30_threads/packaged_task/members/reset2.cc: Likewise.
+ * testsuite/30_threads/packaged_task/members/swap.cc: Likewise.
+ * testsuite/30_threads/packaged_task/members/valid.cc: Likewise.
+ * testsuite/30_threads/promise/cons/1.cc: Likewise.
+ * testsuite/30_threads/promise/cons/alloc.cc: Likewise.
+ * testsuite/30_threads/promise/cons/move.cc: Likewise.
+ * testsuite/30_threads/promise/cons/move_assign.cc: Likewise.
+ * testsuite/30_threads/promise/members/get_future.cc: Likewise.
+ * testsuite/30_threads/promise/members/get_future2.cc: Likewise.
+ * testsuite/30_threads/promise/members/set_exception.cc: Likewise.
+ * testsuite/30_threads/promise/members/set_exception2.cc:
+ Likewise.
+ * testsuite/30_threads/promise/members/set_value.cc: Likewise.
+ * testsuite/30_threads/promise/members/set_value2.cc: Likewise.
+ * testsuite/30_threads/promise/members/set_value3.cc: Likewise.
+ * testsuite/30_threads/promise/members/swap.cc: Likewise.
+ * testsuite/30_threads/recursive_mutex/cons/1.cc: Likewise.
+ * testsuite/30_threads/recursive_mutex/dest/destructor_locked.cc:
+ Likewise.
+ * testsuite/30_threads/recursive_mutex/lock/1.cc: Likewise.
+ * testsuite/30_threads/recursive_mutex/native_handle/1.cc:
+ Likewise.
+ * testsuite/30_threads/recursive_mutex/native_handle/typesizes.cc:
+ Likewise.
+ * testsuite/30_threads/recursive_mutex/try_lock/1.cc: Likewise.
+ * testsuite/30_threads/recursive_mutex/try_lock/2.cc: Likewise.
+ * testsuite/30_threads/recursive_mutex/unlock/1.cc: Likewise.
+ * testsuite/30_threads/recursive_timed_mutex/cons/1.cc: Likewise.
+ * testsuite/30_threads/recursive_timed_mutex/dest/destructor_locked.cc:
+ Likewise.
+ * testsuite/30_threads/recursive_timed_mutex/lock/1.cc: Likewise.
+ * testsuite/30_threads/recursive_timed_mutex/lock/2.cc: Likewise.
+ * testsuite/30_threads/recursive_timed_mutex/native_handle/1.cc:
+ Likewise.
+ * testsuite/30_threads/recursive_timed_mutex/native_handle/typesizes.cc:
+ Likewise.
+ * testsuite/30_threads/recursive_timed_mutex/try_lock/1.cc:
+ Likewise.
+ * testsuite/30_threads/recursive_timed_mutex/try_lock/2.cc:
+ Likewise.
+ * testsuite/30_threads/recursive_timed_mutex/try_lock_for/1.cc:
+ Likewise.
+ * testsuite/30_threads/recursive_timed_mutex/try_lock_for/2.cc:
+ Likewise.
+ * testsuite/30_threads/recursive_timed_mutex/try_lock_for/3.cc:
+ Likewise.
+ * testsuite/30_threads/recursive_timed_mutex/try_lock_until/1.cc:
+ Likewise.
+ * testsuite/30_threads/recursive_timed_mutex/try_lock_until/2.cc:
+ Likewise.
+ * testsuite/30_threads/recursive_timed_mutex/unlock/1.cc:
+ Likewise.
+ * testsuite/30_threads/shared_future/cons/move.cc: Likewise.
+ * testsuite/30_threads/shared_future/members/45133.cc: Likewise.
+ * testsuite/30_threads/shared_future/members/get.cc: Likewise.
+ * testsuite/30_threads/shared_future/members/get2.cc: Likewise.
+ * testsuite/30_threads/shared_future/members/valid.cc: Likewise.
+ * testsuite/30_threads/shared_future/members/wait.cc: Likewise.
+ * testsuite/30_threads/shared_future/members/wait_for.cc:
+ Likewise.
+ * testsuite/30_threads/shared_future/members/wait_until.cc:
+ Likewise.
+ * testsuite/30_threads/this_thread/1.cc: Likewise.
+ * testsuite/30_threads/this_thread/2.cc: Likewise.
+ * testsuite/30_threads/this_thread/3.cc: Likewise.
+ * testsuite/30_threads/this_thread/4.cc: Likewise.
+ * testsuite/30_threads/thread/cons/1.cc: Likewise.
+ * testsuite/30_threads/thread/cons/2.cc: Likewise.
+ * testsuite/30_threads/thread/cons/3.cc: Likewise.
+ * testsuite/30_threads/thread/cons/4.cc: Likewise.
+ * testsuite/30_threads/thread/cons/49668.cc: Likewise.
+ * testsuite/30_threads/thread/cons/5.cc: Likewise.
+ * testsuite/30_threads/thread/cons/6.cc: Likewise.
+ * testsuite/30_threads/thread/cons/7.cc: Likewise.
+ * testsuite/30_threads/thread/cons/8.cc: Likewise.
+ * testsuite/30_threads/thread/cons/9.cc: Likewise.
+ * testsuite/30_threads/thread/cons/moveable.cc: Likewise.
+ * testsuite/30_threads/thread/members/1.cc: Likewise.
+ * testsuite/30_threads/thread/members/2.cc: Likewise.
+ * testsuite/30_threads/thread/members/3.cc: Likewise.
+ * testsuite/30_threads/thread/members/4.cc: Likewise.
+ * testsuite/30_threads/thread/members/5.cc: Likewise.
+ * testsuite/30_threads/thread/members/hardware_concurrency.cc:
+ Likewise.
+ * testsuite/30_threads/thread/native_handle/cancel.cc: Likewise.
+ * testsuite/30_threads/thread/native_handle/typesizes.cc:
+ Likewise.
+ * testsuite/30_threads/thread/swap/1.cc: Likewise.
+ * testsuite/30_threads/timed_mutex/cons/1.cc: Likewise.
+ * testsuite/30_threads/timed_mutex/dest/destructor_locked.cc:
+ Likewise.
+ * testsuite/30_threads/timed_mutex/lock/1.cc: Likewise.
+ * testsuite/30_threads/timed_mutex/native_handle/1.cc: Likewise.
+ * testsuite/30_threads/timed_mutex/native_handle/typesizes.cc:
+ Likewise.
+ * testsuite/30_threads/timed_mutex/try_lock/1.cc: Likewise.
+ * testsuite/30_threads/timed_mutex/try_lock/2.cc: Likewise.
+ * testsuite/30_threads/timed_mutex/try_lock_for/1.cc: Likewise.
+ * testsuite/30_threads/timed_mutex/try_lock_for/2.cc: Likewise.
+ * testsuite/30_threads/timed_mutex/try_lock_for/3.cc: Likewise.
+ * testsuite/30_threads/timed_mutex/try_lock_until/1.cc: Likewise.
+ * testsuite/30_threads/timed_mutex/try_lock_until/2.cc: Likewise.
+ * testsuite/30_threads/timed_mutex/unlock/1.cc: Likewise.
+ * testsuite/30_threads/try_lock/1.cc: Likewise.
+ * testsuite/30_threads/try_lock/2.cc: Likewise.
+ * testsuite/30_threads/try_lock/3.cc: Likewise.
+ * testsuite/30_threads/try_lock/4.cc: Likewise.
+ * testsuite/30_threads/unique_lock/cons/1.cc: Likewise.
+ * testsuite/30_threads/unique_lock/cons/2.cc: Likewise.
+ * testsuite/30_threads/unique_lock/cons/3.cc: Likewise.
+ * testsuite/30_threads/unique_lock/cons/4.cc: Likewise.
+ * testsuite/30_threads/unique_lock/cons/5.cc: Likewise.
+ * testsuite/30_threads/unique_lock/cons/6.cc: Likewise.
+ * testsuite/30_threads/unique_lock/locking/1.cc: Likewise.
+ * testsuite/30_threads/unique_lock/locking/2.cc: Likewise.
+ * testsuite/30_threads/unique_lock/locking/3.cc: Likewise.
+ * testsuite/30_threads/unique_lock/locking/4.cc: Likewise.
+ * testsuite/30_threads/unique_lock/modifiers/1.cc: Likewise.
+ * testsuite/30_threads/unique_lock/modifiers/2.cc: Likewise.
+ * testsuite/ext/mt_allocator/22309_thread.cc: Likewise.
+ * testsuite/ext/profile/mh.cc: Likewise.
+ * testsuite/ext/rope/pthread7-rope.cc: Likewise.
+ * testsuite/lib/libstdc++.exp (libstdc++_init): Likewise.
+ * testsuite/tr1/2_general_utilities/shared_ptr/thread/default_weaktoshared.cc:
+ Likewise.
+ * testsuite/tr1/2_general_utilities/shared_ptr/thread/mutex_weaktoshared.cc:
+ Likewise.
+ * testsuite/util/testsuite_performance.h: Extend current handling
+ of Linux-based systems to cover all glibc-based systems.
+
+2013-06-09 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * include/std/mutex (call_once): Remove parentheses to fix error in
+ c++1y and gnu++1y mode.
+ * testsuite/30_threads/mutex/try_lock/2.cc: Call try_lock() in new
+ thread to avoid undefined behaviour.
+
+2013-06-08 Ed Smith-Rowland <3dw4rd@verizon.net>
+
+ Simplify and clean up library literals.
+ * include/std/chrono: Simplify namespace and versioning management.
+ * include/bits/basic_string.h: Ditto.
+ * testsuite/20_util/duration/literals/types.cc: Remove bogus comment.
+ * testsuite/20_util/duration/literals/values.cc: Ditto.
+ * testsuite/21_strings/basic_string/literals/types.cc: Ditto.
+ * testsuite/21_strings/basic_string/literals/values.cc: Ditto.
+
+2013-06-08 Ed Smith-Rowland <3dw4rd@verizon.net>
+
+ Implement N3654 - Quoted Strings Library Proposal
+ * include/std/iomanip: Add quoted(String, Char delim, Char escape)
+ manipulators and supporting machinery in c++1y mode.
+ * testsuite/27_io/manipulators/standard/char/quoted.cc: New.
+ * testsuite/27_io/manipulators/standard/wchar_t/quoted.cc: New.
+
+2013-06-08 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * include/bits/alloc_traits.h (allocator_traits::max_size()): LWG
+ 2162: Add noexcept.
+
+2013-06-08 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * include/bits/stl_algo.h (is_permutation): Add overloads from N3671.
+ * include/bits/stl_algobase.h (equal, mismatch): Likewise.
+ * testsuite/25_algorithms/equal/1.cc: Remove duplicate test case.
+ * testsuite/25_algorithms/equal/2.cc: New.
+ * testsuite/25_algorithms/equal/check_type2.cc: New.
+ * testsuite/25_algorithms/is_permutationqual/2.cc: New.
+ * testsuite/25_algorithms/is_permutationqual/check_type2.cc: New.
+ * testsuite/25_algorithms/mismatch/2.cc: New.
+ * testsuite/25_algorithms/mismatch/check_type2.cc: New.
+ * testsuite/util/testsuite_iterators.h: Fix spelling.
+
+2013-06-08 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * include/std/type-traits (integral_constant::operator()): Implement
+ N3545.
+ * testsuite/20_util/integral_constant/call_operator.cc: New.
+ * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
+ line numbers.
+ * testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
+ Likewise.
+ * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
+ Likewise.
+
+2013-06-07 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
+
+2013-06-05 Tom Tromey <tromey@redhat.com>
+
+ * testsuite/libstdc++-prettyprinters/shared_ptr.cc: Use -O0.
+
+2013-06-03 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/57419
+ * testsuite/20_util/default_delete/48631_neg.cc: Adjust.
+
+2013-06-01 Ed Smith-Rowland <3dw4rd@verizon.net>
+
+ * include/std/chrono: Collapse redundant 'inline' from 'inline
+ constexpr'.
+ * include/std/tuple: Ditto.
+ * include/bits/move.h: Ditto.
+
+2013-05-30 Ed Smith-Rowland <3dw4rd@verizon.net>
+
+ Implement N3642 - User-defined Literals for Standard Library Types
+ * include/bits/parse_numbers.h: New.
+ * include/std/chrono: Add duration literal operators.
+ * include/bits/basic_string.h: Add string literal operators.
+ * include/Makefile.in: Add parse_numbers.h.
+ * include/Makefile.am: Ditto.
+ * testsuite/20_util/duration/literals/values.cc: New.
+ * testsuite/20_util/duration/literals/types.cc: New.
+ * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Adjust.
+ * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Adjust.
+ * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Adjust.
+ * testsuite/21_strings/basic_string/literals/values.cc: New.
+ * testsuite/21_strings/basic_string/literals/types.cc: New.
+
+2013-05-28 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * src/c++11/compatibility-chrono.cc (steady_clock::now()): If
+ !_GLIBCXX_USE_GETTIMEOFDAY perform conversion inline instead of
+ calling non-existent from_time_t.
+
+2013-05-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt:
+ Regenerate.
+
+2013-05-24 Benjamin Kosnik <bkoz@redhat.com>
+
+ * include/std/chrono: Wrap clocks in inline namespace _V2.
+ * src/c++11/chrono.cc: Same.
+ * src/c++11/compatibility-chrono.cc: Revert to previous chrono.cc
+ file, with default configure macros selected.
+
+ * config/abi/pre/gnu.ver (GLIBCXX_3.4.19): Use symbols from inline
+ namespace.
+ * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Fix up.
+
+ * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Regenerated.
+ * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Regenerated.
+ * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
+ Regenerated.
+ * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt:
+ Regenerated.
+ * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Regenerated.
+ * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt:
+ Regenerated.
+ * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Regenerated.
+ * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Regenerated.
+ * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Regenerated.
+ * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerated.
+ * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Regenerated.
+ * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt:
+ Regenerated.
+ * config/abi/post/solaris2.9/baseline_symbols.txt: Regenerated.
+ * config/abi/post/solaris2.9/sparcv9/baseline_symbols.txt: Regenerated.
+
+2013-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * config/os/solaris/solaris2.9/os_defines.h [!CLOCK_MONOTONIC]
+ (CLOCK_MONOTONIC): Define.
+
+2013-05-24 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * include/ext/type_traits.h (__is_null_pointer): Add std::nullptr_t
+ overload.
+
+ * include/bits/cpp_type_traits.h (__is_fundamental): Remove, unused.
+
+2013-05-24 Jakub Jelinek <jakub@redhat.com>
+
+ * src/c++11/chrono.cc: If _GLIBCXX_USE_CLOCK_GETTIME_SYSCALL,
+ include unistd.h and sys/syscall.h. If _GLIBCXX_COMPATIBILITY_CXX0X,
+ don't define system_clock::is_steady, system_clock::now() and
+ steady_clock::is_steady.
+ (std::chrono::system_clock::now()): If
+ _GLIBCXX_USE_CLOCK_GETTIME_SYSCALL, call
+ syscall (SYS_clock_gettime, ...) instead of clock_gettime (...).
+ (std::chrono::system_clock::now()): Likewise. Add weak attribute
+ if _GLIBCXX_COMPATIBILITY_CXX0X and compatibility-chrono.cc will
+ be non-empty.
+ * src/Makefile.am (cxx11_sources): Add compatibility-chrono.cc.
+ (compatibility-chrono.lo, compatibility-chrono.o): New goals.
+ * src/c++11/compatibility-chrono.cc: New file.
+ * acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): On linux*, check for
+ syscall (SYS_clock_gettime, CLOCK_MONOTONIC, &tp).
+ * testsuite/util/testsuite_abi.cc (check_version): Add
+ GLIBCXX_3.4.20 version and make it the latest.
+ * config/abi/pre/gnu.ver (_ZNSt6chrono12steady_clock3nowEv): Export
+ also @@GLIBCXX_3.4.19. Move all symbols so far added for GCC 4.9 to
+ @@GLIBCXX_3.4.20 instead.
+ * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Regenerated.
+ * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Regenerated.
+ * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
+ Regenerated.
+ * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt:
+ Regenerated.
+ * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Regenerated.
+ * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt:
+ Regenerated.
+ * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Regenerated.
+ * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Regenerated.
+ * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Regenerated.
+ * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerated.
+ * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Regenerated.
+ * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt:
+ Regenerated.
+ * config/abi/post/solaris2.9/baseline_symbols.txt: Regenerated.
+ * config/abi/post/solaris2.9/sparcv9/baseline_symbols.txt: Regenerated.
+ * config.h.in: Regenerated.
+ * src/Makefile.in: Regenerated.
+ * configure: Regenerated.
+
+2013-05-23 Matthias Klose <doko@ubuntu.com>
+
+ * include/Makefile.am (bits_headers): Remove ${bits_host_headers}.
+ (ext_headers): Remove ${ext_host_headers}.
+ (stamp-${host_alias}): Create ${host_builddir}/../ext.
+ (stamp-host): Link ${bits_host_headers} and ${ext_host_headers}.
+ (install-headers): Install ${bits_host_headers} and ${ext_host_headers}.
+ * include/Makefile.in: Regenerate.
+ * include/ext/random: Include ext/opt_random.h.
+
+2013-05-22 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Add KIND=auto to
+ enable features if target OS is known to support them.
+ * configure.ac (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Default to 'auto'.
+ * configure: Regenerate.
+
+2013-05-21 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ PR libstdc++/57336
+ * include/std/functional (__invoke): Do not form function types with
+ abstract return type.
+ * testsuite/20_util/reference_wrapper/invoke-3.cc: New.
+
+2013-05-19 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * include/std/tuple (get): Implement N3670.
+ * include/std/utility (get): Likewise.
+ * testsuite/20_util/pair/get.cc: Move to ...
+ * testsuite/20_util/pair/astuple/get.cc: Here.
+ * testsuite/20_util/pair/astuple/astuple.cc: New.
+ * testsuite/20_util/pair/astuple/constexpr_get.cc: New.
+ * testsuite/20_util/pair/astuple/constexpr_get_by_type.cc: New.
+ * testsuite/20_util/pair/astuple/get_by_type.cc: New.
+ * testsuite/20_util/pair/astuple/get_by_type_neg.cc: New.
+ * testsuite/20_util/pair/astuple/get_neg.cc: New.
+ * testsuite/20_util/tuple/element_access/constexpr_get_by_type.cc: New.
+ * testsuite/20_util/tuple/element_access/get2_by_type.cc: New.
+ * testsuite/20_util/tuple/element_access/get_by_type.cc: New.
+
+2013-05-19 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * Revert last commit.
+
+2013-05-19 Matthias Klose <doko@ubuntu.com>
+
+ * include/Makefile.am (bits_headers): Remove ${bits_host_headers}.
+ (ext_headers): Remove ${ext_host_headers}.
+ (stamp-${host_alias}): Create ${host_builddir}/../ext.
+ (stamp-host): Link ${bits_host_headers} and ${ext_host_headers}.
+ (install-headers): Install ${bits_host_headers} and ${ext_host_headers}.
+ * include/Makefile.in: Regenerate.
+
+2013-05-18 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * include/std/system_error (error_category::error_category()): LWG
+ 2145: Declare public and constexpr.
+ * src/c++11/system_error.cc (error_category::error_category()): Move
+ definition to ...
+ * src/c++11/compatibility-c++0x.cc: Here.
+
+2013-05-18 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * include/std/typeindex (type_index::name()): LWG 2144: Add noexcept.
+
+2013-05-18 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * include/bits/unique_ptr.h (make_unique): Declare inline.
+ (unique_ptr<T[],D>::reset()): Combine two overloads into one.
+ (default_delete, unique_ptr): Add doxygen comments.
+ * include/bits/shared_ptr_base.h: Improve doxygen comments.
+ * include/bits/shared_ptr.h: Likewise.
+ * testsuite/20_util/default_delete/48631_neg.cc: Adjust dg-error line
+ number.
+ * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Likewise.
+
+2013-05-18 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * doc/xml/manual/status_cxx2011.xml: Fix markup error.
+
+2013-05-18 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * doc/xml/manual/status_cxx2011.xml: Fix markup error.
+
+2013-05-18 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * include/std/utility (exchange): Define.
+ * testsuite/20_util/exchange/1.cc: New.
+
+2013-05-18 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * include/bits/unique_ptr.h (make_unique): Define.
+ * testsuite/20_util/unique_ptr/creation/single.cc: New.
+ * testsuite/20_util/unique_ptr/creation/array.cc: New.
+ * testsuite/20_util/unique_ptr/creation/array_neg.cc: New.
+
+2013-05-15 François Dumont <fdumont@gcc.gnu.org>
+
+ * python/libstdcxx/v6/printers.py (Tr1HashtableIterator): Fix
+ rendering of std::tr1 unordered containers iterator.
+ (StdHashtableIterator): New, render std unordered containers iterator.
+ * testsuite/libstdc++-prettyprinters/tr1.cc: New.
+
+2013-05-15 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * include/bits/basic_string.h (getline): Fix doxygen comments.
+
+2013-05-14 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * include/bits/stl_iterator.h (__normal_iterator<>::_M_const_cast):
+ Use std::pointer_traits.
+
+2013-05-13 Benjamin Kosnik <bkoz@redhat.com>
+
+ * libsupc++/Makefile.am (sources): Add bad_array_length.cc,
+ bad_array_new.cc.
+ * libsupc++/Makefile.in: Regenerate.
+ * libsupc++/bad_array_length.cc: Tweak.
+ * libsupc++/bad_array_new.cc: Tweak.
+
+2013-05-10 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR libstdc++/54577
+ * include/bits/stl_deque.h (erase): Fix signatures in C++11 mode.
+ (_Deque_iterator<>::_M_const_cast): Add.
+ (deque<>::_M_erase): Declare.
+ * include/bits/deque.tcc: ... and define.
+ * include/bits/stl_list.h (erase): Fix signatures in C++11 mode.
+ (_List_const_iterator<>::_M_const_cast): Add.
+ * include/bits/list.tcc (erase (iterator)): Fix.
+ * include/bits/stl_iterator.h (__normal_iterator<>::_M_const_cast):
+ Add; include <ext/cast.h>.
+ * include/bits/stl_vector.h (erase): Fix signatures in C++11 mode.
+ (vector<>::_M_erase): Declare.
+ * include/bits/stl_bvector.h: Likewise.
+ * include/bits/vector.tcc (vector<>::_M_erase): Define.
+ * include/ext/vstring.h (erase): Fix signatures in C++11 mode.
+ * include/debug/deque: Adjust.
+ * include/debug/list: Likewise.
+ * include/debug/vector: Likewise.
+ * include/profile/deque: Likewise.
+ * include/profile/list: Likewise.
+ * include/profile/vector: Likewise.
+ * testsuite/util/exception/safety.h (erase_base<deque>,
+ erase_base<deque>, erase_base<vector>): Remove.
+ (erase_base<__versa_string>): Update.
+ * testsuite/ext/vstring/modifiers/char/54577.cc: New.
+ * testsuite/ext/vstring/modifiers/wchar_t/54577.cc: Likewise.
+ * testsuite/23_containers/deque/modifiers/erase/54577.cc: Likewise.
+ * testsuite/23_containers/list/modifiers/erase/54577.cc: Likewise.
+ * testsuite/23_containers/vector/bool/modifiers/erase/54577.cc:
+ Likewise.
+ * testsuite/23_containers/vector/modifiers/erase/54577.cc: Likewise.
+ * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
+ Adjust dg-error line numbers.
+ * testsuite/23_containers/deque/requirements/dr438/
+ constructor_1_neg.cc: Likewise.
+ * testsuite/23_containers/deque/requirements/dr438/
+ constructor_2_neg.cc: Likewise.
+ * testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
+ Likewise.
+ * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
+ Likewise.
+ * testsuite/23_containers/list/requirements/dr438/
+ constructor_1_neg.cc: Likewise.
+ * testsuite/23_containers/list/requirements/dr438/
+ constructor_2_neg.cc: Likewise.
+ * testsuite/23_containers/list/requirements/dr438/
+ insert_neg.cc: Likewise.
+ * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
+ Likewise.
+ * testsuite/23_containers/vector/requirements/dr438/
+ constructor_1_neg.cc: Likewise.
+ * testsuite/23_containers/vector/requirements/dr438/
+ constructor_2_neg.cc: Likewise.
+ * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
+ Likewise.
+
+2013-05-09 Uros Bizjak <ubizjak@gmail.com>
+
+ * testsuite/util/testsuite_abi.cc (check_version): Add CXXABI_1.3.8.
+
+2013-05-08 Jason Merrill <jason@redhat.com>
+
+ Add std::bad_array_length (N3639)
+ * libsupc++/new: Add std::bad_array_length.
+ * libsupc++/bad_array_length.cc: New.
+ * libsupc++/eh_aux_runtime.cc: Add __cxa_bad_array_length.
+ * libsupc++/Makefile.in: Build them.
+ * config/abi/pre/gnu.ver: Add new symbols.
+ * config/abi/pre/gnu-versioned-namespace.ver: Add new symbols.
+
+2013-05-08 Andi Kleen <ak@linux.intel.com>
+
+ PR target/55947
+ * libstdc++-v3/include/bits/atomic_base.h
+ (_GLIBCXX_ALWAYS_INLINE): Add new macro.
+ (atomic_thread_fence, atomic_signal_fence, test_and_set,
+ clear, store, load, exchange, compare_exchange_weak)
+ compare_exchange_strong, fetch_add, fetch_sub, fetch_and,
+ fetch_or, fetch_xor): Mark _GLIBCXX_ALWAYS_INLINE.
+
+2013-05-08 Jason Merrill <jason@redhat.com>
+
+ Add std::bad_array_new_length (N2932)
+ * libsupc++/new: Add std::bad_array_new_length.
+ * libsupc++/bad_array_new.cc: New.
+ * libsupc++/eh_aux_runtime.cc: Add __cxa_throw_bad_array_new_length.
+ * libsupc++/Makefile.in: Build them.
+ * config/abi/pre/gnu.ver: Add new symbols.
+ * config/abi/pre/gnu-versioned-namespace.ver: Add new symbols.
+
+2013-05-08 Andoni Morales Alastruey <ylatuya@gmail.com>
+
+ PR libstdc++/57212
+ * include/Makefile.am (_GLIBCXX___MINGW32_GLIBCXX___): Modify
+ to __MINGW32__.
+ * include/Makefile.in: Regenerated.
+
+2013-05-07 François Dumont <fdumont@gcc.gnu.org>
+
+ * include/profile/unordered_base.h: New.
+ * include/Makefile.am: Add new profile header.
+ * include/Makefile.in: Regenerate.
+ * include/profile/impl/profiler.h
+ (__profcxx_inefficient_hash_is_on): New macro.
+ * include/profile/unordered_map (std::profile::unordered_map<>):
+ Use new _Unordered_profile base class. Use default implementations
+ for special functions.
+ (std::profile::unordered_multimap<>): Likewise.
+ * include/profile/unordered_set (std::profile::unordered_set<>):
+ Likewise.
+ (std::profile::unordered_multiset<>): Likewise.
+ * testsuite/23_containers/unordered_multiset/55043.cc: Fix
+ MoveOnly equality operator signature.
+
+2013-05-02 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * testsuite/tr1/4_metaprogramming/integral_constant/requirements/
+ constexpr_data.cc: Move...
+ * testsuite/20_util/integral_constant/requirements/constexpr_data.cc:
+ ... here.
+ * testsuite/20_util/integral_constant/requirements/
+ explicit_instantiation.cc: New.
+ * testsuite/20_util/integral_constant/requirements/typedefs.cc:
+ Likewise.
+ * testsuite/20_util/integral_constant/static_definition.cc: Likewise.
+ * testsuite/20_util/integral_constant/true_false_type_typedefs.cc:
+ Likewise.
+ * testsuite/20_util/integral_constant/true_false_value.cc: Likewise.
+ * testsuite/20_util/integral_constant/operator_value_type.cc: Likewise.
+
+2013-05-02 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * include/std/type_traits (is_null_pointer): Add.
+ (__is_nullptr_t): Implement in terms of the latter.
+ (is_fundamental, is_scalar): Adjust.
+ * testsuite/20_util/is_null_pointer/requirements/
+ explicit_instantiation.cc: New.
+ * testsuite/20_util/is_null_pointer/requirements/typedefs.cc:
+ Likewise.
+ * testsuite/20_util/is_null_pointer/value.cc: Likewise.
+ * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
+ line number.
+ * testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
+ Likewise.
+ * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
+ Likewise.
+
+2013-05-02 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * include/c_global/cstdio: Add comment about LWG 2249.
+ * include/c_std/cstdio: Likewise.
+
+2013-04-28 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * include/bits/hashtable_policy.h (_Hashtable_ebo_helper): Fix
+ comment.
+ * include/std/mutex (__recursive_mutex_base): Likewise.
+
+2013-04-28 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ PR libstdc++/51365
+ * include/bits/shared_ptr_base (_Sp_ebo_helper): Helper class to
+ implement EBO safely.
+ (_Sp_counted_base::_M_get_deleter): Add noexcept.
+ (_Sp_counter_ptr): Use noexcept instead of comments.
+ (_Sp_counted_deleter): Likewise. Use _Sp_ebo_helper.
+ (_Sp_counted_ptr_inplace): Likewise.
+ * testsuite/20_util/shared_ptr/cons/51365.cc: New.
+ * testsuite/20_util/shared_ptr/cons/52924.cc: Add rebind member to
+ custom allocator and test construction with custom allocator.
+ * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error
+ line number.
+
+2013-04-26 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * testsuite/23_containers/unordered_set/insert/move_range.cc: Adjust
+ dialect to -std=gnu++11.
+
+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.
+
+2013-04-26 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * include/c_global/cstdio (gets): Provide only in C++98 and C++11.
+ * include/c_std/cstdio (gets): Likewise.
+ * testsuite/27_io/headers/cstdio/functions_std.cc: Adjust.
+
+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.
+
+2013-04-24 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ PR libstdc++/56905
+ * libsupc++/exception_ptr.h (copy_exception): Deprecate and
+ move implementation to make_exception_ptr.
+ * include/std/future (_State_base::_M_break_promise): Replace
+ copy_exception with make_exception_ptr.
+ * testsuite/18_support/exception_ptr/move.cc: Likewise.
+ * testsuite/18_support/exception_ptr/rethrow_exception.cc: Likewise.
+ * testsuite/30_threads/future/members/get2.cc: Likewise.
+ * testsuite/30_threads/promise/members/set_exception.cc: Likewise.
+ * testsuite/30_threads/promise/members/set_exception2.cc: Likewise.
+ * testsuite/30_threads/promise/members/set_value2.cc: Likewise.
+ * testsuite/30_threads/shared_future/members/get2.cc: Likewise.
+
+2013-04-22 Jason Merrill <jason@redhat.com>
+
+ * src/c++11/hashtable_c++0x.cc: Include ext/aligned_buffer.h.
+
+ * testsuite/lib/prune.exp (libstdc++-dg-prune): Also ignore "In
+ substitution" lines.
+
+ * testsuite/20_util/is_assignable/value.cc: Comment out tests involving
+ function-cv-quals.
+ * testsuite/20_util/is_constructible/value-2.cc: Likewise.
+ * testsuite/20_util/reference_wrapper/result_type.cc: Likewise.
+ * testsuite/20_util/reference_wrapper/typedefs-2.cc: Likewise.
+
+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.
+
+2013-04-22 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * include/std/type_traits (is_signed): Simplify.
+ * 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.
+
+2013-04-22 Paolo Carlini <paolo.carlini@oracle.com>
+
+ N3669
+ * include/std/complex (complex<float>::real, complex<float>::imag,
+ complex<double>::real, complex<double>::imag,
+ complex<long double>::real, complex<long double>::imag): Declare
+ as const member functions.
+ * include/std/type_traits (integral_constant<>::operator value_type):
+ Likewise.
+
+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.
+
+2013-04-21 Evgeniy Stepanov <eugenis@google.com>
+
+ * src/c++11/system_error.cc (generic_category_instance): Add
+ initializer.
+ (system_category_instance): Likewise.
+ * src/c++11/future.cc (__fec): Likewise.
+
+2013-04-20 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * doc/xml/manual/extensions.xml: Fix anachronism.
+
+2013-04-09 Tom Tromey <tromey@redhat.com>
+
+ * configure, config.h.in: Rebuild.
+ * configure.ac: Use GLIBCXX_CHECK_SDT_H. Don't check for
+ sys/sdt.h.
+ * acinclude.m4 (GLIBCXX_CHECK_SDT_H): New defun.
+
+2013-04-09 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
+
+2013-04-08 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * testsuite/libstdc++-prettyprinters/cxx11.cc: Include <memory>.
+
+2013-04-07 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * 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.
+
+2013-04-07 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * include/bits/forward_list.h: Only include required headers.
+ (forward_list::reference): Define directly, not using __alloc_traits.
+ (forward_list::const_reference): Likewise.
+
+2013-04-07 François Dumont <fdumont@gcc.gnu.org>
+
+ * include/std/functional (_Derives_from_unary_function): Remove.
+ (_Derives_from_binary_function): Remove.
+ * include/std/type_traits (__sfinae_types): Remove.
+ (__is_assignable_helper): Adapt.
+ (__is_convertible_helper): Adapt.
+ (_GLIBCXX_HAS_NESTED_TYPE): Adapt.
+ Remove several explicit instantiations of integral_constant.
+ * testsuite/20_util/reference_wrapper/typedefs-3.cc: Adapt.
+ * testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
+ Adapt dg-error line number.
+ * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
+ Likewise.
+ * testsuite/20_util/declval/requirements/1_neg.cc: Likewise.
+ * testsuite/20_util/bind/ref_neg.cc: Likewise.
+
+2013-04-05 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ PR libstdc++/56841
+ * libsupc++/eh_ptr.cc (rethrow_exception): Use get_unexpected() and
+ get_terminate() accessors.
+ * libsupc++/eh_throw.cc (__cxa_throw): Likewise.
+ * libsupc++/eh_terminate.cc: Use mutex when atomic builtins not
+ available.
+ * libsupc++/new_handler.cc: Likewise.
+
+2013-04-04 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * testsuite/util/testsuite_abi.cc: Add GLIBCXX_3.4.19 version.
+
+2013-04-03 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR libstdc++/56834
+ * include/debug/array (tuple_size, tuple_element): Do not declare.
+ * include/profile/array: Likewise.
+ * testsuite/23_containers/array/tuple_interface/
+ tuple_element_debug_neg.cc: Adjust dg-error line number.
+
+2013-04-03 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * libsupc++/exception (get_terminate(), get_unexpected()): Declare.
+ * libsupc++/eh_terminate.cc (get_terminate() , set_unexpected()):
+ Define.
+ (set_terminate(terminate_handler)): Set atomically.
+ (set_unexpected(terminate_handler)): Likewise.
+ * libsupc++/new (get_new_handler()): Declare.
+ * libsupc++/new_handler.cc (get_new_handler()): Define.
+ (set_new_handler(new_handler)): Set atomically.
+ (__new_handler): Use internal linkage.
+ * libsupc++/new_op.cc (operator new): Use get_new_handler().
+ * libsupc++/new_opnt.cc (operator new): Likewise.
+ * acinclude.m4: Bump libtool_VERSION to 6:19:0.
+ * configure: Regenerate.
+ * libsupc++/Makefile.am: Compile above files with -std=gnu++11.
+ * libsupc++/Makefile.in: Regenerate.
+ * config/abi/pre/gnu.ver: Add new exports.
+ * doc/xml/manual/status_cxx2011.xml: Update.
+ * testsuite/18_support/headers/exception/synopsis.cc: Check accessors
+ for handlers.
+ * testsuite/18_support/headers/new/synopsis.cc: Likewise.
+ * testsuite/18_support/new_handler.cc: New.
+ * testsuite/18_support/terminate_handler.cc: New.
+ * testsuite/18_support/unexpected_handler.cc: New.
+
+2013-04-02 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * doc/xml/manual/appendix_contributing.xml: Remove broken link and
+ defer to general documentation on contributing to GCC.
+ * doc/html/*: Regenerate.
+
+2013-03-30 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * doc/xml/manual/allocator.xml: Adjust link to Dr.Dobb's article.
+
+ * doc/xml/manual/appendix_contributing.xml: Adjust link to GNU
+ Coding Standards.
+
+ * doc/xml/manual/debug.xml: Adjust link for ThreadSanitizer.
+
+ * doc/xml/manual/debug_mode.xml: Adjust link for SafeSTL.
+
+ * doc/xml/manual/documentation_hacking.xml: Adjust Doxygen link.
+
+ * doc/xml/manual/messages.xml: Adjust link to Java API specs.
+
+ * doc/xml/manual/policy_data_structures: Remove direct link to
+ IBM Haifa Research Labs.
+
+ * doc/xml/manual/policy_data_structures_biblio.xml: Adjust links
+ for biblio.maverik_lowerbounds and biblio.nelson96stlpq.
+
+ * doc/xml/manual/profile_mode.xml: Adjust two links to acm.org
+ papers.
+
+ * doc/xml/manual/shared_ptr.xml: Use canonical address for
+ www.boost.org.
+
+2013-03-27 Kai Tietz <ktietz@redhat.com>
+
+ * crossconfig.m4: Add support for cygwin x64 target.
+ * configure: Regenerated.
+
+2013-03-25 Kai Tietz <ktietz@redhat.com>
+
+ * testsuite/18_support/50594.cc: For mingw-targets use only static
+ libstdc++-version.
+ * testsuite/19_diagnostics/error_category/operators/equal.cc
+ * testsuite/19_diagnostics/error_code/cons/1.cc
+ * testsuite/19_diagnostics/error_code/operators/bool.cc
+ * testsuite/19_diagnostics/error_code/operators/equal.cc
+ * testsuite/19_diagnostics/error_code/operators/not_equal.cc
+ * testsuite/19_diagnostics/error_condition/cons/1.cc
+ * testsuite/19_diagnostics/error_condition/operators/bool.cc
+ * testsuite/19_diagnostics/error_condition/operators/equal.cc
+ * testsuite/19_diagnostics/error_condition/operators/not_equal.cc
+ * testsuite/23_containers/set/requirements/exception/basic.cc
+ * testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc
+ * testsuite/lib/dg-options.exp (dg-additional-options): New option.
+
+2013-03-24 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ PR libstdc++/56170
+ * include/ext/debug_allocator.h (debug_allocator): Add missing members
+ to meet allocator requirements.
+ * testsuite/ext/debug_allocator/56170.cc: New.
+
+2013-03-22 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR libstdc++/56678
+ * include/std/chrono (__is_ratio): Uglify T.
+
+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.
+
+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.
+
+2013-03-16 Jason Merrill <jason@redhat.com>
+
+ PR c++/55017
+ * testsuite/20_util/pair/piecewise2.cc (test01): Use std::move.
+
+2013-03-16 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ PR libstdc++/56468
+ * libsupc++/exception_ptr.h (type_info): Declare.
+
+2013-03-16 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ PR libstdc++/56002
+ * include/std/mutex (lock_guard, unique_lock, lock): Define without
+ depending on _GLIBCXX_HAS_GTHREADS.
+ * testsuite/30_threads/lock_guard/cons/1.cc: Run on all targets.
+
+2013-03-16 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ PR libstdc++/56492
+ * include/std/future (__future_base::_Result): Add result_type
+ typedef.
+ (__future_base::_S_allocate_result): Overload for std::allocator.
+ (__future_base::_Task_setter): Use _Result::result_type instead of
+ deducing the type from the task.
+ (__future_base::_Task_state): Store allocator to allow shared state
+ to be reset. Replace std::function with member of target object type
+ accessed via ...
+ (__future_base::_Task_state_base): New abstract base class.
+ (__future_base::_Task_state_base::_M_run): New virtual function to
+ invoke type-erased target object.
+ (__future_base::_Task_state_base::_M_reset): New virtual function to
+ create new shared_state using same target object and allocator.
+ (__future_base::__create_task_state): Allocate a new _Task_state.
+ (packaged_task::packaged_task): Use __create_task_state.
+ (packaged_task::reset): Use _Task_state_base::_M_reset.
+ * testsuite/30_threads/packaged_task/cons/56492.cc: New.
+
+2013-03-15 Tom Tromey <tromey@redhat.com>
+
+ * libsupc++/unwind-cxx.h: Include sys/sdt.h if detected.
+ (PROBE2): New macro.
+ * libsupc++/eh_throw.cc (__cxa_throw, __cxa_rethrow): Add probe.
+ * libsupc++/eh_catch.cc (__cxa_begin_catch): Add probe.
+ * configure.ac: Check for sys/sdt.h.
+ * configure, config.h.in: Rebuild.
+
+2013-03-14 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ 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.
+
+2013-03-13 Benjamin Kosnik <bkoz@redhat.com>
+
+ * doc/html/*: Regenerate.
+
+2013-03-13 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR libstdc++/56609
+ * include/std/type_traits (is_fundamental): Add std::nullptr_t.
+ * testsuite/20_util/is_fundamental/value.cc: Extend.
+ * testsuite/20_util/is_compound/value.cc: Likewise.
+
+2013-03-09 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * testsuite/20_util/function_objects/mem_fn/55463.cc: Avoid
+ -Wunused warnings.
+
+2013-03-08 Benjamin Kosnik <bkoz@redhat.com>
+
+ * 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.
+
+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.
+
+2013-03-07 Jakub Jelinek <jakub@redhat.com>
+
+ * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
+ * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
+ * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt:
+ Likewise.
+ * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
+ * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Likewise.
+ * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Likewise.
+ * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Likewise.
+ * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
+ * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Likewise.
+
+2013-03-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * scripts/extract_symvers.pl: Omit symbols bound to base
+ versions.
+ * scripts/extract_symvers.in: Likewise.
+ * config/abi/post/solaris2.9/baseline_symbols.txt: Regenerate.
+ * config/abi/post/solaris2.9/sparcv9/baseline_symbols.txt: Likewise.
+ * config/abi/post/solaris2.10/baseline_symbols.txt: Likewise.
+ * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
+ * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
+
+2013-03-04 Ulrich Drepper <drepper@gmail.com>
+
+ * include/ext/random (__gnu_cxx::von_mises_distribution<>):
+ Optimize generation function by pulling computation of __r into the
+ constructor for param_type. Also compare _M_mu in operator==.
+ Fix comment.
+
+2013-03-02 Ulrich Drepper <drepper@gmail.com>
+
+ Add triangular and von Mises distributions.
+ * include/ext/random: Include <ext/cmath>.
+ Add __gnu_cxx::triangular_distribution<> and
+ __gnu_cxx::von_mises_distribution<> classes.
+ * include/ext/random.tcc: Add out-of-line functions for
+ __gnu_cxx::triangular_distribution<> and
+ __gnu_cxx::von_mises_distribution<>.
+ * testsuite/ext/triangular_distribution/cons/default.cc: New file.
+ * testsuite/ext/triangular_distribution/cons/parms.cc: New file.
+ * testsuite/ext/triangular_distribution/operators/serialize.cc:
+ New file.
+ * testsuite/ext/triangular_distribution/operators/equal.cc:
+ New file.
+ * testsuite/ext/triangular_distribution/operators/inequal.cc:
+ New file.
+ * testsuite/ext/triangular_distribution/requirements/typedefs.cc:
+ New file.
+ * testsuite/ext/triangular_distribution/requirements/
+ explicit_instantiation/1.cc: New file.
+ * testsuite/ext/von_mises_distribution/cons/default.cc: New file.
+ * testsuite/ext/von_mises_distribution/cons/parms.cc: New file.
+ * testsuite/ext/von_mises_distribution/operators/serialize.cc:
+ New file.
+ * testsuite/ext/von_mises_distribution/operators/equal.cc: New file.
+ * testsuite/ext/von_mises_distribution/operators/inequal.cc:
+ New file.
+ * testsuite/ext/von_mises_distribution/requirements/typedefs.cc:
+ New file.
+ * testsuite/ext/von_mises_distribution/requirements/
+ explicit_instantiation/1.cc: New file.
+
+ Add math constants.
+ * include/Makefile.am (ext_headers): Add cmath.
+ * include/Makefile.in: Regenerated.
+ * include/ext/cmath: New file.
+
+2013-03-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * config/abi/post/solaris2.9/baseline_symbols.txt: Regenerate.
+ * config/abi/post/solaris2.9/sparcv9/baseline_symbols.txt: Likewise.
+ * config/abi/post/solaris2.10/baseline_symbols.txt: Likewise.
+ * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
+ * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
+
+2013-02-26 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ 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.
+
+2013-02-25 Jason Merrill <jason@redhat.com>
+
+ * configure.ac: Check for __cxa_thread_atexit_impl.
+ * libsupc++/atexit_thread.cc (__cxa_thread_atexit): Just forward
+ to it if available.
+ * config.h.in, configure: Regenerate.
+
+2013-02-20 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * include/std/streambuf (basic_streambuf): Use injected class name
+ instead of non-standard __streambuf_type typedef. Fix unclosed Doxygen
+ group.
+
+2013-02-20 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * 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.
+
+2013-02-20 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * testsuite/23_containers/unordered_set/55043.cc: Add missing
+ namespace qualification.
+ * testsuite/23_containers/unordered_multiset/55043.cc: Likewise.
+
+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.
+
+2013-02-14 Jason Merrill <jason@redhat.com>
+
+ * testsuite/18_support/quick_exit/quick_exit.cc: #if out the whole
+ test if unsupported.
+
+2013-02-13 Marc Glisse <marc.glisse@inria.fr>
+
+ PR libstdc++/56111
+ * include/std/complex (complex): Undefine.
+ * include/c_compatibility/complex.h (complex): Only undefine if
+ <complex> has been included.
+ * testsuite/26_numerics/complex/56111.cc: New testcase.
+
+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.
+
+2013-02-12 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * include/c_std/cstdlib (at_quick_exit, quick_exit): Provide in
+ C++11 mode.
+
+2013-02-12 Julian Brown <julian@codesourcery.com>
+
+ * testsuite/22_locale/time_get/get_weekday/char/38081-1.cc (test01):
+ Don't expect dots after abbreviated weekday names for ru_RU for
+ glibc versions >= 2.17.
+ * testsuite/22_locale/time_get/get_weekday/char/38081-2.cc (test01):
+ Likewise.
+
+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.
+
+2013-02-11 Benjamin Kosnik <bkoz@redhat.com>
+
+ * src/c++11/Makefile.am (hashtable_c++0x.lo, hashtable_c++0x.o):
+ Use -fimplicit-templates.
+ * src/c++11/Makefile.in: Regenerate.
+ * src/c++11/hashtable_c++0x.cc: Remove instantiation for
+ std::lower_bound template.
+
+2013-02-11 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * include/c_std/cstdlib (at_quick_exit, quick_exit): Do not declare.
+ * include/c_global/cstdlib (at_quick_exit, quick_exit): Declare only
+ in C++11 mode and if available in the underlying C library.
+ * testsuite/18_support/quick_exit/quick_exit.cc: Compile with
+ -std=gnu++11; check _GLIBCXX_HAVE_AT_QUICK_EXIT and
+ _GLIBCXX_HAVE_QUICK_EXIT.
+
+2013-02-11 Benjamin Kosnik <bkoz@redhat.com>
+
+ * doc/html/*: Regenerate.
+
+2013-02-11 Jason Merrill <jason@redhat.com>
+
+ * linkage.m4 (GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE): New.
+ (GLIBCXX_CHECK_STDLIB_SUPPORT): Check for atexit and at_quick_exit.
+ * config.h.in, configure: Regenerate.
+ * include/c_std/cstdlib: Add atexit and at_quick_exit.
+ * include/c_global/cstdlib: Add atexit and at_quick_exit.
+ * testsuite/18_support/quick_exit/quick_exit.cc: New.
+
+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.
+
+2013-02-10 François Dumont <fdumont@gcc.gnu.org>
+ Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * doc/xml/manual/containers.xml: Add section on unordered containers.
+ * doc/xml/manual/using.xml: Fix incomplete sentence.
+
+2013-02-10 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ 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.
+
+ PR libstdc++/56278
+ * include/bits/hashtable_policy.h (_Hash_code_base): Make default
+ constructor public.
+ * testsuite/23_containers/unordered_set/56278.cc: New.
+
+2013-02-09 François Dumont <fdumont@gcc.gnu.org>
+
+ * include/tr1/bessel_function.tcc (__cyl_bessel_ij_series): Code
+ simplification.
+
+2013-02-08 Edward Smith-Rowland <3dw4rd@verizon.net>
+
+ PR libstdc++/56216
+ * include/tr1/special_function_util.h: Remove spurious const
+ from numeric arguments.
+ * include/tr1/riemann_zeta.tcc: Likewise.
+ * include/tr1/exp_integral.tcc: Likewise.
+ * include/tr1/bessel_function.tcc: Likewise.
+ * include/tr1/hypergeometric.tcc: Likewise.
+ * include/tr1/modified_bessel_func.tcc: Likewise.
+ * include/tr1/poly_laguerre.tcc: Likewise.
+ * include/tr1/gamma.tcc: Likewise.
+ * include/tr1/legendre_function.tcc: Likewise.
+ * include/tr1/poly_hermite.tcc: Likewise.
+ * include/tr1/ell_integral.tcc: Likewise.
+ * include/tr1/bessel_function.tcc (__cyl_bessel_ij_series):
+ If argument is zero return function value.
+ * testsuite/tr1/5_numerical_facilities/special_functions/
+ 08_cyl_bessel_i/pr56216.cc: New.
+
+2013-02-07 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * testsuite/27_io/basic_ios/pr56193.cc: Tweak.
+
+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.
+
+2013-02-04 Dodji Seketeli <dodji@redhat.com>
+
+ Add missing explicit instantiation for std::lower_bound template
+ * libstdc++-v3/src/c++11/hashtable_c++0x.cc (namespace std): Add
+ missing instantiation for std::lower_bound template.
+
+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.
+
+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.
+
+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.
+
+2013-02-03 Richard Sandiford <rdsandiford@googlemail.com>
+
+ Update copyright years.
+ * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc,
+ testsuite/23_containers/deque/requirements/dr438/constructor_1_neg.cc,
+ testsuite/23_containers/deque/requirements/dr438/constructor_2_neg.cc,
+ testsuite/23_containers/deque/requirements/dr438/insert_neg.cc,
+ testsuite/23_containers/list/requirements/dr438/assign_neg.cc,
+ testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc,
+ testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc,
+ testsuite/23_containers/list/requirements/dr438/insert_neg.cc,
+ testsuite/23_containers/vector/requirements/dr438/assign_neg.cc,
+ testsuite/23_containers/vector/requirements/dr438/constructor_1_neg.cc,
+ testsuite/23_containers/vector/requirements/dr438/constructor_2_neg.cc,
+ testsuite/23_containers/vector/requirements/dr438/insert_neg.cc,
+ testsuite/29_atomics/atomic/cons/assign_neg.cc,
+ testsuite/29_atomics/atomic/cons/copy_neg.cc,
+ testsuite/29_atomics/atomic_integral/cons/assign_neg.cc,
+ testsuite/29_atomics/atomic_integral/cons/copy_neg.cc,
+ testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc,
+ testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc,
+ testsuite/29_atomics/atomic_integral/operators/increment_neg.cc:
+ Update lines in dg error matches.
+
+2013-02-03 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/os/mingw32/ctype_inline.h: Fix copyright typo.
+
+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.
+
+2013-01-29 Jason Merrill <jason@redhat.com>
+
+ PR libstdc++/54314
+ * config/abi/pre/gnu.ver: Don't export construction vtables.
+ * config/abi/pre/gnu-versioned-namespace.ver: Likewise.
+
+2013-01-28 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ 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.
+
+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.
+
+2013-01-24 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR libstdc++/56085
+ * include/std/complex (pow(const complex<>&, int)): Avoid __n
+ signed overflow.
+
+2013-01-22 Jakub Jelinek <jakub@redhat.com>
+
+ * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
+ Tightten scan-assembler-times regexps, add dg-additional-options for
+ ia32, add -g0 -fno-exceptions -fno-asynchronous-unwind-tables to
+ dg-options.
+
+2013-01-12 Andi Kleen <ak@linux.intel.com>
+ Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ PR libstdc++/55233
+ * 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.
+
+2013-01-19 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ PR libstdc++/55861
+ * include/std/future (_State_base::_S_check(const shared_ptr<T>&)):
+ Fix return type.
+ (__basic_future::_M_get_result()): Const qualify.
+ (shared_future::get()): Likewise.
+ * testsuite/30_threads/shared_future/members/get.cc: Use const
+ objects.
+
+2013-01-16 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ 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.
+
+2013-01-16 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ 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.
+
+2013-01-03 Janis Johnson <janisjo@codesourcery.com>
+
+ * testsuite/lib/gdb-test.exp (gdb_batch_check): Catch error running
+ gdb command.
+
+2013-01-08 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * doc/xml/manual/status_cxx2011.xml: Document that N3189 is missing.
+
+2013-01-08 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ PR libstdc++/55908
+ * include/std/functional (_Mem_fn::operator()): Fix constraints to
+ avoid ambiguity.
+ * testsuite/20_util/function_objects/mem_fn/55908.cc: New.
+ * testsuite/20_util/bind/ref_neg.cc: Adjust dg-error line numbers.
+
+2013-01-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ PR libstdc++/55594
+ * acinclude.m4 (GLIBCXX_CHECK_ASSEMBLER_HWCAP): Restrict test to
+ Solaris targets.
+ * configure: Regenerate.
+
+2013-01-07 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ PR libstdc++/55847
+ * src/c++11/shared_ptr.cc (bad_weak_ptr::what()): Correct string.
+ * testsuite/20_util/shared_ptr/cons/weak_ptr_expired.cc: Verify
+ string.
+
+ PR libstdc++/55728
+ * include/std/functional (bad_function_call::what()): Declare.
+ * src/c++11/functional.cc (bad_function_call::what()): Define.
+ * config/abi/pre/gnu.ver (bad_function_call::what()): Export.
+ * testsuite/20_util/bad_function_call/what.cc: New.
+
+2013-01-06 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * include/bits/unordered_map.h: Fix typo in comments.
+ * doc/xml/manual/status_cxx2011.xml: Add implementation-defined bucket
+ counts for unordered associative containers.
+
+2013-01-06 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * doc/xml/manual/abi.xml: Update library and symbol versions.
+
+2013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * include/ext/pb_ds/detail/splay_tree_/insert_fn_imps.hpp: Fix typo
+ in copyright years.
+ * testsuite/22_locale/time_get/get_weekday/wchar_t/3.cc: Likewise.
+
+
+Copyright (C) 2013 Free Software Foundation, Inc.
+
+Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.
diff --git a/libstdc++-v3/doc/xml/manual/backwards_compatibility.xml b/libstdc++-v3/doc/xml/manual/backwards_compatibility.xml
index 869b63f1992..2a2f77d216a 100644
--- a/libstdc++-v3/doc/xml/manual/backwards_compatibility.xml
+++ b/libstdc++-v3/doc/xml/manual/backwards_compatibility.xml
@@ -782,18 +782,25 @@ AC_DEFUN([AC_HEADER_EXT_HASH_SET], [
</title></info>
-<para> The existence of <code>ios::nocreate</code> being used for
-input-streams has been confirmed, most probably because the author
-thought it would be more correct to specify nocreate explicitly. So
-it can be left out for input-streams.
+<para>Historically these flags were used with iostreams to control whether
+new files are created or not when opening a file stream, similar to the
+<code>O_CREAT</code> and <code>O_EXCL</code> flags for the
+<function>open(2)</function> system call. Because iostream modes correspond
+to <function>fopen(3)</function> modes these flags are not supported.
+For input streams a new file will not be created anyway, so
+<code>ios::nocreate</code> is not needed.
+For output streams, a new file will be created if it does not exist, which is
+consistent with the behaviour of <function>fopen</function>.
</para>
-<para>For output streams, <quote>nocreate</quote> is probably the default,
-unless you specify <code>std::ios::trunc</code> ? To be safe, you can
-open the file for reading, check if it has been opened, and then
-decide whether you want to create/replace or not. To my knowledge,
-even older implementations support <code>app</code>, <code>ate</code>
-and <code>trunc</code> (except for <code>app</code> ?).
+<para>When one of these flags is needed a possible alternative is to attempt
+to open the file using <type>std::ifstream</type> first to determine whether
+the file already exists or not. This may not be reliable however, because
+whether the file exists or not could change between opening the
+<type>std::istream</type> and re-opening with an output stream. If you need
+to check for existence and open a file as a single operation then you will
+need to use OS-specific facilities outside the C++ standard library, such
+as <function>open(2)</function>.
</para>
</section>
diff --git a/libstdc++-v3/doc/xml/manual/codecvt.xml b/libstdc++-v3/doc/xml/manual/codecvt.xml
index 9961515d491..76120060e30 100644
--- a/libstdc++-v3/doc/xml/manual/codecvt.xml
+++ b/libstdc++-v3/doc/xml/manual/codecvt.xml
@@ -15,11 +15,11 @@
The standard class codecvt attempts to address conversions between
different character encoding schemes. In particular, the standard
attempts to detail conversions between the implementation-defined wide
-characters (hereafter referred to as wchar_t) and the standard type
-char that is so beloved in classic <quote>C</quote> (which can now be
-referred to as narrow characters.) This document attempts to describe
-how the GNU libstdc++ implementation deals with the conversion between
-wide and narrow characters, and also presents a framework for dealing
+characters (hereafter referred to as <type>wchar_t</type>) and the standard
+type <type>char</type> that is so beloved in classic <quote>C</quote>
+(which can now be referred to as narrow characters.) This document attempts
+to describe how the GNU libstdc++ implementation deals with the conversion
+between wide and narrow characters, and also presents a framework for dealing
with the huge number of other encodings that iconv can convert,
including Unicode and UTF8. Design issues and requirements are
addressed, and examples of correct usage for both the required
@@ -47,8 +47,8 @@ The text around the codecvt definition gives some clues:
<blockquote>
<para>
<emphasis>
--1- The class codecvt&lt;internT,externT,stateT&gt; is for use when
-converting from one codeset to another, such as from wide characters
+-1- The class <code>codecvt&lt;internT,externT,stateT&gt;</code> is for use
+when converting from one codeset to another, such as from wide characters
to multibyte characters, between wide character encodings such as
Unicode and EUC.
</emphasis>
@@ -64,7 +64,7 @@ class.
<blockquote>
<para>
<emphasis>
--2- The stateT argument selects the pair of codesets being mapped between.
+-2- The <type>stateT</type> argument selects the pair of codesets being mapped between.
</emphasis>
</para>
</blockquote>
@@ -76,17 +76,19 @@ Ah ha! Another clue...
<blockquote>
<para>
<emphasis>
--3- The instantiations required in the Table ??
-(lib.locale.category), namely codecvt&lt;wchar_t,char,mbstate_t&gt; and
-codecvt&lt;char,char,mbstate_t&gt;, convert the implementation-defined
-native character set. codecvt&lt;char,char,mbstate_t&gt; implements a
-degenerate conversion; it does not convert at
-all. codecvt&lt;wchar_t,char,mbstate_t&gt; converts between the native
-character sets for tiny and wide characters. Instantiations on
-mbstate_t perform conversion between encodings known to the library
+-3- The instantiations required in the Table 51 (lib.locale.category), namely
+<classname>codecvt&lt;wchar_t,char,mbstate_t&gt;</classname> and
+<classname>codecvt&lt;char,char,mbstate_t&gt;</classname>, convert the
+implementation-defined native character set.
+<classname>codecvt&lt;char,char,mbstate_t&gt;</classname> implements a
+degenerate conversion; it does not convert at all.
+<classname>codecvt&lt;wchar_t,char,mbstate_t&gt;</classname> converts between
+the native character sets for tiny and wide characters. Instantiations on
+<type>mbstate_t</type> perform conversion between encodings known to the library
implementor. Other encodings can be converted by specializing on a
-user-defined stateT type. The stateT object can contain any state that
-is useful to communicate to or from the specialized do_convert member.
+user-defined <type>stateT</type> type. The <type>stateT</type> object can
+contain any state that is useful to communicate to or from the specialized
+<function>do_convert</function> member.
</emphasis>
</para>
</blockquote>
@@ -98,13 +100,14 @@ At this point, a couple points become clear:
<para>
One: The standard clearly implies that attempts to add non-required
(yet useful and widely used) conversions need to do so through the
-third template parameter, stateT.</para>
+third template parameter, <type>stateT</type>.</para>
<para>
-Two: The required conversions, by specifying mbstate_t as the third
-template parameter, imply an implementation strategy that is mostly
+Two: The required conversions, by specifying <type>mbstate_t</type> as the
+third template parameter, imply an implementation strategy that is mostly
(or wholly) based on the underlying C library, and the functions
-mcsrtombs and wcsrtombs in particular.</para>
+<function>mcsrtombs</function> and <function>wcsrtombs</function> in
+particular.</para>
</section>
<section xml:id="facet.codecvt.design"><info><title>Design</title></info>
@@ -114,7 +117,7 @@ mcsrtombs and wcsrtombs in particular.</para>
<para>
- The simple implementation detail of wchar_t's size seems to
+ The simple implementation detail of <type>wchar_t</type>'s size seems to
repeatedly confound people. Many systems use a two byte,
unsigned integral type to represent wide characters, and use an
internal encoding of Unicode or UCS2. (See AIX, Microsoft NT,
@@ -122,7 +125,7 @@ mcsrtombs and wcsrtombs in particular.</para>
type to represent wide characters, and use an internal encoding
of UCS4. (GNU/Linux systems using glibc, in particular.) The C
programming language (and thus C++) does not specify a specific
- size for the type wchar_t.
+ size for the type <type>wchar_t</type>.
</para>
<para>
@@ -136,9 +139,12 @@ mcsrtombs and wcsrtombs in particular.</para>
Probably the most frequently asked question about code conversion
is: "So dudes, what's the deal with Unicode strings?"
The dude part is optional, but apparently the usefulness of
- Unicode strings is pretty widely appreciated. Sadly, this specific
- encoding (And other useful encodings like UTF8, UCS4, ISO 8859-10,
- etc etc etc) are not mentioned in the C++ standard.
+ Unicode strings is pretty widely appreciated. The Unicode character
+ set (and useful encodings like UTF-8, UCS-4, ISO 8859-10,
+ etc etc etc) were not mentioned in the first C++ standard. (The 2011
+ standard added support for string literals with different encodings
+ and some library facilities for converting between encodings, but the
+ notes below have not been updated to reflect that.)
</para>
<para>
@@ -149,8 +155,8 @@ mcsrtombs and wcsrtombs in particular.</para>
The thought that all one needs to convert between two arbitrary
codesets is two types and some kind of state argument is
unfortunate. In particular, encodings may be stateless. The naming
- of the third parameter as stateT is unfortunate, as what is really
- needed is some kind of generalized type that accounts for the
+ of the third parameter as <type>stateT</type> is unfortunate, as what is
+ really needed is some kind of generalized type that accounts for the
issues that abstract encodings will need. The minimum information
that is required includes:
</para>
@@ -240,7 +246,8 @@ mechanism may be required.
<para>
In addition, multi-threaded and multi-locale environments also impact
the design and requirements for code conversions. In particular, they
-affect the required specialization codecvt&lt;wchar_t, char, mbstate_t&gt;
+affect the required specialization
+<classname>codecvt&lt;wchar_t, char, mbstate_t&gt;</classname>
when implemented using standard "C" functions.
</para>
@@ -249,7 +256,8 @@ Three problems arise, one big, one of medium importance, and one small.
</para>
<para>
-First, the small: mcsrtombs and wcsrtombs may not be multithread-safe
+First, the small: <function>mcsrtombs</function> and
+<function>wcsrtombs</function> may not be multithread-safe
on all systems required by the GNU tools. For GNU/Linux and glibc,
this is not an issue.
</para>
@@ -275,7 +283,8 @@ option, a high-quality implementation, damn the additional complexity!
</para>
<para>
-For the required specialization codecvt&lt;wchar_t, char, mbstate_t&gt; ,
+For the required specialization
+<classname>codecvt&lt;wchar_t, char, mbstate_t&gt;</classname>,
conversions are made between the internal character set (always UCS4
on GNU/Linux) and whatever the currently selected locale for the
LC_CTYPE category implements.
@@ -311,37 +320,39 @@ codecvt&lt;char, wchar_t, mbstate_t&gt;
<para>
This specialization, by specifying all the template parameters, pretty
much ties the hands of implementors. As such, the implementation is
-straightforward, involving mcsrtombs for the conversions between char
-to wchar_t and wcsrtombs for conversions between wchar_t and char.
+straightforward, involving <function>mcsrtombs</function> for the conversions
+between <type>char</type> to <type>wchar_t</type> and
+<function>wcsrtombs</function> for conversions between <type>wchar_t</type>
+and <type>char</type>.
</para>
<para>
Neither of these two required specializations deals with Unicode
characters. As such, libstdc++ implements a partial specialization
-of the codecvt class with and iconv wrapper class, encoding_state as the
-third template parameter.
+of the <type>codecvt</type> class with an iconv wrapper class,
+<classname>encoding_state</classname> as the third template parameter.
</para>
<para>
This implementation should be standards conformant. First of all, the
standard explicitly points out that instantiations on the third
-template parameter, stateT, are the proper way to implement
+template parameter, <type>stateT</type>, are the proper way to implement
non-required conversions. Second of all, the standard says (in Chapter
-17) that partial specializations of required classes are a-ok. Third
-of all, the requirements for the stateT type elsewhere in the standard
-(see 21.1.2 traits typedefs) only indicate that this type be copy
+17) that partial specializations of required classes are A-OK. Third
+of all, the requirements for the <type>stateT</type> type elsewhere in the
+standard (see 21.1.2 traits typedefs) only indicate that this type be copy
constructible.
</para>
<para>
-As such, the type encoding_state is defined as a non-templatized, POD
-type to be used as the third type of a codecvt instantiation. This
-type is just a wrapper class for iconv, and provides an easy interface
+As such, the type <type>encoding_state</type> is defined as a non-templatized,
+POD type to be used as the third type of a <type>codecvt</type> instantiation.
+This type is just a wrapper class for iconv, and provides an easy interface
to iconv functionality.
</para>
<para>
-There are two constructors for encoding_state:
+There are two constructors for <type>encoding_state</type>:
</para>
<para>
@@ -352,7 +363,7 @@ encoding_state() : __in_desc(0), __out_desc(0)
<para>
This default constructor sets the internal encoding to some default
(currently UCS4) and the external encoding to whatever is returned by
-nl_langinfo(CODESET).
+<code>nl_langinfo(CODESET)</code>.
</para>
<para>
@@ -370,7 +381,7 @@ either argument.
<para>
One of the issues with iconv is that the string literals identifying
conversions are not standardized. Because of this, the thought of
-mandating and or enforcing some set of pre-determined valid
+mandating and/or enforcing some set of pre-determined valid
identifiers seems iffy: thus, a more practical (and non-migraine
inducing) strategy was implemented: end-users can specify any string
(subject to a pre-determined length qualifier, currently 32 bytes) for
@@ -400,12 +411,12 @@ _M_good()
</para>
<para>
-Provides a way to see if the given encoding_state object has been
+Provides a way to see if the given <type>encoding_state</type> object has been
properly initialized. If the string literals describing the desired
internal and external encoding are not valid, initialization will
fail, and this will return false. If the internal and external
-encodings are valid, but iconv_open could not allocate conversion
-descriptors, this will also return false. Otherwise, the object is
+encodings are valid, but <function>iconv_open</function> could not allocate
+conversion descriptors, this will also return false. Otherwise, the object is
ready to convert and will return true.
</para>
@@ -424,8 +435,8 @@ themselves.
<para>
Definitions for all the required codecvt member functions are provided
-for this specialization, and usage of codecvt&lt;internal character type,
-external character type, encoding_state&gt; is consistent with other
+for this specialization, and usage of <code>codecvt&lt;<replaceable>internal
+character type</replaceable>, <replaceable>external character type</replaceable>, <replaceable>encoding_state</replaceable>&gt;</code> is consistent with other
codecvt usage.
</para>
@@ -433,7 +444,7 @@ codecvt usage.
<section xml:id="facet.codecvt.use"><info><title>Use</title></info>
-<para>A conversions involving string literal.</para>
+<para>A conversion involving a string literal.</para>
<programlisting>
typedef codecvt_base::result result;
@@ -490,7 +501,7 @@ codecvt usage.
<listitem>
<para>
- b. conversions involving std::string
+ b. conversions involving <type>std::string</type>
</para>
<itemizedlist>
<listitem><para>
diff --git a/libstdc++-v3/doc/xml/manual/containers.xml b/libstdc++-v3/doc/xml/manual/containers.xml
index 9791953b78d..653033da4d5 100644
--- a/libstdc++-v3/doc/xml/manual/containers.xml
+++ b/libstdc++-v3/doc/xml/manual/containers.xml
@@ -420,7 +420,7 @@
the hash code every time it's needed can improve performance, but the
additional memory overhead can also reduce performance, so whether an
unordered associative container caches the hash code or not depends on
- a number of factors. The caching policy for GCC 4.8 is described below.
+ the properties described below.
</para>
<para>
The C++ standard requires that <code>erase</code> and <code>swap</code>
@@ -432,23 +432,8 @@
or <code>throw()</code>.
</para>
<para>
- Secondly, libstdc++ also needs the hash code in the implementation of
- <code>local_iterator</code> and <code>const_local_iterator</code> in
- order to know when the iterator has reached the end of the bucket.
- This means that the local iterator types will embed a copy of the hash
- function when possible.
- Because the local iterator types must be DefaultConstructible and
- CopyAssignable, if the hash function type does not model those concepts
- then it cannot be embedded and so the hash code must be cached.
- Note that a hash function might not be safe to use when
- default-constructed (e.g if it a function pointer) so a hash
- function that is contained in a local iterator won't be used until
- the iterator is valid, so the hash function has been copied from a
- correctly-initialized object.
- </para>
- <para>
- If the hash function is non-throwing, DefaultConstructible and
- CopyAssignable then libstdc++ doesn't need to cache the hash code for
+ If the hash function is non-throwing then libstdc++ doesn't need to
+ cache the hash code for
correctness, but might still do so for performance if computing a
hash code is an expensive operation, as it may be for arbitrarily
long strings.
diff --git a/libstdc++-v3/doc/xml/manual/ctype.xml b/libstdc++-v3/doc/xml/manual/ctype.xml
index 21b70724fd7..4e9777d7846 100644
--- a/libstdc++-v3/doc/xml/manual/ctype.xml
+++ b/libstdc++-v3/doc/xml/manual/ctype.xml
@@ -18,10 +18,10 @@
<para>
-For the required specialization codecvt&lt;wchar_t, char, mbstate_t&gt; ,
+For the required specialization <classname>codecvt&lt;wchar_t, char, mbstate_t&gt;</classname>,
conversions are made between the internal character set (always UCS4
on GNU/Linux) and whatever the currently selected locale for the
-LC_CTYPE category implements.
+<code>LC_CTYPE</code> category implements.
</para>
<para>
@@ -45,8 +45,10 @@ ctype&lt;wchar_t&gt;
<para>
This specialization, by specifying all the template parameters, pretty
much ties the hands of implementors. As such, the implementation is
-straightforward, involving mcsrtombs for the conversions between char
-to wchar_t and wcsrtombs for conversions between wchar_t and char.
+straightforward, involving <function>mcsrtombs</function> for the
+conversions between <type>char</type> to <type>wchar_t</type> and
+<function>wcsrtombs</function> for conversions between <type>wchar_t</type>
+and <type>char</type>.
</para>
<para>
@@ -69,7 +71,8 @@ characters.
<listitem>
<para>
- How to deal with different types than char, wchar_t? </para></listitem>
+ How to deal with types other than <type>char</type>, <type>wchar_t</type>?
+ </para></listitem>
<listitem><para>
Overlap between codecvt/ctype: narrow/widen
@@ -77,8 +80,8 @@ characters.
<listitem>
<para>
- Mask typedef in codecvt_base, argument types in codecvt. what
- is know about this type?
+ <type>mask</type> typedef in <classname>codecvt_base</classname>,
+ argument types in <type>codecvt</type>. what is know about this type?
</para></listitem>
<listitem>
@@ -95,10 +98,11 @@ characters.
<listitem>
<para>
- Get the ctype&lt;wchar_t&gt;::mask stuff under control. Need to
- make some kind of static table, and not do lookup every time
- somebody hits the do_is... functions. Too bad we can't just
- redefine mask for ctype&lt;wchar_t&gt;
+ Get the <type>ctype&lt;wchar_t&gt;::mask</type> stuff under control.
+ Need to make some kind of static table, and not do lookup every time
+ somebody hits the <code>do_is...</code> functions. Too bad we can't
+ just redefine <type>mask</type> for
+ <classname>ctype&lt;wchar_t&gt;</classname>
</para></listitem>
<listitem>
diff --git a/libstdc++-v3/doc/xml/manual/status_cxx1998.xml b/libstdc++-v3/doc/xml/manual/status_cxx1998.xml
index 1541343e0cb..3bc6a16722b 100644
--- a/libstdc++-v3/doc/xml/manual/status_cxx1998.xml
+++ b/libstdc++-v3/doc/xml/manual/status_cxx1998.xml
@@ -1075,7 +1075,7 @@ particular release.
in the sections where the function itself occurs.
-->
<para><emphasis>[18.1]/4</emphasis> The type of <code>NULL</code> is described
- <link linkend="std.support.types.null">here</link>.
+ under <link linkend="std.support.types.null">Support</link>.
</para>
<para><emphasis>[18.3]/8</emphasis> Even though it's listed in the library
sections, libstdc++ has zero control over what the cleanup code hands
@@ -1107,9 +1107,10 @@ particular release.
implementations, any requirements imposed on allocators by containers
beyond those requirements that appear in Table 32, and the semantics
of containers and algorithms when allocator instances compare
- non-equal, are implementation-defined."</emphasis> As yet we don't
- have any allocators which compare non-equal, so we can't describe how
- they behave.
+ non-equal, are implementation-defined."</emphasis> There is experimental
+ support for non-equal allocators in the standard containers in C++98
+ mode. There are no additional requirements on allocators. It is undefined
+ behaviour to swap two containers if their allocators are not equal.
</para>
<para><emphasis>[21.1.3.1]/3,4</emphasis>,
<emphasis>[21.1.3.2]/2</emphasis>,
@@ -1121,16 +1122,16 @@ particular release.
here would defeat the purpose. :-)
</para>
<para><emphasis>[21.1.3.1]/5</emphasis> I don't really know about
- the mbstate_t stuff... see
- the <link linkend="std.localization.facet.codecvt">chapter 22
+ the <type>mbstate_t</type> stuff... see
+ the <link linkend="std.localization.facet.codecvt"><code>codecvt</code>
notes</link> for what does exist.
</para>
<para><emphasis>[22.*]</emphasis> Anything and everything we have on locale
- implementation will be described
- <link linkend="std.localization.locales.locale">over here</link>.
+ implementation will be described under
+ <link linkend="std.localization.locales.locale">Localization</link>.
</para>
<para><emphasis>[26.2.8]/9</emphasis> I have no idea what
- <code>complex&lt;T&gt;</code>'s pow(0,0) returns.
+ <code>complex&lt;T&gt;</code>'s <code>pow(0,0)</code> returns.
</para>
<para><emphasis>[27.4.2.4]/2</emphasis> Calling
<code>std::ios_base::sync_with_stdio</code> after I/O has already been
@@ -1138,8 +1139,8 @@ particular release.
flush the buffers, and <!-- this line might go away -->
destroy and recreate the underlying buffer instances. Whether or not
the previously-written I/O is destroyed in this process depends mostly
- on the --enable-libio choice: for stdio, if the written data is
- already in the stdio buffer, the data may be completely safe!
+ on the <code>--enable-libio</code> choice: for stdio, if the written
+ data is already in the stdio buffer, the data may be completely safe!
</para>
<para><emphasis>[27.6.1.1.2]</emphasis>,
<emphasis>[27.6.2.3]</emphasis> The I/O sentry ctor and dtor can perform
@@ -1148,8 +1149,8 @@ particular release.
</para>
<para><emphasis>[27.7.1.3]/16</emphasis>,
<emphasis>[27.8.1.4]/10</emphasis>
- The effects of <code>pubsetbuf/setbuf</code> are described
- <link linkend="std.io">in this chapter</link>.
+ The effects of <code>pubsetbuf/setbuf</code> are described in the
+ <link linkend="std.io">Input and Output</link> chapter.
</para>
<para><emphasis>[27.8.1.4]/16</emphasis> Calling <code>fstream::sync</code> when
a get area exists will... whatever <code>fflush()</code> does, I think.
diff --git a/libstdc++-v3/doc/xml/manual/support.xml b/libstdc++-v3/doc/xml/manual/support.xml
index 4d33a46f4a0..410f7140347 100644
--- a/libstdc++-v3/doc/xml/manual/support.xml
+++ b/libstdc++-v3/doc/xml/manual/support.xml
@@ -169,16 +169,18 @@
<constant>NULL</constant> is always a pointer.)
</para>
- <para>In his book <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.awprofessional.com/titles/0-201-92488-9/"><emphasis>Effective
- C++</emphasis></link>, Scott Meyers points out that the best way
+ <para>In his book <link xmlns:xlink="http://www.w3.org/1999/xlink"
+ xlink:href="http://www.aristeia.com/books.html"><emphasis>Effective
+ C++</emphasis></link>, Scott Meyers points out that the best way
to solve this problem is to not overload on pointer-vs-integer
types to begin with. He also offers a way to make your own magic
<constant>NULL</constant> that will match pointers before it
matches integers.
</para>
- <para>See
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.awprofessional.com/titles/0-201-31015-5/">the
- Effective C++ CD example</link>
+ <para>See the
+ <link xmlns:xlink="http://www.w3.org/1999/xlink"
+ xlink:href="http://www.aristeia.com/books.html"><emphasis>Effective
+ C++ CD</emphasis></link> example.
</para>
</section>
diff --git a/libstdc++-v3/include/bits/hashtable.h b/libstdc++-v3/include/bits/hashtable.h
index f2d51c682c9..4297c5fc750 100644
--- a/libstdc++-v3/include/bits/hashtable.h
+++ b/libstdc++-v3/include/bits/hashtable.h
@@ -42,10 +42,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
using __cache_default
= __not_<__and_<// Do not cache for fast hasher.
__is_fast_hash<_Hash>,
- // Mandatory to make local_iterator default
- // constructible and assignable.
- is_default_constructible<_Hash>,
- is_copy_assignable<_Hash>,
// Mandatory to have erase not throwing.
__detail::__is_noexcept_hash<_Tp, _Hash>>>;
@@ -260,9 +256,14 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// Compile-time diagnostics.
+ // _Hash_code_base has everything protected, so use this derived type to
+ // access it.
+ struct __hash_code_base_access : __hash_code_base
+ { using __hash_code_base::_M_bucket_index; };
+
// Getting a bucket index from a node shall not throw because it is used
// in methods (erase, swap...) that shall not throw.
- static_assert(noexcept(declval<const _Hashtable&>()
+ static_assert(noexcept(declval<const __hash_code_base_access&>()
._M_bucket_index((const __node_type*)nullptr,
(std::size_t)0)),
"Cache the hash code or qualify your functors involved"
@@ -277,26 +278,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
"Functor used to map hash code to bucket index"
" must be default constructible");
- // _Hash_code_base has a protected default constructor, so use this
- // derived type to tell if it's usable.
- struct __access_protected_ctor : __hash_code_base { };
-
- // When hash codes are not cached local iterator inherits from
- // __hash_code_base above to compute node bucket index so it has to be
- // default constructible.
- static_assert(__if_hash_not_cached<
- is_default_constructible<__access_protected_ctor>>::value,
- "Cache the hash code or make functors involved in hash code"
- " and bucket index computation default constructible");
-
- // When hash codes are not cached local iterator inherits from
- // __hash_code_base above to compute node bucket index so it has to be
- // assignable.
- static_assert(__if_hash_not_cached<
- is_copy_assignable<__hash_code_base>>::value,
- "Cache the hash code or make functors involved in hash code"
- " and bucket index computation copy assignable");
-
template<typename _Keya, typename _Valuea, typename _Alloca,
typename _ExtractKeya, typename _Equala,
typename _H1a, typename _H2a, typename _Hasha,
diff --git a/libstdc++-v3/include/bits/hashtable_policy.h b/libstdc++-v3/include/bits/hashtable_policy.h
index f64d2d36159..ef15b0e5a77 100644
--- a/libstdc++-v3/include/bits/hashtable_policy.h
+++ b/libstdc++-v3/include/bits/hashtable_policy.h
@@ -161,7 +161,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
__hashtable_alloc& _M_h;
};
- // Functor similar to the previous one but without any pool of node to recycle.
+ // Functor similar to the previous one but without any pool of nodes to
+ // recycle.
template<typename _NodeAlloc>
struct _AllocNode
{
@@ -1088,7 +1089,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
std::size_t
_M_bucket_index(const __node_type* __p, std::size_t __n) const
- noexcept( noexcept(declval<const _Hash&>()(declval<const _Key&>(), (std::size_t)0)) )
+ noexcept( noexcept(declval<const _Hash&>()(declval<const _Key&>(),
+ (std::size_t)0)) )
{ return _M_ranged_hash()(_M_extract()(__p->_M_v()), __n); }
void
@@ -1145,6 +1147,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
using __ebo_h1 = _Hashtable_ebo_helper<1, _H1>;
using __ebo_h2 = _Hashtable_ebo_helper<2, _H2>;
+ // Gives the local iterator implementation access to _M_bucket_index().
+ friend struct _Local_iterator_base<_Key, _Value, _ExtractKey, _H1, _H2,
+ _Default_ranged_hash, false>;
+
public:
typedef _H1 hasher;
@@ -1175,7 +1181,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
std::size_t
_M_bucket_index(const __node_type* __p, std::size_t __n) const
noexcept( noexcept(declval<const _H1&>()(declval<const _Key&>()))
- && noexcept(declval<const _H2&>()((__hash_code)0, (std::size_t)0)) )
+ && noexcept(declval<const _H2&>()((__hash_code)0,
+ (std::size_t)0)) )
{ return _M_h2()(_M_h1()(_M_extract()(__p->_M_v())), __n); }
void
@@ -1225,7 +1232,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
private _Hashtable_ebo_helper<2, _H2>
{
private:
- // Gives access to _M_h2() to the local iterator implementation.
+ // Gives the local iterator implementation access to _M_h2().
friend struct _Local_iterator_base<_Key, _Value, _ExtractKey, _H1, _H2,
_Default_ranged_hash, true>;
@@ -1331,7 +1338,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
};
- /// Specialization.
+ /// Partial specialization used when nodes contain a cached hash code.
template<typename _Key, typename _Value, typename _ExtractKey,
typename _H1, typename _H2, typename _Hash>
struct _Local_iterator_base<_Key, _Value, _ExtractKey,
@@ -1343,7 +1350,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
using __hash_code_base = _Hash_code_base<_Key, _Value, _ExtractKey,
_H1, _H2, _Hash, true>;
- public:
_Local_iterator_base() = default;
_Local_iterator_base(const __hash_code_base& __base,
_Hash_node<_Value, true>* __p,
@@ -1368,27 +1374,97 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_Hash_node<_Value, true>* _M_cur;
std::size_t _M_bucket;
std::size_t _M_bucket_count;
+
+ public:
+ const void*
+ _M_curr() const { return _M_cur; } // for equality ops
+
+ std::size_t
+ _M_get_bucket() const { return _M_bucket; } // for debug mode
+ };
+
+ // Uninitialized storage for a _Hash_code_base.
+ // This type is DefaultConstructible and Assignable even if the
+ // _Hash_code_base type isn't, so that _Local_iterator_base<..., false>
+ // can be DefaultConstructible and Assignable.
+ template<typename _Tp, bool _IsEmpty = std::is_empty<_Tp>::value>
+ struct _Hash_code_storage
+ {
+ __gnu_cxx::__aligned_buffer<_Tp> _M_storage;
+
+ _Tp*
+ _M_h() { return _M_storage._M_ptr(); }
+
+ const _Tp*
+ _M_h() const { return _M_storage._M_ptr(); }
+ };
+
+ // Empty partial specialization for empty _Hash_code_base types.
+ template<typename _Tp>
+ struct _Hash_code_storage<_Tp, true>
+ {
+ static_assert( std::is_empty<_Tp>::value, "Type must be empty" );
+
+ // As _Tp is an empty type there will be no bytes written/read through
+ // the cast pointer, so no strict-aliasing violation.
+ _Tp*
+ _M_h() { return reinterpret_cast<_Tp*>(this); }
+
+ const _Tp*
+ _M_h() const { return reinterpret_cast<const _Tp*>(this); }
};
- /// Specialization.
+ template<typename _Key, typename _Value, typename _ExtractKey,
+ typename _H1, typename _H2, typename _Hash>
+ using __hash_code_for_local_iter
+ = _Hash_code_storage<_Hash_code_base<_Key, _Value, _ExtractKey,
+ _H1, _H2, _Hash, false>>;
+
+ // Partial specialization used when hash codes are not cached
template<typename _Key, typename _Value, typename _ExtractKey,
typename _H1, typename _H2, typename _Hash>
struct _Local_iterator_base<_Key, _Value, _ExtractKey,
_H1, _H2, _Hash, false>
- : private _Hash_code_base<_Key, _Value, _ExtractKey,
- _H1, _H2, _Hash, false>
+ : __hash_code_for_local_iter<_Key, _Value, _ExtractKey, _H1, _H2, _Hash>
{
protected:
using __hash_code_base = _Hash_code_base<_Key, _Value, _ExtractKey,
_H1, _H2, _Hash, false>;
- public:
- _Local_iterator_base() = default;
+ _Local_iterator_base() : _M_bucket_count(-1) { }
+
_Local_iterator_base(const __hash_code_base& __base,
_Hash_node<_Value, false>* __p,
std::size_t __bkt, std::size_t __bkt_count)
- : __hash_code_base(__base),
- _M_cur(__p), _M_bucket(__bkt), _M_bucket_count(__bkt_count) { }
+ : _M_cur(__p), _M_bucket(__bkt), _M_bucket_count(__bkt_count)
+ { _M_init(__base); }
+
+ ~_Local_iterator_base()
+ {
+ if (_M_bucket_count != -1)
+ _M_destroy();
+ }
+
+ _Local_iterator_base(const _Local_iterator_base& __iter)
+ : _M_cur(__iter._M_cur), _M_bucket(__iter._M_bucket),
+ _M_bucket_count(__iter._M_bucket_count)
+ {
+ if (_M_bucket_count != -1)
+ _M_init(*__iter._M_h());
+ }
+
+ _Local_iterator_base&
+ operator=(const _Local_iterator_base& __iter)
+ {
+ if (_M_bucket_count != -1)
+ _M_destroy();
+ _M_cur = __iter._M_cur;
+ _M_bucket = __iter._M_bucket;
+ _M_bucket_count = __iter._M_bucket_count;
+ if (_M_bucket_count != -1)
+ _M_init(*__iter._M_h());
+ return *this;
+ }
void
_M_incr()
@@ -1396,7 +1472,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_M_cur = _M_cur->_M_next();
if (_M_cur)
{
- std::size_t __bkt = this->_M_bucket_index(_M_cur, _M_bucket_count);
+ std::size_t __bkt = this->_M_h()->_M_bucket_index(_M_cur,
+ _M_bucket_count);
if (__bkt != _M_bucket)
_M_cur = nullptr;
}
@@ -1405,6 +1482,20 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_Hash_node<_Value, false>* _M_cur;
std::size_t _M_bucket;
std::size_t _M_bucket_count;
+
+ void
+ _M_init(const __hash_code_base& __base)
+ { ::new(this->_M_h()) __hash_code_base(__base); }
+
+ void
+ _M_destroy() { this->_M_h()->~__hash_code_base(); }
+
+ public:
+ const void*
+ _M_curr() const { return _M_cur; } // for equality ops and debug mode
+
+ std::size_t
+ _M_get_bucket() const { return _M_bucket; } // for debug mode
};
template<typename _Key, typename _Value, typename _ExtractKey,
@@ -1414,7 +1505,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_H1, _H2, _Hash, __cache>& __x,
const _Local_iterator_base<_Key, _Value, _ExtractKey,
_H1, _H2, _Hash, __cache>& __y)
- { return __x._M_cur == __y._M_cur; }
+ { return __x._M_curr() == __y._M_curr(); }
template<typename _Key, typename _Value, typename _ExtractKey,
typename _H1, typename _H2, typename _Hash, bool __cache>
@@ -1423,7 +1514,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_H1, _H2, _Hash, __cache>& __x,
const _Local_iterator_base<_Key, _Value, _ExtractKey,
_H1, _H2, _Hash, __cache>& __y)
- { return __x._M_cur != __y._M_cur; }
+ { return __x._M_curr() != __y._M_curr(); }
/// local iterators
template<typename _Key, typename _Value, typename _ExtractKey,
diff --git a/libstdc++-v3/include/bits/regex.h b/libstdc++-v3/include/bits/regex.h
index ae8e1f5d363..816f5cfb004 100644
--- a/libstdc++-v3/include/bits/regex.h
+++ b/libstdc++-v3/include/bits/regex.h
@@ -60,51 +60,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
template<typename, typename, typename, bool>
class _Executor;
- template<typename _Tp>
- struct __has_contiguous_iter : std::false_type { };
-
- template<typename _Ch, typename _Tr, typename _Alloc>
- struct __has_contiguous_iter<std::basic_string<_Ch, _Tr, _Alloc>>
- : std::true_type // string<Ch> storage is contiguous
- { };
-
- template<typename _Tp, typename _Alloc>
- struct __has_contiguous_iter<std::vector<_Tp, _Alloc>>
- : std::true_type // vector<Tp> storage is contiguous
- { };
-
- template<typename _Alloc>
- struct __has_contiguous_iter<std::vector<bool, _Alloc>>
- : std::false_type // vector<bool> storage is not contiguous
- { };
-
- template<typename _Tp>
- struct __is_contiguous_normal_iter : std::false_type { };
-
- template<typename _Tp, typename _Cont>
- struct
- __is_contiguous_normal_iter<__gnu_cxx::__normal_iterator<_Tp, _Cont>>
- : __has_contiguous_iter<_Cont>::type
- { };
-
- template<typename _Iter, typename _TraitsT>
- using __enable_if_contiguous_normal_iter
- = typename enable_if< __is_contiguous_normal_iter<_Iter>::value,
- std::shared_ptr<_NFA<_TraitsT>> >::type;
-
- template<typename _Iter, typename _TraitsT>
- using __disable_if_contiguous_normal_iter
- = typename enable_if< !__is_contiguous_normal_iter<_Iter>::value,
- std::shared_ptr<_NFA<_TraitsT>> >::type;
-
- template<typename _FwdIter, typename _TraitsT>
- __disable_if_contiguous_normal_iter<_FwdIter, _TraitsT>
- __compile_nfa(_FwdIter __first, _FwdIter __last, const _TraitsT& __traits,
- regex_constants::syntax_option_type __flags);
-
- template<typename _Iter, typename _TraitsT>
- __enable_if_contiguous_normal_iter<_Iter, _TraitsT>
- __compile_nfa(_Iter __first, _Iter __last, const _TraitsT& __traits,
+ template<typename _TraitsT>
+ inline std::shared_ptr<_NFA<_TraitsT>>
+ __compile_nfa(const typename _TraitsT::char_type* __first,
+ const typename _TraitsT::char_type* __last,
+ const _TraitsT& __traits,
regex_constants::syntax_option_type __flags);
_GLIBCXX_END_NAMESPACE_VERSION
@@ -561,7 +521,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
flag_type __f = ECMAScript)
: _M_flags(__f),
_M_original_str(__first, __last),
- _M_automaton(__detail::__compile_nfa(__first, __last, _M_traits,
+ _M_automaton(__detail::__compile_nfa(_M_original_str.c_str(),
+ _M_original_str.c_str()
+ + _M_original_str.size(),
+ _M_traits,
_M_flags))
{ }
@@ -698,7 +661,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
{
_M_flags = __flags;
_M_original_str.assign(__s.begin(), __s.end());
- _M_automaton = __detail::__compile_nfa(__s.begin(), __s.end(),
+ auto __p = _M_original_str.c_str();
+ _M_automaton = __detail::__compile_nfa(__p,
+ __p + _M_original_str.size(),
_M_traits, _M_flags);
return *this;
}
diff --git a/libstdc++-v3/include/bits/regex.tcc b/libstdc++-v3/include/bits/regex.tcc
index 1ceac602344..73f55dfc5f6 100644
--- a/libstdc++-v3/include/bits/regex.tcc
+++ b/libstdc++-v3/include/bits/regex.tcc
@@ -126,8 +126,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
__suf.second = __e;
__suf.matched = (__suf.first != __suf.second);
}
- if (__re.flags() & regex_constants::nosubs)
- __res.resize(3);
}
return __ret;
}
diff --git a/libstdc++-v3/include/bits/regex_automaton.h b/libstdc++-v3/include/bits/regex_automaton.h
index ea73675c6f3..a442cfe21b7 100644
--- a/libstdc++-v3/include/bits/regex_automaton.h
+++ b/libstdc++-v3/include/bits/regex_automaton.h
@@ -41,7 +41,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
*/
typedef long _StateIdT;
- typedef std::set<_StateIdT> _StateSet;
static const _StateIdT _S_invalid_state_id = -1;
template<typename _CharT>
@@ -138,16 +137,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_M_start() const
{ return _M_start_state; }
- const _StateSet&
- _M_final_states() const
- { return _M_accepting_states; }
-
_SizeT
_M_sub_count() const
{ return _M_subexpr_count; }
std::vector<size_t> _M_paren_stack;
- _StateSet _M_accepting_states;
_FlagT _M_flags;
_StateIdT _M_start_state;
_SizeT _M_subexpr_count;
@@ -172,7 +166,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_M_insert_accept()
{
auto __ret = _M_insert_state(_StateT(_S_opcode_accept));
- this->_M_accepting_states.insert(__ret);
return __ret;
}
diff --git a/libstdc++-v3/include/bits/regex_automaton.tcc b/libstdc++-v3/include/bits/regex_automaton.tcc
index 7edc67f8e88..759b053c5ef 100644
--- a/libstdc++-v3/include/bits/regex_automaton.tcc
+++ b/libstdc++-v3/include/bits/regex_automaton.tcc
@@ -134,9 +134,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_NFA<_TraitsT>::_M_dot(std::ostream& __ostr) const
{
__ostr << "digraph _Nfa {\n"
- " rankdir=LR;\n";
+ " rankdir=LR;\n";
for (size_t __i = 0; __i < this->size(); ++__i)
- (*this)[__i]._M_dot(__ostr, __i);
+ (*this)[__i]._M_dot(__ostr, __i);
__ostr << "}\n";
return __ostr;
}
@@ -186,7 +186,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_StateSeq<_TraitsT>
_StateSeq<_TraitsT>::_M_clone()
{
- std::map<_StateIdT, _StateIdT> __m;
+ std::vector<_StateIdT> __m(_M_nfa.size(), -1);
std::stack<_StateIdT> __stack;
__stack.push(_M_start);
while (!__stack.empty())
@@ -194,30 +194,35 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
auto __u = __stack.top();
__stack.pop();
auto __dup = _M_nfa[__u];
+ // _M_insert_state() never return -1
auto __id = _M_nfa._M_insert_state(__dup);
__m[__u] = __id;
if (__u == _M_end)
continue;
- if (__m.count(__dup._M_next) == 0)
+ if (__dup._M_next != _S_invalid_state_id && __m[__dup._M_next] == -1)
__stack.push(__dup._M_next);
if (__dup._M_opcode == _S_opcode_alternative
|| __dup._M_opcode == _S_opcode_subexpr_lookahead)
- if (__m.count(__dup._M_alt) == 0)
+ if (__dup._M_alt != _S_invalid_state_id && __m[__dup._M_alt] == -1)
__stack.push(__dup._M_alt);
}
- for (auto __it : __m)
+ long __size = static_cast<long>(__m.size());
+ for (long __k = 0; __k < __size; __k++)
{
- auto& __ref = _M_nfa[__it.second];
- if (__ref._M_next != -1)
+ long __v;
+ if ((__v = __m[__k]) == -1)
+ continue;
+ auto& __ref = _M_nfa[__v];
+ if (__ref._M_next != _S_invalid_state_id)
{
- _GLIBCXX_DEBUG_ASSERT(__m.count(__ref._M_next));
+ _GLIBCXX_DEBUG_ASSERT(__m[__ref._M_next] != -1);
__ref._M_next = __m[__ref._M_next];
}
if (__ref._M_opcode == _S_opcode_alternative
|| __ref._M_opcode == _S_opcode_subexpr_lookahead)
- if (__ref._M_alt != -1)
+ if (__ref._M_alt != _S_invalid_state_id)
{
- _GLIBCXX_DEBUG_ASSERT(__m.count(__ref._M_alt));
+ _GLIBCXX_DEBUG_ASSERT(__m[__ref._M_alt] != -1);
__ref._M_alt = __m[__ref._M_alt];
}
}
diff --git a/libstdc++-v3/include/bits/regex_compiler.h b/libstdc++-v3/include/bits/regex_compiler.h
index 4ac67dfed97..fe2e5f1085c 100644
--- a/libstdc++-v3/include/bits/regex_compiler.h
+++ b/libstdc++-v3/include/bits/regex_compiler.h
@@ -39,19 +39,20 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* @{
*/
- template<typename _TraitsT>
+ template<typename, bool, bool>
struct _BracketMatcher;
/// Builds an NFA from an input iterator interval.
- template<typename _FwdIter, typename _TraitsT>
+ template<typename _TraitsT>
class _Compiler
{
public:
- typedef typename _TraitsT::string_type _StringT;
+ typedef typename _TraitsT::char_type _CharT;
+ typedef const _CharT* _IterT;
typedef _NFA<_TraitsT> _RegexT;
typedef regex_constants::syntax_option_type _FlagT;
- _Compiler(_FwdIter __b, _FwdIter __e,
+ _Compiler(_IterT __b, _IterT __e,
const _TraitsT& __traits, _FlagT __flags);
std::shared_ptr<_RegexT>
@@ -59,12 +60,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
{ return make_shared<_RegexT>(std::move(_M_nfa)); }
private:
- typedef _Scanner<_FwdIter> _ScannerT;
- typedef typename _ScannerT::_TokenT _TokenT;
- typedef _StateSeq<_TraitsT> _StateSeqT;
- typedef std::stack<_StateSeqT, std::vector<_StateSeqT>> _StackT;
- typedef _BracketMatcher<_TraitsT> _BMatcherT;
- typedef std::ctype<typename _TraitsT::char_type> _CtypeT;
+ typedef _Scanner<_CharT> _ScannerT;
+ typedef typename _TraitsT::string_type _StringT;
+ typedef typename _ScannerT::_TokenT _TokenT;
+ typedef _StateSeq<_TraitsT> _StateSeqT;
+ typedef std::stack<_StateSeqT> _StackT;
+ typedef std::ctype<_CharT> _CtypeT;
// accepts a specific token or returns false.
bool
@@ -82,7 +83,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
bool
_M_assertion();
- void
+ bool
_M_quantifier();
bool
@@ -91,20 +92,30 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
bool
_M_bracket_expression();
- void
- _M_expression_term(_BMatcherT& __matcher);
+ template<bool __icase, bool __collate>
+ void
+ _M_insert_any_matcher_ecma();
- bool
- _M_range_expression(_BMatcherT& __matcher);
+ template<bool __icase, bool __collate>
+ void
+ _M_insert_any_matcher_posix();
- bool
- _M_collating_symbol(_BMatcherT& __matcher);
+ template<bool __icase, bool __collate>
+ void
+ _M_insert_char_matcher();
- bool
- _M_equivalence_class(_BMatcherT& __matcher);
+ template<bool __icase, bool __collate>
+ void
+ _M_insert_character_class_matcher();
- bool
- _M_character_class(_BMatcherT& __matcher);
+ template<bool __icase, bool __collate>
+ void
+ _M_insert_bracket_matcher(bool __neg);
+
+ template<bool __icase, bool __collate>
+ void
+ _M_expression_term(_BracketMatcher<_TraitsT, __icase, __collate>&
+ __matcher);
int
_M_cur_int_value(int __radix);
@@ -129,33 +140,119 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_StackT _M_stack;
};
- template<typename _FwdIter, typename _TraitsT>
- inline __disable_if_contiguous_normal_iter<_FwdIter, _TraitsT>
- __compile_nfa(_FwdIter __first, _FwdIter __last, const _TraitsT& __traits,
+ template<typename _TraitsT>
+ inline std::shared_ptr<_NFA<_TraitsT>>
+ __compile_nfa(const typename _TraitsT::char_type* __first,
+ const typename _TraitsT::char_type* __last,
+ const _TraitsT& __traits,
regex_constants::syntax_option_type __flags)
{
- using _Cmplr = _Compiler<_FwdIter, _TraitsT>;
+ using _Cmplr = _Compiler<_TraitsT>;
return _Cmplr(__first, __last, __traits, __flags)._M_get_nfa();
}
- template<typename _Iter, typename _TraitsT>
- inline __enable_if_contiguous_normal_iter<_Iter, _TraitsT>
- __compile_nfa(_Iter __first, _Iter __last, const _TraitsT& __traits,
- regex_constants::syntax_option_type __flags)
+ // [28.13.14]
+ template<typename _TraitsT, bool __icase, bool __collate>
+ class _RegexTranslator
{
- size_t __len = __last - __first;
- const auto* __cfirst = __len ? std::__addressof(*__first) : nullptr;
- return __compile_nfa(__cfirst, __cfirst + __len, __traits, __flags);
- }
+ public:
+ typedef typename _TraitsT::char_type _CharT;
+ typedef typename _TraitsT::string_type _StringT;
+ typedef typename std::conditional<__collate,
+ _StringT,
+ _CharT>::type _StrTransT;
+
+ explicit
+ _RegexTranslator(const _TraitsT& __traits)
+ : _M_traits(__traits)
+ { }
- template<typename _TraitsT, bool __is_ecma>
- struct _AnyMatcher
+ _CharT
+ _M_translate(_CharT __ch) const
+ {
+ if (__icase)
+ return _M_traits.translate_nocase(__ch);
+ else if (__collate)
+ return _M_traits.translate(__ch);
+ else
+ return __ch;
+ }
+
+ _StrTransT
+ _M_transform(_CharT __ch) const
+ {
+ return _M_transform_impl(__ch, typename integral_constant<bool,
+ __collate>::type());
+ }
+
+ private:
+ _StrTransT
+ _M_transform_impl(_CharT __ch, false_type) const
+ { return __ch; }
+
+ _StrTransT
+ _M_transform_impl(_CharT __ch, true_type) const
+ {
+ _StrTransT __str = _StrTransT(1, _M_translate(__ch));
+ return _M_traits.transform(__str.begin(), __str.end());
+ }
+
+ const _TraitsT& _M_traits;
+ };
+
+ template<typename _TraitsT>
+ class _RegexTranslator<_TraitsT, false, false>
{
- typedef typename _TraitsT::char_type _CharT;
+ public:
+ typedef typename _TraitsT::char_type _CharT;
+ typedef _CharT _StrTransT;
+
+ explicit
+ _RegexTranslator(const _TraitsT& __traits)
+ { }
+
+ _CharT
+ _M_translate(_CharT __ch) const
+ { return __ch; }
+
+ _StrTransT
+ _M_transform(_CharT __ch) const
+ { return __ch; }
+ };
+
+ template<typename _TraitsT, bool __is_ecma, bool __icase, bool __collate>
+ struct _AnyMatcher;
+
+ template<typename _TraitsT, bool __icase, bool __collate>
+ struct _AnyMatcher<_TraitsT, false, __icase, __collate>
+ {
+ typedef _RegexTranslator<_TraitsT, __icase, __collate> _TransT;
+ typedef typename _TransT::_CharT _CharT;
explicit
_AnyMatcher(const _TraitsT& __traits)
- : _M_traits(__traits)
+ : _M_translator(__traits)
+ { }
+
+ bool
+ operator()(_CharT __ch) const
+ {
+ static auto __nul = _M_translator._M_translate('\0');
+ return _M_translator._M_translate(__ch) != __nul;
+ }
+
+ _TransT _M_translator;
+ };
+
+ template<typename _TraitsT, bool __icase, bool __collate>
+ struct _AnyMatcher<_TraitsT, true, __icase, __collate>
+ {
+ typedef _RegexTranslator<_TraitsT, __icase, __collate> _TransT;
+ typedef typename _TransT::_CharT _CharT;
+
+ explicit
+ _AnyMatcher(const _TraitsT& __traits)
+ : _M_translator(__traits)
{ }
bool
@@ -165,92 +262,63 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
bool
_M_apply(_CharT __ch, true_type) const
{
- auto __c = _M_traits.translate(__ch);
- if (__is_ecma)
- {
- static auto __n = _M_traits.translate('\n');
- static auto __r = _M_traits.translate('\r');
- return __c != __n && __c != __r;
- }
- else
- {
- static auto __nul = _M_traits.translate('\0');
- return __c != __nul;
- }
+ auto __c = _M_translator._M_translate(__ch);
+ auto __n = _M_translator._M_translate('\n');
+ auto __r = _M_translator._M_translate('\r');
+ return __c != __n && __c != __r;
}
bool
_M_apply(_CharT __ch, false_type) const
{
- auto __c = _M_traits.translate(__ch);
- if (__is_ecma)
- {
- static auto __n = _M_traits.translate('\n');
- static auto __r = _M_traits.translate('\r');
- static auto __u2028 = _M_traits.translate(u'\u2028');
- static auto __u2029 = _M_traits.translate(u'\u2029');
- return __c != __n && __c != __r && __c != __u2028
- && __c != __u2029;
- }
- else
- {
- static auto __nul = _M_traits.translate('\0');
- return __c != __nul;
- }
+ auto __c = _M_translator._M_translate(__ch);
+ auto __n = _M_translator._M_translate('\n');
+ auto __r = _M_translator._M_translate('\r');
+ auto __u2028 = _M_translator._M_translate(u'\u2028');
+ auto __u2029 = _M_translator._M_translate(u'\u2029');
+ return __c != __n && __c != __r && __c != __u2028 && __c != __u2029;
}
- const _TraitsT& _M_traits;
+ _TransT _M_translator;
};
- template<typename _TraitsT, bool __icase>
+ template<typename _TraitsT, bool __icase, bool __collate>
struct _CharMatcher
{
- typedef typename _TraitsT::char_type _CharT;
+ typedef _RegexTranslator<_TraitsT, __icase, __collate> _TransT;
+ typedef typename _TransT::_CharT _CharT;
_CharMatcher(_CharT __ch, const _TraitsT& __traits)
- : _M_traits(__traits), _M_ch(_M_translate(__ch))
+ : _M_translator(__traits), _M_ch(_M_translator._M_translate(__ch))
{ }
bool
operator()(_CharT __ch) const
- { return _M_ch == _M_translate(__ch); }
-
- _CharT
- _M_translate(_CharT __ch) const
- {
- if (__icase)
- return _M_traits.translate_nocase(__ch);
- else
- return _M_traits.translate(__ch);
- }
+ { return _M_ch == _M_translator._M_translate(__ch); }
- const _TraitsT& _M_traits;
- _CharT _M_ch;
+ _TransT _M_translator;
+ _CharT _M_ch;
};
/// Matches a character range (bracket expression)
- // TODO: Convert used _M_flags fields to template parameters, including
- // collate and icase. Avoid using std::set, could use flat_set
- // (sorted vector and binary search) instead.
- template<typename _TraitsT>
+ template<typename _TraitsT, bool __icase, bool __collate>
struct _BracketMatcher
{
public:
- typedef typename _TraitsT::char_type _CharT;
- typedef typename _TraitsT::char_class_type _CharClassT;
- typedef typename _TraitsT::string_type _StringT;
- typedef regex_constants::syntax_option_type _FlagT;
+ typedef _RegexTranslator<_TraitsT, __icase, __collate> _TransT;
+ typedef typename _TransT::_CharT _CharT;
+ typedef typename _TransT::_StrTransT _StrTransT;
+ typedef typename _TraitsT::string_type _StringT;
+ typedef typename _TraitsT::char_class_type _CharClassT;
public:
_BracketMatcher(bool __is_non_matching,
- const _TraitsT& __traits,
- _FlagT __flags)
- :
+ const _TraitsT& __traits)
+ : _M_class_set(0), _M_translator(__traits), _M_traits(__traits),
+ _M_is_non_matching(__is_non_matching)
#ifdef _GLIBCXX_DEBUG
- _M_is_ready(false),
+ , _M_is_ready(false)
#endif
- _M_traits(__traits), _M_class_set(0), _M_flags(__flags),
- _M_is_non_matching(__is_non_matching)
{ }
bool
@@ -263,7 +331,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
void
_M_add_char(_CharT __c)
{
- _M_char_set.insert(_M_translate(__c));
+ _M_char_set.push_back(_M_translator._M_translate(__c));
#ifdef _GLIBCXX_DEBUG
_M_is_ready = false;
#endif
@@ -276,7 +344,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
__s.data() + __s.size());
if (__st.empty())
__throw_regex_error(regex_constants::error_collate);
- _M_char_set.insert(_M_translate(__st[0]));
+ _M_char_set.push_back(_M_translator._M_translate(__st[0]));
#ifdef _GLIBCXX_DEBUG
_M_is_ready = false;
#endif
@@ -291,7 +359,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
__throw_regex_error(regex_constants::error_collate);
__st = _M_traits.transform_primary(__st.data(),
__st.data() + __st.size());
- _M_equiv_set.insert(__st);
+ _M_equiv_set.push_back(__st);
#ifdef _GLIBCXX_DEBUG
_M_is_ready = false;
#endif
@@ -302,7 +370,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
{
auto __mask = _M_traits.lookup_classname(__s.data(),
__s.data() + __s.size(),
- _M_is_icase());
+ __icase);
if (__mask == 0)
__throw_regex_error(regex_constants::error_ctype);
_M_class_set |= __mask;
@@ -314,12 +382,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
void
_M_make_range(_CharT __l, _CharT __r)
{
- if (_M_flags & regex_constants::collate)
- _M_range_set.insert(
- make_pair(_M_get_str(_M_translate(__l)),
- _M_get_str(_M_translate(__r))));
- else
- _M_range_set.insert(make_pair(_M_get_str(__l), _M_get_str(__r)));
+ _M_range_set.push_back(make_pair(_M_translator._M_transform(__l),
+ _M_translator._M_transform(__r)));
#ifdef _GLIBCXX_DEBUG
_M_is_ready = false;
#endif
@@ -350,26 +414,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_M_apply(_CharT __ch, true_type) const
{ return _M_cache[static_cast<_UnsignedCharT>(__ch)]; }
- _CharT
- _M_translate(_CharT __c) const
- {
- if (_M_is_icase())
- return _M_traits.translate_nocase(__c);
- else
- return _M_traits.translate(__c);
- }
-
- bool
- _M_is_icase() const
- { return _M_flags & regex_constants::icase; }
-
- _StringT
- _M_get_str(_CharT __c) const
- {
- _StringT __s(1, __c);
- return _M_traits.transform(__s.begin(), __s.end());
- }
-
void
_M_make_cache(true_type)
{
@@ -383,16 +427,16 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
{ }
private:
- _CacheT _M_cache;
- std::set<_CharT> _M_char_set;
- std::set<_StringT> _M_equiv_set;
- std::set<pair<_StringT, _StringT>> _M_range_set;
- const _TraitsT& _M_traits;
- _CharClassT _M_class_set;
- _FlagT _M_flags;
- bool _M_is_non_matching;
+ _CacheT _M_cache;
+ std::vector<_CharT> _M_char_set;
+ std::vector<_StringT> _M_equiv_set;
+ std::vector<pair<_StrTransT, _StrTransT>> _M_range_set;
+ _CharClassT _M_class_set;
+ _TransT _M_translator;
+ const _TraitsT& _M_traits;
+ bool _M_is_non_matching;
#ifdef _GLIBCXX_DEBUG
- bool _M_is_ready;
+ bool _M_is_ready;
#endif
};
diff --git a/libstdc++-v3/include/bits/regex_compiler.tcc b/libstdc++-v3/include/bits/regex_compiler.tcc
index 4da653f2aa3..128dac12bd7 100644
--- a/libstdc++-v3/include/bits/regex_compiler.tcc
+++ b/libstdc++-v3/include/bits/regex_compiler.tcc
@@ -59,9 +59,9 @@ namespace __detail
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
- template<typename _FwdIter, typename _TraitsT>
- _Compiler<_FwdIter, _TraitsT>::
- _Compiler(_FwdIter __b, _FwdIter __e,
+ template<typename _TraitsT>
+ _Compiler<_TraitsT>::
+ _Compiler(_IterT __b, _IterT __e,
const _TraitsT& __traits, _FlagT __flags)
: _M_flags((__flags
& (regex_constants::ECMAScript
@@ -89,9 +89,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_M_nfa._M_eliminate_dummy();
}
- template<typename _FwdIter, typename _TraitsT>
+ template<typename _TraitsT>
void
- _Compiler<_FwdIter, _TraitsT>::
+ _Compiler<_TraitsT>::
_M_disjunction()
{
this->_M_alternative();
@@ -110,9 +110,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
}
}
- template<typename _FwdIter, typename _TraitsT>
+ template<typename _TraitsT>
void
- _Compiler<_FwdIter, _TraitsT>::
+ _Compiler<_TraitsT>::
_M_alternative()
{
if (this->_M_term())
@@ -126,24 +126,24 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_M_stack.push(_StateSeqT(_M_nfa, _M_nfa._M_insert_dummy()));
}
- template<typename _FwdIter, typename _TraitsT>
+ template<typename _TraitsT>
bool
- _Compiler<_FwdIter, _TraitsT>::
+ _Compiler<_TraitsT>::
_M_term()
{
if (this->_M_assertion())
return true;
if (this->_M_atom())
{
- this->_M_quantifier();
+ while (this->_M_quantifier());
return true;
}
return false;
}
- template<typename _FwdIter, typename _TraitsT>
+ template<typename _TraitsT>
bool
- _Compiler<_FwdIter, _TraitsT>::
+ _Compiler<_TraitsT>::
_M_assertion()
{
if (_M_match_token(_ScannerT::_S_token_line_begin))
@@ -172,9 +172,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
return true;
}
- template<typename _FwdIter, typename _TraitsT>
- void
- _Compiler<_FwdIter, _TraitsT>::
+ template<typename _TraitsT>
+ bool
+ _Compiler<_TraitsT>::
_M_quantifier()
{
bool __neg = (_M_flags & regex_constants::ECMAScript);
@@ -276,54 +276,44 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
}
_M_stack.push(__e);
}
+ else
+ return false;
+ return true;
}
- template<typename _FwdIter, typename _TraitsT>
+#define __INSERT_REGEX_MATCHER(__func, args...)\
+ do\
+ if (!(_M_flags & regex_constants::icase))\
+ if (!(_M_flags & regex_constants::collate))\
+ __func<false, false>(args);\
+ else\
+ __func<false, true>(args);\
+ else\
+ if (!(_M_flags & regex_constants::collate))\
+ __func<true, false>(args);\
+ else\
+ __func<true, true>(args);\
+ while (false)
+
+ template<typename _TraitsT>
bool
- _Compiler<_FwdIter, _TraitsT>::
+ _Compiler<_TraitsT>::
_M_atom()
{
if (_M_match_token(_ScannerT::_S_token_anychar))
{
- if (_M_flags & regex_constants::ECMAScript)
- _M_stack.push(_StateSeqT(_M_nfa,
- _M_nfa._M_insert_matcher
- (_AnyMatcher<_TraitsT,
- true>(_M_traits))));
+ if (!(_M_flags & regex_constants::ECMAScript))
+ __INSERT_REGEX_MATCHER(_M_insert_any_matcher_posix);
else
- _M_stack.push(_StateSeqT(_M_nfa,
- _M_nfa._M_insert_matcher
- (_AnyMatcher<_TraitsT,
- false>(_M_traits))));
+ __INSERT_REGEX_MATCHER(_M_insert_any_matcher_ecma);
}
else if (_M_try_char())
- {
- if (_M_flags & regex_constants::icase)
- _M_stack.push(_StateSeqT(_M_nfa,
- _M_nfa._M_insert_matcher
- (_CharMatcher<_TraitsT,
- true>(_M_value[0],
- _M_traits))));
- else
- _M_stack.push(_StateSeqT(_M_nfa,
- _M_nfa._M_insert_matcher
- (_CharMatcher<_TraitsT,
- false>(_M_value[0],
- _M_traits))));
- }
+ __INSERT_REGEX_MATCHER(_M_insert_char_matcher);
else if (_M_match_token(_ScannerT::_S_token_backref))
_M_stack.push(_StateSeqT(_M_nfa, _M_nfa.
_M_insert_backref(_M_cur_int_value(10))));
else if (_M_match_token(_ScannerT::_S_token_quoted_class))
- {
- _GLIBCXX_DEBUG_ASSERT(_M_value.size() == 1);
- _BMatcherT __matcher(_M_ctype.is(_CtypeT::upper, _M_value[0]),
- _M_traits, _M_flags);
- __matcher._M_add_character_class(_M_value);
- __matcher._M_ready();
- _M_stack.push(_StateSeqT(_M_nfa,
- _M_nfa._M_insert_matcher(std::move(__matcher))));
- }
+ __INSERT_REGEX_MATCHER(_M_insert_character_class_matcher);
else if (_M_match_token(_ScannerT::_S_token_subexpr_no_group_begin))
{
_StateSeqT __r(_M_nfa, _M_nfa._M_insert_dummy());
@@ -348,28 +338,90 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
return true;
}
- template<typename _FwdIter, typename _TraitsT>
+ template<typename _TraitsT>
bool
- _Compiler<_FwdIter, _TraitsT>::
+ _Compiler<_TraitsT>::
_M_bracket_expression()
{
bool __neg =
_M_match_token(_ScannerT::_S_token_bracket_neg_begin);
if (!(__neg || _M_match_token(_ScannerT::_S_token_bracket_begin)))
return false;
- _BMatcherT __matcher(__neg, _M_traits, _M_flags);
+ __INSERT_REGEX_MATCHER(_M_insert_bracket_matcher, __neg);
+ return true;
+ }
+#undef __INSERT_REGEX_MATCHER
+
+ template<typename _TraitsT>
+ template<bool __icase, bool __collate>
+ void
+ _Compiler<_TraitsT>::
+ _M_insert_any_matcher_ecma()
+ {
+ _M_stack.push(_StateSeqT(_M_nfa,
+ _M_nfa._M_insert_matcher
+ (_AnyMatcher<_TraitsT, true, __icase, __collate>
+ (_M_traits))));
+ }
+
+ template<typename _TraitsT>
+ template<bool __icase, bool __collate>
+ void
+ _Compiler<_TraitsT>::
+ _M_insert_any_matcher_posix()
+ {
+ _M_stack.push(_StateSeqT(_M_nfa,
+ _M_nfa._M_insert_matcher
+ (_AnyMatcher<_TraitsT, false, __icase, __collate>
+ (_M_traits))));
+ }
+
+ template<typename _TraitsT>
+ template<bool __icase, bool __collate>
+ void
+ _Compiler<_TraitsT>::
+ _M_insert_char_matcher()
+ {
+ _M_stack.push(_StateSeqT(_M_nfa,
+ _M_nfa._M_insert_matcher
+ (_CharMatcher<_TraitsT, __icase, __collate>
+ (_M_value[0], _M_traits))));
+ }
+
+ template<typename _TraitsT>
+ template<bool __icase, bool __collate>
+ void
+ _Compiler<_TraitsT>::
+ _M_insert_character_class_matcher()
+ {
+ _GLIBCXX_DEBUG_ASSERT(_M_value.size() == 1);
+ _BracketMatcher<_TraitsT, __icase, __collate> __matcher
+ (_M_ctype.is(_CtypeT::upper, _M_value[0]), _M_traits);
+ __matcher._M_add_character_class(_M_value);
+ __matcher._M_ready();
+ _M_stack.push(_StateSeqT(_M_nfa,
+ _M_nfa._M_insert_matcher(std::move(__matcher))));
+ }
+
+ template<typename _TraitsT>
+ template<bool __icase, bool __collate>
+ void
+ _Compiler<_TraitsT>::
+ _M_insert_bracket_matcher(bool __neg)
+ {
+ _BracketMatcher<_TraitsT, __icase, __collate> __matcher(__neg, _M_traits);
while (!_M_match_token(_ScannerT::_S_token_bracket_end))
_M_expression_term(__matcher);
__matcher._M_ready();
_M_stack.push(_StateSeqT(_M_nfa,
_M_nfa._M_insert_matcher(std::move(__matcher))));
- return true;
}
- template<typename _FwdIter, typename _TraitsT>
+ template<typename _TraitsT>
+ template<bool __icase, bool __collate>
void
- _Compiler<_FwdIter, _TraitsT>::
- _M_expression_term(_BMatcherT& __matcher)
+ _Compiler<_TraitsT>::
+ _M_expression_term(_BracketMatcher<_TraitsT, __icase, __collate>& __matcher)
{
if (_M_match_token(_ScannerT::_S_token_collsymbol))
__matcher._M_add_collating_element(_M_value);
@@ -403,9 +455,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
__throw_regex_error(regex_constants::error_brack);
}
- template<typename _FwdIter, typename _TraitsT>
+ template<typename _TraitsT>
bool
- _Compiler<_FwdIter, _TraitsT>::
+ _Compiler<_TraitsT>::
_M_try_char()
{
bool __is_char = false;
@@ -424,9 +476,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
return __is_char;
}
- template<typename _FwdIter, typename _TraitsT>
+ template<typename _TraitsT>
bool
- _Compiler<_FwdIter, _TraitsT>::
+ _Compiler<_TraitsT>::
_M_match_token(_TokenT token)
{
if (token == _M_scanner._M_get_token())
@@ -438,9 +490,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
return false;
}
- template<typename _FwdIter, typename _TraitsT>
+ template<typename _TraitsT>
int
- _Compiler<_FwdIter, _TraitsT>::
+ _Compiler<_TraitsT>::
_M_cur_int_value(int __radix)
{
long __v = 0;
@@ -450,25 +502,31 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
return __v;
}
- template<typename _TraitsT>
+ template<typename _TraitsT, bool __icase, bool __collate>
bool
- _BracketMatcher<_TraitsT>::_M_apply(_CharT __ch, false_type) const
+ _BracketMatcher<_TraitsT, __icase, __collate>::
+ _M_apply(_CharT __ch, false_type) const
{
bool __ret = false;
- if (_M_traits.isctype(__ch, _M_class_set)
- || _M_char_set.count(_M_translate(__ch))
- || _M_equiv_set.count(_M_traits.transform_primary(&__ch, &__ch+1)))
+ if (std::find(_M_char_set.begin(), _M_char_set.end(),
+ _M_translator._M_translate(__ch))
+ != _M_char_set.end())
__ret = true;
else
{
- _StringT __s = _M_get_str(_M_flags & regex_constants::collate
- ? _M_translate(__ch) : __ch);
+ auto __s = _M_translator._M_transform(__ch);
for (auto& __it : _M_range_set)
if (__it.first <= __s && __s <= __it.second)
{
__ret = true;
break;
}
+ if (_M_traits.isctype(__ch, _M_class_set))
+ __ret = true;
+ else if (std::find(_M_equiv_set.begin(), _M_equiv_set.end(),
+ _M_traits.transform_primary(&__ch, &__ch+1))
+ != _M_equiv_set.end())
+ __ret = true;
}
if (_M_is_non_matching)
return !__ret;
diff --git a/libstdc++-v3/include/bits/regex_executor.h b/libstdc++-v3/include/bits/regex_executor.h
index bed90148da8..0885716dbfb 100644
--- a/libstdc++-v3/include/bits/regex_executor.h
+++ b/libstdc++-v3/include/bits/regex_executor.h
@@ -65,7 +65,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_M_nfa(*__re._M_automaton),
_M_results(__results),
_M_match_queue(__dfs_mode ? nullptr
- : new queue<pair<_StateIdT, _ResultsVec>>()),
+ : new vector<pair<_StateIdT, _ResultsVec>>()),
_M_visited(__dfs_mode ? nullptr : new vector<bool>(_M_nfa.size())),
_M_flags((__flags & regex_constants::match_prev_avail)
? (__flags
@@ -133,23 +133,23 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_M_lookahead(_State<_TraitsT> __state);
public:
- _ResultsVec _M_cur_results;
- _BiIter _M_current;
- const _BiIter _M_begin;
- const _BiIter _M_end;
- const _RegexT& _M_re;
- const _NFAT& _M_nfa;
- _ResultsVec& _M_results;
+ _ResultsVec _M_cur_results;
+ _BiIter _M_current;
+ const _BiIter _M_begin;
+ const _BiIter _M_end;
+ const _RegexT& _M_re;
+ const _NFAT& _M_nfa;
+ _ResultsVec& _M_results;
// Used in BFS, saving states that need to be considered for the next
// character.
- std::unique_ptr<queue<pair<_StateIdT, _ResultsVec>>> _M_match_queue;
+ std::unique_ptr<vector<pair<_StateIdT, _ResultsVec>>> _M_match_queue;
// Used in BFS, indicating that which state is already visited.
- std::unique_ptr<vector<bool>> _M_visited;
- _FlagT _M_flags;
+ std::unique_ptr<vector<bool>> _M_visited;
+ _FlagT _M_flags;
// To record current solution.
- _StateIdT _M_start_state;
+ _StateIdT _M_start_state;
// Do we have a solution so far?
- bool _M_has_sol;
+ bool _M_has_sol;
};
//@} regex-detail
diff --git a/libstdc++-v3/include/bits/regex_executor.tcc b/libstdc++-v3/include/bits/regex_executor.tcc
index 85b70b8a5eb..e1cfcb06164 100644
--- a/libstdc++-v3/include/bits/regex_executor.tcc
+++ b/libstdc++-v3/include/bits/regex_executor.tcc
@@ -111,7 +111,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
}
else
{
- _M_match_queue->push(make_pair(_M_start_state, _M_results));
+ _M_match_queue->push_back(make_pair(_M_start_state, _M_results));
bool __ret = false;
while (1)
{
@@ -120,10 +120,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
break;
_M_visited->assign(_M_visited->size(), false);
auto _M_old_queue = std::move(*_M_match_queue);
- while (!_M_old_queue.empty())
+ for (auto __task : _M_old_queue)
{
- auto __task = _M_old_queue.front();
- _M_old_queue.pop();
_M_cur_results = __task.second;
_M_dfs<__match_mode>(__task.first);
}
@@ -279,7 +277,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
}
else
if (__state._M_matches(*_M_current))
- _M_match_queue->push(make_pair(__state._M_next, _M_cur_results));
+ _M_match_queue->push_back(make_pair(__state._M_next,
+ _M_cur_results));
break;
// First fetch the matched result from _M_cur_results as __submatch;
// then compare it with
diff --git a/libstdc++-v3/include/bits/regex_scanner.h b/libstdc++-v3/include/bits/regex_scanner.h
index d113c5d5262..6dc2b4edf6f 100644
--- a/libstdc++-v3/include/bits/regex_scanner.h
+++ b/libstdc++-v3/include/bits/regex_scanner.h
@@ -39,6 +39,154 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* @{
*/
+ struct _ScannerBase
+ {
+ public:
+ /// Token types returned from the scanner.
+ enum _TokenT
+ {
+ _S_token_anychar,
+ _S_token_ord_char,
+ _S_token_oct_num,
+ _S_token_hex_num,
+ _S_token_backref,
+ _S_token_subexpr_begin,
+ _S_token_subexpr_no_group_begin,
+ _S_token_subexpr_lookahead_begin, // neg if _M_value[0] == 'n'
+ _S_token_subexpr_end,
+ _S_token_bracket_begin,
+ _S_token_bracket_neg_begin,
+ _S_token_bracket_end,
+ _S_token_interval_begin,
+ _S_token_interval_end,
+ _S_token_quoted_class,
+ _S_token_char_class_name,
+ _S_token_collsymbol,
+ _S_token_equiv_class_name,
+ _S_token_opt,
+ _S_token_or,
+ _S_token_closure0,
+ _S_token_closure1,
+ _S_token_ungreedy,
+ _S_token_line_begin,
+ _S_token_line_end,
+ _S_token_word_bound, // neg if _M_value[0] == 'n'
+ _S_token_comma,
+ _S_token_dup_count,
+ _S_token_eof,
+ _S_token_unknown
+ };
+
+ protected:
+ typedef regex_constants::syntax_option_type _FlagT;
+
+ enum _StateT
+ {
+ _S_state_normal,
+ _S_state_in_brace,
+ _S_state_in_bracket,
+ };
+
+ protected:
+ _ScannerBase(_FlagT __flags)
+ : _M_state(_S_state_normal),
+ _M_flags(__flags),
+ _M_escape_tbl(_M_is_ecma()
+ ? _M_ecma_escape_tbl
+ : _M_awk_escape_tbl),
+ _M_spec_char(_M_is_ecma()
+ ? _M_ecma_spec_char
+ : _M_is_basic()
+ ? _M_basic_spec_char
+ : _M_extended_spec_char),
+ _M_at_bracket_start(false)
+ { }
+
+ protected:
+ const char*
+ _M_find_escape(char __c)
+ {
+ auto __it = _M_escape_tbl;
+ for (; __it->first != '\0'; ++__it)
+ if (__it->first == __c)
+ return &__it->second;
+ return nullptr;
+ }
+
+ bool
+ _M_is_ecma() const
+ { return _M_flags & regex_constants::ECMAScript; }
+
+ bool
+ _M_is_basic() const
+ { return _M_flags & (regex_constants::basic | regex_constants::grep); }
+
+ bool
+ _M_is_extended() const
+ {
+ return _M_flags & (regex_constants::extended
+ | regex_constants::egrep
+ | regex_constants::awk);
+ }
+
+ bool
+ _M_is_grep() const
+ { return _M_flags & (regex_constants::grep | regex_constants::egrep); }
+
+ bool
+ _M_is_awk() const
+ { return _M_flags & regex_constants::awk; }
+
+ protected:
+ const std::pair<char, _TokenT> _M_token_tbl[9] =
+ {
+ {'^', _S_token_line_begin},
+ {'$', _S_token_line_end},
+ {'.', _S_token_anychar},
+ {'*', _S_token_closure0},
+ {'+', _S_token_closure1},
+ {'?', _S_token_opt},
+ {'|', _S_token_or},
+ {'\n', _S_token_or}, // grep and egrep
+ {'\0', _S_token_or},
+ };
+ const std::pair<char, char> _M_ecma_escape_tbl[8] =
+ {
+ {'0', '\0'},
+ {'b', '\b'},
+ {'f', '\f'},
+ {'n', '\n'},
+ {'r', '\r'},
+ {'t', '\t'},
+ {'v', '\v'},
+ {'\0', '\0'},
+ };
+ const std::pair<char, char> _M_awk_escape_tbl[11] =
+ {
+ {'"', '"'},
+ {'/', '/'},
+ {'\\', '\\'},
+ {'a', '\a'},
+ {'b', '\b'},
+ {'f', '\f'},
+ {'n', '\n'},
+ {'r', '\r'},
+ {'t', '\t'},
+ {'v', '\v'},
+ {'\0', '\0'},
+ };
+ const char* _M_ecma_spec_char = "^$\\.*+?()[]{}|";
+ const char* _M_basic_spec_char = ".[\\*^$";
+ const char* _M_extended_spec_char = ".[\\()*+?{|^$";
+
+ _StateT _M_state;
+ _FlagT _M_flags;
+ _TokenT _M_token;
+ const std::pair<char, char>* _M_escape_tbl;
+ const char* _M_spec_char;
+ bool _M_at_bracket_start;
+ };
+
/**
* @brief struct _Scanner. Scans an input range for regex tokens.
*
@@ -49,51 +197,17 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* constructor: different regular expression grammars will interpret
* the same input pattern in syntactically different ways.
*/
- template<typename _FwdIter>
+ template<typename _CharT>
class _Scanner
+ : public _ScannerBase
{
public:
- typedef typename std::iterator_traits<_FwdIter>::value_type _CharT;
+ typedef const _CharT* _IterT;
typedef std::basic_string<_CharT> _StringT;
typedef regex_constants::syntax_option_type _FlagT;
typedef const std::ctype<_CharT> _CtypeT;
- /// Token types returned from the scanner.
- enum _TokenT
- {
- _S_token_anychar,
- _S_token_ord_char,
- _S_token_oct_num,
- _S_token_hex_num,
- _S_token_backref,
- _S_token_subexpr_begin,
- _S_token_subexpr_no_group_begin,
- _S_token_subexpr_lookahead_begin, // neg if _M_value[0] == 'n'
- _S_token_subexpr_end,
- _S_token_bracket_begin,
- _S_token_bracket_neg_begin,
- _S_token_bracket_end,
- _S_token_interval_begin,
- _S_token_interval_end,
- _S_token_quoted_class,
- _S_token_char_class_name,
- _S_token_collsymbol,
- _S_token_equiv_class_name,
- _S_token_opt,
- _S_token_or,
- _S_token_closure0,
- _S_token_closure1,
- _S_token_ungreedy,
- _S_token_line_begin,
- _S_token_line_end,
- _S_token_word_bound, // neg if _M_value[0] == 'n'
- _S_token_comma,
- _S_token_dup_count,
- _S_token_eof,
- _S_token_unknown
- };
-
- _Scanner(_FwdIter __begin, _FwdIter __end,
+ _Scanner(_IterT __begin, _IterT __end,
_FlagT __flags, std::locale __loc);
void
@@ -113,13 +227,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
#endif
private:
- enum _StateT
- {
- _S_state_normal,
- _S_state_in_brace,
- _S_state_in_bracket,
- };
-
void
_M_scan_normal();
@@ -141,49 +248,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
void
_M_eat_class(char);
- constexpr bool
- _M_is_ecma()
- { return _M_flags & regex_constants::ECMAScript; }
-
- constexpr bool
- _M_is_basic()
- { return _M_flags & (regex_constants::basic | regex_constants::grep); }
-
- constexpr bool
- _M_is_extended()
- {
- return _M_flags & (regex_constants::extended
- | regex_constants::egrep
- | regex_constants::awk);
- }
-
- constexpr bool
- _M_is_grep()
- { return _M_flags & (regex_constants::grep | regex_constants::egrep); }
-
- constexpr bool
- _M_is_awk()
- { return _M_flags & regex_constants::awk; }
-
- _StateT _M_state;
- _FwdIter _M_current;
- _FwdIter _M_end;
- _FlagT _M_flags;
+ _IterT _M_current;
+ _IterT _M_end;
_CtypeT& _M_ctype;
- _TokenT _M_token;
_StringT _M_value;
- bool _M_at_bracket_start;
- public:
- // FIXME: make them static when this file is stable.
- const std::map<char, _TokenT> _M_token_map;
- const std::map<char, char> _M_ecma_escape_map;
- const std::map<char, char> _M_awk_escape_map;
- const std::set<char> _M_ecma_spec_char;
- const std::set<char> _M_basic_spec_char;
- const std::set<char> _M_extended_spec_char;
-
- const std::map<char, char>& _M_escape_map;
- const std::set<char>& _M_spec_char;
void (_Scanner::* _M_eat_escape)();
};
diff --git a/libstdc++-v3/include/bits/regex_scanner.tcc b/libstdc++-v3/include/bits/regex_scanner.tcc
index 34d78ec7647..5332d2eff84 100644
--- a/libstdc++-v3/include/bits/regex_scanner.tcc
+++ b/libstdc++-v3/include/bits/regex_scanner.tcc
@@ -52,106 +52,22 @@ namespace __detail
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
- template<typename _FwdIter>
- _Scanner<_FwdIter>::
- _Scanner(_FwdIter __begin, _FwdIter __end,
+ template<typename _CharT>
+ _Scanner<_CharT>::
+ _Scanner(typename _Scanner::_IterT __begin,
+ typename _Scanner::_IterT __end,
_FlagT __flags, std::locale __loc)
- : _M_state(_S_state_normal), _M_current(__begin), _M_end(__end),
- _M_flags(__flags),
+ : _ScannerBase(__flags),
+ _M_current(__begin), _M_end(__end),
_M_ctype(std::use_facet<_CtypeT>(__loc)),
- _M_at_bracket_start(false),
- _M_token_map
- {
- {'^', _S_token_line_begin},
- {'$', _S_token_line_end},
- {'.', _S_token_anychar},
- {'*', _S_token_closure0},
- {'+', _S_token_closure1},
- {'?', _S_token_opt},
- {'|', _S_token_or},
- // grep and egrep
- {'\n', _S_token_or},
- },
- _M_ecma_escape_map
- {
- {'0', '\0'},
- {'b', '\b'},
- {'f', '\f'},
- {'n', '\n'},
- {'r', '\r'},
- {'t', '\t'},
- {'v', '\v'},
- },
- _M_awk_escape_map
- {
- {'"', '"'},
- {'/', '/'},
- {'\\', '\\'},
- {'a', '\a'},
- {'b', '\b'},
- {'f', '\f'},
- {'n', '\n'},
- {'r', '\r'},
- {'t', '\t'},
- {'v', '\v'},
- },
- _M_ecma_spec_char
- {
- '^',
- '$',
- '\\',
- '.',
- '*',
- '+',
- '?',
- '(',
- ')',
- '[',
- ']',
- '{',
- '}',
- '|',
- },
- _M_basic_spec_char
- {
- '.',
- '[',
- '\\',
- '*',
- '^',
- '$',
- },
- _M_extended_spec_char
- {
- '.',
- '[',
- '\\',
- '(',
- ')',
- '*',
- '+',
- '?',
- '{',
- '|',
- '^',
- '$',
- },
- _M_escape_map(_M_is_ecma()
- ? _M_ecma_escape_map
- : _M_awk_escape_map),
- _M_spec_char(_M_is_ecma()
- ? _M_ecma_spec_char
- : _M_is_basic()
- ? _M_basic_spec_char
- : _M_extended_spec_char),
_M_eat_escape(_M_is_ecma()
? &_Scanner::_M_eat_escape_ecma
: &_Scanner::_M_eat_escape_posix)
{ _M_advance(); }
- template<typename _FwdIter>
+ template<typename _CharT>
void
- _Scanner<_FwdIter>::
+ _Scanner<_CharT>::
_M_advance()
{
if (_M_current == _M_end)
@@ -173,12 +89,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// Differences between styles:
// 1) "\(", "\)", "\{" in basic. It's not escaping.
// 2) "(?:", "(?=", "(?!" in ECMAScript.
- template<typename _FwdIter>
+ template<typename _CharT>
void
- _Scanner<_FwdIter>::
+ _Scanner<_CharT>::
_M_scan_normal()
{
auto __c = *_M_current++;
+ const char* __pos;
if (__c == '\\')
{
@@ -222,6 +139,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
else
__throw_regex_error(regex_constants::error_paren);
}
+ else if (_M_flags & regex_constants::nosubs)
+ _M_token = _S_token_subexpr_no_group_begin;
else
_M_token = _S_token_subexpr_begin;
}
@@ -244,11 +163,23 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_M_state = _S_state_in_brace;
_M_token = _S_token_interval_begin;
}
- else if ((_M_spec_char.count(_M_ctype.narrow(__c, '\0'))
+ else if (((__pos = std::strchr(_M_spec_char, _M_ctype.narrow(__c, '\0')))
+ != nullptr
+ && *__pos != '\0'
&& __c != ']'
&& __c != '}')
|| (_M_is_grep() && __c == '\n'))
- _M_token = _M_token_map.at(__c);
+ {
+ auto __it = _M_token_tbl;
+ auto __narrowc = _M_ctype.narrow(__c, '\0');
+ for (; __it->first != '\0'; ++__it)
+ if (__it->first == __narrowc)
+ {
+ _M_token = __it->second;
+ return;
+ }
+ _GLIBCXX_DEBUG_ASSERT(false);
+ }
else
{
_M_token = _S_token_ord_char;
@@ -259,9 +190,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// Differences between styles:
// 1) different semantics of "[]" and "[^]".
// 2) Escaping in bracket expr.
- template<typename _FwdIter>
+ template<typename _CharT>
void
- _Scanner<_FwdIter>::
+ _Scanner<_CharT>::
_M_scan_in_bracket()
{
if (_M_current == _M_end)
@@ -316,9 +247,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// Differences between styles:
// 1) "\}" in basic style.
- template<typename _FwdIter>
+ template<typename _CharT>
void
- _Scanner<_FwdIter>::
+ _Scanner<_CharT>::
_M_scan_in_brace()
{
if (_M_current == _M_end)
@@ -357,21 +288,21 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
__throw_regex_error(regex_constants::error_badbrace);
}
- template<typename _FwdIter>
+ template<typename _CharT>
void
- _Scanner<_FwdIter>::
+ _Scanner<_CharT>::
_M_eat_escape_ecma()
{
if (_M_current == _M_end)
__throw_regex_error(regex_constants::error_escape);
auto __c = *_M_current++;
+ auto __pos = _M_find_escape(_M_ctype.narrow(__c, '\0'));
- if (_M_escape_map.count(_M_ctype.narrow(__c, '\0'))
- && (__c != 'b' || _M_state == _S_state_in_bracket))
+ if (__pos != nullptr && (__c != 'b' || _M_state == _S_state_in_bracket))
{
_M_token = _S_token_ord_char;
- _M_value.assign(1, _M_escape_map.at(__c));
+ _M_value.assign(1, *__pos);
}
else if (__c == 'b')
{
@@ -431,17 +362,18 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// Differences between styles:
// 1) Extended doesn't support backref, but basic does.
- template<typename _FwdIter>
+ template<typename _CharT>
void
- _Scanner<_FwdIter>::
+ _Scanner<_CharT>::
_M_eat_escape_posix()
{
if (_M_current == _M_end)
__throw_regex_error(regex_constants::error_escape);
auto __c = *_M_current;
+ auto __pos = std::strchr(_M_spec_char, _M_ctype.narrow(__c, '\0'));
- if (_M_spec_char.count(_M_ctype.narrow(__c, '\0')))
+ if (__pos != nullptr && *__pos != '\0')
{
_M_token = _S_token_ord_char;
_M_value.assign(1, __c);
@@ -469,17 +401,18 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
++_M_current;
}
- template<typename _FwdIter>
+ template<typename _CharT>
void
- _Scanner<_FwdIter>::
+ _Scanner<_CharT>::
_M_eat_escape_awk()
{
auto __c = *_M_current++;
+ auto __pos = _M_find_escape(_M_ctype.narrow(__c, '\0'));
- if (_M_escape_map.count(_M_ctype.narrow(__c, '\0')))
+ if (__pos != nullptr)
{
_M_token = _S_token_ord_char;
- _M_value.assign(1, _M_escape_map.at(__c));
+ _M_value.assign(1, *__pos);
}
// \ddd for oct representation
else if (_M_ctype.is(_CtypeT::digit, __c)
@@ -505,9 +438,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// Eats a character class or throwns an exception.
// __ch cound be ':', '.' or '=', _M_current is the char after ']' when
// returning.
- template<typename _FwdIter>
+ template<typename _CharT>
void
- _Scanner<_FwdIter>::
+ _Scanner<_CharT>::
_M_eat_class(char __ch)
{
for (_M_value.clear(); _M_current != _M_end && *_M_current != __ch;)
@@ -525,9 +458,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
}
#ifdef _GLIBCXX_DEBUG
- template<typename _FwdIter>
+ template<typename _CharT>
std::ostream&
- _Scanner<_FwdIter>::
+ _Scanner<_CharT>::
_M_print(std::ostream& ostr)
{
switch (_M_token)
diff --git a/libstdc++-v3/include/bits/stl_deque.h b/libstdc++-v3/include/bits/stl_deque.h
index 10fcb073230..0f4d0e9b8a7 100644
--- a/libstdc++-v3/include/bits/stl_deque.h
+++ b/libstdc++-v3/include/bits/stl_deque.h
@@ -487,13 +487,13 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
~_Deque_base() _GLIBCXX_NOEXCEPT;
protected:
- //This struct encapsulates the implementation of the std::deque
- //standard container and at the same time makes use of the EBO
- //for empty allocators.
typedef typename _Alloc::template rebind<_Tp*>::other _Map_alloc_type;
typedef typename _Alloc::template rebind<_Tp>::other _Tp_alloc_type;
+ //This struct encapsulates the implementation of the std::deque
+ //standard container and at the same time makes use of the EBO
+ //for empty allocators.
struct _Deque_impl
: public _Tp_alloc_type
{
@@ -781,12 +781,18 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
public:
// [23.2.1.1] construct/copy/destroy
// (assign() and get_allocator() are also listed in this section)
+
+ /**
+ * @brief Creates a %deque with no elements.
+ */
+ deque() : _Base() { }
+
/**
* @brief Creates a %deque with no elements.
* @param __a An allocator object.
*/
explicit
- deque(const allocator_type& __a = allocator_type())
+ deque(const allocator_type& __a)
: _Base(__a) { }
#if __cplusplus >= 201103L
diff --git a/libstdc++-v3/include/bits/stl_list.h b/libstdc++-v3/include/bits/stl_list.h
index b5e6cc8634d..e014fbcd3ce 100644
--- a/libstdc++-v3/include/bits/stl_list.h
+++ b/libstdc++-v3/include/bits/stl_list.h
@@ -526,12 +526,22 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
public:
// [23.2.2.1] construct/copy/destroy
// (assign() and get_allocator() are also listed in this section)
+
+ /**
+ * @brief Creates a %list with no elements.
+ */
+ list()
+#if __cplusplus >= 201103L
+ noexcept(is_nothrow_default_constructible<_Node_alloc_type>::value)
+#endif
+ : _Base() { }
+
/**
* @brief Creates a %list with no elements.
* @param __a An allocator object.
*/
explicit
- list(const allocator_type& __a = allocator_type()) _GLIBCXX_NOEXCEPT
+ list(const allocator_type& __a) _GLIBCXX_NOEXCEPT
: _Base(_Node_alloc_type(__a)) { }
#if __cplusplus >= 201103L
diff --git a/libstdc++-v3/include/bits/stl_vector.h b/libstdc++-v3/include/bits/stl_vector.h
index 28bdb6bb170..f4829575e73 100644
--- a/libstdc++-v3/include/bits/stl_vector.h
+++ b/libstdc++-v3/include/bits/stl_vector.h
@@ -242,12 +242,22 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
public:
// [23.2.4.1] construct/copy/destroy
// (assign() and get_allocator() are also listed in this section)
+
+ /**
+ * @brief Creates a %vector with no elements.
+ */
+ vector()
+#if __cplusplus >= 201103L
+ noexcept(is_nothrow_default_constructible<_Alloc>::value)
+#endif
+ : _Base() { }
+
/**
* @brief Creates a %vector with no elements.
* @param __a An allocator object.
*/
explicit
- vector(const allocator_type& __a = allocator_type()) _GLIBCXX_NOEXCEPT
+ vector(const allocator_type& __a) _GLIBCXX_NOEXCEPT
: _Base(__a) { }
#if __cplusplus >= 201103L
@@ -1433,7 +1443,8 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
void
_M_move_assign(vector&& __x, std::true_type) noexcept
{
- const vector __tmp(std::move(*this));
+ vector __tmp(get_allocator());
+ this->_M_impl._M_swap_data(__tmp._M_impl);
this->_M_impl._M_swap_data(__x._M_impl);
if (_Alloc_traits::_S_propagate_on_move_assign())
std::__alloc_on_move(_M_get_Tp_allocator(),
diff --git a/libstdc++-v3/include/debug/deque b/libstdc++-v3/include/debug/deque
index f16d72ca9e7..225d06c92d1 100644
--- a/libstdc++-v3/include/debug/deque
+++ b/libstdc++-v3/include/debug/deque
@@ -68,8 +68,11 @@ namespace __debug
typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
// 23.2.1.1 construct/copy/destroy:
+
+ deque() : _Base() { }
+
explicit
- deque(const _Allocator& __a = _Allocator())
+ deque(const _Allocator& __a)
: _Base(__a) { }
#if __cplusplus >= 201103L
diff --git a/libstdc++-v3/include/debug/list b/libstdc++-v3/include/debug/list
index 145f59d735d..9918bc5d808 100644
--- a/libstdc++-v3/include/debug/list
+++ b/libstdc++-v3/include/debug/list
@@ -69,8 +69,12 @@ namespace __debug
typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
// 23.2.2.1 construct/copy/destroy:
+
+ list() _GLIBCXX_NOEXCEPT
+ : _Base() { }
+
explicit
- list(const _Allocator& __a = _Allocator()) _GLIBCXX_NOEXCEPT
+ list(const _Allocator& __a) _GLIBCXX_NOEXCEPT
: _Base(__a) { }
#if __cplusplus >= 201103L
diff --git a/libstdc++-v3/include/debug/map.h b/libstdc++-v3/include/debug/map.h
index e9bf7c60dd5..bd68c996d0d 100644
--- a/libstdc++-v3/include/debug/map.h
+++ b/libstdc++-v3/include/debug/map.h
@@ -49,6 +49,11 @@ namespace __debug
typedef typename _Base::const_iterator _Base_const_iterator;
typedef typename _Base::iterator _Base_iterator;
typedef __gnu_debug::_Equal_to<_Base_const_iterator> _Equal;
+
+#if __cplusplus >= 201103L
+ typedef __gnu_cxx::__alloc_traits<typename
+ _Base::allocator_type> _Alloc_traits;
+#endif
public:
// types:
typedef _Key key_type;
@@ -72,7 +77,10 @@ namespace __debug
typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
// 23.3.1.1 construct/copy/destroy:
- explicit map(const _Compare& __comp = _Compare(),
+
+ map() : _Base() { }
+
+ explicit map(const _Compare& __comp,
const _Allocator& __a = _Allocator())
: _Base(__comp, __a) { }
@@ -101,6 +109,27 @@ namespace __debug
const _Compare& __c = _Compare(),
const allocator_type& __a = allocator_type())
: _Base(__l, __c, __a) { }
+
+ explicit
+ map(const allocator_type& __a)
+ : _Base(__a) { }
+
+ map(const map& __m, const allocator_type& __a)
+ : _Base(__m, __a) { }
+
+ map(map&& __m, const allocator_type& __a)
+ : _Base(std::move(__m._M_base()), __a) { }
+
+ map(initializer_list<value_type> __l, const allocator_type& __a)
+ : _Base(__l, __a) { }
+
+ template<typename _InputIterator>
+ map(_InputIterator __first, _InputIterator __last,
+ const allocator_type& __a)
+ : _Base(__gnu_debug::__base(__gnu_debug::__check_valid_range(__first,
+ __last)),
+ __gnu_debug::__base(__last), __a)
+ { }
#endif
~map() _GLIBCXX_NOEXCEPT { }
@@ -108,7 +137,7 @@ namespace __debug
map&
operator=(const map& __x)
{
- *static_cast<_Base*>(this) = __x;
+ _M_base() = __x;
this->_M_invalidate_all();
return *this;
}
@@ -116,20 +145,25 @@ namespace __debug
#if __cplusplus >= 201103L
map&
operator=(map&& __x)
+ noexcept(_Alloc_traits::_S_nothrow_move())
{
- // NB: DR 1204.
- // NB: DR 675.
__glibcxx_check_self_move_assign(__x);
- clear();
- swap(__x);
+ bool xfer_memory = _Alloc_traits::_S_propagate_on_move_assign()
+ || __x.get_allocator() == this->get_allocator();
+ _M_base() = std::move(__x._M_base());
+ if (xfer_memory)
+ this->_M_swap(__x);
+ else
+ this->_M_invalidate_all();
+ __x._M_invalidate_all();
return *this;
}
map&
operator=(initializer_list<value_type> __l)
{
- this->clear();
- this->insert(__l);
+ _M_base() = __l;
+ this->_M_invalidate_all();
return *this;
}
#endif
@@ -360,7 +394,14 @@ namespace __debug
void
swap(map& __x)
+#if __cplusplus >= 201103L
+ noexcept(_Alloc_traits::_S_nothrow_swap())
+#endif
{
+#if __cplusplus >= 201103L
+ if (!_Alloc_traits::_S_propagate_on_swap())
+ __glibcxx_check_equal_allocs(__x);
+#endif
_Base::swap(__x);
this->_M_swap(__x);
}
diff --git a/libstdc++-v3/include/debug/multimap.h b/libstdc++-v3/include/debug/multimap.h
index 35c827bb949..fad80cc8ebe 100644
--- a/libstdc++-v3/include/debug/multimap.h
+++ b/libstdc++-v3/include/debug/multimap.h
@@ -50,6 +50,11 @@ namespace __debug
typedef typename _Base::const_iterator _Base_const_iterator;
typedef typename _Base::iterator _Base_iterator;
typedef __gnu_debug::_Equal_to<_Base_const_iterator> _Equal;
+
+#if __cplusplus >= 201103L
+ typedef __gnu_cxx::__alloc_traits<typename
+ _Base::allocator_type> _Alloc_traits;
+#endif
public:
// types:
typedef _Key key_type;
@@ -73,7 +78,10 @@ namespace __debug
typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
// 23.3.1.1 construct/copy/destroy:
- explicit multimap(const _Compare& __comp = _Compare(),
+
+ multimap() : _Base() { }
+
+ explicit multimap(const _Compare& __comp,
const _Allocator& __a = _Allocator())
: _Base(__comp, __a) { }
@@ -102,6 +110,28 @@ namespace __debug
const _Compare& __c = _Compare(),
const allocator_type& __a = allocator_type())
: _Base(__l, __c, __a) { }
+
+ explicit
+ multimap(const allocator_type& __a)
+ : _Base(__a) { }
+
+ multimap(const multimap& __m, const allocator_type& __a)
+ : _Base(__m, __a) { }
+
+ multimap(multimap&& __m, const allocator_type& __a)
+ : _Base(std::move(__m._M_base()), __a) { }
+
+ multimap(initializer_list<value_type> __l, const allocator_type& __a)
+ : _Base(__l, __a)
+ { }
+
+ template<typename _InputIterator>
+ multimap(_InputIterator __first, _InputIterator __last,
+ const allocator_type& __a)
+ : _Base(__gnu_debug::__base(__gnu_debug::__check_valid_range(__first,
+ __last)),
+ __gnu_debug::__base(__last), __a)
+ { }
#endif
~multimap() _GLIBCXX_NOEXCEPT { }
@@ -109,7 +139,7 @@ namespace __debug
multimap&
operator=(const multimap& __x)
{
- *static_cast<_Base*>(this) = __x;
+ _M_base() = __x;
this->_M_invalidate_all();
return *this;
}
@@ -117,20 +147,25 @@ namespace __debug
#if __cplusplus >= 201103L
multimap&
operator=(multimap&& __x)
+ noexcept(_Alloc_traits::_S_nothrow_move())
{
- // NB: DR 1204.
- // NB: DR 675.
__glibcxx_check_self_move_assign(__x);
- clear();
- swap(__x);
+ bool xfer_memory = _Alloc_traits::_S_propagate_on_move_assign()
+ || __x.get_allocator() == this->get_allocator();
+ _M_base() = std::move(__x._M_base());
+ if (xfer_memory)
+ this->_M_swap(__x);
+ else
+ this->_M_invalidate_all();
+ __x._M_invalidate_all();
return *this;
}
multimap&
operator=(initializer_list<value_type> __l)
{
- this->clear();
- this->insert(__l);
+ _M_base() = __l;
+ this->_M_invalidate_all();
return *this;
}
#endif
@@ -343,7 +378,14 @@ namespace __debug
void
swap(multimap& __x)
+#if __cplusplus >= 201103L
+ noexcept(_Alloc_traits::_S_nothrow_swap())
+#endif
{
+#if __cplusplus >= 201103L
+ if (!_Alloc_traits::_S_propagate_on_swap())
+ __glibcxx_check_equal_allocs(__x);
+#endif
_Base::swap(__x);
this->_M_swap(__x);
}
diff --git a/libstdc++-v3/include/debug/multiset.h b/libstdc++-v3/include/debug/multiset.h
index 7aff7caad6f..bd555b3c290 100644
--- a/libstdc++-v3/include/debug/multiset.h
+++ b/libstdc++-v3/include/debug/multiset.h
@@ -49,6 +49,11 @@ namespace __debug
typedef typename _Base::const_iterator _Base_const_iterator;
typedef typename _Base::iterator _Base_iterator;
typedef __gnu_debug::_Equal_to<_Base_const_iterator> _Equal;
+
+#if __cplusplus >= 201103L
+ typedef __gnu_cxx::__alloc_traits<typename
+ _Base::allocator_type> _Alloc_traits;
+#endif
public:
// types:
typedef _Key key_type;
@@ -72,7 +77,10 @@ namespace __debug
typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
// 23.3.3.1 construct/copy/destroy:
- explicit multiset(const _Compare& __comp = _Compare(),
+
+ multiset() : _Base() { }
+
+ explicit multiset(const _Compare& __comp,
const _Allocator& __a = _Allocator())
: _Base(__comp, __a) { }
@@ -101,6 +109,28 @@ namespace __debug
const _Compare& __comp = _Compare(),
const allocator_type& __a = allocator_type())
: _Base(__l, __comp, __a) { }
+
+ explicit
+ multiset(const allocator_type& __a)
+ : _Base(__a) { }
+
+ multiset(const multiset& __m, const allocator_type& __a)
+ : _Base(__m, __a) { }
+
+ multiset(multiset&& __m, const allocator_type& __a)
+ : _Base(std::move(__m._M_base()), __a) { }
+
+ multiset(initializer_list<value_type> __l, const allocator_type& __a)
+ : _Base(__l, __a)
+ { }
+
+ template<typename _InputIterator>
+ multiset(_InputIterator __first, _InputIterator __last,
+ const allocator_type& __a)
+ : _Base(__gnu_debug::__base(__gnu_debug::__check_valid_range(__first,
+ __last)),
+ __gnu_debug::__base(__last), __a)
+ { }
#endif
~multiset() _GLIBCXX_NOEXCEPT { }
@@ -108,7 +138,7 @@ namespace __debug
multiset&
operator=(const multiset& __x)
{
- *static_cast<_Base*>(this) = __x;
+ _M_base() = __x;
this->_M_invalidate_all();
return *this;
}
@@ -116,20 +146,25 @@ namespace __debug
#if __cplusplus >= 201103L
multiset&
operator=(multiset&& __x)
+ noexcept(_Alloc_traits::_S_nothrow_move())
{
- // NB: DR 1204.
- // NB: DR 675.
__glibcxx_check_self_move_assign(__x);
- clear();
- swap(__x);
+ bool xfer_memory = _Alloc_traits::_S_propagate_on_move_assign()
+ || __x.get_allocator() == this->get_allocator();
+ _M_base() = std::move(__x._M_base());
+ if (xfer_memory)
+ this->_M_swap(__x);
+ else
+ this->_M_invalidate_all();
+ __x._M_invalidate_all();
return *this;
}
multiset&
operator=(initializer_list<value_type> __l)
{
- this->clear();
- this->insert(__l);
+ _M_base() = __l;
+ this->_M_invalidate_all();
return *this;
}
#endif
@@ -328,7 +363,14 @@ namespace __debug
void
swap(multiset& __x)
+#if __cplusplus >= 201103L
+ noexcept(_Alloc_traits::_S_nothrow_swap())
+#endif
{
+#if __cplusplus >= 201103L
+ if (!_Alloc_traits::_S_propagate_on_swap())
+ __glibcxx_check_equal_allocs(__x);
+#endif
_Base::swap(__x);
this->_M_swap(__x);
}
diff --git a/libstdc++-v3/include/debug/safe_base.h b/libstdc++-v3/include/debug/safe_base.h
index c2a2b6df97b..4b1d082d264 100644
--- a/libstdc++-v3/include/debug/safe_base.h
+++ b/libstdc++-v3/include/debug/safe_base.h
@@ -192,6 +192,12 @@ namespace __gnu_debug
: _M_iterators(0), _M_const_iterators(0), _M_version(1)
{ }
+#if __cplusplus >= 201103L
+ _Safe_sequence_base(_Safe_sequence_base&& __x) noexcept
+ : _Safe_sequence_base()
+ { _M_swap(__x); }
+#endif
+
/** Notify all iterators that reference this sequence that the
sequence is being destroyed. */
~_Safe_sequence_base()
diff --git a/libstdc++-v3/include/debug/safe_local_iterator.h b/libstdc++-v3/include/debug/safe_local_iterator.h
index f5e98934d12..77552ced0b1 100644
--- a/libstdc++-v3/include/debug/safe_local_iterator.h
+++ b/libstdc++-v3/include/debug/safe_local_iterator.h
@@ -219,7 +219,7 @@ namespace __gnu_debug
* @brief Return the bucket
*/
size_type
- bucket() const { return _M_current._M_bucket; }
+ bucket() const { return _M_current._M_get_bucket(); }
/**
* @brief Conversion to underlying non-debug iterator to allow
diff --git a/libstdc++-v3/include/debug/set.h b/libstdc++-v3/include/debug/set.h
index 5da8821930c..f40ecec818f 100644
--- a/libstdc++-v3/include/debug/set.h
+++ b/libstdc++-v3/include/debug/set.h
@@ -49,6 +49,10 @@ namespace __debug
typedef typename _Base::const_iterator _Base_const_iterator;
typedef typename _Base::iterator _Base_iterator;
typedef __gnu_debug::_Equal_to<_Base_const_iterator> _Equal;
+#if __cplusplus >= 201103L
+ typedef __gnu_cxx::__alloc_traits<typename
+ _Base::allocator_type> _Alloc_traits;
+#endif
public:
// types:
typedef _Key key_type;
@@ -72,7 +76,10 @@ namespace __debug
typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
// 23.3.3.1 construct/copy/destroy:
- explicit set(const _Compare& __comp = _Compare(),
+
+ set() : _Base() { }
+
+ explicit set(const _Compare& __comp,
const _Allocator& __a = _Allocator())
: _Base(__comp, __a) { }
@@ -101,6 +108,28 @@ namespace __debug
const _Compare& __comp = _Compare(),
const allocator_type& __a = allocator_type())
: _Base(__l, __comp, __a) { }
+
+ explicit
+ set(const allocator_type& __a)
+ : _Base(__a) { }
+
+ set(const set& __x, const allocator_type& __a)
+ : _Base(__x, __a) { }
+
+ set(set&& __x, const allocator_type& __a)
+ : _Base(std::move(__x._M_base()), __a) { }
+
+ set(initializer_list<value_type> __l, const allocator_type& __a)
+ : _Base(__l, __a)
+ { }
+
+ template<typename _InputIterator>
+ set(_InputIterator __first, _InputIterator __last,
+ const allocator_type& __a)
+ : _Base(__gnu_debug::__base(__gnu_debug::__check_valid_range(__first,
+ __last)),
+ __gnu_debug::__base(__last), __a)
+ { }
#endif
~set() _GLIBCXX_NOEXCEPT { }
@@ -108,7 +137,7 @@ namespace __debug
set&
operator=(const set& __x)
{
- *static_cast<_Base*>(this) = __x;
+ _M_base() = __x;
this->_M_invalidate_all();
return *this;
}
@@ -116,20 +145,25 @@ namespace __debug
#if __cplusplus >= 201103L
set&
operator=(set&& __x)
+ noexcept(_Alloc_traits::_S_nothrow_move())
{
- // NB: DR 1204.
- // NB: DR 675.
__glibcxx_check_self_move_assign(__x);
- clear();
- swap(__x);
+ bool xfer_memory = _Alloc_traits::_S_propagate_on_move_assign()
+ || __x.get_allocator() == this->get_allocator();
+ _M_base() = std::move(__x._M_base());
+ if (xfer_memory)
+ this->_M_swap(__x);
+ else
+ this->_M_invalidate_all();
+ __x._M_invalidate_all();
return *this;
}
set&
operator=(initializer_list<value_type> __l)
{
- this->clear();
- this->insert(__l);
+ _M_base() = __l;
+ this->_M_invalidate_all();
return *this;
}
#endif
@@ -337,7 +371,14 @@ namespace __debug
void
swap(set& __x)
+#if __cplusplus >= 201103L
+ noexcept(_Alloc_traits::_S_nothrow_swap())
+#endif
{
+#if __cplusplus >= 201103L
+ if (!_Alloc_traits::_S_propagate_on_swap())
+ __glibcxx_check_equal_allocs(__x);
+#endif
_Base::swap(__x);
this->_M_swap(__x);
}
diff --git a/libstdc++-v3/include/debug/unordered_map b/libstdc++-v3/include/debug/unordered_map
index a1eccde0fd8..821bf0bfe81 100644
--- a/libstdc++-v3/include/debug/unordered_map
+++ b/libstdc++-v3/include/debug/unordered_map
@@ -389,7 +389,7 @@ namespace __debug
{ return __it == __victim; });
this->_M_invalidate_local_if(
[__victim](_Base_const_local_iterator __it)
- { return __it._M_cur == __victim._M_cur; });
+ { return __it._M_curr() == __victim._M_cur; });
size_type __bucket_count = this->bucket_count();
_Base::erase(__victim);
_M_check_rehashed(__bucket_count);
@@ -407,7 +407,7 @@ namespace __debug
{ return __it == __victim; });
this->_M_invalidate_local_if(
[__victim](_Base_const_local_iterator __it)
- { return __it._M_cur == __victim._M_cur; });
+ { return __it._M_curr() == __victim._M_cur; });
size_type __bucket_count = this->bucket_count();
_Base_iterator __next = _Base::erase(__it.base());
_M_check_rehashed(__bucket_count);
@@ -433,7 +433,7 @@ namespace __debug
{ return __it == __tmp; });
this->_M_invalidate_local_if(
[__tmp](_Base_const_local_iterator __it)
- { return __it._M_cur == __tmp._M_cur; });
+ { return __it._M_curr() == __tmp._M_cur; });
}
size_type __bucket_count = this->bucket_count();
_Base_iterator __next = _Base::erase(__first.base(), __last.base());
@@ -842,7 +842,7 @@ namespace __debug
{ return __it == __victim; });
this->_M_invalidate_local_if(
[__victim](_Base_const_local_iterator __it)
- { return __it._M_cur == __victim._M_cur; });
+ { return __it._M_curr() == __victim._M_cur; });
_Base::erase(__victim++);
++__ret;
}
@@ -859,7 +859,7 @@ namespace __debug
{ return __it == __victim; });
this->_M_invalidate_local_if(
[__victim](_Base_const_local_iterator __it)
- { return __it._M_cur == __victim._M_cur; });
+ { return __it._M_curr() == __victim._M_cur; });
size_type __bucket_count = this->bucket_count();
_Base_iterator __next = _Base::erase(__it.base());
_M_check_rehashed(__bucket_count);
@@ -885,7 +885,7 @@ namespace __debug
{ return __it == __tmp; });
this->_M_invalidate_local_if(
[__tmp](_Base_const_local_iterator __it)
- { return __it._M_cur == __tmp._M_cur; });
+ { return __it._M_curr() == __tmp._M_cur; });
}
size_type __bucket_count = this->bucket_count();
_Base_iterator __next = _Base::erase(__first.base(), __last.base());
diff --git a/libstdc++-v3/include/debug/unordered_set b/libstdc++-v3/include/debug/unordered_set
index 82461415ba7..3bc3fab5610 100644
--- a/libstdc++-v3/include/debug/unordered_set
+++ b/libstdc++-v3/include/debug/unordered_set
@@ -383,7 +383,7 @@ namespace __debug
{ return __it == __victim; });
this->_M_invalidate_local_if(
[__victim](_Base_const_local_iterator __it)
- { return __it._M_cur == __victim._M_cur; });
+ { return __it._M_curr() == __victim._M_cur; });
size_type __bucket_count = this->bucket_count();
_Base::erase(__victim);
_M_check_rehashed(__bucket_count);
@@ -402,7 +402,7 @@ namespace __debug
{ return __it == __victim; });
this->_M_invalidate_local_if(
[__victim](_Base_const_local_iterator __it)
- { return __it._M_cur == __victim._M_cur; });
+ { return __it._M_curr() == __victim._M_cur; });
size_type __bucket_count = this->bucket_count();
_Base_iterator __next = _Base::erase(__it.base());
_M_check_rehashed(__bucket_count);
@@ -429,7 +429,7 @@ namespace __debug
{ return __it == __tmp; });
this->_M_invalidate_local_if(
[__tmp](_Base_const_local_iterator __it)
- { return __it._M_cur == __tmp._M_cur; });
+ { return __it._M_curr() == __tmp._M_cur; });
}
size_type __bucket_count = this->bucket_count();
_Base_iterator __next = _Base::erase(__first.base(),
@@ -832,7 +832,7 @@ namespace __debug
{ return __it == __victim; });
this->_M_invalidate_local_if(
[__victim](_Base_const_local_iterator __it)
- { return __it._M_cur == __victim._M_cur; });
+ { return __it._M_curr() == __victim._M_cur; });
_Base::erase(__victim++);
++__ret;
}
@@ -848,7 +848,7 @@ namespace __debug
{ return __it == __victim; });
this->_M_invalidate_local_if(
[__victim](_Base_const_local_iterator __it)
- { return __it._M_cur == __victim._M_cur; });
+ { return __it._M_curr() == __victim._M_cur; });
return iterator(_Base::erase(__it.base()), this);
}
@@ -871,7 +871,7 @@ namespace __debug
{ return __it == __tmp; });
this->_M_invalidate_local_if(
[__tmp](_Base_const_local_iterator __it)
- { return __it._M_cur == __tmp._M_cur; });
+ { return __it._M_curr() == __tmp._M_cur; });
}
return iterator(_Base::erase(__first.base(),
__last.base()), this);
diff --git a/libstdc++-v3/include/debug/vector b/libstdc++-v3/include/debug/vector
index a376f69ff7d..58d98ef5de5 100644
--- a/libstdc++-v3/include/debug/vector
+++ b/libstdc++-v3/include/debug/vector
@@ -52,6 +52,7 @@ namespace __debug
typedef __gnu_debug::_Equal_to<_Base_const_iterator> _Equal;
#if __cplusplus >= 201103L
+ typedef __gnu_debug::_Safe_sequence<vector<_Tp, _Allocator> > _Safe_base;
typedef __gnu_cxx::__alloc_traits<_Allocator> _Alloc_traits;
#endif
@@ -75,8 +76,12 @@ namespace __debug
typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
// 23.2.4.1 construct/copy/destroy:
+
+ vector() _GLIBCXX_NOEXCEPT
+ : _Base(), _M_guaranteed_capacity(0) { }
+
explicit
- vector(const _Allocator& __a = _Allocator()) _GLIBCXX_NOEXCEPT
+ vector(const _Allocator& __a) _GLIBCXX_NOEXCEPT
: _Base(__a), _M_guaranteed_capacity(0) { }
#if __cplusplus >= 201103L
@@ -111,18 +116,16 @@ namespace __debug
vector(const vector& __x)
: _Base(__x), _M_guaranteed_capacity(__x.size()) { }
- /// Construction from a release-mode vector
+ /// Construction from a normal-mode vector
vector(const _Base& __x)
: _Base(__x), _M_guaranteed_capacity(__x.size()) { }
#if __cplusplus >= 201103L
vector(vector&& __x) noexcept
: _Base(std::move(__x)),
+ _Safe_base(std::move(__x)),
_M_guaranteed_capacity(this->size())
- {
- this->_M_swap(__x);
- __x._M_guaranteed_capacity = 0;
- }
+ { __x._M_guaranteed_capacity = 0; }
vector(const vector& __x, const allocator_type& __a)
: _Base(__x, __a), _M_guaranteed_capacity(__x.size()) { }
@@ -131,7 +134,10 @@ namespace __debug
: _Base(std::move(__x), __a),
_M_guaranteed_capacity(this->size())
{
- __x._M_invalidate_all();
+ if (__x.get_allocator() == __a)
+ this->_M_swap(__x);
+ else
+ __x._M_invalidate_all();
__x._M_guaranteed_capacity = 0;
}
@@ -146,7 +152,7 @@ namespace __debug
vector&
operator=(const vector& __x)
{
- static_cast<_Base&>(*this) = __x;
+ _M_base() = __x;
this->_M_invalidate_all();
_M_update_guaranteed_capacity();
return *this;
@@ -157,8 +163,13 @@ namespace __debug
operator=(vector&& __x) noexcept(_Alloc_traits::_S_nothrow_move())
{
__glibcxx_check_self_move_assign(__x);
- _Base::operator=(std::move(__x));
- this->_M_invalidate_all();
+ bool xfer_memory = _Alloc_traits::_S_propagate_on_move_assign()
+ || __x.get_allocator() == this->get_allocator();
+ _M_base() = std::move(__x._M_base());
+ if (xfer_memory)
+ this->_M_swap(__x);
+ else
+ this->_M_invalidate_all();
_M_update_guaranteed_capacity();
__x._M_invalidate_all();
__x._M_guaranteed_capacity = 0;
@@ -168,7 +179,7 @@ namespace __debug
vector&
operator=(initializer_list<value_type> __l)
{
- static_cast<_Base&>(*this) = __l;
+ _M_base() = __l;
this->_M_invalidate_all();
_M_update_guaranteed_capacity();
return *this;
diff --git a/libstdc++-v3/include/experimental/string_view b/libstdc++-v3/include/experimental/string_view
index 806adcdf91b..ab6943d806b 100644
--- a/libstdc++-v3/include/experimental/string_view
+++ b/libstdc++-v3/include/experimental/string_view
@@ -181,7 +181,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
constexpr const _CharT&
operator[](size_type __pos) const
{
- _GLIBCXX_DEBUG_ASSERT(__pos <= this->_M_len);
+ // TODO: Assert to restore in a way compatible with the constexpr.
+ // _GLIBCXX_DEBUG_ASSERT(__pos <= this->_M_len);
return *(this->_M_str + __pos);
}
@@ -200,14 +201,16 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
constexpr const _CharT&
front() const
{
- _GLIBCXX_DEBUG_ASSERT(this->_M_len > 0);
+ // TODO: Assert to restore in a way compatible with the constexpr.
+ // _GLIBCXX_DEBUG_ASSERT(this->_M_len > 0);
return *this->_M_str;
}
constexpr const _CharT&
back() const
{
- _GLIBCXX_DEBUG_ASSERT(this->_M_len > 0);
+ // TODO: Assert to restore in a way compatible with the constexpr.
+ // _GLIBCXX_DEBUG_ASSERT(this->_M_len > 0);
return *(this->_M_str + this->_M_len - 1);
}
diff --git a/libstdc++-v3/include/profile/deque b/libstdc++-v3/include/profile/deque
index d6aa6bd5946..2c4f9cbd019 100644
--- a/libstdc++-v3/include/profile/deque
+++ b/libstdc++-v3/include/profile/deque
@@ -60,8 +60,12 @@ namespace __profile
typedef typename _Base::const_pointer const_pointer;
// 23.2.1.1 construct/copy/destroy:
+
+ deque()
+ : _Base() { }
+
explicit
- deque(const _Allocator& __a = _Allocator())
+ deque(const _Allocator& __a)
: _Base(__a) { }
#if __cplusplus >= 201103L
diff --git a/libstdc++-v3/include/profile/list b/libstdc++-v3/include/profile/list
index c89332003a7..87d99a0b93d 100644
--- a/libstdc++-v3/include/profile/list
+++ b/libstdc++-v3/include/profile/list
@@ -64,8 +64,16 @@ template<typename _Tp, typename _Allocator = std::allocator<_Tp> >
typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
// 23.2.2.1 construct/copy/destroy:
+
+ list() _GLIBCXX_NOEXCEPT
+ : _Base()
+ {
+ __profcxx_list_construct(this); // list2slist
+ __profcxx_list_construct2(this); // list2vector
+ }
+
explicit
- list(const _Allocator& __a = _Allocator()) _GLIBCXX_NOEXCEPT
+ list(const _Allocator& __a) _GLIBCXX_NOEXCEPT
: _Base(__a)
{
__profcxx_list_construct(this); // list2slist
diff --git a/libstdc++-v3/include/profile/map.h b/libstdc++-v3/include/profile/map.h
index 84f63af40e1..6a3160b8e6b 100644
--- a/libstdc++-v3/include/profile/map.h
+++ b/libstdc++-v3/include/profile/map.h
@@ -43,6 +43,10 @@ namespace __profile
{
typedef _GLIBCXX_STD_C::map<_Key, _Tp, _Compare, _Allocator> _Base;
+#if __cplusplus >= 201103L
+ typedef __gnu_cxx::__alloc_traits<_Allocator> _Alloc_traits;
+#endif
+
public:
// types:
typedef _Key key_type;
@@ -63,8 +67,13 @@ namespace __profile
typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
// 23.3.1.1 construct/copy/destroy:
+
+ map()
+ : _Base()
+ { __profcxx_map_to_unordered_map_construct(this); }
+
explicit
- map(const _Compare& __comp = _Compare(),
+ map(const _Compare& __comp,
const _Allocator& __a = _Allocator())
: _Base(__comp, __a)
{ __profcxx_map_to_unordered_map_construct(this); }
@@ -93,40 +102,61 @@ namespace __profile
map(map&& __x)
noexcept(is_nothrow_copy_constructible<_Compare>::value)
: _Base(std::move(__x))
- { }
+ { __profcxx_map_to_unordered_map_construct(this); }
map(initializer_list<value_type> __l,
const _Compare& __c = _Compare(),
const allocator_type& __a = allocator_type())
- : _Base(__l, __c, __a) { }
+ : _Base(__l, __c, __a)
+ { __profcxx_map_to_unordered_map_construct(this); }
+
+ explicit
+ map(const allocator_type& __a)
+ : _Base(__a)
+ { __profcxx_map_to_unordered_map_construct(this); }
+
+ map(const map& __x, const allocator_type& __a)
+ : _Base(__x, __a)
+ { __profcxx_map_to_unordered_map_construct(this); }
+
+ map(map&& __x, const allocator_type& __a)
+ noexcept(is_nothrow_copy_constructible<_Compare>::value
+ && _Alloc_traits::_S_always_equal())
+ : _Base(std::move(__x), __a)
+ { __profcxx_map_to_unordered_map_construct(this); }
+
+ map(initializer_list<value_type> __l, const allocator_type& __a)
+ : _Base(__l, __a)
+ { __profcxx_map_to_unordered_map_construct(this); }
+
+ template<typename _InputIterator>
+ map(_InputIterator __first, _InputIterator __last,
+ const allocator_type& __a)
+ : _Base(__first, __last, __a)
+ { __profcxx_map_to_unordered_map_construct(this); }
#endif
~map() _GLIBCXX_NOEXCEPT
{ __profcxx_map_to_unordered_map_destruct(this); }
+#if __cplusplus < 201103L
map&
operator=(const map& __x)
{
- *static_cast<_Base*>(this) = __x;
+ _M_base() = __x;
return *this;
}
+#else
+ map&
+ operator=(const map&) = default;
-#if __cplusplus >= 201103L
map&
- operator=(map&& __x)
- {
- // NB: DR 1204.
- // NB: DR 675.
- this->clear();
- this->swap(__x);
- return *this;
- }
+ operator=(map&&) = default;
map&
operator=(initializer_list<value_type> __l)
{
- this->clear();
- this->insert(__l);
+ _M_base() = __l;
return *this;
}
#endif
@@ -393,6 +423,9 @@ namespace __profile
void
swap(map& __x)
+#if __cplusplus >= 201103L
+ noexcept(_Alloc_traits::_S_nothrow_swap())
+#endif
{ _Base::swap(__x); }
void
diff --git a/libstdc++-v3/include/profile/multimap.h b/libstdc++-v3/include/profile/multimap.h
index adb5473c070..5ba5355ec55 100644
--- a/libstdc++-v3/include/profile/multimap.h
+++ b/libstdc++-v3/include/profile/multimap.h
@@ -43,6 +43,10 @@ namespace __profile
{
typedef _GLIBCXX_STD_C::multimap<_Key, _Tp, _Compare, _Allocator> _Base;
+#if __cplusplus >= 201103L
+ typedef __gnu_cxx::__alloc_traits<_Allocator> _Alloc_traits;
+#endif
+
public:
// types:
typedef _Key key_type;
@@ -64,7 +68,11 @@ namespace __profile
typedef typename _Base::const_pointer const_pointer;
// 23.3.1.1 construct/copy/destroy:
- explicit multimap(const _Compare& __comp = _Compare(),
+
+ multimap()
+ : _Base() { }
+
+ explicit multimap(const _Compare& __comp,
const _Allocator& __a = _Allocator())
: _Base(__comp, __a) { }
@@ -79,49 +87,62 @@ namespace __profile
const _Allocator& __a = _Allocator())
: _Base(__first, __last, __comp, __a) { }
+#if __cplusplus < 201103L
multimap(const multimap& __x)
: _Base(__x) { }
-
- multimap(const _Base& __x)
- : _Base(__x) { }
-
-#if __cplusplus >= 201103L
- multimap(multimap&& __x)
- noexcept(is_nothrow_copy_constructible<_Compare>::value)
- : _Base(std::move(__x))
- { }
+#else
+ multimap(const multimap&) = default;
+ multimap(multimap&&) = default;
multimap(initializer_list<value_type> __l,
const _Compare& __c = _Compare(),
const allocator_type& __a = allocator_type())
: _Base(__l, __c, __a) { }
+
+ explicit
+ multimap(const allocator_type& __a)
+ : _Base(__a) { }
+
+ multimap(const multimap& __x, const allocator_type& __a)
+ : _Base(__x, __a) { }
+
+ multimap(multimap&& __x, const allocator_type& __a)
+ noexcept(is_nothrow_copy_constructible<_Compare>::value
+ && _Alloc_traits::_S_always_equal())
+ : _Base(std::move(__x), __a) { }
+
+ multimap(initializer_list<value_type> __l, const allocator_type& __a)
+ : _Base(__l, __a) { }
+
+ template<typename _InputIterator>
+ multimap(_InputIterator __first, _InputIterator __last,
+ const allocator_type& __a)
+ : _Base(__first, __last, __a) { }
#endif
+ multimap(const _Base& __x)
+ : _Base(__x) { }
+
~multimap() _GLIBCXX_NOEXCEPT { }
+#if __cplusplus < 201103L
multimap&
operator=(const multimap& __x)
{
- *static_cast<_Base*>(this) = __x;
+ _M_base() = __x;
return *this;
}
+#else
+ multimap&
+ operator=(const multimap&) = default;
-#if __cplusplus >= 201103L
multimap&
- operator=(multimap&& __x)
- {
- // NB: DR 1204.
- // NB: DR 675.
- this->clear();
- this->swap(__x);
- return *this;
- }
+ operator=(multimap&&) = default;
multimap&
operator=(initializer_list<value_type> __l)
{
- this->clear();
- this->insert(__l);
+ _M_base() = __l;
return *this;
}
#endif
@@ -289,6 +310,9 @@ namespace __profile
void
swap(multimap& __x)
+#if __cplusplus >= 201103L
+ noexcept(_Alloc_traits::_S_nothrow_swap())
+#endif
{ _Base::swap(__x); }
void
diff --git a/libstdc++-v3/include/profile/multiset.h b/libstdc++-v3/include/profile/multiset.h
index cf9ef495159..8ef6e6b0de7 100644
--- a/libstdc++-v3/include/profile/multiset.h
+++ b/libstdc++-v3/include/profile/multiset.h
@@ -43,6 +43,10 @@ namespace __profile
{
typedef _GLIBCXX_STD_C::multiset<_Key, _Compare, _Allocator> _Base;
+#if __cplusplus >= 201103L
+ typedef __gnu_cxx::__alloc_traits<_Allocator> _Alloc_traits;
+#endif
+
public:
// types:
typedef _Key key_type;
@@ -64,7 +68,11 @@ namespace __profile
typedef typename _Base::const_pointer const_pointer;
// 23.3.3.1 construct/copy/destroy:
- explicit multiset(const _Compare& __comp = _Compare(),
+
+ multiset()
+ : _Base() { }
+
+ explicit multiset(const _Compare& __comp,
const _Allocator& __a = _Allocator())
: _Base(__comp, __a) { }
@@ -79,49 +87,62 @@ namespace __profile
const _Allocator& __a = _Allocator())
: _Base(__first, __last, __comp, __a) { }
+#if __cplusplus < 201103L
multiset(const multiset& __x)
: _Base(__x) { }
-
- multiset(const _Base& __x)
- : _Base(__x) { }
-
-#if __cplusplus >= 201103L
- multiset(multiset&& __x)
- noexcept(is_nothrow_copy_constructible<_Compare>::value)
- : _Base(std::move(__x))
- { }
+#else
+ multiset(const multiset&) = default;
+ multiset(multiset&&) = default;
multiset(initializer_list<value_type> __l,
const _Compare& __comp = _Compare(),
const allocator_type& __a = allocator_type())
: _Base(__l, __comp, __a) { }
+
+ explicit
+ multiset(const allocator_type& __a)
+ : _Base(__a) { }
+
+ multiset(const multiset& __x, const allocator_type& __a)
+ : _Base(__x, __a) { }
+
+ multiset(multiset&& __x, const allocator_type& __a)
+ noexcept(is_nothrow_copy_constructible<_Compare>::value
+ && _Alloc_traits::_S_always_equal())
+ : _Base(std::move(__x), __a) { }
+
+ multiset(initializer_list<value_type> __l, const allocator_type& __a)
+ : _Base(__l, __a) { }
+
+ template<typename _InputIterator>
+ multiset(_InputIterator __first, _InputIterator __last,
+ const allocator_type& __a)
+ : _Base(__first, __last, __a) { }
#endif
+ multiset(const _Base& __x)
+ : _Base(__x) { }
+
~multiset() _GLIBCXX_NOEXCEPT { }
+#if __cplusplus < 201103L
multiset&
operator=(const multiset& __x)
{
- *static_cast<_Base*>(this) = __x;
+ _M_base() = __x;
return *this;
}
+#else
+ multiset&
+ operator=(const multiset&) = default;
-#if __cplusplus >= 201103L
multiset&
- operator=(multiset&& __x)
- {
- // NB: DR 1204.
- // NB: DR 675.
- this->clear();
- this->swap(__x);
- return *this;
- }
+ operator=(multiset&&) = default;
multiset&
operator=(initializer_list<value_type> __l)
{
- this->clear();
- this->insert(__l);
+ _M_base() = __l;
return *this;
}
#endif
@@ -272,6 +293,9 @@ namespace __profile
void
swap(multiset& __x)
+#if __cplusplus >= 201103L
+ noexcept(_Alloc_traits::_S_nothrow_swap())
+#endif
{ _Base::swap(__x); }
void
diff --git a/libstdc++-v3/include/profile/set.h b/libstdc++-v3/include/profile/set.h
index e1f5f82e528..05fbeb9f6b1 100644
--- a/libstdc++-v3/include/profile/set.h
+++ b/libstdc++-v3/include/profile/set.h
@@ -43,6 +43,10 @@ namespace __profile
{
typedef _GLIBCXX_STD_C::set<_Key, _Compare, _Allocator> _Base;
+#if __cplusplus >= 201103L
+ typedef __gnu_cxx::__alloc_traits<_Allocator> _Alloc_traits;
+#endif
+
public:
// types:
typedef _Key key_type;
@@ -64,7 +68,11 @@ namespace __profile
typedef typename _Base::const_pointer const_pointer;
// 23.3.3.1 construct/copy/destroy:
- explicit set(const _Compare& __comp = _Compare(),
+
+ set()
+ : _Base() { }
+
+ explicit set(const _Compare& __comp,
const _Allocator& __a = _Allocator())
: _Base(__comp, __a) { }
@@ -79,49 +87,62 @@ namespace __profile
const _Allocator& __a = _Allocator())
: _Base(__first, __last, __comp, __a) { }
+#if __cplusplus < 201103L
set(const set& __x)
: _Base(__x) { }
-
- set(const _Base& __x)
- : _Base(__x) { }
-
-#if __cplusplus >= 201103L
- set(set&& __x)
- noexcept(is_nothrow_copy_constructible<_Compare>::value)
- : _Base(std::move(__x))
- { }
+#else
+ set(const set&) = default;
+ set(set&&) = default;
set(initializer_list<value_type> __l,
const _Compare& __comp = _Compare(),
const allocator_type& __a = allocator_type())
: _Base(__l, __comp, __a) { }
+
+ explicit
+ set(const allocator_type& __a)
+ : _Base(__a) { }
+
+ set(const set& __x, const allocator_type& __a)
+ : _Base(__x, __a) { }
+
+ set(set&& __x, const allocator_type& __a)
+ noexcept(is_nothrow_copy_constructible<_Compare>::value
+ && _Alloc_traits::_S_always_equal())
+ : _Base(std::move(__x), __a) { }
+
+ set(initializer_list<value_type> __l, const allocator_type& __a)
+ : _Base(__l, __a) { }
+
+ template<typename _InputIterator>
+ set(_InputIterator __first, _InputIterator __last,
+ const allocator_type& __a)
+ : _Base(__first, __last, __a) { }
#endif
+ set(const _Base& __x)
+ : _Base(__x) { }
+
~set() _GLIBCXX_NOEXCEPT { }
+#if __cplusplus < 201103L
set&
operator=(const set& __x)
{
- *static_cast<_Base*>(this) = __x;
+ _M_base() = __x;
return *this;
}
+#else
+ set&
+ operator=(const set&) = default;
-#if __cplusplus >= 201103L
set&
- operator=(set&& __x)
- {
- // NB: DR 1204.
- // NB: DR 675.
- this->clear();
- this->swap(__x);
- return *this;
- }
+ operator=(set&&) = default;
set&
operator=(initializer_list<value_type> __l)
{
- this->clear();
- this->insert(__l);
+ _M_base() = __l;
return *this;
}
#endif
@@ -286,6 +307,9 @@ namespace __profile
void
swap(set& __x)
+#if __cplusplus >= 201103L
+ noexcept(_Alloc_traits::_S_nothrow_swap())
+#endif
{ _Base::swap(__x); }
void
diff --git a/libstdc++-v3/include/profile/vector b/libstdc++-v3/include/profile/vector
index a286ac59b9f..5c2c6219029 100644
--- a/libstdc++-v3/include/profile/vector
+++ b/libstdc++-v3/include/profile/vector
@@ -77,8 +77,16 @@ namespace __profile
_M_base() const _GLIBCXX_NOEXCEPT { return *this; }
// 23.2.4.1 construct/copy/destroy:
+
+ vector() _GLIBCXX_NOEXCEPT
+ : _Base()
+ {
+ __profcxx_vector_construct(this, this->capacity());
+ __profcxx_vector_construct2(this);
+ }
+
explicit
- vector(const _Allocator& __a = _Allocator()) _GLIBCXX_NOEXCEPT
+ vector(const _Allocator& __a) _GLIBCXX_NOEXCEPT
: _Base(__a)
{
__profcxx_vector_construct(this, this->capacity());
diff --git a/libstdc++-v3/include/std/regex b/libstdc++-v3/include/std/regex
index 9395f5011e0..9161f483544 100644
--- a/libstdc++-v3/include/std/regex
+++ b/libstdc++-v3/include/std/regex
@@ -44,15 +44,13 @@
#include <iterator>
#include <locale>
#include <memory>
-#include <map>
-#include <queue>
-#include <set>
#include <sstream>
#include <stack>
#include <stdexcept>
#include <string>
#include <utility>
#include <vector>
+#include <cstring>
#include <bits/regex_constants.h>
#include <bits/regex_error.h>
diff --git a/libstdc++-v3/src/c++11/thread.cc b/libstdc++-v3/src/c++11/thread.cc
index d7c3fb10e8c..49aacb5a96d 100644
--- a/libstdc++-v3/src/c++11/thread.cc
+++ b/libstdc++-v3/src/c++11/thread.cc
@@ -183,7 +183,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
::usleep(__us);
}
# else
- ::sleep(__s.count() + (__ns >= 1000000));
+ ::sleep(__s.count() + (__ns.count() >= 1000000));
# endif
#elif defined(_GLIBCXX_HAVE_WIN32_SLEEP)
unsigned long ms = __ns.count() / 1000000;
diff --git a/libstdc++-v3/testsuite/23_containers/deque/58764.cc b/libstdc++-v3/testsuite/23_containers/deque/58764.cc
new file mode 100644
index 00000000000..a1056aa710d
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/deque/58764.cc
@@ -0,0 +1,28 @@
+// Copyright (C) 2014 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+// { dg-do compile }
+// { dg-options "-std=gnu++11" }
+
+// libstdc++/58764
+
+#include <deque>
+
+void test01()
+{
+ std::deque<int> a = {};
+}
diff --git a/libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/assign_neg.cc b/libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/assign_neg.cc
index b4d2c80dbbe..4de8f2d0fb9 100644
--- a/libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/assign_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/assign_neg.cc
@@ -18,7 +18,7 @@
// <http://www.gnu.org/licenses/>.
// { dg-do compile }
-// { dg-error "no matching" "" { target *-*-* } 1758 }
+// { dg-error "no matching" "" { target *-*-* } 1764 }
#include <deque>
diff --git a/libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/constructor_1_neg.cc b/libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/constructor_1_neg.cc
index bfa6692ade4..41f29056198 100644
--- a/libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/constructor_1_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/constructor_1_neg.cc
@@ -18,7 +18,7 @@
// <http://www.gnu.org/licenses/>.
// { dg-do compile }
-// { dg-error "no matching" "" { target *-*-* } 1691 }
+// { dg-error "no matching" "" { target *-*-* } 1697 }
#include <deque>
diff --git a/libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/constructor_2_neg.cc b/libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/constructor_2_neg.cc
index 9a054379c7c..f77b1267890 100644
--- a/libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/constructor_2_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/constructor_2_neg.cc
@@ -18,7 +18,7 @@
// <http://www.gnu.org/licenses/>.
// { dg-do compile }
-// { dg-error "no matching" "" { target *-*-* } 1691 }
+// { dg-error "no matching" "" { target *-*-* } 1697 }
#include <deque>
#include <utility>
diff --git a/libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/insert_neg.cc b/libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/insert_neg.cc
index d2bb0fb2019..e7d5b1ee654 100644
--- a/libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/insert_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/insert_neg.cc
@@ -18,7 +18,7 @@
// <http://www.gnu.org/licenses/>.
// { dg-do compile }
-// { dg-error "no matching" "" { target *-*-* } 1842 }
+// { dg-error "no matching" "" { target *-*-* } 1848 }
#include <deque>
diff --git a/libstdc++-v3/testsuite/23_containers/list/58764.cc b/libstdc++-v3/testsuite/23_containers/list/58764.cc
new file mode 100644
index 00000000000..c523e0276ad
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/list/58764.cc
@@ -0,0 +1,28 @@
+// Copyright (C) 2014 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+// { dg-do compile }
+// { dg-options "-std=gnu++11" }
+
+// libstdc++/58764
+
+#include <list>
+
+void test01()
+{
+ std::list<int> a = {};
+}
diff --git a/libstdc++-v3/testsuite/23_containers/list/requirements/dr438/assign_neg.cc b/libstdc++-v3/testsuite/23_containers/list/requirements/dr438/assign_neg.cc
index 6dbf14303bf..7c29a2d8c9b 100644
--- a/libstdc++-v3/testsuite/23_containers/list/requirements/dr438/assign_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/list/requirements/dr438/assign_neg.cc
@@ -18,7 +18,7 @@
// <http://www.gnu.org/licenses/>.
// { dg-do compile }
-// { dg-error "no matching" "" { target *-*-* } 1646 }
+// { dg-error "no matching" "" { target *-*-* } 1656 }
#include <list>
diff --git a/libstdc++-v3/testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc b/libstdc++-v3/testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc
index 915ecf435f4..382d985c1b0 100644
--- a/libstdc++-v3/testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc
@@ -18,7 +18,7 @@
// <http://www.gnu.org/licenses/>.
// { dg-do compile }
-// { dg-error "no matching" "" { target *-*-* } 1598 }
+// { dg-error "no matching" "" { target *-*-* } 1608 }
#include <list>
diff --git a/libstdc++-v3/testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc b/libstdc++-v3/testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc
index 5c94805ecea..14585af98fa 100644
--- a/libstdc++-v3/testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc
@@ -18,7 +18,7 @@
// <http://www.gnu.org/licenses/>.
// { dg-do compile }
-// { dg-error "no matching" "" { target *-*-* } 1598 }
+// { dg-error "no matching" "" { target *-*-* } 1608 }
#include <list>
#include <utility>
diff --git a/libstdc++-v3/testsuite/23_containers/list/requirements/dr438/insert_neg.cc b/libstdc++-v3/testsuite/23_containers/list/requirements/dr438/insert_neg.cc
index 30ea0c478ca..a9f9f305f27 100644
--- a/libstdc++-v3/testsuite/23_containers/list/requirements/dr438/insert_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/list/requirements/dr438/insert_neg.cc
@@ -18,7 +18,7 @@
// <http://www.gnu.org/licenses/>.
// { dg-do compile }
-// { dg-error "no matching" "" { target *-*-* } 1598 }
+// { dg-error "no matching" "" { target *-*-* } 1608 }
#include <list>
diff --git a/libstdc++-v3/testsuite/23_containers/map/58764.cc b/libstdc++-v3/testsuite/23_containers/map/58764.cc
new file mode 100644
index 00000000000..31e09665bc6
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/map/58764.cc
@@ -0,0 +1,28 @@
+// Copyright (C) 2014 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+// { dg-do compile }
+// { dg-options "-std=gnu++11" }
+
+// libstdc++/58764
+
+#include <map>
+
+void test01()
+{
+ std::map<int, int> a = {};
+}
diff --git a/libstdc++-v3/testsuite/23_containers/multimap/58764.cc b/libstdc++-v3/testsuite/23_containers/multimap/58764.cc
new file mode 100644
index 00000000000..4e85116727b
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/multimap/58764.cc
@@ -0,0 +1,28 @@
+// Copyright (C) 2014 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+// { dg-do compile }
+// { dg-options "-std=gnu++11" }
+
+// libstdc++/58764
+
+#include <map>
+
+void test01()
+{
+ std::multimap<int, int> a = {};
+}
diff --git a/libstdc++-v3/testsuite/23_containers/multiset/58764.cc b/libstdc++-v3/testsuite/23_containers/multiset/58764.cc
new file mode 100644
index 00000000000..f827923012e
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/multiset/58764.cc
@@ -0,0 +1,28 @@
+// Copyright (C) 2014 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+// { dg-do compile }
+// { dg-options "-std=gnu++11" }
+
+// libstdc++/58764
+
+#include <set>
+
+void test01()
+{
+ std::multiset<int> a = {};
+}
diff --git a/libstdc++-v3/testsuite/23_containers/set/58764.cc b/libstdc++-v3/testsuite/23_containers/set/58764.cc
new file mode 100644
index 00000000000..9a2ae3ac79a
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/set/58764.cc
@@ -0,0 +1,28 @@
+// Copyright (C) 2014 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+// { dg-do compile }
+// { dg-options "-std=gnu++11" }
+
+// libstdc++/58764
+
+#include <set>
+
+void test01()
+{
+ std::set<int> a = {};
+}
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_set/not_default_constructible_hash_neg.cc b/libstdc++-v3/testsuite/23_containers/unordered_set/56267-2.cc
index 991174c57f2..cae451a53f7 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_set/not_default_constructible_hash_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_set/56267-2.cc
@@ -1,8 +1,4 @@
-// { dg-do compile }
-// { dg-options "-std=c++11" }
-// { dg-require-normal-mode "" }
-
-// Copyright (C) 2013-2014 Free Software Foundation, Inc.
+// Copyright (C) 2014 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -19,33 +15,29 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-error "default constructible" "" { target *-*-* } 287 }
+// { dg-options "-std=gnu++11" }
#include <unordered_set>
-namespace
+struct audrey2hash : std::hash<int>
{
- struct hash
- {
- hash(std::size_t seed)
- : _M_seed(seed)
- { }
-
- std::size_t operator() (int val) const noexcept
- { return val ^ _M_seed; }
-
- private:
- std::size_t _M_seed;
- };
-}
+ audrey2hash() { throw "Seed me, Seymour"; } // must not use default ctor
+
+ audrey2hash(int) { }
-void
-test01()
+ audrey2hash&
+ operator=(const audrey2hash&) { throw "Don't assign the plants"; }
+};
+
+void test01()
{
- using traits = std::__detail::_Hashtable_traits<false, true, true>;
- using hashtable = std::__uset_hashtable<int, hash,
- std::equal_to<int>,
- std::allocator<int>, traits>;
+ typedef std::unordered_set<int, audrey2hash> test_type;
+ test_type::local_iterator it __attribute__((unused));
+ test_type c{ {1, 2, 3}, 3u, audrey2hash{1} };
+ it = c.begin(0);
+}
- hashtable ht(10, hash(1));
+int main()
+{
+ test01();
}
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_set/instantiation_neg.cc b/libstdc++-v3/testsuite/23_containers/unordered_set/instantiation_neg.cc
index e747e9cbf2d..30784f85fc4 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_set/instantiation_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_set/instantiation_neg.cc
@@ -19,7 +19,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-error "with noexcept" "" { target *-*-* } 265 }
+// { dg-error "with noexcept" "" { target *-*-* } 266 }
#include <unordered_set>
diff --git a/libstdc++-v3/testsuite/23_containers/vector/58764.cc b/libstdc++-v3/testsuite/23_containers/vector/58764.cc
new file mode 100644
index 00000000000..6a9823c710a
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/vector/58764.cc
@@ -0,0 +1,29 @@
+// Copyright (C) 2014 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+// { dg-do compile }
+// { dg-options "-std=gnu++11" }
+
+// libstdc++/58764
+
+#include <vector>
+
+void test01()
+{
+ std::vector<int> a = {};
+ std::vector<bool> b = {};
+}
diff --git a/libstdc++-v3/testsuite/23_containers/vector/allocator/move.cc b/libstdc++-v3/testsuite/23_containers/vector/allocator/move.cc
index 87200a70d6d..c6f90d86e1d 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/allocator/move.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/allocator/move.cc
@@ -32,9 +32,11 @@ void test01()
typedef std::vector<T, alloc_type> test_type;
test_type v1(alloc_type(1));
v1 = { T() };
+ auto it = v1.begin();
test_type v2(std::move(v1));
VERIFY(1 == v1.get_allocator().get_personality());
VERIFY(1 == v2.get_allocator().get_personality());
+ VERIFY( it == v2.begin() );
}
void test02()
diff --git a/libstdc++-v3/testsuite/23_containers/vector/allocator/move_assign.cc b/libstdc++-v3/testsuite/23_containers/vector/allocator/move_assign.cc
index b88672989c6..88c5ad0f30a 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/allocator/move_assign.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/allocator/move_assign.cc
@@ -46,16 +46,35 @@ void test02()
typedef std::vector<T, alloc_type> test_type;
test_type v1(alloc_type(1));
v1.push_back(T());
+ auto it = v1.begin();
test_type v2(alloc_type(2));
- v2 = std::move(v1);
v2.push_back(T());
+ v2 = std::move(v1);
+ VERIFY( it == v2.begin() );
VERIFY(0 == v1.get_allocator().get_personality());
VERIFY(1 == v2.get_allocator().get_personality());
}
+void test03()
+{
+ bool test __attribute__((unused)) = true;
+ typedef propagating_allocator<T, false> alloc_type;
+ typedef std::vector<T, alloc_type> test_type;
+ test_type v1(alloc_type(1));
+ v1.push_back(T());
+ auto it = v1.begin();
+ test_type v2(alloc_type(1));
+ v2.push_back(T());
+ v2 = std::move(v1);
+ VERIFY( it == v2.begin() );
+ VERIFY(1 == v1.get_allocator().get_personality());
+ VERIFY(1 == v2.get_allocator().get_personality());
+}
+
int main()
{
test01();
test02();
+ test03();
return 0;
}
diff --git a/libstdc++-v3/testsuite/23_containers/vector/debug/move_assign_neg.cc b/libstdc++-v3/testsuite/23_containers/vector/debug/move_assign_neg.cc
new file mode 100644
index 00000000000..eb2233b35fe
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/vector/debug/move_assign_neg.cc
@@ -0,0 +1,50 @@
+// Copyright (C) 2013 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+//
+// { dg-options "-std=gnu++11" }
+// { dg-do run { xfail *-*-* } }
+
+#include <debug/vector>
+
+#include <testsuite_allocator.h>
+#include <testsuite_hooks.h>
+
+void test01()
+{
+ bool test __attribute__((unused)) = true;
+
+ typedef __gnu_test::uneq_allocator<int> alloc_type;
+ typedef __gnu_debug::vector<int, alloc_type> test_type;
+
+ test_type v1(alloc_type(1));
+ v1 = { 0, 1, 2, 3 };
+
+ test_type v2(alloc_type(2));
+ v2 = { 4, 5, 6, 7 };
+
+ auto it = v2.begin();
+
+ v1 = std::move(v2);
+
+ VERIFY( it == v1.begin() ); // Error, it is singular
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/assign_neg.cc b/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/assign_neg.cc
index 158a9023476..a12b1167335 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/assign_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/assign_neg.cc
@@ -18,7 +18,7 @@
// <http://www.gnu.org/licenses/>.
// { dg-do compile }
-// { dg-error "no matching" "" { target *-*-* } 1306 }
+// { dg-error "no matching" "" { target *-*-* } 1316 }
#include <vector>
diff --git a/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_1_neg.cc b/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_1_neg.cc
index cf186ebf9b9..b839cccc894 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_1_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_1_neg.cc
@@ -18,7 +18,7 @@
// <http://www.gnu.org/licenses/>.
// { dg-do compile }
-// { dg-error "no matching" "" { target *-*-* } 1232 }
+// { dg-error "no matching" "" { target *-*-* } 1242 }
#include <vector>
diff --git a/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_2_neg.cc b/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_2_neg.cc
index cbbc1d33930..e9e966b792a 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_2_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_2_neg.cc
@@ -18,7 +18,7 @@
// <http://www.gnu.org/licenses/>.
// { dg-do compile }
-// { dg-error "no matching" "" { target *-*-* } 1232 }
+// { dg-error "no matching" "" { target *-*-* } 1242 }
#include <vector>
#include <utility>
diff --git a/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/insert_neg.cc b/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/insert_neg.cc
index 8471a647ffd..71c6c496e2a 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/insert_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/insert_neg.cc
@@ -18,7 +18,7 @@
// <http://www.gnu.org/licenses/>.
// { dg-do compile }
-// { dg-error "no matching" "" { target *-*-* } 1347 }
+// { dg-error "no matching" "" { target *-*-* } 1357 }
#include <vector>
diff --git a/libstdc++-v3/testsuite/28_regex/basic_regex/multiple_quantifiers.cc b/libstdc++-v3/testsuite/28_regex/basic_regex/multiple_quantifiers.cc
new file mode 100644
index 00000000000..5670cbb8e3b
--- /dev/null
+++ b/libstdc++-v3/testsuite/28_regex/basic_regex/multiple_quantifiers.cc
@@ -0,0 +1,33 @@
+// { dg-options "-std=gnu++11" }
+
+// Copyright (C) 2014 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3. If not see
+// <http://www.gnu.org/licenses/>.
+
+// 28.8 basic_regex
+// Tests multiple consecutive quantifiers
+
+#include <regex>
+
+using namespace std;
+
+int
+main()
+{
+ regex re1("a++");
+ regex re2("(a+)+");
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/28_regex/constants/syntax_option_type.cc b/libstdc++-v3/testsuite/28_regex/constants/syntax_option_type.cc
index 22559f51eb2..2423775e114 100644
--- a/libstdc++-v3/testsuite/28_regex/constants/syntax_option_type.cc
+++ b/libstdc++-v3/testsuite/28_regex/constants/syntax_option_type.cc
@@ -1,5 +1,4 @@
// { dg-options "-std=c++0x" }
-// { dg-do compile }
//
// 2009-06-17 Stephen M. Webb <stephen.webb@xandros.com>
//
@@ -23,6 +22,7 @@
// 28.5.1
#include <regex>
+#include <testsuite_hooks.h>
void
test01()
@@ -82,10 +82,21 @@ test04_constexpr()
constexpr auto a3 __attribute__((unused)) = ~grep;
}
+void
+test05()
+{
+ using namespace std;
+ using namespace regex_constants;
+ regex re("((a)(s))", nosubs | ECMAScript);
+ VERIFY(re.mark_count() == 0);
+}
+
int main()
{
test01();
test02();
test03();
+ test04_constexpr();
+ test05();
return 0;
}
diff --git a/libstdc++-v3/testsuite/experimental/string_view/element_access/char/2.cc b/libstdc++-v3/testsuite/experimental/string_view/element_access/char/2.cc
index 949561fcfe9..ef2fcc0e5d5 100644
--- a/libstdc++-v3/testsuite/experimental/string_view/element_access/char/2.cc
+++ b/libstdc++-v3/testsuite/experimental/string_view/element_access/char/2.cc
@@ -1,6 +1,5 @@
-// { dg-options "-std=gnu++1y" }
// { dg-do run { xfail *-*-* } }
-// { dg-options "-O0" }
+// { dg-options "-std=gnu++1y -O0" }
// { dg-require-debug-mode "" }
// Copyright (C) 2013-2014 Free Software Foundation, Inc.
@@ -26,6 +25,6 @@ int
main()
{
typedef std::experimental::string_view string_view_type;
- experimental::string_view_type s;
+ string_view_type s;
s[0]; // abort
}
diff --git a/libstdc++-v3/testsuite/experimental/string_view/element_access/wchar_t/2.cc b/libstdc++-v3/testsuite/experimental/string_view/element_access/wchar_t/2.cc
index 02f24af5750..4ffa7ddfe38 100644
--- a/libstdc++-v3/testsuite/experimental/string_view/element_access/wchar_t/2.cc
+++ b/libstdc++-v3/testsuite/experimental/string_view/element_access/wchar_t/2.cc
@@ -1,6 +1,5 @@
-// { dg-options "-std=gnu++1y" }
// { dg-do run { xfail *-*-* } }
-// { dg-options "-O0" }
+// { dg-options "-std=gnu++1y -O0" }
// { dg-require-debug-mode "" }
// Copyright (C) 2013-2014 Free Software Foundation, Inc.
diff --git a/libstdc++-v3/testsuite/util/testsuite_allocator.h b/libstdc++-v3/testsuite/util/testsuite_allocator.h
index 2cead6699ff..748557cf51c 100644
--- a/libstdc++-v3/testsuite/util/testsuite_allocator.h
+++ b/libstdc++-v3/testsuite/util/testsuite_allocator.h
@@ -454,7 +454,7 @@ namespace __gnu_test
{
typedef Tp value_type;
- SimpleAllocator() { }
+ SimpleAllocator() noexcept { }
template <class T>
SimpleAllocator(const SimpleAllocator<T>& other) { }