2017-09-20 Jonathan Wakely Backport from mainline 2017-02-16 Jonathan Wakely PR libstdc++/60936 * src/c++11/snprintf_lite.cc (__concat_size_t): Calculate length written to buffer, not length remaining in buffer. Backport from mainline 2017-02-08 Gerald Pfeifer * src/c++11/snprintf_lite.cc (__err): Update bug reporting URL. 2017-09-18 Jonathan Wakely Backport from mainline 2017-02-03 Jonathan Wakely PR libstdc++/60936 * src/c++11/Makefile.am: Add new files. * src/c++11/Makefile.in: Regenerate. * src/c++11/cow-string-inst.cc [!_GLIBCXX_USE_CXX11_ABI] (operator<<, operator>>, getline): Move explicit instantiations to ... * src/c++11/cow-string-io-inst.cc: ... new file. * src/c++11/cow-wstring-inst.cc [!_GLIBCXX_USE_CXX11_ABI] (operator<<, operator>>, getline): Move explicit instantiations to ... * src/c++11/cow-wstring-io-inst.cc: ... new file. * src/c++11/functexcept.cc (__throw_ios_failure, __throw_system_error) (__throw_future_error, __throw_bad_function_call): (__throw_regex_error): Move functions for C++11 exceptions to the files that define the exception types. * src/c++11/functional.cc (__throw_bad_function_call): Move here. * src/c++11/future.cc (__throw_future_error): Likewise. * src/c++11/ios.cc (__throw_ios_failure): Likewise. * src/c++11/regex.cc (__throw_regex_error): Likewise. * src/c++11/snprintf_lite.cc (__concat_size_t): Print decimal representation directly instead of calling __int_to_char. * src/c++11/sso_string.cc (__sso_string): New file for definition of __sso_string type. * src/c++11/string-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for explicit instantiations of narrow string I/O functions. * src/c++11/system_error.cc (__throw_system_error): Move here. (__sso_string): Move to new file. * src/c++11/wstring-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for explicit instantiations of wide string I/O functions. * src/c++98/misc-inst.cc [_GLIBCXX_USE_CXX11_ABI] (operator<<) (operator>>, getline): Remove explicit instantiations from here. 2017-09-13 Jonathan Wakely PR libstdc++/81468 * include/std/chrono (time_point(const time_point<_Dur2>&)): Add missing constraint from LWG DR 1177. * testsuite/20_util/duration/cons/dr1177.cc: New. * testsuite/20_util/time_point/cons/81468.cc: New. * testsuite/20_util/duration/literals/range.cc: Update dg-error line. * doc/doxygen/mainpage.html: Fix broken URLs. PR libstdc++/81835 * doc/xml/manual/extensions.xml: Replace unstable URL. * doc/html/manual/ext_demangling.html: Regenerate. * libsupc++/cxxabi.h (__cxa_demangle): Fix broken URL. 2017-09-05 Jonathan Wakely * testsuite/20_util/owner_less/noexcept.cc: Remove owner_less tests. 2017-09-04 Jonathan Wakely Backport from mainline 2017-08-09 Jonathan Wakely PR libstdc++/79820 PR libstdc++/81751 * config/io/basic_file_stdio.cc (sys_open(FILE*, ios_base::openmode)): Call fflush on the stream instead of calling sync() while _M_cfile is null. Restore original value of errno. * testsuite/ext/stdio_filebuf/char/79820.cc: New. * testsuite/ext/stdio_filebuf/char/81751.cc: New. Backport from mainline 2017-07-25 Jonathan Wakely PR libstdc++/53984 * include/bits/basic_ios.h (basic_ios::_M_setstate): Adjust comment. * include/bits/istream.tcc (basic_istream::sentry): Handle exceptions during construction. * include/std/istream: Adjust comments for formatted input functions and unformatted input functions. * testsuite/27_io/basic_fstream/53984.cc: New. * testsuite/27_io/basic_istream/sentry/char/53984.cc: New. Backport from mainline 2017-06-08 Jonathan Wakely PR libstdc++/81017 * include/std/functional (function::function(function&&)) (function::operator=(function&&)): Add noexcept. * testsuite/20_util/function/assign/move.cc: Check for noexcept. * testsuite/20_util/function/cons/move.cc: Likewise. Backport from mainline 2017-06-05 Jonathan Wakely * include/bits/shared_ptr_base.h (__shared_ptr::owner_before) (__weak_ptr::owner_before, _Sp_owner_less::operator()): Add noexcept specifiers as per LWG 2873 and LWG 2942. * testsuite/20_util/owner_less/noexcept.cc: New. * testsuite/20_util/shared_ptr/observers/owner_before.cc: Test noexcept guarantees. * testsuite/20_util/weak_ptr/observers/owner_before.cc: Likewise. Backport from mainline 2017-08-31 Jonathan Wakely PR c++/82039 * include/ext/new_allocator.h (__gnu_cxx::new_allocator::allocate): Adjust null pointer constant to avoid warning. Backport from mainline 2017-08-18 Jonathan Wakely PR libstdc++/81891 * include/bits/hashtable.h (_Hashtable(_InputIterator, _InputIterator, size_type, const _H1&, const _H2&, const _Hash&, const _Equal&, const _ExtractKey&, const allocator_type&)): Let destructor do clean up if an exception is thrown. * testsuite/23_containers/unordered_map/cons/81891.cc: New. Backport from mainline 2017-07-31 Marek Polacek PR libstdc++/81599 * include/bits/stl_stack.h: Fix typo. Backport from mainline 2017-07-10 Jonathan Wakely PR libstdc++/81338 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string): Declare basic_stringbuf to be a friend. * include/bits/sstream.tcc (basic_stringbuf::overflow) [_GLIBCXX_USE_CXX11_ABI]: Use unused capacity before reallocating. * include/std/sstream (basic_stringbuf::__xfer_bufptrs): Update string length to buffer length. * testsuite/27_io/basic_stringstream/assign/81338.cc: New. 2017-07-12 Jonathan Wakely * testsuite/30_threads/promise/members/at_thread_exit2.cc: Require atomic builtins. 2017-07-11 Jonathan Wakely Backport from mainline 2017-04-21 Jonathan Wakely PR libstdc++/80316 * include/std/future (_State_baseV2::_Setter::operator()): Remove _S_check calls that are done after the pointer to the shared state is already dereferenced. (_State_baseV2::_Setter<_Res, void>): Define specialization for void as partial specialization so it can be defined within the definition of _State_baseV2. (_State_baseV2::__setter): Call _S_check. (_State_baseV2::__setter(promise*)): Add overload for use by promise::set_value and promise::set_value_at_thread_exit. (promise, promise, promise): Make _State a friend. (_State_baseV2::_Setter): Remove explicit specialization. (promise::set_value, promise::set_value_at_thread_exit): Use new __setter overload. * testsuite/30_threads/promise/members/at_thread_exit2.cc: New test. * testsuite/30_threads/promise/members/set_exception.cc: Test promise and promise specializations. * testsuite/30_threads/promise/members/set_exception2.cc: Likewise. Test for no_state error condition. * testsuite/30_threads/promise/members/set_value2.cc: Likewise. 2017-07-04 Release Manager * GCC 6.4.0 released. 2017-06-16 Jonathan Wakely * include/bits/locale_conv.h (wbuffer_convert::sync): Fix condition. * testsuite/22_locale/conversions/buffer/2.cc: New. * doc/xml/manual/appendix_contributing.xml: Link to the list of bad names, and link to the test docs and note higher DejaGnu version requirement. * doc/xml/manual/allocator.xml: Fix ViewCVS URLs. * doc/xml/manual/mt_allocator.xml: Likewise. * doc/html/*: Regenerate. * include/bits/locale_conv.h (wbuffer_convert::_M_put): Add missing return statement. * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc: Add missing return statements. * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc: Likewise. 2017-06-07 Jonathan Wakely PR libstdc++/81002 * include/bits/regex_compiler.h (__compile_nfa): Add template argument list to specify traits type. * testsuite/28_regex/basic_regex/ctors/basic/iter.cc: New. 2017-05-26 Jonathan Wakely Backport from mainline 2017-01-20 Joe Seymour * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): Support uint20_t. * configure: Regenerate. Backport from mainline 2016-12-06 Felipe Magno de Almeida * src/c++11/cow-stdexcept.cc: Add special case for 16 bit pointers. 2017-05-18 Jonathan Wakely Backport from mainline 2016-08-02 Jonathan Wakely * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/ check_value.cc: Do not add special functions to namespace std in TR1 test. Backport from mainline 2016-08-02 Jonathan Wakely * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Only run for C++11 and later. * testsuite/ext/special_functions/conf_hyperg/check_value.cc: Likewise. * testsuite/ext/special_functions/conf_hyperg/compile.cc: Likewise. * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise. * testsuite/ext/special_functions/hyperg/check_value.cc: Likewise. * testsuite/ext/special_functions/hyperg/compile.cc: Likewise. * testsuite/special_functions/01_assoc_laguerre/check_nan.cc: Likewise. * testsuite/special_functions/01_assoc_laguerre/check_value.cc: Likewise. * testsuite/special_functions/01_assoc_laguerre/compile.cc: Likewise. * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: Likewise. * testsuite/special_functions/02_assoc_legendre/check_nan.cc: Likewise. * testsuite/special_functions/02_assoc_legendre/check_value.cc: Likewise. * testsuite/special_functions/02_assoc_legendre/compile.cc: Likewise. * testsuite/special_functions/02_assoc_legendre/compile_2.cc: * testsuite/special_functions/03_beta/check_nan.cc: Likewise. * testsuite/special_functions/03_beta/check_value.cc: Likewise. * testsuite/special_functions/03_beta/compile.cc: Likewise. * testsuite/special_functions/03_beta/compile_2.cc: Likewise. * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: Likewise. * testsuite/special_functions/04_comp_ellint_1/check_value.cc: Likewise. * testsuite/special_functions/04_comp_ellint_1/compile.cc: Likewise. * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Likewise. * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: Likewise. * testsuite/special_functions/05_comp_ellint_2/check_value.cc: Likewise. * testsuite/special_functions/05_comp_ellint_2/compile.cc: Likewise. * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Likewise. * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: Likewise. * testsuite/special_functions/06_comp_ellint_3/check_value.cc: Likewise. * testsuite/special_functions/06_comp_ellint_3/compile.cc: Likewise. * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Likewise. * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: Likewise. * testsuite/special_functions/07_cyl_bessel_i/check_value.cc: Likewise. * testsuite/special_functions/07_cyl_bessel_i/compile.cc: Likewise. * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Likewise. * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: Likewise. * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: Likewise. * testsuite/special_functions/08_cyl_bessel_j/check_value.cc: Likewise. * testsuite/special_functions/08_cyl_bessel_j/compile.cc: Likewise. * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Likewise. * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: Likewise. * testsuite/special_functions/09_cyl_bessel_k/check_value.cc: Likewise. * testsuite/special_functions/09_cyl_bessel_k/compile.cc: Likewise. * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Likewise. * testsuite/special_functions/10_cyl_neumann/check_nan.cc: Likewise. * testsuite/special_functions/10_cyl_neumann/check_value.cc: Likewise. * testsuite/special_functions/10_cyl_neumann/compile.cc: Likewise. * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Likewise. * testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise. * testsuite/special_functions/11_ellint_1/check_value.cc: Likewise. * testsuite/special_functions/11_ellint_1/compile.cc: Likewise. * testsuite/special_functions/11_ellint_1/compile_2.cc: Likewise. * testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise. * testsuite/special_functions/12_ellint_2/check_value.cc: Likewise. * testsuite/special_functions/12_ellint_2/compile.cc: Likewise. * testsuite/special_functions/12_ellint_2/compile_2.cc: Likewise. * testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise. * testsuite/special_functions/13_ellint_3/check_value.cc: Likewise. * testsuite/special_functions/13_ellint_3/compile.cc: Likewise. * testsuite/special_functions/13_ellint_3/compile_2.cc: Likewise. * testsuite/special_functions/14_expint/check_nan.cc: Likewise. * testsuite/special_functions/14_expint/check_value.cc: Likewise. * testsuite/special_functions/14_expint/compile.cc: Likewise. * testsuite/special_functions/14_expint/compile_2.cc: Likewise. * testsuite/special_functions/15_hermite/check_nan.cc: Likewise. * testsuite/special_functions/15_hermite/check_value.cc: Likewise. * testsuite/special_functions/15_hermite/compile.cc: Likewise. * testsuite/special_functions/15_hermite/compile_2.cc: Likewise. * testsuite/special_functions/16_laguerre/check_nan.cc: Likewise. * testsuite/special_functions/16_laguerre/check_value.cc: Likewise. * testsuite/special_functions/16_laguerre/compile.cc: Likewise. * testsuite/special_functions/16_laguerre/compile_2.cc: Likewise. * testsuite/special_functions/17_legendre/check_nan.cc: Likewise. * testsuite/special_functions/17_legendre/check_value.cc: Likewise. * testsuite/special_functions/17_legendre/compile.cc: Likewise. * testsuite/special_functions/17_legendre/compile_2.cc: Likewise. * testsuite/special_functions/18_riemann_zeta/check_nan.cc: Likewise. * testsuite/special_functions/18_riemann_zeta/check_value.cc: Likewise. * testsuite/special_functions/18_riemann_zeta/compile.cc: Likewise. * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Likewise. * testsuite/special_functions/19_sph_bessel/check_nan.cc: Likewise. * testsuite/special_functions/19_sph_bessel/check_value.cc: Likewise. * testsuite/special_functions/19_sph_bessel/compile.cc: Likewise. * testsuite/special_functions/19_sph_bessel/compile_2.cc: Likewise. * testsuite/special_functions/20_sph_legendre/check_nan.cc: Likewise. * testsuite/special_functions/20_sph_legendre/check_value.cc: Likewise. * testsuite/special_functions/20_sph_legendre/compile.cc: Likewise. * testsuite/special_functions/20_sph_legendre/compile_2.cc: Likewise. * testsuite/special_functions/21_sph_neumann/check_nan.cc: Likewise. * testsuite/special_functions/21_sph_neumann/check_value.cc: Likewise. * testsuite/special_functions/21_sph_neumann/compile.cc: Likewise. * testsuite/special_functions/21_sph_neumann/compile_2.cc: Likewise. Backport from mainline 2016-07-31 Jonathan Wakely * testsuite/23_containers/list/requirements/dr438/insert_neg.cc: Adjust dg-prune-output pattern for error in C++98 mode. Backport from mainline 2016-07-28 Jonathan Wakely * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc: Adjust dg-prune-output pattern for error in C++98 mode. * 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. Backport from mainline 2016-08-01 Jonathan Wakely * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Use C++98-compatible initialization for array. Backport from mainline 2016-08-01 Jonathan Wakely * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc: Limit test to C++11 and later. Backport from mainline 2016-08-17 Jonathan Wakely * testsuite/20_util/tuple/67844.cc: Require c++11 effective target. * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Likewise. * testsuite/27_io/rvalue_streams.cc: Likewise. Backport from mainline 2016-08-02 Jonathan Wakely * testsuite/18_support/bad_exception/23591_thread-1.c: Skip test if options are present that aren't valid for C. * testsuite/abi/header_cxxabi.c: Likewise. Backport from mainline 2016-04-18 Jonathan Wakely * testsuite/experimental/memory_resource/null_memory_resource.cc: Don't include internal header. * testsuite/experimental/type_erased_allocator/2.cc: Likewise. * testsuite/experimental/type_erased_allocator/uses_allocator.cc: Likewise. Add licence and change to compile-only test. Backport from mainline 2016-08-01 Jonathan Wakely * testsuite/27_io/ios_base/types/fmtflags/case_label.cc: Make test supported for C++11 and later. * testsuite/27_io/ios_base/types/iostate/case_label.cc: Likewise. * testsuite/27_io/ios_base/types/openmode/case_label.cc: Likewise. Backport from mainline 2017-03-23 Jonathan Wakely * testsuite/23_containers/list/operations/78389.cc: Fix for C++11 mode. Fix less-than to define a valid strict weak ordering. Backport from mainline 2017-04-24 Jonathan Wakely PR libstdc++/80504 * include/std/functional (ref, cref): Qualify calls. * testsuite/20_util/reference_wrapper/80504.cc: New test. Backport from mainline 2017-04-24 Jonathan Wakely PR libstdc++/80493 * include/experimental/optional (optional::swap): Fix exception specification. Backport from mainline 2017-04-19 Jonathan Wakely PR libstdc++/80448 * include/experimental/bits/fs_dir.h (directory_iterator) (recursive_directory_iterator): Remove noexcept from defaulted constructors. Backport from mainline 2017-04-03 Jonathan Wakely * testsuite/20_util/reference_wrapper/invoke.cc: Uncomment tests that no longer fail. Backport from mainline 2017-04-03 Jonathan Wakely * include/bits/ios_base.h: Correct comment. * testsuite/util/testsuite_hooks.h: Likewise. Backport from mainline 2017-03-28 Jonathan Wakely PR libstdc++/80137 * include/bits/random.tcc (generate_canonical): Use std::nextafter or numeric_limits::epsilon() to reduce out-of-range values. * testsuite/26_numerics/random/uniform_real_distribution/operators/ 64351.cc: Verify complexity requirement is met. Backport from mainline 2017-03-16 Jonathan Wakely PR libstdc++/67440 * python/libstdcxx/v6/printers.py (find_type): Avoid gdb.Type.name for GDB 7.6 compatibility, use gdb.Type.unqualified instead. Backport from mainline 2017-01-17 Jonathan Wakely PR libstdc++/69699 * doc/xml/manual/abi.xml (abi.versioning.history): Explain why the _GLIBCXX__ macro is not useful. Remove redundant date information and link to the GCC release timeline. (abi.versioning.active): Move partial sentence into the previous paragraph. * doc/html/*: Regenerate. * doc/xml/manual/abi.xml: Document libstdc++.so.6.0.22 version. Backport from mainline 2016-12-21 Jonathan Wakely PR libstdc++/71444 * config/os/mingw32-w64/error_constants.h (address_family_not_supported, address_in_use, address_not_available) (already_connected, connection_aborted, connection_already_in_progress) connection_refused, connection_reset, cross_device_link) (destination_address_required, host_unreachable, message_size) (network_down, network_reset, network_unreachable, no_buffer_space) (no_protocol_option, not_a_socket, not_connected, operation_canceled) (operation_in_progress, operation_not_supported, protocol_error) (protocol_not_supported, too_many_links, too_many_symbolic_link_levels) (value_too_large, wrong_protocol_type): Define. (bad_message, identifier_removed, no_link, no_message_available) (no_message, no_stream_resources, not_a_stream, owner_dead) (state_not_recoverable, stream_timeout, text_file_busy): Define conditionally. * testsuite/19_diagnostics/headers/system_error/errc_std_c++0x.cc: Guard test for no_message with _GLIBCXX_HAVE_ENOMSG. Backport from mainline 2016-11-09 Tim Shen PR libstdc++/78236 * libstdc++-v3/include/bits/regex.h (regex_iterator::regex_iterator()): Define end() as _M_pregex == nullptr. * libstdc++-v3/include/bits/regex.tcc (regex_iterator::operator==(), regex_iterator::operator++()): Fix operator==() and operator++() to look at null-ness of _M_pregex on both sides. * testsuite/28_regex/regression.cc: New testcase. 2017-05-18 Jonathan Wakely * testsuite/libstdc++-prettyprinters/59161.cc: Fix for C++98 mode. 2017-04-03 Ville Voutilainen Backport from mainline 2017-04-03 Ville Voutilainen PR libstdc++/79141 * include/bits/stl_pair.h (__nonesuch_no_braces): New. (operator=(typename conditional< __and_, is_copy_assignable<_T2>>::value, const pair&, const __nonesuch&>::type)): Change __nonesuch to __nonesuch_no_braces. (operator=(typename conditional< __not_<__and_, is_copy_assignable<_T2>>>::value, const pair&, const __nonesuch&>::type)): Likewise. (operator=(typename conditional< __and_, is_move_assignable<_T2>>::value, pair&&, __nonesuch&&>::type)): Likewise. * testsuite/20_util/pair/79141.cc: New. 2017-03-28 Jonathan Wakely PR libstdc++/80137 * include/bits/random.tcc (generate_canonical): Use std::nextafter or numeric_limits::epsilon() to reduce out-of-range values. * testsuite/26_numerics/random/uniform_real_distribution/operators/ 64351.cc: Verify complexity requirement is met. Backport from mainline 2017-03-15  Xi Ruoyao   PR libstdc++/62045 * include/ext/pb_ds/qdetail/binary_heap_/binary_heap_.hpp (is_heap): Remove. (push_heap): Remove the wrong checking using is_heap. (make_heap): Remove the assertion using is_heap. * include/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp (modify): Ditto. (resize_for_insert_if_needed): Add PB_DS_ASSERT_VALID after calling make_heap. Backport from mainline 2017-03-15 Jonathan Wakely PR libstdc++/62045 * testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc: New test. * testsuite/ext/pb_ds/regression/priority_queues.cc: Fix copy&paste error in comment. Backport from mainline 2017-02-23 Jonathan Wakely * include/experimental/iterator: Include . * testsuite/experimental/iterator/requirements.cc: Check for contents of . 2017-03-17 Jonathan Wakely Backport from mainline 2017-03-17 Jonathan Wakely * src/c++11/codecvt.cc (range): Add non-type template parameter and define oerloaded operators for reading and writing code units. (range): Define partial specialization for accessing wide characters in potentially unaligned byte ranges. (ucs2_span(const char16_t*, const char16_t*, ...)) (ucs4_span(const char16_t*, const char16_t*, ...)): Change parameters to range in order to avoid unaligned reads. (__codecvt_utf16_base::do_out) (__codecvt_utf16_base::do_out) (__codecvt_utf16_base::do_out): Use range specialization for unaligned data to avoid unaligned writes. (__codecvt_utf16_base::do_in) (__codecvt_utf16_base::do_in) (__codecvt_utf16_base::do_in): Likewise for writes. Return error if there are unprocessable trailing bytes. (__codecvt_utf16_base::do_length) (__codecvt_utf16_base::do_length) (__codecvt_utf16_base::do_length): Pass arguments of type range to span functions. * testsuite/22_locale/codecvt/codecvt_utf16/misaligned.cc: New test. Backport from mainline 2017-03-16 Jonathan Wakely PR libstdc++/79980 * src/c++11/codecvt.cc (to_integer(codecvt_mode)): Fix target type. PR libstdc++/80041 * src/c++11/codecvt.cc (__codecvt_utf16_base::do_out) (__codecvt_utf16_base::do_in): Convert char arguments to char16_t to work with UTF-16 instead of UTF-8. * testsuite/22_locale/codecvt/codecvt_utf16/80041.cc: New test. * src/c++11/codecvt.cc (codecvt) (codecvt, __codecvt_utf8_base) (__codecvt_utf8_base, __codecvt_utf8_base) (__codecvt_utf16_base, __codecvt_utf16_base) (__codecvt_utf16_base, __codecvt_utf8_utf16_base) (__codecvt_utf8_utf16_base) (__codecvt_utf8_utf16_base): Fix do_encoding() and do_max_length() return values. * testsuite/22_locale/codecvt/codecvt_utf16/members.cc: New test. * testsuite/22_locale/codecvt/codecvt_utf8/members.cc: New test. * testsuite/22_locale/codecvt/codecvt_utf8_utf16/members.cc: New test. PR libstdc++/79980 * include/bits/locale_conv.h (__do_str_codecvt): Set __count on error path. * src/c++11/codecvt.cc (operator&=, operator|=, operator~): Overloads for manipulating codecvt_mode values. (read_utf16_bom): Compare input to BOM constants instead of integral constants that depend on endianness. Take mode parameter by reference and adjust it, to distinguish between no BOM present and UTF-16BE BOM present. (ucs4_in, ucs2_span, ucs4_span): Adjust calls to read_utf16_bom. (surrogates): New enumeration type. (utf16_in, utf16_out): Add surrogates parameter to choose between UTF-16 and UCS2 behaviour. (utf16_span, ucs2_span): Use std::min not std::max. (ucs2_out): Use std::min not std::max. Disallow surrogate pairs. (ucs2_in): Likewise. Adjust calls to read_utf16_bom. * testsuite/22_locale/codecvt/codecvt_utf16/79980.cc: New test. * testsuite/22_locale/codecvt/codecvt_utf8/79980.cc: New test. PR libstdc++/79511 * src/c++11/codecvt.cc (write_utf16_code_point): Don't write 0xffff as a surrogate pair. (__codecvt_utf8_utf16_base::do_in): Use native endianness for internal representation. (__codecvt_utf8_utf16_base::do_in): Likewise. * testsuite/22_locale/codecvt/codecvt_utf8_utf16/79511.cc: New test. 2017-03-14 Jonathan Wakely * testsuite/17_intro/names.cc: Undefine macros that clash with identifiers in AIX system headers. 2017-03-13 Ville Voutilainen PR libstdc++/80034 * include/bits/list.tcc (merge(list&&)): Use const for the size_t in the function and in the catch-block, qualify uses of std::distance. (merge(list&&, _StrictWeakOrdering)): Likewise. * testsuite/23_containers/list/operations/80034.cc: New. 2017-03-10 George Lander * acinclude.m4 (glibcxx_cv_obsolete_isnan): Define _GLIBCXX_INCLUDE_NEXT_C_HEADERS before including math.h. * configure: Regenerate. 2017-03-02 Jonathan Wakely PR libstdc++/79789 * include/bits/ios_base.h (make_error_code, make_error_condition): Likewise. * include/bits/mask_array.h (mask_array): Likewise. * include/bits/regex.h (regex_token_iterator): Likewise. * include/bits/slice_array.h (slice_array): Likewise. * include/std/memory (undeclare_no_pointers): Likewise. * testsuite/17_intro/names.cc: New test. 2017-02-15 Jonathan Wakely PR libstdc++/79114 * testsuite/18_support/nested_exception/79114.cc: Add dg-require. Backport from mainline 2016-12-15 Jonathan Wakely PR libstdc++/59170 * python/libstdcxx/v6/printers.py (StdListIteratorPrinter.to_string) (StdSlistIteratorPrinter.to_string, StdVectorIteratorPrinter.to_string) (StdRbtreeIteratorPrinter.to_string) (StdDequeIteratorPrinter.to_string): Add check for value-initialized iterators. * testsuite/libstdc++-prettyprinters/simple.cc: Test them. * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise. Backport from mainline 2016-12-15 Jonathan Wakely PR libstdc++/59161 * python/libstdcxx/v6/printers.py (StdListIteratorPrinter.to_string) (StdSlistIteratorPrinter.to_string, StdVectorIteratorPrinter.to_string) (StdRbtreeIteratorPrinter.to_string, StdDequeIteratorPrinter.to_string) (StdDebugIteratorPrinter.to_string): Return string instead of gdb.Value. * testsuite/libstdc++-prettyprinters/59161.cc: New test. Backport from mainline 2016-12-15 Jonathan Wakely * python/libstdcxx/v6/printers.py (UniquePointerPrinter.to_string): Remove redundant parentheses. (RbtreeIterator, StdRbtreeIteratorPrinter): Add docstrings. (StdForwardListPrinter.to_string): Remove redundant parentheses. (StdExpOptionalPrinter.to_string): Use string formatting instead of concatenation. (TemplateTypePrinter): Adjust whitespace. Backport from mainline 2016-12-15 Jonathan Wakely * python/libstdcxx/v6/xmethods.py (UniquePtrGetWorker.__init__): Use correct element type for unique_ptr. (UniquePtrGetWorker._supports, UniquePtrDerefWorker._supports): New functions to disable unsupported operators for unique_ptr. (UniquePtrSubscriptWorker): New worker for operator[]. (UniquePtrMethodsMatcher.__init__): Register UniquePtrSubscriptWorker. (UniquePtrMethodsMatcher.match): Call _supports on the chosen worker. (SharedPtrGetWorker, SharedPtrDerefWorker, SharedPtrSubscriptWorker) (SharedPtrUseCountWorker, SharedPtrUniqueWorker): New workers. (SharedPtrMethodsMatcher): New matcher for shared_ptr. (register_libstdcxx_xmethods): Register SharedPtrMethodsMatcher. * testsuite/libstdc++-xmethods/unique_ptr.cc: Test arrays. * testsuite/libstdc++-xmethods/shared_ptr.cc: New test. 2017-02-14 Jonathan Wakely Backport from mainline 2017-01-20 Jonathan Wakely PR libstdc++/72792 * include/bits/alloc_traits.h (__allocator_traits_base::__diff_type) (__allocator_traits_base::__size_type): Remove. (allocator_traits::_Ptr): New class template to detect const and void pointer types without instantiating pointer_traits::rebind unnecessarily. (allocator_traits::_Diff): Likewise for detecting difference_type. (allocator_traits::_Size): New class template to detect size_type without instantiating make_unsigned unnecessarily. * include/bits/ptr_traits.h (pointer_traits::element_type): Use __detected_or_t instead of __detected_or_t_. * include/std/type_traits (__detected_or_t_): Remove. * testsuite/20_util/allocator_traits/members/pointers.cc: New test. Backport from mainline 2017-01-20 Jonathan Wakely PR libstdc++/72792 PR libstdc++/72793 * include/bits/alloc_traits.h (__allocator_traits_base::__rebind): Replace with class template using void_t. (__alloc_rebind): Define in terms of __allocator_traits_base::__rebind. (allocator_traits): Remove unconditional static_assert for rebind_alloc. * include/bits/ptr_traits.h (__replace_first_arg): Remove type member. (pointer_traits::__rebind): Replace with class template using void_t. (pointer_traits::rebind): Define in terms of __rebind. (pointer_traits): Remove unconditional static_assert for rebind. * testsuite/20_util/allocator_traits/members/rebind_alloc.cc: New test. * testsuite/20_util/pointer_traits/rebind.cc: New test. Backport from mainline 2017-01-20 Jonathan Wakely PR libstdc++/69321 * include/experimental/any (__any_caster): Avoid instantiating manager function for types that can't be stored in any. * testsuite/experimental/any/misc/any_cast.cc: Test non-copyable type. Backport from mainline 2017-01-18 Jonathan Wakely PR libstdc++/69301 * include/std/atomic (atomic::load, atomic::exchange): Use aligned buffer instead of default-initialized variable. * testsuite/29_atomics/atomic/69301.cc: New test. * include/experimental/memory (observer_ptr::release): Use reserved name. * include/ext/pointer.h (_Pointer_adapter::operator++(int)) (_Pointer_adapter::operator--(int)): Likewise. Backport from mainline 2017-01-17 Jonathan Wakely PR libstdc++/79114 * libsupc++/nested_exception.h (throw_with_nested): Use decay instead of remove_reference. * testsuite/18_support/nested_exception/79114.cc: New test. Backport from mainline 2017-01-16 Jonathan Wakely PR libstdc++/78702 * include/bits/locale_classes.h (locale::facet::__shim): Change from private to protected. * src/c++11/cxx11-shim_facets.cc (__shim_accessor): Define helper to make locale::facet::__shim accessible. Backport from mainline 2017-01-11 Jonathan Wakely PR libstdc++/78134 * include/bits/stl_map.h (map::lower_bound, map::upper_bound) (map::equal_range): Fix return type of heterogeneous overloads. * include/bits/stl_multimap.h (multimap::lower_bound) (multimap::upper_bound, multimap::equal_range): Likewise. * include/bits/stl_multiset.h (multiset::lower_bound) (multiset::upper_bound, multiset::equal_range): Likewise. * include/bits/stl_set.h (set::lower_bound, set::upper_bound) (set::equal_range): Likewise. * testsuite/23_containers/map/operations/2.cc: Check 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. Backport from mainline 2017-01-11 Jonathan Wakely PR libstdc++/78273 * include/bits/stl_map.h (map::count<_Kt>(const _Kt&)): Don't assume the heterogeneous comparison can only find one match. * include/bits/stl_set.h (set::count<_Kt>(const _Kt&)): Likewise. * testsuite/23_containers/map/operations/2.cc: Test count works with comparison function that just partitions rather than sorting. * testsuite/23_containers/set/operations/2.cc: Likewise. 2017-02-01 Jonathan Wakely PR libstdc++/78346 * include/bits/predefined_ops.h (_Iter_equals_iter): Store iterator not its referent. (_Iter_comp_to_iter): Likewise. * testsuite/25_algorithms/search/78346.cc: New test. PR libstdc++/79195 * include/experimental/array (make_array): Use common_type<_Dest> and delay instantiation of common_type until after conditional_t. Qualify std::forward call. (to_array): Add exception specification. * testsuite/experimental/array/make_array.cc: Test argument types without a common type. PR libstdc++/79254 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string::operator=(const basic_string&)): If source object is small just deallocate, otherwise perform new allocation before making any changes. * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc: Test exception-safety of copy assignment when allocator propagates. * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc: Likewise. * testsuite/util/testsuite_allocator.h (uneq_allocator::swap): Make std::swap visible. 2017-01-22 Gerald Pfeifer Backport from mainline 2017-01-01 Gerald Pfeifer * doc/xml/faq.xml: Update address of C++ ABI link. * doc/xml/manual/abi.xml: Ditto. 2017-01-16 Ville Voutilainen Backport from mainline 2017-01-16 Ville Voutilainen PR libstdc++/78389 * include/bits/list.tcc (merge(list&&)): Fix backwards size adjustments. (merge(list&&, _StrictWeakOrdering)): Likewise. * testsuite/23_containers/list/operations/78389.cc: Add better test for the sizes. 2017-01-15 Ville Voutilainen Backport from mainline 2017-01-13 Ville Voutilainen PR libstdc++/78389 * include/bits/list.tcc (merge(list&&)): Adjust list sizes if the comparator throws. (merge(list&&, _StrictWeakOrdering)): Likewise. * testsuite/23_containers/list/operations/78389.cc: New. 2017-01-15 Ville Voutilainen Backport from mainline 2016-12-19 Ville Voutilainen Make the perfect-forwarding constructor of a two-element tuple sfinae away when the first argument is an allocator_arg. * include/std/tuple (tuple(_U1&&, _U2&&)): Constrain. * testsuite/20_util/tuple/cons/allocator_with_any.cc: New. 2017-01-06 Jonathan Wakely Backport from mainline 2017-01-03 Jonathan Wakely PR libstdc++/78956 * include/std/thread (thread(const thread&&)): Add deleted constructor. * testsuite/30_threads/thread/cons/lwg2097.cc: New test. 2017-01-06 Jonathan Wakely PR libstdc++/78991 * include/bits/predefined_ops.h (_Iter_comp_iter, _Iter_comp_val) (_Val_comp_iter, _Iter_equals_val, _Iter_pred, _Iter_comp_to_val) (_Iter_comp_to_iter, _Iter_negate): Make constructors explicit. * testsuite/25_algorithms/sort/78991.cc: New test. 2016-12-21 Release Manager * GCC 6.3.0 released. 2016-12-12 Jonathan Wakely Backport from mainline 2016-10-26 Uros Bizjak * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Include for PATH_MAX in realpath test. * configure: Regenerate. Backport from mainline 2016-05-25 Jonathan Wakely * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Fix test for sendfile. * configure: Regenerate. * config.h.in: Regenerate. 2016-12-12 Jonathan Wakely Backport from mainline 2016-12-07 Jonathan Wakely * testsuite/18_support/headers/new/synopsis.cc: Add C++14 declarations and use effective-target to do test for C++11 and later. * testsuite/18_support/headers/new/synopsis_cxx98.cc: New test. 2016-12-12 Jonathan Wakely Backport from mainline 2016-11-22 Jonathan Wakely PR libstdc++/78465 * testsuite/29_atomics/headers/atomic/macros.cc: Replace runtime tests with preprocessor conditions. 2016-12-12 Jonathan Wakely Backport from mainline 2016-10-19 Jonathan Wakely * include/experimental/bits/shared_ptr.h (experimental::shared_ptr): Change relevant constructors to call _M_enable_shared_from_this_with. (experimental::shared_ptr::__efst_base_t) (experimental::shared_ptr::__has_efst_base): Helpers to detect accessible and unambiguous enable_shared_from_this bases. (experimental::shared_ptr::_M_enable_shared_from_this_with): Define. (experimental::__enable_shared_from_this_helper): Remove overload for std::experimental::enable_shared_from_this. (experimental::__expt_enable_shared_from_this_base): Define friend function to select a std::experimental::enable_shared_from_this base. * testsuite/experimental/memory/shared_ptr/cons/ enable_shared_from_this.cc: New test. * testsuite/experimental/memory/shared_ptr/cons/unique_ptr_ctor.cc: Adjust expected behaviour for shared_ptr. 2016-12-12 Jonathan Wakely * testsuite/experimental/filesystem/operations/is_empty.cc: Remove stray character at end of dg-do directive. 2016-12-12 Jonathan Wakely Backport from mainline PR libstdc++/70975 PR libstdc++/71337 PR libstdc++/78111 * include/experimental/bits/fs_dir.h (recursive_directory_iterator): Overload pop (LWG 2706). * include/experimental/bits/fs_fwd.h (perms::resolve_symlinks): Replace with symlink_nofollow (LWG 2720). * include/experimental/bits/fs_ops.h (exists(const path&, error_code&)): Clear error if status is known (LWG 2725). * include/experimental/bits/fs_path.h (__is_path_src) (_S_range_begin, _S_range_end): Overload to treat string_view as a Source object. (path::operator+=, path::compare): Overload for basic_string_view. (path::path(string_type&&)) (path::operator=(string&&), path::assign(string_type&&)): Define construction and assignment from string_type rvalues (LWG 2707). (path::_S_convert<_Iter>(_Iter, _Iter)): Remove cv-qualifiers from iterator's value_type. (path::_S_convert<_Iter>(_Iter __first, __null_terminated)): Likewise. Do not use operation not supported by input iterators. (path::__is_path_iter_src): Add partial specialization for const encoded character types. * src/filesystem/dir.cc (open_dir): Return same value for errors whether ignored or not. (_Dir::advance(error_code*, directory_options)): Return false on error. (directory_iterator(const path&, directory_options, error_code*)): Create end iterator on error (LWG 2723). (recursive_directory_iterator(const path&, directory_options, error_code*)): Likewise. (recursive_directory_iterator::increment): Reset state on error. (recursive_directory_iterator::pop): Define new overload. * src/filesystem/ops.cc (canonical): Set error for non-existent path. (file_time): Take error_code parameter and check for overflow. (close_fd): Remove. (do_copy_file): Report an error if source or destination is not a regular file (LWG 2712). Pass error_code in file_time calls. Just use close(3) instead of close_fd, to prevent retrying on error. Check if _GLIBCXX_USE_FCHMODAT is defined. [_GLIBCXX_USE_SENDFILE]: Fallback to read/write operations in case sendfile fails with ENOSYS or EINVAL. Pass non-null pointer to sendfile for offset argument. (copy): Update comment to refer to LWG 2681. Implement 2682 and 2683 resolutions. (equivalent): Fix error handling and result when only one file exists. (is_empty): Fix error handling. (last_write_time(const path&, error_code&)): Pass error_code in file_time calls. (last_write_time(const path&, file_time_type, error_code&)): Handle negative times correctly. (permissions(const path&, perms, error_code&)): Handle symlink_nofollow. (read_symlink): Add missing ec.clear(). (status(const path&, error_code&)): Handle EOVERFLOW. (temp_directory_path): Pass error_code argument to other filesystem operations. * testsuite/experimental/filesystem/iterators/directory_iterator.cc: Update expected behaviour on error. * testsuite/experimental/filesystem/iterators/pop.cc: New. * testsuite/experimental/filesystem/iterators/ recursive_directory_iterator.cc: Update expected behaviour on error. * testsuite/experimental/filesystem/operations/copy.cc: Update expected behaviour for copying directories with create_symlinks. Verify that error_code arguments are cleared if there's no error. Remove files created by tests. Test copying directories. * testsuite/experimental/filesystem/operations/copy_file.cc: Remove files created by tests. * testsuite/experimental/filesystem/operations/create_symlink.cc: New. * testsuite/experimental/filesystem/operations/equivalent.cc: New. * testsuite/experimental/filesystem/operations/exists.cc: Test overload taking an error_code. * testsuite/experimental/filesystem/operations/is_empty.cc: New. * testsuite/experimental/filesystem/operations/last_write_time.cc: New. * testsuite/experimental/filesystem/operations/permissions.cc: Test overload taking error_code. Test symlink_nofollow on non-symlinks. * testsuite/experimental/filesystem/operations/read_symlink.cc: New. * testsuite/experimental/filesystem/operations/remove_all.cc: New. * testsuite/experimental/filesystem/operations/temp_directory_path.cc: Add testcase for inaccessible directory. * testsuite/experimental/filesystem/path/construct/range.cc: Test construction from input iterators with const value types. * testsuite/experimental/filesystem/path/construct/string_view.cc: New. * testsuite/util/testsuite_fs.h (scoped_file): Define RAII helper. 2016-12-09 Jonathan Wakely Backport from mainline 2016-12-08 David Edelsohn * testsuite/25_algorithms/headers/algorithm/ parallel_algorithm_assert2.cc: Move dg-do run first. 2016-12-08 Jonathan Wakely PR libstdc++/71856 * doc/xml/manual/using.xml: Document macro. * include/bits/c++config [_GLIBCXX_DEBUG || _GLIBCXX_PARALLEL] (__glibcxx_assert): Rename to __glibcxx_assert_impl. [_GLIBCXX_DEBUG] (__glibcxx_assert): Expand to __glibcxx_assert_impl. * include/parallel/base.h [_GLIBCXX_PARALLEL_ASSERTIONS] (_GLIBCXX_PARALLEL_ASSERT): Expand to __glibcxx_assert_impl. [!_GLIBCXX_PARALLEL_ASSERTIONS] (_GLIBCXX_PARALLEL_ASSERT): Define as empty. * testsuite/25_algorithms/headers/algorithm/ parallel_algorithm_assert2.cc: New test. 2016-12-08 Jonathan Wakely Backport from mainline 2016-11-10 François Dumont PR libstdc++/77459 * src/c++11/debug.cc (format_word): Delete. (print_literal): New. Replace call to print_word for literals. 2016-12-07 Jonathan Wakely Backport from mainline 2016-11-13 Jonathan Wakely PR libstdc++/78326 * include/experimental/memory_resource (memory_resource::_S_max_align): Change access to protected. Backport from mainline 2016-10-19 Jonathan Wakely * testsuite/experimental/memory/shared_ptr/cons/unique_ptr_ctor.cc: Add tests for valid and invalid conversions. * testsuite/experimental/memory/shared_ptr/cons/weak_ptr_ctor.cc: Likewise. Backport from mainline 2016-10-19 Jonathan Wakely * include/experimental/bits/shared_ptr.h (__shared_ptr<__libfund_v1<_Tp, false>, _Lp>::_Compatible): Just use is_convertible for non-array specialization. (__shared_ptr<__libfund_v1<_Tp, false>, _Lp>::_UniqCompatible): New constraint for conversions from unique_ptr. (__shared_ptr<__libfund_v1<_Tp, false>, _Lp>::__shared_ptr): Constrain. (__shared_ptr<__libfund_v1<_Tp, false>, _Lp>::reset): Likewise. (__sp_compatible_v): New variable template for trait. (__sp_is_constructible): New trait to check shared_ptr constraints. (__sp_is_constructible_v): New variable template for trait. (__shared_ptr<__libfund_v1<_Tp, true>, _Lp>::_SafeConv): New constraint for construction/reset, using __sp_is_constructible_v. (__shared_ptr<__libfund_v1<_Tp, true>, _Lp>::_UniqCompatible): New constraint for conversions from unique_ptr. (__shared_ptr<__libfund_v1<_Tp, true>, _Lp>::__shared_ptr): Constrain. (__shared_ptr<__libfund_v1<_Tp, true>, _Lp>::reset): Likewise. (shared_ptr::_SafeConv): Constraint for checking constructors. (shared_ptr(Tp1*), shared_ptr(_Tp1, _Deleter)) (shared_ptr(_Tp1, _Deleter, _Alloc)): Constrain with _SafeConv. (shared_ptr(const weak_ptr<_Tp1>&)): Constrain with _Compatible. (shared_ptr(auto_ptr<_Tp1>&&)): Fix, remove TODO. * testsuite/experimental/memory/shared_ptr/cons/pointer_ctor.cc: Remove tests using invalid conversions. * testsuite/experimental/memory/shared_ptr/cons/pointer_ctor_neg.cc: New test. * testsuite/experimental/memory/shared_ptr/cons/torture.cc: New test. * testsuite/experimental/memory/shared_ptr/modifiers/reset.cc: Remove tests using invalid conversions. * testsuite/experimental/memory/shared_ptr/modifiers/reset_neg.cc: New test. * testsuite/experimental/memory/shared_ptr/observers/use_count.cc: Remove tests using invalid conversions. Backport from mainline 2016-10-18 Jonathan Wakely * include/experimental/bits/shared_ptr.h: Fix indentation. Backport from mainline 2016-10-18 Jonathan Wakely * include/experimental/bits/shared_ptr.h (shared_ptr(shared_ptr&&)): Remove const from parameter. (operator<(const shared_ptr&, nullptr_t)): Use correct specialization of std::less. * testsuite/experimental/memory/shared_ptr/comparison/comparison.cc: Test comparison with nullptr and actually call test functions. Backport from mainline 2016-10-11 Jonathan Wakely * doc/xml/manual/intro.xml: Document LWG 2484 status. * libsupc++/nested_exception.h (_Throw_with_nested_impl) (_Throw_with_nested_helper): Remove. (__throw_with_nested_impl): New overloaded functions to implement throw_with_nested logic. (throw_with_nested): Call __throw_with_nested_impl. (_Rethrow_if_nested_impl): Remove (__rethrow_if_nested_impl): New overloaded functions to implement rethrow_if_nested logic. (rethrow_if_nested): Call __rethrow_if_nested_impl. * testsuite/18_support/nested_exception/rethrow_if_nested.cc: Test problem cases from LWG 2484. Backport from mainline 2016-10-11 Jonathan Wakely * python/libstdcxx/v6/printers.py (build_libstdcxx_dictionary): Register printer for std::__cxx11::list. * python/libstdcxx/v6/xmethods.py (ListMethodsMatcher.match): Match std::__cxx11::list as well as std::list. Backport from mainline 2016-10-12 Jonathan Wakely * doc/xml/manual/intro.xml: Document LWG 2442 status. * include/std/mutex [_GLIBCXX_HAVE_TLS] (__once_call_impl): Remove. (call_once): Use lambda expression and std::__invoke instead of __bind_simple and __once_call_impl. * testsuite/30_threads/call_once/dr2442.cc: New test. Backport from mainline 2016-10-10 Jonathan Wakely * include/bits/allocator.h (allocator::is_always_equal): Define. * testsuite/20_util/allocator/requirements/typedefs.cc: Test for is_always_equal. * testsuite/util/testsuite_allocator.h (uneq_allocator::is_always_equal): Define as false_type. Backport from mainline 2016-10-06 Jonathan Wakely * doc/xml/manual/status_cxx2011.xml: Update status. * include/std/scoped_allocator (__outer_allocator_t, __outermost_type): New helpers for recursive OUTERMOST. (__outermost): Use __outermost_type::_S_outermost. (__do_outermost, scoped_allocator_adaptor::__outermost_type): Remove. (scoped_allocator_adaptor::__outermost_alloc_traits): Use new __outermost_type helper. (scoped_allocator_adaptor::_Constructible): New alias template. (scoped_allocator_adaptor::scoped_allocator_adaptor<_Outer2>): Constrain template constructors. * testsuite/20_util/scoped_allocator/3.cc: New test. * testsuite/20_util/scoped_allocator/outermost.cc: New test. Backport from mainline 2016-08-26 Jonathan Wakely PR libstdc++/51960 * doc/xml/manual/intro.xml: Document DR 2127 change. * doc/html/*: Regenerate. * include/bits/stl_raw_storage_iter.h (operator=(_Tp&&)): Add. (operator++(), operator++(int)): Use injected class name. * testsuite/20_util/raw_storage_iterator/dr2127.cc: New test. Backport from mainline 2016-08-04 Jonathan Wakely * include/std/functional (_Unwrap): Rename to __inv_unwrap. (__invfwd): Adjust. (__invoke_impl): Remove unused template parameters. * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused parameter. * testsuite/20_util/function_objects/invoke/ref_ext.cc: Copy 59768.cc and test __invoke extension for C++11. 2016-12-07 Ville Voutilainen Backport from mainline 2016-12-06 Ville Voutilainen Constrain optional's __constexpr_addressof in its return type and use a constexpr addressof for optional, if available. * include/experimental/optional (__constexpr_addressof): Constrain in the return type instead of in a template parameter. (_Has_addressof_mem) (_Has_addressof_free, _Has_addressof, __constexpr_addressof): Guard with #ifndef __cpp_lib_addressof_constexpr. (operator->()): Use std::__addressof if it's constexpr. 2016-12-06 Aditya Kumar * src/c++11/shared_ptr.cc (_Sp_locker::_Sp_locker(const void* p)): Add noexcept on constructor. (_Sp_locker::_Sp_locker(const void* p1, const void* p2)): Same. 2016-12-01 Rainer Orth Backport from mainline 2016-11-21 Rainer Orth * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Update comments. (__CORRECT_ISO_CPP11_MATH_H_PROTO): Rename to ... (__CORRECT_ISO_CPP11_MATH_H_PROTO_FP): ... this. Add test for C++11 integral overloads. * configure: Regenerate. * config.h.in: Regenerate. * include/c_global/cmath [__cplusplus >= 201103L]: Reflect __CORRECT_ISO_CPP11_MATH_H_PROTO to __CORRECT_ISO_CPP11_MATH_H_PROTO_FP rename. * include/c_global/cmath [_GLIBCXX_USE_C99_MATH && !_GLIBCXX_USE_C99_FP_MACROS_DYNAMIC && __cplusplus >= 201103L] (std::fpclassify): Wrap in !__CORRECT_ISO_CPP11_MATH_H_PROTO_INT. (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. [__cplusplus >= 201103L && _GLIBCXX_USE_C99_MATH_TR1] (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 && __cplusplus >= 201103L]: Reflect __CORRECT_ISO_CPP11_MATH_H_PROTO to __CORRECT_ISO_CPP11_MATH_H_PROTO_FP rename. 2016-11-23 Jonathan Wakely * testsuite/24_iterators/reverse_iterator/71771.cc: Replace calls to C++14 std::rbeing and std::rend. Use dg-options instead of effective-target. * testsuite/27_io/headers/cstdio/functions_neg.cc: Use dg-options instead of effective-target. * testsuite/experimental/numeric/77801.cc: Likewise. 2016-11-23 Felix Morgner Jonathan Wakely PR libstdc++/78490 * include/experimental/propagate_const (propagate_const::operator=): Add missing return statements. * testsuite/experimental/propagate_const/assignment/move_neg.cc: Adjust dg-error line numbers. * testsuite/experimental/propagate_const/requirements2.cc: Likewise. 2016-11-22 Uros Bizjak * testsuite/Makefile.am (check-DEJAGNU $(check_DEJAGNU_normal_targets)): Fix detection of -j argument. * testsuite/Makefile.in: Regenereate. 2016-11-15 Jonathan Wakely * testsuite/experimental/any/typedefs.cc: Fix license text. * testsuite/experimental/array/make_array.cc: Likewise. * testsuite/experimental/array/neg.cc: Likewise. * testsuite/experimental/chrono/value.cc: Likewise. * testsuite/experimental/deque/erasure.cc: Likewise. * testsuite/experimental/forward_list/erasure.cc: Likewise. * testsuite/experimental/list/erasure.cc: Likewise. * testsuite/experimental/map/erasure.cc: Likewise. * testsuite/experimental/memory/observer_ptr/assignment/assign.cc: Likewise. * testsuite/experimental/memory/observer_ptr/cons/cons.cc: Likewise. * testsuite/experimental/memory/observer_ptr/hash/hash.cc: Likewise. * testsuite/experimental/memory/observer_ptr/make_observer.cc: Likewise. * testsuite/experimental/memory/observer_ptr/relops/relops.cc: Likewise. * testsuite/experimental/memory/observer_ptr/requirements.cc: Likewise. * testsuite/experimental/memory/observer_ptr/swap/swap.cc: Likewise. * testsuite/experimental/memory/observer_ptr/typedefs.cc: Likewise. * testsuite/experimental/optional/77288.cc: Likewise. * testsuite/experimental/optional/assignment/1.cc: Likewise. * testsuite/experimental/optional/assignment/2.cc: Likewise. * testsuite/experimental/optional/assignment/3.cc: Likewise. * testsuite/experimental/optional/assignment/4.cc: Likewise. * testsuite/experimental/optional/assignment/5.cc: Likewise. * testsuite/experimental/optional/assignment/6.cc: Likewise. * testsuite/experimental/optional/cons/77727.cc: Likewise. * testsuite/experimental/optional/cons/move.cc: Likewise. * testsuite/experimental/optional/cons/value.cc: Likewise. * testsuite/experimental/optional/cons/value_neg.cc: Likewise. * testsuite/experimental/optional/constexpr/cons/value.cc: Likewise. * testsuite/experimental/optional/constexpr/make_optional.cc: Likewise. * testsuite/experimental/optional/constexpr/observers/1.cc: Likewise. * testsuite/experimental/optional/constexpr/observers/2.cc: Likewise. * testsuite/experimental/optional/constexpr/observers/3.cc: Likewise. * testsuite/experimental/optional/constexpr/observers/4.cc: Likewise. * testsuite/experimental/optional/constexpr/observers/5.cc: Likewise. * testsuite/experimental/optional/constexpr/relops/1.cc: Likewise. * testsuite/experimental/optional/constexpr/relops/2.cc: Likewise. * testsuite/experimental/optional/constexpr/relops/3.cc: Likewise. * testsuite/experimental/optional/constexpr/relops/4.cc: Likewise. * testsuite/experimental/optional/constexpr/relops/5.cc: Likewise. * testsuite/experimental/optional/constexpr/relops/6.cc: Likewise. * testsuite/experimental/optional/make_optional.cc: Likewise. * testsuite/experimental/optional/observers/1.cc: Likewise. * testsuite/experimental/optional/observers/2.cc: Likewise. * testsuite/experimental/optional/observers/3.cc: Likewise. * testsuite/experimental/optional/observers/4.cc: Likewise. * testsuite/experimental/optional/observers/5.cc: Likewise. * testsuite/experimental/optional/relops/1.cc: Likewise. * testsuite/experimental/optional/relops/2.cc: Likewise. * testsuite/experimental/optional/relops/3.cc: Likewise. * testsuite/experimental/optional/relops/4.cc: Likewise. * testsuite/experimental/optional/relops/5.cc: Likewise. * testsuite/experimental/optional/relops/6.cc: Likewise. * testsuite/experimental/optional/requirements.cc: Likewise. * testsuite/experimental/optional/swap/1.cc: Likewise. * testsuite/experimental/optional/typedefs.cc: Likewise. * testsuite/experimental/propagate_const/assignment/move.cc: Likewise. * testsuite/experimental/propagate_const/assignment/move_neg.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. * testsuite/experimental/random/randint.cc: Likewise. * testsuite/experimental/ratio/value.cc: Likewise. * testsuite/experimental/set/erasure.cc: Likewise. * testsuite/experimental/string/erasure.cc: Likewise. * testsuite/experimental/string_view/typedefs.cc: Likewise. * testsuite/experimental/system_error/value.cc: Likewise. * testsuite/experimental/tuple/tuple_size.cc: Likewise. * testsuite/experimental/type_traits/value.cc: Likewise. * testsuite/experimental/unordered_map/erasure.cc: Likewise. * testsuite/experimental/unordered_set/erasure.cc: Likewise. * testsuite/experimental/vector/erasure.cc: Likewise. 2016-10-24 Ville Voutilainen Backport from mainline: 2016-10-24 Ville Voutilainen Cross-port the latest resolution of LWG2756 and some bug-fixes to experimental::optional. PR libstdc++/77288 PR libstdc++/77727 * include/experimental/optional (_Optional_base): Remove constructors that take a _Tp. (__is_optional_impl, __is_optional): Remove. (__converts_from_optional): New. (optional(_Up&&)): Fix constraints, call base with in_place. (optional(const optional<_Up>&)): Fix constraints, use emplace. (optional(optional<_Up>&&)): Likewise. (operator=(_Up&&)): Fix constraints. (operator=(const optional<_Up>&)): Likewise. (operator=(optional<_Up>&&)): Likewise. (emplace(_Args&&...)): Constrain. (emplace(initializer_list<_Up>, _Args&&...)): Likewise. * testsuite/experimental/optional/77288.cc: New. * testsuite/experimental/optional/assignment/5.cc: Adjust. * testsuite/experimental/optional/cons/77727.cc: New. * testsuite/experimental/optional/cons/value.cc: Adjust. 2016-10-20 Jonathan Wakely PR libstdc++/78052 * include/bits/allocator.h (allocator::construct) (allocator::destroy): Define. * testsuite/20_util/allocator/void.cc: New test. 2016-10-19 Jonathan Wakely * testsuite/20_util/unique_ptr/cons/cv_qual.cc: Move negative tests to new file. * testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: New file. Fix test for incompatible deleters to not also use incompatible types. Add tests for incompatible array types. PR libstdc++/77990 * include/bits/unique_ptr.h (unique_ptr::unique_ptr(pointer)): Set pointer member after value-initialization of tuple. * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Adjust dg-errors. * testsuite/20_util/unique_ptr/cons/77990.cc: New test. * testsuite/20_util/unique_ptr/cons/cv_qual.cc: Adjust dg-error. 2016-10-17 Jonathan Wakely PR libstdc++/77987 * include/bits/unique_ptr.h (unique_ptr::reset(U)): Copy value to pointer of the correct type to swap, to support conversions allowed by LWG 2118 / N4089. * testsuite/20_util/unique_ptr/assign/assign_neg.cc: Move test for incompatible deleters from ... * testsuite/20_util/unique_ptr/assign/cv_qual.cc: ... here. * testsuite/20_util/unique_ptr/modifiers/cv_qual.cc: Move tests for incompatible pointers to ... * testsuite/20_util/unique_ptr/modifiers/reset_neg.cc: ... here. Move destructor definition to base class. Test for invalid derived-to-base conversion. 2016-10-17 Jonathan Wakely * testsuite/20_util/function/77322.cc: Remove effective-target from dg-do directive. * testsuite/20_util/function/cons/72820.cc: Likewise. 2016-10-17 Jonathan Wakely Backport from mainline: 2016-10-10 Jonathan Wakely * doc/xml/manual/appendix_contributing.xml (contrib.organization): Replace with nested elements. Update some more outdated text. * doc/html/*: Regenerate. Backport from mainline: 2016-10-10 Jonathan Wakely * doc/xml/manual/appendix_contributing.xml (contrib.organization): Describe other subdirectories and add markup. Remove outdated reference to check-script target. 2016-10-17 Jonathan Wakely Backport from mainline: 2016-10-10 Jonathan Wakely * doc/xml/manual/status_cxx2011.xml: Correct C++11 status. 2016-10-17 Jonathan Wakely Backport from mainline: 2016-10-13 Jonathan Wakely * testsuite/26_numerics/random/default_random_engine.cc: Use VERIFY instead of assert. 2016-10-17 Jonathan Wakely Backport from mainline: 2016-10-11 Jonathan Wakely * include/experimental/string_view (basic_string_view::_S_compare): Remove redundant const from return type. 2016-10-17 Jonathan Wakely Backport from mainline: 2016-10-13 Jonathan Wakely * include/experimental/functional (boyer_moore_searcher) (__boyer_moore_map_base, __boyer_moore_array_base): Qualify containers with _GLIBCXX_STD_C. 2016-10-17 Jonathan Wakely Backport from mainline: 2016-10-13 Jonathan Wakely * include/experimental/propagate_const (element_type): Qualify declval. 2016-10-17 Jonathan Wakely Backport from mainline: 2016-08-22 Jonathan Wakely PR libstdc++/77322 * doc/xml/manual/intro.xml: Document DR 2062 change. * include/std/functional (function::swap): Add noexcept. (swap(function Backport from mainline: 2016-08-17 Jonathan Wakely * testsuite/20_util/reference_wrapper/invoke-2.cc: Fix invalid dg-do directive and use effective target instead of dg-options. 2016-10-17 Jonathan Wakely Backport from mainline: 2016-08-06 Jonathan Wakely PR libstdc++/72820 * include/std/functional (_Function_base::_Base_manager::_M_clone): Qualify new operator. * testsuite/20_util/function/cons/72820.cc: New test. 2016-10-17 Jonathan Wakely PR libstdc++/77994 * include/experimental/algorithm (experimental::sample): Convert size argument to iterator difference type. Fix invalid use of input iterator. Defend against overloaded comma operator. 2016-10-05 Jonathan Wakely PR libstdc++/70101 * include/bits/stl_queue.h (priority_queue): Fix allocator-extended constructors. * testsuite/23_containers/priority_queue/allocator.cc: New test. PR libstdc++/77864 * include/bits/stl_map.h (map::map()): Use nothrow constructibility of comparison function in conditional noexcept. * include/bits/stl_multimap.h (multimap::multimap()): Likewise. * include/bits/stl_multiset.h (multiset::multiset()): Likewise. * include/bits/stl_set.h (set::set()): Likewise. * testsuite/23_containers/map/cons/noexcept_default_construct.cc: New test. * testsuite/23_containers/multimap/cons/noexcept_default_construct.cc: Likewise. * testsuite/23_containers/multiset/cons/noexcept_default_construct.cc: Likewise. * testsuite/23_containers/set/cons/noexcept_default_construct.cc: Likewise. * include/bits/node_handle.h (_Node_handle): Remove invalid and unused alias declaration. PR libstdc++/70564 * include/experimental/functional (_Not_fn): Add second parameter to disambiguate copying from initialization by not_fn. (not_fn): Add second argument to initialization. * testsuite/experimental/functional/not_fn.cc: Copy call wrapper using direct-initialization. Test abstract class. 2016-10-03 Jonathan Wakely PR libstdc++/68323 PR libstdc++/77794 * config/abi/pre/gnu-versioned-namespace.ver: Add exports for __cxa_thread_atexit and __gnu_cxx::__freeres. * include/Makefile.am: Add * include/Makefile.in: Regenerate. * include.bits/basic_string.h: Fix nesting of versioned namespaces. * include/bits/c++config: Declare versioned namespaces for literals. * include/bits/regex.h (basic_regex, match_results): Add workarounds for PR c++/59256. * include/bits/uniform_int_dist.h: Fix nesting of versioned namespace. * include/std/chrono: Likewise. * include/std/complex: Likewise. * include/experimental/bits/fs_fwd.h: Declare versioned namespace. * include/experimental/bits/lfts_config.h: Declare versioned namespaces. * include/experimental/algorithm: Include . * include/experimental/any: Likewise. * include/experimental/bits/erase_if.h: Likewise. * include/experimental/chrono: Likewise. * include/experimental/functional: Likewise. * include/experimental/memory_resource: Likewise. * include/experimental/optional: Likewise. * include/experimental/propagate_const: Likewise. * include/experimental/random: Likewise. * include/experimental/ratio: Likewise. * include/experimental/system_error: Likewise. * include/experimental/tuple: Likewise. * include/experimental/type_traits: Likewise. * include/experimental/utility: Likewise. * include/experimental/string_view: Likewise. Fix nesting of versioned namespaces. * include/experimental/bits/string_view.tcc: Reopen inline namespace for non-inline function definitions. * testsuite/17_intro/using_namespace_std_exp_neg.cc: New test. * testsuite/20_util/duration/literals/range.cc: Adjust dg-error line. * testsuite/experimental/any/misc/any_cast_neg.cc: Likewise. * testsuite/experimental/propagate_const/assignment/move_neg.cc: Likewise. * testsuite/experimental/propagate_const/cons/move_neg.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/ext/profile/mutex_extensions_neg.cc: Likewise. 2016-09-30 Jonathan Wakely PR libstdc++/77795 * acinclude.m4 (GLIBCXX_CHECK_STDIO_PROTO): Use -std=gnu++11 to check for gets. * config.h.in: Regenerate. * configure: Regenerate. * include/c_global/cstdio [!_GLIBCXX_HAVE_GETS] (gets): Only declare for C++98 and C++11. * include/c_std/cstdio [!_GLIBCXX_HAVE_GETS] (gets): Likewise. * testsuite/27_io/headers/cstdio/functions_neg.cc: New test. PR libstdc++/77801 * include/experimental/numeric: Include . (__abs): Define. (gcd, lcm): Use __abs instead of std::abs. * testsuite/experimental/numeric/77801.cc: New test. * testsuite/experimental/numeric/gcd.cc: Test unsigned inputs. * testsuite/experimental/numeric/lcm.cc: Likewise. 2016-09-28 Jonathan Wakely PR libstdc++/77686 * include/std/functional (_Any_data): Add may_alias attribute. 2016-09-27 Jonathan Wakely * include/debug/safe_iterator.h (_Safe_iterator::operator++()): Fix lifetime of lock. 2015-09-27 Sebastian Huber Backport from mainline 2015-09-23 Sebastian Huber * config/cpu/m68k/atomicity.h: Adjust comment. * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Honor explicit atomicity_dir setup via configure.host. * configure.host (rtems-*): Set atomicity_dir. * configure: Regenerate. 2016-09-26 Ville Voutilainen Backport from mainline 2016-09-21 Ville Voutilainen Implement LWG 2729 for pair. * include/bits/stl_pair.h (_PCC): New. (_ConstructiblePair, _ImplicitlyConvertiblePair): Turn into static member functions of _PCC. (_MoveConstructiblePair, _ImplicitlyMoveConvertiblePair): Likewise. (_PCCP): New. (pair(const _T1&, const _T2&)): Adjust. (_PCCFP): New. (pair(const pair<_U1, _U2>&)): Adjust. (pair(_U1&&, const _T2&)): Likewise. (pair(const _T1&, _U2&&)): Likewise. (pair(_U1&&, _U2&&)): Likewise. (pair(pair<_U1, _U2>&&)): Likewise. (operator=(const pair&)): Make conditionally deleted. (operator=(pair&&)): Make conditionally suppressed. (operator=(const pair<_U1, _U2>&)): Constrain. (operator=(pair<_U1, _U2>&&): Likewise. * include/std/type_traits (__nonesuch): New. * testsuite/20_util/pair/traits.cc: New. 2016-09-20 Jonathan Wakely * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.__init__) (DequeWorkerBase.index, VectorWorkerBase.get): Use // for division. 2016-09-19 Jonathan Wakely PR libstdc++/77645 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.__init__) (DequeWorkerBase.index, VectorWorkerBase.get): Cast results of division to int to work with Python 3. PR libstdc++/77645 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.index): Rename argument. (ListWorkerBase.get_value_from_node): Define new method. (ListFrontWorker.__call__, ListBackWorker.__call__): Use it. 2016-08-31 Ville Voutilainen PR libstdc++/77395 * include/std/type_traits (is_constructible): Forward-declare... (__is_base_to_derived_ref): ...and use here. * testsuite/20_util/declval/requirements/1_neg.cc: Adjust. * testsuite/20_util/is_constructible/77395.cc: New. * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust. * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Likewise. * testsuite/20_util/tuple/77395.cc: New. 2016-08-30 Jonathan Wakely Backport from mainline 2016-08-02 Jonathan Wakely * scripts/testsuite_flags.in: Add -fno-show-column to cxxflags. Backport from mainline 2016-07-27 Jonathan Wakely * testsuite/20_util/forward/1_neg.cc: Move dg-error to right line. 2016-08-23 Jonathan Wakely * testsuite/23_containers/map/77334.cc: Use dg-options for C++11. 2016-08-23 Jonathan Wakely PR libstdc++/77334 * include/bits/stl_tree.h (_Rb_tree::_M_move_assign): New functions. (_Rb_tree::operator=(_Rb_tree&&)): Dispatch to _M_move_assign. * testsuite/23_containers/map/77334.cc: New test. * doc/xml/api.xml: Replace hardcoded links for specific versions with link to docs for all releases. * doc/html/*: Regenerate. * include/bits/stl_iterator.h (operator-(reverse_iterator, reverse_iterator): Constrain for C++11 and later. * testsuite/24_iterators/reverse_iterator/71771.cc: New test. 2016-08-22 Release Manager * GCC 6.2.0 released. 2016-08-06 Jonathan Wakely Backport from mainline 2016-08-05 Jonathan Wakely * include/std/functional (function::_Callable): Use lvalue in result_of expression. * testsuite/20_util/function/cons/refqual.cc: New test. Backport from mainline 2016-07-22 Jonathan Wakely PR libstdc++/71964 * include/bits/stl_tree.h (_Rb_tree(_Rb_tree&&)): Move allocator. * testsuite/23_containers/set/allocator/71964.cc: New test. Backport from mainline 2016-08-02 Jonathan Wakely * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc: Remove reundant check for _GLIBCXX_USE_WCHAR_T and fix char type. * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc: Likewise. * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc: Likewise. * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc: Likewise. * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc: Likewise. * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc: Likewise. * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc: Likewise. Backport from mainline 2016-05-04 Jonathan Wakely PR libstdc++/70940 * include/experimental/memory_resource (__resource_adaptor_imp::do_allocate): Do not default-construct rebound allocator. (__resource_adaptor_imp::do_deallocate): Likewise. Use allocator_traits to get pointer type. (__null_memory_resource::do_allocate): Remove unused parameters. (__null_memory_resource::do_deallocate): Likewise. (__null_memory_resource::do_is_equal): Likewise. Add return statement. * testsuite/experimental/type_erased_allocator/1.cc: Combine with ... * testsuite/experimental/type_erased_allocator/1_neg.cc: This, and move to ... * testsuite/experimental/memory_resource/1.cc: Here. * testsuite/experimental/memory_resource/null_memory_resource.cc: New. * testsuite/experimental/memory_resource/resource_adaptor.cc: New. Backport from mainline 2016-08-03 Jonathan Wakely * include/bits/allocator.h (__cpp_lib_incomplete_container_elements): Define feature-test macro. * include/std/shared_mutex (__cpp_lib_shared_mutex): Uncomment. * include/std/type_traits (__cpp_lib_logical_traits): Fix value. Backport from mainline 2016-08-03 Jonathan Wakely * include/bits/stl_function.h: Remove commented-out macro. * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup): Define feature-test macro. * testsuite/experimental/feat-cxx14.cc: Add tests for more macros. * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Improve comments. * doc/xml/manual/status_cxx2011.xml: Change "mainline GCC SVN" to refer to the release series. * doc/xml/manual/status_cxx2014.xml: Likewise. Update TS status. * doc/xml/manual/status_cxx2017.xml: Likewise. * doc/html/manual/status.html: Regenerate. * include/experimental/propagate_const (propagate_const::__t): Rename to _M_t and remove comment. Qualify std::move and std::forward. * testsuite/experimental/propagate_const/cons/default.cc: Fix test. 2016-08-02 Jonathan Wakely * testsuite/lib/libstdc++.exp (v3-build_support): Add -fno-lto to additional flags for compiling libtestc++.a objects. 2016-07-29 Jonathan Wakely * doc/xml/manual/abi.xml: Document 6.0.22 library version. * doc/html/manual/abi.html: Regenerate. 2016-07-19 Jonathan Wakely Backport from mainline 2016-07-14 Jonathan Wakely * include/experimental/functional: Include in Parallel Mode. Backport from mainline 2016-07-14 Jonathan Wakely * testsuite/experimental/functional/searchers.cc: Include for std::search. PR libstdc++/71856 * include/bits/c++config (_GLIBCXX_ASSERTIONS): Define to 1 not empty. * include/parallel/balanced_quicksort.h: Include for sleep. * include/parallel/compiletime_settings.h (_GLIBCXX_ASSERTIONS): Do not define here. Backport from mainline 2016-06-06 Jonathan Wakely PR libstdc++/71320 * src/filesystem/ops.cc (permissions(const path&, perms, error_code&)): Add or remove permissions according to perms argument. * testsuite/experimental/filesystem/operations/permissions.cc: New test. 2016-07-06 Ville Voutilainen Implement LWG 2451, optional should 'forward' T's implicit conversions. * include/experimental/optional (__is_optional_impl, __is_optional): New. (optional()): Make constexpr and default. (optional(_Up&&), optional(const optional<_Up>&), optional(optional<_Up>&& __t): New. (operator=(_Up&&)): Constrain. (operator=(const optional<_Up>&), operator=(optional<_Up>&&)): New. * testsuite/experimental/optional/cons/value.cc: Add tests for the functionality added by LWG 2451. * testsuite/experimental/optional/cons/value_neg.cc: New. 2016-07-05 Ville Voutilainen Implement LWG 2509, any_cast doesn't work with rvalue reference targets and cannot move with a value target. * include/experimental/any (any(_ValueType&&)): Constrain and add an overload that doesn't forward. (any_cast(any&&)): Constrain and add an overload that moves. * testsuite/experimental/any/misc/any_cast.cc: Add tests for the functionality added by LWG 2509. 2016-07-04 Ville Voutilainen PR libstdc++/71313 * src/filesystem/ops.cc (remove_all(const path&, error_code&)): Call remove_all for children of a directory. * testsuite/experimental/filesystem/operations/create_directories.cc: Adjust. 2016-06-17 Jonathan Wakely PR libstdc++/71545 * include/bits/stl_algobase.h (lower_bound, lexicographical_compare): Remove irreflexive checks. * include/bits/stl_algo.h (lower_bound, upper_bound, equal_range, binary_search): Likewise. * testsuite/25_algorithms/equal_range/partitioned.cc: New test. * testsuite/25_algorithms/lexicographical_compare/71545.cc: New test. * testsuite/25_algorithms/lower_bound/partitioned.cc: New test. * testsuite/25_algorithms/upper_bound/partitioned.cc: New test. * testsuite/util/testsuite_iterators.h (__gnu_test::test_container): Add constructor from array. 2016-05-26 Jonathan Wakely Backport from mainline 2016-04-24 Jonathan Wakely PR libstdc++/70762 * testsuite/util/testsuite_fs.h (__gnu_test::nonexistent_path): Use static counter to return a different path on every call. * testsuite/experimental/filesystem/path/native/string.cc: Add dg-require-filesystem-ts directive. 2016-05-25 Jonathan Wakely Backport from mainline 2016-04-20 Jonathan Wakely PR libstdc++/69703 * src/c++11/codecvt.cc (__codecvt_utf8_base::do_in, __codecvt_utf8_utf16_base::do_in): Fix mask operations. Backport from mainline 2016-04-19 Jonathan Wakely PR libstdc++/69703 * src/c++11/codecvt.cc (__codecvt_utf8_base::do_in)): Override endianness bit in mode. * testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: New test. * testsuite/22_locale/codecvt/codecvt_utf8_utf16/66855.cc: Test that little_endian mode is ignored. * testsuite/experimental/filesystem/path/native/string.cc: New test. Backport from mainline 2016-05-10 Jonathan Wakely * include/experimental/bits/fs_dir.h (begin, end): Add noexcept. * testsuite/experimental/filesystem/iterators/directory_iterator.cc: Test begin and end functions. * testsuite/experimental/filesystem/iterators/ recursive_directory_iterator.cc: Likewise. Backport from mainline 2016-05-10 Jonathan Wakely PR libstdc++/71038 * src/filesystem/ops.cc (do_copy_file): Fix backwards conditions. * testsuite/experimental/filesystem/operations/copy_file.cc: New test. Backport from mainline 2016-05-10 Jonathan Wakely * include/experimental/bits/fs_dir.h (__directory_iterator_proxy): Overload operator* to move from rvalues. Backport from mainline 2016-05-10 Jonathan Wakely PR libstdc++/71036 * src/filesystem/ops.cc (create_dir): Handle EEXIST from mkdir. * testsuite/experimental/filesystem/operations/create_directory.cc: New test. Backport from mainline 2016-05-10 Jonathan Wakely PR libstdc++/71037 * src/filesystem/ops.cc (canonical(const path&, const path&)): Add base path to exception. * testsuite/experimental/filesystem/operations/canonical.cc: Test paths contained in exception. Backport from mainline 2016-05-10 Jonathan Wakely PR libstdc++/71005 * include/experimental/bits/fs_dir.h (__directory_iterator_proxy): New type. (directory_iterator::operator++(int)): Return proxy. (recursive_directory_iterator::operator++(int)): Likewise. * testsuite/experimental/filesystem/iterators/directory_iterator.cc: Test post-increment. * testsuite/experimental/filesystem/iterators/ recursive_directory_iterator.cc: Likewise. Backport from mainline 2016-05-09 Jonathan Wakely PR libstdc++/71004 * include/experimental/bits/fs_dir.h (recursive_directory_iterator): Initialize scalar member variables in default constructor. * testsuite/experimental/filesystem/iterators/ recursive_directory_iterator.cc: Test default construction. Backport from mainline 2016-04-19 Jonathan Wakely PR libstdc++/70609 * src/filesystem/ops.cc (close_fd): New function. (do_copy_file): Set permissions before copying file contents. Check result of closing file descriptors. Don't copy streambuf when file is empty. (copy(const path&, const path&, copy_options, error_code&)): Use lstat for source file when copy_symlinks is set. * testsuite/experimental/filesystem/operations/copy.cc: Test copy(). Backport from mainline 2016-04-19 Jonathan Wakely * include/experimental/bits/fs_fwd.h (operator&, operator|, operator^, operator~ operator&=, operator|=, operator^=): Add noexcept to overloaded operators for copy_options, perms and directory_options. * src/filesystem/ops.cc (make_file_type, make_file_status, is_not_found_errno, file_time): Add noexcept. 2016-05-11 Jonathan Wakely PR libstdc++/71049 * src/c++11/cow-stdexcept.cc [!_GLIBCXX_USE_DUAL_ABI]: Don't define exception constructors with __sso_string parameters. 2016-05-09 Ville Voutilainen Avoid endless run-time recursion for copying single-element tuples where the element type is by-value constructible from any type. * include/std/tuple (_NotSameTuple): New. * include/std/tuple (tuple(_UElements&&...): Use it. * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc: New. 2016-04-27 Release Manager * GCC 6.1.0 released. 2016-04-19 Jonathan Wakely * include/bits/random.h: Fix filename in comment. 2016-04-14 Jason Merrill Revert Jonathan's empty ABI change from yesterday. 2016-04-13 Martin Sebor PR c++/69517 * testsuite/25_algorithms/rotate/moveable2.cc: Make sure VLA upper bound is positive. 2016-04-13 Jonathan Wakely * include/bits/c++config (_GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES, _GLIBCXX_END_NAMESPACE_EMPTY_TYPES, _GLIBCXX_ABI_TAG_EMPTY): Define. * include/bits/hashtable.h (_Hashtable::_M_emplace): Change signatures of functions taking empty structs by value. Add a template parameter to overloads without hints. Rename overloads with hints to _M_emplace_hint. (_Hashtable::_M_erase(true_type, const_iterator), _Hashtable::_M_erase(false_type, const_iterator)): Change signatures by reordering parameters. * include/bits/hashtable_policy.h (_Insert::insert): Adjust to call _M_emplace_hint instead of _M_emplace. * include/bits/shared_ptr.h (shared_ptr(_Tp1*, _Deleter, _Alloc), shared_ptr(nullptr_t, _Deleter, _Alloc)): Use _GLIBCXX_ABI_TAG_EMPTY. * include/bits/shared_ptr_base.h (_Sp_counted_deleter, __shared_count, __shared_ptr): Likewise. * include/bits/stl_algo.h (replace_if): Likewise. * include/bits/stl_pair.h (piecewise_construct_t, piecewise_construct): Use _GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES. * include/bits/uses_allocator.h (allocator_arg_t, allocator_arg, __uses_alloc0): Likewise. * include/ext/pb_ds/assoc_container.hpp (basic_hash_table): Likewise. * testsuite/20_util/scoped_allocator/69293_neg.cc: Adjust dg-error. * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise. * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise. * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise. * testsuite/20_util/uses_allocator/cons_neg.cc: Likewise. * testsuite/ext/profile/mutex_extensions_neg.cc: Likewise. 2016-04-12 Edward Smith-Rowland <3dw4rd@verizon.net> Document C++17/TR29124 C++ Special Math Functions. * include/bits/specfun.h: Add Doxygen markup. 2016-04-07 Jonathan Wakely * testsuite/30_threads/thread/70503.cc: Adjust from xfail to pass. 2016-04-06 Eric Botcazou * src/Makefile.am (libstdc++-symbols.ver): Remove useless /dev/null. * src/Makefile.in: Regenerate. 2016-04-05 Jonathan Wakely PR libstdc++/70554 * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Don't test __atomic_fetch_add for bool. * configure: Regenerate. * testsuite/30_threads/thread/70503.cc: Require -static to work. PR libstdc++/70503 * src/c++11/thread.cc (execute_native_thread_routine, execute_native_thread_routine_compat): Give internal linkage. * testsuite/30_threads/thread/70503.cc: New test. 2016-04-05 Ville Voutilainen PR libstdc++/70437 * include/bits/stl_pair.h (_ConstructiblePair, _ImplicitlyConvertiblePair, _MoveConstructiblePair, _ImplicitlyMoveConvertiblePair): Add shortcut conditions for same-type cases. * testsuite/20_util/pair/70437.cc: New. 2016-03-24 Jonathan Wakely PR libstdc++/69945 * config/abi/pre/gnu.ver: Add new symbol. * libsupc++/eh_alloc.cc (__gnu_cxx::__freeres): Define. * testsuite/18_support/free_eh_pool.cc: New test. 2016-03-23 Bernd Edlinger * include/Makefile.am (install-freestanding-headers): Add concept_check.h and move.h to the installed headers. * include/Makefile.in: Regenerated. * include/bits/concept_check.h: Ignore _GLIBCXX_CONCEPT_CHECKS for freestanding implementations. * doc/xml/manual/using.xml (_GLIBCXX_CONCEPT_CHECKS): Mention that this macro has no effect for freestanding implementations. * doc/html/manual/using_macros.html: Likewise. 2016-02-24 Jonathan Wakely PR libstdc++/69939 * include/experimental/tuple (__apply_impl): Qualify get and forward. 2016-02-23 Jonathan Wakely * doc/xml/manual/using.xml: Document __STDCPP_WANT_MATH_SPEC_FUNCS__. * doc/html/*: Regenerate. PR libstdc++/69893 * include/tr1/cmath (acosh, asinh, atanh, cbrt, copysign, erf, erfc, exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb, lgamma, llrint, llround, log1p, log2, logb, lrint, lround, nan, nearbyint, nextafter, nexttoward, remainder, remquo, rint, round, scalbln, scalbn, tgamma, trunc) [__cplusplus >= 201103L]: Import from namespace std. (fabs) [__cplusplus < 201103L]: Import from namespace std. * include/tr1/complex (acosh, asinh, atanh) [__cplusplus >= 201103L]: Likewise. * testsuite/tr1/headers/c++200x/complex.cc: Add std::fabs to global namespace before including TR1 headers. * testsuite/tr1/headers/c++200x/math.cc: New test. 2016-02-23 Bernd Edlinger PR libstdc++/69881 * include/c_global/cstdarg: Undefine __need___va_list. * include/c_global/cstddef: Undefine all kinds of __need_*. 2016-02-16 Tim Shen PR libstdc++/69794 * include/bits/regex_scanner.h: Add different special character sets for grep and egrep regex. * include/bits/regex_scanner.tcc: Use _M_spec_char more uniformly. * testsuite/28_regex/regression.cc: Add new testcase. 2016-02-08 Jonathan Wakely * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Remove accidentally added 'constexpr' in previous commit. * configure: Regenerate. PR libstdc++/48891 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Enable isinf and isnan checks for all targets except *-*-solaris2.* and ensure we find the libc math.h header not our own. * configure: Regenerate. 2016-02-05 Dominik Vogt * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt (FUNC): New file. Copied over from s390-linux-gnu. 2016-02-04 Jonathan Wakely PR libstdc++/69626 * acinclude.m4 (GLIBCXX_ENABLE_C99): Check C99 stdlib.h functions with -std=c++98 and define _GLIBCXX98_USE_C99_STDLIB. * config.h.in: Regenerate. * configure: Regenerate. * testsuite/21_strings/c_strings/char/69626.cc: New. * doc/html/index.html: Regenerate. * doc/xml/manual/containers.xml: Add cross-reference to Dual ABI. * doc/xml/manual/spine.xml: Update copyright years and author blurb. * doc/html/*: Regenerate. 2016-02-01 Bernd Edlinger PR libstdc++/69581 * include/c_compatibility/math.h: Move header guards. * include/c_compatibility/stdlib.h: Likewise. 2016-01-29 Jonathan Wakely PR libstdc++/69506 * config/os/newlib/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define. 2016-01-28 John David Anglin PR libstdc++/69450 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Split check for obsolete isinf and isnan functions into two independent checks. Check on hpux. * config.h.in: Regenerate. * configure: Regenerate. * include/c_global/cmath (isinf(double), isnan(double)): Use _GLIBCXX_HAVE_OBSOLETE_ISINF and _GLIBCXX_HAVE_OBSOLETE_ISNAN, respectively. 2016-01-27 Jakub Jelinek * testsuite/libstdc++-prettyprinters/whatis.cc: Include . 2016-01-27 Jonathan Wakely PR libstdc++/69295 * testsuite/ext/special_functions/hyperg/check_value.cc: Use -ffp-contract=off, and -ffloat-store to disable excess precision. * testsuite/special_functions/02_assoc_legendre/check_value.cc: Use -ffp-contract=off. 2016-01-26 Jonathan Wakely PR libstdc++/69478 * include/bits/stl_algobase.h (__copy_move<_IsMove, true, random_access_iterator_tag>): Check is_move_assignable when moving. (__copy_move_backwards<_IsMove, true, random_access_iterator_tag>): Likewise. * testsuite/25_algorithms/copy/move_iterators/69478.cc: New. * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc: New. * testsuite/25_algorithms/move/69478.cc: New. * testsuite/25_algorithms/move_backward/69478.cc: new. 2016-01-26 Andris Pavenis * include/c_compatibility/stdlib.h: Include wide character related definitions only when they are available in cstdlib. 2016-01-25 Jonathan Wakely PR libstdc++/69464 * include/Makefile.am: Add new header. * include/Makefile.in: Regenerate. * include/bits/random.h (uniform_int_distribution): Move to bits/uniform_int_dist.h. * include/bits/random.tcc (uniform_int_distribution::operator(), uniform_int_distribution::__generate_impl): Likewise. * include/bits/uniform_int_dist.h: New header. * include/bits/stl_algo.h [__cplusplus >= 201103L]: Include instead of . * testsuite/20_util/specialized_algorithms/uninitialized_copy/ move_iterators/1.cc: Include correct header for uninitialized_copy. * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/ move_iterators/1.cc: Likewise. * testsuite/25_algorithms/nth_element/58800.cc: Include correct header for vector. * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lines. 2016-01-23 John David Anglin PR libstdc++/69446 * config/os/hpux/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define. 2016-01-22 Edward Smith-Rowland <3dw4rd@verizon.net> TR29124 C++ Special Math - pulls funcs into global namespace. * include/c_compatibility/math.h: Import the TR29124 functions into the global namespace. * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: Remove xfail and make compile-only. * testsuite/special_functions/02_assoc_legendre/compile_2.cc: Ditto. * testsuite/special_functions/03_beta/compile_2.cc: Ditto. * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Ditto. * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Ditto. * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Ditto. * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Ditto. * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Ditto. * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Ditto. * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Ditto. * testsuite/special_functions/11_ellint_1/compile_2.cc: Ditto. * testsuite/special_functions/12_ellint_2/compile_2.cc: Ditto. * testsuite/special_functions/13_ellint_3/compile_2.cc: Ditto. * testsuite/special_functions/14_expint/compile_2.cc: Ditto. * testsuite/special_functions/15_hermite/compile_2.cc: Ditto. * testsuite/special_functions/16_laguerre/compile_2.cc: Ditto. * testsuite/special_functions/17_legendre/compile_2.cc: Ditto. * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Ditto. * testsuite/special_functions/19_sph_bessel/compile_2.cc: Ditto. * testsuite/special_functions/20_sph_legendre/compile_2.cc: Ditto. * testsuite/special_functions/21_sph_neumann/compile_2.cc: Ditto. 2016-01-22 Jonathan Wakely PR libstdc++/69116 * include/bits/valarray_before.h (__fun, __fun_with_valarray): Only define result_type for types which can be safely used with valarrays. * testsuite/26_numerics/valarray/69116.cc: New. PR libstdc++/69413 * config/os/gnu-linux/os_defines.h: Define _GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC. * include/c_global/cmath (isinf, isnan): Check it. * doc/xml/manual/internals.xml: Document it. * doc/html/*: Regenerate. 2016-01-21 Jonathan Wakely PR libstdc++/69406 * include/bits/cpp_type_traits.h: Ensure C++ language linkage. * include/ext/type_traits.h: Likewise. * testsuite/17_intro/headers/c++2011/linkage.cc: Check autoconf macros for presence of C headers. * testsuite/ext/type_traits/add_unsigned_floating_neg.cc: Adjust dg-error line number. * testsuite/ext/type_traits/add_unsigned_integer_neg.cc: Likewise. * testsuite/ext/type_traits/remove_unsigned_floating_neg.cc: Likewise. * testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Likewise. 2016-01-20 Torvald Riegel PR libstdc++/69310 * config/os/bsd/darwin/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define. 2016-01-20 Jonathan Wakely PR libstdc++/60401 * include/c_compatibility/math.h (acosh, asinh, atanh, acbrt, copysign, erf, erfc, exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb, lgamma, llrint, llround, log1p, log2, logb, lrint, lround, nearbyint, nextafter, nexttoward, remainder, remquo, rint, round, scalbln, scalbn, tgamma, trunc) [__cplusplus >= 201103L && _GLIBCXX_USE_C99_MATH_TR1]: Add using declarations. * testsuite/26_numerics/headers/cmath/60401.cc: New. PR libstdc++/69386 * include/c_global/ccomplex: Ensure C++ language linkage. * include/c_global/cmath: Likewise. * include/c_global/cstdlib: Likewise. * include/c_global/ctgmath: Likewise. * testsuite/17_intro/headers/c++2011/linkage.cc: New. 2016-01-19 Jonathan Wakely PR libstdc++/14608 PR libstdc++/60401 * include/Makefile.am: Use c_compatibility math.h and stdlib.h for --enable-cheaders=c_global configs. * include/Makefile.in: Regenerate. * include/c_compatibility/math.h: Remove obsolete _GLIBCXX_NAMESPACE_C test and allow inclusion from C files. * include/c_compatibility/stdlib.h: Likewise. Support freestanding. (at_quick_exit, quick_exit): Add using directives. * include/c_global/cmath: Use #include_next for math.h. * include/c_global/cstdlib: Use #include_next for stdlib.h. * testsuite/26_numerics/headers/cmath/14608.cc: New. * testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc: Remove xfail for most targets. * testsuite/26_numerics/headers/cstdlib/60401.cc: New. 2016-01-18 Torvald Riegel * include/bits/c++config (_GLIBCXX_USE_WEAK_REF): New. (_GLIBCXX_TXN_SAFE, _GLIBCXX_TXN_SAFE_DYN): Use _GLIBCXX_USE_WEAK_REF and move after its definition. * config/os/aix/os_defines.h (_GLIBCXX_USE_WEAK_REF): Override. * src/c++11/cow-stdexcept.cc: Use _GLIBCXX_USE_WEAK_REF instead of __GXX_WEAK__, and only provide transactional clones if _GLIBCXX_USE_WEAK_REF is true. Don't provide stubs of libitm functions. 2016-01-18 Jonathan Wakely PR libstdc++/60637 * testsuite/26_numerics/headers/cmath/60637.cc: Add test. PR libstdc++/69243 * include/std/functional (_Function_base::_M_not_empty_function): Change overloads for pointers to take arguments by value. * testsuite/20_util/function/cons/57465.cc: Add tests for pointer-to-member cases. PR libstdc++/69340 * src/c++11/cow-stdexcept.cc (_txnal_cow_string_C1_for_exceptions): Use macros for exception handling and fix unused parameter warning. 2016-01-17 John David Anglin PR libstdc++/68734 * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update. 2016-01-17 Torvald Riegel * src/c++11/cow-stdexcept.cc (txnal_read_ptr): Fix static_assert. 2016-01-16 H.J. Lu * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Add __int128 symbols. 2016-01-15 Jonathan Wakely PR libstdc++/69293 * include/bits/uses_allocator.h (__uses_alloc): Add static assertion that type is constructible from the arguments. * testsuite/20_util/scoped_allocator/69293_neg.cc: New. * testsuite/20_util/uses_allocator/69293_neg.cc: New. * testsuite/20_util/uses_allocator/cons_neg.cc: Adjust dg-error. PR libstdc++/69294 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf and isnan on AIX. Quote variables. * configure: Regenerate. 2016-01-15 Torvald Riegel * include/bits/basic_string.h (basic_string): Declare friends. * include/bits/c++config (_GLIBCXX_TXN_SAFE, _GLIBCXX_TXN_SAFE_DYN, _GLIBCXX_USE_ALLOCATOR_NEW): New. * include/std/stdexcept (logic_error, domain_error, invalid_argument, length_error, out_of_range, runtime_error, range_error, underflow_error, overflow_error): Declare members as transaction-safe. (logic_error, runtime_error): Declare friend functions. * libsupc++/exception (exception, bad_exception): Declare members as transaction-safe. * src/c++11/cow-stdexcept.cc: Define transactional clones for the transaction-safe members of exceptions and helper functions. * libsupc++/eh_exception.cc: Adjust and define transactional clones. * config/abi/pre/gnu.ver (GLIBCXX_3.4.22) Add transactional clones. (CXXABI_1.3.10): New. * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): New. (GLIBCXX_ENABLE_ALLOCATOR): Set ENABLE_ALLOCATOR_NEW. * configure.ac: Call GLIBCXX_CHECK_SIZE_T_MANGLING. * include/Makefile.am: Write ENABLE_ALLOCATOR_NEW to c++config.h. * include/Makefile.in: Regenerate. * config.h.in: Regenerate. * configure: Regenerate. * testsuite/util/testsuite_abi.cc (check_version): Add CXXABI_1.3.10. 2016-01-15 Steve Ellcey * include/ext/random.tcc: Use __builtin_isfinite instead of std::isfinite. 2016-01-15 Jonathan Wakely * include/bits/std_mutex.h: Fix Doxygen @file name. 2016-01-14 Edward Smith-Rowland <3dw4rd@verizon.net> Jonathan Wakely Florian Goth Implement TR29124 C++ special Math Functions. * include/Makefile.am: Add new headers. * include/Makefile.in: Regenerate. * include/bits/specfun.h: New. * include/c_global/cmath: Adjust for both tr1 and tr29124 maths. * include/tr1/bessel_function.tcc: Ditto. * include/tr1/beta_function.tcc: Ditto. * include/tr1/cmath: Ditto. * include/tr1/ell_integral.tcc: Ditto. * include/tr1/exp_integral.tcc: Ditto. * include/tr1/gamma.tcc: Ditto. * include/tr1/hypergeometric.tcc: Ditto. * include/tr1/legendre_function.tcc: Ditto. * include/tr1/modified_bessel_func.tcc: Ditto. * include/tr1/poly_hermite.tcc: Ditto. * include/tr1/poly_laguerre.tcc: Ditto. * include/tr1/riemann_zeta.tcc: Ditto. * include/tr1/special_function_util.h: Ditto. * testsuite/ext/special_functions/conf_hyperg: New. * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: New. * testsuite/ext/special_functions/conf_hyperg/check_value.cc: New. * testsuite/ext/special_functions/conf_hyperg/compile.cc: New. * testsuite/ext/special_functions/hyperg: New. * testsuite/ext/special_functions/hyperg/check_nan.cc: New. * testsuite/ext/special_functions/hyperg/check_value.cc: New. * testsuite/ext/special_functions/hyperg/compile.cc: New. * testsuite/libstdc++-dg/conformance.exp: Add special_functions directory. * testsuite/special_functions/01_assoc_laguerre/check_nan.cc: New. * testsuite/special_functions/01_assoc_laguerre/check_value.cc: New. * testsuite/special_functions/01_assoc_laguerre/compile.cc: New. * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: New. * testsuite/special_functions/02_assoc_legendre/check_nan.cc: New. * testsuite/special_functions/02_assoc_legendre/check_value.cc: New. * testsuite/special_functions/02_assoc_legendre/compile.cc: New. * testsuite/special_functions/02_assoc_legendre/compile_2.cc: New. * testsuite/special_functions/03_beta/check_nan.cc: New. * testsuite/special_functions/03_beta/check_value.cc: New. * testsuite/special_functions/03_beta/compile.cc: New. * testsuite/special_functions/03_beta/compile_2.cc: New. * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: New. * testsuite/special_functions/04_comp_ellint_1/check_value.cc: New. * testsuite/special_functions/04_comp_ellint_1/compile.cc: New. * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: New. * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: New. * testsuite/special_functions/05_comp_ellint_2/check_value.cc: New. * testsuite/special_functions/05_comp_ellint_2/compile.cc: New. * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: New. * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: New. * testsuite/special_functions/06_comp_ellint_3/check_value.cc: New. * testsuite/special_functions/06_comp_ellint_3/compile.cc: New. * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: New. * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: New. * testsuite/special_functions/07_cyl_bessel_i/check_value.cc: New. * testsuite/special_functions/07_cyl_bessel_i/compile.cc: New. * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: New. * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: New. * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: New. * testsuite/special_functions/08_cyl_bessel_j/check_value.cc: New. * testsuite/special_functions/08_cyl_bessel_j/compile.cc: New. * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: New. * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: New. * testsuite/special_functions/09_cyl_bessel_k/check_value.cc: New. * testsuite/special_functions/09_cyl_bessel_k/compile.cc: New. * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: New. * testsuite/special_functions/10_cyl_neumann/check_nan.cc: New. * testsuite/special_functions/10_cyl_neumann/check_value.cc: New. * testsuite/special_functions/10_cyl_neumann/compile.cc: New. * testsuite/special_functions/10_cyl_neumann/compile_2.cc: New. * testsuite/special_functions/11_ellint_1/check_nan.cc: New. * testsuite/special_functions/11_ellint_1/check_value.cc: New. * testsuite/special_functions/11_ellint_1/compile.cc: New. * testsuite/special_functions/11_ellint_1/compile_2.cc: New. * testsuite/special_functions/12_ellint_2/check_nan.cc: New. * testsuite/special_functions/12_ellint_2/check_value.cc: New. * testsuite/special_functions/12_ellint_2/compile.cc: New. * testsuite/special_functions/12_ellint_2/compile_2.cc: New. * testsuite/special_functions/13_ellint_3/check_nan.cc: New. * testsuite/special_functions/13_ellint_3/check_value.cc: New. * testsuite/special_functions/13_ellint_3/compile.cc: New. * testsuite/special_functions/13_ellint_3/compile_2.cc: New. * testsuite/special_functions/14_expint/check_nan.cc: New. * testsuite/special_functions/14_expint/check_value.cc: New. * testsuite/special_functions/14_expint/compile.cc: New. * testsuite/special_functions/14_expint/compile_2.cc: New. * testsuite/special_functions/15_hermite/check_nan.cc: New. * testsuite/special_functions/15_hermite/check_value.cc: New. * testsuite/special_functions/15_hermite/compile.cc: New. * testsuite/special_functions/15_hermite/compile_2.cc: New. * testsuite/special_functions/16_laguerre/check_nan.cc: New. * testsuite/special_functions/16_laguerre/check_value.cc: New. * testsuite/special_functions/16_laguerre/compile.cc: New. * testsuite/special_functions/16_laguerre/compile_2.cc: New. * testsuite/special_functions/17_legendre/check_nan.cc: New. * testsuite/special_functions/17_legendre/check_value.cc: New. * testsuite/special_functions/17_legendre/compile.cc: New. * testsuite/special_functions/17_legendre/compile_2.cc: New. * testsuite/special_functions/18_riemann_zeta/check_nan.cc: New. * testsuite/special_functions/18_riemann_zeta/check_value.cc: New. * testsuite/special_functions/18_riemann_zeta/compile.cc: New. * testsuite/special_functions/18_riemann_zeta/compile_2.cc: New. * testsuite/special_functions/19_sph_bessel/check_nan.cc: New. * testsuite/special_functions/19_sph_bessel/check_value.cc: New. * testsuite/special_functions/19_sph_bessel/compile.cc: New. * testsuite/special_functions/19_sph_bessel/compile_2.cc: New. * testsuite/special_functions/20_sph_legendre/check_nan.cc: New. * testsuite/special_functions/20_sph_legendre/check_value.cc: New. * testsuite/special_functions/20_sph_legendre/compile.cc: New. * testsuite/special_functions/20_sph_legendre/compile_2.cc: New. * testsuite/special_functions/21_sph_neumann/check_nan.cc: New. * testsuite/special_functions/21_sph_neumann/check_value.cc: New. * testsuite/special_functions/21_sph_neumann/compile.cc: New. * testsuite/special_functions/21_sph_neumann/compile_2.cc: New. * testsuite/util/specfun_testcase.h: New. * testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/check_value.cc: More testcases. * testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/check_value.cc: Ditto. * testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/check_value.cc: Ditto. * testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/check_value.cc: Ditto. * testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/check_value.cc: Ditto. * testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/check_value.cc: Ditto. * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/check_value.cc: New. 2016-01-13 Jonathan Wakely PR libstdc++/48891 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf and isnan functions. * config.h.in: Regenerate. * configure: Regenerate. * include/c_global/cmath (isinf(double), isnan(double)) [_GLIBCXX_HAVE_OBSOLETE_ISINF_ISNAN]: Import via using-directive. * testsuite/26_numerics/headers/cmath/48891.cc: New. 2016-01-13 Rainer Orth PR libstdc++/66006 * configure.host (abi_baseline_pair): Use separate baseline for Solaris 11+ and Solaris 10 with gld. * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: New file. * config/abi/post/solaris2.11/baseline_symbols.txt: New file. * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: New file. 2016-01-12 Daniel Kruegler PR libstdc++/68877 * include/std/type_traits: Following N4511, reimplement __is_swappable and __is_nothrow_swappable. Move __is_swappable to namespace std, adjust callers. Use __is_nothrow_swappable in swap. * include/bits/move.h: Use __is_nothrow_swappable in swap. * testsuite/20_util/is_nothrow_swappable/value.cc: Extend; remove __is_swappable related tests. * testsuite/20_util/is_swappable/value.cc: New. * testsuite/20_util/is_swappable/requirements/ explicit_instantiation.cc: New. * testsuite/20_util/is_swappable/requirements/typedefs.cc: New. * testsuite/25_algorithms/swap/68877.cc: New. 2016-01-12 Jonathan Wakely * testsuite/20_util/function/68995.cc: Test reference_wrapper cases. PR libstdc++/69005 PR libstdc++/69222 * include/std/functional (function::_Invoke): Remove, use result_of. (function::_Callable): Replace alias template with class template and use partial specialization instead of _NotSelf alias template. (function(_Functor)): Add "not self" constraint so that _Callable is not used while type is incomplete. * testsuite/20_util/function/69222.cc: New. 2016-01-11 Jonathan Wakely PR libstdc++/60976 * include/bits/alloc_traits.h (allocator_traits>): Define partial specialization. * testsuite/20_util/shared_ptr/cons/58659.cc: Add construct and destroy members to std::allocator explicit specialization. 2016-01-08 Jonathan Wakely * testsuite/26_numerics/headers/cmath/ c99_classification_macros_c++.cc: Rename to ... * testsuite/26_numerics/headers/cmath/ c99_classification_macros_c++98.cc: Here and add -std=gnu++98. * testsuite/26_numerics/headers/cmath/ c99_classification_macros_c++0x.cc: Rename to ... * testsuite/26_numerics/headers/cmath/ c99_classification_macros_c++11.cc: Here. PR libstdc++/69190 * include/bits/uses_allocator.h: Add missing include. 2016-01-07 Jonathan Wakely PR libstdc++/69105 PR libstdc++/69106 PR libstdc++/69114 * include/bits/stl_iterator.h (back_insert_iterator, front_insert_iterator, insert_iterator): Use __addressof (LWG 2324). * include/bits/uses_allocator.h (__use_alloc): Use __addressof. * include/std/future (__future::base::_State_baseV2::__setter): Likewise. * include/std/scoped_allocator (__outermost): Likewise. * testsuite/20_util/scoped_allocator/69114.cc: New. * testsuite/20_util/uses_allocator/69114.cc: New. * testsuite/30_threads/promise/69106.cc: New. 2016-01-06 Jonathan Wakely PR libstdc++/69092 * include/bits/basic_string.h (basic_string::_S_copy_chars<_Iterator>): Remove _GLIBCXX_NOEXCEPT. testsuite/21_strings/basic_string/cons/char/69092.cc: New. * include/Makefile.am: Adjust. * include/Makefile.in: Regenerate. * include/bits/mutex.h: Rename to bits/std_mutex.h. * include/std/condition_variable: Adjust include. * include/std/mutex: Likewise. 2016-01-04 Jakub Jelinek Update copyright years. Copyright (C) 2016 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.