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