2018-03-23 Eric Botcazou <ebotcazou@adacore.com>
[official-gcc.git] / libstdc++-v3 / ChangeLog
blob5d2620dcca07f43ac1d937dbf96fa4800857e566
1 2018-03-22  Jonathan Wakely  <jwakely@redhat.com>
3         PR libstdc++/85040
4         * include/bits/stl_function.h (greater::__not_overloaded)
5         (less::__not_overloaded, greater_equal::__not_overloaded)
6         (less_equal::__not_overloaded): Fix ambiguous specializations.
7         * testsuite/20_util/function_objects/comparisons_pointer.cc: Add
8         tests for type with overlaoded operators.
10 2018-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12         PR libstdc++/77691
13         * testsuite/experimental/memory_resource/resource_adaptor.cc:
14         xfail execution on 32-bit Solaris/x86.
16 2018-03-21  Jonathan Wakely  <jwakely@redhat.com>
18         * testsuite/20_util/function_objects/comparisons_pointer.cc: Use
19         VERIFY instead of assert.
20         * testsuite/20_util/hash/84998.cc: New test.
21         * testsuite/23_containers/vector/cons/destructible_debug_neg.cc: New
22         copy of test adjusted for Debug Mode.
23         * testsuite/23_containers/vector/cons/destructible_neg.cc: Do not run
24         test in Debug Mode.
26 2018-03-20  François Dumont  <fdumont@gcc.gnu.org>
28         PR libstdc++/84998
29         * include/bits/stl_bvector.h: Fix std::hash friend declaration.
30         * include/std/bitset: Likewise.
31         * include/bits/stl_map.h (std::map<>): Fix _Rb_tree_merge_helper friend
32         declaration.
33         * include/bits/stl_multimap.h (std::multimap<>): Likewise.
34         * include/bits/stl_multiset.h (std::multiset<>): Likewise.
35         * include/bits/stl_set.h (std::set<>): Likewise.
36         * include/bits/unordered_map.h (std::unordered_map<>): Fix
37         _Hash_merge_helper friend declaration.
38         (std::unordered_multimap<>): Likewise.
39         * include/bits/unordered_set.h (std::unordered_set<>): Likewise.
40         (std::unordered_multiset<>): Likewise.
42 2018-03-19  Gerald Pfeifer  <gerald@pfeifer.com>
44         * doc/xml/api.xml: www.fsf.org has moved to https. Also omit
45         trailing slash for domain level link.
46         * doc/xml/faq.xml: Ditto.
47         * doc/xml/manual/appendix_free.xml (software): Ditto.
48         * doc/xml/manual/intro.xml: Ditto.
49         * doc/xml/manual/spine.xml: Ditto.
50         * doc/xml/spine.xml: Ditto.
52 2018-03-19  Gerald Pfeifer  <gerald@pfeifer.com>
54         * doc/xml/manual/documentation_hacking.xml: Adjust link to
55         docbook.org.
57 2018-03-17  Jonathan Wakely  <jwakely@redhat.com>
59         * testsuite/20_util/function_objects/comparisons_pointer.cc: Adjust
60         to compile as C++98.
62 2018-03-14  Jonathan Wakely  <jwakely@redhat.com>
64         PR libstdc++/78420
65         * include/bits/stl_function.h (greater<_Tp*>, less<_Tp*>)
66         (greater_equal<_Tp*>, less_equal<_Tp>*): Add partial specializations
67         to ensure total order for pointers.
68         (greater<void>, less<void>, greater_equal<void>, less_equal<void>):
69         Add operator() overloads for pointer arguments and make generic
70         overloads dispatch to new _S_cmp functions when comparisons would
71         use built-in operators for pointers.
72         * testsuite/20_util/function_objects/comparisons_pointer.cc: New.
74 2018-03-12  Jonathan Wakely  <jwakely@redhat.com>
76         PR libstdc++/84773
77         PR libstdc++/83662
78         * crossconfig.m4: Check for aligned_alloc etc. on freebsd and mingw32.
79         * configure: Regenerate.
80         * include/c_global/cstdlib [_GLIBCXX_HAVE_ALIGNED_ALLOC]
81         (aligned_alloc): Add using-declaration.
82         * testsuite/18_support/aligned_alloc/aligned_alloc.cc: New test.
84 2018-03-09  François Dumont  <fdumont@gcc.gnu.org>
86         * python/libstdcxx/v6/printers.py (build_libstdcxx_dictionary):
87         Fix std::_Fwd_list_iterator and std::_Fwd_list_const_iterator printers
88         registration.
90 2018-03-09  Jonathan Wakely  <jwakely@redhat.com>
92         PR libstdc++/84769
93         * include/std/variant (get<_Tp, _Types...>, get_if<_Tp, _Types...>):
94         Qualify calls to get<_Np, Types...> and get_if<_Np, _Types...>.
96         src/filesystem/ops.cc (create_dir): Pass error_code to is_directory.
97         src/filesystem/std-ops.cc (create_dir): Likewise.
99 2018-03-08  François Dumont  <fdumont@gcc.gnu.org>
101         * python/libstdcxx/v6/printers.py (NodeIteratorPrinter): New.
102         (StdListIteratorPrinter): Inherit from latter.
103         (StdFwdListIteratorPrinter): New, inherit from latter.
104         (StdDebugIteratorPrinter.to_string): Use non-debug iterator printer
105         when iterator has no associated container.
106         (build_libstdcxx_dictionary): Add __gnu_cxx::_Fwd_list_iterator and
107         __gnu_cxx::_Fwd_list_const_iterator printers. Remove __norm namespace
108         registrations.
109         * testsuite/libstdc++-prettyprinters/debug.cc: Adapt.
110         * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Adapt.
112 2018-03-06  Ville Voutilainen  <ville.voutilainen@gmail.com>
114         PR libstdc++/84601
115         * include/std/optional (_Optional_payload): Split into multiple
116         specializations that can handle different cases of trivial or
117         non-trivial assignment operators.
118         * testsuite/20_util/optional/84601.cc: New.
119         * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
121 2018-03-02  Jonathan Wakely  <jwakely@redhat.com>
123         PR libstdc++/84671
124         * include/bits/parse_numbers.h (_Number_help): Add partial
125         specialization to handle digit separators. Adjust partial
126         specialization for recursion temrination to require _Pow == 1ULL.
127         * testsuite/20_util/duration/literals/84671.cc: New
129 2018-02-27  Ville Voutilainen  <ville.voutilainen@gmail.com>
131         Implement the missing bits of LWG 2769
132         * include/std/any (any_cast(const any&)): Add static_assert.
133         (any_cast(any&)): Likewise.
134         (any_cast(any&&)): Likewise, and remove the handling
135         for copyable-but-not-movable type.
136         * testsuite/20_util/any/misc/any_cast.cc: Adjust.
137         * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise, and
138         add new tests.
140 2018-02-23  Jonathan Wakely  <jwakely@redhat.com>
142         PR libstdc++/84532
143         * include/std/thread (thread::__make_invoker): Construct tuple
144         directly instead of using make_tuple.
145         * testsuite/30_threads/async/84532.cc: New.
146         * testsuite/30_threads/thread/84532.cc: New.
148 2018-02-20  François Dumont  <fdumont@gcc.gnu.org>
150         * include/ext/aligned_buffer.h [_GLIBCXX_INLINE_VERSION]
151         (template<> __aligned_buffer): Define as __aligned_membuf alias.
153 2018-02-19  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
155         PR target/84148
156         * configure: Regenerate.
158 2018-02-15  Jonathan Wakely  <jwakely@redhat.com>
160         PR libstdc++/81797
161         * configure.ac (INCLUDE_DIR_NOTPARALLEL): Define.
162         * configure: Regenerate.
163         * include/Makefile.am (INCLUDE_DIR_NOTPARALLEL): Add .NOTPARALLEL when
164         defined.
165         * include/Makefile.in: Regenerate.
167 2018-01-29  Jonathan Wakely  <jwakely@redhat.com>
169         PR libstdc++/83833
170         * testsuite/26_numerics/random/chi_squared_distribution/83833.cc:
171         Add -ffloat-store to options for m68k and ia32.
173         * doc/xml/faq.xml: Update copyright years.
174         * doc/html/*: Regenerate.
176         PR libstdc++/83658
177         * include/std/any (any::__do_emplace): Only set _M_manager after
178         constructing the contained object.
179         * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust dg-error line.
180         * testsuite/20_util/any/modifiers/83658.cc: New test.
182 2018-01-25  Jonathan Wakely  <jwakely@redhat.com>
184         PR libstdc++/81076
185         * include/c_global/cstddef (__byte_operand): Define primary template.
186         * testsuite/18_support/byte/81076.cc: New test.
188 2018-01-19  Christophe Lyon  <christophe.lyon@linaro.org>
190         * testsuite/ext/special_functions/airy_ai/check_nan.cc: Fix
191         dg-options and dg-add-options order.
192         * testsuite/ext/special_functions/airy_bi/check_nan.cc: Likewise.
193         * testsuite/ext/special_functions/conf_hyperg/check_nan.cc:
194         Likewise.
195         * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
196         * testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
197         Likewise.
198         * testsuite/special_functions/02_assoc_legendre/check_nan.cc:
199         Likewise.
200         * testsuite/special_functions/03_beta/check_nan.cc: Likewise.
201         * testsuite/special_functions/04_comp_ellint_1/check_nan.cc:
202         Likewise.
203         * testsuite/special_functions/05_comp_ellint_2/check_nan.cc:
204         Likewise.
205         * testsuite/special_functions/06_comp_ellint_3/check_nan.cc:
206         Likewise.
207         * testsuite/special_functions/06_comp_ellint_3/pr66689.cc:
208         Likewise.
209         * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc:
210         Likewise.
211         * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc:
212         Likewise.
213         * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc:
214         Likewise.
215         * testsuite/special_functions/10_cyl_neumann/check_nan.cc:
216         Likewise.
217         * testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
218         * testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
219         * testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
220         * testsuite/special_functions/13_ellint_3/pr66689.cc: Likewise.
221         * testsuite/special_functions/14_expint/check_nan.cc: Likewise.
222         * testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
223         * testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
224         * testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
225         * testsuite/special_functions/18_riemann_zeta/check_nan.cc:
226         Likewise.
227         * testsuite/special_functions/19_sph_bessel/check_nan.cc:
228         Likewise.
229         * testsuite/special_functions/20_sph_legendre/check_nan.cc:
230         Likewise.
231         * testsuite/special_functions/21_sph_neumann/check_nan.cc:
232         Likewise.
234 2018-01-18  Uros Bizjak  <ubizjak@gmail.com>
236         * configure.ac (AC_CHECK_HEADERS): Add linux/types.h.  Conditionally
237         include linux/types.h when checking linux/random.h header.
238         * config.h.in: Regenerate.
239         * configure: Ditto.
240         * src/c++11/random.cc: Conditionally include linux/types.h.
242 2018-01-16  Eric Botcazou  <ebotcazou@adacore.com>
244         * testsuite/17_intro/names.cc: Undefine 'y' on SPARC/Linux.
246 2018-01-16  Jonathan Wakely  <jwakely@redhat.com>
248         PR libstdc++/83834
249         * config/abi/pre/gnu.ver (GLIBCXX_3.4): Replace std::c[a-g]* wildcard
250         pattern with exact match for std::cerr.
252 2018-01-15  Jonathan Wakely  <jwakely@redhat.com>
254         PR libstdc++/83833
255         * include/bits/random.h (chi_squared_distribution::param): Update
256         gamma distribution parameter.
257         * testsuite/26_numerics/random/chi_squared_distribution/83833.cc: New
258         test.
260         PR libstdc++/83830
261         * include/std/type_traits (has_unique_object_representations_v): Add
262         variable template.
263         * testsuite/20_util/has_unique_object_representations/value.cc: Check
264         variable template.
266 2018-01-15  Ville Voutilainen  <ville.voutilainen@gmail.com>
268         Make optional conditionally
269         trivially_{copy,move}_{constructible,assignable}
270         * include/std/optional (_Optional_payload): Fix the comment in
271         the class head and turn into a primary and one specialization.
272         (_Optional_payload::_M_engaged): Strike the NSDMI.
273         (_Optional_payload<_Tp, false>::operator=(const _Optional_payload&)):
274         New.
275         (_Optional_payload<_Tp, false>::operator=(_Optional_payload&&)):
276         Likewise.
277         (_Optional_payload<_Tp, false>::_M_get): Likewise.
278         (_Optional_payload<_Tp, false>::_M_reset): Likewise.
279         (_Optional_base_impl): Likewise.
280         (_Optional_base): Turn into a primary and three specializations.
281         (optional(nullopt)): Change the base init.
282         * testsuite/20_util/optional/assignment/8.cc: New.
283         * testsuite/20_util/optional/cons/trivial.cc: Likewise.
284         * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
286 2018-01-15  Jonathan Wakely  <jwakely@redhat.com>
288         PR libstdc++/80276
289         * python/libstdcxx/v6/printers.py (strip_inline_namespaces): New.
290         (get_template_arg_list): New.
291         (StdVariantPrinter._template_args): Remove, use get_template_arg_list
292         instead.
293         (TemplateTypePrinter): Rewrite to work with gdb.Type objects instead
294         of strings and regular expressions.
295         (add_one_template_type_printer): Adapt to new TemplateTypePrinter.
296         (FilteringTypePrinter): Add docstring. Match using startswith. Use
297         strip_inline_namespaces instead of strip_versioned_namespace.
298         (add_one_type_printer): Prepend namespace to match argument.
299         (register_type_printers): Add type printers for char16_t and char32_t
300         string types and for types using cxx11 ABI. Update calls to
301         add_one_template_type_printer to provide default argument dicts.
302         * testsuite/libstdc++-prettyprinters/80276.cc: New test.
303         * testsuite/libstdc++-prettyprinters/whatis.cc: Remove tests for
304         basic_string<unsigned char> and basic_string<signed char>.
305         * testsuite/libstdc++-prettyprinters/whatis2.cc: Duplicate whatis.cc
306         to test local variables, without overriding _GLIBCXX_USE_CXX11_ABI.
308 2018-01-14  Andreas Schwab  <schwab@linux-m68k.org>
310         PR libstdc++/81092
311         * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
313 2018-01-13  Tim Shen  <timshen@google.com>
315         PR libstdc++/83601
316         * include/bits/regex.tcc (regex_replace): Fix escaping in sed.
317         * testsuite/28_regex/algorithms/regex_replace/char/pr83601.cc: Tests.
318         * testsuite/28_regex/algorithms/regex_replace/wchar_t/pr83601.cc: Tests.
320 2018-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
322         PR libstdc++/64054
323         * testsuite/27_io/basic_ostream/inserters_arithmetic/char/hexfloat.cc:
324         Remove dg-xfail-run-if.
326 2018-01-10  François Dumont  <fdumont@gcc.gnu.org>
328         * include/bits/forward_list.h
329         (_Fwd_list_node_base(_Fwd_list_node_base&&)): New.
330         (_Fwd_list_node_base& operator=(_Fwd_list_node_base&&)): New.
331         (_Fwd_list_node_base(const _Fwd_list_node_base&)): Explicit delete.
332         (_Fwd_list_node_base& operator=(const _Fwd_list_node_base&)): Likewise.
333         (_Fwd_list_impl()): Add noexcept qualification.
334         (_Fwd_list_impl(const _Node_alloc_type&)): Delete.
335         (_Fwd_list_impl(_Fwd_list_impl&&)): New, default.
336         (_Fwd_list_impl(_Fwd_list_impl&&, _Node_alloc_type&&)): New.
337         (_Fwd_list_base()): Default.
338         (_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&, true_type)): New.
339         (_Fwd_list_base(_Fwd_list_base&&)): Default.
340         (forward_list<>()): Default.
341         (forward_list<>(forward_list&&)): Default.
342         (forward_list(forward_list&&, _Node_alloc_type&&, false_type)): New.
343         (forward_list(forward_list&&, _Node_alloc_type&&, true_type)): New.
344         (forward_list(forward_list&&, const _Alloc&)): Adapt to use latters.
345         * include/bits/forward_list.tcc
346         (_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&)): Adapt to use
347         _M_impl._M_head move assignment.
348         (forward_list<>::merge(forward_list<>&&, _Comp)): Likewise.
349         * testsuite/23_containers/forward_list/allocator/default_init.cc: New.
351 2018-01-09  Jonathan Wakely  <jwakely@redhat.com>
353         PR libstdc++/80276
354         * python/libstdcxx/v6/printers.py (SharedPointerPrinter)
355         (UniquePointerPrinter): Print correct template argument, not type of
356         the pointer.
357         (TemplateTypePrinter._recognizer.recognize): Handle failure to lookup
358         a type.
359         * testsuite/libstdc++-prettyprinters/cxx11.cc: Test unique_ptr of
360         array type.
361         * testsuite/libstdc++-prettyprinters/cxx17.cc: Test shared_ptr and
362         weak_ptr of array types.
364 2018-01-09  François Dumont  <fdumont@gcc.gnu.org>
366         PR libstdc++/83709
367         * include/bits/hashtable_policy.h
368         (__distance_fwd(_Iterator, _Iterator, input_iterator_tag)): Return 1 if
369         __first != __last.
370         (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, true_type)): New.
371         (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, false_type)):
372         Add false_type parameter.
373         (_Insert_base::insert): Adapt.
374         * include/bits/hashtable.h (_Hashtable::operator=(initializzr_list<>)):
375         Adapt.
376         (_Hashtable::_M_insert(_Arg&&, const _NodeGen&, true_type, size_t)):
377          Add __n_elt parameter, defaulted to 1.
378         (_Hashtable::_M_insert_unique_node): Likewise. Use it to call rehash
379         policy _M_need_rehash.
380         (_Hashtable::_M_merge_unique): Pass target number of elements to add to
381         produce only 1 rehash if necessary.
382         * testsuite/23_containers/unordered_map/insert/83709.cc: New.
383         * testsuite/23_containers/unordered_set/insert/83709.cc: New.
385 2018-01-09  Juraj Oršulić  <juraj.orsulic@fer.hr>
386             Jonathan Wakely  <jwakely@redhat.com>
388         PR libstdc++/59253 (partial)
389         * python/libstdcxx/v6/printers.py (SmartPtrIterator): Common iterator
390         type for pointer stored by shared_ptr, weak_ptr and unique_ptr.
391         (SharedPointerPrinter, UniquePointerPrinter): Treat stored values as
392         children.
393         * testsuite/libstdc++-prettyprinters/cxx11.cc: Update expected output
394         of unique_ptr printer.
395         * testsuite/libstdc++-prettyprinters/shared_ptr.cc: Update expected
396         output of shared_ptr printer.
398 2018-01-05  Jonathan Wakely  <jwakely@redhat.com>
400         PR libstdc++/83626
401         * src/filesystem/ops.cc (remove(const path&, error_code&)): Remove
402         unnecessary symlink_status call.
403         (remove_all(const path&, error_code&)): Use filesystem::remove.
404         * src/filesystem/std-ops.cc: Likewise.
406         PR libstdc++/83279
407         * src/filesystem/std-ops.cc  (do_copy_file): Use non-null offset with
408         sendfile.
410         PR libstdc++/83626
411         * src/filesystem/ops.cc (remove(const path&, error_code&)): Do not
412         report an error for ENOENT.
413         (remove_all(const path&)): Fix type of result variable.
414         (remove_all(const path&, error_code&)): Use non-throwing increment
415         for directory iterator. Call POSIX remove directly to avoid redundant
416         calls to symlink_status. Do not report errors for ENOENT.
417         * src/filesystem/std-ops.cc: Likewise.
418         * testsuite/27_io/filesystem/operations/remove_all.cc: Test throwing
419         overload.
420         * testsuite/experimental/filesystem/operations/remove_all.cc:
421         Likewise.
423 2018-01-04  Jonathan Wakely  <jwakely@redhat.com>
425         PR libstdc++/83626
426         * src/filesystem/ops.cc (remove(const path&, error_code&))): Remove
427         redundant call to ec.clear().
428         (remove_all(const path&, error_code&))): Do not return an error for
429         non-existent paths.
430         * src/filesystem/std-ops.cc: Likewise.
431         * testsuite/27_io/filesystem/operations/remove.cc: New test.
432         * testsuite/27_io/filesystem/operations/remove_all.cc: Fix expected
433         results for non-existent paths.
434         * testsuite/experimental/filesystem/operations/remove.cc: New test.
435         * testsuite/experimental/filesystem/operations/remove_all.cc: Fix
436         expected results for non-existent paths.
438         * include/bits/fs_ops.h (exists(const path&, error_code&))): Only
439         check status_known once.
440         * include/experimental/bits/fs_ops.h: Likewise.
442         PR libstdc++/83607
443         * include/std/functional (__is_byte_like): New trait.
444         (__is_std_equal_to): Remove.
445         (__boyer_moore_base_t): Use __is_byte_like instead of
446         __is_std_equal_to.
447         * include/experimental/functional (__is_std_equal_to): Remove.
448         (__boyer_moore_base_t): Use __is_byte_like instead of
449         __is_std_equal_to.
450         * testsuite/20_util/function_objects/83607.cc: New test.
452 2018-01-03  Ville Voutilainen  <ville.voutilainen@gmail.com>
454         Protect optional's deduction guide with the feature macro
455         * include/std/optional: Use the feature macro.
457 2018-01-03  Jakub Jelinek  <jakub@redhat.com>
459         Update copyright years.
461 Copyright (C) 2018 Free Software Foundation, Inc.
463 Copying and distribution of this file, with or without modification,
464 are permitted in any medium without royalty provided the copyright
465 notice and this notice are preserved.