PR libstdc++/83658 fix exception-safety in std::any::emplace
[gcc.git] / libstdc++-v3 / ChangeLog
1 2018-01-29 Jonathan Wakely <jwakely@redhat.com>
2
3 PR libstdc++/83658
4 * include/std/any (any::__do_emplace): Only set _M_manager after
5 constructing the contained object.
6 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust dg-error line.
7 * testsuite/20_util/any/modifiers/83658.cc: New test.
8
9 2018-01-25 Jonathan Wakely <jwakely@redhat.com>
10
11 PR libstdc++/81076
12 * include/c_global/cstddef (__byte_operand): Define primary template.
13 * testsuite/18_support/byte/81076.cc: New test.
14
15 2018-01-19 Christophe Lyon <christophe.lyon@linaro.org>
16
17 * testsuite/ext/special_functions/airy_ai/check_nan.cc: Fix
18 dg-options and dg-add-options order.
19 * testsuite/ext/special_functions/airy_bi/check_nan.cc: Likewise.
20 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc:
21 Likewise.
22 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
23 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
24 Likewise.
25 * testsuite/special_functions/02_assoc_legendre/check_nan.cc:
26 Likewise.
27 * testsuite/special_functions/03_beta/check_nan.cc: Likewise.
28 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc:
29 Likewise.
30 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc:
31 Likewise.
32 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc:
33 Likewise.
34 * testsuite/special_functions/06_comp_ellint_3/pr66689.cc:
35 Likewise.
36 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc:
37 Likewise.
38 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc:
39 Likewise.
40 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc:
41 Likewise.
42 * testsuite/special_functions/10_cyl_neumann/check_nan.cc:
43 Likewise.
44 * testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
45 * testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
46 * testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
47 * testsuite/special_functions/13_ellint_3/pr66689.cc: Likewise.
48 * testsuite/special_functions/14_expint/check_nan.cc: Likewise.
49 * testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
50 * testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
51 * testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
52 * testsuite/special_functions/18_riemann_zeta/check_nan.cc:
53 Likewise.
54 * testsuite/special_functions/19_sph_bessel/check_nan.cc:
55 Likewise.
56 * testsuite/special_functions/20_sph_legendre/check_nan.cc:
57 Likewise.
58 * testsuite/special_functions/21_sph_neumann/check_nan.cc:
59 Likewise.
60
61 2018-01-18 Uros Bizjak <ubizjak@gmail.com>
62
63 * configure.ac (AC_CHECK_HEADERS): Add linux/types.h. Conditionally
64 include linux/types.h when checking linux/random.h header.
65 * config.h.in: Regenerate.
66 * configure: Ditto.
67 * src/c++11/random.cc: Conditionally include linux/types.h.
68
69 2018-01-16 Eric Botcazou <ebotcazou@adacore.com>
70
71 * testsuite/17_intro/names.cc: Undefine 'y' on SPARC/Linux.
72
73 2018-01-16 Jonathan Wakely <jwakely@redhat.com>
74
75 PR libstdc++/83834
76 * config/abi/pre/gnu.ver (GLIBCXX_3.4): Replace std::c[a-g]* wildcard
77 pattern with exact match for std::cerr.
78
79 2018-01-15 Jonathan Wakely <jwakely@redhat.com>
80
81 PR libstdc++/83833
82 * include/bits/random.h (chi_squared_distribution::param): Update
83 gamma distribution parameter.
84 * testsuite/26_numerics/random/chi_squared_distribution/83833.cc: New
85 test.
86
87 PR libstdc++/83830
88 * include/std/type_traits (has_unique_object_representations_v): Add
89 variable template.
90 * testsuite/20_util/has_unique_object_representations/value.cc: Check
91 variable template.
92
93 2018-01-15 Ville Voutilainen <ville.voutilainen@gmail.com>
94
95 Make optional conditionally
96 trivially_{copy,move}_{constructible,assignable}
97 * include/std/optional (_Optional_payload): Fix the comment in
98 the class head and turn into a primary and one specialization.
99 (_Optional_payload::_M_engaged): Strike the NSDMI.
100 (_Optional_payload<_Tp, false>::operator=(const _Optional_payload&)):
101 New.
102 (_Optional_payload<_Tp, false>::operator=(_Optional_payload&&)):
103 Likewise.
104 (_Optional_payload<_Tp, false>::_M_get): Likewise.
105 (_Optional_payload<_Tp, false>::_M_reset): Likewise.
106 (_Optional_base_impl): Likewise.
107 (_Optional_base): Turn into a primary and three specializations.
108 (optional(nullopt)): Change the base init.
109 * testsuite/20_util/optional/assignment/8.cc: New.
110 * testsuite/20_util/optional/cons/trivial.cc: Likewise.
111 * testsuite/20_util/optional/cons/value_neg.cc: Adjust.
112
113 2018-01-15 Jonathan Wakely <jwakely@redhat.com>
114
115 PR libstdc++/80276
116 * python/libstdcxx/v6/printers.py (strip_inline_namespaces): New.
117 (get_template_arg_list): New.
118 (StdVariantPrinter._template_args): Remove, use get_template_arg_list
119 instead.
120 (TemplateTypePrinter): Rewrite to work with gdb.Type objects instead
121 of strings and regular expressions.
122 (add_one_template_type_printer): Adapt to new TemplateTypePrinter.
123 (FilteringTypePrinter): Add docstring. Match using startswith. Use
124 strip_inline_namespaces instead of strip_versioned_namespace.
125 (add_one_type_printer): Prepend namespace to match argument.
126 (register_type_printers): Add type printers for char16_t and char32_t
127 string types and for types using cxx11 ABI. Update calls to
128 add_one_template_type_printer to provide default argument dicts.
129 * testsuite/libstdc++-prettyprinters/80276.cc: New test.
130 * testsuite/libstdc++-prettyprinters/whatis.cc: Remove tests for
131 basic_string<unsigned char> and basic_string<signed char>.
132 * testsuite/libstdc++-prettyprinters/whatis2.cc: Duplicate whatis.cc
133 to test local variables, without overriding _GLIBCXX_USE_CXX11_ABI.
134
135 2018-01-14 Andreas Schwab <schwab@linux-m68k.org>
136
137 PR libstdc++/81092
138 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
139
140 2018-01-13 Tim Shen <timshen@google.com>
141
142 PR libstdc++/83601
143 * include/bits/regex.tcc (regex_replace): Fix escaping in sed.
144 * testsuite/28_regex/algorithms/regex_replace/char/pr83601.cc: Tests.
145 * testsuite/28_regex/algorithms/regex_replace/wchar_t/pr83601.cc: Tests.
146
147 2018-01-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
148
149 PR libstdc++/64054
150 * testsuite/27_io/basic_ostream/inserters_arithmetic/char/hexfloat.cc:
151 Remove dg-xfail-run-if.
152
153 2018-01-10 François Dumont <fdumont@gcc.gnu.org>
154
155 * include/bits/forward_list.h
156 (_Fwd_list_node_base(_Fwd_list_node_base&&)): New.
157 (_Fwd_list_node_base& operator=(_Fwd_list_node_base&&)): New.
158 (_Fwd_list_node_base(const _Fwd_list_node_base&)): Explicit delete.
159 (_Fwd_list_node_base& operator=(const _Fwd_list_node_base&)): Likewise.
160 (_Fwd_list_impl()): Add noexcept qualification.
161 (_Fwd_list_impl(const _Node_alloc_type&)): Delete.
162 (_Fwd_list_impl(_Fwd_list_impl&&)): New, default.
163 (_Fwd_list_impl(_Fwd_list_impl&&, _Node_alloc_type&&)): New.
164 (_Fwd_list_base()): Default.
165 (_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&, true_type)): New.
166 (_Fwd_list_base(_Fwd_list_base&&)): Default.
167 (forward_list<>()): Default.
168 (forward_list<>(forward_list&&)): Default.
169 (forward_list(forward_list&&, _Node_alloc_type&&, false_type)): New.
170 (forward_list(forward_list&&, _Node_alloc_type&&, true_type)): New.
171 (forward_list(forward_list&&, const _Alloc&)): Adapt to use latters.
172 * include/bits/forward_list.tcc
173 (_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&)): Adapt to use
174 _M_impl._M_head move assignment.
175 (forward_list<>::merge(forward_list<>&&, _Comp)): Likewise.
176 * testsuite/23_containers/forward_list/allocator/default_init.cc: New.
177
178 2018-01-09 Jonathan Wakely <jwakely@redhat.com>
179
180 PR libstdc++/80276
181 * python/libstdcxx/v6/printers.py (SharedPointerPrinter)
182 (UniquePointerPrinter): Print correct template argument, not type of
183 the pointer.
184 (TemplateTypePrinter._recognizer.recognize): Handle failure to lookup
185 a type.
186 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test unique_ptr of
187 array type.
188 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test shared_ptr and
189 weak_ptr of array types.
190
191 2018-01-09 François Dumont <fdumont@gcc.gnu.org>
192
193 PR libstdc++/83709
194 * include/bits/hashtable_policy.h
195 (__distance_fwd(_Iterator, _Iterator, input_iterator_tag)): Return 1 if
196 __first != __last.
197 (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, true_type)): New.
198 (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, false_type)):
199 Add false_type parameter.
200 (_Insert_base::insert): Adapt.
201 * include/bits/hashtable.h (_Hashtable::operator=(initializzr_list<>)):
202 Adapt.
203 (_Hashtable::_M_insert(_Arg&&, const _NodeGen&, true_type, size_t)):
204 Add __n_elt parameter, defaulted to 1.
205 (_Hashtable::_M_insert_unique_node): Likewise. Use it to call rehash
206 policy _M_need_rehash.
207 (_Hashtable::_M_merge_unique): Pass target number of elements to add to
208 produce only 1 rehash if necessary.
209 * testsuite/23_containers/unordered_map/insert/83709.cc: New.
210 * testsuite/23_containers/unordered_set/insert/83709.cc: New.
211
212 2018-01-09 Juraj Oršulić <juraj.orsulic@fer.hr>
213 Jonathan Wakely <jwakely@redhat.com>
214
215 PR libstdc++/59253 (partial)
216 * python/libstdcxx/v6/printers.py (SmartPtrIterator): Common iterator
217 type for pointer stored by shared_ptr, weak_ptr and unique_ptr.
218 (SharedPointerPrinter, UniquePointerPrinter): Treat stored values as
219 children.
220 * testsuite/libstdc++-prettyprinters/cxx11.cc: Update expected output
221 of unique_ptr printer.
222 * testsuite/libstdc++-prettyprinters/shared_ptr.cc: Update expected
223 output of shared_ptr printer.
224
225 2018-01-05 Jonathan Wakely <jwakely@redhat.com>
226
227 PR libstdc++/83626
228 * src/filesystem/ops.cc (remove(const path&, error_code&)): Remove
229 unnecessary symlink_status call.
230 (remove_all(const path&, error_code&)): Use filesystem::remove.
231 * src/filesystem/std-ops.cc: Likewise.
232
233 PR libstdc++/83279
234 * src/filesystem/std-ops.cc (do_copy_file): Use non-null offset with
235 sendfile.
236
237 PR libstdc++/83626
238 * src/filesystem/ops.cc (remove(const path&, error_code&)): Do not
239 report an error for ENOENT.
240 (remove_all(const path&)): Fix type of result variable.
241 (remove_all(const path&, error_code&)): Use non-throwing increment
242 for directory iterator. Call POSIX remove directly to avoid redundant
243 calls to symlink_status. Do not report errors for ENOENT.
244 * src/filesystem/std-ops.cc: Likewise.
245 * testsuite/27_io/filesystem/operations/remove_all.cc: Test throwing
246 overload.
247 * testsuite/experimental/filesystem/operations/remove_all.cc:
248 Likewise.
249
250 2018-01-04 Jonathan Wakely <jwakely@redhat.com>
251
252 PR libstdc++/83626
253 * src/filesystem/ops.cc (remove(const path&, error_code&))): Remove
254 redundant call to ec.clear().
255 (remove_all(const path&, error_code&))): Do not return an error for
256 non-existent paths.
257 * src/filesystem/std-ops.cc: Likewise.
258 * testsuite/27_io/filesystem/operations/remove.cc: New test.
259 * testsuite/27_io/filesystem/operations/remove_all.cc: Fix expected
260 results for non-existent paths.
261 * testsuite/experimental/filesystem/operations/remove.cc: New test.
262 * testsuite/experimental/filesystem/operations/remove_all.cc: Fix
263 expected results for non-existent paths.
264
265 * include/bits/fs_ops.h (exists(const path&, error_code&))): Only
266 check status_known once.
267 * include/experimental/bits/fs_ops.h: Likewise.
268
269 PR libstdc++/83607
270 * include/std/functional (__is_byte_like): New trait.
271 (__is_std_equal_to): Remove.
272 (__boyer_moore_base_t): Use __is_byte_like instead of
273 __is_std_equal_to.
274 * include/experimental/functional (__is_std_equal_to): Remove.
275 (__boyer_moore_base_t): Use __is_byte_like instead of
276 __is_std_equal_to.
277 * testsuite/20_util/function_objects/83607.cc: New test.
278
279 2018-01-03 Ville Voutilainen <ville.voutilainen@gmail.com>
280
281 Protect optional's deduction guide with the feature macro
282 * include/std/optional: Use the feature macro.
283
284 2018-01-03 Jakub Jelinek <jakub@redhat.com>
285
286 Update copyright years.
287 \f
288 Copyright (C) 2018 Free Software Foundation, Inc.
289
290 Copying and distribution of this file, with or without modification,
291 are permitted in any medium without royalty provided the copyright
292 notice and this notice are preserved.