* MAINTAINERS (write after approval): Add myself.
[official-gcc.git] / libstdc++-v3 / ChangeLog
blob2f4df710b4d58adf3fcab22a5d916cec30c4e569
1 2018-01-15  Jonathan Wakely  <jwakely@redhat.com>
3         PR libstdc++/83833
4         * include/bits/random.h (chi_squared_distribution::param): Update
5         gamma distribution parameter.
6         * testsuite/26_numerics/random/chi_squared_distribution/83833.cc: New
7         test.
9         PR libstdc++/83830
10         * include/std/type_traits (has_unique_object_representations_v): Add
11         variable template.
12         * testsuite/20_util/has_unique_object_representations/value.cc: Check
13         variable template.
15 2018-01-15  Ville Voutilainen  <ville.voutilainen@gmail.com>
17         Make optional conditionally
18         trivially_{copy,move}_{constructible,assignable}
19         * include/std/optional (_Optional_payload): Fix the comment in
20         the class head and turn into a primary and one specialization.
21         (_Optional_payload::_M_engaged): Strike the NSDMI.
22         (_Optional_payload<_Tp, false>::operator=(const _Optional_payload&)):
23         New.
24         (_Optional_payload<_Tp, false>::operator=(_Optional_payload&&)):
25         Likewise.
26         (_Optional_payload<_Tp, false>::_M_get): Likewise.
27         (_Optional_payload<_Tp, false>::_M_reset): Likewise.
28         (_Optional_base_impl): Likewise.
29         (_Optional_base): Turn into a primary and three specializations.
30         (optional(nullopt)): Change the base init.
31         * testsuite/20_util/optional/assignment/8.cc: New.
32         * testsuite/20_util/optional/cons/trivial.cc: Likewise.
33         * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
35 2018-01-15  Jonathan Wakely  <jwakely@redhat.com>
37         PR libstdc++/80276
38         * python/libstdcxx/v6/printers.py (strip_inline_namespaces): New.
39         (get_template_arg_list): New.
40         (StdVariantPrinter._template_args): Remove, use get_template_arg_list
41         instead.
42         (TemplateTypePrinter): Rewrite to work with gdb.Type objects instead
43         of strings and regular expressions.
44         (add_one_template_type_printer): Adapt to new TemplateTypePrinter.
45         (FilteringTypePrinter): Add docstring. Match using startswith. Use
46         strip_inline_namespaces instead of strip_versioned_namespace.
47         (add_one_type_printer): Prepend namespace to match argument.
48         (register_type_printers): Add type printers for char16_t and char32_t
49         string types and for types using cxx11 ABI. Update calls to
50         add_one_template_type_printer to provide default argument dicts.
51         * testsuite/libstdc++-prettyprinters/80276.cc: New test.
52         * testsuite/libstdc++-prettyprinters/whatis.cc: Remove tests for
53         basic_string<unsigned char> and basic_string<signed char>.
54         * testsuite/libstdc++-prettyprinters/whatis2.cc: Duplicate whatis.cc
55         to test local variables, without overriding _GLIBCXX_USE_CXX11_ABI.
57 2018-01-14  Andreas Schwab  <schwab@linux-m68k.org>
59         PR libstdc++/81092
60         * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
62 2018-01-13  Tim Shen  <timshen@google.com>
64         PR libstdc++/83601
65         * include/bits/regex.tcc (regex_replace): Fix escaping in sed.
66         * testsuite/28_regex/algorithms/regex_replace/char/pr83601.cc: Tests.
67         * testsuite/28_regex/algorithms/regex_replace/wchar_t/pr83601.cc: Tests.
69 2018-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
71         PR libstdc++/64054
72         * testsuite/27_io/basic_ostream/inserters_arithmetic/char/hexfloat.cc:
73         Remove dg-xfail-run-if.
75 2018-01-10  François Dumont  <fdumont@gcc.gnu.org>
77         * include/bits/forward_list.h
78         (_Fwd_list_node_base(_Fwd_list_node_base&&)): New.
79         (_Fwd_list_node_base& operator=(_Fwd_list_node_base&&)): New.
80         (_Fwd_list_node_base(const _Fwd_list_node_base&)): Explicit delete.
81         (_Fwd_list_node_base& operator=(const _Fwd_list_node_base&)): Likewise.
82         (_Fwd_list_impl()): Add noexcept qualification.
83         (_Fwd_list_impl(const _Node_alloc_type&)): Delete.
84         (_Fwd_list_impl(_Fwd_list_impl&&)): New, default.
85         (_Fwd_list_impl(_Fwd_list_impl&&, _Node_alloc_type&&)): New.
86         (_Fwd_list_base()): Default.
87         (_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&, true_type)): New.
88         (_Fwd_list_base(_Fwd_list_base&&)): Default.
89         (forward_list<>()): Default.
90         (forward_list<>(forward_list&&)): Default.
91         (forward_list(forward_list&&, _Node_alloc_type&&, false_type)): New.
92         (forward_list(forward_list&&, _Node_alloc_type&&, true_type)): New.
93         (forward_list(forward_list&&, const _Alloc&)): Adapt to use latters.
94         * include/bits/forward_list.tcc
95         (_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&)): Adapt to use
96         _M_impl._M_head move assignment.
97         (forward_list<>::merge(forward_list<>&&, _Comp)): Likewise.
98         * testsuite/23_containers/forward_list/allocator/default_init.cc: New.
100 2018-01-09  Jonathan Wakely  <jwakely@redhat.com>
102         PR libstdc++/80276
103         * python/libstdcxx/v6/printers.py (SharedPointerPrinter)
104         (UniquePointerPrinter): Print correct template argument, not type of
105         the pointer.
106         (TemplateTypePrinter._recognizer.recognize): Handle failure to lookup
107         a type.
108         * testsuite/libstdc++-prettyprinters/cxx11.cc: Test unique_ptr of
109         array type.
110         * testsuite/libstdc++-prettyprinters/cxx17.cc: Test shared_ptr and
111         weak_ptr of array types.
113 2018-01-09  François Dumont  <fdumont@gcc.gnu.org>
115         PR libstdc++/83709
116         * include/bits/hashtable_policy.h
117         (__distance_fwd(_Iterator, _Iterator, input_iterator_tag)): Return 1 if
118         __first != __last.
119         (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, true_type)): New.
120         (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, false_type)):
121         Add false_type parameter.
122         (_Insert_base::insert): Adapt.
123         * include/bits/hashtable.h (_Hashtable::operator=(initializzr_list<>)):
124         Adapt.
125         (_Hashtable::_M_insert(_Arg&&, const _NodeGen&, true_type, size_t)):
126          Add __n_elt parameter, defaulted to 1.
127         (_Hashtable::_M_insert_unique_node): Likewise. Use it to call rehash
128         policy _M_need_rehash.
129         (_Hashtable::_M_merge_unique): Pass target number of elements to add to
130         produce only 1 rehash if necessary.
131         * testsuite/23_containers/unordered_map/insert/83709.cc: New.
132         * testsuite/23_containers/unordered_set/insert/83709.cc: New.
134 2018-01-09  Juraj Oršulić  <juraj.orsulic@fer.hr>
135             Jonathan Wakely  <jwakely@redhat.com>
137         PR libstdc++/59253 (partial)
138         * python/libstdcxx/v6/printers.py (SmartPtrIterator): Common iterator
139         type for pointer stored by shared_ptr, weak_ptr and unique_ptr.
140         (SharedPointerPrinter, UniquePointerPrinter): Treat stored values as
141         children.
142         * testsuite/libstdc++-prettyprinters/cxx11.cc: Update expected output
143         of unique_ptr printer.
144         * testsuite/libstdc++-prettyprinters/shared_ptr.cc: Update expected
145         output of shared_ptr printer.
147 2018-01-05  Jonathan Wakely  <jwakely@redhat.com>
149         PR libstdc++/83626
150         * src/filesystem/ops.cc (remove(const path&, error_code&)): Remove
151         unnecessary symlink_status call.
152         (remove_all(const path&, error_code&)): Use filesystem::remove.
153         * src/filesystem/std-ops.cc: Likewise.
155         PR libstdc++/83279
156         * src/filesystem/std-ops.cc  (do_copy_file): Use non-null offset with
157         sendfile.
159         PR libstdc++/83626
160         * src/filesystem/ops.cc (remove(const path&, error_code&)): Do not
161         report an error for ENOENT.
162         (remove_all(const path&)): Fix type of result variable.
163         (remove_all(const path&, error_code&)): Use non-throwing increment
164         for directory iterator. Call POSIX remove directly to avoid redundant
165         calls to symlink_status. Do not report errors for ENOENT.
166         * src/filesystem/std-ops.cc: Likewise.
167         * testsuite/27_io/filesystem/operations/remove_all.cc: Test throwing
168         overload.
169         * testsuite/experimental/filesystem/operations/remove_all.cc:
170         Likewise.
172 2018-01-04  Jonathan Wakely  <jwakely@redhat.com>
174         PR libstdc++/83626
175         * src/filesystem/ops.cc (remove(const path&, error_code&))): Remove
176         redundant call to ec.clear().
177         (remove_all(const path&, error_code&))): Do not return an error for
178         non-existent paths.
179         * src/filesystem/std-ops.cc: Likewise.
180         * testsuite/27_io/filesystem/operations/remove.cc: New test.
181         * testsuite/27_io/filesystem/operations/remove_all.cc: Fix expected
182         results for non-existent paths.
183         * testsuite/experimental/filesystem/operations/remove.cc: New test.
184         * testsuite/experimental/filesystem/operations/remove_all.cc: Fix
185         expected results for non-existent paths.
187         * include/bits/fs_ops.h (exists(const path&, error_code&))): Only
188         check status_known once.
189         * include/experimental/bits/fs_ops.h: Likewise.
191         PR libstdc++/83607
192         * include/std/functional (__is_byte_like): New trait.
193         (__is_std_equal_to): Remove.
194         (__boyer_moore_base_t): Use __is_byte_like instead of
195         __is_std_equal_to.
196         * include/experimental/functional (__is_std_equal_to): Remove.
197         (__boyer_moore_base_t): Use __is_byte_like instead of
198         __is_std_equal_to.
199         * testsuite/20_util/function_objects/83607.cc: New test.
201 2018-01-03  Ville Voutilainen  <ville.voutilainen@gmail.com>
203         Protect optional's deduction guide with the feature macro
204         * include/std/optional: Use the feature macro.
206 2018-01-03  Jakub Jelinek  <jakub@redhat.com>
208         Update copyright years.
210 Copyright (C) 2018 Free Software Foundation, Inc.
212 Copying and distribution of this file, with or without modification,
213 are permitted in any medium without royalty provided the copyright
214 notice and this notice are preserved.