2015-12-27 Edward Smith-Rowland <3dw4rd@verizon.net> * include/bits/c++0x_warning.h Remove experimental language. 2015-12-24 Jason Merrill * testsuite/ext/bitmap_allocator/check_deallocate_null.cc * testsuite/ext/bitmap_allocator/check_allocate_max_size.cc: Correct use of __GXX_WEAK__ macro. 2015-12-22 Jonathan Wakely PR libstdc++/59768 * include/std/functional (__invfwd): Add inline specifier. 2015-12-21 Jonathan Wakely PR libstdc++/68982 testsuite/20_util/function_objects/mem_fn/68276.cc: Rename to ... testsuite/20_util/function_objects/mem_fn/68982.cc: Correct bug number. PR libstdc++/68995 * include/std/functional (_function_handler, function): Qualify __callable_functor. * testsuite/20_util/function/68995.cc: New. PR libstdc++/68276 * include/std/functional (__invoke_impl, _Mem_fn::operator()): Qualify std::forward. testsuite/20_util/function_objects/mem_fn/68276.cc: New. 2015-12-21 Ville Voutilainen PR libstdc++/66693 * include/std/tuple (tuple_element, tuple_size, tuple_element_t, __tuple_element_t): Move to... * include/std/utility: ...here. * testsuite/20_util/pair/astuple/astuple.cc: Adjust. * testsuite/20_util/pair/astuple/astuple_cpp14.cc: New. * testsuite/20_util/tuple/tuple_element.cc: Adjust. * testsuite/20_util/tuple/tuple_element_t.cc: Likewise. * testsuite/20_util/tuple/tuple_size.cc: Likewise. * testsuite/23_containers/array/tuple_interface/tuple_element.cc: Likewise. * testsuite/23_containers/array/tuple_interface/tuple_element_cpp14.cc: New. * testsuite/23_containers/array/tuple_interface/tuple_size.cc: Adjust. 2015-12-18 Ville Voutilainen Fix a regression introduced by the fix of libstdc++/68276. * src/c++11/ios.cc (_M_grow_words): Catch bad_alloc again so that bad_array_new_length is handled properly. 2015-12-18 Ville Voutilainen PR libstdc++/68276 * src/c++11/ios.cc (_M_grow_words): Use nothrow new. * testsuite/27_io/ios_base/storage/11584.cc: Adjust. 2015-12-18 Andris Pavenis * config/os/djgpp/error_constants.h: update according to DJGPP errno macros. 2015-12-15 Jonathan Wakely PR libstdc++/68921 * src/c++11/futex.cc (__atomic_futex_unsigned_base::_M_futex_wait_until): Use null pointer as timeout argument. * include/std/functional (_Mu<_Arg, false, false>::operator()): Restore accidentally-removed volatile qualifier. * include/std/functional (is_placeholder, is_bind_expression): Update comments. (_Safe_tuple_element): Replace with _Safe_tuple_element_t alias template. (_Mu): Remove vestigial TR1 return types and update coments. PR libstdc++/68912 * include/std/functional (_Bind::operator()): Use lvalue functor to deduce return type. * testsuite/20_util/bind/68912.cc: New. 2015-12-15 Tim Shen PR libstdc++/68863 * include/bits/regex_executor.tcc (_Executor::_M_lookahead): Copy the captured content for lookahead, so that the backreferences inside can refer to them. * testsuite/28_regex/algorithms/regex_match/ecma/char/68863.cc: New testcase. 2015-12-14 Ville Voutilainen Document the implementation of Logical Operator Type Traits. * doc/html/index.html: Regenerate. * doc/html/manual/status.html: Likewise. * doc/xml/manual/status_cxx2017.xml: Add P0013R1 to C++ 201z and to Library Fundamentals 2 TS. 2015-12-11 Jonathan Wakely PR libstdc++/59768 * include/std/functional (_Unwrap, __invfwd): Define. (__invoke_impl): Remove reference_wrapper overloads and use __invfwd. * include/std/type_traits (__result_of_memobj, __result_of_memfun): Add partial specializations for const reference_wrappers and simplify. * testsuite/20_util/bind/ref_neg.cc: Use dg-excess-errors. * testsuite/20_util/function_objects/invoke/59768.cc: New. 2015-12-11 Ville Voutilainen PR libstdc++/68139 * libsupc++/nested_exception.h (_S_rethrow): Use std::__addressof. * testsuite/18_support/nested_exception/68139.cc: New. 2015-12-10 Jonathan Wakely * testsuite/experimental/memory/shared_ptr/assign/assign.cc: Replace -std=gnu++1y with -std=gnu++14. * testsuite/experimental/memory/shared_ptr/cast/cast.cc: Likewise. * testsuite/experimental/memory/shared_ptr/comparison/comparison.cc: Likewise. * testsuite/experimental/memory/shared_ptr/cons/alias_ctor.cc: Likewise. * testsuite/experimental/memory/shared_ptr/cons/alloc_ctor.cc: Likewise. * testsuite/experimental/memory/shared_ptr/cons/copy_ctor.cc: Likewise. * testsuite/experimental/memory/shared_ptr/cons/copy_ctor_neg.cc: Likewise. * testsuite/experimental/memory/shared_ptr/cons/default_ctor.cc: Likewise. * testsuite/experimental/memory/shared_ptr/cons/move_ctor.cc: Likewise. * testsuite/experimental/memory/shared_ptr/cons/pointer_ctor.cc: Likewise. * testsuite/experimental/memory/shared_ptr/cons/unique_ptr_ctor.cc: Likewise. * testsuite/experimental/memory/shared_ptr/cons/weak_ptr_ctor.cc: Likewise. * testsuite/experimental/memory/shared_ptr/dest/dest.cc: Likewise. * testsuite/experimental/memory/shared_ptr/modifiers/reset.cc: Likewise. * testsuite/experimental/memory/shared_ptr/modifiers/swap.cc: Likewise. * testsuite/experimental/memory/shared_ptr/observers/bool_conv.cc: Likewise. * testsuite/experimental/memory/shared_ptr/observers/operators.cc: Likewise. * testsuite/experimental/memory/shared_ptr/observers/owner_before.cc: Likewise. * testsuite/experimental/memory/shared_ptr/observers/use_count.cc: Likewise. PR libstdc++/68825 * include/experimental/bits/shared_ptr.h (__shared_ptr, __weak_ptr, experimental::shared_ptr, experimental::weak_ptr): Constrain assignment operators. * testsuite/experimental/memory/shared_ptr/cons/copy_ctor_neg.cc: Change to a compile-only test and change dg-excess-errors to dg-error. * doc/doxygen/user.cfg.in: Use EXTENSION_MAPPING tag. Add new headers to INPUT. Remove obsolete XML_SCHEMA and XML_DTD tags. Update PREDEFINED macros. Set BRIEF_MEMBER_DESC for man-pages. * include/backward/strstream: Correct @file comment. * include/bits/forward_list.h: Improve Doxygen comments. * include/bits/locale_facets_nonio.h: Likewise. * include/bits/mutex.h: Likewise. * include/bits/shared_ptr.h: Likewise. * include/bits/stl_deque.h: Likewise. * include/debug/vector (_Safe_vector): Add @brief section to comment. * include/experimental/bits/fs_dir.h: Correct @file comment. * include/experimental/bits/fs_fwd.h: Likewise. * include/experimental/bits/fs_ops.h: Likewise. * include/experimental/bits/fs_path.h: Likewise. * include/experimental/bits/string_view.tcc: Likewise. * include/experimental/optional: Document experimental status. * include/experimental/string_view: Correct @file comment. * include/ext/pb_ds/detail/bin_search_tree_/traits.hpp: Reduce whitespace to avoid Doxygen bug. * include/std/bitset: Remove redundant @class Doxygen command. Add parentheses to avoid Doxygen bug. * include/std/mutex: Improve Doxygen comments. * include/tr2/dynamic_bitset: Add missing @param documentation. * scripts/run_doxygen: Rename man pages for std::experimental types. 2015-12-04 Jonathan Wakely PR libstdc++/57060 * include/std/thread (operator==(thread::id, thread::id)): Do not use __gthread_equal. (operator<(thread::id, thread::id)): Add comment. (this_thread::get_id()): Do not use __gthread_self for single-threaded programs using glibc. * testsuite/30_threads/this_thread/57060.cc: New. 2015-12-02 Jonathan Wakely PR libstdc++/56383 * testsuite/20_util/enable_shared_from_this/56383.cc: New. * include/bits/shared_ptr_base.h (__enable_shared_from_this): Make friend declaration match previous declaration of __enable_shared_from_this_helper. * include/bits/shared_ptr.h (enable_shared_from_this): Likewise. 2015-12-01 Jonathan Wakely * include/experimental/bits/fs_path.h (path::_Cmpt): Move definition after __is_encoded_char explicit specializations. 2015-11-26 Jonathan Wakely * testsuite/libstdc++-prettyprinters/debug.cc: Add -std=gnu++98 to dg-options and avoid use of uniform-init. * testsuite/libstdc++-prettyprinters/simple.cc: Add -std=gnu++98 to dg-options and avoid use of uniform-init. 2015-11-26 David Edelsohn * configure: Regenerate. 2015-11-25 Jonathan Wakely * testsuite/27_io/ios_base/types/fmtflags/case_label.cc: Explicitly check minimum and maximum values, and size of underlying type. * testsuite/27_io/ios_base/types/iostate/case_label.cc: Likewise. * testsuite/27_io/ios_base/types/openmode/case_label.cc: Likewise. 2015-11-25 Rainer Orth * acinclude.m4 (GLIBCXX_ENABLE_VTABLE_VERIFY) : Use -Wl,-R in VTV_CXXLINKFLAGS. * configure: Regenerate. * testsuite/18_support/bad_exception/23591_thread-1.c: Use -fvtable-verify=none on Solaris 12+. 2015-11-24 Rainer Orth * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): New test. * configure.ac: Use it. * configure: Regenerate. * config.h.in: Regenerate. * include/c_global/cmath [__cplusplus >= 201103L] (std::fpclassify): Wrap in !__CORRECT_ISO_CPP11_MATH_H_PROTO. (std::isfinite): Likewise. (std::isinf): Likewise. (std::isnan): Likewise. (std::isnormal): Likewise. (std::signbit): Likewise. (std::isgreater): Likewise. (std::isgreaterequal): Likewise. (std::isless): Likewise. (std::islessequal): Likewise. (std::islessgreater): Likewise. (std::isunordered): Likewise. (std::acosh): Likewise. (std::asinh): Likewise. (std::atanh): Likewise. (std::cbrt): Likewise. (std::copysign): Likewise. (std::erf): Likewise. (std::erfc): Likewise. (std::exp2): Likewise. (std::expm1): Likewise. (std::fdim): Likewise. (std::fma): Likewise. (std::fmax): Likewise. (std::fmin): Likewise. (std::hypot): Likewise. (std::ilogb): Likewise. (std::lgamma): Likewise. (std::llrint): Likewise. (std::llround): Likewise. (std::log1p): Likewise. (std::log2): Likewise. (std::logb): Likewise. (std::lrint): Likewise. (std::lround): Likewise. (std::nearbyint): Likewise. (std::nextafter): Likewise. (std::nexttoward): Likewise. (std::remainder): Likewise. (std::remquo): Likewise. (std::rint): Likewise. (std::round): Likewise. (std::scalbln): Likewise. (std::scalbn): Likewise. (std::tgamma): Likewise. (std::trunc): Likewise. * include/tr1/cmath [_GLIBCXX_USE_C99_MATH_TR1] (std::tr1::acosh): Wrap in !__CORRECT_ISO_CPP11_MATH_H_PROTO. (std::tr1::asinh): Likewise. (std::tr1::atanh): Likewise. (std::tr1::cbrt): Likewise. (std::tr1::copysign): Likewise. (std::tr1::erf): Likewise. (std::tr1::erfc): Likewise. (std::tr1::exp2): Likewise. (std::tr1::expm1): Likewise. (std::tr1::fabs): Likewise. (std::tr1::fdim): Likewise. (std::tr1::fma): Likewise. (std::tr1::fmax): Likewise. (std::tr1::fmin): Likewise. (std::tr1::hypot): Likewise. (std::tr1::ilogb): Likewise. (std::tr1::lgamma): Likewise. (std::tr1::llrint): Likewise. (std::tr1::llround): Likewise. (std::tr1::log1p): Likewise. (std::tr1::log2): Likewise. (std::tr1::logb): Likewise. (std::tr1::lrint): Likewise. (std::tr1::lround): Likewise. (std::tr1::nearbyint): Likewise. (std::tr1::nextafter): Likewise. (std::tr1::nexttoward): Likewise. (std::tr1::remainder): Likewise. (std::tr1::remquo): Likewise. (std::tr1::rint): Likewise. (std::tr1::scalbln): Likewise. (std::tr1::scalbn): Likewise. (std::tr1::tgamma): Likewise. (std::tr1::trunc): Likewise. (std::tr1::pow): Likewise. * testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc: Restrict dg-xfail-if, dg-excess-errors to *-*-solaris2.1[01]*. 2015-11-21 David Edelsohn * testsuite/23_containers/vector/profile/vector.cc: Add maxdata option on AIX. 2015-11-20 Jan Kratochvil PR libstdc++/68448 * python/hook.in: Call register_libstdcxx_printers. * python/libstdcxx/v6/__init__.py: Wrap it to register_libstdcxx_printers. 2015-11-17 Jonathan Wakely PR libstdc++/66059 * include/std/utility (_Build_index_tuple): Optimise. 2015-11-16 Doug Evans PR libstdc++/67440 * python/libstdcxx/v6/printers.py (find_type): Handle "const" in type name. * testsuite/libstdc++-prettyprinters/debug.cc: Add test for const set. * testsuite/libstdc++-prettyprinters/simple.cc: Ditto. * testsuite/libstdc++-prettyprinters/simple11.cc: Ditto. 2015-11-15 Jonathan Wakely PR libstdc++/68353 * include/bits/basic_string.h: Test value of _GLIBCXX_USE_C99_WCHAR not whether it is defined. * include/ext/vstring.h: Likewise. 2015-11-14 Andreas Tobler * acinclude.m4 (GLIBCXX_ENABLE_CLOCALE): Change locale implementation from darwin to DragonFly. * configure: Regenerate. * config/os/bsd/freebsd/ctype_configure_char.cc: Improve locale support, do it the same as DragonFly. * config/os/bsd/freebsd/os_defines.h: Add fine grained C99 defines. 2015-11-14 Jonathan Wakely * testsuite/21_strings/basic_string/capacity/char/18654.cc: Use real minimum capacity. * testsuite/21_strings/basic_string/capacity/wchar_t/18654.cc: Likewise. 2015-11-13 David Edelsohn * testsuite/experimental/random/randint.cc: Add dg-add-options tls. 2015-11-13 Jonathan Wakely * include/Makefile.am: Add new header. * include/Makefile.in: Regenerate. * include/experimental/random: New. * testsuite/experimental/random/randint.cc: New. 2015-11-13 John Marino * testsuite/22_locale/codecvt/always_noconv/char/wrapped_env.cc: Use portable locale name * testsuite/22_locale/codecvt/always_noconv/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/always_noconv/wchar_t/2.cc: Likewise. * testsuite/22_locale/codecvt/always_noconv/wchar_t/3.cc: Likewise. * testsuite/22_locale/codecvt/always_noconv/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/always_noconv/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/encoding/char/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/encoding/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/encoding/wchar_t/2.cc: Likewise. * testsuite/22_locale/codecvt/encoding/wchar_t/3.cc: Likewise. * testsuite/22_locale/codecvt/encoding/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/encoding/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/in/char/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/in/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/in/wchar_t/2.cc: Likewise. * testsuite/22_locale/codecvt/in/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/in/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/length/char/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/length/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/length/wchar_t/2.cc: Likewise. * testsuite/22_locale/codecvt/length/wchar_t/3.cc: Likewise. * testsuite/22_locale/codecvt/length/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/length/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/max_length/char/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/max_length/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/max_length/wchar_t/2.cc: Likewise. * testsuite/22_locale/codecvt/max_length/wchar_t/3.cc: Likewise. * testsuite/22_locale/codecvt/max_length/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/max_length/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/out/char/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/out/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/out/wchar_t/2.cc: Likewise. * testsuite/22_locale/codecvt/out/wchar_t/7.cc: Likewise. * testsuite/22_locale/codecvt/out/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/out/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/unshift/char/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/unshift/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/unshift/wchar_t/2.cc: Likewise. * testsuite/22_locale/codecvt/unshift/wchar_t/3.cc: Likewise. * testsuite/22_locale/codecvt/unshift/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/unshift/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt_byname/50714.cc: Likewise. * testsuite/22_locale/collate/compare/char/1.cc: Likewise. * testsuite/22_locale/collate/compare/char/2.cc: Likewise. * testsuite/22_locale/collate/compare/char/3.cc: Likewise. * testsuite/22_locale/collate/compare/char/wrapped_env.cc: Likewise. * testsuite/22_locale/collate/compare/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/collate/compare/wchar_t/1.cc: Likewise. * testsuite/22_locale/collate/compare/wchar_t/2.cc: Likewise. * testsuite/22_locale/collate/compare/wchar_t/3.cc: Likewise. * testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/collate/hash/char/2.cc: Likewise. * testsuite/22_locale/collate/hash/char/wrapped_env.cc: Likewise. * testsuite/22_locale/collate/hash/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/collate/hash/wchar_t/2.cc: Likewise. * testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/collate/transform/char/2.cc: Likewise. * testsuite/22_locale/collate/transform/char/3.cc: Likewise. * testsuite/22_locale/collate/transform/char/wrapped_env.cc: Likewise. * testsuite/22_locale/collate/transform/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/collate/transform/wchar_t/2.cc: Likewise. * testsuite/22_locale/collate/transform/wchar_t/3.cc: Likewise. * testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/collate_byname/named_equivalence.cc: Likewise. * testsuite/22_locale/ctype/cons/char/wrapped_env.cc: Likewise. * testsuite/22_locale/ctype/cons/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/ctype/is/char/2.cc: Likewise. * testsuite/22_locale/ctype/is/char/wrapped_env.cc: Likewise. * testsuite/22_locale/ctype/is/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/ctype/is/wchar_t/2.cc: Likewise. * testsuite/22_locale/ctype/is/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/ctype/is/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/ctype/narrow/char/wrapped_env.cc: Likewise. * testsuite/22_locale/ctype/narrow/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/ctype/narrow/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/ctype/narrow/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/ctype/scan/char/wrapped_env.cc: Likewise. * testsuite/22_locale/ctype/scan/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/ctype/scan/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/ctype/scan/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/ctype/to/char/wrapped_env.cc: Likewise. * testsuite/22_locale/ctype/to/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/ctype/to/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/ctype/to/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/ctype/widen/char/wrapped_env.cc: Likewise. * testsuite/22_locale/ctype/widen/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/ctype/widen/wchar_t/2.cc: Likewise. * testsuite/22_locale/ctype/widen/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/ctype/widen/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/facet/2.cc: Likewise. * testsuite/22_locale/locale/cons/12352.cc: Likewise. * testsuite/22_locale/locale/cons/12658_thread-1.cc: Likewise. * testsuite/22_locale/locale/cons/12658_thread-2.cc: Likewise. * testsuite/22_locale/locale/cons/2.cc: Likewise. * testsuite/22_locale/locale/cons/38365.cc: Likewise. * testsuite/22_locale/locale/cons/38368.cc: Likewise. * testsuite/22_locale/locale/cons/4.cc: Likewise. * testsuite/22_locale/locale/cons/40184.cc: Likewise. * testsuite/22_locale/locale/cons/7.cc: Likewise. * testsuite/22_locale/locale/global_locale_objects/14071.cc: Likewise. * testsuite/22_locale/locale/global_locale_objects/2.cc: Likewise. * testsuite/22_locale/messages/13631.cc: Likewise. * testsuite/22_locale/messages/members/char/1.cc: Likewise. * testsuite/22_locale/messages/members/char/2.cc: Likewise. * testsuite/22_locale/messages/members/char/3.cc: Likewise. * testsuite/22_locale/messages/members/char/wrapped_env.cc: Likewise. * testsuite/22_locale/messages/members/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/messages_byname/named_equivalence.cc: Likewise. * testsuite/22_locale/money_get/get/char/1.cc: Likewise. * testsuite/22_locale/money_get/get/char/10.cc: Likewise. * testsuite/22_locale/money_get/get/char/11.cc: Likewise. * testsuite/22_locale/money_get/get/char/11528.cc: Likewise. * testsuite/22_locale/money_get/get/char/12.cc: Likewise. * testsuite/22_locale/money_get/get/char/13.cc: Likewise. * testsuite/22_locale/money_get/get/char/15.cc: Likewise. * testsuite/22_locale/money_get/get/char/16.cc: Likewise. * testsuite/22_locale/money_get/get/char/17.cc: Likewise. * testsuite/22_locale/money_get/get/char/18.cc: Likewise. * testsuite/22_locale/money_get/get/char/2.cc: Likewise. * testsuite/22_locale/money_get/get/char/3.cc: Likewise. * testsuite/22_locale/money_get/get/char/4.cc: Likewise. * testsuite/22_locale/money_get/get/char/wrapped_env.cc: Likewise. * testsuite/22_locale/money_get/get/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/10.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/11.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/11528.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/12.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/13.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/15.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/16.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/17.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/18.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/3.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/4.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/money_put/put/char/1.cc: Likewise. * testsuite/22_locale/money_put/put/char/2.cc: Likewise. * testsuite/22_locale/money_put/put/char/3.cc: Likewise. * testsuite/22_locale/money_put/put/char/9780-3.cc: Likewise. * testsuite/22_locale/money_put/put/char/wrapped_env.cc: Likewise. * testsuite/22_locale/money_put/put/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/moneypunct/40712.cc: Likewise. * testsuite/22_locale/moneypunct/members/char/2.cc: Likewise. * testsuite/22_locale/moneypunct/members/char/wrapped_env.cc: Likewise. * testsuite/22_locale/moneypunct/members/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/moneypunct/members/wchar_t/2.cc: Likewise. * testsuite/22_locale/moneypunct/members/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/moneypunct/members/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/moneypunct_byname/named_equivalence.cc: Likewise. * testsuite/22_locale/num_get/get/char/1.cc: Likewise. * testsuite/22_locale/num_get/get/char/3.cc: Likewise. * testsuite/22_locale/num_get/get/char/5.cc: Likewise. * testsuite/22_locale/num_get/get/char/6.cc: Likewise. * testsuite/22_locale/num_get/get/char/9.cc: Likewise. * testsuite/22_locale/num_get/get/char/wrapped_env.cc: Likewise. * testsuite/22_locale/num_get/get/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/num_get/get/wchar_t/1.cc: Likewise. * testsuite/22_locale/num_get/get/wchar_t/3.cc: Likewise. * testsuite/22_locale/num_get/get/wchar_t/5.cc: Likewise. * testsuite/22_locale/num_get/get/wchar_t/6.cc: Likewise. * testsuite/22_locale/num_get/get/wchar_t/9.cc: Likewise. * testsuite/22_locale/num_get/get/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/num_get/get/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/num_put/put/char/1.cc: Likewise. * testsuite/22_locale/num_put/put/char/20909.cc: Likewise. * testsuite/22_locale/num_put/put/char/20914.cc: Likewise. * testsuite/22_locale/num_put/put/char/3.cc: Likewise. * testsuite/22_locale/num_put/put/char/5.cc: Likewise. * testsuite/22_locale/num_put/put/char/9780-2.cc: Likewise. * testsuite/22_locale/num_put/put/char/wrapped_env.cc: Likewise. * testsuite/22_locale/num_put/put/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/num_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/num_put/put/wchar_t/20909.cc: Likewise. * testsuite/22_locale/num_put/put/wchar_t/20914.cc: Likewise. * testsuite/22_locale/num_put/put/wchar_t/3.cc: Likewise. * testsuite/22_locale/num_put/put/wchar_t/5.cc: Likewise. * testsuite/22_locale/num_put/put/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/num_put/put/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/numpunct/members/char/2.cc: Likewise. * testsuite/22_locale/numpunct/members/char/3.cc: Likewise. * testsuite/22_locale/numpunct/members/char/wrapped_env.cc: Likewise. * testsuite/22_locale/numpunct/members/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/numpunct/members/wchar_t/2.cc: Likewise. * testsuite/22_locale/numpunct/members/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/numpunct/members/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/numpunct_byname/named_equivalence.cc: Likewise. * testsuite/22_locale/time_get/date_order/char/wrapped_env.cc: Likewise. * testsuite/22_locale/time_get/date_order/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/time_get/date_order/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/time_get/date_order/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/time_get/get/char/2.cc: Likewise. * testsuite/22_locale/time_get/get/wchar_t/2.cc: Likewise. * testsuite/22_locale/time_get/get_date/char/12750.cc: Likewise. * testsuite/22_locale/time_get/get_date/char/2.cc: Likewise. * testsuite/22_locale/time_get/get_date/char/26701.cc: Likewise. * testsuite/22_locale/time_get/get_date/char/wrapped_env.cc: Likewise. * testsuite/22_locale/time_get/get_date/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/time_get/get_date/wchar_t/12750.cc: Likewise. * testsuite/22_locale/time_get/get_date/wchar_t/2.cc: Likewise. * testsuite/22_locale/time_get/get_date/wchar_t/26701.cc: Likewise. * testsuite/22_locale/time_get/get_date/wchar_t/4.cc: Likewise. * testsuite/22_locale/time_get/get_date/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/time_get/get_date/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/time_get/get_monthname/char/2.cc: Likewise. * testsuite/22_locale/time_get/get_monthname/char/wrapped_env.cc: Likewise. * testsuite/22_locale/time_get/get_monthname/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/time_get/get_monthname/wchar_t/2.cc: Likewise. * testsuite/22_locale/time_get/get_monthname/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/time_get/get_monthname/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/time_get/get_time/char/1.cc: Likewise. * testsuite/22_locale/time_get/get_time/char/2.cc: Likewise. * testsuite/22_locale/time_get/get_time/char/wrapped_env.cc: Likewise. * testsuite/22_locale/time_get/get_time/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/time_get/get_time/wchar_t/1.cc: Likewise. * testsuite/22_locale/time_get/get_time/wchar_t/2.cc: Likewise. * testsuite/22_locale/time_get/get_time/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/time_get/get_time/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/time_get/get_weekday/char/2.cc: Likewise. * testsuite/22_locale/time_get/get_weekday/char/38081-1.cc: Likewise. * testsuite/22_locale/time_get/get_weekday/char/38081-2.cc: Likewise. * testsuite/22_locale/time_get/get_weekday/char/wrapped_env.cc: Likewise. * testsuite/22_locale/time_get/get_weekday/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/time_get/get_weekday/wchar_t/2.cc: Likewise. * testsuite/22_locale/time_get/get_weekday/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/time_get/get_weekday/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/time_get/get_year/char/wrapped_env.cc: Likewise. * testsuite/22_locale/time_get/get_year/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/time_get/get_year/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/time_get/get_year/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/time_put/put/char/17038.cc: Likewise. * testsuite/22_locale/time_put/put/char/2.cc: Likewise. * testsuite/22_locale/time_put/put/char/3.cc: Likewise. * testsuite/22_locale/time_put/put/char/4.cc: Likewise. * testsuite/22_locale/time_put/put/char/6.cc: Likewise. * testsuite/22_locale/time_put/put/char/7.cc: Likewise. * testsuite/22_locale/time_put/put/char/8.cc: Likewise. * testsuite/22_locale/time_put/put/char/9780-1.cc: Likewise. * testsuite/22_locale/time_put/put/char/wrapped_env.cc: Likewise. * testsuite/22_locale/time_put/put/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/time_put/put/wchar_t/17038.cc: Likewise. * testsuite/22_locale/time_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/time_put/put/wchar_t/3.cc: Likewise. * testsuite/22_locale/time_put/put/wchar_t/4.cc: Likewise. * testsuite/22_locale/time_put/put/wchar_t/6.cc: Likewise. * testsuite/22_locale/time_put/put/wchar_t/7.cc: Likewise. * testsuite/22_locale/time_put/put/wchar_t/8.cc: Likewise. * testsuite/22_locale/time_put/put/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/time_put/put/wchar_t/wrapped_locale.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/char/13007.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/char/13171-1.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/char/13171-2.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/char/13171-4.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/char/14975-1.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/char/2.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/char/9322.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/wchar_t/13007.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/wchar_t/13171-3.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-3.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/wchar_t/14975-2.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/wchar_t/2.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/wchar_t/9322.cc: Likewise. * testsuite/27_io/basic_filebuf/underflow/wchar_t/9520.cc: Likewise. * testsuite/27_io/basic_ios/copyfmt/char/2.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_arithmetic/char/2.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/2.cc: Likewise. * testsuite/27_io/basic_streambuf/cons/57394.cc: Likewise. * testsuite/27_io/basic_streambuf/imbue/char/13007-2.cc: Likewise. * testsuite/27_io/basic_streambuf/imbue/char/9322.cc: Likewise. * testsuite/27_io/basic_streambuf/imbue/wchar_t/13007-2.cc: Likewise. * testsuite/27_io/basic_streambuf/imbue/wchar_t/9322.cc: Likewise. * testsuite/27_io/basic_stringbuf/imbue/char/9322.cc: Likewise. * testsuite/27_io/basic_stringbuf/imbue/wchar_t/9322.cc: Likewise. * testsuite/27_io/manipulators/extended/get_money/char/1.cc: Likewise. * testsuite/27_io/manipulators/extended/get_money/wchar_t/1.cc: Likewise. * testsuite/27_io/manipulators/extended/get_time/char/2.cc: Likewise. * testsuite/27_io/manipulators/extended/get_time/wchar_t/2.cc: Likewise. * testsuite/27_io/manipulators/extended/put_money/char/1.cc: Likewise. * testsuite/27_io/manipulators/extended/put_money/wchar_t/1.cc: Likewise. * testsuite/27_io/manipulators/extended/put_time/char/2.cc: Likewise. * testsuite/27_io/manipulators/extended/put_time/wchar_t/2.cc: Likewise. * testsuite/27_io/objects/wchar_t/13582-1_xin.cc: Likewise. * testsuite/27_io/objects/wchar_t/9520.cc: Likewise. * testsuite/lib/libstdc++.exp (check_v3_target_namedlocale): Check for named locale as appropriate for target. * testsuite/util/testsuite_hooks.h (ISO_8859): Define macro to form target's preferred form of locale name. 2015-11-13 Jennifer Yao Jonathan Wakely PR libstdc++/58393 PR libstdc++/61580 * acinclude.m4 (GLIBCXX_ENABLE_C99): Perform tests twice, with -std=c++11 as well as -std=c++98, and define separate macros for each. Cache the results of checking for complex math and wide character functions. Reformat for readability. * config.h.in: Regenerate. * include/bits/c++config: Define _GLIBCXX_USE_C99_XXX macros to either _GLIBCXX98_USE_C99_XXX or _GLIBCXX11_USE_C99_XXX according to language standard in use. * config/locale/dragonfly/c_locale.h (std::__convert_from_v): Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDIO. * config/locale/generic/c_locale.h (std::__convert_from_v): Likewise. * config/locale/gnu/c_locale.h (std::__convert_from_v): Likewise. * config/os/bsd/dragonfly/os_defines.h: Define _GLIBCXX_USE_C99_STDIO, _GLIBCXX_USE_C99_STDLIB, and _GLIBCXX_USE_C99_WCHAR. * configure: Regenerate. * include/bits/basic_string.h: Make numeric conversion functions depend on _GLIBCXX_USE_C99_STDIO, _GLIBCXX_USE_C99_STDLIB, or _GLIBCXX_USE_C99_WCHAR, instead of _GLIBCXX_USE_C99. * include/ext/vstring.h: Likewise. * include/bits/locale_facets.tcc (std::num_put::_M_insert_float): Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDIO. * include/bits/locale_facets_nonio.tcc (std::money_put::do_put): Likewise. * include/c_compatibility/math.h: Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_MATH. * include/c_compatibility/wchar.h: Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_WCHAR. * include/c_global/cstdio: Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDIO. * include/c_global/cstdlib: Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDLIB. * include/c_global/cwchar: Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_WCHAR. * include/c_std/cstdio: Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDIO. * include/c_std/cstdlib: Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDLIB. * include/c_std/cwchar: Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_WCHAR. * include/tr1/cstdio: Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDIO. * include/tr1/cstdlib: Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDLIB. * include/tr1/cwchar: Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_WCHAR. * include/tr1/stdlib.h: Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDLIB. * src/c++98/locale_facets.cc (std::__num_base::_S_format_float): Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDIO. * testsuite/18_support/exception_ptr/60612-terminate.cc: Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDLIB. * testsuite/18_support/exception_ptr/60612-unexpected.cc: Likewise. * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stod.cc (test01): Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_WCHAR. * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/ stof.cc: Likewise. * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/ stoi.cc: Likewise. * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/ stol.cc: Likewise. * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/ stold.cc: Likewise. * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/ stoll.cc: Likewise. * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/ stoul.cc: Likewise. * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/ stoull.cc: Likewise. * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/ to_wstring.cc: Likewise. * testsuite/26_numerics/headers/cstdlib/13943.cc: Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDLIB. * testsuite/26_numerics/headers/cstdlib/types_std_c++0x.cc: Likewise. * testsuite/lib/libstdc++.exp (check_v3_target_string_conversions): Change preprocessor #if conditional so that it uses _GLIBCXX_USE_C99_STDIO, _GLIBCXX_USE_C99_STDLIB, and _GLIBCXX_USE_C99_WCHAR, instead of _GLIBCXX_USE_C99. * testsuite/tr1/8_c_compatibility/cmath/templates.cc: Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_MATH. * testsuite/tr1/8_c_compatibility/cstdio/functions.cc: Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDIO. * testsuite/tr1/8_c_compatibility/cstdlib/functions.cc: Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDLIB. * testsuite/tr1/8_c_compatibility/cstdlib/types_std_tr1.cc: Likewise. * testsuite/tr1/8_c_compatibility/cwchar/functions.cc: Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_WCHAR. * testsuite/util/testsuite_fs.h: Replace _GLIBCXX_USE_C99 with _GLIBCXX_USE_C99_STDIO. 2015-11-13 Jonathan Wakely * include/experimental/bits/shared_ptr.h: Tweak comments. 2015-11-13 Fan You Jonathan Wakely * include/Makefile.am: Add new header. * include/Makefile.in: Regenerate. * include/experimental/bits/shared_ptr.h: New. * include/experimental/memory: Include new header. * testsuite/experimental/memory/shared_ptr/assign/assign.cc: New. * testsuite/experimental/memory/shared_ptr/cast/cast.cc: New. * testsuite/experimental/memory/shared_ptr/comparison/comparison.cc: New. * testsuite/experimental/memory/shared_ptr/cons/alias_ctor.cc: New. * testsuite/experimental/memory/shared_ptr/cons/alloc_ctor.cc: New. * testsuite/experimental/memory/shared_ptr/cons/copy_ctor.cc: New. * testsuite/experimental/memory/shared_ptr/cons/copy_ctor_neg.cc: New. * testsuite/experimental/memory/shared_ptr/cons/default_ctor.cc: New. * testsuite/experimental/memory/shared_ptr/cons/move_ctor.cc: New. * testsuite/experimental/memory/shared_ptr/cons/pointer_ctor.cc: New. * testsuite/experimental/memory/shared_ptr/cons/unique_ptr_ctor.cc: New. * testsuite/experimental/memory/shared_ptr/cons/weak_ptr_ctor.cc: New. * testsuite/experimental/memory/shared_ptr/dest/dest.cc: New. * testsuite/experimental/memory/shared_ptr/modifiers/reset.cc: New. * testsuite/experimental/memory/shared_ptr/modifiers/swap.cc: New. * testsuite/experimental/memory/shared_ptr/observers/bool_conv.cc: New. * testsuite/experimental/memory/shared_ptr/observers/operators.cc: New. * testsuite/experimental/memory/shared_ptr/observers/owner_before.cc: New. * testsuite/experimental/memory/shared_ptr/observers/use_count.cc: New. 2015-11-13 Jonathan Wakely * include/Makefile.am: Add new header. * include/Makefile.in: Regenerate. * include/experimental/memory_resource: Add feature-test macro. * include/experimental/regex: New. * include/experimental/deque: Add alias template using PMR. * include/experimental/forward_list: Likewise. * include/experimental/list: Likewise. * include/experimental/map: Likewise. * include/experimental/set: Likewise. * include/experimental/string: Likewise. * include/experimental/unordered_map: Likewise. * include/experimental/unordered_set: Likewise. * include/experimental/vector: Likewise. 2015-11-13 Fan You * include/Makefile.am: Add new headers. * include/Makefile.in: Regenerate. * include/bits/uses_allocator.h (__erased_type): Define. (__uses_allocator_helper): Check for __erased_type. * include/experimental/memory_resource: New. * include/experimental/utlity: New. * testsuite/experimental/type_erased_allocator/1.cc: New. * testsuite/experimental/type_erased_allocator/1_neg.cc: New. * testsuite/experimental/type_erased_allocator/2.cc: New. * testsuite/experimental/type_erased_allocator/uses_allocator.cc: New. 2015-11-12 Jonathan Wakely PR libstdc++/56158 * include/bits/ios_base.h (_Ios_Fmtflags, _Ios_Openmode, _Ios_Iostate): Define enumerators to ensure all values of type int are valid values of the enumeration type. * testsuite/27_io/ios_base/types/fmtflags/case_label.cc: Add new cases. * testsuite/27_io/ios_base/types/iostate/case_label.cc: Likewise. * testsuite/27_io/ios_base/types/openmode/case_label.cc: Likewise. * include/std/thread: Include for EINTR. 2015-11-12 Ville Voutilainen Implement D0013R2, logical type traits. * include/experimental/type_traits (conjunction, disjunction, negation, conjunction_v, disjunction_v, negation_v): New. * include/std/type_traits (conjunction, disjunction, negation): Likewise. * testsuite/20_util/declval/requirements/1_neg.cc: Adjust. * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Likewise. * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Likewise. * testsuite/experimental/type_traits/value.cc: Likewise. * testsuite/20_util/logical_traits/requirements/explicit_instantiation.cc: New. * testsuite/20_util/logical_traits/requirements/typedefs.cc: Likewise. * testsuite/20_util/logical_traits/value.cc: Likewise. 2015-11-12 Jonathan Wakely * include/experimental/bits/string_view.tcc: Fix doxygen @file. 2015-11-11 Jonathan Wakely * libsupc++/new_handler.cc: Fix for explicit constructor change. PR libstdc++/60421 * include/std/thread (this_thread::sleep_for): Retry on EINTR. (this_thread::sleep_until): Retry if time not reached. * src/c++11/thread.cc (__sleep_for): Retry on EINTR. * testsuite/30_threads/this_thread/60421.cc: Test interruption and non-steady clocks. 2015-11-11 Ville Voutilainen LWG 2510, make the default constructors of library tag types explicit. * include/bits/mutex.h (defer_lock_t, try_lock_t, adopt_lock_t): Add an explicit default constructor. * include/bits/stl_pair.h (piecewise_construct_t): Likewise. * include/bits/uses_allocator.h (allocator_arg_t): Likewise. * libsupc++/new (nothrow_t): Likewise. * testsuite/17_intro/tag_type_explicit_ctor.cc: New. 2015-11-11 Jonathan Wakely PR libstdc++/64651 * libsupc++/exception_ptr.h (rethrow_exception): Add using-declaration to __exception_ptr namespace. * testsuite/18_support/exception_ptr/rethrow_exception.cc: Test ADL. Remove unnecessary test variables. 2015-11-10 Jonathan Wakely PR libstdc++/68190 * include/bits/stl_multiset.h (multiset::find): Fix return types. * include/bits/stl_set.h (set::find): Likewise. * testsuite/23_containers/map/operations/2.cc: Test find return types. * testsuite/23_containers/multimap/operations/2.cc: Likewise. * testsuite/23_containers/multiset/operations/2.cc: Likewise. * testsuite/23_containers/set/operations/2.cc: Likewise. * doc/xml/manual/status_cxx2017.xml: Update. * doc/html/*: Regenerate. * include/bits/functional_hash.h: Fix grammar in comment. 2015-11-09 François Dumont * include/bits/stl_algo.h (partial_sort_copy): Instantiate std::iterator_traits only if concept checks. (lower_bound): Likewise. (upper_bound): Likewise. (equal_range): Likewise. (binary_search): Likewise. * include/bits/stl_heap.h (pop_heap): Likewise. 2015-11-06 Kai Tietz * testsuite/26_numerics/complex/requirements/constexpr.cc * testsuite/26_numerics/complex/requirements/constexpr_functions.cc: Use constexpr where needed. 2015-11-06 David Malcolm * testsuite/lib/libstdc++.exp (v3_target_compile): Add -fno-diagnostics-show-caret -fdiagnostics-color=never to option's additional_flags. 2015-11-03 Jason Merrill * libsupc++/new: Declare sized deletes. 2015-11-03 Ville Voutilainen Make the default constructors of tuple and pair conditionally explicit. * include/std/type_traits (is_unsigned, __is_array_unknown_bounds, __is_default_constructible_atom, __is_default_constructible_safe, __is_direct_constructible_new_safe, __is_direct_constructible_ref_cast, __is_nt_default_constructible_impl, is_nothrow_default_constructible, is_nothrow_constructible, is_nothrow_assignable, is_trivially_constructible, is_trivially_copy_constructible, is_trivially_move_constructible, is_trivially_assignable, is_trivially_copy_assignable, is_trivially_move_assignable, is_trivially_destructible): Simplify. * include/std/type_traits ( __do_is_implicitly_default_constructible_impl, __is_implicitly_default_constructible_impl, __is_implicitly_default_constructible_safe, __is_implicitly_default_constructible): New. * include/bits/stl_pair.h (pair::pair()): Use it. * include/std/tuple (tuple<_T1, _T2>::tuple): Use it. * include/std/tuple (_ImplicitlyDefaultConstructibleTuple): New. * include/std/tuple (tuple<_Types...>::tuple()): Use it. * testsuite/20_util/declval/requirements/1_neg.cc: Adjust. * testsuite/20_util/is_implicitly_default_constructible/ requirements/explicit_instantiation.cc: New. * testsuite/20_util/is_implicitly_default_constructible/requirements/ typedefs.cc: Likewise. * testsuite/20_util/is_implicitly_default_constructible/value.cc: Likewise. * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust. * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Likewise. * testsuite/20_util/pair/cons/explicit_construct.cc: Likewise. * testsuite/20_util/tuple/cons/explicit_construct.cc: Likewise. 2015-10-24 Jonathan Wakely * include/std/functional (__invoke_impl): New overloads. (__invoke): Replace with a single function calling __invoke_impl. (invoke): Add C++17 std::invoke. (reference_wrapper::operator()): Qualify call to __invoke. (_Mem_fn_traits_base, _Mem_fn_traits): Remove unused typedefs. (_Mem_fn_base): Remove unused typedefs and implement call operator in terms of __invoke. * include/std/future (__future_base::_Async_state_commonV2): Do not pass reference_wrapper as object argument to call_once. * include/std/type_traits (result_of): Define nested __invoke_type. Handle reference_wrapper as per LWG 2219. * testsuite/20_util/bind/ref_neg.cc: Adjust dg-error directives. * testsuite/20_util/function_objects/mem_fn/55463.cc: Remove tests using member functions of reference_wrapper. 2015-10-24 Jonathan Wakely * include/std/future (async): Use deferred function on exception. * testsuite/30_threads/async/except.cc: New. 2015-10-21 Jonathan Wakely * include/std/type_traits (__cpp_lib_bool_constant): Define. 2015-10-16 Jonathan Wakely * doc/xml/manual/configure.xml: Document --enable-libstdcxx-filesystem-ts option. * doc/xml/manual/status_cxx2014.xml: Document libstdc++fs.a. * doc/xml/manual/using.xml: Likewise. * doc/html/*: Regenerate. 2015-10-16 Aurelio Remonda * testsuite/25_algorithms/random_shuffle/moveable.cc: Change variable N from const int N = 200000 to const unsigned int N = 10000. Delete useless fill_ascending function call. 2015-10-15 Szabolcs Nagy * testsuite/lib/libstdc++.exp (libstdc++-dg-test): Check for unsupported compiler output. 2015-10-13 Nathan Froyd * config/cpu/i486/opt/bits/opt_random.h: Include pmmintrin.h instead of x86intrin.h, and only do so when __SSE3__ * include/ext/random: Include emmintrin.h instead of x86intrin.h 2015-10-11 Joseph Myers * crossconfig.m4 (GLIBCXX_CROSSCONFIG) <*-linux* | *-uclinux* | *-gnu* | *-kfreebsd*-gnu | *-knetbsd*-gnu | *-cygwin*>: Check for __cxa_thread_atexit_impl. * configure: Regenerate. 2015-10-09 Jonathan Wakely * include/experimental/erase_if.h: Move to ... * include/experimental/bits/erase_if.h: New. * include/experimental/fs_dir.h: Move to ... * include/experimental/bits/fs_dir.h: New. * include/experimental/fs_fwd.h: Move to ... * include/experimental/bits/fs_fwd.h: New. * include/experimental/fs_ops.h: Move to ... * include/experimental/bits/fs_ops.h: New. * include/experimental/fs_path.h: Move to ... * include/experimental/bits/fs_path.h: New. * include/experimental/string_view.tcc: Move to ... * include/experimental/bits/string_view.tcc: New. * include/Makefile.am: Add include/experimental/bits sub-directory. * include/Makefile.in: Regenerate. * include/experimental/filesystem: Adjust includes. * include/experimental/map: Likewise. * include/experimental/set: Likewise. * include/experimental/string_view: Likewise. * include/experimental/unordered_map: Likewise. * include/experimental/unordered_set: Likewise. 2015-10-05 Ville Voutilainen PR 67844. * include/std/tuple (_TC::_NonNestedTuple): Eagerly reject conversions from tuple types same as the target tuple. * testsuite/20_util/tuple/67844.cc: New. * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Add a missing copyright header. 2015-10-03 Jonathan Wakely * python/libstdcxx/v6/printers.py (StdExpAnyPrinter): Remove support for _Manager_alloc. * src/c++98/locale.cc: Fix comment. * src/c++98/locale_init.cc: Likewise. * testsuite/21_strings/basic_string/literals/types.cc: Guard use of wchar_t with _GLIBCXX_USE_WCHAR_T. * testsuite/21_strings/basic_string/literals/values.cc: Likewise. * testsuite/21_strings/basic_string/requirements/citerators.cc: Likewise. * testsuite/22_locale/messages/13631.cc: Likewise. * testsuite/experimental/string_view/literals/types.cc: Likewise. * testsuite/experimental/string_view/literals/values.cc: Likewise. * src/filesystem/Makefile.am: Add cxx11_abi_sources. * src/filesystem/Makefile.in: Regenerate. * src/filesystem/cow-dir.cc: New. * src/filesystem/cow-ops.cc: New. * src/filesystem/cow-path.cc: New. * src/filesystem/dir.cc: Define macro for new ABI. * src/filesystem/ops.cc: Likewise. * src/filesystem/path.cc: Likewise. 2015-10-02 Jonathan Wakely * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc: Minor tweaks to match narrow char version. * testsuite/21_strings/basic_string/allocator/char/minimal.cc: Guard explicit instantiation with check for new ABI. * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc: Likewise. Use wchar_t as char_type. * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI] (basic_string::front() const, basic_string::back() const): Use noexcept instead of _GLIBCXX_NOEXCEPT macro. (__versa_string::front, __versa_string::back): Likewise. * acinclude.m4 (GLIBCXX_ENABLE_DEBUG_FLAGS): Fix comment. * include/bits/locale_conv.h [!_GLIBCXX_USE_WCHAR_T] (__do_str_codecvt, __str_codecvt_in, __str_codecvt_out): Enable. * include/experimental/fs_path.h [!_GLIBCXX_USE_WCHAR_T] (path::wstring, path::generic_wstring): Disable. * src/filesystem/path.cc (path::_S_convert_loc) [!_GLIBCXX_USE_WCHAR_T]: Skip conversion. * testsuite/experimental/filesystem/path/assign/assign.cc: Check for wchar_t support. * testsuite/experimental/filesystem/path/concat/strings.cc: Likewise. * testsuite/experimental/filesystem/path/construct/range.cc: Likewise. * testsuite/util/testsuite_fs.h (nonexistent_path): Use less generic name for paths. Prefer snprintf to sprintf. PR libstdc++/67747 * src/filesystem/dir.cc (native_readdir): Remove. (_Dir::advance): Use readdir instead of native_readdir. (recursive_directory_iterator(const path&, directory_options, error_code*)): Use swap instead of reset. 2015-10-01 Jonathan Wakely * doc/html/manual/errno.html: Add new file. * doc/xml/manual/diagnostics.xml: Document use of errno. * doc/html/*: Regenerate. * config/locale/generic/c_locale.cc (_Save_errno): New helper. (__convert_to_v): Use _Save_errno. * include/ext/string_conversions.h (__stoa): Only restore errno when it isn't set to non-zero. 2015-09-30 François Dumont Jonathan Wakely * config/locale/gnu/messages_members.cc (Catalog_info, Catalogs): Move... * config/locale/gnu/c++locale_internal.h: ...here in std namespace. * config/locale/gnu/c_locale.cc: Move implementation of latter here. * src/c++98/Makefile.am: Compile c++locale.cc with -fimplicit-templates. * src/c++98/Makefile.in: Regenerate. * config/abi/pre/gnu.ver: Adjust. 2015-09-30 Matthias Klose * config/cpu/alpha, config/cpu/ia64: Remove empty directories. 2015-09-29 Jonathan Wakely * include/ext/string_conversions.h (__stoa): Save and restore errno. * testsuite/21_strings/basic_string/numeric_conversions/char/errno.cc: New. PR libstdc++/67583 * testsuite/27_io/basic_stringbuf/seekoff/char/1.cc: Fix sputn call with mismatched arguments. * testsuite/27_io/basic_stringbuf/seekoff/wchar_t/1.cc: Likewise. PR libstdc++/65393 * config/abi/pre/gnu.ver: Export new symbols. * include/std/thread (thread::_State, thread::_State_impl): New types. (thread::_M_start_thread): Add overload taking unique_ptr<_State>. (thread::_M_make_routine): Remove. (thread::_S_make_state): Add. (thread::_Impl_base, thread::_Impl, thread::_M_start_thread) [_GLIBCXX_THREAD_ABI_COMPAT] Only declare conditionally. * src/c++11/thread.cc (execute_native_thread_routine): Rename to execute_native_thread_routine_compat and re-define to use _State. (thread::_State::~_State()): Define. (thread::_M_make_thread): Define new overload. (thread::_M_make_thread) [_GLIBCXX_THREAD_ABI_COMPAT]: Only define old overloads conditionally. 2015-09-28 Jonathan Wakely * include/std/condition_variable (condition_variable::wait): Add noexcept. * src/c++11/condition_variable.cc (condition_variable::wait): Call std::terminate on error (DR 2135). 2015-09-25 Ville Voutilainen Avoid creating dangling references in case of nested tuples for tuple constructors that construct from other tuples. * include/std/tuple (_TC::_NonNestedTuple): New. * include/std/tuple (tuple::_TNTC): New. * include/std/tuple (tuple(const tuple<_UElements...>&), tuple(tuple<_UElements...>&&): Use _TNTC. * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: New. 2015-09-24 Jonathan Wakely PR libstdc++/67707 * include/bits/stl_deque.h (_Deque_base::_M_move_impl): Initialize empty object. * testsuite/23_containers/deque/allocator/move.cc: Check moved-from deque. 2015-09-23 Jonathan Wakely * src/filesystem/ops.cc (canonical): Simplify error handling and limit number of symlinks that can be resolved. 2015-09-23 Jonathan Wakely * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Remove _GLIBCXX_ prefix from HAVE_STRUCT_DIRENT_D_TYPE. * config.h.in: Regenerate. * configure: Regenerate. * include/experimental/fs_dir.h (operator==, operator==): Use owner_before instead of pointer equality. (directory_iterator(std::shared_ptr<_Dir>, error_code*)): Remove. * src/filesystem/dir.cc (ErrorCode): Remove. (_Dir::advance): Change ErrorCode parameter to error_code*, add directory_options parameter and check it on error. (opendir): Rename to open_dir to avoid clashing with macro. Change ErrorCode parameter to error_code*. (make_shared_dir): Remove. (native_readdir) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Don't set errno. (directory_iterator(std::shared_ptr<_Dir>, error_code*)): Remove. (directory_iterator(const path&, directory_options, error_code*)): Pass options to _Dir::advance and create non-end iterator on error. (recursive_directory_iterator(const path&, directory_options, error_code*)): Clear error_code on ignored error, create non-end iterator otherwise. (recursive_directory_iterator::increment): Pass _M_options to _Dir::advance. (recursive_directory_iterator::pop): Likewise. * testsuite/experimental/filesystem/iterators/directory_iterator.cc: New. * testsuite/experimental/filesystem/iterators/ recursive_directory_iterator.cc: New. * src/filesystem/ops.cc (is_dot, is_dotdot): Define new helpers. (create_directories): Fix error handling. * testsuite/experimental/filesystem/operations/create_directories.cc: New. 2015-09-21 Jonathan Wakely PR libstdc++/67647 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI] (basic_string::shrink_to_fit): Fix #endif placement. 2015-09-19 Tim Shen PR libstdc++/67361 * include/bits/regex_error.h: Add __throw_regex_error that supports string. * include/bits/regex_automaton.h: Add more specific exception messages. * include/bits/regex_automaton.tcc: Likewise. * include/bits/regex_compiler.h: Likewise. * include/bits/regex_compiler.tcc: Likewise. * include/bits/regex_scanner.h: Likewise. * include/bits/regex_scanner.tcc: Likewise. 2015-09-18 Jonathan Wakely * include/precompiled/extc++.h: Fix bootstrap error due to unconditional inclusion of . * include/ext/random: Check for definition of UINT32_C. 2015-09-17 Catherine Moore * src/c++11/debug.cc: Include . 2015-09-17 Gerald Pfeifer * src/c++11/random.cc: Include . 2015-09-17 François Dumont * include/debug/formatter.h (_Error_formatter::_Parameter::_M_print_field): Deprecate. (_Error_formatter::_Parameter::_M_print_description): Likewise. (_Error_formatter::_M_format_word): Likewise. (_Error_formatter::_M_print_word): Likewise. (_Error_formatter::_M_print_string): Likewise. (_Error_formatter::_M_get_max_length): Likewise. (_Error_formatter::_M_max_length): Delete. (_Error_formatter::_M_indent): Likewise. (_Error_formatter::_M_column): Likewise. (_Error_formatter::_M_first_line): Likewise. (_Error_formatter::_M_wordwrap): Likewise. * src/c++11/debug.cc: Adapt. 2015-09-17 Jonathan Wakely PR libstdc++/65913 * include/bits/atomic_base.h (__atomic_base<_TTp>::is_lock_free(), __atomic_base<_PTp*>::is_lock_free()): Call the built-in with the immediate pointer value, not a variable. * include/std/atomic (atomic::is_lock_free()): Likewise. * testsuite/29_atomics/atomic/65913.cc: New. * testsuite/experimental/filesystem/operations/canonical.cc: Remove non-deterministic part of the test. PR libstdc++/65142 * src/c++11/random.cc (random_device::_M_getval()): Retry after short reads. * include/std/system_error (error_code::operator bool(), error_condition::operator bool()): Remove redundant conditional expression. * include/bits/allocator.h (__shrink_to_fit_aux::_S_do_it): Do nothing if exceptions are disabled. * include/bits/basic_string.h (basic_string::shrink_to_fit): Likewise. 2015-09-16 Jonathan Wakely PR libstdc++/67173 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check _XOPEN_VERSION and PATH_MAX for _GLIBCXX_USE_REALPATH. * config.h.in: Regenerate. * configure: Regenerate. * src/filesystem/ops.cc: (canonical) [!_GLIBCXX_USE_REALPATH]: Add alternative implementation. * testsuite/experimental/filesystem/operations/canonical.cc: New. * testsuite/experimental/filesystem/operations/exists.cc: Add more tests. * testsuite/experimental/filesystem/operations/absolute.cc: Add test variables. * testsuite/experimental/filesystem/operations/copy.cc: Likewise. * testsuite/experimental/filesystem/operations/current_path.cc: Likewise. * testsuite/experimental/filesystem/operations/file_size.cc: Likewise. * testsuite/experimental/filesystem/operations/status.cc: Likewise. * testsuite/experimental/filesystem/operations/temp_directory_path.cc: Likewise. 2015-09-11 Jonathan Wakely PR libstdc++/67173 * src/filesystem/ops.cc (filesystem::canonical): Allocate buffer for realpath on Solaris 10. PR libstdc++/65142 * src/c++11/random.cc (random_device::_M_getval()): Check read result. 2015-09-11 John Marino Jonathan Wakely PR libstdc++/67096 * testsuite/22_locale/codecvt/in/wchar_t/4.cc: Do not test code points above U+10FFFF. * testsuite/22_locale/codecvt/in/wchar_t/8.cc: Likewise. * testsuite/22_locale/codecvt/in/wchar_t/9.cc: Likewise. * testsuite/22_locale/codecvt/length/wchar_t/4.cc: Likewise. * testsuite/22_locale/codecvt/out/wchar_t/4.cc: Likewise. * testsuite/22_locale/codecvt/unshift/wchar_t/4.cc: Likewise. * testsuite/27_io/basic_filebuf/seekoff/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_filebuf/seekpos/wchar_t/9874.cc: Likewise. * testsuite/27_io/basic_filebuf/underflow/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_filebuf/underflow/wchar_t/2.cc: Likewise. * testsuite/27_io/basic_filebuf/underflow/wchar_t/3.cc: Likewise. * testsuite/27_io/objects/wchar_t/10.cc: Likewise. * testsuite/27_io/objects/wchar_t/11.cc: Likewise. * testsuite/27_io/objects/wchar_t/12.cc: Likewise. * testsuite/27_io/objects/wchar_t/13.cc: Likewise. 2015-09-11 Jonathan Wakely PR libstdc++/64857 * doc/xml/manual/using.xml: Improve aggregate header documentation. * doc/html/manual/*: Regenerate. * include/precompiled/extc++.h: Include for C++11 and later and include more extension headers. * testsuite/17_intro/headers/c++1998/all_attributes.cc: Remove redundant header. * testsuite/17_intro/headers/c++200x/: Rename to c++2011. * testsuite/17_intro/headers/c++2014/all_attributes.cc: Remove redundant headers. * testsuite/17_intro/headers/c++2014/all_no_exceptions.cc: New. * testsuite/17_intro/headers/c++2014/all_no_rtti.cc: New. * testsuite/17_intro/headers/c++2014/all_pedantic_errors.cc: New. * testsuite/17_intro/headers/c++2014/operator_names.cc: New. * testsuite/17_intro/headers/c++2014/stdc++.cc: New. * testsuite/17_intro/headers/c++2014/stdc++_multiple_inclusion.cc: New. PR libstdc++/58265 * doc/xml/manual/intro.xml: Document LWG 2063 and 2064 resolutions. * doc/html/manual/bugs.html: Regenerate. * include/bits/basic_string.h (basic_string): Implement N4258. Add correct exception-specifications and propagate allocators correctly. * include/bits/basic_string.tcc (basic_string::swap): Propagate allocators correctly. * include/debug/string (__gnu_debug::basic_string): Add correct exceptions-specifications and allcoator-extended constructors. * testsuite/21_strings/basic_string/allocator/char/copy.cc: New. * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc: New. * testsuite/21_strings/basic_string/allocator/char/minimal.cc: New. * testsuite/21_strings/basic_string/allocator/char/move.cc: New. * testsuite/21_strings/basic_string/allocator/char/move_assign.cc: New. * testsuite/21_strings/basic_string/allocator/char/noexcept.cc: New. * testsuite/21_strings/basic_string/allocator/char/swap.cc: New. * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc: New. * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc: New. * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc: New. * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc: New. * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc: New. * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc: New. * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc: New. * testsuite/util/testsuite_allocator.h (tracker_allocator): Define defaulted assignment operators. PR libstdc++/65092 * include/bits/stl_queue.h (queue, priority_queue): Add allocator-extended constructors. * include/bits/stl_stack.h (stack): Likewise. * testsuite/23_containers/priority_queue/requirements/ uses_allocator.cc: Test allocator-extended constructors. * testsuite/23_containers/queue/requirements/uses_allocator.cc: Likewise. * testsuite/23_containers/stack/requirements/uses_allocator.cc: Likewise. 2015-09-10 Jonathan Wakely * testsuite/util/testsuite_allocator.h (PointerBase::operator[]): Add. * testsuite/21_strings/basic_string/operators/char/1.cc: Verify the string contents. 2015-09-09 Jonathan Wakely * doc/xml/manual/using.xml (_GLIBCXX_ASSERTIONS): Document. * doc/html/manual/using_macros.html: Regenerate. * include/bits/c++config: Define _GLIBCXX_ASSERTIONS when _GLIBCXX_DEBUG is defined. Disable std::string extern templates when (_GLIBCXX_EXTERN_TEMPLATE, __glibcxx_assert): Depend on _GLIBCXX_ASSERTIONS instead of _GLIBCXX_DEBUG. * include/debug/debug.h [!_GLIBCXX_DEBUG]: Define __glibcxx_requires_non_empty_range and __glibcxx_requires_nonempty. * include/backward/auto_ptr.h (auto_ptr::operator*, auto_ptr::operator->): Replace _GLIBCXX_DEBUG_ASSERT with __glibcxx_assert. * include/bits/basic_string.h (basic_string::operator[], basic_string::front, basic_string::back, basic_string::pop_back): Likewise. * include/bits/random.h (uniform_int_distribution::param_type::param_type, uniform_real_distribution::param_type::param_type, normal_distribution::param_type::param_type, gamma_distribution::param_type::param_type, bernoulli_distribution::param_type::param_type, binomial_distribution::param_type::param_type, geometric_distribution::param_type::param_type, negative_binomial_distribution::param_type::param_type, poisson_distribution::param_type::param_type, exponential_distribution::param_type::param_type): Likewise. * include/bits/regex.h (match_results::operator[], match_results::prefix, match_results::suffix): Likewise. * include/bits/regex.tcc (format, regex_iterator::operator++): Likewise. * include/bits/regex_automaton.tcc (_StateSeq::_M_clone): Likewise. * include/bits/regex_compiler.tcc (_Compiler::_Compiler, _Compiler::_M_insert_character_class_matcher): Likewise. * include/bits/regex_executor.tcc (_Executor::_M_dfs): Likewise. * include/bits/regex_scanner.tcc (_Scanner::_M_advance, _Scanner::_M_scan_normal): Likewise. * include/bits/shared_ptr_base.h (__shared_ptr::_M_reset, __shared_ptr::operator*): Likewise. * include/bits/stl_iterator_base_funcs.h (__advance): Likewise. * include/bits/unique_ptr.h (unique_ptr::operator*, unique_ptr::operator[]): Likewise. * include/experimental/fs_path.h (path::path(string_type, _Type), path::iterator::operator++, path::iterator::operator--, path::iterator::operator*): Likewise. * include/experimental/string_view (basic_string_view::operator[], basic_string_view::front, basic_string_view::back, basic_string_view::remove_prefix): Likewise. * include/ext/random (beta_distribution::param_type::param_type, normal_mv_distribution::param_type::param_type, rice_distribution::param_type::param_type, pareto_distribution::param_type::param_type, k_distribution::param_type::param_type, arcsine_distribution::param_type::param_type, hoyt_distribution::param_type::param_type, triangular_distribution::param_type::param_type, von_mises_distribution::param_type::param_type, hypergeometric_distribution::param_type::param_type, logistic_distribution::param_type::param_type): Likewise. * include/ext/vstring.h (__versa_string::operator[]): Likewise. * include/std/complex (polar): Likewise. * include/std/mutex [!_GTHREAD_USE_MUTEX_TIMEDLOCK] (timed_mutex::~timed_mutex, timed_mutex::unlock, (recursive_timed_mutex::~timed_mutex, recursive_timed_mutex::unlock): Likewise. * include/std/shared_mutex [!PTHREAD_RWLOCK_INITIALIZER] (__shared_mutex_pthread::__shared_mutex_pthread, __shared_mutex_pthread::~__shared_mutex_pthread): Likewise. (__shared_mutex_pthread::lock, __shared_mutex_pthread::try_lock, __shared_mutex_pthread::unlock, __shared_mutex_pthread::lock_shared, __shared_mutex_pthread::try_lock_shared): Likewise. (__shared_mutex_cv::~__shared_mutex_cv, __shared_mutex_cv::unlock, __shared_mutex_cv::unlock_shared): Likewise. (shared_timed_mutex::try_lock_until, shared_timed_mutex::try_lock_shared_until): Likewise. * include/std/valarray (valarray::valarray(const _Tp*, size_t), valarray::operator=, valarray::sum, valarray::min, valarray::max, _DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT, _DEFINE_BINARY_OPERATOR): Likewise. 2015-09-07 Jonathan Wakely * include/bits/shared_ptr_base.h (__shared_ptr::operator->): Change _GLIBCXX_DEBUG_ASSERT to _GLIBCXX_DEBUG_PEDASSERT. * include/bits/unique_ptr.h (unique_ptr::operator->): Likewise. * testsuite/20_util/shared_ptr/observers/get.cc: Test operator-> on empty shared_ptr. * include/bits/regex_compiler.h (_BracketMatcher::_M_is_ready): Initialize using NSDMI and set using _GLIBCXX_DEBUG_ONLY. * testsuite/30_threads/timed_mutex/try_lock_until/57641.cc: Rename shadowed variable. * testsuite/30_threads/recursive_timed_mutex/unlock/2.cc: Run on darwin. * testsuite/30_threads/timed_mutex/unlock/2.cc: Run on darwin. 2015-09-04 Jonathan Wakely PR libstdc++/65704 * include/std/mutex (recursive_timed_mutex): Fix uses of _Can_lock. PR libstdc++/65704 * include/Makefile.am: Add . * include/Makefile.in: Regenerate. * include/bits/mutex.h (__mutex_base, mutex, lock_guard, unique_lock): New file containing types moved from . * include/std/condition_variable: Include instead of . * include/std/mutex (__mutex_base, mutex, lock_guard, unique_lock): Move to . * testsuite/30_threads/recursive_timed_mutex/cons/1.cc: Remove dg-require-gthreads-timed. * testsuite/30_threads/recursive_timed_mutex/cons/assign_neg.cc: Likewise. * testsuite/30_threads/recursive_timed_mutex/cons/copy_neg.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/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/timed_mutex/cons/1.cc: Likewise. * testsuite/30_threads/timed_mutex/cons/assign_neg.cc: Likewise. * testsuite/30_threads/timed_mutex/cons/copy_neg.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/requirements/standard_layout.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/try_lock_until/57641.cc: Likewise. * testsuite/30_threads/timed_mutex/unlock/1.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/3.cc: Likewise. * testsuite/30_threads/unique_lock/locking/4.cc: Likewise. 2015-09-04 Edward Smith-Rowland <3dw4rd@verizon.net> Jonathan Wakely Add C++11 header . * acinclude.m4 (GLIBCXX_CHECK_UCHAR_H): Define. * config.h.in: Regenerate. * configure: Regenerate. * configure.ac: Check for . * include/Makefile.am: Add new headers. * include/Makefile.in: Regenerate. * include/c/cuchar: New. * include/c_compatibility/uchar.h: New. * include/c_global/cuchar: New. * include/c_std/cuchar: New. * include/precompiled/stdc++.h: Include . * testsuite/17_intro/headers/c++200x/stdc++.cc: Include . * testsuite/17_intro/headers/c++200x/stdc++_multiple_inclusion.cc: Include . 2015-09-04 Jonathan Wakely PR libstdc++/65473 * include/c/cassert: Include . * include/c/cerrno: Likewise. * include/c/cfloat: Likewise. * include/c/ciso646: Likewise. * include/c/climits: Likewise. * include/c_global/cassert: Likewise. * include/c_global/cerrno: Likewise. * include/c_global/cfloat: Likewise. * include/c_global/ciso646: Likewise. * include/c_global/climits: Likewise. * include/c_std/cassert: Likewise. * include/c_std/cerrno: Likewise. * include/c_std/cfloat: Likewise. * include/c_std/ciso646: Likewise. * include/c_std/climits: Likewise. 2015-09-03 Jonathan Wakely * include/bits/shared_ptr_base.h: Add required header. * include/std/condition_variable: Likewise. * include/std/mutex: Remove unused header. * include/std/shared_mutex: Remove redundant header. (shared_mutex::shared_mutex()): Replace throw with __throw_bad_alloc. PR libstdc++/66902 * src/c++11/debug.cc (_S_debug_messages): Make array const. PR libstdc++/66998 * include/experimental/functional (_Not_fn): Add exception specifications and non-deduced return types. (not_fn): Add exception specification and wrap pointer-to-member. * testsuite/experimental/functional/not_fn.cc: Test in SFINAE context and test pointer-to-member. PR libstdc++/62039 * include/bits/stl_iterator_base_funcs.h (next, prev): Add concept checks. * testsuite/24_iterators/operations/prev_neg.cc: New. * testsuite/24_iterators/operations/next_neg.cc: New. 2015-09-03 Sebastian Huber * testsuite/18_support/pthread_guard.cc: Add *-*-rtems* target selector to all lines which contain a *-*-cygwin target selector. * testsuite/20_util/shared_ptr/atomic/3.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/pthread33394.cc: Likewise. * testsuite/21_strings/basic_string/pthread4.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/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/lwg2021.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/60497.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/3.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/mutex/unlock/2.cc: Likewise. * testsuite/30_threads/packaged_task/49668.cc: Likewise. * testsuite/30_threads/packaged_task/60564.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/at_thread_exit.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/60966.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/at_thread_exit.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_mutex/unlock/2.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/recursive_timed_mutex/unlock/2.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/shared_lock/cons/1.cc: Likewise. * testsuite/30_threads/shared_lock/cons/2.cc: Likewise. * testsuite/30_threads/shared_lock/cons/3.cc: Likewise. * testsuite/30_threads/shared_lock/cons/4.cc: Likewise. * testsuite/30_threads/shared_lock/cons/5.cc: Likewise. * testsuite/30_threads/shared_lock/cons/6.cc: Likewise. * testsuite/30_threads/shared_lock/locking/1.cc: Likewise. * testsuite/30_threads/shared_lock/locking/2.cc: Likewise. * testsuite/30_threads/shared_lock/locking/3.cc: Likewise. * testsuite/30_threads/shared_lock/locking/4.cc: Likewise. * testsuite/30_threads/shared_lock/modifiers/1.cc: Likewise. * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise. * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise. * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise. * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise. * testsuite/30_threads/shared_timed_mutex/cons/1.cc: Likewise. * testsuite/30_threads/shared_timed_mutex/try_lock/1.cc: Likewise. * testsuite/30_threads/shared_timed_mutex/try_lock/2.cc: Likewise. * testsuite/30_threads/shared_timed_mutex/try_lock/3.cc: Likewise. * testsuite/30_threads/shared_timed_mutex/unlock/1.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/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/try_lock_until/57641.cc: Likewise. * testsuite/30_threads/timed_mutex/unlock/1.cc: Likewise. * testsuite/30_threads/timed_mutex/unlock/2.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/ext/rope/pthread7-rope.cc: 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. 2015-09-02 Dmitry Vyukov * include/bits/basic_string.h: Fix data races on _M_refcount. 2015-09-02 Sebastian Huber PR libstdc++/67408 * include/std/mutex (__timed_mutex_impl::_M_try_lock_until): Use _Derived::_M_timedlock(). (timed_mutex): Add _M_timedlock() and make base class a friend. (recursive_timed_mutex): Likewise. 2015-08-28 Tim Shen PR libstdc++/67362 * include/bits/regex_scanner.tcc (_Scanner<>::_M_scan_normal): Always returns ordinary char token if the char isn't considered a special char. * testsuite/28_regex/regression.cc: New test file for collecting regression testcases from, typically, bugzilla. 2015-08-27 Jonathan Wakely PR libstdc++/67374 * include/bits/range_access.h (valarray, begin, end): Declare. * testsuite/26_numerics/valarray/range_access.cc: Test const overloads. * testsuite/26_numerics/valarray/range_access2.cc: New. 2015-08-27 John Marino * acinclude.m4 (*-*-dragonfly*): Change 7 locale support files from generic to new DragonFly versions. * configure: Regenerate. * config/locale/dragonfly/c_locale.cc: Improve locale support. * config/locale/dragonfly/ctype_members.cc: Likewise. * config/os/bsd/dragonfly/ctype_configure_char.cc: Likewise. * config/os/bsd/dragonfly/os_defines.h: Define _GLIBCXX_USE_C99. * config/locale/dragonfly/c_locale.h: New. * config/locale/dragonfly/codecvt_members.cc: New. * config/locale/dragonfly/collate_members.cc: New. * config/locale/dragonfly/monetary_members.cc: New. * config/locale/dragonfly/numeric_members.cc: New. * config/locale/dragonfly/time_members.cc: New. * config/locale/dragonfly/time_members.h: New. 2015-08-27 Jonathan Wakely * configure: Regenerate. 2015-08-26 Edward Smith-Rowland <3dw4rd@verizon.net> Jonathan Wakely PR libstdc++/64351 PR libstdc++/63176 * include/bits/random.tcc (generate_canonical): Loop until we get a result less than one. * testsuite/26_numerics/random/uniform_real_distribution/operators/ 64351.cc: New. 2015-08-26 Jonathan Wakely * include/bits/shared_ptr.h (__enable_shared_from_this_helper): Use nullptr. * include/bits/shared_ptr_base.h (weak_ptr::_M_assign): Don't assign if ownership is already shared with a shared_ptr object. (__enable_shared_from_this_helper): Use nullptr. * testsuite/20_util/enable_shared_from_this/members/const.cc: New. * testsuite/20_util/enable_shared_from_this/members/reinit.cc: New. * testsuite/20_util/enable_shared_from_this/requirements/ explicit_instantiation.cc: Instantiate with const and incomplete types. * include/debug/map.h (map::try_emplace, map::insert_or_assign): Define. * include/debug/unordered_map (unordered_map::try_emplace, unordered_map::insert_or_assign): Define. PR libstdc++/66902 * src/c++11/debug.cc (_S_debug_messages): Give internal linkage. 2015-08-24 François Dumont PR libstdc++/60519 * include/debug/formatter.h (_Debug_msg_id::__msg_irreflexive_ordering): New enum entry. * include/debug/functions.h (_Irreflexive_checker): New. (__is_irreflexive, __is_irreflexive_pred): New. * include/debug/macros.h (__glibcxx_check_irreflexive, __glibcxx_check_irreflexive_pred): New macros. (__glibcxx_check_irreflexive2, __glibcxx_check_irreflexive_pred2): New macros limited to post-C++11 mode. * include/debug/debug.h (__glibcxx_requires_irreflexive, __glibcxx_requires_irreflexive_pred): New macros, use latter. (__glibcxx_requires_irreflexive2, __glibcxx_requires_irreflexive_pred2): Likewise. * include/bits/stl_algo.h (partial_sort_copy): Add irreflexive debug check. (partial_sort_copy): Likewise. (lower_bound): Likewise. (upper_bound): Likewise. (equal_range): Likewise. (binary_search): Likewise. (inplace_merge): Likewise. (includes): Likewise. (next_permutation): Likewise. (prev_permutation): Likewise. (is_sorted_until): Likewise. (minmax_element): Likewise. (partial_sort): Likewise. (nth_element): Likewise. (sort): Likewise. (merge): Likewise. (stable_sort): Likewise. (set_union): Likewise. (set_intersection): Likewise. (set_difference): Likewise. (set_symmetric_difference): Likewise. (min_element): Likewise. (max_element): Likewise. * include/bits/stl_algobase.h (lower_bound): Likewise. (lexicographical_compare): Likewise. * include/bits/stl_heap.h (push_heap): Likewise. (pop_heap): Likewise. (make_heap): Likewise. (sort_heap): Likewise. (is_heap_until): Likewise. * testsuite/25_algorithms/lexicographical_compare/debug/ irreflexive_neg.cc: New. * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: New. * testsuite/25_algorithms/partial_sort_copy/debug/irreflexive_neg.cc: New. 2015-08-24 Jonathan Wakely PR libstdc++/65049 * include/bits/char_traits.h (char_traits::compare, char_traits::find, char_traits::move, char_traits::copy, char_traits::assign): Check for zero length. (char_traits::compare, char_traits::find, char_traits::move, char_traits::copy, char_traits::assign): Likewise. (char_traits::move, char_traits::copy): Likewise. (char_traits::move, char_traits::copy): Likewise. * include/ext/pod_char_traits.h (char_traits>::move, char_traits>::copy): Likewise. * testsuite/21_strings/char_traits/requirements/char/65049.cc: New. * testsuite/21_strings/char_traits/requirements/char16_t/65049.cc: New. * testsuite/21_strings/char_traits/requirements/char32_t/65049.cc: New. * testsuite/21_strings/char_traits/requirements/wchar_t/65049.cc: New. PR libstdc++/67309 * include/bits/random.tcc (poisson_distribution::param_type::_M_initialize): Use max. (binomial_distribution::param_type::_M_initialize): Likewise. * testsuite/17_intro/headers/c++200x/67309.cc: New. * testsuite/17_intro/headers/c++200x/all_attributes.cc: Remove redundant header. 2015-08-20 Jonathan Wakely PR libstdc++/67294 * testsuite/30_threads/recursive_timed_mutex/unlock/2.cc: Do not run on Darwin. * testsuite/30_threads/timed_mutex/unlock/2.cc: Likewise. * include/experimental/any (__any_caster): Define at namespace scope so the name is visible to name lookup. * testsuite/experimental/any/misc/any_cast_neg.cc: Adjust dg-error. * python/Makefile.am: Ensure gdb.py is installed for libstdc++ not libstdc++fs. * python/Makefile.in: Regenerate. 2015-08-19 Paolo Carlini * include/c_global/cmath: Fix typo in comment. 2015-08-19 Paolo Carlini * include/c_global/cmath: Revert fix for libstdc++/58625, no longer necessary (__builtin_signbit is now type-generic). 2015-08-18 Jonathan Wakely PR c++/67216 * testsuite/tr1/2_general_utilities/shared_ptr/observers/bool_conv.cc: Fix use of safe-bool idiom that isn't valid in C++11. * include/bits/ptr_traits.h: Include for addressof. PR libstdc++/67066 * doc/xml/manual/configure.xml (manual.intro.setup.configure): Add caveats for --enable-concept-checks. Improve link text. * doc/xml/manual/diagnostics.xml (std.diagnostics.concept_checking): Clarify caveats. * doc/html/*: Regenerate. * include/bits/stl_deque.h (deque): Only use concept checks in C++03. * include/bits/stl_stack.h (stack): Likewise. * include/bits/stl_vector.h (vector): Likewise. 2015-08-14 Jonathan Wakely * include/experimental/any (any::operator=(const any&)): Move check for self-assignment. (any::operator=(any&&)): Add check for self-assignment. (any::operator=(_ValueType&&)): Constrain template argument. (any::swap(any&)): Add check for self-swap. * testsuite/experimental/any/assign/self.cc: Test move and swap. * testsuite/experimental/any/misc/any_cast_neg.cc: Update dg-error. 2015-08-14 Jonathan Wakely * include/experimental/array: Add feature-test macro. * testsuite/experimental/array/neg.cc: Update dg-error. 2015-08-13 Ville Voutilainen * testsuite/experimental/array/neg.s: Remove. * testsuite/experimental/array/neg.ii.gz: Remove. 2015-08-13 Ville Voutilainen Implement std::experimental::fundamentals_v2::make_array and std::experimental::fundamentals_v2::to_array. * include/Makefile.am: Add array. * include/Makefile.in: Add array. * include/experimental/array: New. * testsuite/experimental/array/make_array.cc: Likewise. * testsuite/experimental/array/neg.cc: Likewise. * doc/html/manual/status.html: Mark make_array as Y. * doc/xml/manual/status_cxx2017.xml: Likewise. 2015-08-13 Jonathan Wakely * include/bits/alloc_traits.h: Add feature-test macro. * include/bits/allocator.h: Likewise. * include/bits/range_access.h: Likewise. * include/bits/stl_map.h: Likewise. * include/bits/unordered_map.h: Likewise. 2015-08-13 Jonathan Wakely * testsuite/30_threads/mutex/unlock/2.cc: New. * testsuite/30_threads/recursive_mutex/unlock/2.cc: New. * testsuite/30_threads/recursive_timed_mutex/unlock/2.cc: New. * testsuite/30_threads/shared_mutex/unlock/1.cc: New. * testsuite/30_threads/shared_timed_mutex/unlock/1.cc: New. * testsuite/30_threads/timed_mutex/unlock/2.cc: New. 2015-08-13 Eelis van der Weegen * include/std/shared_mutex (shared_mutex::unlock()): Fix typo. 2015-08-12 Caroline Tice PR 66521, Contributed by Eric Gallager * acinclude.m4 (VTV_CXXLINKFLAGS): Make this variable OS-specific, and fix the rpath flag to work properly for darwin. * configure: Regenerated. 2015-08-12 Jonathan Wakely * doc/xml/manual/appendix_contributing.xml: Update patch email policy. * doc/xml/manual/status_cxx2017.xml: Update status table. * doc/html/manual/*: Regenerate. 2015-08-09 Ville Voutilainen Implement N4279, Improved insertion interface for unique-key maps. * include/bits/stl_map.h (try_emplace, insert_or_assign): New. * include/bits/stl_tree.h (_M_get_insert_unique_pos, _M_get_insert_equal_pos, _M_get_insert_hint_unique_pos, _M_get_insert_hint_equal_pos): Make public. * include/bits/unordered_map.h (try_emplace, insert_or_assign): New. * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc: Likewise. * testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise. * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc: Likewise. * testsuite/23_containers/unordered_map/modifiers/try_emplace.cc: Likewise. 2015-08-08 Ville Voutilainen Implement N4089 Safe conversions in unique_ptr (LWG 2118) and N4366 LWG 2228: Missing SFINAE rule in unique_ptr templated assignment * include/bits/unique_ptr.h (__remove_cv, __is_derived_Tp): Remove. (default_delete::default_delete(const default_delete<_Up[]>)): Constrain with array convertibility. (default_delete::operator(_Up*)): Turn into a template, constrain with array convertibility. (__safe_conversion_up): New, single object version. (unique_ptr(unique_ptr<_Up, _Ep>&&)): Constrain with deleter convertibility. (unique_ptr::operator=(unique_ptr<_Up, _Ep>&&)): Likewise, and add is_assignable as a constraint. (__safe_conversion_up): Array version, renamed from __safe_conversion, updated to implement N4089. (__safe_conversion_raw): New. (unique_ptr(_Up)): Turn into a template, constrain with array convertibility. (unique_ptr(_Up, typename conditional::value, deleter_type, const deleter_type&>::type)): Likewise. (unique_ptr(_Up, typename remove_reference::type&&)): Likewise. (unique_ptr(unique_ptr<_Up, _Ep>&&)): Likewise. (operator=(unique_ptr<_Up, _Ep>&&)): Likewise, and add is_assignable as a constraint (array version). (reset(_Up)): Turn into a template, constrain with array convertibility. (reset(nullptr_t)): New. * testsuite/20_util/default_delete/48631_neg.cc: Adjust. * testsuite/20_util/unique_ptr/assign/48635.cc: Likewise. * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Likewise. * testsuite/20_util/unique_ptr/assign/cv_qual.cc: Likewise. * testsuite/20_util/unique_ptr/cons/cv_qual.cc: Likewise. * testsuite/20_util/unique_ptr/dr2228.cc: New. * testsuite/20_util/unique_ptr/modifiers/cv_qual.cc: Adjust. 2015-08-05 Nikolai Bozhenov * testsuite/20_util/enable_shared_from_this/cons/constexpr.cc: Remove redundant -save-temps option. * testsuite/20_util/shared_ptr/cons/constexpr.cc: Likewise. * testsuite/20_util/unique_ptr/cons/constexpr.cc: Likewise. * testsuite/20_util/weak_ptr/cons/constexpr.cc: Likewise. * testsuite/30_threads/future/cons/constexpr.cc: Likewise. * testsuite/30_threads/shared_future/cons/constexpr.cc: Likewise. 2015-08-03 Jonathan Wakely PR libstdc++/67078 * include/bits/range_access.h (size, empty, data): Fix _N bad name. 2015-07-30 Jonathan Wakely * testsuite/experimental/filesystem/operations/current_path.cc: Use canonical paths for comparisons. 2015-07-30 Tim Shen * include/bits/regex_automaton.h (_State_base, _State<>): Remove _TraitsT dependency from _State<>; Make matcher member into the union to reduce struct size. * include/bits/regex_automaton.tcc (_State_base<>::_M_print, _State_base<>::_M_dot, _StateSeq<>::_M_clone): Adjust to fit the interface. Factor out common parts in _M_clone as _State<>::_M_has_alt. * include/bits/regex_executor.h (_Executer<>::_M_lookahead): Only pass state id instead of the whole state. * include/bits/regex_executor.tcc (_Executer<>::_M_dfs, _Executer<>::_M_lookahead): Adjust to fit the interface. * include/std/regex: Include 2015-07-30 Jonathan Wakely * include/experimental/any (any::operator=(const any&)): Check for self-assignment. * testsuite/experimental/any/assign/self.cc: New. * testsuite/experimental/any/misc/any_cast_neg.cc: Adjust dg-error. 2015-07-29 Jonathan Wakely PR libstdc++/66829 * testsuite/lib/libstdc++.exp (v3-build_support): Compile testsuite_shared.cc with -std=gnu++98. 2015-07-29 Ville Voutilainen * include/bits/range_access.h: Change class to typename in every template. (size, empty, data): New functions from N4280. * testsuite/24_iterators/container_access.cc: New. PR libstdc++/60970 * include/bits/functional_hash.h (__hash_enum): New. (hash): Derive from __hash_enum. * testsuite/20_util/hash/60970.cc: New. 2015-07-29 Tim Shen PR libstdc++/67015 * include/bits/regex_compiler.h (_Compiler<>::_M_expression_term, _BracketMatcher<>::_M_add_collating_element): Change signature to make checking the and of bracket expression easier. * include/bits/regex_compiler.tcc (_Compiler<>::_M_expression_term): Treat '-' as a valid literal if it's at the end of bracket expression. * testsuite/28_regex/algorithms/regex_match/cstring_bracket_01.cc: New testcases. 2015-07-24 Jonathan Wakely * include/bits/atomic_futex.h [_GLIBCXX_HAVE_LINUX_FUTEX] (_M_load_and_test_until): Whitespace. (_M_load_and_test): Value-initialize the unused durations. (_M_load_when_equal): Add missing return value. 2015-07-24 Michael Haubenwallner * fragment.am (AM_CPPFLAGS): Add CPPFLAGS. * Makefile.in: Regenerate. * doc/Makefile.in: Regenerate. * include/Makefile.in: Regenerate. * libsupc++/Makefile.in: Regenerate. * po/Makefile.in: Regenerate. * python/Makefile.in: Regenerate. * src/Makefile.in: Regenerate. * src/c++11/Makefile.in: Regenerate. * src/c++98/Makefile.in: Regenerate. * src/filesystem/Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate. 2015-07-23 DJ Delorie * include/bits/functional_hash.h: Add specializations for __intN types. * include/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp (__gnu_pbds): Guard against values that might exceed size_t's precision. 2015-07-20 Jason Merrill * include/bits/c++config: Fix abi_tag in special modes. 2015-07-19 Jonathan Wakely * doc/xml/manual/status_cxx2017.xml: Fix URL for N4279. * doc/html/manual/status.html: Regenerate. 2015-07-17 Jonathan Wakely * doc/xml/manual/status_cxx2011.xml: Add caveats for native_handle. * doc/html/manual/status.html: Regenerate. 2015-07-16 François Dumont * include/bits/stl_algobase.h (__miter_base): Move... * include/bits/cpp_type_traits.h: ...here. * include/debug/functions.h (__foreign_iterator_aux): Use latter. * testsuite/23_containers/vector/debug/insert7_neg.cc: New. 2015-07-13 Jonathan Wakely PR libstdc++/66855 * src/c++11/codecvt.cc (__codecvt_utf8_utf16_base::do_in): Override endianness bit in mode. * testsuite/22_locale/codecvt/codecvt_utf8_utf16/66855.cc: New. * include/bits/c++config (_GLIBCXX_NOEXCEPT_IF): Define. * include/bits/forward_list.h (forward_list::swap): Make noexcept unconditional. * include/bits/hashtable.h (_Hashtable::swap): Do not use _S_nothrow_swap(). * include/bits/stl_bvector.h (vector::swap): Make noexcept unconditional. * include/bits/stl_deque.h (deque::swap): Likewise. (swap(deque&, deque&)): Use _GLIBCXX_NOEXCEPT_IF. * include/bits/stl_list.h (list::swap): Make noexcept unconditional. (swap(list&, list&)): Use _GLIBCXX_NOEXCEPT_IF. * include/bits/stl_map.h (map::swap, swap(map&, map&)): Use _GLIBCXX_NOEXCEPT_IF, do not depend on _S_nothrow_swap. * include/bits/stl_multimap.h (multimap::swap, swap(multimap&, multimap&)): Likewise. * include/bits/stl_multiset.h (multiset::swap, swap(multiset&, multiset&)): Likewise. * include/bits/stl_set.h (set::swap, swap(set&, set&)): Likewise. * include/bits/stl_tree.h (_Rb_tree::swap, swap(_Rb_tree&, _Rb_tree&)): Likewise. * include/bits/stl_vector.h (vector::swap): Make noexcept unconditional. (swap(vector&, vector&)): Use _GLIBCXX_NOEXCEPT_IF. * include/debug/deque (deque::swap, swap): Likewise. * include/debug/forward_list (swap): Add noexcept. * include/debug/list (list::swap, swap): Use _GLIBCXX_NOEXCEPT_IF. * include/debug/map.h (map::swap, swap): Likewise. * include/debug/multimap.h (multimap::swap, swap): Likewise. * include/debug/multiset.h (multiset::Swap, swap): Likewise. * include/debug/set.h (set::swap, swap): Likewise. * include/debug/unordered_map (unordered_map::swap, unordered_multimap::swap, swap): Likewise. * include/debug/unordered_set (unordered_set::swap, unordered_multiset::swap, swap): Likewise. * include/debug/vector (vector::swap, swap): Likewise. * include/ext/alloc_traits.h (__alloc_traits::_S_nothrow_swap()): Remove. * include/profile/deque (deque::swap, swap): Use _GLIBCXX_NOEXCEPT_IF. * include/profile/forward_list (swap): Add noexcept. * include/profile/list (list::swap, swap) : Use _GLIBCXX_NOEXCEPT_IF. * include/profile/map.h (map::swap, swap): Likewise. * include/profile/multimap.h (multimap::swap, swap): Likewise. * include/profile/multiset.h (multiset::swap, swap): Likewise. * include/profile/set.h (set::swap, swap): Likewise. * include/profile/unordered_map (swap): Likewise. * include/profile/unordered_set (swap): Likewise. * include/profile/vector (vector::swap, swap): Likewise. Remove overloads for swapping rvalues. * testsuite/23_containers/deque/allocator/noexcept.cc: Update tests for noexcept on swap. * testsuite/23_containers/forward_list/allocator/noexcept.cc: Likewise. * testsuite/23_containers/list/allocator/noexcept.cc: Likewise. * testsuite/23_containers/map/allocator/noexcept.cc: Likewise. * testsuite/23_containers/multimap/allocator/noexcept.cc: Likewise. * testsuite/23_containers/multiset/allocator/noexcept.cc: Likewise. * testsuite/23_containers/set/allocator/noexcept.cc: Likewise. * testsuite/23_containers/unordered_map/allocator/noexcept.cc: Likewise. * testsuite/23_containers/unordered_multimap/allocator/noexcept.cc: Likewise. * testsuite/23_containers/unordered_multiset/allocator/noexcept.cc: Likewise. * testsuite/23_containers/unordered_set/allocator/noexcept.cc: Likewise. * testsuite/23_containers/vector/allocator/noexcept.cc: Likewise. * testsuite/23_containers/vector/bool/allocator/noexcept.cc: Likewise. * testsuite/ext/profile/mutex_extensions_neg.cc: Adjust dg-error line number. 2015-07-13 John Marino * config/os/bsd/dragonfly/os_defines.h (_GLIBCXX_USE_C99_CHECK, _GLIBCXX_USE_C99_DYNAMIC, _GLIBCXX_USE_C99_LONG_LONG_CHECK, _GLIBCXX_USE_C99_LONG_LONG_DYNAMIC): Define. 2015-07-05 François Dumont * include/bits/hashtable.h (_Hashtable<>::__rehash_policy): Do not rehash container. * testsuite/23_containers/unordered_set/max_load_factor/robustness.cc: Adapt. 2015-07-03 Jonathan Wakely * doc/xml/manual/status_cxx2017.xml: Update status table. * doc/html/manual/*: Regenerate. 2015-07-03 Ville Voutilainen Implement std::experimental::fundamentals_v2::propagate_const. * include/Makefile.am: Add propagate_const. * include/Makefile.in: Regenerate. * include/experimental/propagate_const: New. * testsuite/experimental/propagate_const/assignment/copy.cc: Likewise. * testsuite/experimental/propagate_const/assignment/move.cc: Likewise. * testsuite/experimental/propagate_const/assignment/move_neg.cc: Likewise. * testsuite/experimental/propagate_const/cons/copy.cc: Likewise. * testsuite/experimental/propagate_const/cons/default.cc: Likewise. * testsuite/experimental/propagate_const/cons/move.cc: Likewise. * testsuite/experimental/propagate_const/cons/move_neg.cc: Likewise. * testsuite/experimental/propagate_const/hash/1.cc: Likewise. * testsuite/experimental/propagate_const/observers/1.cc: Likewise. * testsuite/experimental/propagate_const/relops/1.cc: Likewise. * testsuite/experimental/propagate_const/requirements1.cc: Likewise. * testsuite/experimental/propagate_const/requirements2.cc: Likewise. * testsuite/experimental/propagate_const/requirements3.cc: Likewise. * testsuite/experimental/propagate_const/requirements4.cc: Likewise. * testsuite/experimental/propagate_const/requirements5.cc: Likewise. * testsuite/experimental/propagate_const/swap/1.cc: Likewise. * testsuite/experimental/propagate_const/typedefs.cc: Likewise. 2015-07-02 Jonathan Wakely * acinclude.m4 (GLIBCXX_DEFAULT_ABI): Change valid arguments for --with-default-libstdcxx-abi * configure: Regenerate. * doc/xml/manual/configure.xml: Document valid arguments. 2015-07-02 Uros Bizjak * libsupc++/guard.cc (__test_and_acquire): Use __p after __atomic_load to avoid unused variable warning. (__set_and_release): Use __p after __atomic_store to avoid unused variable warning. 2015-07-01 Jonathan Wakely * include/bits/alloc_traits.h (__alloctr_rebind): Remove. (__allocator_traits_base): New base class. (__alloc_rebind): Reimplement in terms of detection idiom. (allocator_traits): Derive from __allocator_traits_base. Reimplement nested types in terms of detection idiom. Simplify SFINAE constraints on overloaded static member functions. * include/bits/hashtable.h (_Hashtable): Use __alloc_rebind instead of __alloctr_rebind. * testsuite/20_util/scoped_allocator/propagation.cc: Define rebind. * testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust dg-error line number. * include/bits/ptr_traits.h (__ptrtr_elt_type, __ptrtr_diff_type, __ptrtr_rebind, __ptrtr_not_void): Remove (__get_first_arg, __replace_first_arg, __make_not_void): Define new transformations. (__detected_or_): New detection trait. (pointer_traits): Use new traits. * testsuite/20_util/pointer_traits/pointer_to.cc: Add rebind member. * testsuite/20_util/pointer_traits/requirements/ explicit_instantiation.cc: Use valid arguments to pointer_traits. * doc/xml/manual/status_cxx2017.xml: Update status table. * include/experimental/type_traits (void_t, is_detected, is_detected_v, detected_t, detected_or, detected_or_t, is_detected_exact, is_detected_exact_v, is_detected_convertible, is_detected_convertible_v): Define. * include/std/type_traits (__detector, __detected_or, __detected_or_t, __detected_or_t_): Define. * testsuite/experimental/type_traits/detection.cc: New. 2015-06-30 Jonathan Wakely * doc/Makefile.am (stamp-pdf-doxygen): Grep for LaTeX errors in log. * doc/Makefile.in: Regenerate. * include/bits/stl_pair.h: Replace class keyword with typename. 2015-06-30 Ville Voutilainen Implement N4387, "Improving pair and tuple", and LWG 2367. * include/bits/stl_pair.h (_ConstructiblePair, _ImplicitlyConvertiblePair, _MoveConstructiblePair, _ImplicitlyMoveConvertiblePair): New. (pair()): Constrain it. (pair(const _T1&, const _T2&), pair(const pair<_U1, _U2>&), pair(_U1&&, const _T2&), pair(const _T1&, _U2&&), pair(_U1&&, _U2&&), pair(pair<_U1, _U2>&&)): Make conditionally explicit. * include/std/tuple (_TC, tuple::_TC2, tuple::TCC, tuple::TMC): New. (tuple()): Constrain it. (tuple(const _UElements&...), tuple(_UElements&&...), tuple(const tuple<_UElements...>&), tuple(tuple<_UElements...>&&), tuple(allocator_arg_t, const _Alloc&, const _UElements&...), tuple(allocator_arg_t, const _Alloc&, _UElements&&...), tuple(allocator_arg_t, const _Alloc&, const tuple<_UElements...>&), tuple(allocator_arg_t, const _Alloc&, tuple<_UElements...>&&), tuple(const pair<_U1, _U2>&), tuple(pair<_U1, _U2>&&), tuple(allocator_arg_t, const _Alloc&, const pair<_U1, _U2>&), tuple(allocator_arg_t, const _Alloc&, pair<_U1, _U2>&&)): Make conditionally explicit. * include/experimental/functional (__boyer_moore_array_base): Name array type explicitly instead of using an empty braced-init-list. * testsuite/20_util/pair/cons/explicit_construct.cc: New. * testsuite/20_util/pair/piecewise.cc: Use piecewise_construct. * testsuite/20_util/pair/requirements/dr2367.cc: New. * testsuite/20_util/tuple/cons/explicit_construct.cc: New. * testsuite/20_util/tuple/requirements/dr2367.cc: New. 2015-06-30 Jonathan Wakely * configure: Regenerate. 2015-06-29 François Dumont * include/bits/stl_iterator_base_types.h (_Iter_base): Limit definition to pre-C++11 mode. * include/debug/functions.h (__gnu_debug::__valid_range, __gnu_debug::__base): Move... * include/debug/safe_iterator.h (__gnu_debug::_Sequence_traits): New. (__gnu_debug::__get_distance_from_begin): New. (__gnu_debug::__get_distance_to_end): New. (__gnu_debug::_Safe_iterator<>::_M_valid_range): Expose iterator range distance information. Add optional check_dereferenceable parameter, default true. (__gnu_debug::_Distance_precision, __gnu_debug::__get_distance): Move default definition... (__gnu_debug::__get_distance): New overload for _Safe_iterator. (__gnu_debug::__unsafe): Likewise. * include/debug/helper_functions.h: ...here. New. (__gnu_debug::__unsafe): New helper function to remove safe iterator layer. * include/debug/stl_iterator.h: New. Include latter. * include/bits/stl_iterator.h: Include latter in debug mode. * include/debug/stl_iterator.tcc: Adapt. * include/debug/safe_local_iterator.h (__gnu_debug::__get_distance): Add overload for _Safe_local_iterator. (__gnu_debug::__unsafe): Likewise. * include/debug/safe_local_iterator.tcc: Adapt. * include/debug/macros.h (__glibcxx_check_valid_range2): New. (__glibcxx_check_insert_range): Add _Dist parameter. (__glibcxx_check_insert_range_after): Likewise. (__glibcxx_check_string, __glibcxx_check_string_len): Implement using _GLIBCXX_DEBUG_PEDASSERT. * include/debug/deque (deque<>::assign): Remove iterator debug layer when possible. (deque<>::insert): Likewise. * include/debug/forward_list (__glibcxx_check_valid_fl_range): New. (forward_list<>::splice_after): Use latter. (forward_list<>::assign): Remove iterator debug layer when possible. (forward_list<>::insert_after): Likewise. (__gnu_debug::_Sequence_traits<>): Partial specialization. * include/debug/list (list<>::assign): Remove iterator debug layer when possible. (list<>::insert): Likewise. [__gnu_debug::_Sequence_traits<>]: Partial specialization pre C++11 ABI. * include/debug/map.h (map<>::insert): Remove iterator debug layer when possible. * include/debug/multimap.h (multimap<>::insert): Likewise. * include/debug/set.h (set<>::insert): Likewise. * include/debug/multiset.h (multiset<>::insert): Likewise. * include/debug/string (basic_string<>::append, basic_string<>::assign, basic_string<>::insert, basic_string<>::replace): Likewise. * include/debug/unordered_map (unordered_map<>::insert, unordered_multimap<>::insert): Likewise. * include/debug/unordered_set (unordered_set<>::insert, unordered_multiset<>insert): Likewise. * include/debug/vector (vector<>::assign, vector<>::insert): Likewise. * include/Makefile.am: Add new debug headers. * include/Makefile.in: Regenerate. 2015-06-26 Jonathan Wakely * doc/xml/manual/intro.xml: Document LWG 2108 status. * include/bits/alloc_traits.h (allocator_traits::is_always_equal): Define. * include/bits/allocator.h (allocator::is_always_equal): Likewise. * include/bits/forward_list.h (forward_list::operator=(forward_list&&)): Use __bool_constant. (forward_list::swap(forward_list&)): Add noexcept. * include/bits/hashtable.h (_Hashtable::operator=(_Hashtable&&)): Likewise. (_Hashtable::swap(_Hashtable&)): Likewise. * include/bits/stl_deque.h (_Deque_base::_Deque_base(_Deque_base&&)): Use _Alloc_traits::is_always_equal. (deque::operator=(deque&&)): Likewise. (deque::_M_move_assign1(deque&&, false_type)): Add comment and use __bool_constant. (swap(deque&, deque&)): Add noexcept. * include/bits/stl_list.h (list::operator=(list&&)): Use __bool_constant. (swap(list&, list&)): Add noexcept. * include/bits/stl_map.h (map::swap(map&)): Include _Compare in noexcept. (swap(map&, map&)): Add noexcept. * include/bits/stl_multimap.h (multimap::swap(multimap&)): Include _Compare in noexcept. (swap(multimap&, multimap&)): Add noexcept. * include/bits/stl_multiset.h (multiset::swap(multiset&)): Include _Compare in noexcept. (swap(multiset&, multiset&)): Add noexcept. * include/bits/stl_set.h (set::swap(set&)): Include _Compare in noexcept. (swap(set&, set&)): Add noexcept. * include/bits/stl_tree.h (_Rb_tree::operator=(_Rb_tree&&)): Include _Compare in noexcept. (_Rb_tree::_Rb_tree(_Rb_tree&&, _Node_alloc_type&&)): Use is_always_equal. * include/bits/stl_vector.h (vector::operator=(vector&&)): Use __bool_constant. (swap(vector&, vector&)): Add noexcept. * include/bits/unordered_map.h (swap(unordered_map&, unordered_map&), swap(unordered_multimap& unordered_multimap&)): Add noexcept. * include/bits/unordered_set.h (swap(unordered_set&, unordered_set&), swap(unordered_multiset& unordered_multiset&)): Add noexcept. * include/ext/alloc_traits.h (__allocator_always_compares_equal): Remove. (__alloc_traits::_S_always_equal()): Use is_always_equal instead of __allocator_always_compares_equal. * include/ext/array_allocator.h (array_allocator::is_always_equal): Define. * include/std/scoped_allocator (__any_of, __propagate_on_copy, __propagate_on_move, __propagate_on_swap): Remove. (scoped_allocator_adaptor::propagate_on_container_copy_assignment, scoped_allocator_adaptor::propagate_on_container_move_assignment, scoped_allocator_adaptor::propagate_on_container_swap): Define with __and_ instead of __any_of. (scoped_allocator_adaptor::is_always_equal): Define. * testsuite/20_util/allocator_traits/members/is_always_equal.cc: New. * testsuite/20_util/scoped_allocator/propagation.cc: Make traits derive from true_type or false_type. * testsuite/23_containers/deque/allocator/move_assign-2.cc: Add is_always_equal member and remove the trait specialization. * testsuite/23_containers/vector/52591.cc: Likewise. * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc: Adjust dg-error line number. * testsuite/23_containers/deque/requirements/dr438/ constructor_1_neg.cc: Likewise. * testsuite/23_containers/deque/requirements/dr438/ constructor_2_neg.cc: Likewise. * testsuite/23_containers/deque/requirements/dr438/insert_neg.cc: Likewise. * testsuite/23_containers/list/requirements/dr438/assign_neg.cc: Likewise. * testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc: Likewise. * testsuite/23_containers/list/requirements/dr438/insert_neg.cc: Likewise. * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc: Likewise. * testsuite/23_containers/vector/requirements/dr438/ constructor_1_neg.cc: Likewise. * testsuite/23_containers/vector/requirements/dr438/ constructor_2_neg.cc: Likewise. * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc: Likewise. * include/bits/stl_bvector.h (vector::vector()): Add noexcept. * include/bits/stl_map.h (map::map()): Likewise. * include/bits/stl_multimap.h (multimap::multimap()): Likewise. * include/bits/stl_multiset.h (multiset::multiset()): Likewise. * include/bits/stl_set.h (set::set()): Likewise. 2015-06-25 Jonathan Wakely * include/bits/locale_conv.h (__do_str_codecvt): Set __count. 2015-06-24 François Dumont * include/bits/basic_string.h (basic_string<>::front()): Add !empty debug check. (basic_string<>::back()): Likewise. (basic_string<>::pop_back()): Likewise. 2015-06-24 Paolo Carlini * testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust dg-error line numbers. * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc: Likewise. 2015-06-23 François Dumont * include/debug/array: Include . Add version namespace when specializing tuple interface to array. Add specialization for __is_tuple_like_impl. * include/profile/array: Likewise. * include/std/array: Include . Add specialization for __is_tuple_like_impl. * include/std/tuple (__is_tuple_like_impl<>, __is_tuple_like_impl): Move... * include/std/utility: ... here. Include . * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc: Adjust dg-error line number. * testsuite/23_containers/array/tuple_interface/ tuple_element_debug_neg.cc: Likewise. 2015-06-22 Jonathan Wakely * testsuite/26_numerics/complex/value_operations/1.cc: Use non-negative rho argument. * include/debug/list (__gnu_debug::list): Use allocator-aware _Safe_container base. * include/debug/string (__gnu_debug::basic_string): Use allocator-aware _Safe_container base for cxx11 ABI. * include/bits/locale_conv.h (__do_str_codecvt): Handle empty range. (wstring_convert): Move into __cxx11 namespace. (wbuffer_convert(streambuf*, _Codecvt*, state_type)): Fix exception message. PR libstdc++/64657 * include/bits/stl_uninitialized.h (__uninitialized_copy::__uninit_copy): Cast expression to void. 2015-06-17 Jonathan Wakely PR libstdc++/55409 * include/bits/list.tcc (_List_base::_M_clear()): Use allocator traits. (list::list(const list&)): Use allocator propagation trait. Use _M_assign_dispatch to copy elements. * include/bits/stl_list.h (_List_node): Use __aligned_membuf in C++11. (_List_node::_M_valptr()): Add accessor for stored value. (_List_iterator, _List_const_iterator, _List_base): Use _M_valptr(). (_List_base, list): Use allocator traits. (_List_base::_M_get_Tp_allocator, _List_base::get_allocator): Remove. (_List_base::_M_move_nodes): New function. (_List_base(_List_base&&)): Use _M_move_nodes. (_List_base(_List_base&&, _Node_alloc_type&&)): New constructor. (list::_M_create_node, list::_M_erase, list::max_size): Use allocator traits. (list(size_type)): Add allocator parameter. (list(const list&)): Use allocator propagation trait. (list(const list&, const allocator_type&)): New constructor. (list(list&&, const allocator_type&)): Likewise. (list::operator=(list&&), list::swap(list&)): Use allocator propagation traits. (list::_M_move_assign): New functions. * include/debug/list: Add allocator-extended constructors. * include/profile/list: Likewise. * python/libstdcxx/v6/printers.py (get_value_from_list_node): New function to get value from _List_node. (StdListPrinter): Use get_value_from_list_node. * testsuite/23_containers/list/allocator/copy.cc: New. * testsuite/23_containers/list/allocator/copy_assign.cc: New. * testsuite/23_containers/list/allocator/minimal.cc: New. * testsuite/23_containers/list/allocator/move.cc: New. * testsuite/23_containers/list/allocator/move_assign.cc: New. * testsuite/23_containers/list/allocator/noexcept.cc: New. * testsuite/23_containers/list/allocator/swap.cc: New. * testsuite/23_containers/list/requirements/dr438/assign_neg.cc: Adjust dg-prune-output line number. * testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc: Likewise. * testsuite/23_containers/list/requirements/dr438/insert_neg.cc: Likewise. * include/bits/forward_list.h (_Fwd_list_base(const _Node_alloc_type&)): Change parameter to rvalue-reference. (_Fwd_list_base(_Fwd_list_base&&, const _Node_alloc_type&)): Likewise. (forward_list(const _Alloc&)): Split default constructor out to separate function. (forward_list(forward_list&&, const _Alloc&)): Move elements if base class didn't do so. (forward_list::_M_move_assign(forward_list&&, true_type)): Replace swap call with two assignments. * include/bits/forward_list.tcc (_Fwd_list_base(_Fwd_list_base&&, const _Node_alloc_type&)): Don't move elements when allocators are not equal. * include/debug/forward_list (forward_list(const allocator_type&)): Split default constructor out to separate function. * include/profile/forward_list (forward_list(const _Alloc&)): Likewise. * include/bits/forward_list.h (forward_list::_M_get_Node_allocator): Remove unnecessary uses of operator& and static_cast. * include/bits/forward_list.tcc (forward_list::operator=(const forward_list&)): Use __addressof instead of operator&. (forward_list::remove(const _Tp&), forward_list::remove(_Pred)): Remove invalid static_casts. * include/debug/forward_list: Use __addressof instead of operator&. * testsuite/23_containers/forward_list/modifiers/addressof.cc: New. * include/ext/alloc_traits.h (__alloc_traits::_S_nothrow_swap()): Use __is_nothrow_swappable. 2015-06-16 Jonathan Wakely * include/bits/allocated_ptr.h (__allocated_ptr): Use __addressof. * include/bits/list.tcc (list::operator=(const list&), list::merge): Use __addressof instead of operator&. (list::sort): Use array-to-pointer decay instead of operator&. * include/bits/stl_list.h (list::splice): Use __addressof instead of operator&. * include/debug/formatter.h (_Error_formatter::_Parameter::_Parameter): Likewise. * include/debug/functions.h (__check_singular): Likewise. * include/debug/list (list::splice, list::merge): Likewise. * testsuite/23_containers/list/modifiers/addressof.cc: New. PR libstdc++/65393 * src/c++11/thread.cc (thread::_M_make_thread): Replace shared_ptr copies with moves. 2015-06-12 Jonathan Wakely * include/precompiled/stdc++.h: Include and . PR libstdc++/66464 * src/c++11/codecvt.cc (codecvt_utf16_base::do_max_length): Return 4 not 3. 2015-06-12 Ramana Radhakrishnan PR c++/66192 PR target/66200 * config/cpu/alpha/atomic_word.h: Remove. * config/cpu/ia64/atomic_word.h: Remove. * config/cpu/powerpc/atomic_word.h: Remove. * config/os/aix/atomic_word.h: Remove. * configure.host (atomic_word_dir) [ia64, aix*, powerpc, alpha]: Use generic definition. 2015-06-12 Ramana Radhakrishnan PR target/66200 PR c++/66192 * * config/cpu/generic/atomic_word.h (_GLIBCXX_READ_MEM_BARRIER): Define (_GLIBCXX_WRITE_MEM_BARRIER): Likewise * include/bits/shared_ptr_base.h: Use ACQ_REL barrier. * include/ext/atomicity.h: Likewise. * include/tr1/shared_ptr.h: Likewise. * libsupc++/guard.cc (__test_and_acquire): Rewrite with atomics. Update comment. (__set_and_release): Likewise. * testsuite/20_util/shared_ptr/cons/43820_neg.cc (test01): Adjust for line numbers. * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise. * testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc: Likewise. 2015-06-12 Jonathan Wakely * include/std/tuple (__is_tuple_like_impl): Disambiguate array in debug and profile modes. * testsuite/25_algorithms/headers/algorithm/synopsis.cc: Adjust tests for swap in C++11 and later. 2015-06-09 Jonathan Wakely PR libstdc++/66030 * config/abi/pre/gnu.ver: Export codecvt_byname and codecvt symbols for mingw32. 2015-06-08 Jonathan Wakely PR libstdc++/66441 * testsuite/22_locale/conversions/string/66441.cc: New. * include/bits/locale_conv.h (__do_str_codecvt): Reserve enough space in the output string for BOM and complete result. PR libstdc++/66417 * src/c++11/codecvt.cc (write_utf16_code_point): Use adjust_byte_order for single UTF-16 units. * testsuite/22_locale/codecvt/codecvt_utf16/66417.cc: New. 2015-06-07 François Dumont * include/bits/stl_tree.h (_Rb_tree<>::__is_transparent<>): Move to outer scope and rename to ... (std::__hash_is_transparent<>): ... this. * include/debug/stl_map.h (map::find<>, map::lower_bound<>, map::upper_bound<>, map::equal_range<>): New member function templates to perform heterogeneous lookup. * include/debug/stl_multimap.h (multimap::find<>, multimap::lower_bound<>, multimap::upper_bound<>, multimap::equal_range<>): Likewise. * include/debug/stl_multiset.h (multiset::find<>, multiset::lower_bound<>, multiset::upper_bound<>, multiset::equal_range<>): Likewise. * include/debug/stl_set.h (set::find<>, set::lower_bound<>, set::upper_bound<>, set::equal_range<>): Likewise. * include/profile/stl_map.h (map::find<>, map::count<>, map::lower_bound<>, map::upper_bound<>, map::equal_range<>): Likewise. * include/profile/stl_multimap.h (multimap::find<>, multimap::count<>, multimap::lower_bound<>, multimap::upper_bound<>, multimap::equal_range<>): Likewise. * include/profile/stl_multiset.h (multiset::find<>, multiset::count<>, multiset::lower_bound<>, multiset::upper_bound<>, multiset::equal_range<>): Likewise. * include/profile/stl_set.h (set::find<>, set::count<>, set::lower_bound<>, set::upper_bound<>, set::equal_range<>): Likewise. * testsuite/23_containers/map/operations/1.cc: Check const variants. * testsuite/23_containers/multimap/operations/1.cc: Likewise. * testsuite/23_containers/multiset/operations/1.cc: Likewise. * testsuite/23_containers/set/operations/1.cc: Likewise. 2015-06-05 Jonathan Wakely * doc/xml/manual/status_cxx2017.xml: Update status tables. * doc/html/manual/*: Regenerate. * include/std/type_traits (bool_constant): Define. * testsuite/20_util/bool_constant/requirements.cc: New. * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error. * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Likewise. * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Likewise. * include/std/shared_mutex (__shared_mutex_pthread, __shared_mutex_cv): New helper types implementing the shared mutex requirements. (shared_mutex): New type for C++17. (shared_timed_mutex): Derive from one of the new helper types. * 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. 2015-06-05 Ville Voutilainen Add __is_nothrow_swappable and take it into use. * include/bits/algorithmfwd.h (swap): Only declare for C++98 mode. * include/bits/move.h (swap): Add constraints in C++11 and later. * include/bits/stl_pair.h (swap): Use __is_nothrow_swappable for the free swap function for pair. * include/bits/stl_queue.h (swap): Use __is_nothrow_swappable for the free swap functions for queue and priority_queue. * include/bits/stl_stack.h (swap): Use __is_nothrow_swappable for the free swap function for stack. * include/debug/array (swap): Use __is_nothrow_swappable for the free swap function for array. * include/profile/array (swap): Likewise. * include/std/array (swap): Likewise. * include/std/tuple (_Tuple_impl::_M_swap): Use __is_nothrow_swappable. * include/std/type_traits (__is_swappable_impl::__is_swappable, __is_nothrow_swappable_impl, __is_nothrow_swappable): New. * testsuite/20_util/is_nothrow_swappable/requirements/ explicit_instantiation.cc: New. * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc: New. * testsuite/20_util/is_nothrow_swappable/value.cc: New. 2015-06-03 François Dumont fdumont@gcc.gnu.org> * testsuite/23_containers/list/61347.cc: Add dg-require-normal-mode. 2015-06-02 Jonathan Wakely * doc/xml/manual/abi.xml: Document versioning for 5.1.0 release. * doc/html/manual/*: Regenerate. * doc/html/ext/lwg-active.html: Update to R93. * doc/html/ext/lwg-closed.html: Likewise. * doc/html/ext/lwg-defects.html: Likewise. * doc/html/manual/*: Regenerate. * doc/xml/manual/intro.xml: Document status of several DRs. 2015-06-02 Renlin Li * testsuite/27_io/fpos/14775.cc: Add _GLIBCXX_HAVE_LIMIT_FSIZE check. 2015-06-01 Jonathan Wakely * testsuite/lib/libstdc++.exp (libstdc++_init): Unset LANGUAGE environment variable. 2015-05-31 Jonathan Wakely PR libstdc++/66354 * include/bits/stl_algobase.h (__fill_a): Check length before calling memset. 2015-05-30 Jonathan Wakely * include/bits/stl_algobase.h (__equal::equal): Check length instead of checking for null pointers. (__lexicographical_compare::__lc): Only check shorter length. 2015-05-29 François Dumont fdumont@gcc.gnu.org> * include/debug/debug.h (_GLIBCXX_DEBUG_ASSERT, _GLIBCXX_DEBUG_PEDASSERT, _GLIBCXX_DEBUG_ONLY): Move definition... * include/debug/assertions.h: ...here, new. * include/debug/formatter.h (_Error_formatter::_Is_iterator_value_type): New. (_Error_formatter::_Is_instance): New. (_Error_formatter::_Parameter): Make public and not friend anymore. (_Error_formatter::_Parameter::__instance): New _M_kind enum entry. (_Error_formatter::_Parameter::__iterator_value_type): New _M_kind enum entry. (_Error_formatter::_Parameter::_Type): New. (_Error_formatter::_Parameter::_Instance): New, inherit from latter. (union _Error_formatter::_Parameter::_M_variant): Reorganize. (_Parameter(_Iterator const&, const char*, _Is_iterator)): Make all overloads take iterator through a const reference. (_Parameter(const _Iterator&, const char*, _Is_iterator_value_type)): New. (_Parameter(const _Type&, const char*, _Is_instance)): New. (_Error_formatter::_M_print_type): Delete. (_Error_formatter::_M_iterator_value_type): New. (_Error_formatter::_M_instance): New. * include/Makefile.am: Add new above debug file. * include/Makefile.in: Regenerate. * include/debug/functions.h (__check_dereferenceable(const _Safe_iterator<>&), __valid_range(const _Safe_iterator<>&), __is_safe_random_iterator<_Safe_iterator<>>): Move... * include/debug/safe_iterator.h: ... here. Replace debug.h include with assertions.h. (__check_singular_aux): Move... * include/debug/safe_base.h: ... here. * include/debug/functions.h (__check_dereferenceable(const _Safe_local_iterator<>&), __valid_range(const _Safe_local_iterator<>&): Move... * include/debug/safe_local_iterator.h: ...here. * include/debug/safe_sequence.h: Replace debug.h with assertions.h. Remove _Safe_iterator declaration. * include/debug/safe_unordered_container.h: Replace debug.h with assertions.h. * include/debug/array: Replace safe_sequence.h include with formatter.h and macros.h. * include/debug/deque: Include functions.tcc. * include/debug/forward_list: Likewise. * include/debug/list: Likewise. * include/debug/string: Likewise. * include/debug/vector: Likewise. * include/bits/unique_ptr.h: Replace debug.h include with new assertions.h. * include/bits/stl_iterator_base_funcs.h: Likewise. * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc: Adjust dg-error line number. * testsuite/23_containers/array/tuple_interface/ tuple_element_debug_neg.cc: Likewise. * src/c++11/debug.cc: Adapt. 2015-05-29 Jonathan Wakely * doc/xml/manual/status_cxx2017.xml: Fix duplicate ID attribute. * doc/html/manual/*: Regenerate. * include/std/future (__async_result_of): New alias template. (async): Use __async_result_of to pass decayed types to result_of. * testsuite/30_threads/async/lwg2021.cc: New. * doc/xml/manual/intro.xml: Document LWG 2021 status. PR libstdc++/66327 * include/bits/stl_algobase.h (__equal::equal): Do not call memcmp with null pointers. (__lexicographical_compare::__lc): Do not call memcmp for empty ranges. 2015-05-28 Jonathan Wakely PR libstdc++/65352 * include/profile/array (array::data): Use _S_ptr. * include/debug/array (array::data): Likewise. PR libstdc++/65352 * include/std/array (__array_traits::_S_ptr): New function. (array::data): Use _S_ptr to avoid creating invalid reference. * testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust dg-error line numbers. * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc: likewise. 2015-05-27 Jonathan Wakely * include/bits/stl_tree.h (_Rb_tree::_M_end()): Return _Base_ptr instead of downcasting. (_Rb_tree::_M_copy): Change second parameter to _Base_ptr. (_Rb_tree::_M_lower_bound, _Rb_tree:_M_upper_bound): Likewise. (_Rb_tree::_S_iter): Remove. (_Rb_tree::_S_lower_bound_tr, _Rb_tree::_S_upper_bound_tr): Remove. (_Rb_tree::_M_find_tr(const _Kt&) const): Call _M_lower_bound_tr instead of _S_lower_bound_tr (_Rb_tree::_M_find_tr(const _Kt&)): Call const overload. (_Rb_tree::_M_lower_bound_tr(const _Kt&) const): Do the search here instead of calling _S_lower_bound_tr. (_Rb_tree::_M_lower_bound_tr(const _Kt&)): Call const overload. (_Rb_tree::_M_upper_bound_tr(const _Kt&) const): Do the search here instead of calling _S_upper_bound_tr. (_Rb_tree::_M_upper_bound_tr(const _Kt&)): Call const overload. (_Rb_tree::_M_equal_range_tr(const _Kt&)): Likewise. (_Rb_tree::equal_range): Use _Base_ptr for end pointer. (_Rb_tree::_M_get_insert_unique_pos): Likewise. (_Rb_tree::_M_get_insert_equal_pos): Likewise. (_Rb_tree::_M_insert_equal_lower_node): Likewise. (_Rb_tree::_M_insert_unique, _Rb_tree::_M_emplace_unique, _Rb_tree::_M_emplace_hint_unique): Remove static_cast. PR libstdc++/66017 * include/bits/stl_tree.h (_Rb_tree_node): Use __aligned_membuf. (_Rb_tree_iterator, _Rb_tree_const_iterator): Support construction from _Base_ptr. (_Rb_tree_const_iterator::_M_const_cast): Remove static_cast. (_Rb_tree::begin, _Rb_tree::end): Remove static_cast. * include/ext/aligned_buffer.h (__aligned_membuf): New type using alignment of _Tp as a member subobject, not as a complete object. * python/libstdcxx/v6/printers.py (StdRbtreeIteratorPrinter): Lookup _Link_type manually as it might not be in the debug info. 2015-05-26 Doug Evans * python/libstdcxx/v6/xmethods.py (UniquePtrMethodsMatcher): Add operator-> support. * testsuite/libstdc++-xmethods/unique_ptr.cc: Add tests for operator->. 2015-05-26 Jonathan Wakely * include/bits/locale_conv.h: Fix copyright years. * include/bits/quoted_string.h: Likewise. * src/filesystem/Makefile.am: Likewise. * testsuite/22_locale/conversions/buffer/1.cc: Likewise. * testsuite/22_locale/conversions/buffer/requirements/typedefs.cc: Likewise. * testsuite/22_locale/conversions/string/1.cc: Likewise. * testsuite/22_locale/conversions/string/2.cc: Likewise. * testsuite/22_locale/conversions/string/3.cc: Likewise. * testsuite/22_locale/conversions/string/requirements/typedefs-2.cc: Likewise. * testsuite/22_locale/conversions/string/requirements/typedefs.cc: Likewise. * testsuite/util/testsuite_fs.h: Likewise. 2015-05-23 François Dumont fdumont@gcc.gnu.org> PR libstdc++/64657 * include/debug/functions.h (__check_sorted_aux): Cast expression to void. 2015-05-21 David Edelsohn PR target/66224 * config/cpu/powerpc/atomic_word.h (_GLIBCXX_READ_MEM_BARRIER): Don't use isync. Use lwsync if available. * configure.host (atomic_word_dir) [aix[56789]*]: Delete to use powerpc cpu definition. 2015-05-21 Jason Merrill * libsupc++/del_opv.cc: Suppress -Wsized-deallocation. * libsupc++/del_op.cc: Likewise. 2015-05-20 François Dumont fdumont@gcc.gnu.org> * include/debug/formatter.h (_GLIBCXX_TYPEID): New macro to simplify usage of typeid. (_Error_formatter::_M_print_type): New. * src/c++11/debug.cc (_Error_formatter::_Parameter::_M_print_field): Use latter. (_Error_formatter::_M_print_type): Implement latter using __cxaabiv1::__cxa_demangle to print demangled type name. * include/bits/cpp_type_traits.h (std::move_iterator): Delete declaration. (std::__is_move_iterator): Move partial specialization... * include/bits/stl_iterator.h: ... here. (std::__miter_base): Overloads for std::reverse_iterator and std::move_iterator. * include/bits/stl_algobase.h (std::__miter_base): Provide default implementation. 2015-05-20 Jonathan Wakely * testsuite/util/testsuite_fs.h (nonexistent_path): Don't use tempnam. PR libstdc++/66078 * include/bits/stl_iterator.h (__make_move_if_noexcept_iterator): Add overload for pointers. * testsuite/20_util/specialized_algorithms/uninitialized_copy/ 808590.cc: Add -std=gnu++03 switch. * testsuite/20_util/specialized_algorithms/uninitialized_copy/ 808590-cxx11.cc: Copy of 808590.cc to test with -std=gnu++11. * testsuite/23_containers/vector/modifiers/push_back/ strong_guarantee.cc: New. 2015-05-19 Jonathan Wakely * include/bits/stl_list.h (_M_resize_pos(size_type&)): Declare. (operator==(const list&, const list&)): If size() is O(1) compare sizes before comparing each element. * include/bits/list.tcc (list::_M_resize_pos(size_type&)): Define. (list::resize): Use _M_resize_pos. 2015-05-19 François Dumont * testsuite/23_containers/unordered_map/cons/66055.cc: Add constructor invocations. * testsuite/23_containers/unordered_multimap/cons/66055.cc: Likewise. * testsuite/23_containers/unordered_multiset/cons/66055.cc: Likewise. * testsuite/23_containers/unordered_set/cons/66055.cc: Likewise. 2015-05-17 Ramana Radhakrishnan * configure.host: Define cpu_defines_dir for ARM. * config/cpu/arm/cpu_defines.h: New file. 2015-05-17 François Dumont * include/bits/unordered_map.h (unordered_map, unordered_multimap): Add missing constructors. * include/bits/unordered_set.h (unordered_set, unordered_multiset): Likewise. * include/debug/unordered_map (unordered_map, unordered_multimap): Add missing constructors. * include/debug/unordered_set (unordered_set, unordered_multiset): Likewise. * include/profile/unordered_map (unordered_map, unordered_multimap): Add missing constructors. * include/profile/unordered_set (unordered_set, unordered_multiset): Likewise. 2015-05-15 Jonathan Wakely * src/filesystem/ops.cc (stat_type): Define alias for struct stat and use throughout the file. (make_file_type): New function. (file_size(const path&, error_code&)): Report an error for anything that isn't a regular file. (status(const path&), symlink_status(const path&)): Do not throw for file_type::not_found. (temp_directory_path()): Check additional environment variables. * testsuite/experimental/filesystem/operations/exists.cc: New. * testsuite/experimental/filesystem/operations/file_size.cc: New. * testsuite/experimental/filesystem/operations/status.cc: New. * testsuite/experimental/filesystem/operations/temp_directory_path.cc: New. 2015-05-14 Nathan Myers Jonathan Wakely PR libstdc++/66055 * include/std/unordered_map (unordered_map, unordered_multimap): Add missing constructors. * include/std/unordered_set (unordered_set, unordered_multiset): Likewise. * testsuite/23_containers/unordered_map/cons/66055.cc: New. * testsuite/23_containers/unordered_multimap/cons/66055.cc: New. * testsuite/23_containers/unordered_multiset/cons/66055.cc: New. * testsuite/23_containers/unordered_set/cons/66055.cc: New. 2015-05-14 Jonathan Wakely PR libstdc++/66011 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for fchmod and sendfile. * config.h.in: Regenerate. * configure: Regenerate. * src/filesystem/ops.cc (do_copy_file): Fix arguments to open(). Do not return after copying contents. Use fchmod, fchmodat, and sendfile when available. (current_path, permissions, space): Use errno not return value. PR libstdc++/66018 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for struct dirent.d_type. * config.h.in: Regenerate. * configure: Regenerate. * configure.ac (AC_STRUCT_DIRENT_D_TYPE): Remove. 2015-05-13 Eric Botcazou * acinclude.m4 (GLIBCXX_ENABLE_SJLJ_EXCEPTIONS): Delete. * configure.ac: Remove GLIBCXX_ENABLE_SJLJ_EXCEPTIONS. * config.h.in: Regenerate. * configure: Likewise. * libsupc++/eh_personality.cc: Replace _GLIBCXX_SJLJ_EXCEPTIONS by __USING_SJLJ_EXCEPTIONS__. * libsupc++/eh_throw.cc: Likewise. * libsupc++/eh_ptr.cc: Likewise. * doc/html/manual/appendix_porting.html: Remove GLIBCXX_ENABLE_SJLJ_EXCEPTIONS * doc/xml/manual/build_hacking.xml: Likewise. * doc/html/manual/configure.html: Remove --enable-sjlj-exceptions. * doc/xml/manual/configure.xml: Likewise. 2015-05-13 Jonathan Wakely * include/bits/shared_ptr_base.h (__shared_count(unique_ptr&&)): Check for nullptr (LWG 2415). * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc: Test construction from empty unique_ptr. * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error. * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise. * include/bits/stl_raw_storage_iter.h (raw_storage_iterator::base()): Define (LWG 2454). * testsuite/20_util/raw_storage_iterator/base.cc: New. * include/std/future (packaged_task(allocator_arg_t, const A&, F&&): Remove explicit (LWG 2407). * include/bits/basic_string.h (basic_string::basic_string()): Make noexcept conditional on allocator (LWG 2455). * include/std/complex (polar): Check for negative rho (LWG 2459). * include/experimental/tuple (apply): Handle pointers to member (LWG 2418). * include/std/functional (_Mem_fn_base): Make constructors constexpr. (_Maybe_wrap_member_pointer::__do_wrap): Make constexpr. * testsuite/experimental/tuple/apply.cc: Test pointer to member. * include/bits/random.h (seed_seq): More noexcept (LWG 2440). * include/bits/alloc_traits.h (_S_max_size): Implement LWG 2466. * testsuite/20_util/allocator_traits/members/max_size.cc: Adjust. * testsuite/23_containers/forward_list/allocator/minimal.cc: Likewise. * testsuite/23_containers/map/allocator/minimal.cc: Likewise. * testsuite/23_containers/multimap/allocator/minimal.cc: Likewise. * testsuite/23_containers/multiset/allocator/minimal.cc: Likewise. * testsuite/23_containers/set/allocator/minimal.cc: Likewise. * testsuite/23_containers/unordered_map/allocator/minimal.cc: Likewise. * testsuite/23_containers/unordered_multimap/allocator/minimal.cc: Likewise. * testsuite/23_containers/unordered_multiset/allocator/minimal.cc: Likewise. * testsuite/23_containers/unordered_set/allocator/minimal.cc: Likewise. * testsuite/util/testsuite_allocator.h: Remove unused parameter. * acinclude.m4 (GLIBCXX_ENABLE_FILESYSTEM_TS): Re-enable on solaris. * configure: Regenerate. 2015-05-13 Michael Haubenwallner * Makefile.in: Regenerated with automake-1.11.6. * aclocal.m4: Likewise. * configure: Likewise. * doc/Makefile.in: Likewise. * include/Makefile.in: Likewise. * libsupc++/Makefile.in: Likewise. * po/Makefile.in: Likewise. * python/Makefile.in: Likewise. * src/Makefile.in: Likewise. * src/c++11/Makefile.in: Likewise. * src/c++98/Makefile.in: Likewise. * src/filesystem/Makefile.in: Likewise. * testsuite/Makefile.in: Likewise. 2015-05-09 Jason Merrill * testsuite/20_util/headers/functional/synopsis.cc: Add _GLIBCXX14_CONSTEXPR. * testsuite/25_algorithms/headers/algorithm/synopsis.cc: Likewise. 2015-05-08 Jason Merrill * testsuite/19_diagnostics/headers/system_error/std_c++0x_neg.cc: Add -std=c++98. * testsuite/20_util/auto_ptr/1.cc: Add -std=c++98. * testsuite/20_util/auto_ptr/2.cc: Add -std=c++98. * testsuite/20_util/auto_ptr/3.cc: Add -std=c++98. * testsuite/20_util/auto_ptr/4.cc: Add -std=c++98. * testsuite/20_util/auto_ptr/5.cc: Add -std=c++98. * testsuite/20_util/auto_ptr/6.cc: Add -std=c++98. * testsuite/20_util/auto_ptr/7.cc: Add -std=c++98. * testsuite/20_util/auto_ptr/3946.cc: Add -std=c++98. * testsuite/20_util/auto_ptr/assign_neg.cc: Add -std=c++98. * testsuite/20_util/auto_ptr/requirements/explicit_instantiation/1.cc: Likewise. * testsuite/20_util/headers/functional/synopsis.cc: Add -Wno-deprecated. * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc: Adjust expected errors. * 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. * testsuite/ext/array_allocator/1.cc: Add -Wno-deprecated. * testsuite/ext/array_allocator/2.cc: Add -Wno-deprecated. * testsuite/ext/array_allocator/26875.cc: Add -Wno-deprecated. * testsuite/ext/array_allocator/3.cc: Add -Wno-deprecated. * testsuite/ext/array_allocator/check_allocate_max_size.cc: Add -Wno-deprecated. * testsuite/ext/array_allocator/check_deallocate_null.cc: Add -Wno-deprecated. * testsuite/ext/array_allocator/check_delete.cc: Add -Wno-deprecated. * testsuite/ext/array_allocator/check_new.cc: Add -Wno-deprecated. * testsuite/ext/profile/mutex_extensions_neg.cc: Prune follow-on error. * testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr.cc: Add -std=c++98. * testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr_neg.cc: Add -std=c++98. * testsuite/tr1/2_general_utilities/shared_ptr/assign /auto_ptr_rvalue_neg.cc: Add -std=c++98. * testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc: Add -std=c++98 -fno-show-column. * testsuite/tr1/2_general_utilities/shared_ptr/cons/auto_ptr.cc: Add -std=c++98. * testsuite/tr1/2_general_utilities/shared_ptr/cons/auto_ptr_neg.cc: Add -std=c++98. * testsuite/tr1/6_containers/utility/pair.cc: Add -std=c++98. * testsuite/tr1/8_c_compatibility/cmath/pow_cmath.cc: Add -std=c++98. * src/c++98/Makefile.am (AM_CXXFLAGS): Add -std=gnu++98. * src/c++98/Makefile.in: Regenerate. * src/Makefile.am (AM_CXXFLAGS): Add -std=gnu++98. * src/Makefile.in: Regenerate. 2015-05-02 Jonathan Wakely PR libstdc++/51617 * include/std/future (async): Change default policy to launch::async. * include/experimental/any (any::_Storage): Fix alignment of buffer. (any::_Internal): Check alignment of type. * testsuite/experimental/any/cons/aligned.cc: New. * testsuite/experimental/any/misc/any_cast_neg.cc: Adjust dg-error. * include/experimental/iterator (ostream_joiner): Simplify by using the injected-class-name and the ostream_type typedef. * include/experimental/iterator: New. Define ostream_joiner. * include/Makefile.am: Add new header. * include/Makefile.in: Regenerate. * testsuite/experimental/iterator/make_ostream_joiner.cc: New. * testsuite/experimental/iterator/ostream_joiner.cc: New. * testsuite/experimental/iterator/requirements.cc: New. * doc/xml/manual/status_cxx2017.xml: Update status. * doc/html/manual/status.html: Regenerate. * include/experimental/numeric: New. Define gcd and lcm. * include/Makefile.am: Add new header. * include/Makefile.in: Regenerate. * testsuite/experimental/numeric/gcd.cc: New. * testsuite/experimental/numeric/lcm.cc: New. * doc/xml/manual/status_cxx2017.xml: Update status. * doc/html/manual/status.html: Regenerate. 2015-05-02 Edward Smith-Rowland <3dw4rd@verizon.net> Revert addition of feature macros from other headers per latest SD-6. * include/experimental/deque: Remove feature-test macro. * include/experimental/forward_list: Ditto. * include/experimental/list: Ditto. * include/experimental/map: Ditto. * include/experimental/set: Ditto. * include/experimental/string: Ditto. * include/experimental/unordered_map: Ditto. * include/experimental/unordered_set: Ditto. 2015-05-02 Jonathan Wakely * include/experimental/any (any::_Storage): Make non-copyable. (any::any): Do not copy _Storage object. (any::operator=): Implement more efficiently than swapping. (any::swap): Use new _Op_xfer operation. (any::_Op::_Op_xfer): New enumerator. (_Manager_internal::_S_alloc): Remove unused function. (_Manager_internal::_S_create, _Manager_external::_S_create): Use out parameter instead of returning a _Storage object. (_Manager_internal::_S_manage, _Manager_external::_S_manage): Add _Op_xfer operation for moving and swapping. * testsuite/experimental/any/cons/nontrivial.cc: New. * testsuite/experimental/any/misc/any_cast_neg.cc: Adjust dg-error. * include/experimental/fs_path.h (filesystem_error::~filesystem_error): Declare. * src/filesystem/path.cc (filesystem_error::~filesystem_error): Define. PR libstdc++/65978 * include/std/tuple (forward_as_tuple, tie): Add constexpr. * testsuite/20_util/tuple/creation_functions/constexpr.cc: Uncomment and fix tests for forward_as_tuple and tie. * src/filesystem/ops.cc (last_write_time) [_GLIBCXX_USE_UTIMENSAT]: Set timespec members explicitly instead of with a braced-init-list. [_GLIBCXX_HAVE_UTIME_H]: Use lambda to handle st_atime being a macro. 2015-05-02 Edward Smith-Rowland <3dw4rd@verizon.net> * include/experimental/deque: Add feature-test macro. * include/experimental/forward_list: Ditto. * include/experimental/list: Ditto. * include/experimental/map: Ditto. * include/experimental/set: Ditto. * include/experimental/string: Ditto. * include/experimental/unordered_map: Ditto. * include/experimental/unordered_set: Ditto. 2015-05-01 Jonathan Wakely * include/experimental/memory: Correct feature-test macro. * include/experimental/memory: Add feature-test macro. * include/experimental/vector: Likewise. * doc/xml/manual/status_cxx2017.xml: Update status. * doc/html/manual/status.html: Regenerate. 2015-05-01 Ville Voutilainen Implement observer_ptr. * include/Makefile.am: Add new header. * include/Makefile.in: Regenerate. * include/experimental/memory: New. * testsuite/experimental/memory/observer_ptr/assignment/assign.cc: New. * testsuite/experimental/memory/observer_ptr/cons/cons.cc: New. * testsuite/experimental/memory/observer_ptr/hash/hash.cc: New. * testsuite/experimental/memory/observer_ptr/make_observer.cc: New. * testsuite/experimental/memory/observer_ptr/relops/relops.cc: New. * testsuite/experimental/memory/observer_ptr/requirements.cc: New. * testsuite/experimental/memory/observer_ptr/swap/swap.cc: New. * testsuite/experimental/memory/observer_ptr/typedefs.cc: New. 2015-05-01 Jonathan Wakely * src/filesystem/path.cc (path::compare): Do not copy strings. * acinclude.m4 (GLIBCXX_ENABLE_FILESYSTEM_TS): Disable when is not available. (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for fchmodat. * configure: Regenerate. * config.h.in: Regenerate. * configure.ac: Check for utime.h * include/experimental/fs_path.h (path::string<>) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Remove stray typename keyword. * src/filesystem/dir.cc [!_GLIBCXX_HAVE_DIRENT_H] (DIR, opendir, closedir, dirent, readdir_r): Replace dummy functions with #error. (native_readdir, _Dir::advance): Use readdir when readdir_r is missing. * src/filesystem/ops.cc (do_stat, is_set): Make inline. (last_write_time) [!_GLIBCXX_USE_UTIMENSAT]: Use utime. (permissions) [!_GLIBCXX_USE_FCHMODAT]: Use chmod. (space, temp_directory_path) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Set error_code. * include/experimental/fs_path.h (path::_List): Use vector instead of list. * python/libstdcxx/v6/printers.py (StdExpPathPrinter): Adapt. * src/filesystem/path.cc: Use std::prev instead of decrementing rvalues. Fix whitespace. * testsuite/experimental/filesystem/path/decompose/parent_path.cc: Do not decrement iterators before begin. * include/experimental/fs_dir.h: Fix use of non-reserved names. * include/experimental/fs_ops.h: Likewise. * include/experimental/fs_path.h: Likewise. * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Use C++11 when checking for support. * include/bits/locale_classes.h (locale::facet): Delete copy operations in C++11 mode. * include/bits/alloc_traits.h (__alloc_rebind): Change parameter name. * acinclude.m4 (GLIBCXX_ENABLE_FILESYSTEM_TS): Disable for solaris. * configure: Regenerate. 2015-05-01 Edward Smith-Rowland <3dw4rd@verizon.net> Inline one-line erasure dispatch functions. * include/experimental/forward_list (erase_if(), erase()): Inline. * include/experimental/list (erase_if(), erase()): Inline. * include/experimental/map (erase_if(*)): Inline. * include/experimental/set (erase_if(*)): Inline. * include/experimental/string (erase_if(), erase()): Inline. * include/experimental/unordered_map (erase_if(*)): Inline. * include/experimental/unordered_set (erase_if(*)): Inline. 2015-05-01 Jonathan Wakely * doc/xml/manual/intro.xml: Link to new status_cxx2017.xml file. * doc/xml/manual/status_cxx2011.xml: Update status tables. * doc/xml/manual/status_cxx2014.xml: Likewise. * doc/xml/manual/status_cxx2017.xml: New. * doc/xml/manual/using.xml: Fix typo. * doc/html/*: Regenerate. * include/std/memory (pointer_safety, declare_reachable, undeclare_reachable, declare_no_pointers, undeclare_no_pointers, get_pointer_safety): Define. * testsuite/20_util/pointer_safety/1.cc: New. 2015-04-30 Jonathan Wakely Implement N4100 File System TS * acinclude.m4 (GLIBCXX_ENABLE_FILESYSTEM_TS): Define. (GLIBCXX_CHECK_FILESYSTEM_DEPS): Define. * config.h.in: Regenerate. * configure: Regenerate. * configure.ac: Enable filesystem TS and check its dependencies. * include/Makefile.am: Add new headers. * include/Makefile.in: Regenerate. * include/bits/locale_conv.h (__do_str_code_cvt, __str_codecvt_in, __str_codecvt_out): Move code conversion logic from wstring_convert into new global functions. (wstring_convert::to_bytes, wstring_convert::from_bytes): Use new functions. (wstring_convert::_M_conv): Remove. * include/bits/quoted_string.h (_Quoted_string): Split out of iomanip. * include/experimental/filesystem: New. * include/experimental/fs_dir.h: New. * include/experimental/fs_fwd.h: New. * include/experimental/fs_ops.h: New. * include/experimental/fs_path.h: New. * include/std/iomanip (_Quoted_string): Move to bits/quoted_string.h. * python/libstdcxx/v6/printers.py (StdExpPathPrinter): Add. * src/Makefile.am (SUBDIRS): Add filesystem. * src/Makefile.in: Regenerate. * src/filesystem/Makefile.am: New. * src/filesystem/Makefile.in: New. * src/filesystem/dir.cc: New. * src/filesystem/ops.cc: New. * src/filesystem/path.cc: New. * testsuite/experimental/filesystem/operations/absolute.cc: New. * testsuite/experimental/filesystem/operations/copy.cc: New. * testsuite/experimental/filesystem/operations/current_path.cc: New. * testsuite/experimental/filesystem/path/append/path.cc: New. * testsuite/experimental/filesystem/path/assign/assign.cc: New. * testsuite/experimental/filesystem/path/assign/copy.cc: New. * testsuite/experimental/filesystem/path/compare/compare.cc: New. * testsuite/experimental/filesystem/path/compare/path.cc: New. * testsuite/experimental/filesystem/path/compare/strings.cc: New. * testsuite/experimental/filesystem/path/concat/path.cc: New. * testsuite/experimental/filesystem/path/concat/strings.cc: New. * testsuite/experimental/filesystem/path/construct/copy.cc: New. * testsuite/experimental/filesystem/path/construct/default.cc: New. * testsuite/experimental/filesystem/path/construct/locale.cc: New. * testsuite/experimental/filesystem/path/construct/range.cc: New. * testsuite/experimental/filesystem/path/decompose/extension.cc: New. * testsuite/experimental/filesystem/path/decompose/filename.cc: New. * testsuite/experimental/filesystem/path/decompose/parent_path.cc: New. * testsuite/experimental/filesystem/path/decompose/relative_path.cc: New. * testsuite/experimental/filesystem/path/decompose/root_directory.cc: New. * testsuite/experimental/filesystem/path/decompose/root_name.cc: New. * testsuite/experimental/filesystem/path/decompose/root_path.cc: New. * testsuite/experimental/filesystem/path/decompose/stem.cc: New. * testsuite/experimental/filesystem/path/generic/generic_string.cc: New. * testsuite/experimental/filesystem/path/itr/traversal.cc: New. * testsuite/experimental/filesystem/path/modifiers/clear.cc: New. * testsuite/experimental/filesystem/path/modifiers/make_preferred.cc: New. * testsuite/experimental/filesystem/path/modifiers/remove_filename.cc: New. * testsuite/experimental/filesystem/path/modifiers/replace_extension.cc: New. * testsuite/experimental/filesystem/path/modifiers/replace_filename.cc: New. * testsuite/experimental/filesystem/path/modifiers/swap.cc: New. * testsuite/experimental/filesystem/path/nonmember/hash_value.cc: New. * testsuite/experimental/filesystem/path/query/empty.cc: New. * testsuite/experimental/filesystem/path/query/has_extension.cc: New. * testsuite/experimental/filesystem/path/query/has_filename.cc: New. * testsuite/experimental/filesystem/path/query/has_parent_path.cc: New. * testsuite/experimental/filesystem/path/query/has_relative_path.cc: New. * testsuite/experimental/filesystem/path/query/has_root_directory.cc: New. * testsuite/experimental/filesystem/path/query/has_root_name.cc: New. * testsuite/experimental/filesystem/path/query/has_root_path.cc: New. * testsuite/experimental/filesystem/path/query/has_stem.cc: New. * testsuite/experimental/filesystem/path/query/is_relative.cc: New. * testsuite/util/testsuite_fs.h: New. 2015-04-30 Edward Smith-Rowland <3dw4rd@verizon.net> Add fundamentals TR container erasure. * include/Makefile.am: Add new headers. * include/Makefile.in: Add new headers. * include/experimental/array: New. * include/experimental/deque: New. * include/experimental/erase_if.tcc: New. * include/experimental/forward_list: New. * include/experimental/list: New. * include/experimental/map: New. * include/experimental/set: New. * include/experimental/string: New. * include/experimental/unordered_map: New. * include/experimental/unordered_set: New. * include/experimental/vector: New. * testsuite/experimental/deque/erasure.cc: New. * testsuite/experimental/forward_list/erasure.cc: New. * testsuite/experimental/list/erasure.cc: New. * testsuite/experimental/map/erasure.cc: New. * testsuite/experimental/set/erasure.cc: New. * testsuite/experimental/string/erasure.cc: New. * testsuite/experimental/unordered_map/erasure.cc: New. * testsuite/experimental/unordered_set/erasure.cc: New. * testsuite/experimental/vector/erasure.cc: New. 2015-04-30 François Dumont * include/bits/cpp_type_traits.h (__gnu_cxx::__is_normal_iterator): Delete. * include/bits/stl_algobase.h (std::__niter_base): Adapt. * include/bits/stl_iterator.h (__make_reverse_iterator): New in C++11. (std::__niter_base): Overloads for std::reverse_iterator, __gnu_cxx::__normal_iterator and std::move_iterator. 2015-04-30 François Dumont * include/bits/hashtable_policy.h (_Prime_rehash_policy::_S_n_primes): Delete. * src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy::_M_next_bkt): Remove usage of latter and compute size of the prime numbers array locally. 2015-04-29 Doug Evans PR libstdc++/65839 * python/libstdcxx/v6/xmethods.py (get_bool_type): New function. Replace all lookups of "bool" with this. (get_std_size_type): New function. Replace all lookups of std::size_t with this. (*Worker): New method get_result_type. (DequeWorkerBase.__init__): New arg val_type. All callers updated. (ListWorkerBase.__init__): New arg val_type. All callers updated. (UniquePtrGetWorker.__init__): New arg elem_type. All callers updated. Delete setting of name, enabled. (UniquePtrDerefWorker.__init__): New arg elem_type. All callers updated. Delete setting of name. (UniquePtrMethodsMatcher): Rewrite for consistency with all other libstdc++ xmethod matchers. * testsuite/libstdc++-xmethods/array.cc: Add whatis tests. * testsuite/libstdc++-xmethods/associative-containers.cc: Ditto. * testsuite/libstdc++-xmethods/deque.cc: Ditto. * testsuite/libstdc++-xmethods/forwardlist.cc: Ditto. * testsuite/libstdc++-xmethods/list.cc: Ditto. * testsuite/libstdc++-xmethods/unique_ptr.cc: Ditto. * testsuite/libstdc++-xmethods/vector.cc: Ditto. 2015-04-29 Doug Evans Use consistent naming for value type attributes. * python/libstdcxx/v6/xmethods.py (ArrayWorkerBase): Rename _valtype to _val_type. (ArraySizeWorker, ArrayEmptyWorker): Ditto. (ArrayFrontWorker, ArrayBackWorker): Ditto. (ArrayAtWorker, ArraySubscriptWorker): Ditto. (DequeWorkerBase): Rename elemtype to val_type. (ForwardListWorkerBase): Rename _elem_type to _val_type. (ForwardListFrontWorker): Ditto. And rename elem_address to val_address. (ForwardListMethodsMatcher): Rename elem_type to val_type. (VectorWorkerBase): Rename _elemtype to _val_type. 2015-04-29 Jonathan Wakely PR libstdc++/65760 * include/std/functional (__check_func_return_type): Use is_same to avoid using _is_convertible on incomplete types. * testsuite/20_util/function/65760.cc: New. PR libstdc++/64657 * include/bits/basic_string (basic_string::_S_copy_chars): Cast expression to void. * include/bits/locale_facets_nonio.tcc (money_get::_M_extract, time_get::_M_extract_num, time_get::_M_extract_name, time_get::_M_extract_wday_or_month): Likewise. * include/bits/stl_algo.h (__includes, __replace_copy_if, __is_sorted_until, __is_permutation, transform): Likewise. * include/bits/stl_algobase.h (swap_ranges, __copy_move::__copy_m, __equal::equal, __lexicographical_compare_impl, equal): Likewise. * include/bits/stl_numeric.h (inner_product): Likewise. * include/bits/stl_uninitialized.h (__uninitialized_copy_a): Likewise. * testsuite/util/testsuite_iterators.h (output_iterator_wrapper, input_iterator_wrapper): Declare unusable comma operator. * testsuite/21_strings/basic_string/cons/char/64657.cc: New. * testsuite/21_strings/basic_string/modifiers/assign/char/64657.cc: New. 2015-04-28 Doug Evans * testsuite/libstdc++-xmethods/list.cc (_GLIBCXX_USE_CXX11_ABI): Define to zero. 2015-04-28 Jonathan Wakely * include/bits/stl_algo.h (random_shuffle): Only define for hosted implementations. 2015-04-28 Jonathan Wakely * Makefile.am (SUBDIRS): Move python to hosted_source. * Makefile.in: Regenerate. * acinclude.m4 (glibcxx_SUBDIRS): Reorder. * configure: Regenerate. 2015-04-28 Marc Glisse PR libstdc++/65883 * include/std/limits (numeric_limits): Add missing unsigned. 2015-04-28 Stephan Bergmann * include/debug/vector (_Safe_vector::operator=): Add missing returns. 2015-04-28 Jonathan Wakely PR libstdc++/60333 * include/std/type_traits (__make_unsigned_selector<_Tp, false, true>): Handle enumeration types larger than sizeof(long). (__make_signed_selector<_Tp, false, true>): Find unsigned type then make it signed. * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error. * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Likewise. * testsuite/20_util/make_signed/requirements/typedefs-3.cc: New. * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Adjust dg-error. * testsuite/20_util/make_unsigned/requirements/typedefs-3.cc: New. PR libstdc++/61645 * include/bits/forward_list.h (forward_list::splice_after): Add noexcept. * include/bits/forward_list.tcc (forward_list::splice_after): Likewise. PR libstdc++/65631 * include/bits/random.h (seed_seq) Define copy constructor and copy assignment as deleted. * testsuite/26_numerics/random/seed_seq/cons/65631.cc: New. * libsupc++/exception (uncaught_exceptions): Add comment. Reorder #if. * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc: Use -std=gnu++1z. Check feature-test macro. * include/std/type_traits (void_t): Add. * testsuite/20_util/void_t/1.cc: New. 2015-04-28 Tim Shen * include/bits/regex.tcc: Handle regex_constants::__polynomial. * include/bits/regex_automaton.tcc: Throw exception when parsing back-reference with flag __polynomial. * include/bits/regex_constants.h: Add extension flag syntax_option_type __polynomial. * bits/regex_executor.tcc: Still let BFS process ECMAScript. Alternative operation will be fixed in the coming refactoring. * testsuite/28_regex/algorithms/regex_search/61424.cc: Turn loose match_search_debug to use DFS only. 2015-04-27 Sandra Loosemore PR libstdc++/65909 * testsuite/lib/libstdc++.exp (check_v3_target_namedlocale): Make the generated test program fail gracefully if the target doesn't support passing command-line arguments. 2015-04-27 Federico Lenarduzzi Jonathan Wakely * libsupc++/eh_catch.cc (uncaught_exception, uncaught_exceptions): Return false or zero if the library is built without exceptions. * libsupc++/eh_term_handler.cc: Disable verbose terminate handler if the library is built without exceptions. 2015-04-27 Ville Voutilainen * config/abi/pre/gnu.ver: Fix comment. Add support for std::uncaught_exceptions. * acinclude.m4: Bump libtool_VERSION. * config/abi/pre/gnu.ver: Export the new symbol. * configure: Regenerate. * libsupc++/eh_catch.cc (uncaught_exceptions): New. * libsupc++/exception (uncaught_exceptions): New. * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc: New. * testsuite/util/testsuite_abi.cc: Add 3.4.22 as the latest version. 2015-04-27 Dmitry Prokoptsev Michael Hanselmann PR libstdc++/62258 * libsupc++/eh_ptr.cc (rethrow_exception): Increment count of uncaught exceptions. * testsuite/18_support/exception_ptr/62258.cc: New. 2015-04-27 Jonathan Wakely * doc/xml/manual/extensions.xml: Add cross-reference. * doc/html/manual/ext_compile_checks.html: Regenerate. 2015-04-22 Szabolcs Nagy * config/os/generic/os_defines.h (_GLIBCXX_GTHREAD_USE_WEAK): Define. * configure.host (os_include_dir): Set to "os/generic" for linux-musl*. 2015-04-22 Renlin Li * testsuite/lib/dg-options.exp (dg-require-thread-fence): New. * testsuite/lib/libstdc++.exp (check_v3_target_thread_fence): New. * testsuite/29_atomics/atomic_flag/clear/1.cc: Use it. * testsuite/29_atomics/atomic_flag/test_and_set/explicit.cc: Likewise. * testsuite/29_atomics/atomic_flag/test_and_set/implicit.cc: Likewise. 2015-04-21 Jonathan Wakely * doc/xml/manual/configure.xml: Update descriptions of options affecting dual ABI and add cross-references. * doc/xml/manual/strings.xml: Clarify that string isn't COW now. * doc/xml/manual/using.xml: Document ABI transition. * doc/html/*: Regenerate. * doc/xml/manual/abi.xml: Use uppercase for C++ Standard Library. * doc/xml/manual/using.xml: Document newer -std options. Use better examples of nested namespaces. 2015-04-20 Jonathan Wakely * doc/xml/manual/concurrency_extensions.xml: Update documentation on atomics. * doc/xml/manual/using.xml: Likewise. Improve markup. * doc/html/*: Regenerate. 2015-04-15 Rainer Orth * scripts/extract_symvers.pl: Ignore elfdump error output. 2015-04-14 Marc Glisse PR libstdc++/61347 * include/bits/stl_iterator_base_funcs.h (_List_iterator, _List_const_iterator): Declare. (__distance): Declare new overloads for _List_iterator and _List_const_iterator. * include/bits/stl_list.h (__distance): New overloads for _List_iterator and _List_const_iterator. * testsuite/23_containers/list/61347.cc: New testcase. 2015-04-14 Jonathan Wakely * doc/xml/manual/evolution.xml: Fix typos. * doc/html/manual/api.html: Regenerate. 2015-04-14 Hans-Peter Nilsson * testsuite/29_atomics/atomic/62259.cc: Assert atomic alignment is larger-equal, not equal, to default alignment. 2015-04-13 Jonathan Wakely PR libstdc++/65754 * config/abi/pre/gnu.ver: Export base object constructors for fstreams. * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update. * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update. * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update. * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update. * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update. * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update. * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update. * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update. * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update. * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Update. * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate. * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise. * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise. * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update. * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update. * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Update. * testsuite/27_io/basic_fstream/cons/base.cc: New. 2015-04-13 Jonathan Wakely * doc/xml/manual/evolution.xml: Document changes since 4.5 release. * doc/html/*: Regenerate. 2015-04-12 Uros Bizjak * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update. 2015-04-10 Andreas Schwab * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update. * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update. 2015-04-10 Jonathan Wakely * doc/xml/manual/test.xml: Improve documentation on running a subset of tests. * doc/html/manual/test.html: Regenerate. 2015-04-10 Bill Schmidt * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update for GCC 5.1 release. * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Likewise. 2015-04-10 Jonathan Wakely * include/std/shared_mutex (shared_timed_mutex): Add comments to explain the logic in the non-pthread_rwlock_t version. (_Mutex): Remove redundant type. (_M_n_readers): Rename to _S_max_readers. (_M_write_entered, _M_readers): New convenience functions. (lock, lock_shared, try_lock_shared, unlock_shared): Use convenience functions. Use predicates with condition variables. Simplify bitwise operations. (try_lock_for, try_shared_lock_for): Convert duration to time_point and call try_lock_until or try_shared_lock_until respectively. (try_lock_until, try_shared_lock_until): Wait on the condition variables until the specified time passes. (unlock): Add Debug Mode assertion. (unlock_shared): Add Debug Mode assertion. * testsuite/30_threads/shared_timed_mutex/try_lock/3.cc: New. * include/std/shared_mutex (shared_timed_mutex): Only use pthread_rwlock_t when the POSIX Timeouts option is supported. * testsuite/30_threads/shared_lock/cons/5.cc: Remove dg-require-gthreads-timed. * testsuite/30_threads/shared_lock/cons/6.cc: Likewise. * testsuite/30_threads/shared_lock/locking/3.cc: Likewise. * testsuite/30_threads/shared_lock/locking/4.cc: Likewise. 2015-04-09 H.J. Lu * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Update. 2015-04-09 Jonathan Wakely Richard Henderson PR libstdc++/65147 * include/bits/atomic_base.h (__atomic_base<_ITp>): Increase alignment. * include/std/atomic (atomic): For types with a power of two size set alignment to at least the size. * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error line number. * testsuite/29_atomics/atomic/65147.cc: New. * testsuite/29_atomics/atomic_integral/65147.cc: New. 2015-04-09 Rainer Orth * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate. * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise. * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise. 2015-04-07 Jakub Jelinek * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update. * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update. * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update. * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update. * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update. * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update. * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Update. * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update. 2015-03-30 Jonathan Wakely PR libstdc++/65630 * config/abi/pre/gnu.ver: Export operator+ for new strings. * testsuite/21_strings/basic_string/operators/char/65630.cc: New. * testsuite/21_strings/basic_string/operators/wchar_t/65630.cc: New. 2015-03-28 Tim Shen PR libstdc++/65420 * include/bits/regex_constants.h: Use constexpr variables for flags. * testsuite/28_regex/constants/constexpr.cc: New testcase. 2015-03-27 Jonathan Wakely PR libstdc++/65499 * include/std/chrono: Add using-directive for literals to std::chrono. * testsuite/20_util/duration/literals/65499.cc: New. 2015-03-26 Jonathan Wakely PR libstdc++/58038 PR libstdc++/60421 * include/std/thread (this_thread::sleep_for): Check for negative durations. (this_thread::sleep_until): Check for times in the past. * testsuite/30_threads/this_thread/58038.cc: New. * testsuite/30_threads/this_thread/60421.cc: New. 2015-03-26 Jonathan Wakely PR libstdc++/62259 PR libstdc++/65147 * include/std/atomic (atomic): Increase alignment for types with the same size as one of the integral types. * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error line number. * testsuite/29_atomics/atomic/62259.cc: New. 2015-03-26 Richard Henderson PR libstdc++/65033 * include/bits/atomic_base.h (__atomic_base::is_lock_free): Build a fake pointer indicating type alignment. (__atomic_base::is_lock_free): Likewise. * include/std/atomic (atomic::is_lock_free): Likewise. 2015-03-25 Alan Lawrence PR libstdc++/33394 * testsuite/21_strings/basic_string/pthread33394.cc: Use dg-additional-options. 2015-03-25 Paolo Carlini PR libstdc++/65543 * include/std/istream (operator>>(basic_istream<>&&, _Tp&): Revert thinko in r150387. * include/std/ostream (operator<<(basic_ostream<>&&, const _Tp&): Likewise. * testsuite/27_io/rvalue_streams-2.cc: New. 2015-03-24 Jonathan Wakely PR libstdc++/33394 * testsuite/21_strings/basic_string/pthread33394.cc: Add test. 2015-03-23 Jonathan Wakely PR libstdc++/64967 * acinclude.m4: Disable dual ABI when gnu-versioned-namespace in use. * configure: Regenerate. * src/c++11/compatibility-c++0x.cc (error_category), generic_category, system_category): Use macros for versioned namespace. * src/c++11/futex.cc: Add missing end macro for versioned namespace. 2015-03-20 James Greenhalgh * testsuite/17_intro/headers/c++1998/all_attributes.cc: Disable test for unused for ARM. * testsuite/17_intro/headers/c++200x/all_attributes.cc: Likewise. * testsuite/17_intro/headers/c++2014/all_attributes.cc: Likewise. 2015-03-20 Jonathan Wakely * include/bits/c++config (__gnu_cxx::__cxx11): Define new namespace. * include/ext/codecvt_specializations.h (encoding_state, encoding_char_traits): Remove abi-tag and use inline namespace. * testsuite/ext/profile/mutex_extensions_neg.cc: Adjust dg-error line. 2015-03-19 Jason Merrill * config/locale/gnu/messages_members.cc: Revert abi-tag change. * src/c++11/cxx11-shim_facets.cc: Revert abi-tag change. 2015-03-18 Jonathan Wakely PR c++/65046 * config/locale/gnu/messages_members.cc (Catalog_info, Catalogs, get_catalogs): Add abi-tag. * include/ext/codecvt_specializations.h (encoding_state, encoding_char_traits): Likewise. * src/c++11/cxx11-ios_failure.cc (io_error_category): Likewise. * src/c++11/cxx11-shim_facets.cc (__any_string::operator basic_string, numpunct_shim, collate_shim, time_get_shim, moneypunct_shim, money_get_shim, money_put_shim, messages_shim): Likewise. * src/c++11/future.cc (future_error_category::message): Likewise. * src/c++11/system_error.cc (generic_error_category::message, system_error_category::message): Likewise. (__sso_string): Disable -Wabi-tag warnings. 2015-03-18 Jonathan Wakely PR libstdc++/13631 * config/locale/gnu/messages_members.cc (get_glibc_msg): Fix fallback implementation for old glibc. Fix whitespace. 2015-03-18 Jonathan Wakely Torvald Riegel * acinclude.m4 (GLIBCXX_CHECK_GTHREADS): Check for pthread_rwlock_t. * config.h.in: Regenerate. * configure: Regenerate. * include/std/shared_mutex: Check _GLIBCXX_USE_PTHREAD_RWLOCK_T. (shared_timed_mutex::_M_rwlock): Use PTHREAD_RWLOCK_INITIALIZER. (shared_timed_mutex::lock_shared()): Retry on EAGAIN. (shared_timed_mutex::try_lock_shared_until()): Retry on EAGAIN and EDEADLK. 2015-03-17 Jonathan Wakely * libsupc++/nested_exception.h: Do not try to derive from final classes. * testsuite/18_support/nested_exception/throw_with_nested.cc: Test final class. * testsuite/30_threads/shared_lock/modifiers/1.cc: Remove name of unused exception variable. * testsuite/30_threads/unique_lock/modifiers/1.cc: Likewise. * testsuite/30_threads/shared_lock/modifiers/2.cc: Remove duplicate test. * testsuite/30_threads/unique_lock/modifiers/2.cc: Likewise. 2015-03-13 Jonathan Wakely * acinclude.m4: Make --enable-libstdcxx-time=auto work for dragonfly. * configure: Regenerate. * include/experimental/system_error: Fix include guard. 2015-03-12 Renlin Li * testsuite/27_io/ios_base/sync_with_stdio/1.cc: Remove xfail for wrapped target. 2015-03-10 Tim Shen PR libstdc++/64441 * include/bits/regex.h (match_results<>::size, match_results<>::position, match_results<>::str, match_results<>::operator[], match_results<>::prefix, match_results<>::suffix, match_results<>::end, match_results<>::_M_resize, match_results<>::_M_unmatched_sub, match_results<>::_M_prefix, match_results<>::_M_suffix): Remove global __unmatched_sub. Add unmatched submatch as part of match_results. * include/bits/regex.tcc (__regex_algo_impl<>, regex_replace<>, regex_iterator<>::operator++): Adjust to use match_results::_M_prefix. * testsuite/28_regex/match_results/out_of_range_submatches.cc: New testcases. 2015-03-09 Jonathan Wakely PR libstdc++/64467 * testsuite/28_regex/traits/char/isctype.cc: Don't test newline for newlib targets. Really fix mixed line-endings this time. 2015-03-06 Jonathan Wakely * include/std/future (future_error(error_code)): Construct base class with error_code's message. * src/c++11/future.cc (future_error::what()): Do not call c_str() on temporary string. 2015-03-05 Jonathan Wakely * include/bits/locale_conv.h (wstring_convert::_M_conv): Handle noconv result. * testsuite/22_locale/conversions/string/2.cc: Also test UTF-8. * testsuite/22_locale/conversions/string/3.cc: Likewise, and UTF-16. 2015-03-04 Jonathan Wakely PR libstdc++/64797 * include/bits/locale_conv.h (wstring_convert::_M_conv): Handle incomplete multibyte sequences correctly. * include/std/codecvt (codecvt_utf8, codecvt_utf16, codecvt_utf8_utf16): Limit _Maxcode to maximum Unicode code point. * src/c++11/codecvt.cc (invalid_mb_sequence, incomplete_mb_character): Define constants. (is_high_surrogate, is_low_surrogate, surrogate_pair_to_code_point): Define convenience functions. (read_utf8_code_point): Return relevant constant to distinguish incomplete characters from invalid sequences. (read_utf16_code_point): Likewise. Check for invalid sequences. (ucs4_in, utf16_in): Use incomplete_mb_character constant. (utf16_out): Check for invalid sequences. (utf16_span): Fix condition. (ucs2_out): Use is_high_surrogate. (ucs2_in): Use incomplete_mb_character constant and fix condition. * testsuite/22_locale/codecvt/char16_t.cc: Fix whitespace. * testsuite/22_locale/conversions/buffer/1.cc: New. * testsuite/22_locale/conversions/string/2.cc: Use char16_t and char32_t instead of wchar_t. * testsuite/22_locale/conversions/string/3.cc: New. 2015-03-03 Iain Sandoe PR libstdc++/64883 * testsuite/17_intro/headers/c++1998/all_attributes.cc: Don't check visibility for Darwin. * testsuite/17_intro/headers/c++200x/all_attributes.cc: Likewise, and also deprecated. * testsuite/17_intro/headers/c++2014/all_attributes.cc: Likewise. 2015-03-02 Jonathan Wakely PR libstdc++/65279 * include/std/scoped_allocator (__inner_type_impl, scoped_allocator_adaptor): Add defaulted copy assignment and move assignment operators. * testsuite/20_util/scoped_allocator/65279.cc: New. 2015-03-02 Jonathan Wakely PR libstdc++/64367 * include/std/stdexcept (__sso_string): Don't use non-static member in sizeof. 2015-02-28 Matthias Klose PR libstdc++/65246 * python/libstdcxx/v6/__init__.py: Use explicit relative imports. 2015-02-22 Jonathan Wakely * doc/xml/manual/status_cxx2011.xml: Remove duplicated information. * doc/html/manual/status.html: Regenerate. 2015-02-20 Jonathan Wakely PR libstdc++/64695 * python/libstdcxx/v6/printers.py (StdTuplePrinter): Handle new tuple layout. * doc/xml/manual/status_cxx2011.xml: Document implementation-defined behavior. * doc/html/manual/status.html: Regenerate. 2015-02-19 Jonathan Wakely PR libstdc++/58357 * include/bits/algorithmfwd.h (rotate): Move to inline namespace _V2. * include/bits/stl_algo.h (__rotate, rotate): Likewise. 2015-02-19 Hans-Peter Nilsson PR testsuite/65093 * testsuite/26_numerics/random/binomial_distribution/operators/values.cc (test01): Add explanatory comment. Keep only the bd1 sub-test and split out bd2, bd3, bd4, and bd5 sub-tests into... * testsuite/26_numerics/random/binomial_distribution/operators/values2.cc, testsuite/26_numerics/random/binomial_distribution/operators/values3.cc, testsuite/26_numerics/random/binomial_distribution/operators/values4.cc, testsuite/26_numerics/random/binomial_distribution/operators/values5.cc: New separate files with the old parts. 2015-02-18 Jonathan Wakely * src/c++11/codecvt.cc (write_utf16_code_point): Fix code to output surrogate pairs. (utf16_in): Pass mode argument to write_utf16_code_point. (codecvt::do_in): Set mode according to native byte order. * testsuite/22_locale/codecvt/char16_t.cc: New. * testsuite/22_locale/codecvt/in/wchar_t/1.cc: Fix typo. * testsuite/22_locale/codecvt/char16_t.cc: Add dg-require-cstdint. * testsuite/22_locale/codecvt/char32_t.cc: Likewise. 2015-02-17 Rüdiger Sonderfeld Jonathan Wakely * testsuite/22_locale/codecvt/char32_t.cc: New. 2015-02-17 Jonathan Wakely PR libstdc++/65085 * include/bits/basic_string.h (basic_string(basic_string&&)): Ensure empty string gets null-terminated. * testsuite/21_strings/basic_string/cons/char/65085.cc: New. 2015-02-13 Matthew Wahab * testsuite/28_regex/traits/char/isctype.cc (test01): Fix mixed line-endings introduced in last change. 2015-02-12 Matthew Wahab * testsuite/28_regex/traits/char/isctype.cc (test01): Replace test for __NEWLIB__ macro with a dejagnu set macro. * testsuite/28_regex/traits/wchar_t/isctype.cc (test01): Likewise. 2015-02-04 Matthew Wahab PR libstdc++/64467 * testsuite/28_regex/traits/char/isctype.cc (test01): Add newlib special case for '\n'. * testsuite/28_regex/traits/wchar_t/isctype.cc (test01): Likewise. 2015-02-01 Jonathan Wakely * src/c++11/futex.cc: Do not define for gthr-single.h targets. 2015-02-01 Jonathan Wakely PR libstdc++/64883 * include/c_global/cstdio (gets): Use __deprecated__ attribute instead of deprecated. * include/c_std/cstdio (gets): Likewise. * testsuite/17_intro/headers/c++1998/all_attributes.cc: Avoid clashing with attributes used in darwin headers. 2015-01-29 Jakub Jelinek * acinclude.m4 (VTV_CYGMIN): Use x$vtv_cygmin = xyes instead of $vtv_cygmin = yes. Initialize vtv_cygmin=no unconditionally first. * configure: Regenerated. 2015-01-29 H.J. Lu * acinclude.m4 (GLIBCXX_ENABLE_VTABLE_VERIFY): Define VTV_CYGMIN after vtv_cygmin is set. * configure: Regenerated. 2015-01-29 Matthias Klose * acinclude.m4 (GLIBCXX_ENABLE_VTABLE_VERIFY): Define VTV_CYGMIN unconditionally. * configure: Regenerate. 2015-01-29 Caroline Tice Committing VTV Cywin/Ming patch for Patrick Wollgast * configure: Regenerate. * libsupc++/Makefile.in: Regenerate. * src/Makefile.in: Regenerate. 2015-01-29 Jonathan Wakely * include/bits/atomic_base.h: Use __always_inline__ instead of always_inline. * include/bits/atomic_futex.h: Likewise. * include/bits/c++config: Use __abi_tag__ instead of abi_tag. * include/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp: Use __packed__ instead of packed. * include/std/shared_mutex: Use __unused__ instead of unused. * testsuite/17_intro/headers/c++1998/all_attributes.cc: New. * testsuite/17_intro/headers/c++200x/all_attributes.cc: New. * testsuite/17_intro/headers/c++2014/all_attributes.cc: New. 2015-01-28 Caroline Tice Committing VTV Cywin/Ming patch for Patrick Wollgast * acinclude.m4: Define VTV_CYGMIN. * libsupc++/Makefile.am: Add vtv_sources only to libsupc___la_SOURCES and libsupc__convenience_la_SOURCES if VTV_CYGMIN is not set. * libsupc++/vtv_stubs.cc: Add none weak declaration of every function for Cygwin and MinGW. * src/Makefile.am: Add libvtv.la to toolexeclib_LTLIBRARIES, if VTV_CYGMIN is set. Define libvtv_la_SOURCES, libvtv_la_LDFLAGS, libvtv_la_AM_CXXFLAGS and libvtv_la_LINK if VTV_CYGMIN is set. 2015-01-28 Jonathan Wakely PR libstdc++/64828 * libsupc++/Makefile.am: Compile del_opvs.cc as C++14. * libsupc++/Makefile.in: Regenerate. * src/c++11/Makefile.in: Regenerate. 2015-01-28 Kyrylo Tkachov * testsuite/lib/libstdc++.exp (v3_target_compile): Remove check for unsupported. (v3_target_compile_as_c): Likewise. 2015-01-28 Richard Biener PR libstdc++/64798 * libsupc++/eh_alloc.cc (struct allocated_entry): Align data member. (pool::allocate): Adjust allocation size and alignment to that change. (pool::free): Adjust pointer offsetting. 2015-01-27 Jonathan Wakely PR libstdc++/64368 * include/std/shared_mutex (shared_timed_mutex::try_lock_for, shared_timed_mutex::try_lock_until): Only define when POSIX thread timeouts option is supported. (shared_timed_mutex::try_shared_lock_for, shared_timed_mutex::try_shared_lock_until): Likewise. 2015-01-26 Jonathan Wakely PR libstdc++/64368 * config/locale/gnu/numeric_members.cc (numpunct::~numpunct(), numpunct::~numpunct()): Do not set _M_data->_M_grouping. * src/c++11/cxx11-shim_facets.cc (numpunct_shim): Remove _M_grouping and use cache's _M_grouping field. (__numpunct_fill_cache): Likewise. (__moneypunct_fill_cache): Improve comments. 2015-01-26 Jonathan Wakely * testsuite/23_containers/set/operations/2.cc: Add test for non-transparent comparison function. 2015-01-25 Oleg Endo PR target/29366 * config/cpu/sh/atomicity.h (__exchange_and_add, __atomic_add): Remove SH4A inline asm and lock based implementations and use the defaults from ext/atomicity.h. 2015-01-23 Jonathan Wakely * config/abi/pre/gnu.ver: Tighten GLIBCXX_3.4 patterns to not match new std::string constructors for byname facets. 2015-01-22 Richard Biener PR libstdc++/64535 * libsupc++/eh_alloc.cc: Include new. (bitmask_type): Remove. (one_buffer): Likewise. (emergency_buffer): Likewise. (emergency_used): Likewise. (dependents_buffer): Likewise. (dependents_used): Likewise. (class pool): New custom fixed-size arena, variable size object allocator. (emergency_pool): New global. (__cxxabiv1::__cxa_allocate_exception): Use new emergency_pool. (__cxxabiv1::__cxa_free_exception): Likewise. (__cxxabiv1::__cxa_allocate_dependent_exception): Likewise. (__cxxabiv1::__cxa_free_dependent_exception): Likewise. 2015-01-22 Tim Shen PR libstdc++/64680 * include/bits/regex.h (basic_regex<>::basic_regex, basic_regex<>::operator=, basic_regex<>::imbue): Conform to the standard interface. * testsuite/28_regex/basic_regex/assign/char/cstring.cc: New testcase. 2015-01-22 Tim Shen PR libstdc++/64649 * include/bits/regex.tcc (regex_traits<>::lookup_collatename, regex_traits<>::lookup_classname): Correctly narrow input chars. * testsuite/28_regex/traits/wchar_t/user_defined.cc: New testcase. 2015-01-21 Jonathan Wakely * config/abi/pre/gnu.ver: Use [jmy] for size_t parameters. 2015-01-21 Jonathan Wakely * testsuite/29_atomics/atomic/64658.cc: Test stored value. 2015-01-20 Jonathan Wakely * doc/xml/manual/status_cxx2011.xml: Remove stray dbhtml tags. * doc/xml/manual/status_cxx2014.xml: Update status. * doc/html/manual/status.html: Regenerate. 2015-01-20 Jonathan Wakely PR libstdc++/64650 * include/experimental/optional (bad_optional_access): Add default constructor. * testsuite/experimental/optional/requirements.cc: Test for default constructor. 2015-01-20 Jonathan Wakely * include/bits/stl_map.h (map::find<>, map::count<>, map::lower_bound<>, map::upper_bound<>, map::equal_range<>): New member function templates to perform heterogeneous lookup. * include/bits/stl_multimap.h (multimap::find<>, multimap::count<>, multimap::lower_bound<>, multimap::upper_bound<>, multimap::equal_range<>): Likewise. * include/bits/stl_multiset.h (multiset::find<>, multiset::count<>, multiset::lower_bound<>, multiset::upper_bound<>, multiset::equal_range<>): Likewise. * include/bits/stl_set.h (set::find<>, set::count<>, set::lower_bound<>, set::upper_bound<>, set::equal_range<>): Likewise. * include/bits/stl_tree.h (_Rb_tree::_S_lower_bound_tr, _Rb_tree::_S_upper_bound_tr, _Rb_tree::_M_find_tr, _Rb_tree::_M_count_tr, _Rb_tree::_M_lower_bound_tr, _Rb_tree::_M_upper_bound_tr, _Rb_tree::_M_equal_range_tr): Likewise. * testsuite/23_containers/map/operations/2.cc: New. * testsuite/23_containers/multimap/operations/2.cc: New. * testsuite/23_containers/multiset/operations/2.cc: New. * testsuite/23_containers/set/operations/2.cc: New. 2015-01-20 Jonathan Wakely * config/abi/pre/gnu.ver: Export new constructors. * include/bits/codecvt.h (codecvt_byname): Add string constructor. (codecvt_byname, codecvt_byname): Define explicit specializations and declare explicit instantiations. * include/bits/locale_classes.h (locale, collate_byname): Add string constructors. * include/bits/locale_facets.h (ctype_byname, numpunct_byname): Likewise. * include/bits/locale_facets_nonio.h (time_get_byname, time_put_byname, moneypunct_byname, messages_byname): Likewise. * src/c++11/codecvt.cc (codecvt_byname, codecvt_byname): Define explicit instantiations. * src/c++11/locale-inst.cc (time_put_byname, codecvt_byname): Instantiate string constructors. (ctype_byname): Define string constructor. * testsuite/22_locale/codecvt_byname/1.cc: New. * testsuite/22_locale/collate_byname/1.cc: New. * testsuite/22_locale/ctype_byname/2.cc: New. * testsuite/22_locale/messages_byname/1.cc: New. * testsuite/22_locale/moneypunct_byname/1.cc: New. * testsuite/22_locale/numpunct_byname/1.cc: New. 2015-01-20 Jonathan Wakely PR libstdc++/64658 * include/std/atomic (atomic_init): Define. * testsuite/29_atomics/atomic/64658.cc: New. 2015-01-19 Tim Shen PR libstdc++/64649 * include/bits/regex.tcc (regex_traits<>::lookup_collatename, regex_traits<>::lookup_classname): Support forward iterators. * testsuite/28_regex/traits/char/lookup_classname.cc: New testcases. * testsuite/28_regex/traits/char/lookup_collatename.cc: New testcase. 2015-01-19 Tim Shen PR libstdc++/64584 PR libstdc++/64585 * include/bits/regex.h (basic_regex<>::basic_regex, basic_regex<>::assign, basic_regex<>::imbue, basic_regex<>::swap, basic_regex<>::mark_count): Drop NFA after imbuing basic_regex; Make assign() transactional against exception. * include/bits/regex_compiler.h (__compile_nfa<>): Add back __compile_nfa SFINAE. * include/std/regex: Adjust include order to avoid __compile_nfa forward declaration. * testsuite/28_regex/basic_regex/assign/char/string.cc: New testcase. * testsuite/28_regex/basic_regex/imbue/string.cc: New testcase. 2015-01-19 Ville Voutilainen Jonathan Wakely * include/bits/range_access.h (begin, end): Use _GLIBCXX14_CONSTEXPR on overloads for arrays. (cbegin, cend, rbegin, rend, crbegin, crend): New. * testsuite/24_iterators/range_access_cpp14.cc: New. 2015-01-18 Jonathan Wakely PR libstdc++/64646 * include/bits/stl_algo.h (__is_permutation): Also test for reaching end of the second range. * testsuite/25_algorithms/is_permutation/64646.cc: New. 2015-01-18 Jonathan Wakely * doc/xml/manual/status_cxx2011.xml: Remove note about offsetof. * doc/html/manual/status.html: Regenerate. 2015-01-18 Jonathan Wakely * include/bits/atomic_futex.h: Use mutex and condition_variable when atomic int is not lock-free. Make member variables private. * src/c++11/futex.cc: Likewise. * src/c++11/futex.cc: Fix order of includes and preprocessor condition. 2015-01-17 Jonathan Wakely PR libstdc++/64638 * include/bits/atomic_futex.h: Use appropriate config macros for availability of std::mutex, std::condition and std::chrono. 2015-01-17 Ville Voutilainen Jonathan Wakely * doc/xml/manual/status_cxx2011.xml: Update C++11 status. * doc/html/*: Regenerate. 2015-01-17 Jonathan Wakely DR 488 PR libstdc++/58357 * include/bits/algorithmfwd.h (rotate): Return an iterator. * include/bits/stl_algo.h (rotate, __rotate): Likewise. * testsuite/25_algorithms/rotate/dr488.cc: New. * testsuite/25_algorithms/rotate/check_type.cc: Adjust function type. * testsuite/25_algorithms/rotate/requirements/explicit_instantiation/ 2.cc: Likewise. * testsuite/25_algorithms/rotate/requirements/explicit_instantiation/ pod.cc: Likewise. 2015-01-17 Jonathan Wakely PR libstdc++/60940 * include/bits/atomic_base.h: Remove atomic integral typedefs as synonyms for __atomic_base etc. * include/std/atomic: Make atomic_int a synonym for atomic and likewise for all atomic integral types. * testsuite/29_atomics/atomic_integral/cons/copy_list.cc: New. * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error line number. 2015-01-17 Jonathan Wakely PR libstdc++/56785 * include/std/tuple (_Tuple_impl): Remove zero-element specialization and define one-element specialization. * testsuite/20_util/tuple/56785.cc: New. 2015-01-17 Jonathan Wakely * testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc: Remove unused header. * testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc: Likewise. * testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc: Likewise. 2015-01-16 Jonathan Wakely * include/bits/locale_conv.h (wstring_convert, wbuffer_convert): New. * include/std/locale: Include new header. * include/Makefile.am: Add it. * include/Makefile.in: Regenerate. * testsuite/22_locale/conversions/buffer/requirements/typedefs.cc: New. * testsuite/22_locale/conversions/string/1.cc: New. * testsuite/22_locale/conversions/string/2.cc: New. * testsuite/22_locale/conversions/string/requirements/typedefs.cc: New. * testsuite/22_locale/conversions/string/requirements/typedefs-2.cc: New. 2015-01-16 Jonathan Wakely * config/abi/pre/gnu.ver: Export new symbols. * include/Makefile.am: Add codecvt. * include/Makefile.in: Regenerate. * include/std/codecvt: New header. * src/c++11/codecvt.cc (__codecvt_utf8_base, __codecvt_utf16_base, __codecvt_utf8_utf16_base): Define specializations. * testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc: New. * testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc: New. * testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc: New. 2015-01-16 Torvald Riegel * src/c++11/futex.cc: New file. * include/bits/atomic_futex.h: New file. * include/std/future (__future_base::_State_baseV2): Use atomic_futex_unsigned instead of mutex+condvar. * src/c++11/futex.cc: Likewise. * include/Makefile.am: Add atomic_futex.h. * include/Makefile.in: Likewise. * src/c++11/Makefile.am: Add futex.cc. * src/c++11/Makefile.in: Likewise. 2015-01-16 Jonathan Wakely * acinclude.m4: Fix typo in comment. * configure: Regenerate. * include/bits/codecvt.h (codecvt, codecvt): Declare specializations. * include/bits/locale_facets.h: Reserve space for new specializations. * src/c++11/Makefile.am: Add codecvt.cc. * src/c++11/Makefile.in: Regenerate. * src/c++11/codecvt.cc: New. * src/c++98/Makefile.am: Compile locale_init.cc and localename.cc with -std=gnu++11. * src/c++98/Makefile.in: Regenerate. * src/c++98/locale_init.cc: Initialize new codecvt specializations. * src/c++98/localename.cc: Likewise. * config/abi/pre/gnu.ver: Exports for new codecvt specializations. * testsuite/22_locale/codecvt/utf8.cc: New. * testsuite/22_locale/locale/cons/unicode.cc: Check that new specializations are installed in locale objects. 2015-01-16 Torvald Riegel * include/std/shared_mutex (shared_timed_mutex): Add POSIX-based implementation. 2015-01-13 Jonathan Wakely PR libstdc++/64571 * config/abi/pre/gnu.ver: Export fstream functions using new string. 2015-01-12 Jonathan Wakely PR libstdc++/64560 * src/c++11/cxx11-shim_facets.cc (locale::facet::_M_sso_shim): Check for RTTI support. PR libstdc++/64553 * src/c++11/cxx11-shim_facets.cc: Check for wchar_t support. 2015-01-10 Thomas Schwinge * doc/xml/manual/parallel_mode.xml: Update for libgomp being renamed from "GNU OpenMP Runtime Library" to "GNU Offloading and Multi Processing Runtime Library". 2015-01-09 Jonathan Wakely PR libstdc++/64476 * include/bits/stl_uninitialized.h (uninitialized_copy): Fix is_assignable arguments. * testsuite/20_util/specialized_algorithms/uninitialized_copy/64476.cc: New. 2015-01-09 Andreas Tobler * libsupc++/unwind-cxx.h: Revert previous commit. 2015-01-09 Andreas Tobler * configure.host: Add arm*-*-freebsd* port_specific_symbol_files. 2015-01-09 Tim Shen PR libstdc++/64239 * include/bits/regex.h (match_results<>::swap): Use std::swap instead of swap. * include/bits/regex_compiler.tcc (_Compiler<>::_M_quantifier): Likewise. * testsuite/28_regex/match_results/swap.cc: New testcase. 2015-01-08 Jonathan Wakely PR libstdc++/60132 * include/std/type_traits (has_trivial_default_constructor, has_trivial_copy_constructor, has_trivial_copy_assign): Add deprecated attribute. * testsuite/20_util/has_trivial_copy_assign/requirements/ explicit_instantiation.cc: Use -Wno-deprecated. * testsuite/20_util/has_trivial_copy_assign/requirements/typedefs.cc: Likewise. * testsuite/20_util/has_trivial_copy_assign/value.cc: Likewise. * testsuite/20_util/has_trivial_copy_constructor/requirements/ explicit_instantiation.cc: Likewise. * testsuite/20_util/has_trivial_copy_constructor/requirements/ typedefs.cc: Likewise. * testsuite/20_util/has_trivial_copy_constructor/value.cc: Likewise. * testsuite/20_util/has_trivial_default_constructor/requirements/ explicit_instantiation.c: Likewise. * testsuite/20_util/has_trivial_default_constructor/requirements/ typedefs.cc: Likewise. * testsuite/20_util/has_trivial_default_constructor/value.cc: Likewise. * testsuite/20_util/pair/requirements/dr801.cc: Replace deprecated trait. * testsuite/20_util/tuple/requirements/dr801.cc: Likewise. * testsuite/util/testsuite_common_types.h: Likewise. 2015-01-08 Jonathan Wakely * include/bits/hashtable_policy.h: Use __bool_constant. 2015-01-07 Jonathan Wakely * libsupc++/Makefile.am: Compile del_ops.cc as C++14. * libsupc++/Makefile.in: Regenerate. 2015-01-06 Jonathan Wakely * config/abi/pre/gnu.ver: Fix version conflict for std::locale::name(). 2015-01-05 Jakub Jelinek Update copyright years. 2015-01-04 Jonathan Wakely PR libstdc++/64483 * testsuite/18_support/exception_ptr/64241.cc: Use dg-require-atomic-builtins. 2015-01-02 Jonathan Wakely * testsuite/21_strings/basic_string/modifiers/64422.cc: Fix copyright date. 2015-01-02 Tim Shen PR libstdc++/64475 * include/bits/regex_executor.tcc (_Executor<>::_M_dfs): Copy the iterator, since the original one shouldn't be mutated. 2015-01-02 Bernd Edlinger PR libstdc++/64422 * src/c++98/misc-inst.cc (string::erase): Add missing overloads. (string::insert): Likewise. (string::replace): Likewise. (wstring::erase): Likewise. (wstring::insert): Likewise. (wstring::replace): Likewise. * testsuite/21_strings/basic_string/modifiers/64422.cc: New testcase. 2015-01-02 Jonathan Wakely PR libstdc++/64468 * doc/doxygen/user.cfg.in: Set correct TAB_SIZE. 2015-01-02 Jonathan Wakely PR libstdc++/64438 * testsuite/21_strings/basic_string/numeric_conversions/char/dr1261.cc: Revert removal of dg-require-string-conversions. * testsuite/21_strings/basic_string/numeric_conversions/char/stod.cc: Likewise. * testsuite/21_strings/basic_string/numeric_conversions/char/stof.cc: Likewise. * testsuite/21_strings/basic_string/numeric_conversions/char/stoi.cc: Likewise. * testsuite/21_strings/basic_string/numeric_conversions/char/stol.cc: Likewise. * testsuite/21_strings/basic_string/numeric_conversions/char/stold.cc: Likewise. * testsuite/21_strings/basic_string/numeric_conversions/char/stoll.cc: Likewise. * testsuite/21_strings/basic_string/numeric_conversions/char/stoul.cc: Likewise. * testsuite/21_strings/basic_string/numeric_conversions/char/ stoull.cc: Likewise. * testsuite/21_strings/basic_string/numeric_conversions/char/ to_string.cc: Likewise. Copyright (C) 2015 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.