diff options
author | Yvan Roux <yvan.roux@linaro.org> | 2017-04-04 21:38:30 +0200 |
---|---|---|
committer | Yvan Roux <yvan.roux@linaro.org> | 2017-04-04 21:38:30 +0200 |
commit | 8888e7889696a6323bf711c5cae0815d5856450a (patch) | |
tree | b5376881a614e2d8dc38e471d31a7a1e6d1d07cd /libstdc++-v3/ChangeLog | |
parent | a3f228934d965534672908b4d3571aa637b5fede (diff) |
Merge branches/gcc-6-branch rev 246668.
Change-Id: If1d4497c52a1bdde1390c2377e3f2c16ac2e73b4
Diffstat (limited to 'libstdc++-v3/ChangeLog')
-rw-r--r-- | libstdc++-v3/ChangeLog | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 67bf7fb83a7..165d3a2ec1d 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,139 @@ +2017-04-03 Ville Voutilainen <ville.voutilainen@gmail.com> + + Backport from mainline + 2017-04-03 Ville Voutilainen <ville.voutilainen@gmail.com> + + PR libstdc++/79141 + * include/bits/stl_pair.h (__nonesuch_no_braces): New. + (operator=(typename conditional< + __and_<is_copy_assignable<_T1>, + is_copy_assignable<_T2>>::value, + const pair&, const __nonesuch&>::type)): Change __nonesuch + to __nonesuch_no_braces. + (operator=(typename conditional< + __not_<__and_<is_copy_assignable<_T1>, + is_copy_assignable<_T2>>>::value, + const pair&, const __nonesuch&>::type)): Likewise. + (operator=(typename conditional< + __and_<is_move_assignable<_T1>, + is_move_assignable<_T2>>::value, + pair&&, __nonesuch&&>::type)): Likewise. + * testsuite/20_util/pair/79141.cc: New. + +2017-03-28 Jonathan Wakely <jwakely@redhat.com> + + 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 <ryxi@stu.xidian.edu.cn> + + 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 <jwakely@redhat.com> + + 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 <jwakely@redhat.com> + + * include/experimental/iterator: Include <iterator>. + * testsuite/experimental/iterator/requirements.cc: Check for contents + of <iterator>. + +2017-03-17 Jonathan Wakely <jwakely@redhat.com> + + Backport from mainline + 2017-03-17 Jonathan Wakely <jwakely@redhat.com> + + * src/c++11/codecvt.cc (range): Add non-type template parameter and + define oerloaded operators for reading and writing code units. + (range<Elem, false>): 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<const char16_t, false> in order to avoid unaligned reads. + (__codecvt_utf16_base<char16_t>::do_out) + (__codecvt_utf16_base<char32_t>::do_out) + (__codecvt_utf16_base<wchar_t>::do_out): Use range specialization for + unaligned data to avoid unaligned writes. + (__codecvt_utf16_base<char16_t>::do_in) + (__codecvt_utf16_base<char32_t>::do_in) + (__codecvt_utf16_base<wchar_t>::do_in): Likewise for writes. Return + error if there are unprocessable trailing bytes. + (__codecvt_utf16_base<char16_t>::do_length) + (__codecvt_utf16_base<char32_t>::do_length) + (__codecvt_utf16_base<wchar_t>::do_length): Pass arguments of type + range<const char16_t, false> to span functions. + * testsuite/22_locale/codecvt/codecvt_utf16/misaligned.cc: New test. + + Backport from mainline + 2017-03-16 Jonathan Wakely <jwakely@redhat.com> + + 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<wchar_t>::do_out) + (__codecvt_utf16_base<wchar_t>::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<char16_t, char, mbstate_t>) + (codecvt<char32_t, char, mbstate_t>, __codecvt_utf8_base<char16_t>) + (__codecvt_utf8_base<char32_t>, __codecvt_utf8_base<wchar_t>) + (__codecvt_utf16_base<char16_t>, __codecvt_utf16_base<char32_t>) + (__codecvt_utf16_base<wchar_t>, __codecvt_utf8_utf16_base<char16_t>) + (__codecvt_utf8_utf16_base<char32_t>) + (__codecvt_utf8_utf16_base<wchar_t>): 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<char32_t>::do_in): Use native endianness + for internal representation. + (__codecvt_utf8_utf16_base<wchar_t>::do_in): Likewise. + * testsuite/22_locale/codecvt/codecvt_utf8_utf16/79511.cc: New test. + 2017-03-14 Jonathan Wakely <jwakely@redhat.com> * testsuite/17_intro/names.cc: Undefine macros that clash with |