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