PR libstdc++/80041 fix codecvt_utf16<wchar_t> to use UTF-16 not UTF-8
[official-gcc.git] / libstdc++-v3 / ChangeLog
blobcf94ab538e3cd220d30795034702b343b7b76543
1 2017-03-16  Jonathan Wakely  <jwakely@redhat.com>
3         PR libstdc++/80041
4         * src/c++11/codecvt.cc (__codecvt_utf16_base<wchar_t>::do_out)
5         (__codecvt_utf16_base<wchar_t>::do_in): Convert char arguments to
6         char16_t to work with UTF-16 instead of UTF-8.
7         * testsuite/22_locale/codecvt/codecvt_utf16/80041.cc: New test.
9         * src/c++11/codecvt.cc (codecvt<char16_t, char, mbstate_t>)
10         (codecvt<char32_t, char, mbstate_t>, __codecvt_utf8_base<char16_t>)
11         (__codecvt_utf8_base<char32_t>, __codecvt_utf8_base<wchar_t>)
12         (__codecvt_utf16_base<char16_t>, __codecvt_utf16_base<char32_t>)
13         (__codecvt_utf16_base<wchar_t>, __codecvt_utf8_utf16_base<char16_t>)
14         (__codecvt_utf8_utf16_base<char32_t>)
15         (__codecvt_utf8_utf16_base<wchar_t>): Fix do_encoding() and
16         do_max_length() return values.
17         * testsuite/22_locale/codecvt/codecvt_utf16/members.cc: New test.
18         * testsuite/22_locale/codecvt/codecvt_utf8/members.cc: New test.
19         * testsuite/22_locale/codecvt/codecvt_utf8_utf16/members.cc: New test.
21         PR libstdc++/79980
22         * include/bits/locale_conv.h (__do_str_codecvt): Set __count on
23         error path.
24         * src/c++11/codecvt.cc (operator&=, operator|=, operator~): Overloads
25         for manipulating codecvt_mode values.
26         (read_utf16_bom): Compare input to BOM constants instead of integral
27         constants that depend on endianness.  Take mode parameter by
28         reference and adjust it, to distinguish between no BOM present and
29         UTF-16BE BOM present.
30         (ucs4_in, ucs2_span, ucs4_span): Adjust calls to read_utf16_bom.
31         (surrogates): New enumeration type.
32         (utf16_in, utf16_out): Add surrogates parameter to choose between
33         UTF-16 and UCS2 behaviour.
34         (utf16_span, ucs2_span): Use std::min not std::max.
35         (ucs2_out): Use std::min not std::max.  Disallow surrogate pairs.
36         (ucs2_in): Likewise. Adjust calls to read_utf16_bom.
37         * testsuite/22_locale/codecvt/codecvt_utf16/79980.cc: New test.
38         * testsuite/22_locale/codecvt/codecvt_utf8/79980.cc: New test.
40         PR libstdc++/79511
41         * src/c++11/codecvt.cc (write_utf16_code_point): Don't write 0xffff
42         as a surrogate pair.
43         (__codecvt_utf8_utf16_base<char32_t>::do_in): Use native endianness
44         for internal representation.
45         (__codecvt_utf8_utf16_base<wchar_t>::do_in): Likewise.
46         * testsuite/22_locale/codecvt/codecvt_utf8_utf16/79511.cc: New test.
48         PR libstdc++/80064
49         * include/bits/stl_heap.h (__is_heap, push_heap, __adjust_heap)
50         (pop_heap, make_heap, sort_heap, is_heap_until, is_heap): Cope with
51         invalid instantiations using function types for _Compare argument.
52         * testsuite/25_algorithms/make_heap/80064.cc: New test.
54         PR libstdc++/67440
55         * python/libstdcxx/v6/printers.py (find_type): Avoid gdb.Type.name
56         for GDB 7.6 compatibility, use gdb.Type.unqualified instead.
58 2017-03-15  Ville Voutilainen  <ville.voutilainen@gmail.com>
60         Implement LWG 2857, {variant,optional,any}::emplace should
61         return the constructed value.
62         * include/std/any (emplace(_Args&&...)): Change the return type and
63         return a reference to the constructed value.
64         (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
65         * include/std/optional (emplace(_Args&&...)): Likewise.
66         (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
67         * include/std/variant (emplace<_Tp>(_Args&&...)): Likewise.
68         (emplace<_Tp>(initializer_list<_Up>, _Args&&...)): Likewise.
69         (emplace<_Np>(_Args&&...)): Likewise.
70         (emplace<_Np>(initializer_list<_Up>, _Args&&...)): Likewise.
71         * testsuite/20_util/any/assign/emplace.cc: Add tests for
72         checking the return value of emplace.
73         * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
74         * testsuite/20_util/optional/assignment/6.cc: Add tests for
75         checking the return value of emplace.
76         * testsuite/20_util/variant/run.cc: Likewise.
78 2017-03-15  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
80         PR libstdc++/62045
81         * include/ext/pb_ds/qdetail/binary_heap_/binary_heap_.hpp
82         (is_heap): Remove.
83         (push_heap): Remove the wrong checking using is_heap.
84         (make_heap): Remove the assertion using is_heap.
85         * include/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp
86         (modify): Ditto.
87         (resize_for_insert_if_needed): Add PB_DS_ASSERT_VALID after
88         calling make_heap.
90 2017-03-15  Jonathan Wakely  <jwakely@redhat.com>
92         PR libstdc++/62045
93         * testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc:
94         New test.
95         * testsuite/ext/pb_ds/regression/priority_queues.cc: Fix copy&paste
96         error in comment.
98 2017-03-15  Jonathan Wakely  <jwakely@redhat.com>
100         * acinclude.m4 (GLIBCXX_CHECK_S_ISREG_OR_S_IFREG): Fix typo in
101         comment.
102         * config.h.in: Regenerate.
103         * configure: Regenerate.
104         * doc/Makefile.in: Regenerate.
106 2017-03-14  Jonathan Wakely  <jwakely@redhat.com>
108         PR libstdc++/79162
109         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
110         (basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Replace
111         with a constrained template.
112         [!_GLIBCXX_USE_CXX11_ABI]
113         (basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Likewise.
114         * testsuite/21_strings/basic_string/cons/char/79162.cc: New test.
115         * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc: New test.
117 2017-03-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
119         PR libstdc++/80034
120         * include/bits/list.tcc (merge(list&&)): Use const for the size_t
121         in the catch-block.
122         (merge(list&&, _StrictWeakOrdering)): Likewise.
123         * testsuite/23_containers/list/operations/80034.cc: New.
125 2017-03-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
127         Implement LWG 2806, Base class of bad_optional_access.
128         * include/std/optional (bad_optional_access):
129         Derive from std::exception.
130         (bad_optional_access::bad_optional_access): Adjust.
131         (bad_optional_access::what): New.
132         (__throw_bad_optional_access(const char*)):
133         Remove the parameter and adjust calls.
134         * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
135         * testsuite/20_util/optional/typedefs.cc: Likewise.
137 2017-03-12  Ville Voutilainen  <ville.voutilainen@gmail.com>
139         Implement LWG 2934, optional<const T> doesn't compare with T.
140         * include/std/optional
141         (operator==(const optional<_Tp>&, const optional<_Tp>&)):
142         Turn into operator==(const optional<_Tp>&, const optional<_Up>&).
143         (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
144         Turn into operator!=(const optional<_Tp>&, const optional<_Up>&).
145         (operator<(const optional<_Tp>&, const optional<_Tp>&)):
146         Turn into operator<(const optional<_Tp>&, const optional<_Up>&.
147         (operator>(const optional<_Tp>&, const optional<_Tp>&)):
148         Turn into operator>(const optional<_Tp>&, const optional<_Up>&.
149         (operator<=(const optional<_Tp>&, const optional<_Tp>&)):
150         Turn into operator<=(const optional<_Tp>&, const optional<_Up>&).
151         (operator>=(const optional<_Tp>&, const optional<_Tp>&)):
152         Turn into operator>=(const optional<_Tp>&, const optional<_Up>&).
153         (operator==(const optional<_Tp>&, const _Tp&)):
154         Turn into operator==(const optional<_Tp>&, const _Up&).
155         (operator==(const _Tp&, const optional<_Tp>&)):
156         Turn into operator==(const _Up&, const optional<_Tp>&).
157         (operator!=(const optional<_Tp>&, const _Tp&)):
158         Turn into operator!=(const optional<_Tp>&, const _Up&).
159         (operator!=(const _Tp&, const optional<_Tp>&)):
160         Turn into operator!=(const _Up&, const optional<_Tp>&).
161         (operator<(const optional<_Tp>&, const _Tp&)):
162         Turn into operator<(const optional<_Tp>&, const _Up&).
163         (operator<(const _Tp&, const optional<_Tp>&)):
164         Turn into operator<(const _Up&, const optional<_Tp>&).
165         (operator>(const optional<_Tp>&, const _Tp&)):
166         Turn into operator>(const optional<_Tp>&, const _Up&).
167         (operator>(const _Tp&, const optional<_Tp>&)):
168         Turn into operator>(const _Up&, const optional<_Tp>&).
169         (operator<=(const optional<_Tp>&, const _Tp&)):
170         Turn into operator<=(const optional<_Tp>&, const _Up&).
171         (operator<=(const _Tp&, const optional<_Tp>&)):
172         Turn into operator<=(const _Up&, const optional<_Tp>&).
173         (operator>=(const optional<_Tp>&, const _Tp&)):
174         Turn into operator>=(const optional<_Tp>&, const _Up&).
175         (operator>=(const _Tp&, const optional<_Tp>&)):
176         Turn into operator>=(const _Up&, const optional<_Tp>&).
177         * testsuite/20_util/optional/relops/7.cc: New.
179 2017-03-10  Jonathan Wakely  <jwakely@redhat.com>
181         * testsuite/17_intro/names.cc: Undefine macros that clash with
182         identifiers in AIX system headers.
184         * include/bits/invoke.h (__invoke): Use __invoke_result instead of
185         result_of, and __is_nothrow_invocable instead of
186         __is_nothrow_callable.
187         * include/bits/shared_ptr_base.h (__shared_ptr): Use __is_invocable
188         instead of __is_callable.
189         * include/std/functional (invoke): use invoke_result_t instead of
190         result_of_t and is_nothrow_invocable instead of is_nothrow_callable.
191         (_Not_fn): Use __invoke_result instead of result_of.
192         * include/std/type_traits (__result_of_memobj, __result_of_memfun):
193         Remove partial specializations for reference_wrapper types.
194         (__result_of_impl): Use __inv_unwrap to strip reference_wrapper.
195         (__invoke_result): Define replacement for result_of and then use it to
196         define result_of.
197         (__is_callable_impl, __is_callable, __is_nothrow_callable): Replace
198         with __is_invocable_impl, __is_invocable, and __is_nothrow_invocable
199         respectively.
200         (invoke_result, invoke_result_t): Define for C++17.
201         (is_callable, is_nothrow_callable): Replace with is_invocable,
202         is_invocable_r, is_nothrow_invocable, and is_nothrow_invocable_r.
203         (is_callable_v, is_nothrow_callable_v): Replace with is_invocable_v,
204         is_invocable_r_v, is_nothrow_invocable_v, and is_nothrow_invocable_r_v.
205         * include/std/variant (hash<variant<T...>>): Use is_nothrow_invocable_v
206         instead of is_nothrow_callable_v.
207         * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
208         main function.
209         * testsuite/20_util/function_objects/not_fn/1.cc: Use is_invocable
210         instead of is_callable.
211         * testsuite/20_util/is_callable/*: Rename directory and adjust tests
212         to use new traits.
213         * testsuite/20_util/is_nothrow_callable/*: Likewise.
214         * testsuite/20_util/optional/hash.cc: Use is_invocable_v instead of
215         is_callable.
216         * testsuite/20_util/variant/hash.cc: Likewise.
218 2017-03-10  George Lander  <george.lander@arm.com>
220         * acinclude.m4 (glibcxx_cv_obsolete_isnan): Define
221         _GLIBCXX_INCLUDE_NEXT_C_HEADERS before including math.h.
222         * configure: Regenerate.
224 2017-03-09  Jonathan Wakely  <jwakely@redhat.com>
226         * include/std/functional (_Not_fn): Define macro to simplify
227         repetitive function definitions.
229         * doc/xml/manual/status_cxx2017.xml: Document std::byte support.
230         * include/c_global/cstddef (std::byte): Define for C++17.
231         * testsuite/18_support/byte/global_neg.cc: New test.
232         * testsuite/18_support/byte/ops.cc: New test.
233         * testsuite/18_support/byte/requirements.cc: New test.
235 2017-03-05  Jonathan Wakely  <jwakely@redhat.com>
237         * doc/xml/manual/status_cxx2017.xml: Document P0156R2 status.
238         * doc/html/*: Regenerate.
239         * include/std/mutex (scoped_lock): Implement new C++17 template.
240         * testsuite/30_threads/scoped_lock/cons/1.cc: New test.
241         * testsuite/30_threads/scoped_lock/requirements/
242         explicit_instantiation.cc: New test.
243         * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: New test.
245 2017-03-02  Gerald Pfeifer  <gerald@pfeifer.com>
246             François Dumont  <frs.dumont@gmail.com>
247             Jonathan Wakely  <jwakely@redhat.com>
249         * doc/xml/manual/debug_mode.xml: Update and simplify note
250         on link- and run-time coexistence.
252 2017-03-02  Jonathan Wakely  <jwakely@redhat.com>
254         * testsuite/17_intro/headers/names.cc: Rename to ...
255         * testsuite/17_intro/names.cc: ... here.
257         PR libstdc++/79789
258         * include/bits/hashtable_policy.h (__clp2): Use reserved names for
259         parameters and local variables.
260         * include/bits/ios_base.h (make_error_code, make_error_condition):
261         Likewise.
262         * include/bits/list.tcc (list::sort): Likewise.
263         * include/bits/mask_array.h (mask_array): Likewise.
264         * include/bits/regex.h (regex_token_iterator): Likewise.
265         * include/bits/slice_array.h (slice_array): Likewise.
266         * include/bits/stl_algo.h (__sample): Likewise.
267         * include/std/memory (undeclare_no_pointers): Likewise.
268         * include/std/type_traits (is_callable_v, is_nothrow_callable_v):
269         Likewise.
270         * libsupc++/exception_ptr.h (__dest_thunk): Likewise.
271         * testsuite/17_intro/headers/names.cc: New test.
273         PR libstdc++/79798
274         * include/std/functional (bind::_Res_type_impl): Fix incorrect use of
275         result_of that loses top-level cv-qualifiers.
276         * testsuite/20_util/bind/79798.cc: New test.
278 2017-03-01  Gerald Pfeifer  <gerald@pfeifer.com>
280         * doc/xml/manual/documentation_hacking.xml: Tweak link to
281         doxygen.org.
283 2017-02-23  Jonathan Wakely  <jwakely@redhat.com>
285         * include/experimental/iterator: Include <iterator>.
286         * testsuite/experimental/iterator/requirements.cc: Check for contents
287         of <iterator>.
289 2017-02-19  Dinka Ranns  <dinka.ranns@googlemail.com>
291         C++17 GB50 resolution
292         * include/std/chrono (duration::operator++()): Add
293         _GLIBCXX17_CONSTEXPR.
294         (duration::operator++(int)): Likewise.
295         (duration::operator--()): Likewise.
296         (duration::operator--(int)): Likewise.
297         (duration::operator+=(const duration&)): Likewise.
298         (duration::operator-=(const duration&)): Likewise.
299         (duration::operator*=(const rep&)): Likewise.
300         (duration::operator/=(const rep&)): Likewise.
301         (duration::operator%=(const rep&)): Likewise.
302         (duration::operator%=(const duration&)): Likewise.
303         (time_point::operator+=(const duration&)): Likewise.
304         (time_point::operator-=(const duration&)): Likewise.
305         * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: New test.
306         * testsuite/20_util/duration/literals/range.cc: Adjust dg-error.
307         * testsuite/20_util/time_point/arithmetic/constexpr.cc: New test.
309 2017-02-19  Gerald Pfeifer  <gerald@pfeifer.com>
311         * doc/xml/manual/debug.xml: Adjust link to ThreadSanitizer.
313 2017-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
315         * doc/xml/manual/io.xml: Update link to groups.google.com.
316         Tweak link description.
318 2017-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
319         
320         * doc/xml/manual/profile_mode.xml: Fix link.
322 2017-02-16  Gerald Pfeifer  <gerald@pfeifer.com>
324         * doc/xml/manual/policy_data_structures.xml: Simplify and
325         standardize references to boost.org.
326         * doc/xml/manual/policy_data_structures_biblio.xml: Ditto.
327         * doc/xml/manual/shared_ptr.xml: Ditto.
329 2017-02-16  Jonathan Wakely  <jwakely@redhat.com>
331         PR libstdc++/60936
332         * src/c++11/snprintf_lite.cc (__concat_size_t): Calculate length
333         written to buffer, not length remaining in buffer.
335 2017-02-15  Tim Shen  <timshen@google.com>
337         PR libstdc++/78723
338         * include/std/variant (operator<(), operator>(), operator<=(),
339         operator>=(), operator==(), operator!=()): Implement P0393R3.
340         * testsuite/20_util/variant/compile.cc: Adjust tests.
341         * testsuite/20_util/variant/run.cc: Adjust tests.
343 2017-02-15  Tim Shen  <timshen@google.com>
345         PR libstdc++/79513
346         * include/std/variant (visit()): Forward variant types to the return
347         type detection code.
348         * testsuite/20_util/variant/compile.cc: Add test cases.
350 2017-02-13  H.J. Lu  <hongjiu.lu@intel.com>
352         PR libstdc++/79348
353         * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
355 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
357         PR libstdc++/79348
358         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
359         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
360         * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Likewise.
361         * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
362         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Likewise.
363         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Likewise.
364         * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt: Likewise.
365         * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Likewise.
366         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
368 2017-02-13  Jonathan Wakely  <jwakely@redhat.com>
370         PR libstdc++/79486
371         * include/std/future (__future_base::_Task_state::_M_run)
372         (__future_base::_Task_state::_M_run_delayed): Use lvalue types in
373         result_of expressions.
374         * testsuite/30_threads/packaged_task/79486.cc: New.
376 2017-02-11  Jonathan Wakely  <jwakely@redhat.com>
378         PR libstdc++/79467
379         * include/bits/shared_ptr_base.h (__shared_ptr(_Yp*, _Deleter))
380         (__shared_ptr(_Yp*, _Deleter, _Alloc)): Use lvalue types in
381         __is_callable check.
382         * testsuite/20_util/shared_ptr/cons/79467.cc: New.
384         * include/bits/atomic_base.h: Re-indent.
386 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com> 
388         * doc/xml/manual/profile_mode.xml: Update a paper reference. 
390 2017-02-08  Gerald Pfeifer  <gerald@pfeifer.com>
392         * src/c++11/snprintf_lite.cc (__err): Use https for bug reporting.
394 2017-02-08  Jonathan Wakely  <jwakely@redhat.com>
396         * doc/xml/manual/policy_data_structures.xml: Fix spelling of author's
397         name.
398         * doc/xml/manual/policy_data_structures_biblio.xml: Likewise. Remove
399         broken links to texts that are no longer online.
400         * doc/xml/manual/profile_mode.xml: Update links to CGO 2009 paper and
401         LCPC 2006 paper.
402         * doc/xml/manual/using.xml: Update links to memory model information.
403         * doc/xml/manual/using_exceptions.xml: Update link to "Appendix E:
404         Standard-Library Exception Safety".
405         * doc/html/*: Regenerate.
407 2017-02-08  Gerald Pfeifer  <gerald@pfeifer.com>
408         
409         * doc/xml/manual/profile_mode.xml: Unbreak link to
410         "Optimizing Sorting with Machine Learning Algorithms".
412 2017-02-08  Gerald Pfeifer  <gerald@pfeifer.com>
413         
414         * src/c++11/snprintf_lite.cc (__err): Update bug reporting URL.
416 2017-02-08  Gerald Pfeifer  <gerald@pfeifer.com>
417         
418         * doc/xml/manual/abi.xml: Update link to "Sun Studio 11: C++
419         Migration Guide".
421 2017-02-07  Gerald Pfeifer  <gerald@pfeifer.com>
423         * doc/html/ext/lwg-active.html: Remove.
424         * doc/html/ext/lwg-closed.html: Ditto.
425         * doc/html/ext/lwg-defects.html: Ditto.
427         * doc/Makefile.am (xml_extradir): Remove.
428         (xml_extra): Ditto.
429         (stamp-html-docbook-lwg): Remove recipe...
430         (stamp-html-docbook-data): ...and its use here.
431         * doc/Makefile.in: Regenerate.
433         * doc/xml/manual/intro.xml: Shorten two paragraphs explaining
434         the relationship to the upstream working group.
435         Replace a local link to ../ext/lwg-active.html by the upstream one.
436         Replace all reference to ../ext/lwg-defects.html by a new entity
437         &DR; which refers to the upstream address.
439 2017-02-07  Gerald Pfeifer  <gerald@pfeifer.com>
441         * doc/xml/manual/status_cxx2017.xml: Fix link to N4284.
443 2017-02-06  Jonathan Wakely  <jwakely@redhat.com>
445         PR libstdc++/79323
446         * testsuite/20_util/duration/literals/range.cc: Prune extra output
447         at -O0.
449 2017-02-06  Gerald Pfeifer  <gerald@pfeifer.com>
451         * doc/xml/manual/documentation_hacking.xml: Update URL of the
452         DocBook Element Reference.  Use that term as link description
453         instead of "online".
454         epubcheck has moved to GitHub.
455         Remove obsolete link to DocBook Publishing Tools.
457 2017-02-03  Jonathan Wakely  <jwakely@redhat.com>
459         PR libstdc++/66145
460         * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Restore ABI override
461         so new ios::failure can be caught even when old ABI is the default.
462         * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
463         * testsuite/27_io/basic_istream/extractors_arithmetic/char/
464         exceptions_failbit.cc: Likewise.
465         * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
466         exceptions_failbit.cc: Likewise.
467         * testsuite/27_io/basic_istream/extractors_other/char/
468         exceptions_null.cc: Likewise.
469         * testsuite/27_io/basic_istream/extractors_other/wchar_t/
470         exceptions_null.cc: Likewise.
471         * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
472         * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
473         * testsuite/27_io/basic_ostream/inserters_other/char/
474         exceptions_null.cc: Likewise.
475         * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
476         exceptions_null.cc: Likewise.
477         * testsuite/27_io/ios_base/storage/2.cc: Likewise.
479         PR libstdc++/60936
480         * src/c++11/Makefile.am: Add new files.
481         * src/c++11/Makefile.in: Regenerate.
482         * src/c++11/cow-string-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
483         (operator<<, operator>>, getline): Move explicit instantiations to ...
484         * src/c++11/cow-string-io-inst.cc: ... new file.
485         * src/c++11/cow-wstring-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
486         (operator<<, operator>>, getline): Move explicit instantiations to ...
487         * src/c++11/cow-wstring-io-inst.cc: ... new file.
488         * src/c++11/functexcept.cc (__throw_ios_failure, __throw_system_error)
489         (__throw_future_error, __throw_bad_function_call):
490         (__throw_regex_error): Move functions for C++11 exceptions to the
491         files that define the exception types.
492         * src/c++11/functional.cc (__throw_bad_function_call): Move here.
493         * src/c++11/future.cc (__throw_future_error): Likewise.
494         * src/c++11/ios.cc (__throw_ios_failure): Likewise.
495         * src/c++11/regex.cc (__throw_regex_error): Likewise.
496         * src/c++11/snprintf_lite.cc (__concat_size_t): Print decimal
497         representation directly instead of calling __int_to_char.
498         * src/c++11/sso_string.cc (__sso_string): New file for definition
499         of __sso_string type.
500         * src/c++11/string-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
501         explicit instantiations of narrow string I/O functions.
502         * src/c++11/system_error.cc (__throw_system_error): Move here.
503         (__sso_string): Move to new file.
504         * src/c++11/wstring-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
505         explicit instantiations of wide string I/O functions.
506         * src/c++98/misc-inst.cc [_GLIBCXX_USE_CXX11_ABI] (operator<<)
507         (operator>>, getline): Remove explicit instantiations from here.
509 2017-02-02  H.J. Lu  <hongjiu.lu@intel.com>
511         * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
513 2017-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
515         * configure.host: Separate Solaris/SPARC and x86 baselines.
516         * config/abi/post/solaris2.10/baseline_symbols.txt: Move ...
517         * config/abi/post/sparc-solaris2.10/baseline_symbols.txt: ... here.
518         * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Move ...
519         * config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
520         ... here.
521         * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Move ...
522         * config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: ... here.
523         * config/abi/post/i386-solaris2.10/baseline_symbols.txt: New file.
524         * config/abi/post/solaris2.11/baseline_symbols.txt: Move ...
525         * config/abi/post/sparc-solaris2.11/baseline_symbols.txt: ... here.
526         * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Move ...
527         * config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
528         ... here.
529         * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Move ...
530         * config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: ... here.
531         * config/abi/post/i386-solaris2.11/baseline_symbols.txt: New file.
533         * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
534         * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
535         * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
536         * config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
537         * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
538         * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
540 2017-02-01  Jonathan Wakely  <jwakely@redhat.com>
542         PR libstdc++/78346
543         * include/bits/predefined_ops.h (_Iter_equals_iter): Store iterator
544         not its referent.
545         (_Iter_comp_to_iter): Likewise.
546         * testsuite/25_algorithms/search/78346.cc: New test.
548         PR libstdc++/79254
549         * config/abi/pre/gnu.ver: Remove recently added symbols.
550         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
551         (basic_string::_M_copy_assign): Remove.
552         (basic_string::operator=(const basic_string&)): Don't dispatch to
553         _M_copy_assign. If source object is small just deallocate, otherwise
554         perform new allocation before making any changes.
555         * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
556         (basic_string::_M_copy_assign(const basic_string&, true_type)):
557         Remove.
558         * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
559         Test cases where the allocators are equal or the string is small.
560         * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
561         Likewise.
563 2017-01-30  Ville Voutilainen  <ville.voutilainen@gmail.com>
565         Implement LWG 2825, LWG 2756 breaks class template argument
566         deduction for optional.
567         * include/std/optional: Add a deduction guide.
568         * testsuite/20_util/optional/cons/deduction_guide.cc: New.
570 2017-01-27  Jonathan Wakely  <jwakely@redhat.com>
572         PR libstdc++/79254
573         * config/abi/pre/gnu.ver: Add new symbols.
574         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
575         (basic_string::_M_copy_assign): New overloaded functions to perform
576         copy assignment.
577         (basic_string::operator=(const basic_string&)): Dispatch to
578         _M_copy_assign.
579         * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
580         (basic_string::_M_copy_assign(const basic_string&, true_type)):
581         Define, performing rollback on exception.
582         * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
583         Test exception-safety guarantee.
584         * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
585         Likewise.
586         * testsuite/util/testsuite_allocator.h (uneq_allocator::swap): Make
587         std::swap visible.
589 2017-01-26  Jonathan Wakely  <jwakely@redhat.com>
591         PR libstdc++/70607
592         * include/tr1/complex (conj): Remove using-declaration and restore
593         overloads, reverting previous change.
595         * testsuite/23_containers/list/operations/78389.cc: Fix for C++11
596         mode.
597         * testsuite/23_containers/priority_queue/requirements/constructible.cc:
598         Mark as unsupported in C++98 mode.
599         * testsuite/23_containers/queue/requirements/constructible.cc:
600         Likewise.
601         * testsuite/23_containers/stack/requirements/constructible.cc:
602         Likewise.
603         * testsuite/25_algorithms/make_heap/movable.cc: Fix for C++11 mode.
605         PR libstdc++/79243
606         * include/bits/c++config (literals::string_view_literals::__7): Add.
607         Only declare versioned namespaces for the relevant C++ dialects.
608         * include/experimental/bits/erase_if.h (fundamentals_v2::__detail):
609         Add versioning macros.
610         * include/experimental/bits/lfts_config.h:
611         (fundamentals_v1::__detail::__7, fundamentals_v2::__detail::__7): Add.
612         * include/experimental/string_view (fundamentals_v2::__detail):
613         Add versioning macros.
614         (fundamentals_v2::__detail::__identity): Remove.
615         (fundamentals_v2::__detail::__idt): Use common_type instead of
616         __detail::__identity.
617         * include/std/string_view (__detail::__identity, __detail::__idt):
618         Likewise.
619         (literals::string_view_literals): Fix nesting of versioning macros.
621         PR libstdc++/79190
622         * libsupc++/del_opa.cc (operator delete(void*, std::align_val_t))
623         [!_GLIBCXX_HAVE_ALIGNED_ALLOC && !_GLIBCXX_HAVE_POSIX_MEMALIGN
624         && !_GLIBCXX_HAVE_MEMALIGN && !_GLIBCXX_HAVE__ALIGNED_MALLOC]:
625         Retrieve original pointer value allocated by malloc.
626         * libsupc++/new_opa.cc [!_GLIBCXX_HAVE_ALIGNED_ALLOC
627         && !_GLIBCXX_HAVE_POSIX_MEMALIGN && !_GLIBCXX_HAVE_MEMALIGN
628         && !_GLIBCXX_HAVE__ALIGNED_MALLOC] (aligned_alloc(size_t, size_t)):
629         Define, adjusting pointer value allocated by malloc and storing for
630         retrieval by operator delete.
632 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
634         * libsupc++/eh_atomics.h: Update copyright years.
635         * testsuite/20_util/unique_ptr/cons/default.cc: Update copyright years.
637 2017-01-25  Jonathan Wakely  <jwakely@redhat.com>
639         PR libstdc++/61791
640         PR libstdc++/70607
641         * include/std/complex (real(T), imag(T)): Add _GLIBCXX_CONSTEXPR.
642         (proj(T), conj(T)): Change return types per DR 1522.
643         * include/tr1/complex (conj): Remove overloads and use std::conj.
644         * testsuite/26_numerics/complex/dr781_dr1137.cc: Rename to...
645         * testsuite/26_numerics/complex/dr781.cc: ... this, and update.
646         * testsuite/26_numerics/complex/value_operations/constexpr2.cc: Test
647         real(T) and imag(T). Allow testing for C++11 too.
649 2017-01-24  Jonathan Wakely  <jwakely@redhat.com>
651         PR libstdc++/79206
652         * include/experimental/string_view (operator==): Check sizes first.
653         * include/std/string_view (operator==): Likewise.
655 2017-01-23  Jonathan Wakely  <jwakely@redhat.com>
657         * testsuite/experimental/array/make_array.cc: Restore <functional>
658         inclusion.
660 2017-01-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
662         * testsuite/29_atomics/atomic/69301.cc: Require atomic builtins.
664 2017-01-23  Jonathan Wakely  <jwakely@redhat.com>
666         PR libstdc++/79195
667         * include/experimental/array (__make_array_elem): New class template
668         and partial specialization.
669         (__is_reference_wrapper): Move into __make_array_elem specialization.
670         (make_array): Use __make_array_elem to determine element type and move
671         static assertion into specialization. Qualify std::forward call.
672         (to_array): Add exception specifiation.
673         * testsuite/experimental/array/make_array.cc: Test argument types
674         without a common type.
675         * testsuite/experimental/array/neg.cc: Adjust expected error message.
677 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
679         * doc/xml/manual/debug.xml: code.google.com uses https now.
681 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
682         
683         * doc/xml/manual/test.xml: Fix link into gccint online manual.
685 2017-01-21  Ville Voutilainen  <ville.voutilainen@gmail.com>
687         Make poisoned hashes SFINAE away the call operator of the hash.
688         * include/bits/functional_hash.h
689         (__poison_hash::__enable_hash_call): New.
690         * include/std/optional (__optional_hash_call_base): New.
691         (hash<optional<_Tp>>): Derive from the new base,
692         move the hash function into that base.
693         * include/std/variant (__variant_hash_call_base_impl): New.
694         (__variant_hash_call_base): Likewise.
695         (hash<variant<_Types...>>): Derive from the new base,
696         move the hash function into that base.
697         * testsuite/20_util/optional/hash.cc: Add tests for is_callable.
698         * testsuite/20_util/variant/hash.cc: Likewise.
700 2017-01-20  Joe Seymour  <joe.s@somniumtech.com>
702         * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): Support uint20_t.
703         * configure: Regenerate.
705 2017-01-20  Jonathan Wakely  <jwakely@redhat.com>
707         PR libstdc++/69240
708         * include/bits/random.h (uniform_real_distribution::param_type)
709         (normal_distribution::param_type, lognormal_distribution::param_type)
710         (gamma_distribution::param_type, chi_squared_distribution::param_type)
711         (cauchy_distribution::param_type, fisher_f_distribution::param_type)
712         (student_t_distribution::param_type)
713         (bernoulli_distribution::param_type, binomial_distribution::param_type)
714         (geometric_distribution::param_type)
715         (negative_binomial_distribution::param_type)
716         (poisson_distribution::param_type)
717         (exponential_distribution::param_type)
718         (weibull_distribution::param_type)
719         (extreme_value_distribution::param_type)
720         (discrete_distribution::param_type)
721         (piecewise_constant_distribution::param_type)
722         (piecewise_linear_distribution::param_type): Define operator!=.
723         * include/bits/uniform_int_dist.h
724         (uniform_int_distribution::param_type): Likewise.
725         * include/ext/random (beta_distribution::param_type)
726         (rice_distribution::param_type, nakagami_distribution::param_type)
727         (pareto_distribution::param_type, k_distribution::param_type)
728         (arcsine_distribution::param_type, hoyt_distribution::param_type)
729         (triangular_distribution::param_type)
730         (von_mises_distribution::param_type)
731         (hypergeometric_distribution::param_type)
732         (logistic_distribution::param_type)
733         (uniform_on_sphere_distribution::param_type)
734         (uniform_inside_sphere_distribution::param_type): Likewise.
735         * testsuite/26_numerics/random/bernoulli_distribution/cons/parms.cc:
736         Test construction with param_type.
737         * testsuite/26_numerics/random/binomial_distribution/cons/parms.cc:
738         Likewise.
739         * testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc:
740         Likewise.
741         * testsuite/26_numerics/random/chi_squared_distribution/cons/parms.cc:
742         Likewise.
743         * testsuite/26_numerics/random/exponential_distribution/cons/parms.cc:
744         Likewise.
745         * testsuite/26_numerics/random/extreme_value_distribution/cons/
746         parms.cc: Likewise.
747         * testsuite/26_numerics/random/fisher_f_distribution/cons/parms.cc:
748         Likewise.
749         * testsuite/26_numerics/random/gamma_distribution/cons/parms.cc:
750         Likewise.
751         * testsuite/26_numerics/random/geometric_distribution/cons/parms.cc:
752         Likewise.
753         * testsuite/26_numerics/random/lognormal_distribution/cons/parms.cc:
754         Likewise.
755         * testsuite/26_numerics/random/negative_binomial_distribution/cons/
756         parms.cc: Likewise.
757         * testsuite/26_numerics/random/normal_distribution/cons/parms.cc:
758         Likewise.
759         * testsuite/26_numerics/random/poisson_distribution/cons/parms.cc:
760         Likewise.
761         * testsuite/26_numerics/random/student_t_distribution/cons/parms.cc:
762         Likewise.
763         * testsuite/26_numerics/random/uniform_int_distribution/cons/parms.cc:
764         Likewise.
765         * testsuite/26_numerics/random/uniform_real_distribution/cons/parms.cc:
766         Likewise.
767         * testsuite/26_numerics/random/weibull_distribution/cons/parms.cc:
768         Likewise.
769         * testsuite/ext/random/arcsine_distribution/cons/parms.cc: Likewise.
770         * testsuite/ext/random/beta_distribution/cons/parms.cc: Likewise.
771         * testsuite/ext/random/hoyt_distribution/cons/parms.cc: Likewise.
772         * testsuite/ext/random/hypergeometric_distribution/cons/parms.cc:
773         Likewise.
774         * testsuite/ext/random/k_distribution/cons/parms.cc: Likewise.
775         * testsuite/ext/random/logistic_distribution/cons/parms.cc: Likewise.
776         * testsuite/ext/random/nakagami_distribution/cons/parms.cc: Likewise.
777         * testsuite/ext/random/normal_mv_distribution/cons/parms.cc: Likewise.
778         * testsuite/ext/random/pareto_distribution/cons/parms.cc: Likewise.
779         * testsuite/ext/random/rice_distribution/cons/parms.cc: Likewise.
780         * testsuite/ext/random/triangular_distribution/cons/parms.cc:
781         Likewise.
782         * testsuite/ext/random/uniform_inside_sphere_distribution/cons/
783         parms.cc: Likewise.
784         * testsuite/ext/random/von_mises_distribution/cons/parms.cc: Likewise.
786         PR libstdc++/72792
787         * include/bits/alloc_traits.h (__allocator_traits_base::__diff_type)
788         (__allocator_traits_base::__size_type): Remove.
789         (allocator_traits::_Ptr): New class template to detect const and void
790         pointer types without instantiating pointer_traits::rebind
791         unnecessarily.
792         (allocator_traits::_Diff): Likewise for detecting difference_type.
793         (allocator_traits::_Size): New class template to detect size_type
794         without instantiating make_unsigned unnecessarily.
795         * include/bits/ptr_traits.h (pointer_traits::element_type): Use
796         __detected_or_t instead of __detected_or_t_.
797         * include/std/type_traits (__detected_or_t_): Remove.
798         * testsuite/20_util/allocator_traits/members/pointers.cc: New test.
800         PR libstdc++/72792
801         PR libstdc++/72793
802         * include/bits/alloc_traits.h (__allocator_traits_base::__rebind):
803         Replace with class template using void_t.
804         (__alloc_rebind): Define in terms of
805         __allocator_traits_base::__rebind.
806         (allocator_traits): Remove unconditional static_assert for
807         rebind_alloc.
808         * include/bits/ptr_traits.h (__replace_first_arg): Remove type member.
809         (pointer_traits::__rebind): Replace with class template using void_t.
810         (pointer_traits::rebind): Define in terms of __rebind.
811         (pointer_traits): Remove unconditional static_assert for rebind.
812         * testsuite/20_util/allocator_traits/members/rebind_alloc.cc: New test.
813         * testsuite/20_util/pointer_traits/rebind.cc: New test.
815         PR libstdc++/69321
816         * include/experimental/any (__any_caster): Avoid instantiating
817         manager function for types that can't be stored in any.
818         * include/std/any (__any_caster): Likewise.
819         * testsuite/20_util/any/misc/any_cast.cc: Test non-copyable type.
820         * testsuite/experimental/any/misc/any_cast.cc: Likewise.
822         PR libstdc++/64903
823         * include/bits/stl_algo.h (is_partitioned): Use increment instead of
824         std::advance.
826 2017-01-19  Jonathan Wakely  <jwakely@redhat.com>
828         PR libstdc++/79156
829         * include/bits/shared_ptr_base.h (__enable_shared_from_this_base):
830         Fix return type.
831         (__enable_shared_from_this): Declare __shared_ptr as a friend.
832         * testsuite/ext/shared_ptr/1.cc: New test.
834         PR libstdc++/64903
835         * include/bits/stl_algo.h (is_partitioned): Don't retest the partition
836         point.
837         * testsuite/25_algorithms/is_partitioned/2.cc: New test.
839         * doc/xml/manual/abi.xml: Fix typo.
840         * doc/html/manual/abi.html: Likewise.
842         PR libstdc++/67085
843         * include/bits/predefined_ops.h (_Iter_less_val, _Val_less_iter): Add
844         converting constructors from _Iter_less_iter.
845         (_Iter_comp_val, _Val_comp_iter): Add converting constructors from
846         _Iter_comp_iter.
847         (__iter_comp_val(_Iter_comp_iter<C>): Use converting constructor.
848         (__val_comp_iter(_Iter_comp_iter<C>): Likewise.
849         * include/bits/stl_heap.h (__is_heap_until, __push_heap, __pop_heap)
850         (__make_heap, __sort_heap): Change _Compare parameters to references.
851         (__is_heap, push_heap, __adjust_heap, __pop_heap, pop_heap)
852         (__make_heap, make_heap, sort_heap, is_heap_until): Pass comparison
853         functions as lvalues.
854         (is_heap): Call __is_heap_until directly to avoid copying __comp.
855         * testsuite/23_containers/priority_queue/67085.cc: Adjust test to
856         count copies during construction with empty sequence.
858         PR libstdc++/67085
859         * include/bits/stl_heap.h (__is_heap): Use _GLIBCXX_MOVE.
860         (__make_heap, __sort_heap): Don't use _GLIBCXX_MOVE inside loops.
861         * testsuite/23_containers/priority_queue/67085.cc: Adjust expected
862         number of copies.
863         * testsuite/25_algorithms/make_heap/movable.cc: New test.
865         PR libstdc++/67085
866         * include/bits/stl_heap.h (push_heap, __adjust_heap, __pop_heap)
867         (pop_heap, __make_heap, make_heap, __sort_heap, sort_heap): Use
868         _GLIBCXX_MOVE when passing comparison function to other functions.
869         (is_heap_until, is_heap): Use std::move when passing comparison
870         function.
871         * testsuite/23_containers/priority_queue/67085.cc: New test.
873         PR libstdc++/78905
874         * doc/xml/manual/abi.xml (abi.versioning.history): Add markup to
875         macro names, filenames, and literal values. Document _GLIBCXX_RELEASE.
876         Document that the deprecated _GLIBCXX_VERSION macro was removed for
877         the 4.0.0 release.
878         * doc/html/*: Regenerate.
879         * include/Makefile.am (_GLIBCXX_RELEASE): Set value.
880         * include/Makefile.in: Regenerate.
881         * include/bits/c++config (_GLIBCXX_RELEASE): Add #define.
882         * testsuite/ext/profile/mutex_extensions_neg.cc: Use lineno of 0 in
883         dg-error.
885 2017-01-18  Jonathan Wakely  <jwakely@redhat.com>
887         PR libstdc++/69301
888         * include/std/atomic (atomic<T>::load, atomic<T>::exchange): Use
889         aligned buffer instead of default-initialized variable.
890         * testsuite/29_atomics/atomic/69301.cc: New test.
891         * include/experimental/memory (observer_ptr::release): Use reserved
892         name.
893         * include/ext/pointer.h (_Pointer_adapter::operator++(int))
894         (_Pointer_adapter::operator--(int)): Likewise.
896         PR libstdc++/68925
897         * include/experimental/random (randint): Use temporary instead of
898         thread_local static.
900 2017-01-17  Joshua Conner  <joshconner@google.com>
902         * crossconfig.m4: Add fuchsia OS.
903         * configure: Regenerate. 
905 2017-01-17  Jonathan Wakely  <jwakely@redhat.com>
907         PR libstdc++/69699
908         * doc/xml/manual/abi.xml (abi.versioning.history): Explain why the
909         __GLIBCXX__ macro is not useful. Remove redundant date information
910         and link to the GCC release timeline.
911         (abi.versioning.active): Move partial sentence into the previous
912         paragraph.
913         * doc/html/*: Regenerate.
915         PR libstdc++/79114
916         * libsupc++/nested_exception.h (throw_with_nested): Use decay instead
917         of remove_reference.
918         * testsuite/18_support/nested_exception/79114.cc: New test.
920 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
922         PR other/79046
923         * configure.ac: Add GCC_BASE_VER.
924         * fragment.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
925         get version from BASE-VER file.
926         * po/Makefile.in: Regenerated.
927         * libsupc++/Makefile.in: Regenerated.
928         * testsuite/Makefile.in: Regenerated.
929         * src/Makefile.in: Regenerated.
930         * configure: Regenerated.
931         * Makefile.in: Regenerated.
932         * include/Makefile.in: Regenerated.
933         * doc/Makefile.in: Regenerated.
934         * python/Makefile.in: Regenerated.
935         * src/c++11/Makefile.in: Regenerated.
936         * src/c++98/Makefile.in: Regenerated.
937         * src/filesystem/Makefile.in: Regenerated.
939 2017-01-16  Jonathan Wakely  <jwakely@redhat.com>
941         PR libstdc++/66145
942         * src/c++11/functexcept.cc: Use new ABI for std::ios_base::failure
943         exceptions.
944         * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Don't override ABI
945         for test, so new ios::failure can be caught.
946         * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
947         * testsuite/27_io/basic_istream/extractors_arithmetic/char/
948         exceptions_failbit.cc: Likewise.
949         * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
950         exceptions_failbit.cc: Likewise.
951         * testsuite/27_io/basic_istream/extractors_other/char/
952         exceptions_null.cc: Likewise.
953         * testsuite/27_io/basic_istream/extractors_other/wchar_t/
954         exceptions_null.cc: Likewise.
955         * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
956         * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
957         * testsuite/27_io/basic_ostream/inserters_other/char/
958         exceptions_null.cc: Likewise.
959         * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
960         exceptions_null.cc: Likewise.
961         * testsuite/27_io/ios_base/storage/2.cc: Likewise.
963         PR libstdc++/78702
964         * include/bits/locale_classes.h (locale::facet::__shim): Change from
965         private to protected.
966         * src/c++11/cxx11-shim_facets.cc (__shim_accessor): Define helper to
967         make locale::facet::__shim accessible.
969 2017-01-16  Ville Voutilainen  <ville.voutilainen@gmail.com>
971         PR libstdc++/78389
972         * include/bits/list.tcc (merge(list&&)): Fix backwards size adjustments.
973         (merge(list&&, _StrictWeakOrdering)): Likewise.
974         * testsuite/23_containers/list/operations/78389.cc: Add
975         better test for the sizes.
977 2017-01-14  Jonathan Wakely  <jwakely@redhat.com>
979         * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
980         Skip test when -D_GLIBCXX_PROFILE mode is included in options.
981         * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
982         * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
983         Likewise.
984         * testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise.
985         * testsuite/23_containers/multimap/modifiers/extract.cc: Likewise.
986         * testsuite/23_containers/multiset/modifiers/extract.cc: Likewise.
987         * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
988         * testsuite/23_containers/unordered_map/modifiers/extract.cc:
989         Likewise.
990         * testsuite/23_containers/unordered_multimap/modifiers/extract.cc::
991         Likewise.
992         * testsuite/23_containers/unordered_multiset/modifiers/extract.cc::
993         Likewise.
994         * testsuite/23_containers/unordered_set/modifiers/extract.cc:
995         Likewise.
996         * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
997         Likewise.
998         * testsuite/25_algorithms/binary_search/partitioned.cc: Likewise.
999         * testsuite/25_algorithms/equal_range/partitioned.cc: Likewise.
1000         * testsuite/25_algorithms/lexicographical_compare/71545.cc: Likewise.
1001         * testsuite/25_algorithms/lower_bound/partitioned.cc: Likewise.
1002         * testsuite/25_algorithms/upper_bound/partitioned.cc: Likewise.
1003         * testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise.
1004         * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
1005         * testsuite/libstdc++-prettyprinters/debug.cc: Likewise.
1006         * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Likewise.
1007         * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
1008         * testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
1009         * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
1010         * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
1012 2017-01-13  Jonathan Wakely  <jwakely@redhat.com>
1014         PR libstdc++/65411
1015         * config/io/basic_file_stdio.cc (__basic_file<char>::close()): Don't
1016         retry fclose on EINTR.
1018         * include/profile/base.h: Remove unused header that leads to header
1019         cycle in C++17 mode.
1021         PR libstdc++/79075
1022         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string):
1023         Make _If_sv private.
1024         [!_GLIBCXX_USE_CXX11_ABI] (basic_string): Add member functions taking
1025         basic_string_view arguments.
1027         PR libstdc++/79075
1028         * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Remove
1029         redundant option from cxxflags.
1030         (check_effective_target_cxx11-abi): Define.
1031         * testsuite/21_strings/basic_string/allocator/71964.cc: Use cxx11-abi
1032         effective target.
1033         * testsuite/21_strings/basic_string/allocator/char/copy.cc: Likewise.
1034         * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
1035         Likewise.
1036         * testsuite/21_strings/basic_string/allocator/char/minimal.cc:
1037         Likewise.
1038         * testsuite/21_strings/basic_string/allocator/char/move.cc: Likewise.
1039         * testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
1040         Likewise.
1041         * testsuite/21_strings/basic_string/allocator/char/noexcept.cc:
1042         Likewise.
1043         * testsuite/21_strings/basic_string/allocator/char/swap.cc: Likewise.
1044         * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
1045         Likewise.
1046         * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
1047         Likewise.
1048         * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
1049         Likewise.
1050         * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
1051         Likewise.
1052         * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
1053         Likewise.
1054         * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
1055         Likewise.
1056         * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
1057         Likewise.
1058         * testsuite/23_containers/list/61347.cc: Likewise.
1059         * testsuite/27_io/basic_fstream/cons/base.cc: Likewise.
1060         * testsuite/27_io/ios_base/failure/cxx11.cc: Likewise.
1062 2017-01-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
1064         PR libstdc++/78389
1065         * include/bits/list.tcc (merge(list&&)):
1066         Adjust list sizes if the comparator throws.
1067         (merge(list&&, _StrictWeakOrdering)): Likewise.
1068         (sort()): Splice elements back from the scratch buffers
1069         if the comparator throws.
1070         (sort(_StrictWeakOrdering)): Likewise.
1071         * testsuite/23_containers/list/operations/78389.cc: New.
1073 2017-01-13  Jonathan Wakely  <jwakely@redhat.com>
1075         * testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Mark
1076         XFAIL for C++17 until node reinsertion supports fancy pointers.
1078         PR libstdc++/78361
1079         * testsuite/20_util/add_pointer/value.cc: Test forming function
1080         pointers.
1082 2017-01-13  Michael Brune  <lucdanton@free.fr>
1084         PR libstdc++/78361
1085         * include/std/type_traits (__is_referenceable): Handle noexcept
1086         function types.
1088 2017-01-12  Jonathan Wakely  <jwakely@redhat.com>
1090         PR libstdc++/77528
1091         * include/bits/stl_queue.h (queue, priority_queue): Remove default
1092         member-initializers and define default constructors as templates with
1093         constraints.
1094         * include/bits/stl_stack.h (stack): Likewise.
1095         * testsuite/23_containers/priority_queue/requirements/constructible.cc:
1096         New.
1097         * testsuite/23_containers/priority_queue/requirements/
1098         explicit_instantiation/1.cc: Test more instantiations.
1099         * testsuite/23_containers/priority_queue/requirements/
1100         explicit_instantiation/1_c++98.cc: Likewise.
1101         * testsuite/23_containers/queue/requirements/constructible.cc: New.
1102         * testsuite/23_containers/stack/requirements/constructible.cc: New.
1104         PR libstdc++/66284
1105         * doc/xml/manual/intro.xml: Document LWG 2781 change.
1106         * doc/html/*: Regenerate.
1107         * include/std/functional (_Function_base::_Ref_manager): Remove.
1108         (_Function_handler): Remove partial specializations for
1109         reference_wrapper.
1110         (function::target): Remove special case for const qualification.
1111         * testsuite/20_util/function/6.cc: Adjust tests for target type.
1112         * testsuite/20_util/function/7.cc: Likewise.
1113         * testsuite/20_util/function/8.cc: Likewise.
1115 2017-01-11  Jonathan Wakely  <jwakely@redhat.com>
1117         PR libstdc++/78134
1118         * include/bits/stl_map.h (map::lower_bound, map::upper_bound)
1119         (map::equal_range): Fix return type of heterogeneous overloads.
1120         * include/bits/stl_multimap.h (multimap::lower_bound)
1121         (multimap::upper_bound, multimap::equal_range): Likewise.
1122         * include/bits/stl_multiset.h (multiset::lower_bound)
1123         (multiset::upper_bound, multiset::equal_range): Likewise.
1124         * include/bits/stl_set.h (set::lower_bound, set::upper_bound)
1125         (set::equal_range): Likewise.
1126         * testsuite/23_containers/map/operations/2.cc
1127         * testsuite/23_containers/multimap/operations/2.cc
1128         * testsuite/23_containers/multiset/operations/2.cc
1129         * testsuite/23_containers/set/operations/2.cc
1131         PR libstdc++/78273
1132         * include/bits/stl_map.h (map::count<_Kt>(const _Kt&)): Don't assume
1133         the heterogeneous comparison can only find one match.
1134         * include/bits/stl_set.h (set::count<_Kt>(const _Kt&)): Likewise.
1135         * testsuite/23_containers/map/operations/2.cc: Test count works with
1136         comparison function that just partitions rather than sorting.
1137         * testsuite/23_containers/set/operations/2.cc: Likewise.
1139 2017-01-11  Ville Voutilainen  <ville.voutilainen@gmail.com>
1141         Reduce the size of variant, it doesn't need an index of
1142         type size_t internally.
1143         * include/std/variant (parse_numbers.h): New include.
1144         (__select_index): New.
1145         (_Variant_storage<false, _Types...>::_M_reset_impl): Use
1146         _index_type for comparison with variant_npos.
1147         (_Variant_storage<false, _Types...>::__index_type): New.
1148         (_Variant_storage<false, _Types...>::_M_index): Change the
1149         type from size_t to __index_type.
1150         (_Variant_storage<true, _Types...>::__index_type): New.
1151         (_Variant_storage<true, _Types...>::_M_index): Change the
1152         type from size_t to __index_type.
1153         (_Variant_base::_M_valid): Use _Storage::__index_type
1154         for comparison with variant_npos.
1155         (variant::index): Use _Base::_Storage::__index_type
1156         for comparison with variant_npos.
1157         * testsuite/20_util/variant/index_type.cc: New.
1159 2017-01-10  Jonathan Wakely  <jwakely@redhat.com>
1161         * testsuite/18_support/exception_ptr/60612-unexpected.cc: Adjust
1162         effective target selector to prevent running in C++17 mode.
1164         PR libstdc++/77528
1165         * include/bits/stl_queue.h (queue::c): Add default member initializer.
1166         (queue::queue()): Add constructor and define as defaulted.
1167         (queue::queue(_Sequence&&)): Remove default argument.
1168         (priority_queue::c, priority_queue::comp): Add default member
1169         initializers.
1170         (priority_queue::priority_queue()): Add constructor and define as
1171         defaulted.
1172         (priority_queue::priority_queue(const _Compare&, _Sequence&&)):
1173         Remove default argument for first parameter.
1174         * include/bits/stl_stack.h (stack::c): Add default member initializer.
1175         (stack::stack()): Add constructor and define as defaulted.
1176         (stack::stack(const _Sequence&)): Remove default argument.
1177         * testsuite/23_containers/priority_queue/requirements/
1178         explicit_instantiation/1.cc: Test explicit instantiation with
1179         non-DefaultConstructible sequence.
1180         * testsuite/23_containers/priority_queue/77528.cc: New test.
1181         * testsuite/23_containers/priority_queue/requirements/
1182         explicit_instantiation/1_c++0x.cc: Replace with 1_c++98.cc.
1183         * testsuite/23_containers/queue/77528.cc: New test.
1184         * testsuite/23_containers/queue/requirements/explicit_instantiation/
1185         1.cc: Test explicit instantiation with non-DefaultConstructible
1186         sequence.
1187         * testsuite/23_containers/queue/requirements/explicit_instantiation/
1188         1_c++0x.cc: Replace with 1_c++98.cc.
1189         * testsuite/23_containers/stack/77528.cc: New test.
1190         * testsuite/23_containers/stack/requirements/explicit_instantiation/
1191         1.cc: Test explicit instantiation with non-DefaultConstructible
1192         sequence.
1193         * testsuite/23_containers/stack/requirements/explicit_instantiation/
1194         1_c++0x.cc: Replace with 1_c++98.cc.
1196 2017-01-10  Felipe Magno de Almeida <felipe@expertisesolutions.com.br>
1198         * include/bits/locale_facets_nonio.tcc
1199         (time_get::_M_extract_via_format): Avoid compilation errors with
1200         non-standard struct tm.
1202 2017-01-10  François Dumont  <fdumont@gcc.gnu.org>
1203             Jonathan Wakely  <jwakely@redhat.com>
1205         * python/libstdcxx/v6/printers.py (_versioned_namespace): Define.
1206         (is_specialization, strip_versioned_namespace): New helpers functions
1207         to work with symbols in the versioned namespace.
1208         (Printer.add_version): Add second name using versioned namespace.
1209         (add_one_template_type_printer, add_one_type_printer): Add second
1210         type printers using versioned namespace.
1211         (register_type_printers): Add template type printer for basic_string.
1212         (build_libstdcxx_dictionary): Remove dead code.
1213         * python/libstdcxx/v6/xmethods.py: Make all matchers look for
1214         versioned namespace.
1215         * testsuite/libstdc++-prettyprinters/48362.cc: Adjust expected
1216         results.
1217         * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
1219 2017-01-09  Jonathan Wakely  <jwakely@redhat.com>
1221         PR libstdc++/79017
1222         * acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Check for llrint and llround
1223         functions separately on darwin and if they're missing define
1224         _GLIBCXX_NO_C99_ROUNDING_FUNCS.
1225         * config.h.in: Regenerate.
1226         * configure: Regenerate.
1227         * include/c_global/cmath [_GLIBCXX_NO_C99_ROUNDING_FUNCS] (llrint)
1228         (llrintf, llrintl, llround, llroundf, llroundl): Do not define.
1230         * testsuite/30_threads/condition_variable/members/3.cc: Use new macro
1231         to detect correct thread_local destructors.
1232         * testsuite/util/testsuite_hooks.h (CORRECT_THREAD_LOCAL_DTORS):
1233         Define.
1235 2017-01-09  Jonathan Wakely  <jwakely@redhat.com>
1236             Aditya Kumar  <hiraditya@msn.com>
1238         PR libstdc++/66414
1239         * include/bits/basic_string.tcc
1240         (basic_string::find(const CharT*, size_type, size_type)): Optimize.
1242 2017-01-06  Jonathan Wakely  <jwakely@redhat.com>
1244         * testsuite/21_strings/basic_string/operations/find/char/6.cc: New.
1245         * testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc: New.
1247         * testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp:
1248         Include <cassert> header.
1250         PR libstdc++/78968
1251         * crossconfig.m4: Check for __cxa_thread_atexit on *-*-freebsd*.
1252         * configure: Regenerate.
1254 2017-01-06  Barrett Adair  <barrettellisadair@gmail.com>
1255             Jonathan Wakely  <jwakely@redhat.com>
1257         * include/std/variant (variant, swap): Replace __and_ usage with fold
1258         expressions.
1260 2017-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1262         PR go/78978
1263         * acinclude.m4 (GLIBCXX_CHECK_ASSEMBLER_HWCAP): Remove.
1264         * configure.ac: Call GCC_CHECK_ASSEMBLER_HWCAP instead of
1265         GLIBCXX_CHECK_ASSEMBLER_HWCAP.
1266         * fragment.am (CONFIG_CXXFLAGS): Use HWCAP_CFLAGS instead of
1267         HWCAP_FLAGS.
1268         * aclocal.m4: Regenerate.
1269         * configure: Regenerate.
1270         * Makefile.in, doc/Makefile.in, include/Makefile.in,
1271         libsupc++/Makefile.in, po/Makefile.in, python/Makefile.in,
1272         src/Makefile.in, src/c++11/Makefile.in, src/c++98/Makefile.in,
1273         src/filesystem/Makefile.in, testsuite/Makefile.in: Regenerate.
1275 2017-01-06  Jonathan Wakely  <jwakely@redhat.com>
1277         * include/bits/c++config (_GLIBCXX_ASSERTIONS): Avoid redefinition.
1279         PR libstdc++/78991
1280         * include/bits/predefined_ops.h (_Iter_comp_iter, _Iter_comp_val)
1281         (_Val_comp_iter, _Iter_equals_val, _Iter_pred, _Iter_comp_to_val)
1282         (_Iter_comp_to_iter, _Iter_negate): Make constructors explicit and
1283         move function objects.
1284         (__iter_comp_iter, __iter_comp_val, __val_comp_iter, __pred_iter)
1285         (__iter_comp_val, __iter_comp_iter, __negate): Move function objects.
1286         * testsuite/25_algorithms/sort/78991.cc: New test.
1288 2017-01-05  Jonathan Wakely  <jwakely@redhat.com>
1290         * include/bits/std_function.h (function::_Signature_type): Remove.
1291         (function::function(_Functor)): Adjust.
1293 2017-01-05  Tim Shen  <timshen@google.com>
1295         PR libstdc++/78996
1296         * include/std/variant (__gen_vtable_impl): rename __unused to
1297         __dimensions to avoid naming conflict.
1299 2017-01-04  Jonathan Wakely  <jwakely@redhat.com>
1301         PR libstdc++/78968
1302         * config.h.in: Regenerate.
1303         * configure: Likewise.
1304         * configure.ac: Check for __cxa_thread_atexit.
1305         * libsupc++/atexit_thread.cc [_GLIBCXX_HAVE___CXA_THREAD_ATEXIT]:
1306         Don't define __cxa_thread_atexit if libc provides it.
1308 2017-01-04  Ville Voutilainen  <ville.voutilainen@gmail.com>
1310         Implement 2801, Default-constructibility of unique_ptr.
1311         * include/bits/unique_ptr.h (__uniq_ptr_impl::_DeleterConstraint): New.
1312         (unique_ptr::_DeleterConstraint): Likewise.
1313         (unique_ptr()): Constrain.
1314         (unique_ptr(pointer)): Likewise.
1315         (unique_ptr(nullptr_t)): Likewise.
1316         (unique_ptr<_Tp[], _Dp>::_DeleterConstraint): New.
1317         (unique_ptr<_Tp[], _Dp>::unique_ptr()): Constrain.
1318         (unique_ptr<_Tp[], _Dp>::unique_ptr(_Up)): Likewise.
1319         (unique_ptr<_Tp[], _Dp>::unique_ptr(nullptr_t)): Likewise.
1320         * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Adjust.
1321         * testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Likewise.
1322         * testsuite/20_util/unique_ptr/cons/default.cc: New.
1323         * testsuite/20_util/unique_ptr/cons/ptr_deleter_neg.cc: Adjust.
1325 2017-01-04  Pauli Nieminen  <suokkos@gmail.com>
1326             Jonathan Wakely  <jwakely@redhat.com>
1328         PR libstdc++/64735
1329         * acinclude.m4 (GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER): Define.
1330         * config.h.in: Regenerate.
1331         * config/abi/pre/gnu.ver [HAVE_EXCEPTION_PTR_SINCE_GCC46]
1332         (GLIBCXX_3.4.15, GLIBCXX_3.4.21, CXXABI_1.3.3, CXXABI_1.3.5): Make
1333         exports for exception_ptr, nested_exception, and future conditional.
1334         [HAVE_EXCEPTION_PTR_SINCE_GCC46] (GLIBCXX_3.4.23, CXXABI_1.3.11): Add
1335         exports for exception_ptr, nested_exception, and future conditional.
1336         * configure: Regenerate.
1337         * configure.ac: Use GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER.
1338         * include/std/future: Remove check for ATOMIC_INT_LOCK_FREE
1339         * libsupc++/eh_atomics.h: New file for internal use only.
1340         (__eh_atomic_inc, __eh_atomic_dec): New.
1341         * libsupc++/eh_ptr.cc (exception_ptr::_M_addref)
1342         (exception_ptr::_M_release) (__gxx_dependent_exception_cleanup)
1343         (rethrow_exception): Use eh_atomics.h reference counting helpers.
1344         * libsupc++/eh_throw.cc (__gxx_exception_cleanup): Likewise.
1345         * libsupc++/eh_tm.cc (free_any_cxa_exception): Likewise.
1346         * libsupc++/exception: Remove check for ATOMIC_INT_LOCK_FREE.
1347         * libsupc++/exception_ptr.h: Likewise.
1348         * libsupc++/guard.cc: Include header for ATOMIC_INT_LOCK_FREE macro.
1349         * libsupc++/nested_exception.cc: Remove check for
1350         ATOMIC_INT_LOCK_FREE.
1351         * libsupc++/nested_exception.h: Likewise.
1352         * src/c++11/future.cc: Likewise.
1353         * testsuite/18_support/exception_ptr/*: Remove atomic builtins checks.
1354         * testsuite/18_support/nested_exception/*: Likewise.
1355         * testsuite/30_threads/async/*: Likewise.
1356         * testsuite/30_threads/future/*: Likewise.
1357         * testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise.
1358         * testsuite/30_threads/packaged_task/*: Likewise.
1359         * testsuite/30_threads/promise/*: Likewise.
1360         * testsuite/30_threads/shared_future/*: Likewise.
1362 2017-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
1364         * doc/xml/manual/documentation_hacking.xml: sourceforge.net now
1365         defaults to https; adjust reference.
1367 2017-01-03  Jonathan Wakely  <jwakely@redhat.com>
1369         PR libstdc++/78956
1370         * include/std/thread (thread(const thread&&)): Add deleted
1371         constructor.
1372         * testsuite/30_threads/thread/cons/lwg2097.cc: New test.
1374         * doc/xml/manual/spine.xml: Update copyright years.
1375         * doc/xml/manual/build_hacking.xml: Fix spelling of libbuilddir.
1376         * doc/xml/manual/test.xml: Likewise.
1377         * doc/html/*: Regenerate.
1379 2017-01-01  Gerald Pfeifer  <gerald@pfeifer.com>
1381         * doc/xml/faq.xml: Update address of C++ ABI link.
1382         * doc/xml/manual/abi.xml: Ditto.
1383         
1384 2017-01-01  Jakub Jelinek  <jakub@redhat.com>
1386         Update copyright years.
1388 Copyright (C) 2017 Free Software Foundation, Inc.
1390 Copying and distribution of this file, with or without modification,
1391 are permitted in any medium without royalty provided the copyright
1392 notice and this notice are preserved.