PR c++/80290
[official-gcc.git] / libstdc++-v3 / ChangeLog
blob6c0fe7e57bce92db64719f7a07dc1db904289ba2
1 2018-04-18  Jonathan Wakely  <jwakely@redhat.com>
2             Jakub Jelinek  <jakub@redhat.com>
4         PR libstdc++/85442
5         * src/c++11/Makefile.am: Don't generate debuginfo again for
6         cxx11-ios_failure-lt.s and cxx11-ios_failure.s files.
7         * src/c++11/Makefile.in: Regenerate.
9 2018-04-18  Jonathan Wakely  <jwakely@redhat.com>
11         PR libstdc++/84442
12         * testsuite/30_threads/thread/cons/terminate.cc
13         [!_GLIBCXX_USE_C99_STDLIB] : Use _exit or std::exit instead of _Exit.
15 2018-04-18  David Malcolm  <dmalcolm@redhat.com>
17         PR jit/85384
18         * configure: Regenerate.
20 2018-04-16  Jonathan Wakely  <jwakely@redhat.com>
22         * testsuite/experimental/filesystem/file_status/1.cc: Add
23         -DUSE_FILESYSTEM_TS to dg-options.
24         * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
25         Likewise.
26         * testsuite/experimental/filesystem/iterators/pop.cc: Likewise.
27         * testsuite/experimental/filesystem/iterators/
28         recursive_directory_iterator.cc: Likewise.
29         * testsuite/experimental/filesystem/operations/absolute.cc: Likewise.
30         * testsuite/experimental/filesystem/operations/canonical.cc: Likewise.
31         * testsuite/experimental/filesystem/operations/copy.cc: Likewise.
32         * testsuite/experimental/filesystem/operations/copy_file.cc: Likewise.
33         * testsuite/experimental/filesystem/operations/create_directories.cc:
34         Likewise.
35         * testsuite/experimental/filesystem/operations/create_directory.cc:
36         Likewise.
37         * testsuite/experimental/filesystem/operations/create_symlink.cc:
38         Likewise.
39         * testsuite/experimental/filesystem/operations/current_path.cc:
40         Likewise.
41         * testsuite/experimental/filesystem/operations/equivalent.cc: Likewise.
42         * testsuite/experimental/filesystem/operations/exists.cc: Likewise.
43         * testsuite/experimental/filesystem/operations/file_size.cc: Likewise.
44         * testsuite/experimental/filesystem/operations/is_empty.cc: Likewise.
45         * testsuite/experimental/filesystem/operations/last_write_time.cc:
46         Likewise.
47         * testsuite/experimental/filesystem/operations/permissions.cc:
48         Likewise.
49         * testsuite/experimental/filesystem/operations/read_symlink.cc:
50         Likewise.
51         * testsuite/experimental/filesystem/operations/remove.cc: Likewise.
52         * testsuite/experimental/filesystem/operations/remove_all.cc: Likewise.
53         * testsuite/experimental/filesystem/operations/status.cc: Likewise.
54         * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
55         Likewise.
56         * testsuite/experimental/filesystem/path/append/path.cc: Likewise.
57         * testsuite/experimental/filesystem/path/assign/assign.cc: Likewise.
58         * testsuite/experimental/filesystem/path/assign/copy.cc: Likewise.
59         * testsuite/experimental/filesystem/path/compare/compare.cc: Likewise.
60         * testsuite/experimental/filesystem/path/compare/path.cc: Likewise.
61         * testsuite/experimental/filesystem/path/compare/strings.cc: Likewise.
62         * testsuite/experimental/filesystem/path/concat/path.cc: Likewise.
63         * testsuite/experimental/filesystem/path/concat/strings.cc: Likewise.
64         * testsuite/experimental/filesystem/path/construct/copy.cc: Likewise.
65         * testsuite/experimental/filesystem/path/construct/default.cc:
66         Likewise.
67         * testsuite/experimental/filesystem/path/construct/locale.cc: Likewise.
68         * testsuite/experimental/filesystem/path/construct/range.cc: Likewise.
69         * testsuite/experimental/filesystem/path/construct/string_view.cc:
70         Likewise.
71         * testsuite/experimental/filesystem/path/decompose/extension.cc:
72         Likewise.
73         * testsuite/experimental/filesystem/path/decompose/filename.cc:
74         Likewise.
75         * testsuite/experimental/filesystem/path/decompose/parent_path.cc:
76         Likewise.
77         * testsuite/experimental/filesystem/path/decompose/relative_path.cc:
78         Likewise.
79         * testsuite/experimental/filesystem/path/decompose/root_directory.cc:
80         Likewise.
81         * testsuite/experimental/filesystem/path/decompose/root_name.cc:
82         Likewise.
83         * testsuite/experimental/filesystem/path/decompose/root_path.cc:
84         Likewise.
85         * testsuite/experimental/filesystem/path/decompose/stem.cc: Likewise.
86         * testsuite/experimental/filesystem/path/generic/generic_string.cc:
87         Likewise.
88         * testsuite/experimental/filesystem/path/itr/traversal.cc: Likewise.
89         * testsuite/experimental/filesystem/path/modifiers/clear.cc: Likewise.
90         * testsuite/experimental/filesystem/path/modifiers/make_preferred.cc:
91         Likewise.
92         * testsuite/experimental/filesystem/path/modifiers/remove_filename.cc:
93         Likewise.
94         * testsuite/experimental/filesystem/path/modifiers/replace_extension.cc:
95         Likewise.
96         * testsuite/experimental/filesystem/path/modifiers/replace_filename.cc:
97         Likewise.
98         * testsuite/experimental/filesystem/path/modifiers/swap.cc: Likewise.
99         * testsuite/experimental/filesystem/path/native/string.cc: Likewise.
100         * testsuite/experimental/filesystem/path/nonmember/hash_value.cc:
101         Likewise.
102         * testsuite/experimental/filesystem/path/query/empty.cc: Likewise.
103         * testsuite/experimental/filesystem/path/query/has_extension.cc:
104         Likewise.
105         * testsuite/experimental/filesystem/path/query/has_filename.cc:
106         Likewise.
107         * testsuite/experimental/filesystem/path/query/has_parent_path.cc:
108         Likewise.
109         * testsuite/experimental/filesystem/path/query/has_relative_path.cc:
110         Likewise.
111         * testsuite/experimental/filesystem/path/query/has_root_directory.cc:
112         Likewise.
113         * testsuite/experimental/filesystem/path/query/has_root_name.cc:
114         Likewise.
115         * testsuite/experimental/filesystem/path/query/has_root_path.cc:
116         Likewise.
117         * testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise.
118         * testsuite/experimental/filesystem/path/query/is_relative.cc:
119         Likewise.
121 2018-04-13  Jonathan Wakely  <jwakely@redhat.com>
123         * src/c++11/Makefile.am: Fix sed command.
124         * src/c++11/Makefile.in: Regenerate.
126         * src/c++11/Makefile.am: Rewrite sed rule to be less fragile and to
127         handle mangled names starting with double underscores on darwin.
128         * src/c++11/Makefile.in: Regenerate.
130 2018-04-12  Jonathan Wakely  <jwakely@redhat.com>
132         * src/c++11/Makefile.am: Fix comment.
133         * src/c++11/Makefile.in: Regenerate.
134         * src/c++11/cxx11-ios_failure.cc: Fix comment.
135         * src/c++98/ios_failure.cc: Likewise.
137         * src/c++11/ios.cc: Remove redundant macro definition.
139 2018-04-11  Jonathan Wakely  <jwakely@redhat.com>
141         * doc/xml/manual/abi.xml: Document header locations in recent
142         releases.
143         * doc/xml/manual/evolution.xml: Add API changes since GCC 5.
144         * doc/xml/manual/spine.xml: Update copyright years.
145         * doc/xml/manual/strings.xml: Adjust tolower example to avoid
146         undefined behaviour.
147         * doc/xml/manual/test.xml: Update outdated notes on VERIFY in tests.
148         * doc/html/*: Regenerate.
150 2018-04-10  Jonathan Wakely  <jwakely@redhat.com>
152         * doc/xml/faq.xml: Update links to archived copy of SGI STL docs.
153         * doc/xml/manual/backwards_compatibility.xml: Likewise.
154         * doc/xml/manual/containers.xml: Likewise.
155         * doc/xml/manual/debug_mode.xml: Likewise.
156         * doc/xml/manual/extensions.xml: Likewise.
157         * doc/xml/manual/policy_data_structures_biblio.xml: Likewise.
158         * doc/xml/manual/using.xml: Likewise.
159         * doc/xml/manual/utilities.xml: Likewise.
161         PR libstdc++/85222
162         * src/c++11/Makefile.am [ENABLE_DUAL_ABI]: Add special rules for
163         cxx11-ios_failure.cc to rewrite type info for __ios_failure.
164         * src/c++11/Makefile.in: Regenerate.
165         * src/c++11/cxx11-ios_failure.cc (__ios_failure, __iosfail_type_info):
166         New types.
167         [_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
168         * src/c++11/ios.cc (__throw_ios_failure): Remove definition.
169         * src/c++98/ios_failure.cc (__construct_ios_failure)
170         (__destroy_ios_failure, is_ios_failure_handler): New functions.
171         [!_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
172         * testsuite/27_io/ios_base/failure/dual_abi.cc: New.
173         * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Revert changes to
174         handler types, to always catch std::ios_base::failure.
175         * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
176         * testsuite/27_io/basic_istream/extractors_arithmetic/char/
177         exceptions_failbit.cc: Likewise.
178         * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
179         exceptions_failbit.cc: Likewise.
180         * testsuite/27_io/basic_istream/extractors_other/char/
181         exceptions_null.cc: Likewise.
182         * testsuite/27_io/basic_istream/extractors_other/wchar_t/
183         exceptions_null.cc: Likewise.
184         * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
185         * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
186         * testsuite/27_io/basic_ostream/inserters_other/char/
187         exceptions_null.cc: Likewise.
188         * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
189         exceptions_null.cc: Likewise.
190         * testsuite/27_io/ios_base/storage/2.cc: Likewise.
192 2018-04-05  Jonathan Wakely  <jwakely@redhat.com>
194         * include/std/variant (_VARIANT_RELATION_FUNCTION_TEMPLATE): Qualify
195         __get calls to avoid ADL and avoid ambiguity due to Clang bug.
197 2018-04-03  Jonathan Wakely  <jwakely@redhat.com>
199         PR libstdc++/85183
200         * include/std/variant (_Move_assign_base::operator=): Fix incorrect
201         value categories.
202         * testsuite/20_util/variant/85183.cc: New.
204 2018-03-26  Jonathan Wakely  <jwakely@redhat.com>
206         * include/std/variant (__get): Qualify calls to avoid ADL.
207         (__select_index): Adjust whitespace.
208         (variant): Add using-declaration to workaround Clang bug.
210 2018-03-22  Jonathan Wakely  <jwakely@redhat.com>
212         PR libstdc++/85040
213         * include/bits/stl_function.h (greater::__not_overloaded)
214         (less::__not_overloaded, greater_equal::__not_overloaded)
215         (less_equal::__not_overloaded): Fix ambiguous specializations.
216         * testsuite/20_util/function_objects/comparisons_pointer.cc: Add
217         tests for type with overloaded operators.
219 2018-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
221         PR libstdc++/77691
222         * testsuite/experimental/memory_resource/resource_adaptor.cc:
223         xfail execution on 32-bit Solaris/x86.
225 2018-03-21  Jonathan Wakely  <jwakely@redhat.com>
227         * testsuite/20_util/function_objects/comparisons_pointer.cc: Use
228         VERIFY instead of assert.
229         * testsuite/20_util/hash/84998.cc: New test.
230         * testsuite/23_containers/vector/cons/destructible_debug_neg.cc: New
231         copy of test adjusted for Debug Mode.
232         * testsuite/23_containers/vector/cons/destructible_neg.cc: Do not run
233         test in Debug Mode.
235 2018-03-20  François Dumont  <fdumont@gcc.gnu.org>
237         PR libstdc++/84998
238         * include/bits/stl_bvector.h: Fix std::hash friend declaration.
239         * include/std/bitset: Likewise.
240         * include/bits/stl_map.h (std::map<>): Fix _Rb_tree_merge_helper friend
241         declaration.
242         * include/bits/stl_multimap.h (std::multimap<>): Likewise.
243         * include/bits/stl_multiset.h (std::multiset<>): Likewise.
244         * include/bits/stl_set.h (std::set<>): Likewise.
245         * include/bits/unordered_map.h (std::unordered_map<>): Fix
246         _Hash_merge_helper friend declaration.
247         (std::unordered_multimap<>): Likewise.
248         * include/bits/unordered_set.h (std::unordered_set<>): Likewise.
249         (std::unordered_multiset<>): Likewise.
251 2018-03-19  Gerald Pfeifer  <gerald@pfeifer.com>
253         * doc/xml/api.xml: www.fsf.org has moved to https. Also omit
254         trailing slash for domain level link.
255         * doc/xml/faq.xml: Ditto.
256         * doc/xml/manual/appendix_free.xml (software): Ditto.
257         * doc/xml/manual/intro.xml: Ditto.
258         * doc/xml/manual/spine.xml: Ditto.
259         * doc/xml/spine.xml: Ditto.
261 2018-03-19  Gerald Pfeifer  <gerald@pfeifer.com>
263         * doc/xml/manual/documentation_hacking.xml: Adjust link to
264         docbook.org.
266 2018-03-17  Jonathan Wakely  <jwakely@redhat.com>
268         * testsuite/20_util/function_objects/comparisons_pointer.cc: Adjust
269         to compile as C++98.
271 2018-03-14  Jonathan Wakely  <jwakely@redhat.com>
273         PR libstdc++/78420
274         * include/bits/stl_function.h (greater<_Tp*>, less<_Tp*>)
275         (greater_equal<_Tp*>, less_equal<_Tp>*): Add partial specializations
276         to ensure total order for pointers.
277         (greater<void>, less<void>, greater_equal<void>, less_equal<void>):
278         Add operator() overloads for pointer arguments and make generic
279         overloads dispatch to new _S_cmp functions when comparisons would
280         use built-in operators for pointers.
281         * testsuite/20_util/function_objects/comparisons_pointer.cc: New.
283 2018-03-12  Jonathan Wakely  <jwakely@redhat.com>
285         PR libstdc++/84773
286         PR libstdc++/83662
287         * crossconfig.m4: Check for aligned_alloc etc. on freebsd and mingw32.
288         * configure: Regenerate.
289         * include/c_global/cstdlib [_GLIBCXX_HAVE_ALIGNED_ALLOC]
290         (aligned_alloc): Add using-declaration.
291         * testsuite/18_support/aligned_alloc/aligned_alloc.cc: New test.
293 2018-03-09  François Dumont  <fdumont@gcc.gnu.org>
295         * python/libstdcxx/v6/printers.py (build_libstdcxx_dictionary):
296         Fix std::_Fwd_list_iterator and std::_Fwd_list_const_iterator printers
297         registration.
299 2018-03-09  Jonathan Wakely  <jwakely@redhat.com>
301         PR libstdc++/84769
302         * include/std/variant (get<_Tp, _Types...>, get_if<_Tp, _Types...>):
303         Qualify calls to get<_Np, Types...> and get_if<_Np, _Types...>.
305         src/filesystem/ops.cc (create_dir): Pass error_code to is_directory.
306         src/filesystem/std-ops.cc (create_dir): Likewise.
308 2018-03-08  François Dumont  <fdumont@gcc.gnu.org>
310         * python/libstdcxx/v6/printers.py (NodeIteratorPrinter): New.
311         (StdListIteratorPrinter): Inherit from latter.
312         (StdFwdListIteratorPrinter): New, inherit from latter.
313         (StdDebugIteratorPrinter.to_string): Use non-debug iterator printer
314         when iterator has no associated container.
315         (build_libstdcxx_dictionary): Add __gnu_cxx::_Fwd_list_iterator and
316         __gnu_cxx::_Fwd_list_const_iterator printers. Remove __norm namespace
317         registrations.
318         * testsuite/libstdc++-prettyprinters/debug.cc: Adapt.
319         * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Adapt.
321 2018-03-06  Ville Voutilainen  <ville.voutilainen@gmail.com>
323         PR libstdc++/84601
324         * include/std/optional (_Optional_payload): Split into multiple
325         specializations that can handle different cases of trivial or
326         non-trivial assignment operators.
327         * testsuite/20_util/optional/84601.cc: New.
328         * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
330 2018-03-02  Jonathan Wakely  <jwakely@redhat.com>
332         PR libstdc++/84671
333         * include/bits/parse_numbers.h (_Number_help): Add partial
334         specialization to handle digit separators. Adjust partial
335         specialization for recursion temrination to require _Pow == 1ULL.
336         * testsuite/20_util/duration/literals/84671.cc: New
338 2018-02-27  Ville Voutilainen  <ville.voutilainen@gmail.com>
340         Implement the missing bits of LWG 2769
341         * include/std/any (any_cast(const any&)): Add static_assert.
342         (any_cast(any&)): Likewise.
343         (any_cast(any&&)): Likewise, and remove the handling
344         for copyable-but-not-movable type.
345         * testsuite/20_util/any/misc/any_cast.cc: Adjust.
346         * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise, and
347         add new tests.
349 2018-02-23  Jonathan Wakely  <jwakely@redhat.com>
351         PR libstdc++/84532
352         * include/std/thread (thread::__make_invoker): Construct tuple
353         directly instead of using make_tuple.
354         * testsuite/30_threads/async/84532.cc: New.
355         * testsuite/30_threads/thread/84532.cc: New.
357 2018-02-20  François Dumont  <fdumont@gcc.gnu.org>
359         * include/ext/aligned_buffer.h [_GLIBCXX_INLINE_VERSION]
360         (template<> __aligned_buffer): Define as __aligned_membuf alias.
362 2018-02-19  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
364         PR target/84148
365         * configure: Regenerate.
367 2018-02-15  Jonathan Wakely  <jwakely@redhat.com>
369         PR libstdc++/81797
370         * configure.ac (INCLUDE_DIR_NOTPARALLEL): Define.
371         * configure: Regenerate.
372         * include/Makefile.am (INCLUDE_DIR_NOTPARALLEL): Add .NOTPARALLEL when
373         defined.
374         * include/Makefile.in: Regenerate.
376 2018-01-29  Jonathan Wakely  <jwakely@redhat.com>
378         PR libstdc++/83833
379         * testsuite/26_numerics/random/chi_squared_distribution/83833.cc:
380         Add -ffloat-store to options for m68k and ia32.
382         * doc/xml/faq.xml: Update copyright years.
383         * doc/html/*: Regenerate.
385         PR libstdc++/83658
386         * include/std/any (any::__do_emplace): Only set _M_manager after
387         constructing the contained object.
388         * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust dg-error line.
389         * testsuite/20_util/any/modifiers/83658.cc: New test.
391 2018-01-25  Jonathan Wakely  <jwakely@redhat.com>
393         PR libstdc++/81076
394         * include/c_global/cstddef (__byte_operand): Define primary template.
395         * testsuite/18_support/byte/81076.cc: New test.
397 2018-01-19  Christophe Lyon  <christophe.lyon@linaro.org>
399         * testsuite/ext/special_functions/airy_ai/check_nan.cc: Fix
400         dg-options and dg-add-options order.
401         * testsuite/ext/special_functions/airy_bi/check_nan.cc: Likewise.
402         * testsuite/ext/special_functions/conf_hyperg/check_nan.cc:
403         Likewise.
404         * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
405         * testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
406         Likewise.
407         * testsuite/special_functions/02_assoc_legendre/check_nan.cc:
408         Likewise.
409         * testsuite/special_functions/03_beta/check_nan.cc: Likewise.
410         * testsuite/special_functions/04_comp_ellint_1/check_nan.cc:
411         Likewise.
412         * testsuite/special_functions/05_comp_ellint_2/check_nan.cc:
413         Likewise.
414         * testsuite/special_functions/06_comp_ellint_3/check_nan.cc:
415         Likewise.
416         * testsuite/special_functions/06_comp_ellint_3/pr66689.cc:
417         Likewise.
418         * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc:
419         Likewise.
420         * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc:
421         Likewise.
422         * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc:
423         Likewise.
424         * testsuite/special_functions/10_cyl_neumann/check_nan.cc:
425         Likewise.
426         * testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
427         * testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
428         * testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
429         * testsuite/special_functions/13_ellint_3/pr66689.cc: Likewise.
430         * testsuite/special_functions/14_expint/check_nan.cc: Likewise.
431         * testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
432         * testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
433         * testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
434         * testsuite/special_functions/18_riemann_zeta/check_nan.cc:
435         Likewise.
436         * testsuite/special_functions/19_sph_bessel/check_nan.cc:
437         Likewise.
438         * testsuite/special_functions/20_sph_legendre/check_nan.cc:
439         Likewise.
440         * testsuite/special_functions/21_sph_neumann/check_nan.cc:
441         Likewise.
443 2018-01-18  Uros Bizjak  <ubizjak@gmail.com>
445         * configure.ac (AC_CHECK_HEADERS): Add linux/types.h.  Conditionally
446         include linux/types.h when checking linux/random.h header.
447         * config.h.in: Regenerate.
448         * configure: Ditto.
449         * src/c++11/random.cc: Conditionally include linux/types.h.
451 2018-01-16  Eric Botcazou  <ebotcazou@adacore.com>
453         * testsuite/17_intro/names.cc: Undefine 'y' on SPARC/Linux.
455 2018-01-16  Jonathan Wakely  <jwakely@redhat.com>
457         PR libstdc++/83834
458         * config/abi/pre/gnu.ver (GLIBCXX_3.4): Replace std::c[a-g]* wildcard
459         pattern with exact match for std::cerr.
461 2018-01-15  Jonathan Wakely  <jwakely@redhat.com>
463         PR libstdc++/83833
464         * include/bits/random.h (chi_squared_distribution::param): Update
465         gamma distribution parameter.
466         * testsuite/26_numerics/random/chi_squared_distribution/83833.cc: New
467         test.
469         PR libstdc++/83830
470         * include/std/type_traits (has_unique_object_representations_v): Add
471         variable template.
472         * testsuite/20_util/has_unique_object_representations/value.cc: Check
473         variable template.
475 2018-01-15  Ville Voutilainen  <ville.voutilainen@gmail.com>
477         Make optional conditionally
478         trivially_{copy,move}_{constructible,assignable}
479         * include/std/optional (_Optional_payload): Fix the comment in
480         the class head and turn into a primary and one specialization.
481         (_Optional_payload::_M_engaged): Strike the NSDMI.
482         (_Optional_payload<_Tp, false>::operator=(const _Optional_payload&)):
483         New.
484         (_Optional_payload<_Tp, false>::operator=(_Optional_payload&&)):
485         Likewise.
486         (_Optional_payload<_Tp, false>::_M_get): Likewise.
487         (_Optional_payload<_Tp, false>::_M_reset): Likewise.
488         (_Optional_base_impl): Likewise.
489         (_Optional_base): Turn into a primary and three specializations.
490         (optional(nullopt)): Change the base init.
491         * testsuite/20_util/optional/assignment/8.cc: New.
492         * testsuite/20_util/optional/cons/trivial.cc: Likewise.
493         * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
495 2018-01-15  Jonathan Wakely  <jwakely@redhat.com>
497         PR libstdc++/80276
498         * python/libstdcxx/v6/printers.py (strip_inline_namespaces): New.
499         (get_template_arg_list): New.
500         (StdVariantPrinter._template_args): Remove, use get_template_arg_list
501         instead.
502         (TemplateTypePrinter): Rewrite to work with gdb.Type objects instead
503         of strings and regular expressions.
504         (add_one_template_type_printer): Adapt to new TemplateTypePrinter.
505         (FilteringTypePrinter): Add docstring. Match using startswith. Use
506         strip_inline_namespaces instead of strip_versioned_namespace.
507         (add_one_type_printer): Prepend namespace to match argument.
508         (register_type_printers): Add type printers for char16_t and char32_t
509         string types and for types using cxx11 ABI. Update calls to
510         add_one_template_type_printer to provide default argument dicts.
511         * testsuite/libstdc++-prettyprinters/80276.cc: New test.
512         * testsuite/libstdc++-prettyprinters/whatis.cc: Remove tests for
513         basic_string<unsigned char> and basic_string<signed char>.
514         * testsuite/libstdc++-prettyprinters/whatis2.cc: Duplicate whatis.cc
515         to test local variables, without overriding _GLIBCXX_USE_CXX11_ABI.
517 2018-01-14  Andreas Schwab  <schwab@linux-m68k.org>
519         PR libstdc++/81092
520         * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
522 2018-01-13  Tim Shen  <timshen@google.com>
524         PR libstdc++/83601
525         * include/bits/regex.tcc (regex_replace): Fix escaping in sed.
526         * testsuite/28_regex/algorithms/regex_replace/char/pr83601.cc: Tests.
527         * testsuite/28_regex/algorithms/regex_replace/wchar_t/pr83601.cc: Tests.
529 2018-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
531         PR libstdc++/64054
532         * testsuite/27_io/basic_ostream/inserters_arithmetic/char/hexfloat.cc:
533         Remove dg-xfail-run-if.
535 2018-01-10  François Dumont  <fdumont@gcc.gnu.org>
537         * include/bits/forward_list.h
538         (_Fwd_list_node_base(_Fwd_list_node_base&&)): New.
539         (_Fwd_list_node_base& operator=(_Fwd_list_node_base&&)): New.
540         (_Fwd_list_node_base(const _Fwd_list_node_base&)): Explicit delete.
541         (_Fwd_list_node_base& operator=(const _Fwd_list_node_base&)): Likewise.
542         (_Fwd_list_impl()): Add noexcept qualification.
543         (_Fwd_list_impl(const _Node_alloc_type&)): Delete.
544         (_Fwd_list_impl(_Fwd_list_impl&&)): New, default.
545         (_Fwd_list_impl(_Fwd_list_impl&&, _Node_alloc_type&&)): New.
546         (_Fwd_list_base()): Default.
547         (_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&, true_type)): New.
548         (_Fwd_list_base(_Fwd_list_base&&)): Default.
549         (forward_list<>()): Default.
550         (forward_list<>(forward_list&&)): Default.
551         (forward_list(forward_list&&, _Node_alloc_type&&, false_type)): New.
552         (forward_list(forward_list&&, _Node_alloc_type&&, true_type)): New.
553         (forward_list(forward_list&&, const _Alloc&)): Adapt to use latters.
554         * include/bits/forward_list.tcc
555         (_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&)): Adapt to use
556         _M_impl._M_head move assignment.
557         (forward_list<>::merge(forward_list<>&&, _Comp)): Likewise.
558         * testsuite/23_containers/forward_list/allocator/default_init.cc: New.
560 2018-01-09  Jonathan Wakely  <jwakely@redhat.com>
562         PR libstdc++/80276
563         * python/libstdcxx/v6/printers.py (SharedPointerPrinter)
564         (UniquePointerPrinter): Print correct template argument, not type of
565         the pointer.
566         (TemplateTypePrinter._recognizer.recognize): Handle failure to lookup
567         a type.
568         * testsuite/libstdc++-prettyprinters/cxx11.cc: Test unique_ptr of
569         array type.
570         * testsuite/libstdc++-prettyprinters/cxx17.cc: Test shared_ptr and
571         weak_ptr of array types.
573 2018-01-09  François Dumont  <fdumont@gcc.gnu.org>
575         PR libstdc++/83709
576         * include/bits/hashtable_policy.h
577         (__distance_fwd(_Iterator, _Iterator, input_iterator_tag)): Return 1 if
578         __first != __last.
579         (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, true_type)): New.
580         (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, false_type)):
581         Add false_type parameter.
582         (_Insert_base::insert): Adapt.
583         * include/bits/hashtable.h (_Hashtable::operator=(initializzr_list<>)):
584         Adapt.
585         (_Hashtable::_M_insert(_Arg&&, const _NodeGen&, true_type, size_t)):
586          Add __n_elt parameter, defaulted to 1.
587         (_Hashtable::_M_insert_unique_node): Likewise. Use it to call rehash
588         policy _M_need_rehash.
589         (_Hashtable::_M_merge_unique): Pass target number of elements to add to
590         produce only 1 rehash if necessary.
591         * testsuite/23_containers/unordered_map/insert/83709.cc: New.
592         * testsuite/23_containers/unordered_set/insert/83709.cc: New.
594 2018-01-09  Juraj Oršulić  <juraj.orsulic@fer.hr>
595             Jonathan Wakely  <jwakely@redhat.com>
597         PR libstdc++/59253 (partial)
598         * python/libstdcxx/v6/printers.py (SmartPtrIterator): Common iterator
599         type for pointer stored by shared_ptr, weak_ptr and unique_ptr.
600         (SharedPointerPrinter, UniquePointerPrinter): Treat stored values as
601         children.
602         * testsuite/libstdc++-prettyprinters/cxx11.cc: Update expected output
603         of unique_ptr printer.
604         * testsuite/libstdc++-prettyprinters/shared_ptr.cc: Update expected
605         output of shared_ptr printer.
607 2018-01-05  Jonathan Wakely  <jwakely@redhat.com>
609         PR libstdc++/83626
610         * src/filesystem/ops.cc (remove(const path&, error_code&)): Remove
611         unnecessary symlink_status call.
612         (remove_all(const path&, error_code&)): Use filesystem::remove.
613         * src/filesystem/std-ops.cc: Likewise.
615         PR libstdc++/83279
616         * src/filesystem/std-ops.cc  (do_copy_file): Use non-null offset with
617         sendfile.
619         PR libstdc++/83626
620         * src/filesystem/ops.cc (remove(const path&, error_code&)): Do not
621         report an error for ENOENT.
622         (remove_all(const path&)): Fix type of result variable.
623         (remove_all(const path&, error_code&)): Use non-throwing increment
624         for directory iterator. Call POSIX remove directly to avoid redundant
625         calls to symlink_status. Do not report errors for ENOENT.
626         * src/filesystem/std-ops.cc: Likewise.
627         * testsuite/27_io/filesystem/operations/remove_all.cc: Test throwing
628         overload.
629         * testsuite/experimental/filesystem/operations/remove_all.cc:
630         Likewise.
632 2018-01-04  Jonathan Wakely  <jwakely@redhat.com>
634         PR libstdc++/83626
635         * src/filesystem/ops.cc (remove(const path&, error_code&))): Remove
636         redundant call to ec.clear().
637         (remove_all(const path&, error_code&))): Do not return an error for
638         non-existent paths.
639         * src/filesystem/std-ops.cc: Likewise.
640         * testsuite/27_io/filesystem/operations/remove.cc: New test.
641         * testsuite/27_io/filesystem/operations/remove_all.cc: Fix expected
642         results for non-existent paths.
643         * testsuite/experimental/filesystem/operations/remove.cc: New test.
644         * testsuite/experimental/filesystem/operations/remove_all.cc: Fix
645         expected results for non-existent paths.
647         * include/bits/fs_ops.h (exists(const path&, error_code&))): Only
648         check status_known once.
649         * include/experimental/bits/fs_ops.h: Likewise.
651         PR libstdc++/83607
652         * include/std/functional (__is_byte_like): New trait.
653         (__is_std_equal_to): Remove.
654         (__boyer_moore_base_t): Use __is_byte_like instead of
655         __is_std_equal_to.
656         * include/experimental/functional (__is_std_equal_to): Remove.
657         (__boyer_moore_base_t): Use __is_byte_like instead of
658         __is_std_equal_to.
659         * testsuite/20_util/function_objects/83607.cc: New test.
661 2018-01-03  Ville Voutilainen  <ville.voutilainen@gmail.com>
663         Protect optional's deduction guide with the feature macro
664         * include/std/optional: Use the feature macro.
666 2018-01-03  Jakub Jelinek  <jakub@redhat.com>
668         Update copyright years.
670 Copyright (C) 2018 Free Software Foundation, Inc.
672 Copying and distribution of this file, with or without modification,
673 are permitted in any medium without royalty provided the copyright
674 notice and this notice are preserved.