aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/ChangeLog
diff options
context:
space:
mode:
authorYvan Roux <yvan.roux@linaro.org>2017-04-04 21:38:30 +0200
committerYvan Roux <yvan.roux@linaro.org>2017-04-04 21:38:30 +0200
commit8888e7889696a6323bf711c5cae0815d5856450a (patch)
treeb5376881a614e2d8dc38e471d31a7a1e6d1d07cd /libstdc++-v3/ChangeLog
parenta3f228934d965534672908b4d3571aa637b5fede (diff)
Merge branches/gcc-6-branch rev 246668.
Change-Id: If1d4497c52a1bdde1390c2377e3f2c16ac2e73b4
Diffstat (limited to 'libstdc++-v3/ChangeLog')
-rw-r--r--libstdc++-v3/ChangeLog136
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