2018-05-07 Edward Smith-Rowland <3dw4rd@verizon.net>
[official-gcc.git] / libstdc++-v3 / ChangeLog
blob94f08c22a4f6d52fafe3a3ecacd81f010e75dfe4
1 2018-05-07  Edward Smith-Rowland  <3dw4rd@verizon.net>
3         Moar PR libstdc++/80506
4         * include/bits/random.tcc (gamma_distribution::__generate_impl()):
5         Fix magic number used in loop condition.
7 2018-05-04  Jonathan Wakely  <jwakely@redhat.com>
9         PR libstdc++/85642 fix is_nothrow_default_constructible<optional<T>>
10         * include/std/optional (_Optional_payload): Add noexcept to default
11         constructor. Re-indent.
12         (_Optional_payload<_Tp, true, true, true>): Likewise. Add noexcept to
13         constructor for copying disengaged payloads.
14         (_Optional_payload<_Tp, true, false, true>): Likewise.
15         (_Optional_payload<_Tp, true, true, false>): Likewise.
16         (_Optional_payload<_Tp, true, false, false>): Likewise.
17         * testsuite/20_util/optional/cons/85642.cc: New.
18         * testsuite/20_util/optional/cons/value_neg.cc: Adjust dg-error lines.
20 2018-05-03  Jonathan Wakely  <jwakely@redhat.com>
22         PR libstdc++/82644
23         * include/tr1/cmath [__STRICT_ANSI__] (hypergf, hypergl, hyperg): Use
24         inline definitions instead of using-declarations.
25         [__STRICT_ANSI__] (conf_hypergf, conf_hypergl, conf_hyperg): Likewise.
26         * testsuite/tr1/5_numerical_facilities/special_functions/
27         07_conf_hyperg/compile_cxx17.cc: New.
28         * testsuite/tr1/5_numerical_facilities/special_functions/
29         17_hyperg/compile_cxx17.cc: New.
31         PR libstdc++/84769
32         * include/std/variant (visit): Qualify std::get call.
34         PR libstdc++/85632 use uintmax_t for arithmetic
35         * src/filesystem/ops.cc (experimental::filesystem::space): Perform
36         arithmetic in result type.
37         * src/filesystem/std-ops.cc (filesystem::space): Likewise.
38         * testsuite/27_io/filesystem/operations/space.cc: Check total capacity
39         is greater than free space.
40         * testsuite/experimental/filesystem/operations/space.cc: New.
42         * testsuite/20_util/remove_cvref/requirements/alias_decl.cc: New.
43         * testsuite/20_util/remove_cvref/requirements/explicit_instantiation.cc:
44         New.
45         * testsuite/20_util/remove_cvref/value.cc: New.
46         * testsuite/20_util/remove_cvref/value_ext.cc: New.
48         PR libstdc++/84087 LWG DR 2268 basic_string default arguments
49         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI=1]
50         (append(const basic_string&, size_type, size_type)
51         (assign(const basic_string&, size_type, size_type)
52         (insert(size_type, const basic_string&, size_type, size_type)
53         (replace(size_type,size_type,const basic_string&,size_type,size_type)
54         (compare(size_type,size_type,constbasic_string&,size_type,size_type)):
55         Add default arguments (LWG 2268).
56         [_GLIBCXX_USE_CXX11_ABI=0]
57         (append(const basic_string&, size_type, size_type)
58         (assign(const basic_string&, size_type, size_type)
59         (insert(size_type, const basic_string&, size_type, size_type)
60         (replace(size_type,size_type,const basic_string&,size_type,size_type)
61         (compare(size_type,size_type,constbasic_string&,size_type,size_type)):
62         Likewise.
63         * testsuite/21_strings/basic_string/dr2268.cc: New test.
65         PR libstdc++/84535
66         * include/std/thread (thread::__not_same): New SFINAE helper.
67         (thread::thread(_Callable&&, _Args&&...)): Add SFINAE constraint that
68         first argument is not a std::thread. Add static assertion to check
69         INVOKE expression is valid.
70         (thread::thread(thread&), thread::thread(const thread&&)): Remove.
71         (thread::_Invoke::_M_invoke, thread::_Invoke::operator()): Use
72         __invoke_result for return types and remove exception specifications.
73         * testsuite/30_threads/thread/cons/84535.cc: New.
75         * include/std/future (__async_result_of): Use __invoke_result instead
76         of result_of.
78         * include/std/any (any_cast): Use __remove_cvref_t.
79         * include/std/tuple (__make_tuple): Likewise.
80         * include/std/type_traits (__remove_cvref_t): Define.
81         (__result_of_memobj, __result_of_memfun): Use __remove_cvref_t.
82         [__cplusplus > 201703L] (remove_cvref, remove_cvref_t): Define.
83         * include/std/variant (__erased_hash): Use __remove_cvref_t.
85 2018-05-02  François Dumont  <fdumont@gcc.gnu.org>
87         * include/bits/deque.tcc (deque<>::_M_assign_aux): Cast to void to
88         ensure overloaded comma not used.
89         * include/bits/list.tcc (list<>::_M_assign_dispatch): Likewise.
90         * include/bits/vector.tcc (vector<>::_M_assign_aux): Likewise.
91         * include/bits/stl_bvector.h (vector<bool>::_M_assign_aux): Likewise.
92         * testsuite/23_containers/deque/modifiers/assign/1.cc: New.
93         * testsuite/23_containers/list/modifiers/assign/1.cc: New.
94         * testsuite/23_containers/vector/bool/modifiers/assign/1.cc: New.
95         * testsuite/23_containers/vector/modifiers/assign/1.cc: New.
97 2018-05-02  Jonathan Wakely  <jwakely@redhat.com>
99         PR libstdc++/68197
100         * include/bits/ios_base.h (ios_base::iword, ios_base::pword): Cast
101         indices to unsigned.
102         * src/c++11/ios.cc (ios_base::_M_grow_words): Treat negative indices
103         as failure. Refactor error handling.
104         * testsuite/27_io/ios_base/storage/68197.cc: New.
106         PR libstdc++/57997
107         PR libstdc++/83860
108         * include/bits/gslice_array.h (gslice_array): Define default
109         constructor as deleted, as per C++11 standard.
110         * include/bits/mask_array.h (mask_array): Likewise.
111         * include/bits/slice_array.h (slice_array): Likewise.
112         * include/bits/valarray_after.h (_GBase, _GClos, _IBase, _IClos): Move
113         to namespace __detail.
114         (_GBase::_M_expr, _IBase::_M_expr): Use _ValArrayRef for type of data
115         members.
116         * include/bits/valarray_before.h (_ValArrayRef): New helper for type
117         of data members in closure objects.
118         (_FunBase, _ValFunClos, _RefFunClos, _UnBase, _UnClos, _BinBase)
119         (_BinBase2, _BinBase1, _BinClos, _SBase, _SClos): Move to namespace
120         __detail.
121         (_FunBase::_M_expr, _UnBase::_M_expr, _BinBase::_M_expr1)
122         (_BinBase::_M_expr2, _BinBase2::_M_expr1, _BinBase1::_M_expr2)
123         (_SBase::_M_expr): Use _ValArrayRef for type of data members.
124         * include/std/valarray (_UnClos, _BinClos, _SClos, _GClos, _IClos)
125         (_ValFunClos, _RefFunClos): Move to namespace __detail and add
126         using-declarations to namespace std.
127         * testsuite/26_numerics/valarray/83860.cc: New.
129         * testsuite/backward/strstream_move.cc: Remove duplicate function
130         call.
132         PR libstdc++/69608
133         * include/backward/strstream (strstreambuf): Define move constructor
134         and move assignment operator.
135         (istrstream, ostrstream, strstream): Likewise.
136         * testsuite/backward/strstream_move.cc: New.
138 2018-05-01  Tulio Magno Quites Machado Filho  <tuliom@linux.vnet.ibm.com>
140         PR libstdc++/84654
141         * acinclude.m4: Set ENABLE_FLOAT128 instead of _GLIBCXX_USE_FLOAT128.
142         * config.h.in: Remove references to _GLIBCXX_USE_FLOAT128.
143         * configure: Regenerate.
144         * include/Makefile.am: Replace the value of _GLIBCXX_USE_FLOAT128
145         based on ENABLE_FLOAT128.
146         * include/Makefile.in: Regenerate.
147         * include/bits/c++config: Define _GLIBCXX_USE_FLOAT128.
148         [!defined(__FLOAT128__) && !defined(__SIZEOF_FLOAT128__)]: Undefine
149         _GLIBCXX_USE_FLOAT128.
151 2018-04-24  H.J. Lu  <hongjiu.lu@intel.com>
153         * configure: Regenerated.
155 2018-04-19  Jakub Jelinek  <jakub@redhat.com>
157         * configure: Regenerated.
159 2018-04-18  Jonathan Wakely  <jwakely@redhat.com>
160             Jakub Jelinek  <jakub@redhat.com>
162         PR libstdc++/85442
163         * src/c++11/Makefile.am: Don't generate debuginfo again for
164         cxx11-ios_failure-lt.s and cxx11-ios_failure.s files.
165         * src/c++11/Makefile.in: Regenerate.
167 2018-04-18  Jonathan Wakely  <jwakely@redhat.com>
169         PR libstdc++/84442
170         * testsuite/30_threads/thread/cons/terminate.cc
171         [!_GLIBCXX_USE_C99_STDLIB] : Use _exit or std::exit instead of _Exit.
173 2018-04-18  David Malcolm  <dmalcolm@redhat.com>
175         PR jit/85384
176         * configure: Regenerate.
178 2018-04-16  Jonathan Wakely  <jwakely@redhat.com>
180         * testsuite/experimental/filesystem/file_status/1.cc: Add
181         -DUSE_FILESYSTEM_TS to dg-options.
182         * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
183         Likewise.
184         * testsuite/experimental/filesystem/iterators/pop.cc: Likewise.
185         * testsuite/experimental/filesystem/iterators/
186         recursive_directory_iterator.cc: Likewise.
187         * testsuite/experimental/filesystem/operations/absolute.cc: Likewise.
188         * testsuite/experimental/filesystem/operations/canonical.cc: Likewise.
189         * testsuite/experimental/filesystem/operations/copy.cc: Likewise.
190         * testsuite/experimental/filesystem/operations/copy_file.cc: Likewise.
191         * testsuite/experimental/filesystem/operations/create_directories.cc:
192         Likewise.
193         * testsuite/experimental/filesystem/operations/create_directory.cc:
194         Likewise.
195         * testsuite/experimental/filesystem/operations/create_symlink.cc:
196         Likewise.
197         * testsuite/experimental/filesystem/operations/current_path.cc:
198         Likewise.
199         * testsuite/experimental/filesystem/operations/equivalent.cc: Likewise.
200         * testsuite/experimental/filesystem/operations/exists.cc: Likewise.
201         * testsuite/experimental/filesystem/operations/file_size.cc: Likewise.
202         * testsuite/experimental/filesystem/operations/is_empty.cc: Likewise.
203         * testsuite/experimental/filesystem/operations/last_write_time.cc:
204         Likewise.
205         * testsuite/experimental/filesystem/operations/permissions.cc:
206         Likewise.
207         * testsuite/experimental/filesystem/operations/read_symlink.cc:
208         Likewise.
209         * testsuite/experimental/filesystem/operations/remove.cc: Likewise.
210         * testsuite/experimental/filesystem/operations/remove_all.cc: Likewise.
211         * testsuite/experimental/filesystem/operations/status.cc: Likewise.
212         * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
213         Likewise.
214         * testsuite/experimental/filesystem/path/append/path.cc: Likewise.
215         * testsuite/experimental/filesystem/path/assign/assign.cc: Likewise.
216         * testsuite/experimental/filesystem/path/assign/copy.cc: Likewise.
217         * testsuite/experimental/filesystem/path/compare/compare.cc: Likewise.
218         * testsuite/experimental/filesystem/path/compare/path.cc: Likewise.
219         * testsuite/experimental/filesystem/path/compare/strings.cc: Likewise.
220         * testsuite/experimental/filesystem/path/concat/path.cc: Likewise.
221         * testsuite/experimental/filesystem/path/concat/strings.cc: Likewise.
222         * testsuite/experimental/filesystem/path/construct/copy.cc: Likewise.
223         * testsuite/experimental/filesystem/path/construct/default.cc:
224         Likewise.
225         * testsuite/experimental/filesystem/path/construct/locale.cc: Likewise.
226         * testsuite/experimental/filesystem/path/construct/range.cc: Likewise.
227         * testsuite/experimental/filesystem/path/construct/string_view.cc:
228         Likewise.
229         * testsuite/experimental/filesystem/path/decompose/extension.cc:
230         Likewise.
231         * testsuite/experimental/filesystem/path/decompose/filename.cc:
232         Likewise.
233         * testsuite/experimental/filesystem/path/decompose/parent_path.cc:
234         Likewise.
235         * testsuite/experimental/filesystem/path/decompose/relative_path.cc:
236         Likewise.
237         * testsuite/experimental/filesystem/path/decompose/root_directory.cc:
238         Likewise.
239         * testsuite/experimental/filesystem/path/decompose/root_name.cc:
240         Likewise.
241         * testsuite/experimental/filesystem/path/decompose/root_path.cc:
242         Likewise.
243         * testsuite/experimental/filesystem/path/decompose/stem.cc: Likewise.
244         * testsuite/experimental/filesystem/path/generic/generic_string.cc:
245         Likewise.
246         * testsuite/experimental/filesystem/path/itr/traversal.cc: Likewise.
247         * testsuite/experimental/filesystem/path/modifiers/clear.cc: Likewise.
248         * testsuite/experimental/filesystem/path/modifiers/make_preferred.cc:
249         Likewise.
250         * testsuite/experimental/filesystem/path/modifiers/remove_filename.cc:
251         Likewise.
252         * testsuite/experimental/filesystem/path/modifiers/replace_extension.cc:
253         Likewise.
254         * testsuite/experimental/filesystem/path/modifiers/replace_filename.cc:
255         Likewise.
256         * testsuite/experimental/filesystem/path/modifiers/swap.cc: Likewise.
257         * testsuite/experimental/filesystem/path/native/string.cc: Likewise.
258         * testsuite/experimental/filesystem/path/nonmember/hash_value.cc:
259         Likewise.
260         * testsuite/experimental/filesystem/path/query/empty.cc: Likewise.
261         * testsuite/experimental/filesystem/path/query/has_extension.cc:
262         Likewise.
263         * testsuite/experimental/filesystem/path/query/has_filename.cc:
264         Likewise.
265         * testsuite/experimental/filesystem/path/query/has_parent_path.cc:
266         Likewise.
267         * testsuite/experimental/filesystem/path/query/has_relative_path.cc:
268         Likewise.
269         * testsuite/experimental/filesystem/path/query/has_root_directory.cc:
270         Likewise.
271         * testsuite/experimental/filesystem/path/query/has_root_name.cc:
272         Likewise.
273         * testsuite/experimental/filesystem/path/query/has_root_path.cc:
274         Likewise.
275         * testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise.
276         * testsuite/experimental/filesystem/path/query/is_relative.cc:
277         Likewise.
279 2018-04-13  Jonathan Wakely  <jwakely@redhat.com>
281         * src/c++11/Makefile.am: Fix sed command.
282         * src/c++11/Makefile.in: Regenerate.
284         * src/c++11/Makefile.am: Rewrite sed rule to be less fragile and to
285         handle mangled names starting with double underscores on darwin.
286         * src/c++11/Makefile.in: Regenerate.
288 2018-04-12  Jonathan Wakely  <jwakely@redhat.com>
290         * src/c++11/Makefile.am: Fix comment.
291         * src/c++11/Makefile.in: Regenerate.
292         * src/c++11/cxx11-ios_failure.cc: Fix comment.
293         * src/c++98/ios_failure.cc: Likewise.
295         * src/c++11/ios.cc: Remove redundant macro definition.
297 2018-04-11  Jonathan Wakely  <jwakely@redhat.com>
299         * doc/xml/manual/abi.xml: Document header locations in recent
300         releases.
301         * doc/xml/manual/evolution.xml: Add API changes since GCC 5.
302         * doc/xml/manual/spine.xml: Update copyright years.
303         * doc/xml/manual/strings.xml: Adjust tolower example to avoid
304         undefined behaviour.
305         * doc/xml/manual/test.xml: Update outdated notes on VERIFY in tests.
306         * doc/html/*: Regenerate.
308 2018-04-10  Jonathan Wakely  <jwakely@redhat.com>
310         * doc/xml/faq.xml: Update links to archived copy of SGI STL docs.
311         * doc/xml/manual/backwards_compatibility.xml: Likewise.
312         * doc/xml/manual/containers.xml: Likewise.
313         * doc/xml/manual/debug_mode.xml: Likewise.
314         * doc/xml/manual/extensions.xml: Likewise.
315         * doc/xml/manual/policy_data_structures_biblio.xml: Likewise.
316         * doc/xml/manual/using.xml: Likewise.
317         * doc/xml/manual/utilities.xml: Likewise.
319         PR libstdc++/85222
320         * src/c++11/Makefile.am [ENABLE_DUAL_ABI]: Add special rules for
321         cxx11-ios_failure.cc to rewrite type info for __ios_failure.
322         * src/c++11/Makefile.in: Regenerate.
323         * src/c++11/cxx11-ios_failure.cc (__ios_failure, __iosfail_type_info):
324         New types.
325         [_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
326         * src/c++11/ios.cc (__throw_ios_failure): Remove definition.
327         * src/c++98/ios_failure.cc (__construct_ios_failure)
328         (__destroy_ios_failure, is_ios_failure_handler): New functions.
329         [!_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
330         * testsuite/27_io/ios_base/failure/dual_abi.cc: New.
331         * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Revert changes to
332         handler types, to always catch std::ios_base::failure.
333         * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
334         * testsuite/27_io/basic_istream/extractors_arithmetic/char/
335         exceptions_failbit.cc: Likewise.
336         * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
337         exceptions_failbit.cc: Likewise.
338         * testsuite/27_io/basic_istream/extractors_other/char/
339         exceptions_null.cc: Likewise.
340         * testsuite/27_io/basic_istream/extractors_other/wchar_t/
341         exceptions_null.cc: Likewise.
342         * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
343         * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
344         * testsuite/27_io/basic_ostream/inserters_other/char/
345         exceptions_null.cc: Likewise.
346         * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
347         exceptions_null.cc: Likewise.
348         * testsuite/27_io/ios_base/storage/2.cc: Likewise.
350 2018-04-05  Jonathan Wakely  <jwakely@redhat.com>
352         * include/std/variant (_VARIANT_RELATION_FUNCTION_TEMPLATE): Qualify
353         __get calls to avoid ADL and avoid ambiguity due to Clang bug.
355 2018-04-03  Jonathan Wakely  <jwakely@redhat.com>
357         PR libstdc++/85183
358         * include/std/variant (_Move_assign_base::operator=): Fix incorrect
359         value categories.
360         * testsuite/20_util/variant/85183.cc: New.
362 2018-03-26  Jonathan Wakely  <jwakely@redhat.com>
364         * include/std/variant (__get): Qualify calls to avoid ADL.
365         (__select_index): Adjust whitespace.
366         (variant): Add using-declaration to workaround Clang bug.
368 2018-03-22  Jonathan Wakely  <jwakely@redhat.com>
370         PR libstdc++/85040
371         * include/bits/stl_function.h (greater::__not_overloaded)
372         (less::__not_overloaded, greater_equal::__not_overloaded)
373         (less_equal::__not_overloaded): Fix ambiguous specializations.
374         * testsuite/20_util/function_objects/comparisons_pointer.cc: Add
375         tests for type with overloaded operators.
377 2018-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
379         PR libstdc++/77691
380         * testsuite/experimental/memory_resource/resource_adaptor.cc:
381         xfail execution on 32-bit Solaris/x86.
383 2018-03-21  Jonathan Wakely  <jwakely@redhat.com>
385         * testsuite/20_util/function_objects/comparisons_pointer.cc: Use
386         VERIFY instead of assert.
387         * testsuite/20_util/hash/84998.cc: New test.
388         * testsuite/23_containers/vector/cons/destructible_debug_neg.cc: New
389         copy of test adjusted for Debug Mode.
390         * testsuite/23_containers/vector/cons/destructible_neg.cc: Do not run
391         test in Debug Mode.
393 2018-03-20  François Dumont  <fdumont@gcc.gnu.org>
395         PR libstdc++/84998
396         * include/bits/stl_bvector.h: Fix std::hash friend declaration.
397         * include/std/bitset: Likewise.
398         * include/bits/stl_map.h (std::map<>): Fix _Rb_tree_merge_helper friend
399         declaration.
400         * include/bits/stl_multimap.h (std::multimap<>): Likewise.
401         * include/bits/stl_multiset.h (std::multiset<>): Likewise.
402         * include/bits/stl_set.h (std::set<>): Likewise.
403         * include/bits/unordered_map.h (std::unordered_map<>): Fix
404         _Hash_merge_helper friend declaration.
405         (std::unordered_multimap<>): Likewise.
406         * include/bits/unordered_set.h (std::unordered_set<>): Likewise.
407         (std::unordered_multiset<>): Likewise.
409 2018-03-19  Gerald Pfeifer  <gerald@pfeifer.com>
411         * doc/xml/api.xml: www.fsf.org has moved to https. Also omit
412         trailing slash for domain level link.
413         * doc/xml/faq.xml: Ditto.
414         * doc/xml/manual/appendix_free.xml (software): Ditto.
415         * doc/xml/manual/intro.xml: Ditto.
416         * doc/xml/manual/spine.xml: Ditto.
417         * doc/xml/spine.xml: Ditto.
419 2018-03-19  Gerald Pfeifer  <gerald@pfeifer.com>
421         * doc/xml/manual/documentation_hacking.xml: Adjust link to
422         docbook.org.
424 2018-03-17  Jonathan Wakely  <jwakely@redhat.com>
426         * testsuite/20_util/function_objects/comparisons_pointer.cc: Adjust
427         to compile as C++98.
429 2018-03-14  Jonathan Wakely  <jwakely@redhat.com>
431         PR libstdc++/78420
432         * include/bits/stl_function.h (greater<_Tp*>, less<_Tp*>)
433         (greater_equal<_Tp*>, less_equal<_Tp>*): Add partial specializations
434         to ensure total order for pointers.
435         (greater<void>, less<void>, greater_equal<void>, less_equal<void>):
436         Add operator() overloads for pointer arguments and make generic
437         overloads dispatch to new _S_cmp functions when comparisons would
438         use built-in operators for pointers.
439         * testsuite/20_util/function_objects/comparisons_pointer.cc: New.
441 2018-03-12  Jonathan Wakely  <jwakely@redhat.com>
443         PR libstdc++/84773
444         PR libstdc++/83662
445         * crossconfig.m4: Check for aligned_alloc etc. on freebsd and mingw32.
446         * configure: Regenerate.
447         * include/c_global/cstdlib [_GLIBCXX_HAVE_ALIGNED_ALLOC]
448         (aligned_alloc): Add using-declaration.
449         * testsuite/18_support/aligned_alloc/aligned_alloc.cc: New test.
451 2018-03-09  François Dumont  <fdumont@gcc.gnu.org>
453         * python/libstdcxx/v6/printers.py (build_libstdcxx_dictionary):
454         Fix std::_Fwd_list_iterator and std::_Fwd_list_const_iterator printers
455         registration.
457 2018-03-09  Jonathan Wakely  <jwakely@redhat.com>
459         PR libstdc++/84769
460         * include/std/variant (get<_Tp, _Types...>, get_if<_Tp, _Types...>):
461         Qualify calls to get<_Np, Types...> and get_if<_Np, _Types...>.
463         src/filesystem/ops.cc (create_dir): Pass error_code to is_directory.
464         src/filesystem/std-ops.cc (create_dir): Likewise.
466 2018-03-08  François Dumont  <fdumont@gcc.gnu.org>
468         * python/libstdcxx/v6/printers.py (NodeIteratorPrinter): New.
469         (StdListIteratorPrinter): Inherit from latter.
470         (StdFwdListIteratorPrinter): New, inherit from latter.
471         (StdDebugIteratorPrinter.to_string): Use non-debug iterator printer
472         when iterator has no associated container.
473         (build_libstdcxx_dictionary): Add __gnu_cxx::_Fwd_list_iterator and
474         __gnu_cxx::_Fwd_list_const_iterator printers. Remove __norm namespace
475         registrations.
476         * testsuite/libstdc++-prettyprinters/debug.cc: Adapt.
477         * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Adapt.
479 2018-03-06  Ville Voutilainen  <ville.voutilainen@gmail.com>
481         PR libstdc++/84601
482         * include/std/optional (_Optional_payload): Split into multiple
483         specializations that can handle different cases of trivial or
484         non-trivial assignment operators.
485         * testsuite/20_util/optional/84601.cc: New.
486         * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
488 2018-03-02  Jonathan Wakely  <jwakely@redhat.com>
490         PR libstdc++/84671
491         * include/bits/parse_numbers.h (_Number_help): Add partial
492         specialization to handle digit separators. Adjust partial
493         specialization for recursion temrination to require _Pow == 1ULL.
494         * testsuite/20_util/duration/literals/84671.cc: New
496 2018-02-27  Ville Voutilainen  <ville.voutilainen@gmail.com>
498         Implement the missing bits of LWG 2769
499         * include/std/any (any_cast(const any&)): Add static_assert.
500         (any_cast(any&)): Likewise.
501         (any_cast(any&&)): Likewise, and remove the handling
502         for copyable-but-not-movable type.
503         * testsuite/20_util/any/misc/any_cast.cc: Adjust.
504         * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise, and
505         add new tests.
507 2018-02-23  Jonathan Wakely  <jwakely@redhat.com>
509         PR libstdc++/84532
510         * include/std/thread (thread::__make_invoker): Construct tuple
511         directly instead of using make_tuple.
512         * testsuite/30_threads/async/84532.cc: New.
513         * testsuite/30_threads/thread/84532.cc: New.
515 2018-02-20  François Dumont  <fdumont@gcc.gnu.org>
517         * include/ext/aligned_buffer.h [_GLIBCXX_INLINE_VERSION]
518         (template<> __aligned_buffer): Define as __aligned_membuf alias.
520 2018-02-19  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
522         PR target/84148
523         * configure: Regenerate.
525 2018-02-15  Jonathan Wakely  <jwakely@redhat.com>
527         PR libstdc++/81797
528         * configure.ac (INCLUDE_DIR_NOTPARALLEL): Define.
529         * configure: Regenerate.
530         * include/Makefile.am (INCLUDE_DIR_NOTPARALLEL): Add .NOTPARALLEL when
531         defined.
532         * include/Makefile.in: Regenerate.
534 2018-01-29  Jonathan Wakely  <jwakely@redhat.com>
536         PR libstdc++/83833
537         * testsuite/26_numerics/random/chi_squared_distribution/83833.cc:
538         Add -ffloat-store to options for m68k and ia32.
540         * doc/xml/faq.xml: Update copyright years.
541         * doc/html/*: Regenerate.
543         PR libstdc++/83658
544         * include/std/any (any::__do_emplace): Only set _M_manager after
545         constructing the contained object.
546         * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust dg-error line.
547         * testsuite/20_util/any/modifiers/83658.cc: New test.
549 2018-01-25  Jonathan Wakely  <jwakely@redhat.com>
551         PR libstdc++/81076
552         * include/c_global/cstddef (__byte_operand): Define primary template.
553         * testsuite/18_support/byte/81076.cc: New test.
555 2018-01-19  Christophe Lyon  <christophe.lyon@linaro.org>
557         * testsuite/ext/special_functions/airy_ai/check_nan.cc: Fix
558         dg-options and dg-add-options order.
559         * testsuite/ext/special_functions/airy_bi/check_nan.cc: Likewise.
560         * testsuite/ext/special_functions/conf_hyperg/check_nan.cc:
561         Likewise.
562         * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
563         * testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
564         Likewise.
565         * testsuite/special_functions/02_assoc_legendre/check_nan.cc:
566         Likewise.
567         * testsuite/special_functions/03_beta/check_nan.cc: Likewise.
568         * testsuite/special_functions/04_comp_ellint_1/check_nan.cc:
569         Likewise.
570         * testsuite/special_functions/05_comp_ellint_2/check_nan.cc:
571         Likewise.
572         * testsuite/special_functions/06_comp_ellint_3/check_nan.cc:
573         Likewise.
574         * testsuite/special_functions/06_comp_ellint_3/pr66689.cc:
575         Likewise.
576         * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc:
577         Likewise.
578         * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc:
579         Likewise.
580         * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc:
581         Likewise.
582         * testsuite/special_functions/10_cyl_neumann/check_nan.cc:
583         Likewise.
584         * testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
585         * testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
586         * testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
587         * testsuite/special_functions/13_ellint_3/pr66689.cc: Likewise.
588         * testsuite/special_functions/14_expint/check_nan.cc: Likewise.
589         * testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
590         * testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
591         * testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
592         * testsuite/special_functions/18_riemann_zeta/check_nan.cc:
593         Likewise.
594         * testsuite/special_functions/19_sph_bessel/check_nan.cc:
595         Likewise.
596         * testsuite/special_functions/20_sph_legendre/check_nan.cc:
597         Likewise.
598         * testsuite/special_functions/21_sph_neumann/check_nan.cc:
599         Likewise.
601 2018-01-18  Uros Bizjak  <ubizjak@gmail.com>
603         * configure.ac (AC_CHECK_HEADERS): Add linux/types.h.  Conditionally
604         include linux/types.h when checking linux/random.h header.
605         * config.h.in: Regenerate.
606         * configure: Ditto.
607         * src/c++11/random.cc: Conditionally include linux/types.h.
609 2018-01-16  Eric Botcazou  <ebotcazou@adacore.com>
611         * testsuite/17_intro/names.cc: Undefine 'y' on SPARC/Linux.
613 2018-01-16  Jonathan Wakely  <jwakely@redhat.com>
615         PR libstdc++/83834
616         * config/abi/pre/gnu.ver (GLIBCXX_3.4): Replace std::c[a-g]* wildcard
617         pattern with exact match for std::cerr.
619 2018-01-15  Jonathan Wakely  <jwakely@redhat.com>
621         PR libstdc++/83833
622         * include/bits/random.h (chi_squared_distribution::param): Update
623         gamma distribution parameter.
624         * testsuite/26_numerics/random/chi_squared_distribution/83833.cc: New
625         test.
627         PR libstdc++/83830
628         * include/std/type_traits (has_unique_object_representations_v): Add
629         variable template.
630         * testsuite/20_util/has_unique_object_representations/value.cc: Check
631         variable template.
633 2018-01-15  Ville Voutilainen  <ville.voutilainen@gmail.com>
635         Make optional conditionally
636         trivially_{copy,move}_{constructible,assignable}
637         * include/std/optional (_Optional_payload): Fix the comment in
638         the class head and turn into a primary and one specialization.
639         (_Optional_payload::_M_engaged): Strike the NSDMI.
640         (_Optional_payload<_Tp, false>::operator=(const _Optional_payload&)):
641         New.
642         (_Optional_payload<_Tp, false>::operator=(_Optional_payload&&)):
643         Likewise.
644         (_Optional_payload<_Tp, false>::_M_get): Likewise.
645         (_Optional_payload<_Tp, false>::_M_reset): Likewise.
646         (_Optional_base_impl): Likewise.
647         (_Optional_base): Turn into a primary and three specializations.
648         (optional(nullopt)): Change the base init.
649         * testsuite/20_util/optional/assignment/8.cc: New.
650         * testsuite/20_util/optional/cons/trivial.cc: Likewise.
651         * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
653 2018-01-15  Jonathan Wakely  <jwakely@redhat.com>
655         PR libstdc++/80276
656         * python/libstdcxx/v6/printers.py (strip_inline_namespaces): New.
657         (get_template_arg_list): New.
658         (StdVariantPrinter._template_args): Remove, use get_template_arg_list
659         instead.
660         (TemplateTypePrinter): Rewrite to work with gdb.Type objects instead
661         of strings and regular expressions.
662         (add_one_template_type_printer): Adapt to new TemplateTypePrinter.
663         (FilteringTypePrinter): Add docstring. Match using startswith. Use
664         strip_inline_namespaces instead of strip_versioned_namespace.
665         (add_one_type_printer): Prepend namespace to match argument.
666         (register_type_printers): Add type printers for char16_t and char32_t
667         string types and for types using cxx11 ABI. Update calls to
668         add_one_template_type_printer to provide default argument dicts.
669         * testsuite/libstdc++-prettyprinters/80276.cc: New test.
670         * testsuite/libstdc++-prettyprinters/whatis.cc: Remove tests for
671         basic_string<unsigned char> and basic_string<signed char>.
672         * testsuite/libstdc++-prettyprinters/whatis2.cc: Duplicate whatis.cc
673         to test local variables, without overriding _GLIBCXX_USE_CXX11_ABI.
675 2018-01-14  Andreas Schwab  <schwab@linux-m68k.org>
677         PR libstdc++/81092
678         * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
680 2018-01-13  Tim Shen  <timshen@google.com>
682         PR libstdc++/83601
683         * include/bits/regex.tcc (regex_replace): Fix escaping in sed.
684         * testsuite/28_regex/algorithms/regex_replace/char/pr83601.cc: Tests.
685         * testsuite/28_regex/algorithms/regex_replace/wchar_t/pr83601.cc: Tests.
687 2018-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
689         PR libstdc++/64054
690         * testsuite/27_io/basic_ostream/inserters_arithmetic/char/hexfloat.cc:
691         Remove dg-xfail-run-if.
693 2018-01-10  François Dumont  <fdumont@gcc.gnu.org>
695         * include/bits/forward_list.h
696         (_Fwd_list_node_base(_Fwd_list_node_base&&)): New.
697         (_Fwd_list_node_base& operator=(_Fwd_list_node_base&&)): New.
698         (_Fwd_list_node_base(const _Fwd_list_node_base&)): Explicit delete.
699         (_Fwd_list_node_base& operator=(const _Fwd_list_node_base&)): Likewise.
700         (_Fwd_list_impl()): Add noexcept qualification.
701         (_Fwd_list_impl(const _Node_alloc_type&)): Delete.
702         (_Fwd_list_impl(_Fwd_list_impl&&)): New, default.
703         (_Fwd_list_impl(_Fwd_list_impl&&, _Node_alloc_type&&)): New.
704         (_Fwd_list_base()): Default.
705         (_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&, true_type)): New.
706         (_Fwd_list_base(_Fwd_list_base&&)): Default.
707         (forward_list<>()): Default.
708         (forward_list<>(forward_list&&)): Default.
709         (forward_list(forward_list&&, _Node_alloc_type&&, false_type)): New.
710         (forward_list(forward_list&&, _Node_alloc_type&&, true_type)): New.
711         (forward_list(forward_list&&, const _Alloc&)): Adapt to use latters.
712         * include/bits/forward_list.tcc
713         (_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&)): Adapt to use
714         _M_impl._M_head move assignment.
715         (forward_list<>::merge(forward_list<>&&, _Comp)): Likewise.
716         * testsuite/23_containers/forward_list/allocator/default_init.cc: New.
718 2018-01-09  Jonathan Wakely  <jwakely@redhat.com>
720         PR libstdc++/80276
721         * python/libstdcxx/v6/printers.py (SharedPointerPrinter)
722         (UniquePointerPrinter): Print correct template argument, not type of
723         the pointer.
724         (TemplateTypePrinter._recognizer.recognize): Handle failure to lookup
725         a type.
726         * testsuite/libstdc++-prettyprinters/cxx11.cc: Test unique_ptr of
727         array type.
728         * testsuite/libstdc++-prettyprinters/cxx17.cc: Test shared_ptr and
729         weak_ptr of array types.
731 2018-01-09  François Dumont  <fdumont@gcc.gnu.org>
733         PR libstdc++/83709
734         * include/bits/hashtable_policy.h
735         (__distance_fwd(_Iterator, _Iterator, input_iterator_tag)): Return 1 if
736         __first != __last.
737         (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, true_type)): New.
738         (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, false_type)):
739         Add false_type parameter.
740         (_Insert_base::insert): Adapt.
741         * include/bits/hashtable.h (_Hashtable::operator=(initializzr_list<>)):
742         Adapt.
743         (_Hashtable::_M_insert(_Arg&&, const _NodeGen&, true_type, size_t)):
744          Add __n_elt parameter, defaulted to 1.
745         (_Hashtable::_M_insert_unique_node): Likewise. Use it to call rehash
746         policy _M_need_rehash.
747         (_Hashtable::_M_merge_unique): Pass target number of elements to add to
748         produce only 1 rehash if necessary.
749         * testsuite/23_containers/unordered_map/insert/83709.cc: New.
750         * testsuite/23_containers/unordered_set/insert/83709.cc: New.
752 2018-01-09  Juraj Oršulić  <juraj.orsulic@fer.hr>
753             Jonathan Wakely  <jwakely@redhat.com>
755         PR libstdc++/59253 (partial)
756         * python/libstdcxx/v6/printers.py (SmartPtrIterator): Common iterator
757         type for pointer stored by shared_ptr, weak_ptr and unique_ptr.
758         (SharedPointerPrinter, UniquePointerPrinter): Treat stored values as
759         children.
760         * testsuite/libstdc++-prettyprinters/cxx11.cc: Update expected output
761         of unique_ptr printer.
762         * testsuite/libstdc++-prettyprinters/shared_ptr.cc: Update expected
763         output of shared_ptr printer.
765 2018-01-05  Jonathan Wakely  <jwakely@redhat.com>
767         PR libstdc++/83626
768         * src/filesystem/ops.cc (remove(const path&, error_code&)): Remove
769         unnecessary symlink_status call.
770         (remove_all(const path&, error_code&)): Use filesystem::remove.
771         * src/filesystem/std-ops.cc: Likewise.
773         PR libstdc++/83279
774         * src/filesystem/std-ops.cc  (do_copy_file): Use non-null offset with
775         sendfile.
777         PR libstdc++/83626
778         * src/filesystem/ops.cc (remove(const path&, error_code&)): Do not
779         report an error for ENOENT.
780         (remove_all(const path&)): Fix type of result variable.
781         (remove_all(const path&, error_code&)): Use non-throwing increment
782         for directory iterator. Call POSIX remove directly to avoid redundant
783         calls to symlink_status. Do not report errors for ENOENT.
784         * src/filesystem/std-ops.cc: Likewise.
785         * testsuite/27_io/filesystem/operations/remove_all.cc: Test throwing
786         overload.
787         * testsuite/experimental/filesystem/operations/remove_all.cc:
788         Likewise.
790 2018-01-04  Jonathan Wakely  <jwakely@redhat.com>
792         PR libstdc++/83626
793         * src/filesystem/ops.cc (remove(const path&, error_code&))): Remove
794         redundant call to ec.clear().
795         (remove_all(const path&, error_code&))): Do not return an error for
796         non-existent paths.
797         * src/filesystem/std-ops.cc: Likewise.
798         * testsuite/27_io/filesystem/operations/remove.cc: New test.
799         * testsuite/27_io/filesystem/operations/remove_all.cc: Fix expected
800         results for non-existent paths.
801         * testsuite/experimental/filesystem/operations/remove.cc: New test.
802         * testsuite/experimental/filesystem/operations/remove_all.cc: Fix
803         expected results for non-existent paths.
805         * include/bits/fs_ops.h (exists(const path&, error_code&))): Only
806         check status_known once.
807         * include/experimental/bits/fs_ops.h: Likewise.
809         PR libstdc++/83607
810         * include/std/functional (__is_byte_like): New trait.
811         (__is_std_equal_to): Remove.
812         (__boyer_moore_base_t): Use __is_byte_like instead of
813         __is_std_equal_to.
814         * include/experimental/functional (__is_std_equal_to): Remove.
815         (__boyer_moore_base_t): Use __is_byte_like instead of
816         __is_std_equal_to.
817         * testsuite/20_util/function_objects/83607.cc: New test.
819 2018-01-03  Ville Voutilainen  <ville.voutilainen@gmail.com>
821         Protect optional's deduction guide with the feature macro
822         * include/std/optional: Use the feature macro.
824 2018-01-03  Jakub Jelinek  <jakub@redhat.com>
826         Update copyright years.
828 Copyright (C) 2018 Free Software Foundation, Inc.
830 Copying and distribution of this file, with or without modification,
831 are permitted in any medium without royalty provided the copyright
832 notice and this notice are preserved.