summaryrefslogtreecommitdiff
path: root/libstdc++-v3/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'libstdc++-v3/ChangeLog')
-rw-r--r--libstdc++-v3/ChangeLog159
1 files changed, 159 insertions, 0 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 0734d215691..537100e59f9 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,162 @@
+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
+ identifiers in AIX system headers.
+
+2017-03-13 Ville Voutilainen <ville.voutilainen@gmail.com>
+
+ 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-02 Jonathan Wakely <jwakely@redhat.com>
+
+ 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-14 Jonathan Wakely <jwakely@redhat.com>
+
+ Backport from mainline
+ 2017-01-20 Jonathan Wakely <jwakely@redhat.com>
+
+ 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.
+ * testsuite/experimental/any/misc/any_cast_neg.cc: Adjust dg-error.
+
+ Backport from mainline
+ 2017-01-18 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/69301
+ * include/std/atomic (atomic<T>::load, atomic<T>::exchange): Use
+ aligned buffer instead of default-initialized variable.
+ * testsuite/29_atomics/atomic/69301.cc: New test.
+ * include/ext/pointer.h (_Pointer_adapter::operator++(int))
+ (_Pointer_adapter::operator--(int)): Likewise.
+
+ Backport from mainline
+ 2017-01-16 Jonathan Wakely <jwakely@redhat.com>
+
+ 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 <jwakely@redhat.com>
+
+ 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 <jwakely@redhat.com>
+
+ 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 <jwakely@redhat.com>
PR libstdc++/78346