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