]> git.ipfire.org Git - thirdparty/gcc.git/blob - libstdc++-v3/ChangeLog
Daily bump.
[thirdparty/gcc.git] / libstdc++-v3 / ChangeLog
1 2021-11-05 Jonathan Wakely <jwakely@redhat.com>
2
3 * include/bits/range_access.h (begin(valarray), end(valarray)):
4 Add noexcept.
5
6 2021-11-05 Jonathan Wakely <jwakely@redhat.com>
7
8 * include/std/tuple (tuple_size_v): Fix pack expansion.
9
10 2021-11-05 Jonathan Wakely <jwakely@redhat.com>
11
12 * src/c++11/random.cc (__x86_rdrand, __x86_rdseed): Add
13 [[unlikely]] attribute.
14
15 2021-11-05 Jonathan Wakely <jwakely@redhat.com>
16
17 * src/c++11/random.cc [__powerpc__] (USE_DARN): Define.
18 (__ppc_darn): New function to use POWER9 DARN instruction.
19 (Which): Add 'darn' enumerator.
20 (which_source): Check for __ppc_darn.
21 (random_device::_M_init): Support "darn" and "hw" tokens.
22 (random_device::_M_getentropy): Add darn to switch.
23 * testsuite/26_numerics/random/random_device/cons/token.cc:
24 Check "darn" token.
25 * testsuite/26_numerics/random/random_device/entropy.cc:
26 Likewise.
27
28 2021-11-05 Jonathan Wakely <jwakely@redhat.com>
29
30 * testsuite/lib/gdb-test.exp: Add target selector support to the
31 dg-final directives.
32 * testsuite/libstdc++-prettyprinters/80276.cc: Add xfail for
33 C++20.
34 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
35 * testsuite/libstdc++-prettyprinters/prettyprinters.exp: Tweak
36 comment.
37
38 2021-11-04 Jonathan Wakely <jwakely@redhat.com>
39
40 PR libstdc++/103086
41 * python/libstdcxx/v6/printers.py (_tuple_impl_get): New helper
42 for accessing the tuple element stored in a _Tuple_impl node.
43 (tuple_get): New function for accessing a tuple element.
44 (unique_ptr_get): New function for accessing a unique_ptr.
45 (UniquePointerPrinter, StdPathPrinter): Use unique_ptr_get.
46 * python/libstdcxx/v6/xmethods.py (UniquePtrGetWorker): Cast
47 tuple to its base class before accessing _M_head_impl.
48
49 2021-11-04 Jonathan Wakely <jwakely@redhat.com>
50
51 * doc/xml/manual/evolution.xml: Document deprecations.
52 * doc/html/*: Regenerate.
53 * libsupc++/exception (unexpected_handler, unexpected)
54 (get_unexpected, set_unexpected): Add deprecated attribute.
55 Do not define without _GLIBCXX_USE_DEPRECATED for C++17 and up.
56 * libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): Disable
57 deprecated warnings.
58 * libsupc++/eh_ptr.cc (std::rethrow_exception): Likewise.
59 * libsupc++/eh_terminate.cc: Likewise.
60 * libsupc++/eh_throw.cc (__cxa_init_primary_exception):
61 Likewise.
62 * libsupc++/unwind-cxx.h (struct __cxa_exception): Use
63 terminate_handler instead of unexpected_handler.
64 (struct __cxa_dependent_exception): Likewise.
65 (__unexpected): Likewise.
66 * testsuite/18_support/headers/exception/synopsis.cc: Add
67 dg-warning for deprecated warning.
68 * testsuite/18_support/exception_ptr/60612-unexpected.cc:
69 Disable deprecated warnings.
70 * testsuite/18_support/set_unexpected.cc: Likewise.
71 * testsuite/18_support/unexpected_handler.cc: Likewise.
72
73 2021-11-04 Jonathan Wakely <jwakely@redhat.com>
74
75 * include/bits/utility.h (__find_uniq_type_in_pack): Move
76 definition to here, ...
77 * include/std/tuple (__find_uniq_type_in_pack): ... from here.
78 * include/std/variant (__detail__variant::__index_of): Remove.
79 (__detail::__variant::__exactly_once): Define using
80 __find_uniq_type_in_pack instead of __index_of.
81 (get<T>, get_if<T>, variant::__index_of): Likewise.
82
83 2021-11-04 Jonathan Wakely <jwakely@redhat.com>
84
85 * include/bits/stl_pair.h (tuple_size_v): Define partial
86 specializations for std::pair.
87 * include/bits/utility.h (_Nth_type): Move definition here
88 and define primary template.
89 (tuple_size_v): Move definition here.
90 * include/std/array (tuple_size_v): Define partial
91 specializations for std::array.
92 * include/std/tuple (tuple_size_v): Move primary template to
93 <bits/utility.h>. Define partial specializations for
94 std::tuple.
95 (tuple_element): Change definition to use _Nth_type.
96 * include/std/variant (_Nth_type): Move to <bits/utility.h>.
97 (variant_alternative, variant): Adjust qualification of
98 _Nth_type.
99 * testsuite/20_util/tuple/element_access/get_neg.cc: Prune
100 additional errors from _Nth_type.
101
102 2021-11-04 Jonathan Wakely <jwakely@redhat.com>
103
104 * include/std/variant (__detail::__variant::__emplace): New
105 function template.
106 (_Copy_assign_base::operator=): Reorder conditions to match
107 bulleted list of effects in the standard. Use __emplace instead
108 of _M_reset followed by _Construct.
109 (_Move_assign_base::operator=): Likewise.
110 (__construct_by_index): Remove.
111 (variant::emplace): Use __emplace instead of _M_reset followed
112 by __construct_by_index.
113 (variant::swap): Hoist valueless cases out of visitor. Use
114 __emplace to replace _M_reset followed by _Construct.
115
116 2021-11-04 Jonathan Wakely <jwakely@redhat.com>
117
118 * include/std/variant (_Nth_type): Define partial
119 specializations to reduce number of instantiations.
120 (variant_size_v): Define partial specializations to avoid
121 instantiations.
122 (variant_alternative): Use _Nth_type. Add static assert.
123 (__tuple_count, __tuple_count_v): Replace with ...
124 (__count): New variable template.
125 (_Variant_union): Add deleted constructor.
126 (variant::__to_type): Use _Nth_type.
127 (variant::emplace): Use _Nth_type. Add deleted overloads for
128 invalid types and indices.
129
130 2021-11-04 Jonathan Wakely <jwakely@redhat.com>
131
132 PR libstdc++/102912
133 * include/std/variant (_Variant_storage::__index_of): Remove.
134 (__variant_construct_single): Remove.
135 (__variant_construct): Remove.
136 (_Copy_ctor_base::_Copy_ctor_base(const _Copy_ctor_base&)): Do
137 construction directly instead of using __variant_construct.
138 (_Move_ctor_base::_Move_ctor_base(_Move_ctor_base&&)): Likewise.
139 (_Move_ctor_base::_M_destructive_move()): Remove.
140 (_Move_ctor_base::_M_destructive_copy()): Remove.
141 (_Copy_assign_base::operator=(const _Copy_assign_base&)): Do
142 construction directly instead of using _M_destructive_copy.
143 (variant::swap): Do construction directly instead of using
144 _M_destructive_move.
145 * testsuite/20_util/variant/102912.cc: New test.
146
147 2021-11-03 Jonathan Wakely <jwakely@redhat.com>
148
149 PR libstdc++/66742
150 * include/bits/list.tcc (list::sort): Use mutable iterators for
151 comparisons.
152 * include/bits/stl_list.h (_Scratch_list::_Ptr_cmp): Likewise.
153 * testsuite/23_containers/list/operations/66742.cc: Check
154 non-const comparisons.
155
156 2021-11-03 Jonathan Wakely <jwakely@redhat.com>
157
158 * include/std/valarray (valarray::valarray()): Add noexcept.
159 (valarray::operator[]): Likewise.
160
161 2021-11-01 Jonathan Wakely <jwakely@redhat.com>
162
163 * include/debug/stl_iterator.h (__valid_range): Add constexpr
164 for C++20. Qualify call to avoid ADL.
165 (__get_distance, __can_advance, __unsafe, __base): Likewise.
166 * testsuite/25_algorithms/move/constexpr.cc: Also check with
167 std::reverse_iterator arguments.
168
169 2021-11-01 Jonathan Wakely <jwakely@redhat.com>
170
171 * include/std/span (span(Range&&)): Reorder constraints.
172
173 2021-11-01 Jonathan Wakely <jwakely@redhat.com>
174
175 PR libstdc++/103022
176 * include/std/valarray (begin, end): Do not dereference an empty
177 valarray. Add noexcept and [[nodiscard]].
178 * testsuite/26_numerics/valarray/range_access.cc: Check empty
179 valarray. Check iterator properties. Run as well as compiling.
180 * testsuite/26_numerics/valarray/range_access2.cc: Likewise.
181 * testsuite/26_numerics/valarray/103022.cc: New test.
182
183 2021-10-29 Jonathan Wakely <jwakely@redhat.com>
184
185 * testsuite/23_containers/stack/deduction.cc: Fix typo.
186
187 2021-10-26 Martin Sebor <msebor@redhat.com>
188
189 * testsuite/21_strings/basic_string/capacity/1.cc: Also suppress
190 -Wstringop-overread.
191 * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc: Same.
192
193 2021-10-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
194
195 * testsuite/28_regex/basic_regex/84110.cc (test01)
196 [__cpp_exceptions]: Disambiguate extended.
197
198 2021-10-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
199
200 * testsuite/17_intro/names.cc [__sun__] (r, x): Undef.
201
202 2021-10-22 Jonathan Wakely <jwakely@redhat.com>
203
204 PR libstdc++/102894
205 * include/std/any (make_any): Add SFINAE constraint.
206 * testsuite/20_util/any/102894.cc: New test.
207
208 2021-10-21 Jonathan Wakely <jwakely@redhat.com>
209
210 * doc/doxygen/stdheader.cc: Refactor. Use C++23. Add new
211 headers.
212 * scripts/run_doxygen: Fix post-processing of #include
213 directives in man pages. Use new xg++ to compile helper program.
214
215 2021-10-21 Jonathan Wakely <jwakely@redhat.com>
216
217 * include/bits/mofunc_impl.h: Add doxygen comments.
218 * include/std/functional: Likewise.
219
220 2021-10-21 Jonathan Wakely <jwakely@redhat.com>
221
222 * include/bits/alloc_traits.h: Suppress doxygen documentation.
223 * include/bits/allocated_ptr.h: Likewise.
224 * include/bits/enable_special_members.h: Likewise.
225 * include/bits/hashtable.h: Likewise.
226 * include/bits/hashtable_policy.h: Likewise.
227 * include/bits/uses_allocator.h: Likewise.
228 * include/bits/node_handle.h: Document node handles and suppress
229 documentation for protected members.
230 * include/std/any: Suppress documentation for implementation
231 details.
232
233 2021-10-21 Patrick Palka <ppalka@redhat.com>
234
235 PR libstdc++/102358
236 * include/bits/stl_iterator.h (__niter_base): Make constexpr
237 for C++20.
238 (__miter_base): Likewise.
239 * testsuite/25_algorithms/move/constexpr.cc: New test.
240
241 2021-10-21 Patrick Palka <ppalka@redhat.com>
242
243 * include/std/ranges (istream_view): Replace this function
244 template with an alias template as per P2432R1.
245 (wistream_view): Define as per P2432R1.
246 (views::_Istream, views::istream): Likewise.
247 * testsuite/std/ranges/istream_view.cc (test07): New test.
248
249 2021-10-21 Patrick Palka <ppalka@redhat.com>
250
251 * include/bits/ranges_util.h (views::_Drop): Forward declare.
252 (subrange): Befriend views::_Drop.
253 (subrange::_S_store_size): Declare constexpr instead of just
254 const, remove obsolete comment.
255 * include/std/ranges (views::__detail::__is_empty_view): Define.
256 (views::__detail::__is_basic_string_view): Likewise.
257 (views::__detail::__is_subrange): Likewise.
258 (views::__detail::__is_iota_view): Likewise.
259 (views::__detail::__can_take_view): Rename template parm _Tp to _Dp.
260 (views::_Take): Rename template parm _Tp to _Dp, make it non-deducible
261 and fix it to range_difference_t<_Range>. Implement P1739R4 and
262 LWG 3407 changes.
263 (views::__detail::__can_drop_view): Rename template parm _Tp to _Dp.
264 (views::_Drop): As with views::_Take.
265 (views::_Counted): Implement P1739R4 changes.
266 * include/std/span (__detail::__is_std_span): Rename to ...
267 (__detail::__is_span): ... this and turn it into a variable
268 template.
269 (__detail::__is_std_array): Turn it into a variable template.
270 (span::span): Adjust uses of __is_std_span and __is_std_array
271 accordingly.
272 * testsuite/std/ranges/adaptors/p1739.cc: New test.
273
274 2021-10-21 Patrick Palka <ppalka@redhat.com>
275
276 * include/bits/stl_iterator.h (common_iterator::__arrow_proxy):
277 Make fully constexpr as per LWG 3595.
278 (common_iterator::__postfix_proxy): Likewise.
279
280 2021-10-21 Patrick Palka <ppalka@redhat.com>
281
282 * include/std/ranges (lazy_split_view::base): Add forward_range
283 constraint as per LWG 3591.
284 (lazy_split_view::begin, lazy_split_view::end): Also check
285 simpleness of _Pattern as per LWG 3592.
286 (split_view::base): Relax copyable constraint as per LWG 3590.
287
288 2021-10-21 Patrick Palka <ppalka@redhat.com>
289
290 * include/std/ranges (join_view::__iter_cat::_S_iter_cat): Adjust
291 criteria for returning bidirectional_iterator_tag as per LWG 3535.
292 (join_view::_Iterator::_S_iter_concept): Likewise.
293
294 2021-10-21 Patrick Palka <ppalka@redhat.com>
295
296 * include/bits/ranges_base.h (viewable_range): Adjust as per
297 LWG 3481.
298 * testsuite/std/ranges/adaptors/all.cc (test07): New test.
299
300 2021-10-21 Jonathan Wakely <jwakely@redhat.com>
301
302 PR libstdc++/102863
303 * include/std/optional (optional::and_then, optional::transform):
304 Remove requires-clause.
305 * testsuite/20_util/optional/monadic/and_then.cc: Check
306 overload resolution doesn't cause errors.
307 * testsuite/20_util/optional/monadic/transform.cc: Likewise.
308
309 2021-10-20 Jonathan Wakely <jwakely@redhat.com>
310
311 * testsuite/20_util/optional/monadic/transform.cc: Check that
312 an rvalue result is not materialized too soon.
313
314 2021-10-19 Patrick Palka <ppalka@redhat.com>
315
316 * include/std/ranges (iota_view::_Iterator::operator+): Adjust
317 definition as per LWG 3580.
318 (iota_view::_Iterator::operator-): Likewise.
319
320 2021-10-19 Patrick Palka <ppalka@redhat.com>
321
322 * include/std/ranges (basic_istream_view::_M_object): Value
323 initialize as per LWG 3568.
324
325 2021-10-19 Patrick Palka <ppalka@redhat.com>
326
327 * include/bits/ranges_util.h
328 (__detail::__uses_nonqualification_pointer_conversion): Define
329 and use it ...
330 (__detail::__convertible_to_nonslicing): ... here, as per LWG 3470.
331 * testsuite/std/ranges/subrange/1.cc: New test.
332
333 2021-10-19 Patrick Palka <ppalka@redhat.com>
334
335 * include/std/ranges (iota_view::_Iterator): Befriend iota_view.
336 (iota_view::_Sentinel): Likewise.
337 (iota_view::iota_view): Add three overloads, each taking an
338 iterator/sentinel pair as per LWG 3523.
339 * testsuite/std/ranges/iota/iota_view.cc (test06): New test.
340
341 2021-10-19 Patrick Palka <ppalka@redhat.com>
342
343 * include/bits/ranges_base.h (view_interface): Forward declare.
344 (__detail::__is_derived_from_view_interface_fn): Declare.
345 (__detail::__is_derived_from_view_interface): Define as per LWG 3549.
346 (enable_view): Adjust as per LWG 3549.
347 * include/bits/ranges_util.h (view_interface): Don't derive from
348 view_base.
349 * include/std/ranges (filter_view): Revert r11-3504 change.
350 (transform_view): Likewise.
351 (take_view): Likewise.
352 (take_while_view): Likewise.
353 (drop_view): Likewise.
354 (drop_while_view): Likewise.
355 (join_view): Likewise.
356 (lazy_split_view): Likewise.
357 (split_view): Likewise.
358 (reverse_view): Likewise.
359 * testsuite/std/ranges/adaptors/sizeof.cc: Update expected sizes.
360 * testsuite/std/ranges/view.cc (test_view::test_view): Remove
361 this default ctor since views no longer need to be default initable.
362 (test01): New test.
363
364 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
365
366 * src/c++11/random.cc (which_source): New helper function.
367 (random_device::_M_getentropy()): Use which_source and return
368 suitable values for sources other than device files.
369 * testsuite/26_numerics/random/random_device/entropy.cc: New test.
370
371 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
372
373 * doc/Makefile.am (stamp-html-doxygen, stamp-html-doxygen)
374 (stamp-latex-doxygen, stamp-man-doxygen): Fix recipes for
375 relative ${top_srcdir}.
376 * doc/Makefile.in: Regenerate.
377
378 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
379
380 * include/std/variant (_Uninitialized): Use an empty struct
381 for the unused union member, instead of char.
382
383 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
384
385 * include/bits/stl_stack.h (stack(Iterator, Iterator)): Remove
386 non-deducible template parameter from deduction guide.
387 * testsuite/23_containers/stack/deduction.cc: Check new C++23
388 deduction guides.
389
390 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
391
392 * include/std/optional (_Optional_payload_base::_Storage): Add
393 constructor taking a callable function to invoke.
394 (_Optional_payload_base::_M_apply): New function.
395 (__cpp_lib_monadic_optional): Define for C++23.
396 (optional::and_then, optional::transform, optional::or_else):
397 Define for C++23.
398 * include/std/ranges (__detail::__cached): Remove.
399 (__detail::__non_propagating_cache): Remove use of __cached for
400 contained value. Use _Optional_payload_base::_M_construct and
401 _Optional_payload_base::_M_apply to set the contained value.
402 * include/std/version (__cpp_lib_monadic_optional): Define.
403 * testsuite/20_util/optional/monadic/and_then.cc: New test.
404 * testsuite/20_util/optional/monadic/or_else.cc: New test.
405 * testsuite/20_util/optional/monadic/or_else_neg.cc: New test.
406 * testsuite/20_util/optional/monadic/transform.cc: New test.
407 * testsuite/20_util/optional/monadic/version.cc: New test.
408
409 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
410
411 PR libstdc++/102825
412 * include/bits/mofunc_impl.h (move_only_function): Remove
413 invalid base initializer.
414 * testsuite/20_util/move_only_function/cons.cc: Instantiate
415 constructors to check bodies.
416
417 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
418
419 * include/bits/fs_path.h (path::_S_convert(T)): Avoid recursive
420 call to function with deduced return type.
421
422 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
423
424 * include/bits/basic_string.h (__cpp_lib_string_resize_and_overwrite):
425 Define for C++23.
426 (basic_string::resize_and_overwrite): Declare.
427 * include/bits/basic_string.tcc (basic_string::resize_and_overwrite):
428 Define.
429 * include/std/version (__cpp_lib_resize_and_overwrite): Define
430 for C++23.
431 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
432 New test.
433
434 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
435
436 PR libstdc++/101263
437 * include/std/ranges (__cached): New wrapper struct.
438 (__non_propagating_cache): Use __cached for contained value.
439 (__non_propagating_cache::_M_emplace_deref): Add constexpr. Use
440 std::construct_at instead of placement new.
441 * testsuite/std/ranges/adaptors/join.cc: Check constexpr works.
442
443 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
444
445 * include/std/variant (__cpp_lib_variant): Update value for
446 C++20.
447 (__variant_cast, __variant_construct): Add constexpr for C++20.
448 (__variant_construct_single, __construct_by_index) Likewise. Use
449 std::_Construct instead of placement new.
450 (_Uninitialized<T, false>) [__cplusplus >= 202002]: Replace
451 buffer with a union and define a destructor.
452 (_Variadic_union) [__cplusplus >= 202002]: Add a specialization
453 for non-trivial destruction.
454 (_Variant_storage::__index_of): New helper variable template.
455 (_Variant_storage::~_Variant_storage()): Add constexpr.
456 (_Variant_storage::_M_reset()): Likewise.
457 (_Copy_ctor_base, _Move_ctor_base): Likewise.
458 (_Copy_assign_base, _Move_assign_base): Likewise.
459 (variant, swap): Likewise.
460 * include/std/version (__cpp_lib_variant): Update value for
461 C++20.
462 * testsuite/20_util/optional/version.cc: Check for exact value
463 in C++17.
464 * testsuite/20_util/variant/87619.cc: Increase timeout for
465 C++20 mode.
466 * testsuite/20_util/variant/constexpr.cc: New test.
467 * testsuite/20_util/variant/version.cc: New test.
468
469 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
470
471 * include/std/variant (__detail::__variant::__get_storage):
472 Remove unused function.
473 (__variant_construct_by_index): Set index after construction is
474 complete. Rename to ...
475 (__detail::__variant::__construct_by_index): ... this.
476 (variant): Use new name for __variant_construct_by_index friend
477 declaration. Remove __get_storage friend declaration.
478 (variant::emplace): Use new name and remove try-blocks.
479
480 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
481
482 * include/std/variant (_Variant_storage::_M_storage()): Remove.
483 (__detail::__variant::__get_storage): Remove.
484 (variant): Remove friend declaration of __get_storage.
485
486 2021-10-15 Jason Merrill <jason@redhat.com>
487
488 * testsuite/20_util/integer_comparisons/greater_equal_neg.cc:
489 * testsuite/20_util/integer_comparisons/greater_neg.cc:
490 * testsuite/20_util/integer_comparisons/less_equal_neg.cc:
491 Adjust expected message.
492 * testsuite/lib/prune.exp: Prune 'in constexpr expansion'.
493
494 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
495
496 * include/std/variant (__variant::__get(in_place_index_t<N>, U&&)):
497 Rename to __get_n and remove first argument. Replace pair of
498 overloads with a single function using 'if constexpr'.
499 (__variant::__get(Variant&&)): Adjust to use __get_n.
500
501 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
502
503 * include/bits/fs_path.h (path(path&&)): Make unconditionally
504 noexcept.
505 (path::_S_convert(T)): Add condtional noexcept.
506
507 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
508
509 PR libstdc++/102743
510 * include/bits/fs_path.h (path::_S_convert(T)): Fix condition
511 for returning the same string unchanged.
512
513 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
514
515 * include/bits/regex.h: Check __cpp_inline_variables instead of
516 __cplusplus.
517
518 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
519
520 * testsuite/20_util/is_layout_compatible/version.cc: Check
521 correct macro.
522
523 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
524
525 * include/bits/stl_construct.h (_Construct): Use
526 std::construct_at when constant evaluated.
527 * include/std/optional (_Storage, _Optional_payload, optional):
528 Add constexpr as specified by P2231R1.
529 * include/std/version (__cpp_lib_optional): Update value for
530 C++20.
531 * testsuite/20_util/optional/requirements.cc: Check feature test
532 macro.
533 * testsuite/20_util/optional/constexpr/assign.cc: New test.
534 * testsuite/20_util/optional/constexpr/cons/conv.cc: New test.
535 * testsuite/20_util/optional/constexpr/modifiers.cc: New test.
536 * testsuite/20_util/optional/constexpr/swap.cc: New test.
537 * testsuite/20_util/optional/version.cc: New test.
538
539 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
540
541 * include/bits/fs_path.h (__detail::__is_contiguous): Add
542 partial specializations for pointers and __normal_iterator.
543
544 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
545
546 * testsuite/27_io/filesystem/path/construct/102592.C: Moved to...
547 * testsuite/27_io/filesystem/path/construct/102592.cc: ...here.
548 * testsuite/28_regex/match_results/102667.C: Moved to...
549 * testsuite/28_regex/match_results/102667.cc: ...here.
550
551 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
552
553 * include/bits/fs_path.h (__detail::__is_contiguous): New
554 variable template to identify contiguous iterators.
555 (__detail::__unified_char8_t): New alias template to decide when
556 to treat char8_t as char without encoding conversion.
557 (__detail::__effective_range(const basic_string<C,T>&)): Use
558 std::char_traits<C> for returned string view.
559 (__detail::__effective_range(const basic_string_view<C,T>&)):
560 Likewise.
561 (__detail::__effective_range(const Source&)): Use
562 __is_contiguous to detect mode cases of contiguous iterators.
563 Use __unified_char8_t to return a std::string instead of
564 std::u8string.
565
566 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
567
568 PR libstdc++/102592
569 * include/bits/fs_path.h (path::path(Iter, Iter, format))
570 (path::append(Iter, Iter), path::concat(Iter, Iter)): Call
571 __string_from_range directly, instead of two-argument overload
572 of _S_convert.
573 (path::_S_convert(Iter, Iter)): Remove.
574 * testsuite/27_io/filesystem/path/construct/102592.C: New test.
575
576 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
577
578 * include/bits/c++config (__terminate): Add extern "C++".
579
580 2021-10-12 Jonathan Wakely <jwakely@redhat.com>
581
582 * testsuite/20_util/tuple/comparison_operators/overloaded.cc:
583 Restore test for operator<.
584 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
585 Adjust expected errors for C++20.
586
587 2021-10-12 Jonathan Wakely <jwakely@redhat.com>
588
589 PR libstdc++/101960
590 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)): Define as
591 defauled.
592 * testsuite/20_util/tuple/cons/101960.cc: Check tuples with
593 array elements before the last element.
594
595 2021-10-12 Jonathan Wakely <jwakely@redhat.com>
596
597 * include/bits/stl_iterator_base_funcs.h (__advance): Add
598 deleted overload to improve diagnostics.
599 (__distance): Likewise.
600
601 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
602
603 * include/bits/atomic_timed_wait.h: Remove unused header.
604 * include/bits/c++config (std:__terminate): Define.
605 * include/bits/semaphore_base.h: Remove <exception> and use
606 __terminate instead of terminate.
607 * include/bits/std_thread.h: Likewise.
608 * libsupc++/eh_terminate.cc (std::terminate): Use qualified-id
609 to call __cxxabiv1::__terminate.
610
611 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
612
613 * include/bits/regex.h (basic_regex::assign(Iter, Iter)): Avoid
614 std::__to_address by using poitner directly or using base()
615 member of __normal_iterator.
616
617 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
618
619 * testsuite/18_support/numeric_limits/lowest.cc: Use
620 numeric_limits<T>::is_integer instead of is_integral<T>::value.
621
622 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
623
624 PR libstdc++/89927
625 * include/bits/regex.h (basic_regex(const _Ch_type*, size_t)):
626 Add __glibcxx_requires_string_len assertion.
627 (basic_regex::assign(InputIterator, InputIterator)): Add
628 __glibcxx_requires_valid_range assertion.
629 * include/bits/regex_scanner.tcc (_Scanner::_M_advance())
630 (_Scanner::_M_scan_normal()): Use string literal in assertions.
631
632 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
633
634 PR libstdc++/102667
635 * include/bits/regex.h (match_result::empty()): Optimize by
636 calling the base function directly.
637 (match_results::end()): Check _Base_type::empty() not empty().
638 * testsuite/28_regex/match_results/102667.C: New test.
639
640 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
641
642 PR libstdc++/98725
643 * testsuite/18_support/numeric_limits/lowest.cc: Remove use of
644 _GLIBCXX_USE_WCHAR_T.
645 * testsuite/18_support/numeric_limits/min_max.cc: Replace use of
646 _GLIBCXX_USE_WCHAR_T with checks for WCHAR_MIN and WCHAR_MAX.
647 * testsuite/20_util/from_chars/1_neg.cc: Remove use of
648 _GLIBCXX_USE_WCHAR_T.
649 * testsuite/20_util/function_objects/searchers.cc: Likewise. Use
650 char_traits<wchar_t>::length instead of wcslen.
651 * testsuite/20_util/hash/requirements/explicit_instantiation.cc:
652 Likewise.
653 * testsuite/20_util/is_arithmetic/value.cc: Likewise.
654 * testsuite/20_util/is_compound/value.cc: Likewise.
655 * testsuite/20_util/is_floating_point/value.cc: Likewise.
656 * testsuite/20_util/is_fundamental/value.cc: Likewise.
657 * testsuite/20_util/is_integral/value.cc: Likewise.
658 * testsuite/20_util/is_signed/value.cc: Likewise.
659 * testsuite/20_util/is_unsigned/value.cc: Likewise.
660 * testsuite/20_util/is_void/value.cc: Likewise.
661 * testsuite/20_util/make_signed/requirements/typedefs-1.cc:
662 Likewise.
663 * testsuite/20_util/make_signed/requirements/typedefs-2.cc:
664 Likewise.
665 * testsuite/20_util/make_signed/requirements/typedefs-3.cc:
666 Likewise.
667 * testsuite/20_util/make_signed/requirements/typedefs-4.cc:
668 Likewise.
669 * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
670 Likewise.
671 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
672 Likewise.
673 * testsuite/20_util/make_unsigned/requirements/typedefs-3.cc:
674 Likewise.
675 * testsuite/20_util/to_chars/3.cc: Likewise.
676 * testsuite/20_util/type_identity/requirements/typedefs.cc:
677 Likewise.
678 * testsuite/21_strings/basic_string/hash/debug.cc: Likewise.
679 * testsuite/21_strings/basic_string/hash/hash.cc: Likewise.
680 * testsuite/21_strings/basic_string/literals/types-char8_t.cc:
681 Likewise.
682 * testsuite/21_strings/basic_string/literals/types.cc: Likewise.
683 * testsuite/21_strings/basic_string/literals/values-char8_t.cc:
684 Likewise.
685 * testsuite/21_strings/basic_string/literals/values.cc:
686 Likewise.
687 * testsuite/21_strings/basic_string/modifiers/64422.cc:
688 Likewise.
689 * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
690 Likewise.
691 * testsuite/21_strings/basic_string/requirements/citerators.cc:
692 Likewise.
693 * testsuite/21_strings/basic_string/requirements/typedefs.cc:
694 Likewise.
695 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
696 Likewise.
697 * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
698 Likewise.
699 * testsuite/21_strings/basic_string_view/literals/types.cc:
700 Likewise.
701 * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
702 Likewise.
703 * testsuite/21_strings/basic_string_view/literals/values.cc:
704 Likewise.
705 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
706 Likewise.
707 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
708 * testsuite/21_strings/char_traits/requirements/constexpr_functions.cc:
709 Likewise.
710 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
711 Likewise.
712 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
713 Likewise.
714 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Likewise.
715 * testsuite/25_algorithms/fill/4.cc: Likewise.
716 * testsuite/25_algorithms/fill_n/1.cc: Likewise.
717 * testsuite/experimental/functional/searchers.cc: Likewise. Use
718 char_traits<wchar_t>::length instead of wcslen.
719 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc:
720 Likewise.
721 * testsuite/experimental/string_view/literals/types-char8_t.cc:
722 Likewise.
723 * testsuite/experimental/string_view/literals/types.cc:
724 Likewise.
725 * testsuite/experimental/string_view/literals/values-char8_t.cc:
726 Likewise.
727 * testsuite/experimental/string_view/literals/values.cc:
728 Likewise.
729 * testsuite/experimental/string_view/range_access/wchar_t/1.cc:
730 Likewise.
731 * testsuite/experimental/string_view/requirements/typedefs.cc:
732 Likewise.
733 * testsuite/experimental/string_view/typedefs.cc: Likewise.
734 * testsuite/ext/vstring/range_access.cc: Likewise.
735 * testsuite/std/concepts/concepts.lang/concept.arithmetic/integral.cc:
736 Likewise.
737 * testsuite/std/concepts/concepts.lang/concept.arithmetic/signed_integral.cc:
738 Likewise.
739 * testsuite/std/concepts/concepts.lang/concept.arithmetic/unsigned_integral.cc:
740 Likewise.
741 * testsuite/tr1/4_metaprogramming/is_arithmetic/value.cc:
742 Likewise.
743 * testsuite/tr1/4_metaprogramming/is_compound/value.cc:
744 Likewise.
745 * testsuite/tr1/4_metaprogramming/is_floating_point/value.cc:
746 Likewise.
747 * testsuite/tr1/4_metaprogramming/is_fundamental/value.cc:
748 Likewise.
749 * testsuite/tr1/4_metaprogramming/is_integral/value.cc:
750 Likewise.
751 * testsuite/tr1/4_metaprogramming/is_signed/value.cc: Likewise.
752 * testsuite/tr1/4_metaprogramming/is_unsigned/value.cc:
753 Likewise.
754 * testsuite/tr1/4_metaprogramming/is_void/value.cc: Likewise.
755 * testsuite/tr1/6_containers/hash/24799.cc: Likewise.
756
757 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
758
759 PR libstdc++/98725
760 * include/std/ostream (operator<<(basic_ostream<char, Tr>&, wchar_t))
761 (operator<<(basic_ostream<char, Tr>&, const wchar_t*)): Always
762 define as deleted. Do not check _GLIBCXX_USE_WCHAR_T.
763
764 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
765
766 PR libstdc++/98725
767 * include/bits/locale_conv.h (wstring_convert, wbuffer_convert):
768 Define unconditionally. Do not check _GLIBCXX_USE_WCHAR_T.
769
770 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
771
772 PR libstdc++/98725
773 * include/c_global/cstddef [!_GLIBCXX_USE_WCHAR_T]
774 (__byte_operand<wchar_t>): Define specialization.
775 * include/std/type_traits (__make_signed<wchar_t>)
776 (__make_unsigned<wchar_t>): Remove redundant check for
777 __WCHAR_TYPE__ being defined.
778 * include/tr1/type_traits [!_GLIBCXX_USE_WCHAR_T]
779 (__is_integral_helper<wchar_t>): Likewise.
780
781 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
782
783 PR libstdc++/98725
784 * include/ext/rc_string_base.h [!_GLIBCXX_USE_WCHAR_T]
785 (__rc_string_base<wchar_t>): Define member function.
786 * include/ext/vstring.h [!_GLIBCXX_USE_WCHAR_T]
787 (hash<__gnu_cxx::__wvstring>): Define specialization.
788 * include/ext/vstring_fwd.h [!_GLIBCXX_USE_WCHAR_T] (__wvstring)
789 (__wsso_string, __wrc_string): Declare typedefs.
790
791 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
792
793 PR libstdc++/98725
794 * include/bits/char_traits.h (char_traits<wchar_t>): Define
795 explicit specialization unconditionally.
796 * include/bits/basic_string.h (hash<wstring>): Define
797 unconditionally. Do not check _GLIBCXX_USE_WCHAR_T.
798 * include/bits/stringfwd.h (wstring): Likewise.
799 * include/debug/string (wstring): Likewise.
800 * include/experimental/string_view (experimental::wstring_view)
801 (hash<experimental::wstring_view>): Likewise.
802 * include/std/string (pmr::wstring, hash<pmr::wstring>):
803 Likewise.
804 * include/std/string_view (wstring_view, hash<wstring_view>):
805 Likewise.
806
807 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
808
809 * testsuite/27_io/basic_filebuf/close/81256.cc: Moved to...
810 * testsuite/27_io/basic_filebuf/close/wchar_t/81256.cc: ...here.
811
812 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
813
814 * testsuite/22_locale/conversions/buffer/1.cc: Check
815 _GLIBCXX_USE_WCHAR_T.
816 * testsuite/22_locale/conversions/buffer/3.cc: Likewise. Add
817 test using char16_t.
818 * testsuite/22_locale/conversions/string/1.cc: Check
819 _GLIBCXX_USE_WCHAR_T.
820 * testsuite/27_io/filesystem/path/generic/generic_string.cc:
821 Likewise.
822 * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
823 Likewise.
824 * testsuite/27_io/filesystem/path/native/alloc.cc: Likewise.
825 * testsuite/27_io/filesystem/path/native/string-char8_t.cc:
826 Likewise.
827 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
828 * testsuite/28_regex/algorithms/regex_match/extended/wstring_locale.cc:
829 Likewise.
830 * testsuite/experimental/filesystem/path/generic/generic_string.cc:
831 Likewise.
832 * testsuite/experimental/filesystem/path/native/alloc.cc:
833 Likewise.
834 * testsuite/experimental/filesystem/path/native/string-char8_t.cc:
835 Likewise.
836 * testsuite/experimental/filesystem/path/native/string.cc:
837 Likewise.
838
839 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
840
841 * testsuite/26_numerics/bit/bit.rotate/rotr.cc:
842 * testsuite/util/testsuite_common_types.h:
843
844 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
845
846 * testsuite/18_support/numeric_limits/40856.cc: Replace use of
847 _GLIBCXX_USE_INT128.
848 * testsuite/18_support/numeric_limits/dr559.cc: Likewise.
849 * testsuite/18_support/numeric_limits/lowest.cc: Likewise.
850 * testsuite/18_support/numeric_limits/max_digits10.cc: Likewise.
851 * testsuite/20_util/is_floating_point/value.cc: Likewise.
852 * testsuite/20_util/is_integral/value.cc: Likewise.
853 * testsuite/20_util/is_signed/value.cc: Likewise.
854 * testsuite/20_util/is_unsigned/value.cc: Likewise.
855 * testsuite/20_util/make_signed/requirements/typedefs-1.cc:
856 Likewise.
857 * testsuite/20_util/make_signed/requirements/typedefs-2.cc:
858 Likewise.
859 * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
860 Likewise.
861 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
862 Likewise.
863 * testsuite/20_util/type_identity/requirements/typedefs.cc:
864 Likewise.
865 * testsuite/26_numerics/bit/bit.count/countl_one.cc: Likewise.
866 * testsuite/26_numerics/bit/bit.count/countl_zero.cc: Likewise.
867 * testsuite/26_numerics/bit/bit.count/countr_one.cc: Likewise.
868 * testsuite/26_numerics/bit/bit.count/countr_zero.cc: Likewise.
869 * testsuite/26_numerics/bit/bit.count/popcount.cc: Likewise.
870 * testsuite/26_numerics/bit/bit.pow.two/bit_ceil.cc: Likewise.
871 * testsuite/26_numerics/bit/bit.pow.two/bit_floor.cc: Likewise.
872 * testsuite/26_numerics/bit/bit.pow.two/bit_width.cc: Likewise.
873 * testsuite/26_numerics/bit/bit.pow.two/has_single_bit.cc:
874 Likewise.
875 * testsuite/26_numerics/bit/bit.rotate/rotl.cc: Likewise.
876
877 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
878
879 * include/bits/hashtable_policy.h (_Select1st): Replace use of
880 std::get.
881 (_Select2nd): Remove.
882 (_NodeBuilder::_S_build): Use _NodeGenerator::__node_type
883 typedef instead of deducing it. Remove unnecessary piecewise
884 construction.
885 (_ReuseOrAllocNode): Make __node_type public.
886 (_Map_base): Adjust partial specialization to be able to extract
887 the mapped_type without using tuple_element.
888 (_Map_base::at): Define inline
889 * testsuite/23_containers/unordered_map/requirements/53339.cc:
890 Remove XFAIL.
891 * testsuite/23_containers/unordered_multimap/requirements/53339.cc:
892 Likewise.
893
894 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
895
896 * include/bits/hashtable.h: Move static assertion to destructor.
897 * include/bits/hashtable_policy.h: Deduce value type from node
898 type without instantiating it.
899
900 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
901
902 * src/c++11/limits.cc: Fail if __cpp_inline_variables is
903 defined.
904
905 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
906
907 PR libstdc++/92546
908 * include/bits/ranges_algobase.h: Replace <iterator> with a
909 subset of the headers it includes.
910
911 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
912
913 * include/experimental/deque (erase, erase_if): Revert changes
914 to avoid debug mode overhead.
915 * include/experimental/map (erase, erase_if): Likewise.
916 * include/experimental/set (erase, erase_if): Likewise.
917 * include/experimental/unordered_map (erase, erase_if):
918 Likewise.
919 * include/experimental/unordered_set (erase, erase_if):
920 Likewise.
921 * include/experimental/vector (erase, erase_if): Likewise.
922 * include/std/deque (erase, erase_if): Likewise.
923 * include/std/map (erase, erase_if): Likewise.
924 * include/std/set (erase, erase_if): Likewise.
925 * include/std/unordered_map (erase, erase_if): Likewise.
926 * include/std/unordered_set (erase, erase_if): Likewise.
927 * include/std/vector (erase, erase_if): Likewise.
928
929 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
930
931 * include/std/chrono (__detail::__units_suffix_misc): New
932 helper function.
933 (__detail::__units_suffix): Likewise.
934 (chrono::operator<<(basic_ostream&, const duration&)): Define.
935 * testsuite/20_util/duration/io.cc: New test.
936
937 2021-10-07 Jonathan Wakely <jwakely@redhat.com>
938
939 * include/Makefile.am: Add new header.
940 * include/Makefile.in: Regenerate.
941 * include/std/chrono (duration, time_point, system_clock)
942 (steady_clock, high_resolution_clock, chrono_literals, sys_time)
943 (file_clock, file_time): Move to ...
944 * include/bits/chrono.h: New file.
945 * include/bits/atomic_futex.h: Include new header instead of
946 <chrono>.
947 * include/bits/atomic_timed_wait.h: Likewise.
948 * include/bits/fs_fwd.h: Likewise.
949 * include/bits/semaphore_base.h: Likewise.
950 * include/bits/this_thread_sleep.h: Likewise.
951 * include/bits/unique_lock.h: Likewise.
952 * include/experimental/bits/fs_fwd.h: Likewise.
953 * include/experimental/chrono: Likewise.
954 * include/experimental/io_context: Likewise.
955 * include/experimental/netfwd: Likewise.
956 * include/experimental/timer: Likewise.
957 * include/std/condition_variable: Likewise.
958 * include/std/mutex: Likewise.
959 * include/std/shared_mutex: Likewise.
960
961 2021-10-07 Jonathan Wakely <jwakely@redhat.com>
962
963 PR libstdc++/102377
964 * include/bits/atomic_wait.h (__waiter_pool_base:_S_align):
965 Hardcode to 64 instead of using non-constant constant.
966
967 2021-10-07 Jonathan Wakely <jwakely@redhat.com>
968
969 * include/bits/erase_if.h (__erase_nodes_if): Remove redundant
970 __niter_base calls.
971 * include/std/string (erase, erase_if): Likewise.
972 * include/std/deque (erase, erase_if): Access non-debug
973 container directly.
974 * include/std/map (erase, erase_if): Likewise.
975 * include/std/set (erase, erase_if): Likewise.
976 * include/std/unordered_map (erase, erase_if): Likewise.
977 * include/std/unordered_set (erase, erase_if): Likewise.
978 * include/std/vector (erase, erase_if): Likewise.
979 * include/experimental/deque (erase, erase_if): Likewise.
980 * include/experimental/map (erase, erase_if): Likewise.
981 * include/experimental/set (erase, erase_if): Likewise.
982 * include/experimental/unordered_map (erase, erase_if):
983 Likewise.
984 * include/experimental/unordered_set (erase, erase_if):
985 Likewise.
986 * include/experimental/vector (erase, erase_if): Likewise.
987
988 2021-10-06 Jonathan Wakely <jwakely@redhat.com>
989
990 * include/Makefile.am: Add new headers.
991 * include/Makefile.in: Regenerate.
992 * include/std/functional: Include <bits/move_only_function.h>.
993 * include/std/version (__cpp_lib_move_only_function): Define.
994 * include/bits/mofunc_impl.h: New file.
995 * include/bits/move_only_function.h: New file.
996 * testsuite/20_util/move_only_function/call.cc: New test.
997 * testsuite/20_util/move_only_function/cons.cc: New test.
998 * testsuite/20_util/move_only_function/move.cc: New test.
999 * testsuite/20_util/move_only_function/version.cc: New test.
1000
1001 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
1002
1003 * testsuite/21_strings/basic_string_view/requirements/trivially_copyable.cc:
1004 New test.
1005 * testsuite/23_containers/span/trivially_copyable.cc: New test.
1006
1007 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
1008
1009 * include/bits/utility.h (__is_in_place_type_v): Define
1010 variable template to detect in_place_type_t specializations.
1011 (__is_in_place_type): Replace class template with alias
1012 template using __is_in_place_type_v.
1013 * include/std/any (any(T&&)): Check __is_in_place_type first and
1014 avoid instantiating is_copy_constructible unnecessarily.
1015
1016 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
1017
1018 * testsuite/20_util/integer_comparisons/greater.cc: New test.
1019
1020 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
1021
1022 * testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc:
1023 Check result matches non-volatile pointer.
1024
1025 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
1026
1027 PR c++/102535
1028 * testsuite/20_util/is_trivially_constructible/value.cc: Adjust
1029 expected value for C++20.
1030
1031 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
1032
1033 * include/bits/std_function.h (_Any_data::_M_access): Add
1034 noexcept.
1035 (_Function_base::_Base_manager::_M_get_pointer): Likewise.
1036 (_Function_base::_Base_manager::_M_not_empty_function):
1037 Likewise.
1038
1039 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
1040
1041 * include/std/ostream (operator<<(const volatile void*)):
1042 Add new overload, as per P1147R1.
1043 * testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc:
1044 New test.
1045
1046 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
1047
1048 * include/bits/stl_queue.h
1049 (__cpp_lib_adaptor_iterator_pair_constructor): Set to correct
1050 value.
1051 * include/bits/stl_stack.h
1052 (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
1053 * include/std/version
1054 (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
1055 * testsuite/23_containers/queue/cons_from_iters.cc: Update
1056 expected value.
1057 * testsuite/23_containers/stack/cons_from_iters.cc: Likewise.
1058
1059 2021-10-04 Jonathan Wakely <jwakely@redhat.com>
1060
1061 * include/bits/forward_list.h (forward_list): Use non-deduced
1062 context for allocator parameter of allocator-extended copy and
1063 move constructors.
1064 * include/bits/stl_bvector.h (vector<bool>): Likewise.
1065 * include/bits/stl_deque.h (deque): Likewise.
1066 * include/bits/stl_list.h (list): Likewise.
1067 * include/bits/stl_map.h (map): Likewise.
1068 * include/bits/stl_multimap.h (multimap): Likewise.
1069 * include/bits/stl_multiset.h (multiset): Likewise.
1070 * include/bits/stl_set.h (set): Likewise.
1071 * include/bits/stl_vector.h (vector): Likewise.
1072 * include/bits/stl_queue.h (queue, priority_queue): Do not
1073 constrain Allocator template parameter of deduction guides that
1074 have a Container parameter.
1075 * include/bits/stl_stack.h (stack): Likewise.
1076 * include/debug/deque (__gnu_debug::deque): Use non-deduced
1077 context for allocator parameter of allocator-extended copy and
1078 move constructors.
1079 * include/debug/list (__gnu_debug::list): Likewise.
1080 * include/debug/map.h (__gnu_debug::map): Likewise.
1081 * include/debug/multimap.h (__gnu_debug::multimap): Likewise.
1082 * include/debug/multiset.h (__gnu_debug::multiset): Likewise.
1083 * include/debug/set.h (__gnu_debug::set): Likewise.
1084 * include/debug/vector (__gnu_debug::vector): Likewise.
1085 * testsuite/23_containers/deque/cons/deduction.cc: Test class
1086 template argument deduction with non-deduced allocator
1087 arguments.
1088 * testsuite/23_containers/forward_list/cons/deduction.cc:
1089 Likewise.
1090 * testsuite/23_containers/list/cons/deduction.cc: Likewise.
1091 * testsuite/23_containers/map/cons/deduction.cc: Likewise.
1092 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
1093 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
1094 * testsuite/23_containers/priority_queue/deduction.cc: Likewise.
1095 * testsuite/23_containers/queue/deduction.cc: Likewise.
1096 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
1097 * testsuite/23_containers/stack/deduction.cc: Likewise.
1098 * testsuite/23_containers/unordered_map/cons/deduction.cc:
1099 Likewise.
1100 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
1101 Likewise.
1102 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
1103 Likewise.
1104 * testsuite/23_containers/unordered_set/cons/deduction.cc:
1105 Likewise.
1106 * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
1107
1108 2021-10-04 Jonathan Wakely <jwakely@redhat.com>
1109
1110 * include/std/variant (__detail::__variant::__as): Add missing
1111 noexcept to first overload.
1112
1113 2021-10-04 Jonathan Wakely <jwakely@redhat.com>
1114
1115 * include/bits/basic_string.h (basic_string(nullptr_t)): Define
1116 as deleted.
1117 (operator=(nullptr_t)): Likewise.
1118 * include/bits/cow_string.h (basic_string(nullptr_t)): Likewise.
1119 (operator=(nullptr_t)): Likewise.
1120 * include/std/string_view (basic_string_view(nullptr_t)):
1121 Likewise.
1122 * testsuite/21_strings/basic_string/cons/char/nullptr.cc: New test.
1123 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
1124 Change dg-warning to dg-error.
1125 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
1126 Likewise.
1127
1128 2021-10-02 Jonathan Wakely <jwakely@redhat.com>
1129
1130 * src/c++17/fs_ops.cc (create_directory): Fix typo in enum name.
1131 * src/filesystem/ops-common.h (__last_system_error): Add
1132 explicit cast to avoid narrowing conversion.
1133 (do_space): Fix type in function name.
1134
1135 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1136
1137 PR libstdc++/102100
1138 * include/Makefile.am (c++config.h): Define
1139 _GLIBCXX_VERBOSE_ASSERT based on configure output.
1140 * include/Makefile.in: Regenerate.
1141 * include/bits/c++config: Fix condition for verbose assertions.
1142
1143 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1144
1145 PR libstdc++/92546
1146 * include/bits/erase_if.h (__erase_nodes_if): Use __niter_base to
1147 unwrap debug iterators.
1148 * include/bits/refwrap.h: Do not error if included in C++03.
1149 * include/bits/stl_algo.h (__remove_if): Move to ...
1150 * include/bits/stl_algobase.h (__remove_if): ... here.
1151 * include/std/deque (erase, erase_if): Use __remove_if instead of
1152 remove and remove_if.
1153 * include/std/string (erase, erase_if): Likewise.
1154 * include/std/vector (erase, erase_if): Likewise.
1155
1156 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1157
1158 PR libstdc++/66742
1159 * include/bits/list.tcc (list::sort()): Use _Scratch_list
1160 objects for splicing and merging.
1161 (list::sort(StrictWeakOrdering)): Likewise.
1162 * include/bits/stl_list.h (__detail::_Scratch_list): New type.
1163 * src/c++98/list.cc (_List_node_base::_M_transfer): Add
1164 assertion for --enable-libstdcxx-debug library.
1165 * testsuite/23_containers/list/operations/66742.cc: New test.
1166
1167 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1168
1169 PR libstdc++/100612
1170 * include/std/thread (__pmf_expects_stop_token): New variable
1171 template to detect a pointer to member function that needs a
1172 stop_token to be added to the arguments.
1173 (jthread::__S_create): Use __pmf_expects_stop_token.
1174 (jthread::__S_create_pmf): New function.
1175 * testsuite/30_threads/jthread/100612.cc: New test.
1176
1177 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1178
1179 * include/bits/stl_queue.h
1180 (__cpp_lib_adaptor_iterator_pair_constructor): Define for C++23, as
1181 per P1425R4.
1182 (queue(InputIterator, InputIterator)): Likewise.
1183 (queue(InputIterator, InputIterator, const Alloc&)): Likewise.
1184 * include/bits/stl_stack.h
1185 (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
1186 (stack(InputIterator, InputIterator)): Likewise.
1187 (stack(InputIterator, InputIterator, const Alloc&)): Likewise.
1188 * include/std/version (__cpp_lib_adaptor_iterator_pair_constructor):
1189 Define.
1190 * testsuite/23_containers/queue/cons_from_iters.cc: New test.
1191 * testsuite/23_containers/stack/cons_from_iters.cc: New test.
1192
1193 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1194
1195 * include/bits/stl_queue.h (priority_queue): Add
1196 allocator-extended overloads for constructors taking iterator.
1197 * testsuite/23_containers/priority_queue/lwg3506.cc: New test.
1198
1199 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1200
1201 * include/bits/stl_queue.h (priority_queue): Construct sequence
1202 from iterators when no sequence argument is present (LWG 3529).
1203 * testsuite/23_containers/priority_queue/lwg3529.cc: New test.
1204
1205 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1206
1207 * include/bits/stl_queue.h (priority_queue): Constrain
1208 constructors with InputIterator parameters (LWG 3522).
1209 * testsuite/23_containers/priority_queue/lwg3522.cc: New test.
1210
1211 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1212
1213 * include/bits/ranges_base.h (ranges::distance): Split overload
1214 into two (LWG 3392).
1215 * testsuite/24_iterators/range_operations/lwg3392.cc: New test.
1216
1217 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1218
1219 * testsuite/30_threads/thread/cons/3.cc: Remove derivation from
1220 std::unary_function.
1221 * testsuite/30_threads/thread/cons/4.cc: Likewise.
1222 * testsuite/30_threads/thread/cons/5.cc: Likewise.
1223
1224 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1225
1226 * testsuite/ext/pb_ds/example/basic_multimap.cc: Remove
1227 unnecesary derivation from std::unary_function.
1228 * testsuite/ext/pb_ds/example/erase_if.cc: Likewise.
1229 * testsuite/ext/pb_ds/example/hash_illegal_resize.cc: Likewise.
1230 * testsuite/ext/pb_ds/example/hash_initial_size.cc: Likewise.
1231 * testsuite/ext/pb_ds/example/hash_load_set_change.cc: Likewise.
1232 * testsuite/ext/pb_ds/example/hash_mod.cc: Likewise.
1233 * testsuite/ext/pb_ds/example/hash_resize.cc: Likewise.
1234 * testsuite/ext/pb_ds/example/hash_shift_mask.cc: Likewise.
1235 * testsuite/ext/pb_ds/example/priority_queue_dijkstra.cc:
1236 Likewise.
1237 * testsuite/ext/pb_ds/example/ranged_hash.cc: Likewise.
1238 * testsuite/ext/pb_ds/example/store_hash.cc: Likewise.
1239
1240 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1241
1242 * src/c++11/functexcept.cc (__throw_out_of_range_fmt): Do not
1243 expand the format string for freestanding, or non-vebose, or if
1244 we're just going to abort anyway.
1245 * src/c++11/snprintf_lite.cc: Remove unused header and
1246 declaration.
1247
1248 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1249
1250 * include/std/variant (__do_visit): Use variant_npos instead of
1251 literal -1 that requires a narrowing conversion.
1252
1253 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1254
1255 PR libstdc++/99327
1256 * src/filesystem/ops-common.h (__unsupported): New function to
1257 return a suitable error code for missing functionality.
1258 (posix::off_t): New typedef.
1259 (posix::*): Set errno to ENOSYS instead of ENOTSUP for no-op
1260 fallback implementations.
1261 (do_copy_file): Replace uses of errc::not_supported.
1262 * src/c++17/fs_ops.cc (fs::copy, fs::copy_file, create_dir)
1263 (fs::create_directory, fs::create_directory_symlink)
1264 (fs::create_hard_link, fs::create_symlink, fs::current_path)
1265 (fs::equivalent, do_stat, fs::file_size, fs::hard_link_count)
1266 (fs::last_write_time, fs::permissions, fs::read_symlink):
1267 Replace uses of errc::not_supported.
1268 (fs::resize_file): Qualify off_t.
1269 * src/filesystem/ops.cc (fs::copy, fs::copy_file, create_dir)
1270 (fs::create_directory, fs::create_directory_symlink)
1271 (fs::create_hard_link, fs::create_symlink, fs::current_path)
1272 (fs::equivalent, do_stat, fs::file_size, fs::last_write_time)
1273 (fs::permissions, fs::read_symlink, fs::system_complete):
1274 Replace uses of errc::not_supported.
1275 (fs::resize_file): Qualify off_t and enable unconditionally.
1276 * testsuite/19_diagnostics/system_error/cons-1.cc: Likewise.
1277
1278 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1279
1280 * src/filesystem/ops-common.h (last_error): New helper function.
1281 (filesystem::do_space): Use last_error().
1282 * src/c++17/fs_ops.cc (fs::absolute, fs::create_hard_link)
1283 (fs::equivalent, fs::remove, fs::temp_directory_path): Use
1284 last_error().
1285 * src/filesystem/ops.cc (fs::create_hard_link)
1286 (fs::remove, fs::temp_directory_path): Likewise.
1287
1288 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1289
1290 * include/std/type_traits (__conditional): New class template
1291 for internal uses of std::conditional.
1292 (__conditional_t): New alias template to replace conditional_t.
1293 (__and_, __or_, __result_of_memfun, __result_of_memobj): Use
1294 __conditional_t instead of conditional::type.
1295 * include/bits/atomic_base.h (__atomic_impl::_Diff): Likewise.
1296 * include/bits/hashtable.h (_Hashtable): Likewise.
1297 * include/bits/hashtable_policy.h (_Node_iterator, _Insert_base)
1298 (_Local_iterator): Likewise. Replace typedefs with
1299 using-declarations.
1300 * include/bits/move.h (move_if_noexcept): Use __conditional_t.
1301 * include/bits/parse_numbers.h (_Select_int_base): Likewise.
1302 * include/bits/ptr_traits.h (__make_not_void): Likewise.
1303 * include/bits/ranges_algobase.h (__copy_or_move_backward)
1304 (__copy_or_move): Likewise.
1305 * include/bits/ranges_base.h (borrowed_iterator_t): Likewise.
1306 * include/bits/ranges_util.h (borrowed_subrange_t): Likewise.
1307 * include/bits/regex_compiler.h (_BracketMatcher): Use
1308 __conditional_t. Replace typedefs with using-declarations.
1309 * include/bits/shared_ptr_base.h (__shared_count): Use
1310 __conditional_t.
1311 * include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
1312 Likewise.
1313 * include/bits/stl_iterator.h (__detail::__clamp_iter_cat)
1314 (reverse_iterator::iterator_concept)
1315 (__make_move_if_noexcept_iterator)
1316 (iterator_traits<common_iterator<_It, _Sent>>)
1317 (iterator_traits<counted_iterator<_It>>): Likewise.
1318 * include/bits/stl_pair.h (_PCC, pair::operator=): Likewise.
1319 * include/bits/stl_tree.h (_Rb_tree::insert_return_type)
1320 (_Rb_tree::_M_clone_node): Likewise.
1321 * include/bits/unique_ptr.h (unique_ptr(unique_ptr<U,E>&&)):
1322 Likewise.
1323 * include/bits/uses_allocator.h (__uses_alloc): Likewise.
1324 (__is_uses_allocator_predicate): Likewise.
1325 * include/debug/functions.h (__foreign_iterator_aux2): Likewise.
1326 * include/experimental/any (any::_Manager, __any_caster):
1327 Likewise.
1328 * include/experimental/executor (async_completion): Likewise.
1329 * include/experimental/functional (__boyer_moore_base_t):
1330 Likewise.
1331 * include/std/any (any::_Manager): Likewise.
1332 * include/std/functional (__boyer_moore_base_t): Likewise.
1333 * include/std/ranges (borrowed_iterator_t)
1334 (borrowed_subrange_t, __detail::__maybe_present_t)
1335 (__detail::__maybe_const_t, split_view): Likewise.
1336 * include/std/tuple (__empty_not_final, tuple::operator=):
1337 Likewise.
1338 * include/std/variant (__detail::__variant::__get_t): Likewise.
1339
1340 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1341
1342 PR libstdc++/78113
1343 * include/std/variant (__do_visit): Use a switch when we have a
1344 single variant with a small number of alternatives.
1345
1346 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1347
1348 PR libstdc++/90943
1349 * include/std/variant (__cpp_lib_variant): Update value.
1350 (__detail::__variant::__as): New helpers implementing the
1351 as-variant exposition-only function templates.
1352 (visit, visit<R>): Use __as to upcast the variant parameters.
1353 * include/std/version (__cpp_lib_variant): Update value.
1354 * testsuite/20_util/variant/visit_inherited.cc: New test.
1355
1356 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1357
1358 * include/bits/stl_iterator.h (__normal_iterator): Simplify
1359 converting constructor and do not require _Container::pointer.
1360
1361 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1362
1363 * include/bits/cow_string.h [_GLIBCXX_FULLY_DYNAMIC_STRING]
1364 (basic_string(basic_string&&)): Add noexcept and avoid
1365 allocation, by sharing rep with the rvalue string.
1366
1367 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1368
1369 * include/bits/stl_iterator.h (common_iterator::__arrow_proxy)
1370 (common_iterator::__postfix_proxy): Add noexcept.
1371
1372 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1373
1374 PR libstdc++/94418
1375 * include/bits/stl_iterator.h (reverse_iterator): Use
1376 conditional noexcept on constructors and assignment operators.
1377 * testsuite/24_iterators/reverse_iterator/noexcept.cc: New test.
1378
1379 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1380
1381 PR libstdc++/100153
1382 * include/bits/vector.tcc (vector<bool>::_M_shrink_to_fit()):
1383 When size() is zero just deallocate and reset.
1384
1385 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1386
1387 PR libstdc++/96733
1388 * include/bits/stl_algo.h (clamp): Use std::min and std::max.
1389
1390 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1391
1392 * include/bits/regex.h (basic_regex::multiline): Define for
1393 non-strict C++11 and C++14 modes.
1394 * include/bits/regex_constants.h (regex_constants::multiline):
1395 Add _GLIBCXX_RESOLVE_LIB_DEFECTS comment.
1396
1397 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1398
1399 * testsuite/25_algorithms/is_permutation/2.cc: Include <iterator>.
1400
1401 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1402
1403 * include/bits/stream_iterator.h (istream_iterator): Add
1404 noexcept to constructors and non-throwing member functions and
1405 friend functions.
1406 (ostream_iterator): Likewise.
1407
1408 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1409
1410 * include/bits/boost_concept_check.h (_Is_vector_bool_iterator):
1411 New trait to identify vector<bool> iterators, including debug
1412 ones.
1413 (_ForwardIteratorReferenceConcept): Add default template
1414 argument using _Is_vector_bool_iterator and use it in partial
1415 specialization for the vector<bool> cases.
1416 (_Mutable_ForwardIteratorReferenceConcept): Likewise.
1417 * testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error
1418 line number.
1419
1420 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1421
1422 * include/bits/list.tcc (list::merge): Remove call to size() and
1423 try-catch block. Use _Finalize_merge instead.
1424 * include/bits/stl_list.h (list::_Finalize_merge): New
1425 scope guard type to update _M_size members after a merge.
1426
1427 2021-09-30 Jonathan Wakely <jwakely@redhat.com>
1428
1429 * include/bits/regex.h (basic_regex::multiline): Fix #if
1430 condition.
1431
1432 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
1433
1434 * include/bits/regex.h (basic_regex::multiline): Define constant
1435 for C++17.
1436 * include/bits/regex_constants.h (regex_constants::multiline):
1437 Define constant for C++17.
1438 (regex_constants::__multiline): Define duplicate constant for
1439 internal use in C++11 and C++14.
1440 * include/bits/regex_executor.h (_Executor::_M_match_multiline()):
1441 New member function.
1442 (_Executor::_M_is_line_terminator(_CharT)): New member function.
1443 (_Executor::_M_at_begin(), _Executor::_M_at_end()): Use new
1444 member functions to support multiline matches.
1445 * testsuite/28_regex/algorithms/regex_match/multiline.cc: New test.
1446
1447 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
1448
1449 * include/bits/regex_compiler.h (_Compiler::_S_validate): New
1450 function.
1451 * include/bits/regex_compiler.tcc (_Compiler::_Compiler): Use
1452 _S_validate to check flags.
1453 * include/bits/regex_error.h (_S_grammar): New error code for
1454 internal use.
1455 * testsuite/28_regex/basic_regex/ctors/grammar.cc: New test.
1456
1457 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
1458
1459 PR libstdc++/84110
1460 * include/bits/regex_error.h (regex_constants::_S_null): New
1461 error code for internal use.
1462 * include/bits/regex_scanner.tcc (_Scanner::_M_scan_normal()):
1463 Check for null character.
1464 * testsuite/28_regex/basic_regex/84110.cc: New test.
1465
1466 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
1467
1468 * include/bits/regex.h (__detail::__is_contiguous_iter): Move
1469 here from <bits/regex_compiler.h>.
1470 (basic_regex::_M_compile): New function to compile an NFA from
1471 a regular expression string.
1472 (basic_regex::basic_regex): Use _M_compile instead of delegating
1473 to other constructors.
1474 (basic_regex::operator=(const basic_regex&)): Define as
1475 defaulted.
1476 (basic_regex::operator=(initializer_list<C>)): Use _M_compile.
1477 (basic_regex::assign(const basic_regex&)): Use copy assignment.
1478 (basic_regex::assign(basic_regex&&)): Use move assignment.
1479 (basic_regex::assign(const C*, flag_type)): Use _M_compile
1480 instead of constructing a temporary string.
1481 (basic_regex::assign(const C*, size_t, flag_type)): Likewise.
1482 (basic_regex::assign(const basic_string<C,T,A>&, flag_type)):
1483 Use _M_compile instead of constructing a temporary basic_regex.
1484 (basic_regex::assign(InputIter, InputIter, flag_type)): Avoid
1485 constructing a temporary string for contiguous iterators of the
1486 right value type.
1487 * include/bits/regex_compiler.h (__is_contiguous_iter): Move to
1488 <bits/regex.h>.
1489 (__enable_if_contiguous_iter, __disable_if_contiguous_iter)
1490 (__compile_nfa): Remove.
1491 * testsuite/28_regex/basic_regex/assign/exception_safety.cc: New
1492 test.
1493 * testsuite/28_regex/basic_regex/ctors/char/other.cc: New test.
1494
1495 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1496
1497 * include/bits/atomic_timed_wait.h (__platform_wait_until_impl):
1498 Return false for ETIMEDOUT and true otherwise.
1499
1500 2021-09-28 François Dumont <fdumont@gcc.gnu.org>
1501
1502 * testsuite/20_util/default_delete/48631_neg.cc: Adapt dg-prune-output message
1503 to also match message with '__8' in it.
1504
1505 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1506
1507 * include/bits/regex_automaton.h (_NFA_base::_SizeT): Remove.
1508 * include/bits/regex_compiler.h (_Compiler::_IterT): Remove.
1509 * include/bits/regex_compiler.tcc: Likewise.
1510 * include/bits/regex_scanner.h (_Scanner::_IterT): Remove.
1511 * include/bits/regex_scanner.tcc: Likewise.
1512
1513 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1514
1515 * include/bits/regex_compiler.tcc: Add line break in empty while
1516 statement.
1517 * include/bits/regex_executor.tcc: Avoid unused parameter
1518 warning.
1519
1520 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1521
1522 * include/bits/regex.h (basic_regex, swap): Add noexcept to
1523 non-throwing functions.
1524 * include/bits/regex_automaton.h (_State_base, _State)
1525 (_NFA_base): Likewise.
1526 * include/bits/regex_compiler.h (_Compiler): Likewise.
1527 * include/bits/regex_error.h (regex_error::code()): Likewise.
1528 * include/bits/regex_scanner.h (_Scanner): Likewise.
1529
1530 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1531
1532 * include/bits/atomic_wait.h (_GLIBCXX_HAVE_PLATFORM_WAIT):
1533 Define before first attempt to check it.
1534
1535 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1536
1537 * testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1.cc:
1538 Do not check non-default constructible sequences when
1539 _GLIBCXX_CONCEPT_CHECKS is defined.
1540 * testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1_c++98.cc:
1541 Likewise.
1542 * testsuite/23_containers/queue/requirements/explicit_instantiation/1.cc:
1543 Likewise.
1544 * testsuite/23_containers/queue/requirements/explicit_instantiation/1_c++98.cc:
1545 Likewise.
1546 * testsuite/23_containers/stack/requirements/explicit_instantiation/1.cc:
1547 Likewise.
1548 * testsuite/23_containers/stack/requirements/explicit_instantiation/1_c++98.cc:
1549 Likewise.
1550
1551 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1552
1553 * testsuite/23_containers/deque/requirements/explicit_instantiation/3.cc:
1554 Do not test implicit allocator rebinding when _GLIBCXX_CONCEPT_CHECKS
1555 is defined.
1556 * testsuite/23_containers/forward_list/requirements/explicit_instantiation/3.cc:
1557 Likewise.
1558 * testsuite/23_containers/list/requirements/explicit_instantiation/3.cc:
1559 Likewise.
1560 * testsuite/23_containers/list/requirements/explicit_instantiation/5.cc:
1561 Likewise.
1562 * testsuite/23_containers/map/requirements/explicit_instantiation/3.cc:
1563 Likewise.
1564 * testsuite/23_containers/map/requirements/explicit_instantiation/5.cc:
1565 Likewise.
1566 * testsuite/23_containers/multimap/requirements/explicit_instantiation/3.cc:
1567 Likewise.
1568 * testsuite/23_containers/multimap/requirements/explicit_instantiation/5.cc:
1569 Likewise.
1570 * testsuite/23_containers/multiset/requirements/explicit_instantiation/3.cc:
1571 Likewise.
1572 * testsuite/23_containers/multiset/requirements/explicit_instantiation/5.cc:
1573 Likewise.
1574 * testsuite/23_containers/set/requirements/explicit_instantiation/3.cc:
1575 Likewise.
1576 * testsuite/23_containers/set/requirements/explicit_instantiation/5.cc:
1577 Likewise.
1578 * testsuite/23_containers/unordered_map/requirements/explicit_instantiation/3.cc:
1579 Likewise.
1580 * testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/3.cc:
1581 Likewise.
1582 * testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/3.cc:
1583 Likewise.
1584 * testsuite/23_containers/unordered_set/requirements/explicit_instantiation/3.cc:
1585 Likewise.
1586 * testsuite/23_containers/vector/ext_pointer/explicit_instantiation/3.cc:
1587 Likewise.
1588 * testsuite/23_containers/vector/requirements/explicit_instantiation/3.cc:
1589 Likewise.
1590
1591 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1592
1593 * include/bits/boost_concept_check.h (_ForwardIteratorConcept)
1594 (_BidirectionalIteratorConcept, _RandomAccessIteratorConcept):
1595 Check result types of iterator operations.
1596 (_Mutable_ForwardIteratorConcept): Check that iterator's
1597 reference type is a reference to its value type.
1598 (_Mutable_BidirectionalIteratorConcept): Do not require the
1599 value type to be assignable.
1600 (_Mutable_RandomAccessIteratorConcept): Likewise.
1601 * testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error
1602 line number.
1603
1604 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1605
1606 * testsuite/25_algorithms/copy/34595.cc: Add missing operation
1607 for type used as an iterator.
1608 * testsuite/25_algorithms/unique_copy/check_type.cc: Likewise.
1609
1610 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1611
1612 * testsuite/20_util/is_nothrow_swappable/value.h: Use custom
1613 comparison function for priority_queue of type with no
1614 relational operators.
1615 * testsuite/20_util/is_swappable/value.h: Likewise.
1616 * testsuite/24_iterators/output/concept.cc: Add operator< to
1617 type used in set.
1618
1619 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1620
1621 * include/bits/boost_concept_check.h (_OutputIteratorConcept):
1622 Use a function to preserve value category of the type.
1623 * include/bits/stl_algobase.h (copy, move, fill_n): Use a
1624 reference as the second argument for _OutputIteratorConcept.
1625 (copy_backward, move_backward): Use _OutputIteratorConcept
1626 instead of _ConvertibleConcept.
1627
1628 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1629
1630 * include/bits/stl_iterator.h (pointer_traits): Define partial
1631 specialization for __normal_iterator.
1632 * testsuite/24_iterators/normal_iterator/to_address.cc: New test.
1633
1634 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1635
1636 * include/bits/move.h (forward(remove_reference_t<T>&&)):
1637 Improve text of static_assert.
1638 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
1639 * testsuite/20_util/forward/f_neg.cc: Likewise.
1640
1641 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1642
1643 PR libstdc++/102499
1644 * include/bits/fs_path.h (path::begin, path::end): Add noexcept
1645 to declarations, to match definitions.
1646
1647 2021-09-24 Jonathan Wakely <jwakely@redhat.com>
1648
1649 * include/bits/range_access.h (cbegin, cend): Remove redundant
1650 'inline' specifier.
1651
1652 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
1653
1654 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
1655 Remove dg-error lines for C++20-only errors.
1656
1657 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
1658
1659 * testsuite/19_diagnostics/headers/system_error/93151.cc:
1660 Disable PCH.
1661
1662 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
1663
1664 * src/c++11/system_error.cc (system_error_category) [_WIN32]:
1665 Map Windows error codes to generic POSIX error numbers. Use
1666 FormatMessage instead of strerror.
1667 * testsuite/19_diagnostics/error_category/system_category.cc:
1668 Adjust for new behaviour on Windows.
1669
1670 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
1671
1672 * src/c++11/system_error.cc (generic_error_category): Define
1673 class and virtual functions as 'final'.
1674 (generic_error_category::equivalent(int, const error_condition&)):
1675 Override.
1676 (system_error_category): Define class and virtual functions as
1677 'final'.
1678 (system_error_category::equivalent(int, const error_condition&)):
1679 Override.
1680 (generic_category_instance, system_category_instance): Use
1681 constinit union to make the objects immortal.
1682
1683 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
1684
1685 PR libstdc++/102425
1686 * src/c++11/system_error.cc
1687 (system_error_category::default_error_condition): Add 0 to
1688 switch.
1689 * testsuite/19_diagnostics/error_category/102425.cc: New test.
1690
1691 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
1692
1693 * include/bits/fs_path.h (path::iterator): Add noexcept to all
1694 member functions and friend functions.
1695 (distance): Add noexcept.
1696 (advance): Add noexcept and inline.
1697 * include/experimental/bits/fs_path.h (path::iterator):
1698 Add noexcept to all member functions.
1699
1700 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
1701
1702 PR libstdc++/102270
1703 * include/std/tuple (_Tuple_impl): Add constexpr to constructor
1704 missed in previous patch.
1705 * testsuite/20_util/tuple/cons/102270.C: Moved to...
1706 * testsuite/20_util/tuple/cons/102270.cc: ...here.
1707 * testsuite/util/testsuite_allocator.h (SimpleAllocator): Add
1708 constexpr to constructor so it can be used for C++20 tests.
1709
1710 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
1711
1712 * testsuite/26_numerics/valarray/dr630-3.C: Moved to...
1713 * testsuite/26_numerics/valarray/dr630-3.cc: ...here.
1714 * testsuite/27_io/basic_iostream/cons/16251.C: Moved to...
1715 * testsuite/27_io/basic_iostream/cons/16251.cc: ...here.
1716
1717 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1718
1719 * src/Makefile.am (stamp-debug): Add all Makefiles as
1720 prerequisites.
1721 * src/Makefile.in: Regenerate.
1722
1723 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1724
1725 * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Increase
1726 timeout factor to 3.
1727 * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
1728
1729 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1730
1731 * doc/xml/manual/using.xml: Generalize to apply to more than
1732 just -std=c++11.
1733 * doc/html/manual/using_macros.html: Regenerate.
1734
1735 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1736
1737 * include/std/optional (nullptr_t): Make constructor noexcept.
1738
1739 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1740
1741 * include/bits/fs_path.h (advance): Remove non-deducible
1742 template parameter.
1743
1744 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1745
1746 PR libstdc++/102270
1747 * include/std/tuple (_Head_base, _Tuple_impl): Add
1748 _GLIBCXX20_CONSTEXPR to allocator-extended constructors.
1749 (tuple<>::swap(tuple&)): Add _GLIBCXX20_CONSTEXPR.
1750 * testsuite/20_util/tuple/cons/102270.C: New test.
1751
1752 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1753
1754 PR libstdc++/102280
1755 * include/std/span (span(Range&&)): Add constraint to deduction
1756 guide.
1757
1758 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1759
1760 * src/c++98/Makefile.am: Use CXXCOMPILE not LTCXXCOMPILE.
1761 * src/c++98/Makefile.in: Regenerate.
1762
1763 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1764
1765 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
1766 (to_string): Add noexcept if the type width is 32 bits or less.
1767
1768 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1769
1770 * include/bits/unique_ptr.h (__uniq_ptr_impl::_M_ptr)
1771 (__uniq_ptr_impl::_M_deleter): Add noexcept.
1772
1773 2021-09-16 Thomas Rodgers <rodgert@twrodgers.com>
1774
1775 PR libstdc++/101761
1776 * testsuite/29_atomics/atomic_ref/wait_notify.cc (test): Use
1777 va and vb as arguments to wait/notify, remove unused bb local.
1778
1779 2021-09-15 Hugo Beauzée-Luyssen <hugo@beauzee.fr>
1780
1781 * crossconfig.m4: Check for TLS support on mingw.
1782 * configure: Regenerate.
1783
1784 2021-09-13 Jason Merrill <jason@redhat.com>
1785
1786 * include/std/version: Define __cpp_lib_hardware_interference_size.
1787 * libsupc++/new: Define hardware interference size variables.
1788
1789 2021-09-10 Jonathan Wakely <jwakely@redhat.com>
1790
1791 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
1792 Fix invalid hostname to only match the .invalid TLD.
1793
1794 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
1795
1796 * include/bits/atomic_base.h (__atomic_base<P*>::compare_exchange_weak):
1797 Add new functions.
1798 * include/std/atomic (atomic<T*>::compare_exchange_weak): Use
1799 it.
1800
1801 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
1802
1803 * include/std/atomic: Tweak whitespace.
1804
1805 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
1806
1807 PR c++/102177
1808 * include/bits/atomic_base.h (__is_valid_cmpexch_failure_order):
1809 New function to check if a memory order is valid for the failure
1810 case of compare exchange operations.
1811 (__atomic_base<I>::compare_exchange_weak): Simplify assertions
1812 by using __is_valid_cmpexch_failure_order.
1813 (__atomic_base<I>::compare_exchange_strong): Likewise.
1814 (__atomic_base<P*>::compare_exchange_weak): Likewise.
1815 (__atomic_base<P*>::compare_exchange_strong): Likewise.
1816 (__atomic_impl::compare_exchange_weak): Add assertion.
1817 (__atomic_impl::compare_exchange_strong): Likewise.
1818 * include/std/atomic (atomic::compare_exchange_weak): Likewise.
1819 (atomic::compare_exchange_strong): Likewise.
1820
1821 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
1822
1823 * include/std/functional (invoke_r): Define.
1824 * include/std/version (__cpp_lib_invoke_r): Define.
1825 * testsuite/20_util/function_objects/invoke/version.cc: Check
1826 for __cpp_lib_invoke_r as well as __cpp_lib_invoke.
1827 * testsuite/20_util/function_objects/invoke/4.cc: New test.
1828
1829 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
1830
1831 PR libstdc++/98421
1832 * include/std/span (span(Iter, size_type), span(Iter, Iter)):
1833 Add valid range checks.
1834 * testsuite/23_containers/span/cons_1_assert_neg.cc: New test.
1835 * testsuite/23_containers/span/cons_2_assert_neg.cc: New test.
1836
1837 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
1838
1839 * configure.ac: Fix checks for F_GETFL, F_SETFL and O_NONBLOCK.
1840 * configure: Regenerate.
1841
1842 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
1843
1844 * src/c++11/system_error.cc (error_category::~error_category()):
1845 Remove noexcept-specifier.
1846 (system_error::~system_error()): Likewise.
1847 * testsuite/19_diagnostics/error_category/noexcept.cc: New test.
1848 * testsuite/19_diagnostics/system_error/noexcept.cc: New test.
1849
1850 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
1851
1852 PR libstdc++/102074
1853 * include/bits/atomic_timed_wait.h (__timed_waiter_pool)
1854 [!_GLIBCXX_HAVE_PLATFORM_TIMED_WAIT]: Add missing return.
1855
1856 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
1857
1858 * include/experimental/internet (__make_resolver_error_code):
1859 Handle EAI_SYSTEM errors.
1860 (basic_resolver_results): Use __make_resolver_error_code. Use
1861 Glibc NI_MAXHOST and NI_MAXSERV values for buffer sizes.
1862
1863 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
1864
1865 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
1866 Try other service if "http" fails.
1867
1868 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
1869
1870 * testsuite/17_intro/names.cc: Undefine some more names used
1871 by Solaris system headers.
1872
1873 2021-08-30 Jason Merrill <jason@redhat.com>
1874
1875 PR c++/96286
1876 * testsuite/30_threads/promise/requirements/lwg3466.cc:
1877 Remove dg-prune-outputs.
1878
1879 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
1880
1881 * include/bits/alloc_traits.h (allocator_traits): Add explicit
1882 specialization for allocator<void>. Improve doxygen comments.
1883 * include/bits/allocator.h (allocator<void>): Restore for the
1884 versioned namespace.
1885 (allocator<void>::construct, allocator<void>::destroy): Remove.
1886 * include/ext/extptr_allocator.h (_Extptr_allocator<void>):
1887 Add default constructor and converting constructor.
1888
1889 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
1890
1891 * include/bits/stl_uninitialized.h: Fix typo in comment.
1892
1893 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
1894
1895 PR libstdc++/99876
1896 * src/c++17/fs_ops.cc (fs::absolute): Call non-throwing form,
1897 to avoid unnecessary current_path() call.
1898
1899 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
1900
1901 * include/bits/std_function.h (function::function(F&&)): Give
1902 name to defaulted template parameter, to improve diagnostics.
1903 Use markdown for more doxygen comments.
1904
1905 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
1906
1907 * include/bits/std_function.h (function): Adjust doxygen
1908 comments.
1909 * include/bits/unique_ptr.h (make_unique_for_overwrite):
1910 Change parameter name to match doxygen comment.
1911
1912 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
1913
1914 * include/bits/std_function.h (_function_base::_Base_manager):
1915 Replace _M_init_functor with a function template using a
1916 forwarding reference, and a pair of _M_create function
1917 templates. Reuse _M_create for the clone operation.
1918 (function::_Decay_t): New alias template.
1919 (function::_Callable): Simplify by using _Decay.
1920 (function::function(F)): Change parameter to forwarding
1921 reference, as per LWG 2447. Add noexcept-specifier. Simplify
1922 constraints.
1923 (function::operator=(F&&)): Add noexcept-specifier.
1924 * testsuite/20_util/function/cons/lwg2774.cc: New test.
1925 * testsuite/20_util/function/cons/noexcept.cc: New test.
1926
1927 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
1928
1929 * include/bits/std_function.h (function::function(F)): Add
1930 static assertions to check constructibility requirements.
1931
1932 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
1933
1934 PR libstdc++/100285
1935 * configure.ac: Check for O_NONBLOCK.
1936 * configure: Regenerate.
1937 * include/experimental/internet: Include <ws2tcpip.h> for
1938 Windows. Use preprocessor conditions around more constants.
1939 * include/experimental/socket: Use preprocessor conditions
1940 around more constants.
1941 * testsuite/experimental/net/internet/resolver/base.cc: Only use
1942 constants when the corresponding C macro is defined.
1943 * testsuite/experimental/net/socket/basic_socket.cc: Likewise.
1944 * testsuite/experimental/net/socket/socket_base.cc: Likewise.
1945 Make preprocessor checks more fine-grained.
1946
1947 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
1948
1949 * testsuite/17_intro/names.cc: Check 'sz'.
1950
1951 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
1952
1953 * testsuite/17_intro/names.cc: Adjust for Windows.
1954
1955 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
1956
1957 * include/std/valarray: Uglify 'func' parameters.
1958 * testsuite/17_intro/names.cc: Add 'func' to checks.
1959
1960 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
1961
1962 PR libstdc++/102064
1963 * include/bits/stl_uninitialized.h (_GLIBCXX_USE_ASSIGN_FOR_INIT):
1964 Define macro to check conditions for optimizing trivial cases.
1965 (__check_constructible): New function to do static assert.
1966 (uninitialized_copy, uninitialized_fill, uninitialized_fill_n):
1967 Use new macro.
1968 * testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc:
1969 Adjust dg-error pattern.
1970 * testsuite/23_containers/vector/cons/89164.cc: Likewise. Add
1971 C++17-specific checks from 89164_c++17.cc.
1972 * testsuite/23_containers/vector/cons/89164_c++17.cc: Removed.
1973 * testsuite/20_util/specialized_algorithms/uninitialized_copy/102064.cc:
1974 New test.
1975 * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/102064.cc:
1976 New test.
1977 * testsuite/20_util/specialized_algorithms/uninitialized_fill/102064.cc:
1978 New test.
1979 * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/102064.cc:
1980 New test.
1981
1982 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
1983
1984 PR libstdc++/102048
1985 * include/ext/rope (rope::erase(size_type)): Remove broken
1986 function.
1987
1988 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
1989
1990 * doc/xml/manual/status_cxx2020.xml: Update table.
1991 * doc/html/manual/status.html: Regenerate.
1992
1993 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
1994
1995 * include/std/type_traits (is_layout_compatible): Define.
1996 (is_corresponding_member): Define.
1997 * include/std/version (__cpp_lib_is_layout_compatible): Define.
1998 * testsuite/20_util/is_layout_compatible/is_corresponding_member.cc:
1999 New test.
2000 * testsuite/20_util/is_layout_compatible/value.cc: New test.
2001 * testsuite/20_util/is_layout_compatible/version.cc: New test.
2002 * testsuite/20_util/is_pointer_interconvertible/with_class.cc:
2003 New test.
2004 * testsuite/23_containers/span/layout_compat.cc: Do not use real
2005 std::is_layout_compatible trait if available.
2006
2007 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
2008
2009 * src/c++11/cxx11-shim_facets.cc: Fix mismatched class-key in
2010 explicit instantiation definitions.
2011
2012 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
2013
2014 * include/std/ranges (basic_istream_view): Add default template
2015 argument.
2016 * testsuite/std/ranges/istream_view.cc: Check it.
2017
2018 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
2019
2020 * libsupc++/dyncast.cc (__dynamic_cast): Add __builtin_expect to
2021 precondition check.
2022
2023 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
2024
2025 PR libstdc++/90787
2026 * testsuite/util/testsuite_fs.h (permissions_are_testable):
2027 Define as inline.
2028
2029 2021-08-20 Jonathan Wakely <jwakely@redhat.com>
2030
2031 PR libstdc++/90787
2032 * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
2033 Use new __gnu_test::permissions_are_testable() function.
2034 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
2035 Likewise.
2036 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
2037 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
2038 * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
2039 * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
2040 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
2041 * testsuite/27_io/filesystem/operations/symlink_status.cc:
2042 Likewise.
2043 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
2044 Likewise.
2045 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
2046 Likewise.
2047 * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc:
2048 Likewise.
2049 * testsuite/experimental/filesystem/operations/exists.cc:
2050 Likewise.
2051 * testsuite/experimental/filesystem/operations/is_empty.cc:
2052 Likewise.
2053 * testsuite/experimental/filesystem/operations/remove.cc:
2054 Likewise.
2055 * testsuite/experimental/filesystem/operations/remove_all.cc:
2056 Likewise.
2057 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
2058 Likewise.
2059 * testsuite/util/testsuite_fs.h (__gnu_test::permissions_are_testable):
2060 New function to guess whether testing permissions will work.
2061
2062 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
2063
2064 * doc/xml/manual/status_cxx2020.xml: Move row earlier in table.
2065 * doc/html/manual/status.html: Regenerate.
2066
2067 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
2068
2069 * doc/doxygen/user.cfg.in: Update to Doxygen 1.9.2
2070
2071 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
2072
2073 PR libstdc++/101965
2074 * include/std/charconv (__to_chars_i): Remove redundant check.
2075
2076 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
2077
2078 PR libstdc++/101960
2079 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)): Use base
2080 class' move constructor. Define as defaulted for versioned
2081 namespace.
2082 * testsuite/20_util/tuple/cons/101960.cc: New test.
2083
2084 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
2085
2086 PR libstdc++/100139
2087 * doc/xml/manual/status_cxx2020.xml: Add P1739R4 to status table.
2088 * doc/html/manual/status.html: Regenerate.
2089
2090 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
2091
2092 * include/bits/shared_ptr.h: Add @since and @headerfile tags.
2093 * include/bits/unique_ptr.h: Add @headerfile tags.
2094
2095 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
2096
2097 * src/filesystem/ops-common.h (filesystem::file_time): Improve
2098 overflow check by using system_clock::duration::max().
2099
2100 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
2101
2102 * include/bits/stl_tree.h: Tweak whitespace.
2103
2104 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
2105
2106 * include/bits/unique_ptr.h (default_delete): Add @since tag.
2107 (unique_ptr, unique_ptr<T[]>): Likewise. Improve @brief.
2108 (make_unique, make_unique_for_overwrite): Likewise. Add @tparam,
2109 @param, and @returns.
2110 (_MakeUniq): Move to __detail namespace. Add alias template
2111 helpers.
2112
2113 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
2114
2115 * include/bits/stl_function.h: Improve doxygen comments.
2116
2117 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
2118
2119 * doc/doxygen/user.cfg.in (PREDEFINED): Enable doxygen
2120 processing for C++20 components and components that depend on
2121 compiler features.
2122 * include/bits/stl_algo.h (random_shuffle): Use @deprecated.
2123 * include/std/type_traits: Improve doxygen comments for C++20
2124 traits.
2125
2126 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
2127
2128 * include/ext/type_traits.h (__promote_2, __promote_3)
2129 (__promote_4): Redfine as alias templates using __promoted_t.
2130 * include/std/complex (__promote_2): Remove partial
2131 specializations for std::complex.
2132
2133 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
2134
2135 * include/bits/stl_algo.h (min(initializer_list<T>))
2136 (min(initializer_list<T>, Compare)): Call __min_element directly to
2137 avoid redundant debug checks for valid ranges.
2138 (max(initializer_list<T>), max(initializer_list<T>, Compare)):
2139 Likewise, for __max_element.
2140 (minmax(initializer_list<T>), minmax(initializer_list<T>, Compare)):
2141 Likewise, for __minmax_element.
2142
2143 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
2144
2145 * include/debug/deque (deque(size_type, const T&, const A&)):
2146 Prevent class template argument deduction and replace with a
2147 deduction guide.
2148 * include/debug/forward_list (forward_list(size_type, const T&, const A&)):
2149 Likewise.
2150 * include/debug/list (list(size_type, const T&, const A&)):
2151 Likewise.
2152 * include/debug/vector (vector(size_type, const T&, const A&)):
2153 Likewise.
2154
2155 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
2156
2157 * python/libstdcxx/v6/printers.py (StdBitReferencePrinter): Use
2158 'std::vector<bool>::reference' as type name, not _Bit_reference.
2159 (build_libstdcxx_dictionary): Register printers for vector<bool>
2160 types in debug mode too.
2161 * testsuite/libstdc++-prettyprinters/simple.cc: Adjust expected
2162 output for invalid _Bit_reference. Use vector<bool>::reference
2163 instead of _Bit_reference.
2164 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
2165
2166 2021-08-17 Thomas Schwinge <thomas@codesourcery.com>
2167
2168 * testsuite/lib/libstdc++.exp: Avoid illegal argument to verbose,
2169 continued.
2170
2171 2021-08-17 Luc Michel <lmichel@kalray.eu>
2172 Marc Poulhies <mpoulhies@kalrayinc.com>
2173
2174 * testsuite/lib/gdb-test.exp (gdb_version_check)
2175 (gdb_version_check_xmethods): Only check the GDB version for
2176 local native targets.
2177
2178 2021-08-17 Antony Polukhin <antoshkka@gmail.com>
2179 Jonathan Wakely <jwakely@redhat.com>
2180
2181 * include/bits/random.tcc (seed_seq::seed_seq): Reserve capacity
2182 if distance is O(1).
2183 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2184 line number.
2185
2186 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
2187
2188 * testsuite/26_numerics/random/seed_seq/cons/range.cc: Check
2189 construction from input iterators.
2190
2191 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
2192
2193 * python/libstdcxx/v6/printers.py (StdErrorCatPrinter): Remove.
2194
2195 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
2196
2197 PR libstdc++/101923
2198 * include/bits/std_function.h (function(function&&)): Check for
2199 non-empty parameter before doing any work.
2200
2201 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
2202
2203 * include/bits/cow_string.h (basic_string::contains): Do not
2204 define for -std=gnu++20.
2205
2206 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
2207
2208 * include/bits/ranges_util.h (__not_same_as): Rename to
2209 __different_from.
2210 * include/std/ranges (__not_same_as): Likewise.
2211
2212 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
2213
2214 * include/std/utility (exchange): Add noexcept-specifier.
2215 * testsuite/20_util/exchange/noexcept.cc: New test.
2216
2217 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
2218
2219 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Define.
2220 (build_libstdcxx_dictionary): Register printer for
2221 std::error_code and std::error_condition.
2222 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test it.
2223
2224 2021-08-16 Jonathan Wakely <jwakely@redhat.com>
2225
2226 PR libstdc++/101937
2227 * src/c++11/debug.cc (PrintContext::_M_indent): Replace with a
2228 static data member.
2229 (print_word): Use qualified-id to access it.
2230
2231 2021-08-16 Jonathan Wakely <jwakely@redhat.com>
2232
2233 * python/Makefile.am [GLIBCXX_BUILD_DEBUG] (install-data-local):
2234 Install another copy of the GDB hook.
2235 * python/Makefile.in: Regenerate.
2236
2237 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
2238
2239 PR libstdc++/101870
2240 * include/c_global/cmath (hypot): Use __promoted_t.
2241 (lerp): Add new overload accepting any arithmetic types.
2242 * include/ext/type_traits.h (__promoted_t): New alias template.
2243 * testsuite/26_numerics/lerp.cc: Moved to...
2244 * testsuite/26_numerics/lerp/1.cc: ...here.
2245 * testsuite/26_numerics/lerp/constexpr.cc: New test.
2246 * testsuite/26_numerics/lerp/version.cc: New test.
2247
2248 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
2249
2250 * testsuite/26_numerics/lerp.cc: Add header name to #error.
2251 * testsuite/26_numerics/midpoint/integral.cc: Likewise.
2252 * testsuite/26_numerics/midpoint/version.cc: New test.
2253
2254 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
2255
2256 * include/experimental/random (experimental::randint): Add
2257 nodiscard attribute.
2258
2259 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
2260
2261 * src/c++98/locale_init.cc: Require C++11.
2262 * src/c++98/localename.cc: Likewise.
2263 * src/c++98/misc-inst.cc: Require C++98.
2264
2265 2021-08-11 Jonathan Wakely <jwakely@redhat.com>
2266
2267 PR libstdc++/101866
2268 * testsuite/experimental/random/randint.cc: Loop and retry if
2269 reseed() produces the same sequence.
2270
2271 2021-08-11 Jonathan Wakely <jwakely@redhat.com>
2272
2273 * include/std/type_traits (__cpp_lib_is_pointer_interconvertible)
2274 (is_pointer_interconvertible_base_of_v)
2275 (is_pointer_interconvertible_base_of): Define for C++20.
2276 * include/std/version (__cpp_lib_is_pointer_interconvertible):
2277 Define.
2278 * testsuite/23_containers/span/layout_compat.cc: Use correct
2279 feature test macro for std::is_layout_compatible_v.
2280 * testsuite/20_util/is_pointer_interconvertible/value.cc: New test.
2281 * testsuite/20_util/is_pointer_interconvertible/version.cc: New test.
2282
2283 2021-08-09 Jonathan Wakely <jwakely@redhat.com>
2284
2285 * include/bits/regex.h (basic_regex::transform_primary): Use
2286 _GLIBCXX_STD_C::vector for local variable.
2287 * include/bits/regex.tcc (__regex_algo_impl): Use reference to
2288 _GLIBCXX_STD_C::vector base class of match_results.
2289 * include/bits/regex_automaton.tcc (_StateSeq:_M_clone): Use
2290 _GLIBCXX_STD_C::map and _GLIBCXX_STD_C::deque for local
2291 variables.
2292 * include/bits/regex_compiler.h (_BracketMatcher): Use
2293 _GLIBCXX_STD_C::vector for data members.
2294 * include/bits/regex_executor.h (_Executor): Likewise.
2295 * include/std/regex [_GLIBCXX_DEBUG]: Include <debug/vector>.
2296
2297 2021-08-09 François Dumont <fdumont@gcc.gnu.org>
2298
2299 * include/debug/safe_container.h
2300 (_Safe_container(_Safe_container&&, const _Alloc&, std::true_type)): New.
2301 (_Safe_container(_Safe_container&&, const _Alloc&, std::false_type)): New.
2302 (_Safe_container(_Safe_container&&, const _Alloc&)): Use latters.
2303
2304 2021-08-09 Jonathan Wakely <jwakely@redhat.com>
2305
2306 * testsuite/23_containers/unordered_map/cons/default.cc: Add
2307 equality comparison operators to allocator.
2308 * testsuite/23_containers/unordered_set/cons/default.cc:
2309 Likewise.
2310
2311 2021-08-08 François Dumont <fdumont@gcc.gnu.org>
2312
2313 * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Replace 'failed_assertion'
2314 dg-prune-output reason with 'builtin_unreachable'.
2315 * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc: Likewise.
2316 * testsuite/25_algorithms/equal/debug/constexpr_neg.cc: Likewise.
2317 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc: Likewise.
2318 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
2319 * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc: Likewise.
2320 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc: Likewise.
2321 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
2322 * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc: Likewise.
2323
2324 2021-08-08 Hans-Peter Nilsson <hp@bitrange.com>
2325
2326 * testsuite/std/ranges/iota/max_size_type.cc: Set
2327 dg-timeout-factor to 4.
2328
2329 2021-08-06 Jonathan Wakely <jwakely@redhat.com>
2330
2331 * libsupc++/compare (compare_three_way, strong_order)
2332 (weak_order, partial_order, compare_strong_order_fallback)
2333 (compare_weak_order_fallback, compare_partial_order_fallback):
2334 Move nodiscard attributes to correct location.
2335
2336 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
2337
2338 PR libstdc++/101782
2339 * include/bits/ranges_base.h (ranges::begin, ranges::end)
2340 (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
2341 (ranges::empty, ranges::data): Move attribute after the
2342 declarator-id instead of at the end of the declarator.
2343 * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator):
2344 Move attributes back to the start of the function declarator,
2345 but move the requires-clause to the end.
2346 (common_iterator): Move attribute after the declarator-id.
2347 * include/bits/stl_queue.h (queue): Remove ill-formed attributes
2348 from friend declaration that are not definitions.
2349 * include/std/ranges (views::all, views::filter)
2350 (views::transform, views::take, views::take_while,
2351 views::drop) (views::drop_while, views::join,
2352 views::lazy_split) (views::split, views::counted,
2353 views::common, views::reverse) (views::elements): Move
2354 attributes after the declarator-id.
2355
2356 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
2357
2358 * libsupc++/compare (partial_ordering, weak_ordering)
2359 (strong_ordering, is_eq, is_neq, is_lt, is_lteq, is_gt, is_gteq)
2360 (compare_three_way, strong_order, weak_order, partial_order)
2361 (compare_strong_order_fallback, compare_weak_order_fallback)
2362 (compare_partial_order_fallback, __detail::__synth3way): Add
2363 nodiscard attribute.
2364 * testsuite/18_support/comparisons/categories/zero_neg.cc: Add
2365 -Wno-unused-result to options.
2366
2367 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
2368
2369 PR libstdc++/101782
2370 * include/bits/ranges_base.h (ranges::begin, ranges::end)
2371 (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
2372 (ranges::empty, ranges::data): Move attribute to the end of
2373 the declarator.
2374 * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator)
2375 (common_iterator): Likewise for non-member operator functions.
2376 * include/std/ranges (views::all, views::filter)
2377 (views::transform, views::take, views::take_while, views::drop)
2378 (views::drop_while, views::join, views::lazy_split)
2379 (views::split, views::counted, views::common, views::reverse)
2380 (views::elements): Likewise.
2381 * testsuite/std/ranges/access/101782.cc: New test.
2382
2383 2021-08-04 Jonathan Wakely <jwakely@redhat.com>
2384
2385 * include/bits/forward_list.h: Add [[nodiscard]] to functions
2386 with no side-effects.
2387 * include/bits/stl_bvector.h: Likewise.
2388 * include/bits/stl_deque.h: Likewise.
2389 * include/bits/stl_list.h: Likewise.
2390 * include/bits/stl_queue.h: Likewise.
2391 * include/bits/stl_stack.h: Likewise.
2392 * include/bits/stl_vector.h: Likewise.
2393 * include/debug/deque: Likewise.
2394 * include/debug/forward_list: Likewise.
2395 * include/debug/list: Likewise.
2396 * include/debug/safe_iterator.h: Likewise.
2397 * include/debug/vector: Likewise.
2398 * include/std/array: Likewise.
2399 * testsuite/23_containers/array/creation/3_neg.cc: Use
2400 -Wno-unused-result.
2401 * testsuite/23_containers/array/debug/back1_neg.cc: Cast result
2402 to void.
2403 * testsuite/23_containers/array/debug/back2_neg.cc: Likewise.
2404 * testsuite/23_containers/array/debug/front1_neg.cc: Likewise.
2405 * testsuite/23_containers/array/debug/front2_neg.cc: Likewise.
2406 * testsuite/23_containers/array/debug/square_brackets_operator1_neg.cc:
2407 Likewise.
2408 * testsuite/23_containers/array/debug/square_brackets_operator2_neg.cc:
2409 Likewise.
2410 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
2411 Adjust dg-error line numbers.
2412 * testsuite/23_containers/deque/cons/clear_allocator.cc: Cast
2413 result to void.
2414 * testsuite/23_containers/deque/debug/invalidation/4.cc:
2415 Likewise.
2416 * testsuite/23_containers/deque/types/1.cc: Use
2417 -Wno-unused-result.
2418 * testsuite/23_containers/list/types/1.cc: Cast result to void.
2419 * testsuite/23_containers/priority_queue/members/7161.cc:
2420 Likewise.
2421 * testsuite/23_containers/queue/members/7157.cc: Likewise.
2422 * testsuite/23_containers/vector/59829.cc: Likewise.
2423 * testsuite/23_containers/vector/ext_pointer/types/1.cc:
2424 Likewise.
2425 * testsuite/23_containers/vector/ext_pointer/types/2.cc:
2426 Likewise.
2427 * testsuite/23_containers/vector/types/1.cc: Use
2428 -Wno-unused-result.
2429
2430 2021-08-04 Jonathan Wakely <jwakely@redhat.com>
2431
2432 * include/bits/iterator_concepts.h (iter_move): Add
2433 [[nodiscard]].
2434 * include/bits/range_access.h (begin, end, cbegin, cend)
2435 (rbegin, rend, crbegin, crend, size, data, ssize): Likewise.
2436 * include/bits/ranges_base.h (ranges::begin, ranges::end)
2437 (ranges::cbegin, ranges::cend, ranges::rbegin, ranges::rend)
2438 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
2439 (ranges::empty, ranges::data, ranges::cdata): Likewise.
2440 * include/bits/stl_iterator.h (reverse_iterator, __normal_iterator)
2441 (back_insert_iterator, front_insert_iterator, insert_iterator)
2442 (move_iterator, move_sentinel, common_iterator)
2443 (counted_iterator): Likewise.
2444 * include/bits/stl_iterator_base_funcs.h (distance, next, prev):
2445 Likewise.
2446 * include/bits/stream_iterator.h (istream_iterator)
2447 (ostream_iterartor): Likewise.
2448 * include/bits/streambuf_iterator.h (istreambuf_iterator)
2449 (ostreambuf_iterator): Likewise.
2450 * include/std/ranges (views::single, views::iota, views::all)
2451 (views::filter, views::transform, views::take, views::take_while)
2452 (views::drop, views::drop_while, views::join, views::lazy_split)
2453 (views::split, views::counted, views::common, views::reverse)
2454 (views::elements): Likewise.
2455 * testsuite/20_util/rel_ops.cc: Use -Wno-unused-result.
2456 * testsuite/24_iterators/move_iterator/greedy_ops.cc: Likewise.
2457 * testsuite/24_iterators/normal_iterator/greedy_ops.cc:
2458 Likewise.
2459 * testsuite/24_iterators/reverse_iterator/2.cc: Likewise.
2460 * testsuite/24_iterators/reverse_iterator/greedy_ops.cc:
2461 Likewise.
2462 * testsuite/21_strings/basic_string/range_access/char/1.cc:
2463 Cast result to void.
2464 * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
2465 Likewise.
2466 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
2467 Likewise.
2468 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
2469 Likewise.
2470 * testsuite/23_containers/array/range_access.cc: Likewise.
2471 * testsuite/23_containers/deque/range_access.cc: Likewise.
2472 * testsuite/23_containers/forward_list/range_access.cc:
2473 Likewise.
2474 * testsuite/23_containers/list/range_access.cc: Likewise.
2475 * testsuite/23_containers/map/range_access.cc: Likewise.
2476 * testsuite/23_containers/multimap/range_access.cc: Likewise.
2477 * testsuite/23_containers/multiset/range_access.cc: Likewise.
2478 * testsuite/23_containers/set/range_access.cc: Likewise.
2479 * testsuite/23_containers/unordered_map/range_access.cc:
2480 Likewise.
2481 * testsuite/23_containers/unordered_multimap/range_access.cc:
2482 Likewise.
2483 * testsuite/23_containers/unordered_multiset/range_access.cc:
2484 Likewise.
2485 * testsuite/23_containers/unordered_set/range_access.cc:
2486 Likewise.
2487 * testsuite/23_containers/vector/range_access.cc: Likewise.
2488 * testsuite/24_iterators/customization_points/iter_move.cc:
2489 Likewise.
2490 * testsuite/24_iterators/istream_iterator/sentinel.cc:
2491 Likewise.
2492 * testsuite/24_iterators/istreambuf_iterator/sentinel.cc:
2493 Likewise.
2494 * testsuite/24_iterators/move_iterator/dr2061.cc: Likewise.
2495 * testsuite/24_iterators/operations/prev_neg.cc: Likewise.
2496 * testsuite/24_iterators/ostreambuf_iterator/2.cc: Likewise.
2497 * testsuite/24_iterators/range_access/range_access.cc:
2498 Likewise.
2499 * testsuite/24_iterators/range_operations/100768.cc: Likewise.
2500 * testsuite/26_numerics/valarray/range_access2.cc: Likewise.
2501 * testsuite/28_regex/range_access.cc: Likewise.
2502 * testsuite/experimental/string_view/range_access/char/1.cc:
2503 Likewise.
2504 * testsuite/experimental/string_view/range_access/wchar_t/1.cc:
2505 Likewise.
2506 * testsuite/ext/vstring/range_access.cc: Likewise.
2507 * testsuite/std/ranges/adaptors/take.cc: Likewise.
2508 * testsuite/std/ranges/p2259.cc: Likewise.
2509
2510 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2511
2512 * include/bits/random.tcc (linear_congruential_engine): Do not
2513 define static constexpr members when they are implicitly inline.
2514 * include/std/ratio (ratio, __ratio_multiply, __ratio_divide)
2515 (__ratio_add, __ratio_subtract): Likewise.
2516 * include/std/type_traits (integral_constant): Likewise.
2517 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2518 line number.
2519
2520 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2521
2522 * testsuite/util/testsuite_common_types.h: Replace uses of
2523 tr1::unordered_map and tr1::unordered_set with their C++11
2524 equivalents.
2525 * testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust
2526 dg-error line number.
2527 * testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
2528 * testsuite/29_atomics/atomic_integral/cons/assign_neg.cc:
2529 Likewise.
2530 * testsuite/29_atomics/atomic_integral/cons/copy_neg.cc:
2531 Likewise.
2532 * testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc:
2533 Likewise.
2534 * testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc:
2535 Likewise.
2536 * testsuite/29_atomics/atomic_integral/operators/increment_neg.cc:
2537 Likewise.
2538
2539 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2540
2541 * include/std/memory_resource (polymorphic_allocator::delete_object):
2542 Call destructor directly instead of using destroy.
2543 (allocator_traits<polymorphic_allocator<T>>): Define partial
2544 specialization.
2545
2546 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2547
2548 * testsuite/20_util/function_objects/binders/3113.cc: Remove
2549 trailing whitespace.
2550 * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
2551 * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
2552 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
2553 Likewise.
2554 * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
2555 * testsuite/25_algorithms/headers/algorithm/synopsis.cc:
2556 Likewise.
2557 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
2558 Likewise.
2559 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
2560 Likewise.
2561
2562 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2563
2564 * doc/xml/manual/evolution.xml: Document deprecation.
2565 * doc/html/*: Regenerate.
2566 * include/bits/c++config (_GLIBCXX14_DEPRECATED): Define.
2567 (_GLIBCXX14_DEPRECATED_SUGGEST): Define.
2568 * include/bits/stl_algo.h (random_shuffle): Deprecate for C++14
2569 and later.
2570 * testsuite/25_algorithms/headers/algorithm/synopsis.cc: Adjust
2571 for C++11 and C++14 changes to std::random_shuffle and
2572 std::shuffle.
2573 * testsuite/25_algorithms/random_shuffle/1.cc: Add options to
2574 use deprecated algorithms.
2575 * testsuite/25_algorithms/random_shuffle/59603.cc: Likewise.
2576 * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise.
2577 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
2578 Likewise.
2579 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
2580 Likewise.
2581
2582 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2583
2584 * testsuite/23_containers/forward_list/operations/3.cc:
2585 Use lambda instead of std::bind2nd.
2586 * testsuite/20_util/function_objects/binders/3113.cc: Add
2587 options for testing deprecated features.
2588 * testsuite/20_util/pair/cons/99957.cc: Likewise.
2589 * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
2590 * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
2591 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
2592 Likewise.
2593 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
2594 * testsuite/20_util/shared_ptr/cons/auto_ptr.cc: Likewise.
2595 * testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc: Likewise.
2596 * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
2597 * testsuite/20_util/unique_ptr/cons/auto_ptr.cc: Likewise.
2598 * testsuite/20_util/unique_ptr/cons/auto_ptr_neg.cc: Likewise.
2599 * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
2600 Likewise.
2601 * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
2602 Likewise.
2603 * testsuite/lib/dg-options.exp (dg_add_options_using-deprecated):
2604 New proc.
2605
2606 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2607
2608 * include/bits/regex_executor.h (_State_info): Replace
2609 unique_ptr<bool[]> with array of bool.
2610 * include/bits/regex_executor.tcc: Likewise.
2611 * include/bits/regex_scanner.tcc: Replace std::strchr with
2612 __builtin_strchr.
2613 * include/std/regex: Replace standard headers with smaller
2614 internal ones.
2615 * testsuite/28_regex/traits/char/lookup_classname.cc: Include
2616 <string.h> for strlen.
2617 * testsuite/28_regex/traits/char/lookup_collatename.cc:
2618 Likewise.
2619
2620 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2621
2622 * include/bits/locale_conv.h (__detail::_Scoped_ptr): Define new
2623 RAII class template.
2624 (wstring_convert, wbuffer_convert): Use __detail::_Scoped_ptr
2625 instead of unique_ptr.
2626
2627 2021-08-02 Patrick Palka <ppalka@redhat.com>
2628
2629 PR libstdc++/101599
2630 * include/bits/ranges_algo.h (__reverse_copy_fn::operator()):
2631 Add missing std::move in return statement.
2632 (__partition_copy_fn::operator()): Rename templtae parameter
2633 _O2 to _Out2. Uglify function parameters out_true and out_false.
2634 * include/bits/ranges_algobase.h (__copy_or_move): Add missing
2635 std::move to recursive call that unwraps a __normal_iterator
2636 output iterator.
2637 * testsuite/25_algorithms/copy/constrained.cc (test06): New test.
2638 * testsuite/25_algorithms/move/constrained.cc (test05): New test.
2639
2640 2021-08-02 Patrick Palka <ppalka@redhat.com>
2641
2642 PR libstdc++/101589
2643 * include/std/ranges (lazy_split_view::_InnerIter::base): Make
2644 the const& overload unconstrained and return a const reference
2645 as per LWG 3533. Make unconditionally noexcept.
2646 (elements_view::base): Revert accidental r12-569 change.
2647 (elements_view::_Iterator::base): Make the const& overload
2648 unconstrained and return a const reference as per LWG 3533.
2649 Make unconditionally noexcept.
2650
2651 2021-08-02 Patrick Palka <ppalka@redhat.com>
2652
2653 PR libstdc++/101483
2654 * include/std/ranges (join_view::_Iterator::_Iterator): Add
2655 missing std::move.
2656
2657 2021-08-02 Jonathan Wakely <jwakely@redhat.com>
2658
2659 PR libstdc++/101709
2660 * src/filesystem/ops-common.h (get_temp_directory_from_env):
2661 Add error_code parameter.
2662 * src/c++17/fs_ops.cc (fs::temp_directory_path): Pass error_code
2663 argument to get_temp_directory_from_env and check it.
2664 * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
2665
2666 2021-08-02 Jonathan Wakely <jwakely@redhat.com>
2667
2668 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
2669 Add dg-error for c++11_only target.
2670
2671 2021-07-30 Jonathan Wakely <jwakely@redhat.com>
2672
2673 PR libstdc++/65018
2674 * configure.ac: Check for secure_getenv.
2675 * config.h.in: Regenerate.
2676 * configure: Regenerate.
2677 * src/filesystem/ops-common.h (get_temp_directory_from_env): New
2678 helper function to obtain path from the environment.
2679 * src/c++17/fs_ops.cc (fs::temp_directory_path): Use new helper.
2680 * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
2681 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
2682 Print messages if test cannot be run.
2683 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
2684 Likewise. Fix incorrect condition. Use "TMP" to work with
2685 Windows as well as POSIX.
2686
2687 2021-07-29 Hans-Peter Nilsson <hp@bitrange.com>
2688
2689 * src/c++17/memory_resource.cc: Use __exchange instead
2690 of std::exchange.
2691
2692 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
2693
2694 * include/experimental/optional (__throw_bad_optional_access):
2695 Replace GNU attribute with C++11 attribute.
2696 (optional::value, optional::value_or): Use if statements
2697 instead of conditional expressions.
2698 * include/std/optional (__throw_bad_optional_access)
2699 (optional::value, optional::value_or): Likewise.
2700
2701 2021-07-27 Marek Polacek <polacek@redhat.com>
2702
2703 DR 1512
2704 PR c++/99701
2705 * testsuite/20_util/tuple/comparison_operators/overloaded.cc:
2706 Move a line...
2707 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
2708 ...here. New test.
2709
2710 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
2711
2712 * include/bits/cow_string.h: Consistently use tab for
2713 indentation.
2714
2715 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
2716
2717 * include/Makefile.am: Add new header.
2718 * include/Makefile.in: Regenerate.
2719 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
2720 (basic_string): Move definition of Copy-on-Write string to
2721 new file.
2722 * include/bits/basic_string.tcc: Likewise.
2723 * include/bits/cow_string.h: New file.
2724
2725 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
2726
2727 * include/std/algorithm: Do not include <utility>.
2728 * include/std/functional: Likewise.
2729 * include/std/regex: Include <bits/stl_pair.h> instead of
2730 <utility>.
2731 * include/debug/map.h: Likewise.
2732 * include/debug/multimap.h: Likewise.
2733 * include/debug/multiset.h: Likewise.
2734 * include/debug/set.h: Likewise.
2735 * include/debug/vector: Likewise.
2736 * include/bits/fs_path.h: Likewise.
2737 * include/bits/unique_ptr.h: Do not include <utility>.
2738 * include/experimental/any: Likewise.
2739 * include/experimental/executor: Likewise.
2740 * include/experimental/memory: Likewise.
2741 * include/experimental/optional: Likewise.
2742 * include/experimental/socket: Use __exchange instead
2743 of std::exchange.
2744 * src/filesystem/ops-common.h: Likewise.
2745 * testsuite/20_util/default_delete/48631_neg.cc: Adjust expected
2746 errors to not use a hardcoded line number.
2747 * testsuite/20_util/default_delete/void_neg.cc: Likewise.
2748 * testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc:
2749 Include <utility> for std::as_const.
2750 * testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constrained.cc:
2751 Likewise.
2752 * testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc:
2753 Likewise.
2754 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constrained.cc:
2755 Likewise.
2756 * testsuite/23_containers/vector/cons/destructible_debug_neg.cc:
2757 Adjust dg-error line number.
2758
2759 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
2760
2761 * include/Makefile.am: Add bits/utility.h header.
2762 * include/Makefile.in: Regenerate.
2763 * include/bits/utility.h: New file.
2764 * include/std/utility (tuple_size, tuple_element): Move
2765 to new header.
2766 * include/std/type_traits (__is_tuple_like_impl<tuple<T...>>):
2767 Move to <tuple>.
2768 (_Index_tuple, _Build_index_tuple, integer_sequence): Likewise.
2769 (in_place_t, in_place_index_t, in_place_type_t): Likewise.
2770 * include/bits/ranges_util.h: Include new header instead of
2771 <utility>.
2772 * include/bits/stl_pair.h (tuple_size, tuple_element): Move
2773 partial specializations for std::pair here.
2774 (get): Move overloads for std::pair here.
2775 * include/std/any: Include new header instead of <utility>.
2776 * include/std/array: Likewise.
2777 * include/std/memory_resource: Likewise.
2778 * include/std/optional: Likewise.
2779 * include/std/variant: Likewise.
2780 * include/std/tuple: Likewise.
2781 (__is_tuple_like_impl<tuple<T...>>): Move here.
2782 (get) Declare overloads for std::array.
2783 * include/std/version (__cpp_lib_tuples_by_type): Change type
2784 to long.
2785 * testsuite/20_util/optional/84601.cc: Include <utility>.
2786 * testsuite/20_util/specialized_algorithms/uninitialized_fill/constrained.cc:
2787 Likewise.
2788 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
2789 Adjust dg-error line numbers.
2790 * testsuite/std/ranges/access/cbegin.cc: Include <utility>.
2791 * testsuite/std/ranges/access/cend.cc: Likewise.
2792 * testsuite/std/ranges/access/end.cc: Likewise.
2793 * testsuite/std/ranges/single_view.cc: Likewise.
2794
2795 2021-07-23 Jonathan Wakely <jwakely@redhat.com>
2796
2797 * include/std/future: Include <bits/atomic_base.h> instead of
2798 <atomic>.
2799
2800 2021-07-23 Jonathan Wakely <jwakely@redhat.com>
2801
2802 * include/bits/stl_relops.h: Update documentation comments.
2803
2804 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
2805
2806 PR libstdc++/101583
2807 * include/bits/hashtable.h (_Hashtable): Replace mixin with
2808 _Enable_default_ctor. Construct it explicitly in all
2809 non-forwarding, non-defaulted constructors.
2810 * testsuite/23_containers/unordered_map/cons/default.cc: Check
2811 non-default constructors can be used.
2812 * testsuite/23_containers/unordered_set/cons/default.cc:
2813 Likewise.
2814
2815 2021-07-22 David Edelsohn <dje.gcc@gmail.com>
2816
2817 * config/os/aix/os_defines.h (__LIBC_NO_CPP_MATH_OVERLOADS__): Define.
2818
2819 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
2820
2821 PR libstdc++/94295
2822 * include/ext/new_allocator.h (_GLIBCXX_OPERATOR_NEW)
2823 (_GLIBCXX_OPERATOR_DELETE, _GLIBCXX_SIZED_DEALLOC): Define.
2824 (allocator::allocate, allocator::deallocate): Use new macros.
2825
2826 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
2827
2828 PR libstdc++/101571
2829 * include/bits/ranges_uninitialized.h (_DestroyGuard): Change
2830 constructor parameter to reference and use addressof.
2831 * testsuite/util/testsuite_iterators.h: Define deleted operator&
2832 overloads for test iterators.
2833
2834 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
2835
2836 * include/bits/std_function.h (_Function_base): Add
2837 default member initializers and define constructor as defaulted.
2838 (function::_M_invoker): Add default member initializer.
2839
2840 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
2841
2842 PR libstdc++/100682
2843 * doc/xml/manual/debug_mode.xml: Update documentation about
2844 debug capability of std::array.
2845 * doc/html/*: Regenerate.
2846 * include/debug/array: New file.
2847
2848 2021-07-21 Jonathan Wakely <jwakely@redhat.com>
2849
2850 PR libstdc++/101542
2851 * include/ext/rope (sequence_buffer): Add move constructor and
2852 move assignment operator.
2853 * testsuite/ext/rope/101542.cc: New test.
2854
2855 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
2856
2857 PR libstdc++/101510
2858 * src/c++17/fs_ops.cc (fs::create_directories): Use status
2859 instead of symlink_status.
2860 * src/filesystem/ops.cc (fs::create_directories): Likewise.
2861 * testsuite/27_io/filesystem/operations/create_directories.cc:
2862 Check symlink to existing directory.
2863 * testsuite/27_io/filesystem/operations/create_directory.cc: Do
2864 not test with symlinks on Windows.
2865 * testsuite/experimental/filesystem/operations/create_directories.cc:
2866 Check symlink to existing directory.
2867 * testsuite/experimental/filesystem/operations/create_directory.cc:
2868 Do not test with symlinks on Windows.
2869
2870 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
2871
2872 PR libstdc++/100863
2873 * include/bits/hashtable.h (_Hashtable): Conditionally delete
2874 default constructor by deriving from _Enable_special_members.
2875 * testsuite/23_containers/unordered_map/cons/default.cc: New test.
2876 * testsuite/23_containers/unordered_set/cons/default.cc: New test.
2877
2878 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
2879
2880 PR libstdc++/101510
2881 * src/c++17/fs_ops.cc (create_dir): Adjust whitespace.
2882 * testsuite/27_io/filesystem/operations/create_directory.cc:
2883 Test creating directory with name of existing symlink to
2884 directory.
2885 * testsuite/experimental/filesystem/operations/create_directory.cc:
2886 Likewise.
2887
2888 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2889
2890 * include/std/tuple (get<I>): Add deleted overload for bad
2891 index.
2892 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
2893 expected errors.
2894
2895 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2896
2897 * include/bits/max_size_type.h (numeric_limits<__max_size_type>):
2898 Use __int_traits unconditionally.
2899
2900 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2901
2902 * include/bits/random.h (_Shift::__value): Use constexpr.
2903 (_Select_uint_least_t::type): Use using-declaration.
2904 (_Mod): Likewise.
2905 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2906 line number.
2907
2908 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2909
2910 * include/bits/cpp_type_traits.h (__INT_N): Use __extension__
2911 instead of diagnostic pragmas.
2912 * include/bits/functional_hash.h: Likewise.
2913 * include/bits/iterator_concepts.h (__is_signed_int128)
2914 (__is_unsigned_int128): Likewise.
2915 * include/bits/max_size_type.h (__max_size_type): Likewise.
2916 (numeric_limits<__max_size_type>): Likewise.
2917 * include/bits/std_abs.h (abs): Likewise.
2918 * include/bits/stl_algobase.h (__size_to_integer): Likewise.
2919 * include/bits/uniform_int_dist.h (uniform_int_distribution):
2920 Likewise.
2921 * include/ext/numeric_traits.h (_GLIBCXX_INT_N_TRAITS):
2922 Likewise.
2923 * include/std/type_traits (__is_integral_helper<INT_N>)
2924 (__is_signed_integer, __is_unsigned_integer)
2925 (__make_unsigned<INT_N>, __make_signed<INT_N>): Likewise.
2926 * include/std/limits (__INT_N): Add __extension__ keyword.
2927 * include/bits/random.h (_Select_uint_least_t)
2928 (random_device): Likewise.
2929
2930 2021-07-16 Patrick Palka <ppalka@redhat.com>
2931
2932 PR libstdc++/101231
2933 * include/std/ranges (_CachedPosition::_M_get): For non-forward
2934 ranges, just call __builtin_unreachable.
2935 * testsuite/std/ranges/istream_view.cc (test05): New test.
2936
2937 2021-07-16 Patrick Palka <ppalka@redhat.com>
2938
2939 PR libstdc++/101214
2940 * include/std/ranges (split_view::split_view): Use std::move.
2941 (split_view::_Iterator::_Iterator): Remove redundant
2942 default_initializable constraint.
2943 (split_view::_Sentinel::_Sentinel): Declare.
2944 * testsuite/std/ranges/adaptors/split.cc (test02): New test.
2945
2946 2021-07-16 Marek Polacek <polacek@redhat.com>
2947
2948 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Add
2949 dg-error.
2950
2951 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2952
2953 * include/bits/unique_ptr.h: Adjust doxygen markup.
2954
2955 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2956
2957 PR libstdc++/101307
2958 * include/std/type_traits: Adjust doxygen markup.
2959
2960 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2961
2962 * include/bits/cpp_type_traits.h: Add diagnostic pragmas around
2963 uses of non-standard integer types.
2964 * include/bits/functional_hash.h: Likewise.
2965 * include/bits/iterator_concepts.h: Likewise.
2966 * include/bits/max_size_type.h: Likewise.
2967 * include/bits/std_abs.h: Likewise.
2968 * include/bits/stl_algobase.h: Likewise.
2969 * include/bits/uniform_int_dist.h: Likewise.
2970 * include/ext/numeric_traits.h: Likewise.
2971 * include/std/type_traits: Likewise.
2972
2973 2021-07-15 Jonathan Wakely <jwakely@redhat.com>
2974
2975 PR libstdc++/101427
2976 * include/std/tuple (tuple_element): Improve static_assert text.
2977 (__get_helper): Add deleted overload.
2978 (get<i>(tuple<T...>&&), get<i>(const tuple<T...>&&)): Use
2979 __get_helper directly.
2980 (__get_helper2): Remove.
2981 (__find_uniq_type_in_pack): New constexpr helper function.
2982 (get<T>): Use __find_uniq_type_in_pack and __get_helper instead
2983 of __get_helper2.
2984 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
2985 expected errors.
2986 * testsuite/20_util/tuple/element_access/101427.cc: New test.
2987
2988 2021-07-15 Jonathan Wakely <jwakely@redhat.com>
2989
2990 PR libstdc++/101429
2991 * include/bits/c++config (__replacement_assert): Add noexcept.
2992 [!_GLIBCXX_VERBOSE] (__glibcxx_assert_impl): Use __builtin_abort
2993 instead of __replacement_assert.
2994
2995 2021-07-14 Jonathan Wakely <jwakely@redhat.com>
2996
2997 * include/std/string_view (basic_string_view(It, End)): Add
2998 noexcept-specifier.
2999 * testsuite/21_strings/basic_string_view/cons/char/range.cc:
3000 Check noexcept-specifier. Also check construction without CTAD.
3001
3002 2021-07-13 Jonathan Wakely <jwakely@redhat.com>
3003
3004 PR c++/101361
3005 * include/std/string_view (ends_with): Use traits_type::compare
3006 directly.
3007
3008 2021-07-13 Jonathan Wakely <jwakely@redhat.com>
3009
3010 * include/std/string_view: Only include <bits/ranges_base.h>
3011 once, and only for C++20 and later.
3012
3013 2021-07-12 Jonathan Wakely <jwakely@redhat.com>
3014
3015 PR libstdc++/101411
3016 * include/std/span (as_writable_bytes): Add requires-clause.
3017 * testsuite/23_containers/span/101411.cc: New test.
3018
3019 2021-07-09 Matheus Castanho <msc@linux.ibm.com>
3020
3021 * include/std/mutex (__lock_impl): Check
3022 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
3023
3024 2021-07-02 Jonathan Wakely <jwakely@redhat.com>
3025
3026 PR libstdc++/101271
3027 * include/bits/unique_ptr.h (unique_ptr<T[],D>::operator[]):
3028 Remove noexcept-specifier.
3029 (unique_ptr<T[],D>::_S_nothrow_deref): Remove.
3030 * testsuite/20_util/unique_ptr/lwg2762.cc: Remove checks for
3031 operator[].
3032
3033 2021-07-01 Jonathan Wakely <jwakely@redhat.com>
3034
3035 * doc/doxygen/doxygroups.cc: Fix docs for std::literals.
3036 * doc/doxygen/user.cfg.in: Exclude the Networking TS header.
3037 Add some more predefined macros.
3038 * include/bits/fs_fwd.h: Move @addtogroup commands inside
3039 namespaces. Add better documentation.
3040 * include/bits/fs_path.h: Likewise.
3041 * include/experimental/bits/fs_fwd.h: Likewise.
3042 * include/experimental/bits/fs_path.h: Likewise.
3043 * include/ext/throw_allocator.h: Fix typo and improve docs.
3044 * include/std/chrono: Move @addtogroup commands.
3045 * include/std/system_error: Move @addtogroup commands.
3046 * libsupc++/exception: Improve documentation.
3047 * libsupc++/exception.h: Add @since documentation.
3048
3049 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
3050
3051 PR libstdc++/101258
3052 * doc/doxygen/user.cfg.in (INPUT): Add <experimental/simd>.
3053 (COLS_IN_ALPHA_INDEX): Remove obsolete tag.
3054 (PREDEFINED): Add/fix some more macros that need to be expanded.
3055 * include/bits/random.h: Stop Doxygen from documenting internal
3056 implementation details.
3057 * include/bits/random.tcc: Likewise.
3058 * include/bits/this_thread_sleep.h: Fix @file name.
3059 * include/experimental/bits/simd.h: Add to Doxygen group. Do not
3060 document internal implementation details.
3061 * include/experimental/bits/simd_detail.h: Do not document
3062 internal implementation details.
3063 * include/experimental/simd: Define Doxygen groups.
3064 * include/experimental/type_traits: Improve documentation for
3065 the header file. Define groups. Use @since commands.
3066 * include/std/scoped_allocator (scoped_allocator_adaptor): Move
3067 declaration before undocumented region.
3068 * include/std/type_traits (true_type, false_type): Use using
3069 declaration instead of typedef.
3070 (is_invocable_v, is_nothrow_invocable_v, is_invocable_r_v)
3071 (is_nothrow_invocable_r_v): Move definitions next to other C++17
3072 variable templates.
3073 Do not document internal implementation details. Move misplaced
3074 group-end command. Define group for variable templates.
3075 * include/std/variant: Do not document internal implementation
3076 details.
3077 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
3078 line number.
3079
3080 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
3081
3082 * include/experimental/simd: Do not define anything pre-C++17.
3083
3084 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
3085
3086 * include/bits/random.tcc [__cpp_inline_variables]: Remove
3087 redundant definitions of static constexpr member variables.
3088 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
3089 line number.
3090
3091 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
3092
3093 * include/bits/streambuf.tcc (__copy_streambufs_eof): Remove
3094 explicit instantiation declarations.
3095 * src/c++11/streambuf-inst.cc (__copy_streambufs_eof): Remove
3096 explicit instantiation definitions.
3097
3098 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
3099
3100 PR libstdc++/97088
3101 * testsuite/17_intro/names.cc: Fix #if condition for names used
3102 by newlib headers.
3103
3104 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
3105
3106 PR libstdc++/101236
3107 * include/bits/unique_ptr.h (unique_ptr<T[], D>::operator[]):
3108 Fail gracefully if element_type is incomplete.
3109 * testsuite/20_util/unique_ptr/cons/incomplete.cc: Clarify that
3110 the standard doesn't require this test to work for array types.
3111 * testsuite/20_util/unique_ptr/lwg2762.cc: Check that incomplete
3112 types can be used with array specialization.
3113 * testsuite/20_util/unique_ptr/101236.cc: New test.
3114
3115 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
3116
3117 * doc/xml/manual/intro.xml: Document LWG 415 change.
3118 * doc/html/manual/bugs.html: Regenerate.
3119 * include/bits/istream.tcc (ws): Create sentry and catch
3120 exceptions.
3121 * testsuite/27_io/basic_istream/ws/char/lwg415.cc: New test.
3122 * testsuite/27_io/basic_istream/ws/wchar_t/lwg415.cc: New test.
3123
3124 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
3125
3126 * include/bits/ostream.tcc (basic_ostream::write): Call sputn
3127 directly instead of using _M_write. Do setstate(__err) all
3128 outside the try-catch block.
3129 * include/std/ostream (basic_ostream::_M_write): Declare
3130 private. Use __ostream_insert. Do not define for the versioned
3131 namespace.
3132
3133 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
3134
3135 * doc/xml/manual/intro.xml: Document LWG 581 change.
3136 * doc/html/manual/bugs.html: Regenerate.
3137 * include/bits/basic_ios.tcc: Whitespace.
3138 * include/bits/ostream.tcc (basic_ostream::flush()): Construct
3139 sentry.
3140 * testsuite/27_io/basic_ostream/flush/char/2.cc: Check
3141 additional cases.
3142 * testsuite/27_io/basic_ostream/flush/char/exceptions_badbit_throw.cc:
3143 Likewise.
3144 * testsuite/27_io/basic_ostream/flush/wchar_t/2.cc: Likewise.
3145 * testsuite/27_io/basic_ostream/flush/wchar_t/exceptions_badbit_throw.cc:
3146 Likewise.
3147
3148 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
3149
3150 * include/bits/ostream.tcc (sentry): Only set failbit if badbit
3151 is set, not if eofbit is set.
3152 (tellp, seekp, seekp): Create sentry object. Do not set badbit
3153 on exceptions.
3154 * testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc:
3155 Adjust expected behaviour.
3156 * testsuite/27_io/basic_ostream/seekp/wchar_t/exceptions_badbit_throw.cc:
3157 Likewise.
3158 * testsuite/27_io/basic_ostream/tellp/char/exceptions_badbit_throw.cc:
3159 Likewise.
3160 * testsuite/27_io/basic_ostream/tellp/wchar_t/exceptions_badbit_throw.cc:
3161 Likewise.
3162 * testsuite/27_io/basic_ostream/seekp/char/n3168.cc: New test.
3163 * testsuite/27_io/basic_ostream/seekp/wchar_t/n3168.cc: New test.
3164 * testsuite/27_io/basic_ostream/tellp/char/n3168.cc: New test.
3165 * testsuite/27_io/basic_ostream/tellp/wchar_t/n3168.cc: New test.
3166
3167 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
3168
3169 * include/std/syncstream (basic_syncbuf::swap()): Remove
3170 noexcept, as per LWG 3498.
3171
3172 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
3173
3174 PR libstdc++/97088
3175 * testsuite/17_intro/names.cc: Undef more names for newlib and
3176 also for arm-none-linux-gnueabi.
3177 * testsuite/experimental/names.cc: Disable PCH.
3178
3179 2021-06-25 Matthias Kretz <m.kretz@gsi.de>
3180
3181 * include/experimental/bits/simd.h (__bit_cast): Implement via
3182 __builtin_bit_cast #if available.
3183 (__proposed::simd_bit_cast): Add overloads for simd and
3184 simd_mask, which use __builtin_bit_cast (or __bit_cast #if not
3185 available), which return an object of the requested type with
3186 the same bits as the argument.
3187 * include/experimental/bits/simd_math.h: Use simd_bit_cast
3188 instead of __bit_cast to allow casts to fixed_size_simd.
3189 (copysign): Remove branch that was only required if __bit_cast
3190 cannot be constexpr.
3191 * testsuite/experimental/simd/tests/bits/test_values.h: Switch
3192 from __bit_cast to __proposed::simd_bit_cast since the former
3193 will not cast fixed_size objects anymore.
3194
3195 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
3196
3197 * include/experimental/bits/simd_math.h
3198 (_GLIBCXX_SIMD_MATH_CALL2_): Rename arg2_ to __arg2.
3199 (_GLIBCXX_SIMD_MATH_CALL3_): Rename arg2_ to __arg2 and arg3_ to
3200 __arg3.
3201
3202 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
3203
3204 * include/experimental/bits/simd.h (__execute_on_index_sequence)
3205 (__execute_on_index_sequence_with_return)
3206 (__call_with_n_evaluations, __call_with_subscripts): Add flatten
3207 attribute.
3208
3209 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
3210
3211 * include/experimental/bits/simd_x86.h (_S_trunc, _S_floor)
3212 (_S_ceil): Set bit 8 (_MM_FROUND_NO_EXC) on AVX and SSE4.1
3213 roundp[sd] calls.
3214
3215 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
3216
3217 * include/experimental/bits/simd_x86.h (_S_ldexp): The AVX512F
3218 implementation doesn't require a _VecBltnBtmsk ABI tag, it
3219 requires either a 64-Byte input (in which case AVX512F must be
3220 available) or AVX512VL.
3221
3222 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
3223
3224 * include/experimental/bits/simd_math.h: Undefine internal
3225 macros after use.
3226 (frexp): Move #if to a more sensible position and reformat
3227 preceding code.
3228 (logb): Call _SimdImpl::_S_logb for fixed_size instead of
3229 duplicating the code here.
3230 (modf): Simplify condition.
3231
3232 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
3233
3234 * include/experimental/bits/simd_math.h (fabs): Remove
3235 fabs(simd<integral>) overload.
3236
3237 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
3238
3239 * include/experimental/bits/simd_converter.h
3240 (_SimdConverter::operator()): Pass _SimdTuple by const-ref.
3241 * include/experimental/bits/simd_fixed_size.h
3242 (_GLIBCXX_SIMD_FIXED_OP): Pass binary operator _SimdTuple
3243 arguments by const-ref.
3244 (_S_masked_unary): Pass _SimdTuple by const-ref.
3245
3246 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
3247
3248 * include/experimental/bits/simd_fixed_size.h
3249 (_AbisInSimdTuple): Removed.
3250
3251 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
3252
3253 * include/experimental/bits/simd.h: Add missing operator~
3254 overload for simd<floating-point> to __float_bitwise_operators.
3255 * include/experimental/bits/simd_builtin.h
3256 (_SimdImplBuiltin::_S_complement): Bitcast to int (and back) to
3257 implement complement for floating-point vectors.
3258 * include/experimental/bits/simd_fixed_size.h
3259 (_SimdImplFixedSize::_S_copysign): New function, forwarding to
3260 copysign implementation of _SimdTuple members.
3261 * include/experimental/bits/simd_math.h (copysign): Call
3262 _SimdImpl::_S_copysign for fixed_size arguments. Simplify
3263 generic copysign implementation using the new ~ operator.
3264
3265 2021-06-24 Jonathan Wakely <jwakely@redhat.com>
3266
3267 * testsuite/experimental/simd/README.md: Fix typos.
3268
3269 2021-06-24 Jonathan Wakely <jwakely@redhat.com>
3270
3271 * include/bits/shared_ptr_base.h (__shared_ptr_access::operator[]):
3272 Add noexcept.
3273 * include/bits/unique_ptr.h (unique_ptr::operator*): Add
3274 conditional noexcept as per LWG 2762.
3275 * testsuite/20_util/shared_ptr/observers/array.cc: Check that
3276 dereferencing cannot throw.
3277 * testsuite/20_util/shared_ptr/observers/get.cc: Likewise.
3278 * testsuite/20_util/optional/observers/lwg2762.cc: New test.
3279 * testsuite/20_util/unique_ptr/lwg2762.cc: New test.
3280
3281 2021-06-23 Patrick Palka <ppalka@redhat.com>
3282
3283 PR c++/101174
3284 * testsuite/23_containers/multiset/cons/deduction.cc:
3285 Uncomment CTAD example that was rejected by this bug.
3286 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
3287
3288 2021-06-23 Jonathan Wakely <jwakely@redhat.com>
3289
3290 * include/std/chrono (chrono::year::is_leap()): Fix incorrect
3291 logic in comment.
3292
3293 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
3294
3295 * testsuite/experimental/simd/README.md: New file.
3296
3297 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
3298
3299 * testsuite/experimental/simd/driver.sh: Rewrite output
3300 verbosity logic. Add -p/--percentage option. Allow -v/--verbose
3301 to be used twice. Add -x and -o short options. Parse long
3302 options with = instead of separating space generically. Parce
3303 contracted short options. Make unrecognized options an error.
3304 If same-line output is active, trap on EXIT to increment the
3305 progress (only with --percentage), erase the line and print the
3306 current status.
3307 * testsuite/experimental/simd/generate_makefile.sh: Initialize
3308 helper files for progress account keeping. Update help target
3309 for changes to DRIVEROPTS.
3310
3311 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
3312
3313 * testsuite/Makefile.am (check-simd): Remove -fno-tree-vrp flag
3314 and associated warning.
3315 * testsuite/Makefile.in: Regenerate.
3316
3317 2021-06-23 Cassio Neri <cassio.neri@gmail.com>
3318 Jonathan Wakely <jwakely@redhat.com>
3319 Ulrich Drepper <drepper@redhat.com>
3320
3321 * include/std/chrono (chrono::year::is_leap()): Optimize.
3322
3323 2021-06-23 Patrick Palka <ppalka@redhat.com>
3324
3325 PR c++/86439
3326 * testsuite/23_containers/map/cons/deduction.cc: Replace ambiguous
3327 CTAD examples.
3328 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
3329 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
3330 Mention one of the replaced examples is broken due to PR101174.
3331 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
3332 * testsuite/23_containers/unordered_map/cons/deduction.cc: Replace
3333 ambiguous CTAD examples.
3334 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
3335 Likewise.
3336 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
3337 Likewise.
3338 * testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise.
3339
3340 2021-06-23 Jonathan Wakely <jwakely@redhat.com>
3341
3342 * include/std/mutex (__detail::__try_lock_impl): Rename
3343 parameter to avoid clashing with newlib's __lockable macro.
3344 (try_lock): Add 'inline' specifier.
3345 * testsuite/17_intro/names.cc: Add check for __lockable.
3346 * testsuite/30_threads/try_lock/5.cc: Add options for pthreads.
3347
3348 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
3349 Matthias Kretz <m.kretz@gsi.de>
3350
3351 * include/std/mutex (lock): Replace recursion with iteration
3352 when lockables all have the same type.
3353 (__detail::__try_lock_impl): Likewise. Pass lockables as
3354 parameters, instead of a tuple. Always lock the first one, and
3355 recurse for the rest.
3356 (__detail::__lock_impl): Adjust call to __try_lock_impl.
3357 (__detail::__try_to_lock): Remove.
3358 * testsuite/30_threads/lock/3.cc: Check that mutexes are locked.
3359 * testsuite/30_threads/lock/4.cc: Also test non-heterogeneous
3360 arguments.
3361 * testsuite/30_threads/unique_lock/cons/60497.cc: Also check
3362 std::try_lock.
3363 * testsuite/30_threads/try_lock/5.cc: New test.
3364
3365 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
3366
3367 * include/std/memory (declare_reachable, undeclare_reachable)
3368 (declare_no_pointers, undeclare_no_pointers, get_pointer_safety)
3369 (pointer_safety): Only define for C++11 to C++20 inclusive.
3370 * testsuite/20_util/pointer_safety/1.cc: Do not run for C++23.
3371
3372 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
3373
3374 * include/bits/random.h (seed_seq): Constrain initializer-list
3375 constructor.
3376 * include/bits/random.tcc (seed_seq): Add template parameter.
3377 * testsuite/26_numerics/random/seed_seq/cons/default.cc: Check
3378 for noexcept.
3379 * testsuite/26_numerics/random/seed_seq/cons/initlist.cc: Check
3380 constraints.
3381
3382 2021-06-22 Thomas Rodgers <rodgert@appliantology.com>
3383
3384 PR libstdc++/100806
3385 * include/bits/semaphore_base.h (__atomic_semaphore::_M_release):
3386 Force _M_release() to wake all waiting threads.
3387 * testsuite/30_threads/semaphore/100806.cc: New test.
3388
3389 2021-06-21 Jonathan Wakely <jwakely@redhat.com>
3390
3391 * include/std/mutex (__try_to_lock): Move to __detail namespace.
3392 (struct __try_lock_impl): Replace with ...
3393 (__detail::__try_lock_impl<Idx>(tuple<Lockables...>&)): New
3394 function templates to implement std::try_lock.
3395 (try_lock): Use new __try_lock_impl.
3396 (__detail::__lock_impl(int, int&, L0&, L1&...)): New function
3397 template to implement std::lock.
3398 (lock): Use __lock_impl.
3399
3400 2021-06-21 Patrick Palka <ppalka@redhat.com>
3401
3402 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
3403
3404 2021-06-20 Patrick Palka <ppalka@redhat.com>
3405
3406 * include/std/ranges (__non_propagating_cache::operator bool):
3407 Define for split_view::begin().
3408 (split_view): Define as per P2210.
3409 (views::__detail::__can_split_view): Define.
3410 (views::_Split, views::split): Define.
3411 * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
3412 Test views::split.
3413 * testsuite/std/ranges/adaptors/split.cc: New test.
3414 * testsuite/std/ranges/p2325.cc (test08a): New test.
3415 * testsuite/std/ranges/p2367.cc (test01): Test views::split.
3416
3417 2021-06-20 Patrick Palka <ppalka@redhat.com>
3418
3419 * include/std/ranges: Rename views::split to views::lazy_split,
3420 split_view to lazy_split_view, etc. throughout.
3421 * testsuite/std/ranges/*: Likewise.
3422 * testsuite/std/ranges/adaptors/lazy_split.cc: New file.
3423 * testsuite/std/ranges/adaptors/lazy_split_neg.cc: New file.
3424
3425 2021-06-20 Patrick Palka <ppalka@redhat.com>
3426
3427 * include/std/ranges (split_view::_OuterIter::__at_end):
3428 Check _M_trailing_empty.
3429 (split_view::_OuterIter::_M_trailing_empty): Define this
3430 data member.
3431 (split_view::_OuterIter::operator++): Set _M_trailing_empty
3432 appropriately.
3433 (split_view::_OuterIter::operator==): Compare
3434 _M_trailing_empty.
3435 * testsuite/std/ranges/adaptors/100479.cc (test03): Expect two
3436 split parts instead of one.
3437 * testsuite/std/ranges/adaptors/split.cc (test11): New test.
3438
3439 2021-06-20 Patrick Palka <ppalka@redhat.com>
3440
3441 * include/std/ranges (split_view::_InnerIter::base): Define as
3442 per P2210.
3443
3444 2021-06-19 Patrick Palka <ppalka@redhat.com>
3445
3446 * include/std/ranges (transform_view::_Iterator::_S_iter_concept):
3447 Consider _Base instead of _Vp as per LWG 3555.
3448 (elements_view::_Iterator::_S_iter_concept): Likewise.
3449
3450 2021-06-19 Patrick Palka <ppalka@redhat.com>
3451
3452 * include/std/ranges (split_view::_OuterIter::value_type::begin):
3453 Remove the non-const overload, and remove the copyable constraint
3454 on the const overload as per LWG 3553.
3455
3456 2021-06-19 Patrick Palka <ppalka@redhat.com>
3457
3458 * include/bits/stl_iterator.h
3459 (__detail::__common_iter_use_postfix_proxy): Add
3460 move_constructible constraint as per LWG 3546.
3461 (common_iterator::__postfix_proxy): Adjust initializer of
3462 _M_keep as per LWG 3546.
3463
3464 2021-06-18 Patrick Palka <ppalka@redhat.com>
3465
3466 PR libstdc++/100387
3467 * include/bits/ranges_algo.h (__minmax_fn::operator()): Rewrite
3468 to limit comparison complexity to 3*N/2.
3469 (__minmax_element_fn::operator()): Likewise.
3470 (shift_right): Avoid premature std::move of __result.
3471 * testsuite/25_algorithms/minmax/constrained.cc (test04, test05):
3472 New tests.
3473 * testsuite/25_algorithms/minmax_element/constrained.cc (test02):
3474 Likewise.
3475
3476 2021-06-18 Patrick Palka <ppalka@redhat.com>
3477
3478 * include/std/concepts (convertible_to): Just use declval as per
3479 LWG 3557.
3480
3481 2021-06-18 Jonathan Wakely <jwakely@redhat.com>
3482
3483 PR libstdc++/95833
3484 * include/std/numeric (reduce(Iter, Iter, T, BinaryOp)): Replace
3485 incorrect static_assert with ones matching the 'Mandates'
3486 conditions in the standard.
3487 * testsuite/26_numerics/reduce/95833.cc: New test.
3488
3489 2021-06-18 Jonathan Wakely <jwakely@redhat.com>
3490
3491 * testsuite/21_strings/basic_string/cons/char/1.cc: Use
3492 diagnostic pragma to suppress -Wstringop-overread error.
3493
3494 2021-06-18 Patrick Palka <ppalka@redhat.com>
3495
3496 * include/bits/ranges_algo.h (__find_fn, find, __find_if_fn)
3497 (find_if, __find_if_not_fn, find_if_not, _in_in_result)
3498 (__mismatch_fn, mismatch, __search_fn, search): Move to ...
3499 * include/bits/ranges_util.h: ... here.
3500 * include/std/ranges (__detail::find, __detail::find_if)
3501 (__detail::find_if_not, __detail::mismatch): Remove.
3502 (filter_view): Use ranges::find_if instead.
3503 (drop_while_view): Use ranges::find_if_not instead.
3504 (split_view): Use ranges::find and ranges::mismatch instead.
3505
3506 2021-06-18 Patrick Palka <ppalka@redhat.com>
3507
3508 * include/bits/iterator_concepts.h (weakly_incrementable): Remove
3509 default_initializable requirement.
3510 * include/bits/ranges_base.h (ranges::view): Likewise.
3511 * include/bits/ranges_util.h (subrange): Constrain the default
3512 ctor.
3513 * include/bits/stl_iterator.h (back_insert_iterator): Remove the
3514 default ctor.
3515 (front_insert_iterator): Likewise.
3516 (insert_iterator): Likewise. Remove NSDMIs.
3517 (common_iterator): Constrain the default ctor.
3518 (counted_iterator): Likewise.
3519 * include/bits/stream_iterator.h (ostream_iterator): Remove the
3520 default ctor.
3521 * include/std/ranges (__detail::__box::operator=): Handle
3522 self-assignment in the primary template.
3523 (__detail::__box): In the partial specialization: adjust
3524 constraints as per P2325. Add specialized operator= for the
3525 case when the wrapped type is not copyable. Constrain the
3526 default ctor. Avoid list-initialization.
3527 (single_view): Constraint the default ctor.
3528 (iota_view): Relax semiregular constraint to copyable.
3529 Constrain the default ctor.
3530 (iota_view::_Iterator): Constraint the default ctor.
3531 (basic_istream_view): Remove the default ctor. Remove NSDMIs.
3532 Remove redundant checks for empty _M_stream.
3533 (basic_istream_view::_Iterator): Likewise.
3534 (ref_view): Remove the default ctor. Remove NSDMIs.
3535 (ref_view::_Iterator): Constrain the default ctor.
3536 (__detail::__non_propagating_cache::operator=): Define overload
3537 for assigning from a value of the underlying type.
3538 (filter_view): Likewise.
3539 (filter_view::_Iterator): Likewise.
3540 (transform_view): Likewise.
3541 (transform_view::_Iterator): Likewise.
3542 (take_view): Likewise.
3543 (take_view::_Iterator): Likewise.
3544 (take_while_view): Likewise.
3545 (take_while_view::_Iterator): Likewise.
3546 (drop_while_view): Likewise.
3547 (drop_while_view::_Iterator): Likewise.
3548 (join_view): Likewise.
3549 (split_view::_OuterIter::__current): Adjust after changing the
3550 type of _M_current.
3551 (split_view::_M_current): Wrap it in a __non_propagating_cache.
3552 (split_view::split_view): Constrain the default ctor.
3553 (common_view): Constrain the default ctor.
3554 (reverse_view): Likewise.
3555 (elements_view): Likewise.
3556 * include/std/span (enable_view<span<_ElementType, _Extent>>):
3557 Define this partial specialization to true unconditionally.
3558 * include/std/version (__cpp_lib_ranges): Adjust value.
3559 * testsuite/24_iterators/back_insert_iterator/constexpr.cc:
3560 Don't attempt to default construct a back_insert_iterator.
3561 * testsuite/24_iterators/front_insert_iterator/constexpr.cc:
3562 Don't attempt to default construct a front_insert_iterator.
3563 * testsuite/24_iterators/insert_iterator/constexpr.cc:
3564 Don't attempt to default construct an insert_iterator.
3565 * testsuite/24_iterators/ostream_iterator/requirements/constexpr.cc:
3566 Remove this test for default constructibility of ostream_iterator.
3567 * testsuite/std/ranges/97600.cc: Don't attempt to default
3568 construct a basic_istream_view.
3569 * testsuite/std/ranges/adaptors/detail/semiregular_box.cc:
3570 Rename to ...
3571 * testsuite/std/ranges/adaptors/detail/copyable_box.cc: ... this.
3572 (test02): Adjust now that __box is copyable-box not
3573 semiregular-box.
3574 (test03): New test.
3575 * testsuite/std/ranges/p2325.cc: New test.
3576 * testsuite/std/ranges/single_view.cc (test06): New test.
3577 * testsuite/std/ranges/view.cc: Adjust now that view doesn't
3578 require default_initializable.
3579
3580 2021-06-17 Jonathan Wakely <jwakely@redhat.com>
3581
3582 PR libstdc++/91488
3583 * include/bits/basic_string.h (__cpp_lib_constexpr_string): Only
3584 define when is_constant_evaluated is available.
3585 * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits):
3586 Likewise.
3587 (__constant_string_p, __constant_array_p): Remove.
3588 (char_traits): Use is_constant_evaluated directly.
3589 * include/std/version (__cpp_lib_constexpr_char_traits)
3590 (__cpp_lib_constexpr_string): Only define when
3591 is_constant_evaluated is available.
3592
3593 2021-06-17 Patrick Palka <ppalka@redhat.com>
3594
3595 PR libstdc++/100940
3596 * include/std/ranges (__adaptor::_Partial): For the "simple"
3597 forwarding partial specializations, also require that
3598 the extra arguments are trivially copyable.
3599 * testsuite/std/ranges/adaptors/100577.cc (test04): New test.
3600
3601 2021-06-17 Patrick Palka <ppalka@redhat.com>
3602
3603 PR libstdc++/100940
3604 * include/std/ranges (__adaptor::_RangeAdaptor): Document the
3605 template form of _S_has_simple_extra_args.
3606 (__adaptor::__adaptor_has_simple_extra_args): Add _Args template
3607 parameter pack. Try to treat _S_has_simple_extra_args as a
3608 variable template parameterized by _Args.
3609 (__adaptor::_Partial): Pass _Arg/_Args to the constraint
3610 __adaptor_has_simple_extra_args.
3611 (views::_Take::_S_has_simple_extra_args): Templatize according
3612 to the type of the extra argument.
3613 (views::_Drop::_S_has_simple_extra_args): Likewise.
3614 (views::_Split::_S_has_simple_extra_args): Define.
3615 * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
3616 Adjust after changes to _S_has_simple_extra_args mechanism.
3617 (test03): Define.
3618
3619 2021-06-16 Jonathan Wakely <jwakely@redhat.com>
3620
3621 * include/bits/iterator_concepts.h (__decay_copy): Name type.
3622
3623 2021-06-16 Jonathan Wakely <jwakely@redhat.com>
3624
3625 * include/bits/ranges_base.h (ranges::begin, ranges::end)
3626 (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
3627 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
3628 (ranges::empty, ranges::data, ranges::cdata): Remove final
3629 keywords and deleted operator& overloads.
3630 * testsuite/24_iterators/customization_points/iter_move.cc: Use
3631 new is_customization_point_object function.
3632 * testsuite/24_iterators/customization_points/iter_swap.cc:
3633 Likewise.
3634 * testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc:
3635 Likewise.
3636 * testsuite/std/ranges/access/begin.cc: Likewise.
3637 * testsuite/std/ranges/access/cbegin.cc: Likewise.
3638 * testsuite/std/ranges/access/cdata.cc: Likewise.
3639 * testsuite/std/ranges/access/cend.cc: Likewise.
3640 * testsuite/std/ranges/access/crbegin.cc: Likewise.
3641 * testsuite/std/ranges/access/crend.cc: Likewise.
3642 * testsuite/std/ranges/access/data.cc: Likewise.
3643 * testsuite/std/ranges/access/empty.cc: Likewise.
3644 * testsuite/std/ranges/access/end.cc: Likewise.
3645 * testsuite/std/ranges/access/rbegin.cc: Likewise.
3646 * testsuite/std/ranges/access/rend.cc: Likewise.
3647 * testsuite/std/ranges/access/size.cc: Likewise.
3648 * testsuite/std/ranges/access/ssize.cc: Likewise.
3649 * testsuite/util/testsuite_iterators.h
3650 (is_customization_point_object): New function.
3651
3652 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
3653
3654 * include/bits/ranges_base.h (ranges::begin, ranges::end)
3655 (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
3656 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
3657 (ranges::empty, ranges::data, ranges::cdata): Make types final.
3658 Add deleted operator& overloads.
3659 (ranges::advance, ranges::distance, ranges::next, ranges::prev):
3660 Likewise.
3661 * testsuite/std/ranges/headers/ranges/synopsis.cc: Replace
3662 ill-formed & expressions with using-declarations. Add checks for
3663 other function objects.
3664
3665 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
3666
3667 * include/bits/ranges_util.h (view_interface): Add noexcept to
3668 empty, operator bool, data and size members.
3669 (subrange): Add noexcept to constructors.
3670 * include/std/ranges (single_view, ref_view): Add noexcept to
3671 constructors.
3672 (views::single, views::all): Add noexcept.
3673 * testsuite/std/ranges/adaptors/all.cc: Check noexcept.
3674 * testsuite/std/ranges/single_view.cc: Likewise.
3675
3676 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
3677
3678 * include/bits/ranges_util.h (subrange): Add __size_type typedef
3679 and use it to simplify declarations.
3680 (subrange(i, s, n)): Remove assertion.
3681 * testsuite/std/ranges/subrange/constexpr.cc: New test.
3682
3683 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
3684
3685 * include/bits/iterator_concepts.h (__cust_access::__decay_copy):
3686 Replace with function object.
3687 (__cust_access::__member_begin, ___cust_access::_adl_begin): Use
3688 __decay_copy unqualified.
3689 * include/bits/ranges_base.h (__member_end, __adl_end):
3690 Likewise. Use __range_iter_t for type of ranges::begin.
3691 (__member_rend): Use correct value category for rbegin argument.
3692 (__member_data): Use __decay_copy unqualified.
3693 (__begin_data): Use __range_iter_t for type of ranges::begin.
3694
3695 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3696
3697 * include/bits/ranges_base.h (ranges::empty): Check whether
3698 conversion to bool can throw.
3699 * testsuite/std/ranges/access/empty.cc: Check for correct
3700 noexcept-specifier.
3701
3702 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3703
3704 PR libstdc++/100894
3705 * include/std/type_traits (__common_ref_impl<X&, Y&>): Only
3706 use the type if it's a reference.
3707 * testsuite/20_util/common_reference/100894.cc: New test.
3708
3709 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3710
3711 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
3712 Add dg-require-filesystem-ts directive.
3713
3714 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3715
3716 PR libstdc++/101034
3717 * include/std/any (any(in_place_t<T>, initializer_list<U>, A&&...))
3718 (any::emplace<T>(initializer_list<U>, A&&...)): Fix constraint
3719 to use lvalue.
3720 * testsuite/20_util/any/cons/101034.cc: New test.
3721
3722 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3723
3724 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Add
3725 -std=gnu++17 option.
3726
3727 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3728
3729 PR libstdc++/101056
3730 * libsupc++/compare (compare_partial_order_fallback): Add
3731 constraint using reversed parameter order, as per LWG 3465.
3732 * testsuite/18_support/comparisons/algorithms/fallback.cc:
3733 Adjust expected result.
3734
3735 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3736
3737 * libsupc++/compare (__decayed_same_as): New helper concept.
3738 (strong_order, weak_order, partial_order): Constrain with new
3739 concept instead of using static_assert.
3740 (compare_strong_order_fallback, compare_weak_order_fallback)
3741 (compare_partial_order_fallback): Likewise. Do not deduce return
3742 types. Remove redundant if-constexpr checks.
3743 * testsuite/18_support/comparisons/algorithms/fallback.cc: New test.
3744
3745 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3746
3747 PR libstdc++/101055
3748 * include/std/tuple: Use reserved form of attribute name.
3749 * testsuite/17_intro/headers/c++2011/all_attributes.cc: Add
3750 check for no_unique_address.
3751 * testsuite/17_intro/headers/c++2014/all_attributes.cc:
3752 Likewise.
3753 * testsuite/17_intro/headers/c++2017/all_attributes.cc:
3754 Likewise.
3755
3756 2021-06-11 Jonathan Wakely <jwakely@redhat.com>
3757
3758 * include/bits/fs_path.h (operator==, operator<=>): Use new
3759 _S_compare function.
3760 (path::_S_compare): New function to call path::compare in a
3761 context where path::iterator is complete.
3762 * include/experimental/bits/fs_path.h (operator<, operator==):
3763 Define after path::iterator is complete.
3764 * testsuite/27_io/filesystem/path/native/conv_c++23.cc: New
3765 test.
3766 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
3767 New test.
3768
3769 2021-06-09 Thomas Rodgers <rodgert@appliantology.com>
3770
3771 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Guard
3772 test logic with constexpr check for is_always_lock_free.
3773
3774 2021-06-09 Jonathan Wakely <jwakely@redhat.com>
3775
3776 PR libstdc++/100982
3777 * include/std/optional (optional::operator=(const optional<U>&)):
3778 Fix value category used in is_assignable check.
3779 * testsuite/20_util/optional/assignment/100982.cc: New test.
3780
3781 2021-06-09 Jonathan Wakely <jwakely@redhat.com>
3782
3783 * include/bits/allocator.h (allocator::is_always_equal): Deprecate.
3784 * include/bits/iterator_concepts.h (indirectly_readable_traits):
3785 Add LWG issue number to comment.
3786 * include/std/memory_resource (polymorphic_allocator::release):
3787 Deprecate.
3788 * testsuite/20_util/allocator/requirements/typedefs.cc: Add
3789 dg-warning for deprecation. Also check std::allocator<void>.
3790
3791 2021-06-08 Thomas Rodgers <rodgert@appliantology.com>
3792
3793 PR libstdc++/100889
3794 * include/bits/atomic_base.h (atomic_ref<_Tp*>::wait):
3795 Change parameter type from _Tp to _Tp*.
3796 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Extend
3797 coverage of types tested.
3798
3799 2021-06-08 Thomas Rodgers <rodgert@appliantology.com>
3800
3801 * include/std/barrier (__tree_barrier::_M_arrive): Remove
3802 unnecessary hasher instantiation.
3803
3804 2021-06-08 Jonathan Wakely <jwakely@redhat.com>
3805
3806 * include/experimental/propagate_const (swap): Constrain.
3807 * testsuite/experimental/propagate_const/swap/lwg3413.cc: New test.
3808
3809 2021-06-07 Avi Kivity <avi@scylladb.com>
3810
3811 PR libstdc++/100900
3812 * include/std/ranges (elements_view::__iter_cat::_S_iter_cat):
3813 Add missing typename.
3814
3815 2021-06-07 Jonathan Wakely <jwakely@redhat.com>
3816
3817 PR libstdc++/98842
3818 * include/std/optional (operator<=>(const optional<T>& const U&)):
3819 Add missing constraint and add workaround for template
3820 recursion.
3821 * testsuite/20_util/optional/relops/three_way.cc: Check that
3822 type without equality comparison cannot be compared when wrapped
3823 in std::optional.
3824
3825 2021-06-05 Jonathan Wakely <jwakely@redhat.com>
3826
3827 PR libstdc++/100824
3828 * include/bits/ranges_base.h (_SSize): Return signed type.
3829 * testsuite/std/ranges/access/ssize.cc: Check with __int128.
3830
3831 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
3832
3833 * include/bits/ranges_base.h (_SSize): Return the result of
3834 ranges::size converted to the wider of make-signed-like-t<S> and
3835 ptrdiff_t, rather than the ranges different type.
3836 * testsuite/std/ranges/access/ssize.cc: Adjust expected result
3837 for an iota_view that uses an integer class type for its
3838 difference_type.
3839
3840 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
3841
3842 PR libstdc++/100824
3843 * include/bits/ranges_base.h (__member_data): Use __decay_copy.
3844 * testsuite/std/ranges/access/data.cc: Add testcase from PR.
3845
3846 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
3847
3848 PR libstdc++/100824
3849 * include/bits/iterator_concepts.h (__detail::__decay_copy)
3850 (__detail::__member_begin, __detail::__adl_begin): Move to
3851 namespace ranges::__cust_access.
3852 (__detail::__ranges_begin): Likewise, and rename to __begin.
3853 Remove redundant static assertion.
3854 * include/bits/ranges_base.h (_Begin, _End, _RBegin, _REnd):
3855 Use lvalue in noexcept specifier.
3856 (__as_const): Add non-deduced parameter for value category.
3857 (_CBegin, _CEnd, _CRBegin, _CREnd, _CData): Adjust uses of
3858 __as_const.
3859 (__member_size, __adl_size, __member_empty, __size0_empty):
3860 (__eq_iter_empty, __adl_data): Use lvalue objects in
3861 requirements.
3862 (__sentinel_size): Likewise. Add check for conversion to
3863 unsigned-like.
3864 (__member_data): Allow non-lvalue types to satisfy the concept,
3865 but use lvalue object in requirements.
3866 (_Size, _SSize): Remove forwarding to always use an lvalue.
3867 (_Data): Likewise. Add static assertion for arrays.
3868 * testsuite/std/ranges/access/cdata.cc: Adjust expected
3869 behaviour for rvalues. Add negative tests for ill-formed
3870 expressions.
3871 * testsuite/std/ranges/access/data.cc: Likewise.
3872 * testsuite/std/ranges/access/empty.cc: Adjust expected
3873 behaviour for rvalues.
3874 * testsuite/std/ranges/access/size.cc: Likewise.
3875
3876 2021-06-04 Tim Adye <Tim.Adye@cern.ch>
3877
3878 * include/std/any (any::_Manager::_S_access): New static
3879 function to access the contained value.
3880 (any::emplace, __any_caster): Use _S_access member of the
3881 manager type.
3882
3883 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
3884
3885 * doc/xml/manual/status_cxx2020.xml:
3886 * doc/html/*: Regenerate.
3887 * include/bits/hashtable.h (__cpp_lib_generic_unordered_lookup):
3888 Define.
3889 * include/std/version (__cpp_lib_generic_unordered_lookup):
3890 Define.
3891 * testsuite/23_containers/unordered_map/operations/1.cc: Check
3892 feature test macro.
3893 * testsuite/23_containers/unordered_set/operations/1.cc:
3894 Likewise.
3895
3896 2021-06-03 Patrick Palka <ppalka@redhat.com>
3897
3898 * include/bits/ranges_algo.h (__detail::__can_reread_output):
3899 Factor out this concept from ...
3900 (__unique_copy_fn::operator()): ... here. Use the concept
3901 throughout.
3902 * testsuite/std/ranges/range.cc: Remove now ill-formed use
3903 of range_value_t on an output_range.
3904 * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
3905 Define value_type, pointer and reference member types to void.
3906
3907 2021-06-03 Patrick Palka <ppalka@redhat.com>
3908
3909 PR libstdc++/100577
3910 * include/std/ranges (_RangeAdaptorClosure): Document
3911 _S_has_simple_call_op mechanism.
3912 (_RangeAdaptor): Document _S_has_simple_extra_args mechanism.
3913 (__closure_has_simple_call_op): New concept.
3914 (__adaptor_has_simple_extra_args): Likewise.
3915 (_Partial<_Adaptor, _Args...>): New partial specialization.
3916 (_Partial<_Adaptor, _Arg>): Likewise.
3917 (_Pipe<_Lhs, _Rhs>): Likewise.
3918 (views::_All::_S_has_simple_call_op): Define to true.
3919 (views::_Filter::_S_has_simple_extra_args): Likewise.
3920 (views::_Transform::_S_has_simple_extra_args): Likewise.
3921 (views::_Take::_S_has_simple_extra_args): Likewise.
3922 (views::_TakeWhile::_S_has_simple_extra_args): Likewise.
3923 (views::_Drop::_S_has_simple_extra_args): Likewise.
3924 (views::_DropWhile::_S_has_simple_extra_args): Likewise.
3925 (views::_Join::_S_has_simple_call_op): Likewise.
3926 (views::_Split): Document why we don't define
3927 _S_has_simple_extra_args to true for this adaptor.
3928 (views::_Common::_S_has_simple_call_op): Define to true.
3929 (views::_Reverse::_S_has_simple_call_op): Likewise.
3930 (views::_Elements::_S_has_simple_call_op): Likewise.
3931 * testsuite/std/ranges/adaptors/100577.cc: New test.
3932
3933 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
3934
3935 PR libstdc++/100863
3936 PR libstdc++/65816
3937 * include/bits/hashtable_policy.h (_Hashtable_ebo_helper):
3938 Value-initialize subobject.
3939 * testsuite/23_containers/unordered_map/allocator/default_init.cc:
3940 Remove XFAIL.
3941 * testsuite/23_containers/unordered_set/allocator/default_init.cc:
3942 Remove XFAIL.
3943
3944 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
3945
3946 PR libstdc++/96088
3947 * testsuite/23_containers/unordered_map/96088.cc: Adjust
3948 expected number of allocations.
3949 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
3950
3951 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
3952
3953 * doc/xml/manual/status_cxxis29124.xml: Improve punctuation.
3954 * doc/xml/manual/status_cxxtr1.xml: Likewise.
3955 * doc/xml/manual/status_cxxtr24733.xml: Likewise.
3956 * doc/html/*: Regenerate.
3957
3958 2021-06-01 Patrick Palka <ppalka@redhat.com>
3959
3960 PR c++/65816
3961 * testsuite/23_containers/deque/allocator/default_init.cc,
3962 testsuite/23_containers/forward_list/allocator/default_init.cc,
3963 testsuite/23_containers/list/allocator/default_init.cc,
3964 testsuite/23_containers/map/allocator/default_init.cc,
3965 testsuite/23_containers/set/allocator/default_init.cc,
3966 testsuite/23_containers/vector/allocator/default_init.cc,
3967 testsuite/23_containers/vector/bool/allocator/default_init.cc:
3968 Remove xfail.
3969
3970 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
3971
3972 * testsuite/23_containers/unordered_map/96088.cc: Change
3973 effective target to c++17.
3974 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
3975
3976 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
3977
3978 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Only test
3979 isblank for C++11 and later.
3980
3981 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
3982
3983 PR libstdc++/100833
3984 * include/bits/ranges_base.h (ranges::advance(iter, n, sentinel)):
3985 Fix return value for no-op case.
3986 * testsuite/24_iterators/range_operations/advance.cc: Test
3987 return values of three-argument overload.
3988
3989 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
3990
3991 PR libstdc++/99453
3992 * python/Makefile.am: Use archive name for printer hook if no
3993 dynamic library name is available.
3994 * python/Makefile.in: Regenerate.
3995
3996 2021-05-30 Gerald Pfeifer <gerald@pfeifer.com>
3997
3998 * doc/xml/manual/abi.xml: Remove dead reference to "Intel
3999 Compilers for Linux: Compatibility with GNU Compilers" article.
4000 * doc/html/manual/abi.html: Regenerate.
4001
4002 2021-05-26 François Dumont <fdumont@gcc.gnu.org>
4003
4004 * include/debug/formatter.h
4005 (_Error_formatter::_Parameter::_Named): New.
4006 (_Error_formatter::_Parameter::_Type): Inherit latter.
4007 (_Error_formatter::_Parameter::_M_integer): Likewise.
4008 (_Error_formatter::_Parameter::_M_string): Likewise.
4009 * src/c++11/debug.cc: Include <cstring>.
4010 (_Print_func_t): New.
4011 (print_raw(PrintContext&, const char*, ptrdiff_t)): New.
4012 (print_word): Use '%.*s' format in fprintf to render only expected number of chars.
4013 (pretty_print(PrintContext&, const char*, _Print_func_t)): New.
4014 (print_type): Rename in...
4015 (print_type_info): ...this. Use pretty_print.
4016 (print_address, print_integer): New.
4017 (print_named_name, print_iterator_constness, print_iterator_state): New.
4018 (print_iterator_seq_type): New.
4019 (print_named_field, print_type_field, print_instance_field, print_iterator_field): New.
4020 (print_field): Use latters.
4021 (print_quoted_named_name, print_type_type, print_type, print_instance): New.
4022 (print_string(PrintContext&, const char*, const _Parameter*, size_t)):
4023 Change signature to...
4024 (print_string(PrintContext&, const char*, ptrdiff_t, const _Parameter*, size_t)):
4025 ...this and adapt. Remove intermediate buffer to render input string.
4026 (print_string(PrintContext&, const char*, ptrdiff_t)): New.
4027
4028 2021-05-26 Jonathan Wakely <jwakely@redhat.com>
4029
4030 PR libstdc++/100768
4031 * include/bits/ranges_base.h (advance, distance, next, prev):
4032 Replace function templates with function objects.
4033 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
4034 Adjust for changes to function objects.
4035 * testsuite/std/ranges/adaptors/elements.cc: Add using
4036 declarations for names from namespace ranges.
4037 * testsuite/std/ranges/adaptors/transform.cc: Likewise.
4038 * testsuite/24_iterators/range_operations/100768.cc: New test.
4039
4040 2021-05-24 François Dumont <fdumont@gcc.gnu.org>
4041
4042 PR libstdc++/96088
4043 * include/bits/hashtable_policy.h (_Select2nd): New.
4044 (_NodeBuilder<>): New.
4045 (_ReuseOrAllocNode<>::operator()): Use variadic template args.
4046 (_AllocNode<>::operator()): Likewise.
4047 * include/bits/hashtable.h
4048 (_Hashtable<>::__node_builder_t): New.
4049 (_Hashtable<>::_M_insert_unique<>(_Kt&&, _Arg&&, const _NodeGenerator&)):
4050 New.
4051 (_Hashtable<>::_S_forward_key): New.
4052 (_Hashtable<>::_M_insert): Use latter.
4053 (_Hashtable<>::_M_insert(const_iterator, _Arg&&, const _NodeGenerator&, false_type)):
4054 Instantiate node first, compute hash code second.
4055 * testsuite/23_containers/unordered_map/96088.cc: New test.
4056 * testsuite/23_containers/unordered_multimap/96088.cc: New test.
4057 * testsuite/23_containers/unordered_multiset/96088.cc: New test.
4058 * testsuite/23_containers/unordered_set/96088.cc: New test.
4059 * testsuite/util/replacement_memory_operators.h
4060 (counter::_M_increment): New.
4061 (counter::_M_decrement): New.
4062 (counter::reset()): New.
4063
4064 2021-05-24 Patrick Palka <ppalka@redhat.com>
4065
4066 PR libstdc++/100479
4067 * include/std/ranges (__detail::__non_propagating_cache): Move
4068 definition up to before that of _CachedPosition. Make base
4069 class _Optional_base protected instead of private. Add const
4070 overload for operator*.
4071 (__detail::_CachedPosition): Rewrite the partial specialization
4072 for forward ranges as a derived class of __non_propagating_cache.
4073 Remove the size constraint on the partial specialization for
4074 random access ranges. Add copy/move/copy-assignment/move-assignment
4075 members to the offset partial specialization for random
4076 access ranges that propagate the cached value but additionally
4077 invalidate it in the source object on move.
4078 * testsuite/std/ranges/adaptors/100479.cc: New test.
4079
4080 2021-05-24 Jonathan Wakely <jwakely@redhat.com>
4081
4082 * testsuite/25_algorithms/inplace_merge/constrained.cc: Qualify
4083 call to ranges::next.
4084 * testsuite/25_algorithms/is_sorted/constrained.cc: Likewise.
4085 * testsuite/25_algorithms/is_sorted_until/constrained.cc:
4086 Likewise.
4087 * testsuite/25_algorithms/swap_ranges/1.cc: Qualify call to
4088 swap_ranges.
4089
4090 2021-05-21 Patrick Palka <ppalka@redhat.com>
4091
4092 PR libstdc++/100606
4093 * include/std/ranges (drop_while_view::begin): Assert the
4094 precondition added by LWG 3490.
4095
4096 2021-05-21 Patrick Palka <ppalka@redhat.com>
4097
4098 PR libstdc++/100690
4099 * include/std/ranges (iota_view::_Sentinel::_M_distance_from):
4100 Split out this member function from ...
4101 (iota_view::_Sentinel::operator-): ... here, for sake of access
4102 control.
4103 * testsuite/std/ranges/iota/iota_view.cc (test05): New test.
4104
4105 2021-05-20 Jonathan Wakely <jwakely@redhat.com>
4106
4107 * include/bits/random.tcc (__representable_as_double)
4108 (__p1_representable_as_double): Add "" to static asserts.
4109
4110 2021-05-20 Jonathan Wakely <jwakely@redhat.com>
4111
4112 PR libstdc++/100676
4113 * include/bits/c++config (__glibcxx_assert_1): Rename to ...
4114 (__glibcxx_constexpr_assert): ... this.
4115 (__glibcxx_assert_impl): Use __glibcxx_constexpr_assert.
4116 (__glibcxx_assert): Define as either __glibcxx_constexpr_assert
4117 or __glibcxx_assert_impl.
4118 (__glibcxx_assert_2): Remove
4119 * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): Use
4120 __glibcxx_constexpr_assert instead of __glibcxx_assert_1.
4121 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
4122 Adjust expected error.
4123 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
4124 Likewise.
4125 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
4126 Likewise.
4127 Likewise.
4128 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
4129 Likewise.
4130 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
4131 Likewise.
4132 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
4133 Likewise.
4134 * testsuite/23_containers/span/back_neg.cc: Likewise.
4135 * testsuite/23_containers/span/front_neg.cc: Likewise.
4136 * testsuite/23_containers/span/index_op_neg.cc: Likewise.
4137
4138 2021-05-20 Patrick Palka <ppalka@redhat.com>
4139
4140 PR libstdc++/100639
4141 * include/bits/stl_iterator.h (reverse_iterator::difference_type):
4142 In C++20 mode, define in terms of iter_difference_t as per P0896R4.
4143 (reverse_iterator::reference): Likewise, but with iter_reference_t.
4144 (reverse_iterator::value_type): Likewise, but with iter_value_t.
4145 * testsuite/std/ranges/adaptors/reverse.cc (test08): New test.
4146 * testsuite/24_iterators/reverse_iterator/100639.cc: New test.
4147
4148 2021-05-20 Joern Rennecke <joern.rennecke@riscy-ip.com>
4149
4150 PR libstdc++/100361
4151 * include/std/charconv (to_chars): Hide the overloads for
4152 floating-point types for 16 bit targets.
4153 * src/c++17/floating_to_chars.cc: Don't compile for 16 bit targets.
4154 * testsuite/20_util/to_chars/double.cc: Run this test only on
4155 size32plus targets.
4156 * testsuite/20_util/to_chars/float.cc: Likewise.
4157 * testsuite/20_util/to_chars/long_double.cc: Likewise.
4158
4159 2021-05-18 Patrick Palka <ppalka@redhat.com>
4160
4161 PR libstdc++/100631
4162 * include/std/ranges (elements_view::_Sentinel::operator-): Use
4163 _M_distance_from in the other operator- overload too.
4164 * testsuite/std/ranges/adaptors/elements.cc (test06): Augment test.
4165
4166 2021-05-18 Thomas Schwinge <thomas@codesourcery.com>
4167
4168 * testsuite/lib/prune.exp: Add note about 'dg-note'.
4169
4170 2021-05-18 Patrick Palka <ppalka@redhat.com>
4171
4172 PR libstdc++/100475
4173 * include/std/ranges (__box::__box): Use non-list-initialization
4174 in member initializer list of in-place constructor of the
4175 partial specialization for semiregular types.
4176 (__box::operator->): Use std::__addressof.
4177 * testsuite/std/ranges/adaptors/detail/semiregular_box.cc
4178 (test02): New test.
4179 * testsuite/std/ranges/single_view.cc (test04): New test.
4180
4181 2021-05-18 Patrick Palka <ppalka@redhat.com>
4182
4183 PR libstdc++/100621
4184 * include/std/ranges (reverse_view::_S_needs_cached_begin):
4185 Set to true if the underlying non-common random-access range
4186 doesn't have a sized sentinel.
4187
4188 2021-05-18 Patrick Palka <ppalka@redhat.com>
4189
4190 PR libstdc++/100631
4191 * include/std/ranges (elements_view::_Iterator): Also befriend
4192 _Sentinel<!_Const>.
4193 (elements_view::_Sentinel::_M_equal): Templatize.
4194 (elements_view::_Sentinel::_M_distance_from): Split out from ...
4195 (elements_view::_Sentinel::operator-): ... here. Depend on
4196 _Base2 instead of _Base in the return type.
4197 * testsuite/std/ranges/adaptors/elements.cc (test06, test07):
4198 New tests.
4199
4200 2021-05-17 Thomas Rodgers <rodgert@twrodgers.com>
4201
4202 * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): loop
4203 until value change observed.
4204 (__waiter_base::_M_laundered): New member.
4205 (__waiter_base::_M_notify): Check _M_laundered to determine
4206 whether to wake one or all.
4207 (__detail::__atomic_compare): Return true if call to
4208 __builtin_memcmp() == 0.
4209 (__waiter_base::_S_do_spin_v): Adjust predicate.
4210 * testsuite/29_atomics/atomic/wait_notify/100334.cc: New
4211 test.
4212
4213 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
4214
4215 PR libstdc++/100630
4216 * include/experimental/bits/fs_path.h (__is_constructible_from):
4217 Test construction from a const lvalue, not an rvalue.
4218 * testsuite/27_io/filesystem/path/construct/100630.cc: New test.
4219 * testsuite/experimental/filesystem/path/construct/100630.cc:
4220 New test.
4221
4222 2021-05-17 Antony Polukhin <antoshkka@gmail.com>
4223
4224 PR libstdc++/89728
4225 * include/bits/locale_facets.h (ctype<basic_string<C,T,A>>):
4226 Declare (but do not define) partial specialization.
4227 * testsuite/22_locale/ctype/is/string/89728_neg.cc: New test.
4228
4229 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
4230
4231 * include/std/thread (jthread::_S_create): Fix static assert
4232 message.
4233 * testsuite/30_threads/jthread/95989.cc: Re-enable test.
4234 * testsuite/30_threads/jthread/jthread.cc: Do not require
4235 pthread effective target.
4236 * testsuite/30_threads/jthread/2.cc: Moved to...
4237 * testsuite/30_threads/jthread/version.cc: ...here.
4238
4239 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
4240
4241 * doc/Makefile.am: Simplify doxygen recipes and use --latex_cmd.
4242 * doc/Makefile.in: Regenerate.
4243 * doc/doxygen/user.cfg.in (LATEX_CMD_NAME): Add placeholder
4244 value.
4245 * scripts/run_doxygen (print_usage): Always print to stdout and
4246 do not exit.
4247 (fail): New function for exiting on error.
4248 (parse_options): Handle --latex_cmd. Do not treat --help the
4249 same as errors. Simplify handling of required arguments.
4250
4251 2021-05-12 Jonathan Wakely <jwakely@redhat.com>
4252
4253 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
4254 Increase dg-timeout-factor to 4. Fix -Wunused-parameter
4255 warnings. Replace bitwise AND with logical AND in loop
4256 condition.
4257 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
4258 Replace bitwise AND with logical AND in loop condition.
4259 * testsuite/util/pstl/test_utils.h: Remove unused parameter
4260 names.
4261
4262 2021-05-11 Patrick Palka <ppalka@redhat.com>
4263
4264 * src/c++17/ryu/LOCAL_PATCHES: Update.
4265 * src/c++17/ryu/ryu_generic_128.h: Remove extern "C".
4266 Remove declarations for never-defined functions.
4267 * testsuite/20_util/to_chars/4.cc: New test.
4268
4269 2021-05-11 Jonathan Wakely <jwakely@redhat.com>
4270
4271 * testsuite/20_util/headers/memory/synopsis.cc: Define C++98
4272 alternative for macro.
4273 * testsuite/20_util/shared_ptr/creation/99006.cc: Add effective
4274 target keyword.
4275 * testsuite/25_algorithms/copy/debug/99402.cc: Avoid C++11
4276 syntax.
4277
4278 2021-05-11 Jonathan Wakely <jwakely@redhat.com>
4279
4280 * include/bits/allocator.h (allocator<void>) [C++20]: Add
4281 missing noexcept to constructor. Restore missing POCMA and
4282 is_always_equal_traits.
4283 [C++17]: Make construct and destroy members private and
4284 declare allocator_traits as a friend.
4285 * include/bits/memoryfwd.h (allocator_traits): Declare.
4286 * include/ext/malloc_allocator.h (malloc_allocator::allocate):
4287 Add nodiscard attribute. Add static assertion for LWG 3307.
4288 * include/ext/new_allocator.h (new_allocator::allocate): Add
4289 static assertion for LWG 3307.
4290 * testsuite/20_util/allocator/void.cc: Check that converting
4291 constructor is noexcept. Check for propagation traits and
4292 size_type and difference_type. Check that pointer and
4293 const_pointer are gone in C++20.
4294
4295 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4296
4297 * include/std/stop_token: Remove TODO comment.
4298
4299 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4300
4301 * include/bits/shared_ptr_base.h (__shared_count(unique_ptr&&)):
4302 Initialize a non-reference deleter from an rvalue, as per LWG
4303 3548.
4304 (__shared_ptr::_UniqCompatible): Add missing constraint.
4305 * testsuite/20_util/shared_ptr/cons/lwg3548.cc: New test.
4306 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc: Check
4307 constraints.
4308
4309 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4310
4311 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Remove
4312 -std=gnu++17 from dg-options directive.
4313 * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc:
4314 Likewise.
4315 * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc:
4316 Likewise.
4317 * testsuite/17_intro/headers/c++2017/operator_names.cc:
4318 Likewise.
4319 * testsuite/17_intro/headers/c++2017/parallel_mode.cc: Likewise.
4320 * testsuite/17_intro/headers/c++2017/stdc++.cc: Likewise.
4321 * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
4322 Likewise.
4323 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Likewise.
4324 * testsuite/18_support/byte/81076.cc: Likewise.
4325 * testsuite/18_support/byte/global_neg.cc: Likewise.
4326 * testsuite/18_support/byte/ops.cc: Likewise.
4327 * testsuite/18_support/byte/requirements.cc: Likewise.
4328 * testsuite/18_support/headers/cfloat/values_c++17.cc: Likewise.
4329 * testsuite/18_support/launder/1.cc: Likewise.
4330 * testsuite/18_support/launder/nodiscard.cc: Likewise.
4331 * testsuite/18_support/launder/requirements.cc: Likewise.
4332 * testsuite/18_support/launder/requirements_neg.cc: Likewise.
4333 * testsuite/18_support/new_aligned.cc: Likewise.
4334 * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
4335 Likewise.
4336 * testsuite/19_diagnostics/error_code/is_error_code_v.cc:
4337 Likewise.
4338 * testsuite/19_diagnostics/error_condition/hash.cc: Likewise.
4339 * testsuite/20_util/addressof/requirements/constexpr.cc:
4340 Likewise.
4341 * testsuite/20_util/as_const/1.cc: Likewise.
4342 * testsuite/20_util/as_const/rvalue_neg.cc: Likewise.
4343 * testsuite/20_util/bind/83427.cc: Likewise.
4344 * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
4345 * testsuite/20_util/bool_constant/requirements.cc: Likewise.
4346 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
4347 Likewise.
4348 * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
4349 Likewise.
4350 * testsuite/20_util/duration_cast/rounding.cc: Likewise.
4351 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
4352 Likewise.
4353 * testsuite/20_util/from_chars/1_neg.cc: Likewise.
4354 * testsuite/20_util/from_chars/requirements.cc: Likewise.
4355 * testsuite/20_util/function/91456.cc: Likewise.
4356 * testsuite/20_util/function/cons/deduction.cc: Likewise.
4357 * testsuite/20_util/function_objects/83607.cc: Likewise.
4358 * testsuite/20_util/function_objects/invoke/59768.cc: Likewise.
4359 * testsuite/20_util/function_objects/mem_fn/80478.cc: Likewise.
4360 * testsuite/20_util/function_objects/not_fn/1.cc: Likewise.
4361 * testsuite/20_util/function_objects/not_fn/87538.cc: Likewise.
4362 * testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc:
4363 Likewise.
4364 * testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc:
4365 Likewise.
4366 * testsuite/20_util/has_unique_object_representations/value.cc:
4367 Likewise.
4368 * testsuite/20_util/hash/nullptr.cc: Likewise.
4369 * testsuite/20_util/in_place/requirements.cc: Likewise.
4370 * testsuite/20_util/is_aggregate/incomplete_neg.cc: Likewise.
4371 * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
4372 Likewise.
4373 * testsuite/20_util/is_aggregate/requirements/typedefs.cc:
4374 Likewise.
4375 * testsuite/20_util/is_aggregate/value.cc: Likewise.
4376 * testsuite/20_util/is_invocable/83395.cc: Likewise.
4377 * testsuite/20_util/is_invocable/91456.cc: Likewise.
4378 * testsuite/20_util/is_invocable/requirements/explicit_instantiation.cc:
4379 Likewise.
4380 * testsuite/20_util/is_invocable/requirements/typedefs.cc:
4381 Likewise.
4382 * testsuite/20_util/is_invocable/value.cc: Likewise.
4383 * testsuite/20_util/is_literal_type/deprecated-1z.cc: Likewise.
4384 * testsuite/20_util/is_nothrow_constructible/94003.cc: Likewise.
4385 * testsuite/20_util/is_nothrow_invocable/83395.cc: Likewise.
4386 * testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation.cc:
4387 Likewise.
4388 * testsuite/20_util/is_nothrow_invocable/requirements/typedefs.cc: Likewise.
4389 * testsuite/20_util/is_nothrow_invocable/value.cc: Likewise.
4390 * testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc:
4391 Likewise.
4392 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
4393 Likewise.
4394 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
4395 * testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc:
4396 Likewise.
4397 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
4398 Likewise.
4399 * testsuite/20_util/is_nothrow_swappable_with/value.cc:
4400 Likewise.
4401 * testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc:
4402 Likewise.
4403 * testsuite/20_util/is_swappable/requirements/typedefs.cc:
4404 Likewise.
4405 * testsuite/20_util/is_swappable/value.cc: Likewise.
4406 * testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc:
4407 Likewise.
4408 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc:
4409 Likewise.
4410 * testsuite/20_util/is_swappable_with/value.cc: Likewise.
4411 * testsuite/20_util/logical_traits/83134.cc: Likewise.
4412 * testsuite/20_util/logical_traits/requirements/explicit_instantiation.cc:
4413 Likewise.
4414 * testsuite/20_util/logical_traits/requirements/typedefs.cc:
4415 Likewise.
4416 * testsuite/20_util/logical_traits/value.cc: Likewise.
4417 * testsuite/20_util/pair/cons/deduction.cc: Likewise.
4418 * testsuite/20_util/pair/swap_cxx17.cc: Likewise.
4419 * testsuite/20_util/ratio/requirements/ratio_equal_v.cc:
4420 Likewise.
4421 * testsuite/20_util/reference_wrapper/83427.cc: Likewise.
4422 * testsuite/20_util/reference_wrapper/deduction.cc: Likewise.
4423 * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
4424 * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
4425 * testsuite/20_util/shared_ptr/requirements/weak_type.cc:
4426 Likewise.
4427 * testsuite/20_util/time_point/arithmetic/constexpr.cc:
4428 Likewise.
4429 * testsuite/20_util/time_point_cast/rounding.cc: Likewise.
4430 * testsuite/20_util/to_chars/3.cc: Likewise.
4431 * testsuite/20_util/to_chars/chars_format.cc: Likewise.
4432 * testsuite/20_util/to_chars/lwg3266.cc: Likewise.
4433 * testsuite/20_util/to_chars/requirements.cc: Likewise.
4434 * testsuite/20_util/tuple/78939.cc: Likewise.
4435 * testsuite/20_util/tuple/apply/1.cc: Likewise.
4436 * testsuite/20_util/tuple/apply/2.cc: Likewise.
4437 * testsuite/20_util/tuple/cons/deduction.cc: Likewise.
4438 * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
4439 * testsuite/20_util/tuple/make_from_tuple/2.cc: Likewise.
4440 * testsuite/20_util/tuple/swap_cxx17.cc: Likewise.
4441 * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
4442 * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: Likewise.
4443 * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
4444 Likewise.
4445 * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
4446 * testsuite/20_util/void_t/1.cc: Likewise.
4447 * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
4448 * testsuite/24_iterators/container_access.cc: Likewise.
4449 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc:
4450 Likewise.
4451 * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc:
4452 Likewise.
4453 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
4454 Likewise.
4455 * testsuite/24_iterators/range_access/range_access_cpp17_neg.cc:
4456 Likewise.
4457 * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
4458 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc:
4459 Likewise.
4460 * testsuite/26_numerics/headers/cmath/hypot.cc: Likewise.
4461 * testsuite/26_numerics/headers/cmath/special_functions_global.cc:
4462 Likewise.
4463 * testsuite/26_numerics/lcm/1.cc: Likewise.
4464 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
4465 * testsuite/26_numerics/valarray/deduction.cc: Likewise.
4466 * testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc:
4467 Likewise.
4468 * testsuite/27_io/manipulators/standard/char/quoted_sv.cc:
4469 Likewise.
4470 * testsuite/27_io/manipulators/standard/wchar_t/quoted_sv.cc:
4471 Likewise.
4472 * testsuite/27_io/types/4.cc: Likewise.
4473 * testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise.
4474 * testsuite/libstdc++-prettyprinters/91997.cc: Likewise.
4475 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
4476
4477 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4478
4479 * testsuite/20_util/function_objects/searchers.cc: Remove
4480 -std=gnu++17 from dg-options directive.
4481 * testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc:
4482 Likewise.
4483 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
4484 Likewise.
4485 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc:
4486 Likewise.
4487 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94831.cc:
4488 Likewise.
4489 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc:
4490 Likewise.
4491 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
4492 Likewise.
4493 * testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc:
4494 Likewise.
4495 * testsuite/25_algorithms/clamp/1.cc: Likewise.
4496 * testsuite/25_algorithms/clamp/2.cc: Likewise.
4497 * testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
4498 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc:
4499 Likewise.
4500 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/pod.cc:
4501 Likewise.
4502 * testsuite/25_algorithms/for_each/for_each_n.cc: Likewise.
4503 * testsuite/25_algorithms/for_each/for_each_n_debug.cc:
4504 Likewise.
4505 * testsuite/25_algorithms/sample/1.cc: Likewise.
4506 * testsuite/25_algorithms/sample/2.cc: Likewise.
4507 * testsuite/25_algorithms/sample/3.cc: Likewise.
4508 * testsuite/25_algorithms/sample/81221.cc: Likewise.
4509 * testsuite/25_algorithms/search/searcher.cc: Likewise.
4510 * testsuite/26_numerics/exclusive_scan/1.cc: Likewise.
4511 * testsuite/26_numerics/inclusive_scan/1.cc: Likewise.
4512 * testsuite/26_numerics/reduce/1.cc: Likewise.
4513 * testsuite/26_numerics/reduce/2.cc: Likewise.
4514 * testsuite/26_numerics/transform_exclusive_scan/1.cc: Likewise.
4515 * testsuite/26_numerics/transform_inclusive_scan/1.cc: Likewise.
4516 * testsuite/26_numerics/transform_reduce/1.cc: Likewise.
4517
4518 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4519
4520 * testsuite/23_containers/array/cons/deduction.cc: Remove
4521 -std=gnu++17 from dg-options directive.
4522 * testsuite/23_containers/array/cons/deduction_neg.cc: Likewise.
4523 * testsuite/23_containers/array/element_access/constexpr_c++17.cc:
4524 Likewise.
4525 * testsuite/23_containers/array/requirements/constexpr_iter.cc:
4526 Likewise.
4527 * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
4528 Likewise.
4529 * testsuite/23_containers/deque/cons/deduction.cc: Likewise.
4530 * testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc:
4531 Likewise.
4532 * testsuite/23_containers/forward_list/cons/deduction.cc:
4533 Likewise.
4534 * testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc:
4535 Likewise.
4536 * testsuite/23_containers/list/cons/deduction.cc: Likewise.
4537 * testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc:
4538 Likewise.
4539 * testsuite/23_containers/map/cons/deduction.cc: Likewise.
4540 * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
4541 * testsuite/23_containers/map/modifiers/insert/83226.cc:
4542 Likewise.
4543 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
4544 Likewise.
4545 * testsuite/23_containers/map/modifiers/merge.cc: Likewise.
4546 * testsuite/23_containers/map/modifiers/try_emplace/1.cc:
4547 Likewise.
4548 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
4549 * testsuite/23_containers/multimap/modifiers/extract.cc:
4550 Likewise.
4551 * testsuite/23_containers/multimap/modifiers/merge.cc: Likewise.
4552 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
4553 * testsuite/23_containers/multiset/modifiers/extract.cc:
4554 Likewise.
4555 * testsuite/23_containers/multiset/modifiers/merge.cc: Likewise.
4556 * testsuite/23_containers/priority_queue/deduction.cc: Likewise.
4557 * testsuite/23_containers/queue/deduction.cc: Likewise.
4558 * testsuite/23_containers/queue/members/emplace_cxx17_return.cc:
4559 Likewise.
4560 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
4561 * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
4562 * testsuite/23_containers/set/modifiers/merge.cc: Likewise.
4563 * testsuite/23_containers/set/modifiers/node_swap.cc: Likewise.
4564 * testsuite/23_containers/stack/deduction.cc: Likewise.
4565 * testsuite/23_containers/stack/members/emplace_cxx17_return.cc:
4566 Likewise.
4567 * testsuite/23_containers/unordered_map/cons/deduction.cc:
4568 Likewise.
4569 * testsuite/23_containers/unordered_map/modifiers/extract.cc:
4570 Likewise.
4571 * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
4572 Likewise.
4573 * testsuite/23_containers/unordered_map/modifiers/merge.cc:
4574 Likewise.
4575 * testsuite/23_containers/unordered_map/modifiers/try_emplace.cc:
4576 Likewise.
4577 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
4578 Likewise.
4579 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
4580 Likewise.
4581 * testsuite/23_containers/unordered_multimap/modifiers/merge.cc:
4582 Likewise.
4583 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
4584 Likewise.
4585 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
4586 Likewise.
4587 * testsuite/23_containers/unordered_multiset/modifiers/merge.cc:
4588 Likewise.
4589 * testsuite/23_containers/unordered_set/cons/deduction.cc:
4590 Likewise.
4591 * testsuite/23_containers/unordered_set/modifiers/extract.cc:
4592 Likewise.
4593 * testsuite/23_containers/unordered_set/modifiers/merge.cc:
4594 Likewise.
4595 * testsuite/23_containers/vector/bool/emplace_cxx17_return.cc:
4596 Likewise.
4597 * testsuite/23_containers/vector/cons/89164_c++17.cc: Likewise.
4598 * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
4599 * testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc:
4600 Likewise.
4601
4602 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4603
4604 * testsuite/21_strings/basic_string/79162.cc: Remove
4605 -std=gnu++17 from dg-options directive.
4606 * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
4607 * testsuite/21_strings/basic_string/cons/char/79162.cc:
4608 Likewise.
4609 * testsuite/21_strings/basic_string/cons/char/86138.cc:
4610 Likewise.
4611 * testsuite/21_strings/basic_string/cons/char/9.cc: Likewise.
4612 * testsuite/21_strings/basic_string/cons/char/deduction.cc:
4613 Likewise.
4614 * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc:
4615 Likewise.
4616 * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
4617 * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc:
4618 Likewise.
4619 * testsuite/21_strings/basic_string/cons/wchar_t/86138.cc:
4620 Likewise.
4621 * testsuite/21_strings/basic_string/cons/wchar_t/9.cc: Likewise.
4622 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
4623 Likewise.
4624 * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
4625 Likewise.
4626 * testsuite/21_strings/basic_string/hash/hash.cc: Likewise.
4627 * testsuite/21_strings/basic_string/lwg2758.cc: Likewise.
4628 * testsuite/21_strings/basic_string/lwg2946.cc: Likewise.
4629 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
4630 Likewise.
4631 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
4632 Likewise.
4633 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
4634 Likewise.
4635 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
4636 Likewise.
4637 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
4638 Likewise.
4639 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
4640 Likewise.
4641 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
4642 Likewise.
4643 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
4644 Likewise.
4645 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
4646 Likewise.
4647 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
4648 Likewise.
4649 * testsuite/21_strings/basic_string/operations/data/char/2.cc:
4650 Likewise.
4651 * testsuite/21_strings/basic_string/operations/data/char/86169.cc:
4652 Likewise.
4653 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc:
4654 Likewise.
4655 * testsuite/21_strings/basic_string/operations/find/char/5.cc:
4656 Likewise.
4657 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
4658 Likewise.
4659 * testsuite/21_strings/basic_string/operators/char/5.cc:
4660 Likewise.
4661 * testsuite/21_strings/basic_string/operators/wchar_t/5.cc:
4662 Likewise.
4663 * testsuite/21_strings/basic_string_view/capacity/1.cc:
4664 Likewise.
4665 * testsuite/21_strings/basic_string_view/capacity/empty_neg.cc:
4666 Likewise.
4667 * testsuite/21_strings/basic_string_view/cons/char/1.cc:
4668 Likewise.
4669 * testsuite/21_strings/basic_string_view/cons/char/2.cc:
4670 Likewise.
4671 * testsuite/21_strings/basic_string_view/cons/char/3.cc:
4672 Likewise.
4673 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
4674 Likewise.
4675 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
4676 Likewise.
4677 * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc:
4678 Likewise.
4679 * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc:
4680 Likewise.
4681 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
4682 Likewise.
4683 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
4684 Likewise.
4685 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
4686 Likewise.
4687 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
4688 Likewise.
4689 * testsuite/21_strings/basic_string_view/element_access/char/constexpr.cc:
4690 Likewise.
4691 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
4692 Likewise.
4693 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
4694 Likewise.
4695 * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
4696 Likewise.
4697 * testsuite/21_strings/basic_string_view/element_access/char/front_back_constexpr.cc:
4698 Likewise.
4699 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
4700 Likewise.
4701 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
4702 Likewise.
4703 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
4704 Likewise.
4705 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
4706 Likewise.
4707 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr.cc:
4708 Likewise.
4709 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
4710 Likewise.
4711 * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
4712 Likewise.
4713 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
4714 Likewise.
4715 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
4716 Likewise.
4717 * testsuite/21_strings/basic_string_view/include.cc: Likewise.
4718 * testsuite/21_strings/basic_string_view/inserters/94051.cc:
4719 Likewise.
4720 * testsuite/21_strings/basic_string_view/inserters/char/1.cc:
4721 Likewise.
4722 * testsuite/21_strings/basic_string_view/inserters/char/2.cc:
4723 Likewise.
4724 * testsuite/21_strings/basic_string_view/inserters/char/3.cc:
4725 Likewise.
4726 * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
4727 Likewise.
4728 * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
4729 Likewise.
4730 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
4731 Likewise.
4732 * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
4733 Likewise.
4734 * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
4735 Likewise.
4736 * testsuite/21_strings/basic_string_view/literals/types.cc:
4737 Likewise.
4738 * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
4739 Likewise.
4740 * testsuite/21_strings/basic_string_view/literals/values.cc:
4741 Likewise.
4742 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
4743 Likewise.
4744 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
4745 Likewise.
4746 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
4747 Likewise.
4748 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
4749 Likewise.
4750 * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
4751 Likewise.
4752 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
4753 Likewise.
4754 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
4755 Likewise.
4756 * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
4757 Likewise.
4758 * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
4759 Likewise.
4760 * testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc:
4761 Likewise.
4762 * testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc:
4763 Likewise.
4764 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
4765 Likewise.
4766 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
4767 Likewise.
4768 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc:
4769 Likewise.
4770 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
4771 Likewise.
4772 * testsuite/21_strings/basic_string_view/operations/copy/char/2.cc:
4773 Likewise.
4774 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
4775 Likewise.
4776 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc:
4777 Likewise.
4778 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
4779 Likewise.
4780 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
4781 Likewise.
4782 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
4783 Likewise.
4784 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
4785 Likewise.
4786 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
4787 Likewise.
4788 * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
4789 Likewise.
4790 * testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc:
4791 Likewise.
4792 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
4793 Likewise.
4794 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
4795 Likewise.
4796 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
4797 Likewise.
4798 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
4799 Likewise.
4800 * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
4801 Likewise.
4802 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
4803 Likewise.
4804 * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
4805 Likewise.
4806 * testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc:
4807 Likewise.
4808 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
4809 Likewise.
4810 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
4811 Likewise.
4812 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
4813 Likewise.
4814 * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
4815 Likewise.
4816 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
4817 Likewise.
4818 * testsuite/21_strings/basic_string_view/operations/substr/char/83511.cc:
4819 Likewise.
4820 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
4821 Likewise.
4822 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/83511.cc:
4823 Likewise.
4824 * testsuite/21_strings/basic_string_view/operators/char/2.cc:
4825 Likewise.
4826 * testsuite/21_strings/basic_string_view/operators/char/89446.cc:
4827 Likewise.
4828 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
4829 Likewise.
4830 * testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc:
4831 Likewise.
4832 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
4833 Likewise.
4834 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
4835 Likewise.
4836 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
4837 Likewise.
4838 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
4839 Likewise.
4840 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
4841 Likewise.
4842 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
4843 Likewise.
4844 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc:
4845 Likewise.
4846 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
4847 Likewise.
4848 * testsuite/21_strings/basic_string_view/requirements/traits_neg.cc:
4849 Likewise.
4850 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
4851 Likewise.
4852 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
4853 * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
4854 * testsuite/21_strings/char_traits/requirements/char/99181.cc:
4855 Likewise.
4856 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
4857
4858 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4859
4860 * testsuite/20_util/memory_resource/1.cc: Remove -std=gnu++17
4861 from dg-options directive.
4862 * testsuite/20_util/memory_resource/2.cc: Likewise.
4863 * testsuite/20_util/monotonic_buffer_resource/1.cc: Likewise.
4864 * testsuite/20_util/monotonic_buffer_resource/93208.cc:
4865 Likewise.
4866 * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
4867 Likewise.
4868 * testsuite/20_util/monotonic_buffer_resource/deallocate.cc:
4869 Likewise.
4870 * testsuite/20_util/monotonic_buffer_resource/release.cc:
4871 Likewise.
4872 * testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc:
4873 Likewise.
4874 * testsuite/20_util/polymorphic_allocator/1.cc: Likewise.
4875 * testsuite/20_util/polymorphic_allocator/construct_pair.cc:
4876 Likewise.
4877 * testsuite/20_util/polymorphic_allocator/resource.cc: Likewise.
4878 * testsuite/20_util/polymorphic_allocator/select.cc: Likewise.
4879 * testsuite/20_util/synchronized_pool_resource/allocate.cc:
4880 Likewise.
4881 * testsuite/20_util/synchronized_pool_resource/allocate_single.cc:
4882 Likewise.
4883 * testsuite/20_util/synchronized_pool_resource/cons.cc:
4884 Likewise.
4885 * testsuite/20_util/synchronized_pool_resource/cons_single.cc:
4886 Likewise.
4887 * testsuite/20_util/synchronized_pool_resource/is_equal.cc:
4888 Likewise.
4889 * testsuite/20_util/synchronized_pool_resource/multithreaded.cc:
4890 Likewise.
4891 * testsuite/20_util/synchronized_pool_resource/options.cc:
4892 Likewise.
4893 * testsuite/20_util/synchronized_pool_resource/release.cc:
4894 Likewise.
4895 * testsuite/20_util/synchronized_pool_resource/release_single.cc:
4896 Likewise.
4897 * testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc:
4898 Likewise.
4899 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
4900 Likewise.
4901 * testsuite/20_util/unsynchronized_pool_resource/cons.cc:
4902 Likewise.
4903 * testsuite/20_util/unsynchronized_pool_resource/is_equal.cc:
4904 Likewise.
4905 * testsuite/20_util/unsynchronized_pool_resource/options.cc:
4906 Likewise.
4907 * testsuite/20_util/unsynchronized_pool_resource/release.cc:
4908 Likewise.
4909 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
4910 Likewise.
4911 * testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise.
4912 * testsuite/23_containers/deque/types/pmr_typedefs_debug.cc:
4913 Likewise.
4914 * testsuite/23_containers/forward_list/pmr_typedefs.cc:
4915 Likewise.
4916 * testsuite/23_containers/forward_list/pmr_typedefs_debug.cc:
4917 Likewise.
4918 * testsuite/23_containers/list/pmr_typedefs.cc: Likewise.
4919 * testsuite/23_containers/list/pmr_typedefs_debug.cc: Likewise.
4920 * testsuite/23_containers/map/pmr_typedefs.cc: Likewise.
4921 * testsuite/23_containers/map/pmr_typedefs_debug.cc: Likewise.
4922 * testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise.
4923 * testsuite/23_containers/multimap/pmr_typedefs_debug.cc:
4924 Likewise.
4925 * testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise.
4926 * testsuite/23_containers/multiset/pmr_typedefs_debug.cc:
4927 Likewise.
4928 * testsuite/23_containers/set/pmr_typedefs.cc: Likewise.
4929 * testsuite/23_containers/set/pmr_typedefs_debug.cc: Likewise.
4930 * testsuite/23_containers/unordered_map/pmr_typedefs.cc:
4931 Likewise.
4932 * testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc:
4933 Likewise.
4934 * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc:
4935 Likewise.
4936 * testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc:
4937 Likewise.
4938 * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc:
4939 Likewise.
4940 * testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc:
4941 Likewise.
4942 * testsuite/23_containers/unordered_set/pmr_typedefs.cc:
4943 Likewise.
4944 * testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc:
4945 Likewise.
4946 * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise.
4947 * testsuite/23_containers/vector/types/pmr_typedefs_debug.cc:
4948 Likewise.
4949 * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
4950
4951 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4952
4953 * testsuite/29_atomics/atomic/69769.cc: Remove -std=gnu++17 from
4954 dg-options.
4955 * testsuite/29_atomics/atomic/is_always_lock_free.cc:
4956 * testsuite/29_atomics/atomic/requirements/typedefs.cc:
4957 * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc:
4958 * testsuite/29_atomics/atomic_integral/requirements/typedefs.cc:
4959 * testsuite/30_threads/lock_guard/cons/deduction.cc: Likewise.
4960 * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
4961 * testsuite/30_threads/scoped_lock/cons/deduction.cc: Likewise.
4962 * testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc:
4963 Likewise.
4964 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc:
4965 Likewise.
4966 * testsuite/30_threads/shared_lock/70766.cc: Likewise.
4967 * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
4968 * testsuite/30_threads/shared_mutex/cons/assign_neg.cc:
4969 Likewise.
4970 * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise.
4971 * testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
4972 Likewise.
4973 * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
4974 * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
4975 * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
4976 * testsuite/30_threads/unique_lock/cons/deduction.cc: Likewise.
4977
4978 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4979
4980 * testsuite/20_util/any/assign/1.cc: Remove -std=gnu++17 from
4981 dg-options directive.
4982 * testsuite/20_util/any/assign/2.cc: Likewise.
4983 * testsuite/20_util/any/assign/emplace.cc: Likewise.
4984 * testsuite/20_util/any/assign/exception.cc: Likewise.
4985 * testsuite/20_util/any/assign/self.cc: Likewise.
4986 * testsuite/20_util/any/cons/1.cc: Likewise.
4987 * testsuite/20_util/any/cons/2.cc: Likewise.
4988 * testsuite/20_util/any/cons/90415.cc: Likewise.
4989 * testsuite/20_util/any/cons/92156.cc: Likewise.
4990 * testsuite/20_util/any/cons/aligned.cc: Likewise.
4991 * testsuite/20_util/any/cons/explicit.cc: Likewise.
4992 * testsuite/20_util/any/cons/in_place.cc: Likewise.
4993 * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
4994 * testsuite/20_util/any/make_any.cc: Likewise.
4995 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
4996 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
4997 * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
4998 * testsuite/20_util/any/misc/swap.cc: Likewise.
4999 * testsuite/20_util/any/modifiers/1.cc: Likewise.
5000 * testsuite/20_util/any/modifiers/83658.cc: Likewise.
5001 * testsuite/20_util/any/modifiers/92156.cc: Likewise.
5002 * testsuite/20_util/any/observers/type.cc: Likewise.
5003 * testsuite/20_util/any/requirements.cc: Likewise.
5004 * testsuite/20_util/any/typedefs.cc: Likewise.
5005 * testsuite/20_util/optional/77288.cc: Likewise.
5006 * testsuite/20_util/optional/84601.cc: Likewise.
5007 * testsuite/20_util/optional/assignment/1.cc: Likewise.
5008 * testsuite/20_util/optional/assignment/2.cc: Likewise.
5009 * testsuite/20_util/optional/assignment/3.cc: Likewise.
5010 * testsuite/20_util/optional/assignment/4.cc: Likewise.
5011 * testsuite/20_util/optional/assignment/5.cc: Likewise.
5012 * testsuite/20_util/optional/assignment/6.cc: Likewise.
5013 * testsuite/20_util/optional/assignment/7.cc: Likewise.
5014 * testsuite/20_util/optional/assignment/8.cc: Likewise.
5015 * testsuite/20_util/optional/assignment/9.cc: Likewise.
5016 * testsuite/20_util/optional/bad_access.cc: Likewise.
5017 * testsuite/20_util/optional/cons/77727.cc: Likewise.
5018 * testsuite/20_util/optional/cons/85642.cc: Likewise.
5019 * testsuite/20_util/optional/cons/copy.cc: Likewise.
5020 * testsuite/20_util/optional/cons/deduction.cc: Likewise.
5021 * testsuite/20_util/optional/cons/default.cc: Likewise.
5022 * testsuite/20_util/optional/cons/move.cc: Likewise.
5023 * testsuite/20_util/optional/cons/trivial.cc: Likewise.
5024 * testsuite/20_util/optional/cons/value.cc: Likewise.
5025 * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
5026 * testsuite/20_util/optional/constexpr/cons/default.cc:
5027 Likewise.
5028 * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
5029 * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
5030 * testsuite/20_util/optional/constexpr/make_optional.cc:
5031 Likewise.
5032 * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
5033 * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
5034 * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
5035 * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
5036 * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
5037 * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
5038 * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
5039 * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
5040 * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
5041 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
5042 * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
5043 * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
5044 * testsuite/20_util/optional/hash.cc: Likewise.
5045 * testsuite/20_util/optional/in_place.cc: Likewise.
5046 * testsuite/20_util/optional/make_optional.cc: Likewise.
5047 * testsuite/20_util/optional/nullopt.cc: Likewise.
5048 * testsuite/20_util/optional/observers/1.cc: Likewise.
5049 * testsuite/20_util/optional/observers/2.cc: Likewise.
5050 * testsuite/20_util/optional/observers/3.cc: Likewise.
5051 * testsuite/20_util/optional/observers/4.cc: Likewise.
5052 * testsuite/20_util/optional/observers/5.cc: Likewise.
5053 * testsuite/20_util/optional/observers/6.cc: Likewise.
5054 * testsuite/20_util/optional/relops/1.cc: Likewise.
5055 * testsuite/20_util/optional/relops/2.cc: Likewise.
5056 * testsuite/20_util/optional/relops/3.cc: Likewise.
5057 * testsuite/20_util/optional/relops/4.cc: Likewise.
5058 * testsuite/20_util/optional/relops/5.cc: Likewise.
5059 * testsuite/20_util/optional/relops/6.cc: Likewise.
5060 * testsuite/20_util/optional/relops/7.cc: Likewise.
5061 * testsuite/20_util/optional/requirements.cc: Likewise.
5062 * testsuite/20_util/optional/swap/1.cc: Likewise.
5063 * testsuite/20_util/optional/swap/2.cc: Likewise.
5064 * testsuite/20_util/optional/typedefs.cc: Likewise.
5065 * testsuite/20_util/variant/80165.cc: Likewise.
5066 * testsuite/20_util/variant/85183.cc: Likewise.
5067 * testsuite/20_util/variant/86874.cc: Likewise.
5068 * testsuite/20_util/variant/87431.cc: Likewise.
5069 * testsuite/20_util/variant/87619.cc: Likewise.
5070 * testsuite/20_util/variant/91807.cc: Likewise.
5071 * testsuite/20_util/variant/any.cc: Likewise.
5072 * testsuite/20_util/variant/compile.cc: Likewise.
5073 * testsuite/20_util/variant/deduction.cc: Likewise.
5074 * testsuite/20_util/variant/exception_safety.cc: Likewise.
5075 * testsuite/20_util/variant/hash.cc: Likewise.
5076 * testsuite/20_util/variant/index_type.cc: Likewise.
5077 * testsuite/20_util/variant/relops/89851.cc: Likewise.
5078 * testsuite/20_util/variant/relops/90008.cc: Likewise.
5079 * testsuite/20_util/variant/run.cc: Likewise.
5080 * testsuite/20_util/variant/visit.cc: Likewise.
5081
5082 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
5083
5084 * testsuite/27_io/basic_filebuf/open/char/path.cc: Remove
5085 -std=gnu++17 from dg-options directive.
5086 * testsuite/27_io/basic_fstream/cons/char/path.cc: Likewise.
5087 * testsuite/27_io/basic_fstream/open/char/path.cc: Likewise.
5088 * testsuite/27_io/basic_ifstream/cons/char/path.cc: Likewise.
5089 * testsuite/27_io/basic_ifstream/open/char/path.cc: Likewise.
5090 * testsuite/27_io/basic_ofstream/cons/char/path.cc: Likewise.
5091 * testsuite/27_io/basic_ofstream/open/char/path.cc: Likewise.
5092 * testsuite/27_io/filesystem/directory_entry/86597.cc: Likewise.
5093 * testsuite/27_io/filesystem/directory_entry/lwg3171.cc:
5094 Likewise.
5095 * testsuite/27_io/filesystem/file_status/1.cc: Likewise.
5096 * testsuite/27_io/filesystem/filesystem_error/cons.cc: Likewise.
5097 * testsuite/27_io/filesystem/filesystem_error/copy.cc: Likewise.
5098 * testsuite/27_io/filesystem/iterators/91067.cc: Likewise.
5099 * testsuite/27_io/filesystem/iterators/caching.cc: Likewise.
5100 * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
5101 Likewise.
5102 * testsuite/27_io/filesystem/iterators/pop.cc: Likewise.
5103 * testsuite/27_io/filesystem/iterators/recursion_pending.cc:
5104 Likewise.
5105 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
5106 Likewise.
5107 * testsuite/27_io/filesystem/operations/absolute.cc: Likewise.
5108 * testsuite/27_io/filesystem/operations/all.cc: Likewise.
5109 * testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
5110 * testsuite/27_io/filesystem/operations/copy.cc: Likewise.
5111 * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
5112 * testsuite/27_io/filesystem/operations/create_directories.cc:
5113 Likewise.
5114 * testsuite/27_io/filesystem/operations/create_directory.cc:
5115 Likewise.
5116 * testsuite/27_io/filesystem/operations/create_symlink.cc:
5117 Likewise.
5118 * testsuite/27_io/filesystem/operations/current_path.cc:
5119 Likewise.
5120 * testsuite/27_io/filesystem/operations/equivalent.cc: Likewise.
5121 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
5122 * testsuite/27_io/filesystem/operations/file_size.cc: Likewise.
5123 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
5124 * testsuite/27_io/filesystem/operations/last_write_time.cc:
5125 Likewise.
5126 * testsuite/27_io/filesystem/operations/permissions.cc:
5127 Likewise.
5128 * testsuite/27_io/filesystem/operations/proximate.cc: Likewise.
5129 * testsuite/27_io/filesystem/operations/read_symlink.cc:
5130 Likewise.
5131 * testsuite/27_io/filesystem/operations/relative.cc: Likewise.
5132 * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
5133 * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
5134 * testsuite/27_io/filesystem/operations/rename.cc: Likewise.
5135 * testsuite/27_io/filesystem/operations/resize_file.cc:
5136 Likewise.
5137 * testsuite/27_io/filesystem/operations/space.cc: Likewise.
5138 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
5139 * testsuite/27_io/filesystem/operations/symlink_status.cc:
5140 Likewise.
5141 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
5142 Likewise.
5143 * testsuite/27_io/filesystem/operations/weakly_canonical.cc:
5144 Likewise.
5145 * testsuite/27_io/filesystem/path/append/path.cc: Likewise.
5146 * testsuite/27_io/filesystem/path/append/source.cc: Likewise.
5147 * testsuite/27_io/filesystem/path/assign/assign.cc: Likewise.
5148 * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
5149 * testsuite/27_io/filesystem/path/compare/compare.cc: Likewise.
5150 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
5151 * testsuite/27_io/filesystem/path/compare/path.cc: Likewise.
5152 * testsuite/27_io/filesystem/path/compare/strings.cc: Likewise.
5153 * testsuite/27_io/filesystem/path/concat/92853.cc: Likewise.
5154 * testsuite/27_io/filesystem/path/concat/94063.cc: Likewise.
5155 * testsuite/27_io/filesystem/path/concat/path.cc: Likewise.
5156 * testsuite/27_io/filesystem/path/concat/strings.cc: Likewise.
5157 * testsuite/27_io/filesystem/path/construct/80762.cc: Likewise.
5158 * testsuite/27_io/filesystem/path/construct/90281.cc: Likewise.
5159 * testsuite/27_io/filesystem/path/construct/90634.cc: Likewise.
5160 * testsuite/27_io/filesystem/path/construct/copy.cc: Likewise.
5161 * testsuite/27_io/filesystem/path/construct/default.cc:
5162 Likewise.
5163 * testsuite/27_io/filesystem/path/construct/format.cc: Likewise.
5164 * testsuite/27_io/filesystem/path/construct/locale.cc: Likewise.
5165 * testsuite/27_io/filesystem/path/construct/range.cc: Likewise.
5166 * testsuite/27_io/filesystem/path/construct/string_view.cc:
5167 Likewise.
5168 * testsuite/27_io/filesystem/path/decompose/extension.cc:
5169 Likewise.
5170 * testsuite/27_io/filesystem/path/decompose/filename.cc:
5171 Likewise.
5172 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
5173 Likewise.
5174 * testsuite/27_io/filesystem/path/decompose/relative_path.cc:
5175 Likewise.
5176 * testsuite/27_io/filesystem/path/decompose/root_directory.cc:
5177 Likewise.
5178 * testsuite/27_io/filesystem/path/decompose/root_name.cc:
5179 Likewise.
5180 * testsuite/27_io/filesystem/path/decompose/root_path.cc:
5181 Likewise.
5182 * testsuite/27_io/filesystem/path/decompose/stem.cc: Likewise.
5183 * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc:
5184 Likewise.
5185 * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise.
5186 * testsuite/27_io/filesystem/path/generation/normal.cc:
5187 Likewise.
5188 * testsuite/27_io/filesystem/path/generation/normal2.cc:
5189 Likewise.
5190 * testsuite/27_io/filesystem/path/generation/proximate.cc:
5191 Likewise.
5192 * testsuite/27_io/filesystem/path/generation/relative.cc:
5193 Likewise.
5194 * testsuite/27_io/filesystem/path/generic/94242.cc: Likewise.
5195 * testsuite/27_io/filesystem/path/generic/generic_string.cc:
5196 Likewise.
5197 * testsuite/27_io/filesystem/path/generic/utf.cc: Likewise.
5198 * testsuite/27_io/filesystem/path/generic/wchar_t.cc: Likewise.
5199 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
5200 * testsuite/27_io/filesystem/path/itr/components.cc: Likewise.
5201 * testsuite/27_io/filesystem/path/itr/traversal.cc: Likewise.
5202 * testsuite/27_io/filesystem/path/modifiers/clear.cc: Likewise.
5203 * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
5204 Likewise.
5205 * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc:
5206 Likewise.
5207 * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
5208 Likewise.
5209 * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
5210 Likewise.
5211 * testsuite/27_io/filesystem/path/modifiers/swap.cc: Likewise.
5212 * testsuite/27_io/filesystem/path/native/alloc.cc: Likewise.
5213 * testsuite/27_io/filesystem/path/native/string-char8_t.cc:
5214 Likewise.
5215 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
5216 * testsuite/27_io/filesystem/path/nonmember/append.cc: Likewise.
5217 * testsuite/27_io/filesystem/path/nonmember/cmp.cc: Likewise.
5218 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
5219 Likewise.
5220 * testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
5221 * testsuite/27_io/filesystem/path/query/empty_neg.cc:
5222 * testsuite/27_io/filesystem/path/query/has_extension.cc:
5223 Likewise.
5224 * testsuite/27_io/filesystem/path/query/has_filename.cc:
5225 Likewise.
5226 * testsuite/27_io/filesystem/path/query/has_parent_path.cc:
5227 Likewise.
5228 * testsuite/27_io/filesystem/path/query/has_relative_path.cc:
5229 Likewise.
5230 * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
5231 Likewise.
5232 * testsuite/27_io/filesystem/path/query/has_root_name.cc:
5233 Likewise.
5234 * testsuite/27_io/filesystem/path/query/has_root_path.cc:
5235 Likewise.
5236 * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
5237 * testsuite/27_io/filesystem/path/query/is_absolute.cc:
5238 Likewise.
5239 * testsuite/27_io/filesystem/path/query/is_relative.cc:
5240 Likewise.
5241 * testsuite/experimental/filesystem/path/construct/string_view.cc:
5242 Likewise.
5243
5244 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
5245
5246 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc:
5247 Remove -std=gnu++17 from dg-options.
5248 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
5249 Likewise.
5250 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc:
5251 Likewise.
5252 * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc:
5253 Likewise.
5254 * testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise.
5255 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
5256 Likewise.
5257 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
5258 Likewise.
5259 * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc:
5260 Likewise.
5261 * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc:
5262 Likewise.
5263 * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
5264 Likewise.
5265 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
5266 Likewise.
5267 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
5268 Likewise.
5269 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
5270 Likewise.
5271 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc:
5272 Likewise.
5273 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc:
5274 Likewise.
5275 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc:
5276 Likewise.
5277 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
5278 Likewise.
5279 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
5280 Likewise.
5281 * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc:
5282 Likewise.
5283 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
5284 Likewise.
5285 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc:
5286 Likewise.
5287 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
5288 Likewise.
5289 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
5290 Likewise.
5291 * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc:
5292 Likewise.
5293 * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc:
5294 Likewise.
5295 * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc:
5296 Likewise.
5297 * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc:
5298 Likewise.
5299 * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc:
5300 Likewise.
5301 * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc:
5302 Likewise.
5303 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
5304 Likewise.
5305 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
5306 Likewise.
5307 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc:
5308 Likewise.
5309 * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc:
5310 Likewise.
5311 * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
5312 Likewise.
5313 * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc:
5314 Likewise.
5315 * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
5316 Likewise.
5317 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc:
5318 Likewise.
5319 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
5320 Likewise.
5321 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
5322 Likewise.
5323 * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
5324 Likewise.
5325 * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: Likewise.
5326 * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc:
5327 Likewise.
5328 * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
5329 Likewise.
5330 * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
5331 Likewise.
5332 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc:
5333 Likewise.
5334 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
5335 Likewise.
5336 * testsuite/25_algorithms/pstl/alg_sorting/set.cc: Likewise.
5337 * testsuite/25_algorithms/pstl/alg_sorting/sort.cc: Likewise.
5338 * testsuite/25_algorithms/pstl/feature_test-2.cc: Likewise.
5339 * testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise.
5340 * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise.
5341 * testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise.
5342 * testsuite/25_algorithms/pstl/feature_test.cc: Likewise.
5343 * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc:
5344 Likewise.
5345 * testsuite/26_numerics/pstl/numeric_ops/reduce.cc: Likewise.
5346 * testsuite/26_numerics/pstl/numeric_ops/scan.cc: Likewise.
5347 * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
5348 Likewise.
5349 * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc:
5350 Likewise.
5351
5352 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
5353
5354 * testsuite/20_util/scoped_allocator/69293_neg.cc: Add dg-error
5355 for additional errors in C++20.
5356 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
5357 Likewise.
5358 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
5359 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
5360
5361 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
5362
5363 * testsuite/20_util/variant/compile.cc: Rename 'any' to avoid
5364 clash with std::any.
5365
5366 2021-05-07 Jonathan Wakely <jwakely@redhat.com>
5367
5368 * include/std/istream (__rvalue_stream_extraction_t): Replace
5369 use of __rval_streamable.
5370 * include/std/ostream (__rvalue_stream_insertion_t): Likewise.
5371 (__rval_streamable): Remove.
5372 (_Require_derived_from_ios_base, __derived_from_ios_base): New
5373 helper for checking constraints.
5374 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Fix
5375 reference to the wrong subclause of the standard.
5376 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
5377 Likewise.
5378 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
5379 Likewise.
5380 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
5381 Likewise.
5382 * testsuite/27_io/basic_ostream/inserters_other/char/99692.cc:
5383 New test.
5384 * testsuite/27_io/filesystem/path/io/dr2989.cc: Adjust pruned
5385 errors.
5386
5387 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
5388
5389 * include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
5390 Improve static_assert messages.
5391 * testsuite/25_algorithms/copy/58982.cc: Adjust expected output.
5392 * testsuite/25_algorithms/copy_n/58982.cc: Likewise.
5393
5394 2021-05-06 Patrick Palka <ppalka@redhat.com>
5395
5396 * include/std/ranges (filter_view::_Iterator::base): Make the
5397 const& overload unconstrained and return a const reference as
5398 per LWG 3533. Make unconditionally noexcept.
5399 (transform_view::_Iterator::base): Likewise.
5400 (elements_view::_Iterator::base): Likewise.
5401
5402 2021-05-06 Patrick Palka <ppalka@redhat.com>
5403
5404 * include/bits/stl_iterator.h (move_iterator::base): Make the
5405 const& overload unconstrained and return a const reference as
5406 per LWG 3391. Make unconditionally noexcept.
5407 (counted_iterator::base): Likewise.
5408 * testsuite/24_iterators/move_iterator/lwg3391.cc: New test.
5409 * testsuite/24_iterators/move_iterator/move_only.cc: Adjust
5410 has_member_base concept to decay-copy the result of base().
5411
5412 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
5413
5414 * include/std/type_traits (remove_cvref_t): Define in terms of
5415 remove_cvref.
5416 * testsuite/20_util/remove_cvref/value.cc: Check alias.
5417
5418 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
5419
5420 Revert:
5421 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
5422
5423 * include/std/charconv (__from_chars_alnum): Pass unsigned
5424 char to std::isdigit.
5425
5426 2021-05-05 Patrick Palka <ppalka@redhat.com>
5427
5428 * include/bits/ranges_util.h (enable_borrowed_range<subrange>):
5429 Remove constraints on this partial specialization.
5430 * include/std/ranges (enable_borrowed_range<iota_view>):
5431 Likewise.
5432
5433 2021-05-05 Patrick Palka <ppalka@redhat.com>
5434
5435 * include/std/ranges (transform_view::_Iterator::iter_swap):
5436 Remove as per LWG 3520.
5437 (join_view::_Iterator::iter_swap): Add indirectly_swappable
5438 constraint as per LWG 3517.
5439
5440 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
5441
5442 * testsuite/20_util/function_objects/invoke/3.cc: Check feature
5443 test macro.
5444 * testsuite/20_util/function_objects/invoke/version.cc: New test.
5445
5446 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
5447
5448 * include/std/charconv (__from_chars_alnum): Pass unsigned
5449 char to std::isdigit.
5450
5451 2021-05-05 Corentin Gay <gay@adacore.com>
5452
5453 * acinclude.m4: Add VxWorks-specific case for the
5454 configuration of ctypes.
5455 * configure: Regenerate.
5456 * config/locale/vxworks/ctype_members.cc: Add VxWorks-specific
5457 version.
5458 * config/os/vxworks/ctype_base.h: Adjust for VxWorks7+.
5459 * config/os/vxworks/ctype_configure_char.cc: Likewise.
5460 * config/os/vxworks/ctype_inline.h: Likewise.
5461 * testsuite/28_regex/traits/char/isctype.cc: Defines
5462 NEWLINE_IN_CLASS_BLANK if the target is VxWorks.
5463 * testsuite/28_regex/traits/wchar_t/isctype.cc: Likewise.
5464
5465 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
5466
5467 * include/std/future (promise::set_value): Check for existence
5468 of shared state before dereferncing it.
5469 (promise::set_exception, promise::set_value_at_thread_exit)
5470 (promise::set_exception_at_thread_exit): Likewise.
5471 (promise<R&>::set_value, promise<R&>::set_exception)
5472 (promise<R&>::set_value_at_thread_exit)
5473 (promise<R&>::set_exception_at_thread_exit): Likewise.
5474 (promise<void>::set_value, promise<void>::set_exception)
5475 (promise<void>::set_value_at_thread_exit)
5476 (promise<void>::set_exception_at_thread_exit): Likewise.
5477 * testsuite/30_threads/promise/members/at_thread_exit2.cc:
5478 Remove unused variable.
5479
5480 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
5481
5482 * include/bits/basic_string.h (basic_string(const CharT*, const A&)):
5483 Do not do arithmetic on null pointer.
5484
5485 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
5486
5487 * include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
5488 (find_key_pointer(key_const_reference, false_type))
5489 (find_key_pointer(key_const_reference, true_type)): Do not
5490 dereference null pointer.
5491
5492 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
5493
5494 * testsuite/20_util/from_chars/3.cc: Use unsigned type to avoid
5495 overflow.
5496 * testsuite/24_iterators/reverse_iterator/2.cc: Do not add
5497 non-zero value to null pointer.
5498 * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc:
5499 Use past-the-end iterator for result.
5500 * testsuite/25_algorithms/move_backward/69478.cc: Likewise.
5501 * testsuite/25_algorithms/move_backward/93872.cc: Likewise.
5502
5503 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
5504
5505 PR libstdc++/100384
5506 * include/std/variant (__get_t): New alias template yielding the
5507 return type of std::get<N> on a variant.
5508 (__visit_result_t): New alias template yielding the result of
5509 std::visit.
5510 (__same_types): Move into namespace __detail::__variant.
5511 (__check_visitor_results): Likewise. Use __invoke_result_t and
5512 __get_t.
5513 (__check_visitor_result): Remove.
5514 (visit): Use __visit_result_t for return type.
5515 * testsuite/20_util/variant/100384.cc: New test.
5516
5517 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
5518
5519 * acinclude.m4 (GLIBCXX_ENABLE_INT128_FLOAT128): Remove
5520 checks for __int128 and rename to GLIBCXX_ENABLE_FLOAT128.
5521 * config.h.in: Regenerate.
5522 * configure: Regenerate.
5523 * configure.ac: Adjust to use GLIBCXX_ENABLE_FLOAT128.
5524 * include/bits/random.h (_Select_uint_least_t<s, 1>):
5525 Use __SIZEOF_INT128__ to decide whether to use __int128.
5526 * include/std/charconv (__to_chars_unsigned_type): Likewise.
5527
5528 2021-05-03 Gerald Pfeifer <gerald@pfeifer.com>
5529
5530 * doc/xml/manual/ctype.xml: Move unix.org reference to https.
5531 * doc/html/manual/facets.html: Regenerate.
5532
5533 2021-04-30 Patrick Palka <ppalka@redhat.com>
5534
5535 * include/std/ranges (__detail::__non_propating_cache): Define
5536 as per P2328.
5537 (join_view): Remove constraints on the value and reference types
5538 of the wrapped iterator type as per P2328.
5539 (join_view::_Iterator::_M_satisfy): Adjust as per P2328.
5540 (join_view::_Iterator::operator++): Likewise.
5541 (join_view::_M_inner): Use __non_propating_cache as per P2328.
5542 Remove now-redundant use of __maybe_present_t.
5543 * testsuite/std/ranges/adaptors/join.cc: Include <array>.
5544 (test10): New test.
5545
5546 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
5547
5548 * include/bits/basic_string.h (__cpp_lib_constexpr_string):
5549 Only define for C++17 and later.
5550 * include/std/version (__cpp_lib_semaphore): Fix condition
5551 to match the one in <semaphore>.
5552
5553 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
5554
5555 * acinclude.m4 (GLIBCXX_CHECK_INT64_T): Delete.
5556 * config.h.in: Regenerate.
5557 * configure: Regenerate.
5558 * configure.ac: Do not use GLIBCXX_CHECK_INT64_T.
5559 * include/bits/postypes.h: Remove include of <stdint.h> and
5560 definition/undefinition of the __STDC_LIMIT_MACROS and
5561 __STDC_CONSTANT_MACROS macros.
5562 (streamoff): Use __INT64_TYPE__ if defined.
5563
5564 2021-04-30 Patrick Palka <ppalka@redhat.com>
5565
5566 * include/std/ranges (split_view::_InnerIter::operator++):
5567 Depend on _Base instead of _Vp directly, as per LWG 3532.
5568
5569 2021-04-30 Patrick Palka <ppalka@redhat.com>
5570
5571 * include/bits/ranges_util.h (subrange::subrange): Avoid
5572 list-initialization in delegating constructor.
5573 * include/std/ranges (single_view): Replace implicit guide
5574 with explicit deduction guide that decays its argument.
5575 (_Single::operator()): Avoid CTAD when constructing the
5576 single_view object.
5577 (_Iota::operator()): Avoid list-initialization.
5578 (__detail::__can_filter_view, _Filter::operator()): Likewise.
5579 (__detail::__can_transform_view, _Transform::operator()): Likewise.
5580 (take_view::begin): Likewise.
5581 (__detail::__can_take_view, _Take::operator()): Likewise.
5582 (__detail::__can_take_while_view, _TakeWhile::operator()): Likewise.
5583 (__detail::__can_drop_view, _Drop::operator()): Likewise.
5584 (__detail::__can_drop_while_view, _DropWhile::operator()): Likewise.
5585 (split_view::split_view): Use views::single when initializing
5586 _M_pattern.
5587 (__detail::__can_split_view, _Split::operator()): Avoid
5588 list-initialization.
5589 (_Counted::operator()): Likewise.
5590 * testsuite/std/ranges/p2367.cc: New test.
5591
5592 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
5593
5594 PR libstdc++/60497
5595 * include/bits/basic_ios.tcc (basic_ios::copyfmt): use
5596 std::addressof.
5597 * include/bits/basic_string.tcc (basic_string::swap)
5598 (basic_string::assign): Likewise.
5599 * include/bits/deque.tcc (deque::operator=(const deque&)):
5600 Likewise.
5601 * include/bits/stl_tree.h (_Rb_tree::operator=(const * _Rb_tree&)):
5602 Likewise.
5603 * include/bits/vector.tcc (vector::operator=(const vector&)):
5604 Likewise.
5605
5606 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
5607
5608 * include/std/istream (operator>>(Istream&&, x&)): Simplify, as
5609 per LWG 1203.
5610 * include/std/ostream (operator<<(Ostream&&, const x&)):
5611 Likewise.
5612 * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc:
5613 Adjust dg-error pattern.
5614 * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc:
5615 Likewise.
5616 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Define
5617 is_extractable trait to replace std::__is_extractable. Make it
5618 work with rvalue streams as well as lvalues, to replace f() and
5619 g() helper functions.
5620 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
5621 Likewise.
5622 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
5623 Define is_insertable trait to replace std::__is_insertable. Make
5624 it work with rvalue streams as well as lvalues, to replace f()
5625 and g() helper functions.
5626 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
5627 Likewise.
5628 * testsuite/27_io/filesystem/path/io/dr2989.cc: Prune additional
5629 errors from new constraints.
5630 * testsuite/27_io/rvalue_streams-2.cc: Remove PR 80675 checks,
5631 which are no longer expected to compile.
5632 * testsuite/27_io/rvalue_streams.cc: Adjust existing test.
5633 Verify LWG 1203 changes.
5634
5635 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
5636
5637 PR libstdc++/100285
5638 * include/experimental/socket (__basic_socket_impl::set_option)
5639 (__basic_socket_impl::get_option) [!_GLIBCXX_HAVE_SYS_SOCKET_H]:
5640 Just set error code.
5641 * testsuite/experimental/net/socket/socket_base.cc: CHeck
5642 for <sys/socket.h> not <socket.h>.
5643
5644 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
5645
5646 PR libstdc++/100180
5647 PR libstdc++/100286
5648 PR libstdc++/100351
5649 * testsuite/experimental/net/internet/address/v4/comparisons.cc:
5650 Use new effective-target keyword.
5651 * testsuite/experimental/net/internet/address/v4/cons.cc:
5652 Likewise.
5653 * testsuite/experimental/net/internet/address/v4/creation.cc:
5654 Likewise.
5655 * testsuite/experimental/net/internet/address/v4/members.cc:
5656 Likewise.
5657 * testsuite/experimental/net/internet/address/v6/members.cc:
5658 Likewise.
5659 * testsuite/experimental/net/internet/resolver/base.cc:
5660 Likewise.
5661 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
5662 Likewise.
5663 * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
5664 Likewise.
5665 * testsuite/experimental/net/internet/socket/opt.cc:
5666 Likewise.
5667 * testsuite/experimental/net/internet/tcp.cc:
5668 Likewise.
5669 * testsuite/experimental/net/internet/udp.cc:
5670 Likewise.
5671 * testsuite/lib/libstdc++.exp (check_effective_target_net_ts_ip):
5672 New proc to check net_ts_ip et.
5673
5674 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5675
5676 PR libstdc++/97930
5677 * testsuite/20_util/pair/requirements/structural.cc: New test.
5678
5679 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5680
5681 * include/bits/stl_pair.h (pair) [__cplusplus > 202002]: Add
5682 new definitions for constructors and assignment operators using
5683 concepts for constraints.
5684 * testsuite/20_util/pair/cons/99957.cc: Disable for C++20 and
5685 later.
5686 * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust
5687 expected error messages to also match C++20 errors.
5688
5689 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5690
5691 PR libstdc++/99957
5692 * include/bits/stl_pair.h (_PCC::_MoveCopyPair, _PCC::_CopyMovePair):
5693 Combine and replace with ...
5694 (_PCC::_DeprConsPair): New SFINAE helper function.
5695 (pair): Merge preprocessor blocks so that all C++03 members
5696 are defined together at the end.
5697 (pair::pair(const _T1&, _U2&&), pair::pair(_U1&&, const _T2&)):
5698 Replace _T1 and _T2 parameters with __null_ptr_constant and
5699 adjust constraints.
5700 * testsuite/20_util/pair/40925.cc: Use nullptr instead of 0.
5701 * testsuite/20_util/pair/cons/explicit_construct.cc: Likewise.
5702 * testsuite/20_util/pair/cons/99957.cc: New test.
5703
5704 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5705
5706 * include/bits/basic_string.h (__cpp_lib_constexpr_string): Define.
5707 * include/std/version (__cpp_lib_constexpr_string): Define.
5708 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
5709 Check for __cpp_lib_constexpr_string.
5710 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
5711 Likewise.
5712 * testsuite/21_strings/char_traits/requirements/version.cc: New test.
5713
5714 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5715
5716 * doc/Makefile.am (stamp-pdf-doxygen): Improve comment about
5717 dealing with errors. Use '@' to prevent shell command being
5718 echoed.
5719 * doc/Makefile.in: Regenerate.
5720
5721 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5722
5723 PR libstdc++/100298
5724 * include/bits/std_thread.h (thread::hardware_concurrency): Add
5725 missing noexcept to inline definition for non-gthreads targets.
5726
5727 2021-04-28 Patrick Palka <ppalka@redhat.com>
5728
5729 PR libstdc++/100187
5730 PR libstdc++/100237
5731 PR libstdc++/100249
5732 PR libstdc++/100287
5733 * include/bits/ranges_algo.h (__search_n_fn::operator()): Give
5734 the __value_comp lambda an explicit bool return type.
5735 (__is_permutation_fn::operator()): Give the __proj_scan local
5736 variable auto&& return type. Give the __comp_scan lambda an
5737 explicit bool return type.
5738 (__remove_fn::operator()): Give the __pred lambda an explicit
5739 bool return type.
5740 (__partition_fn::operator()): Don't std::move __first twice
5741 when returning an empty subrange.
5742 (__min_fn::operator()): Don't std::move __comp.
5743 (__max_fn::operator()): Likewise.
5744 (__minmax_fn::operator()): Likewise.
5745
5746 2021-04-27 Patrick Palka <ppalka@redhat.com>
5747
5748 PR libstdc++/100290
5749 * include/std/ranges (join_view::_Iterator::operator++): Correct
5750 the return type of the lambda to avoid returning a copy of
5751 _M_parent->_M_inner.
5752 * testsuite/std/ranges/adaptors/join.cc (test10): New test.
5753
5754 2021-04-27 Jakub Jelinek <jakub@redhat.com>
5755
5756 Revert:
5757 2021-04-22 Jakub Jelinek <jakub@redhat.com>
5758
5759 PR target/100182
5760 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
5761 ia32.
5762 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
5763 ia32.
5764
5765 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
5766
5767 * include/experimental/internet (address_v6::bytes_type): Adjust
5768 formatting.
5769 (basic_endpoint): Define _M_is_v6() to put all checks for
5770 AF_INET6 in one place.
5771 (basic_endpoint::resize): Simplify.
5772 (operator==(const tcp&, const tcp&)): Add constexpr and noexcept.
5773 (operator!=(const tcp&, const tcp&)): Likewise.
5774 (operator==(const udp&, const udp&)): Likewise.
5775 (operator!=(const udp&, const udp&)): Likewise.
5776 * testsuite/experimental/net/internet/tcp.cc: New test.
5777 * testsuite/experimental/net/internet/udp.cc: New test.
5778
5779 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
5780
5781 PR libstdc++/100286
5782 * include/experimental/internet (resolver_errc, resolver_category())
5783 (make_error_code, make_error_condition): Define unconditionally,
5784 only make enumerators and use of gai_strerror depend on the
5785 availability of <netdb.h>.
5786 (address_v4::to_string): Use correct constant for string length.
5787 (address_v4::to_string, address_v6::to_string): Define
5788 unconditionally, throw if unsupported.
5789 (make_address_v4, make_address_v6): Define unconditionally.
5790 Return an error if unsupported.
5791 (tcp, udp, v6_only, unicast::hops, multicast::*): Define
5792 conditionally,
5793 * testsuite/experimental/net/internet/socket/opt.cc: Check for
5794 <netinet/in.h> and <netinet/tcp.h> before using types from
5795 namespace net::ip.
5796
5797 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
5798
5799 PR libstdc++/100285
5800 * include/experimental/internet (resolver_base::flags):
5801 Define overloaded operators as hidden friends.
5802 * include/experimental/socket (socket_base::message_flags):
5803 Likewise.
5804
5805 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
5806
5807 * include/experimental/internet (tcp::no_delay, v6_only)
5808 (unicast::hops, multicast::hops, multicast::enable_loopback):
5809 Change access of base class and static data members. Add
5810 using-declaration for __socket_crtp::operator=(_Tp).
5811 (multicast::__mcastopt): New type.
5812 (multicast::join_group, multicast::leave_group): Derive from
5813 __mcastopt for common implementation.
5814 * include/experimental/socket: Add comment.
5815 * testsuite/experimental/net/internet/socket/opt.cc: New test.
5816 * testsuite/experimental/net/socket/socket_base.cc: Check for
5817 protected constructor/destructor of socket_base. Check for
5818 explicit constructors of socket option classes.
5819
5820 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
5821
5822 * include/experimental/bits/net.h (__socket_base): Add
5823 bool template parameter to allow BooleanSocketOption and
5824 IntegerSocketOption to have different __socket_base<int>
5825 base classes.
5826 (__socket_base<bool>): Adjust base class.
5827 (__socket_base<int>): Add partial specialization.
5828 (__socket_crtp::operator=(_Tp)): Add noexcept-specifier.
5829 * include/experimental/socket (socket_base::broadcast)
5830 (socket_base::debug, socket_base::do_not_route)
5831 (socket_base::keep_alive, socket_base::linger)
5832 (socket_base::out_of_band_inline)
5833 (socket_base::receive_buffer_size)
5834 (socket_base::receive_low_watermark)
5835 (socket_base::reuse_address, socket_base::send_buffer_size)
5836 (socket_base::send_low_watermark): Add using-declaration for
5837 __socket_crtp::operator=(_Tp).
5838 * testsuite/experimental/net/socket/socket_base.cc: Check
5839 properties of socket option types.
5840
5841 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
5842
5843 * include/experimental/internet (resolver_base::flags): Remove
5844 enumerators. Initialize constants directly with desired values.
5845 Make all operators constexpr and noexcept.
5846 * testsuite/experimental/net/internet/resolver/base.cc: Use
5847 __gnu_test::test_bitmask_values for bitmask type. Check
5848 construction and destruction is protected.
5849
5850 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
5851
5852 * include/bits/semaphore_base.h: Include <exception> and <errno.h>.
5853
5854 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
5855
5856 PR libstdc++/100259
5857 * include/experimental/internet (net::ip::make_error_code)
5858 (net::ip::make_error_condition, net::ip::make_network_v4)
5859 (net::ip::operator==(const udp&, const udp&)): Add 'inline'.
5860
5861 2021-04-24 David Edelsohn <dje.gcc@gmail.com>
5862
5863 * testsuite/lib/dg-options.exp (atomic_link_flags): New.
5864 (add_options_for_libatomic): Use atomic_link_flags.
5865
5866 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
5867
5868 PR libstdc++/100180
5869 * include/experimental/io_context (io_context): Define
5870 dummy_pollfd type so that most member functions still compile
5871 without <poll.h> and struct pollfd.
5872
5873 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
5874
5875 * include/experimental/io_context (io_context::async_wait): Add
5876 comment.
5877 * include/experimental/socket (basic_socket::async_connect):
5878 Cast wait_type constant to int.
5879 (basic_datagram_socket::async_receive): Likewise.
5880 (basic_datagram_socket::async_receive_from): Likewise.
5881 (basic_datagram_socket::async_send): Likewise.
5882 (basic_datagram_socket::async_send_to): Likewise.
5883 (basic_stream_socket::async_receive): Likewise.
5884 (basic_stream_socket::async_send): Likewise. Use io_context
5885 parameter directly, instead of via an executor.
5886 (basic_socket_acceptor::async_accept): Likewise.
5887
5888 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
5889
5890 * include/experimental/socket (socket_base::shutdown_type):
5891 (socket_base::wait_type, socket_base::message_flags):
5892 Remove enumerators. Initialize constants directly with desired
5893 values.
5894 (socket_base::message_flags): Make all operators constexpr and
5895 noexcept.
5896 * testsuite/util/testsuite_common_types.h (test_bitmask_values):
5897 New test utility.
5898 * testsuite/experimental/net/socket/socket_base.cc: New test.
5899
5900 2021-04-22 David Edelsohn <dje.gcc@gmail.com>
5901
5902 * config/os/aix/atomicity.h: Delete.
5903
5904 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
5905
5906 * include/bits/atomic_timed_wait.h (__cond_wait_until_impl):
5907 Handle system_clock as well as steady_clock.
5908 * testsuite/30_threads/semaphore/try_acquire_for.cc: Re-enable.
5909 * testsuite/30_threads/semaphore/try_acquire_until.cc:
5910 Re-enable.
5911
5912 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
5913
5914 * testsuite/30_threads/semaphore/try_acquire_posix.cc: Add
5915 options for libatomic.
5916
5917 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
5918
5919 * config/os/gnu-linux/os_defines.h: Fix type in comment.
5920
5921 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
5922
5923 PR libstdc++/99006
5924 * include/bits/shared_ptr.h (allocate_shared): Assert that _Tp
5925 is not an array type.
5926 * include/bits/shared_ptr_base.h (__allocate_shared): Likewise.
5927 * testsuite/20_util/shared_ptr/creation/99006.cc: New test.
5928
5929 2021-04-22 Thomas Rodgers <rodgert@twrodgers.com>
5930
5931 * include/bits/atomic_wait.h: Always notify waiters in the
5932 case of 'bare' address notification.
5933
5934 2021-04-22 Jakub Jelinek <jakub@redhat.com>
5935
5936 PR target/100182
5937 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
5938 ia32.
5939 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
5940 ia32.
5941
5942 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
5943
5944 PR libstdc++/100179
5945 * include/bits/semaphore_base.h: Remove #error.
5946 * include/std/semaphore: Do not define anything unless one of
5947 the implementations is available.
5948
5949 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
5950
5951 * include/bits/semaphore_base.h: Always reload __old in
5952 __atomic_semaphore::_S_do_try_acquire().
5953 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
5954 re-enable testcase.
5955
5956 2021-04-21 Philippe Blain <levraiphilippeblain@gmail.com>
5957 Jonathan Wakely <jwakely@redhat.com>
5958
5959 PR libstdc++/99453
5960 * python/Makefile.am: Install libstdc++*-gdb.py more robustly.
5961 * python/Makefile.in: Regenerate.
5962
5963 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
5964
5965 * include/bits/semaphore_base.h: Add missing _M_try_acquire()
5966 member to __platform_wait.
5967
5968 2021-04-21 Jonathan Wakely <jwakely@redhat.com>
5969
5970 * include/std/latch: Replace tab characters in license text.
5971 * include/std/semaphore: Likewise.
5972
5973 2021-04-21 Jakub Jelinek <jakub@redhat.com>
5974
5975 PR libstdc++/100164
5976 * acinclude.m4: For POSIX semaphores AC_DEFINE HAVE_POSIX_SEMAPHORE
5977 rather than _GLIBCXX_HAVE_POSIX_SEMAPHORE.
5978 * configure: Regenerated.
5979 * config.h.in: Regenerated.
5980
5981 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
5982
5983 * testsuite/30_threads/semaphore/try_acquire_for.cc: Disable
5984 test for targets not using futexes for semaphores.
5985 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
5986 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
5987 Disable for all targets.
5988
5989 2021-04-20 Thomas Rodgers <trodgers@redhat.com>
5990
5991 * include/Makefile.am: Add new <bits/this_thread_sleep.h> header.
5992 * include/Makefile.in: Regenerate.
5993 * include/bits/this_thread_sleep.h: New file.
5994 * include/bits/atomic_base.h: Adjust all calls
5995 to __atomic_wait/__atomic_notify for new call signatures.
5996 * include/bits/atomic_timed_wait.h: Extensive rewrite.
5997 * include/bits/atomic_wait.h: Likewise.
5998 * include/bits/semaphore_base.h: Adjust all calls
5999 to __atomic_wait/__atomic_notify for new call signatures.
6000 * include/std/atomic: Likewise.
6001 * include/std/barrier: Likewise.
6002 * include/std/latch: Likewise.
6003 * include/std/semaphore: Likewise.
6004 * include/std/thread (this_thread::sleep_for)
6005 (this_thread::sleep_until): Move to new header.
6006 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Simplify
6007 test.
6008 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
6009 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
6010 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
6011 * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
6012 * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
6013 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Likewise.
6014
6015 2021-04-20 Patrick Palka <ppalka@redhat.com>
6016
6017 PR libstdc++/95983
6018 * include/bits/stl_iterator.h (__detail::__move_iter_cat):
6019 Define.
6020 (move_iterator): Derive from the above in C++20 in order to
6021 conditionally define iterator_category as per P2259.
6022 (move_iterator::__base_cat): No longer used, so remove.
6023 (move_iterator::iterator_category): Remove in C++20.
6024 (__detail::__common_iter_use_postfix_proxy): Define.
6025 (common_iterator::_Proxy): Rename to ...
6026 (common_iterator:__arrow_proxy): ... this.
6027 (common_iterator::__postfix_proxy): Define as per P2259.
6028 (common_iterator::operator->): Adjust.
6029 (common_iterator::operator++): Adjust as per P2259.
6030 (iterator_traits<common_iterator>::_S_iter_cat): Define.
6031 (iterator_traits<common_iterator>::iterator_category): Change as
6032 per P2259.
6033 (__detail::__counted_iter_value_type): Define.
6034 (__detail::__counted_iter_concept): Define.
6035 (__detail::__counted_iter_cat): Define.
6036 (counted_iterator): Derive from the above three classes in order
6037 to conditionally define value_type, iterator_concept and
6038 iterator category respectively as per P2259.
6039 (counted_iterator::operator->): Define as per P2259.
6040 (incrementable_traits<counted_iterator>): Remove as per P2259.
6041 (iterator_traits<counted_iterator>): Adjust as per P2259.
6042 * include/std/ranges (__detail::__iota_view_iter_cat): Define.
6043 (iota_view::_Iterator): Derive from the above in order to
6044 conditionally define iterator_category as per P2259.
6045 (iota_view::_S_iter_cat): Rename to ...
6046 (iota_view::_S_iter_concept): ... this.
6047 (iota_view::iterator_concept): Use it to apply LWG 3291 changes.
6048 (iota_view::iterator_category): Remove.
6049 (__detail::__filter_view_iter_cat): Define.
6050 (filter_view::_Iterator): Derive from the above in order to
6051 conditionally define iterator_category as per P2259.
6052 (filter_view::_Iterator): Move to struct __filter_view_iter_cat.
6053 (filter_view::_Iterator::iterator_category): Remove.
6054 (transform_view::_Base): Define.
6055 (transform_view::__iter_cat): Define.
6056 (transform_view::_Iterator): Derive from the above in order to
6057 conditionally define iterator_category as per P2259.
6058 (transform_view::_Iterator::_Base): Just alias
6059 transform_view::_Base.
6060 (transform_view::_Iterator::_S_iter_cat): Move to struct
6061 transform_view::__iter_cat.
6062 (transform_view::_Iterator::iterator_category): Remove.
6063 (transform_view::_Sentinel::_Base): Just alias
6064 transform_view::_Base.
6065 (join_view::_Base): Define.
6066 (join_view::_Outer_iter): Define.
6067 (join_view::_Inner_iter): Define.
6068 (join_view::_S_ref_is_glvalue): Define.
6069 (join_view::__iter_cat): Define.
6070 (join_view::_Iterator): Derive from it in order to conditionally
6071 define iterator_category as per P2259.
6072 (join_view::_Iterator::_Base): Just alias join_view::_Base.
6073 (join_view::_Iterator::_S_ref_is_glvalue): Just alias
6074 join_view::_S_ref_is_glvalue.
6075 (join_view::_Iterator::_S_iter_cat): Move to struct
6076 transform_view::__iter_cat.
6077 (join_view::_Iterator::_Outer_iter): Just alias
6078 join_view::_Outer_iter.
6079 (join_view::_Iterator::_Inner_iter): Just alias
6080 join_view::_Inner_iter.
6081 (join_view::_Iterator::iterator_category): Remove.
6082 (join_view::_Sentinel::_Base): Just alias join_view::_Base.
6083 (__detail::__split_view_outer_iter_cat): Define.
6084 (__detail::__split_view_inner_iter_cat): Define.
6085 (split_view::_Base): Define.
6086 (split_view::_Outer_iter): Derive from __split_view_outer_iter_cat
6087 in order to conditionally define iterator_category as per P2259.
6088 (split_view::_Outer_iter::iterator_category): Remove.
6089 (split_view::_Inner_iter): Derive from __split_view_inner_iter_cat
6090 in order to conditionally define iterator_category as per P2259.
6091 (split_view::_Inner_iter::_S_iter_cat): Move to
6092 __split_view_inner_iter_cat.
6093 (split_view::_Inner_iter::iterator_category): Remove.
6094 (elements_view::_Base): Define.
6095 (elements_view::__iter_cat): Define.
6096 (elements_view::_Iterator): Derive from the above in order to
6097 conditionall define iterator_category as per P2259.
6098 (elements_view::_Iterator::_Base): Just alias
6099 elements_view::_Base.
6100 (elements_view::_Iterator::_S_iter_concept)
6101 (elements_view::_Iterator::iterator_concept): Define as per
6102 P2259.
6103 (elements_view::_Iterator::iterator_category): Remove.
6104 (elements_view::_Sentinel::_Base): Just alias
6105 elements_view::_Base.
6106 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
6107 Adjust constraints on iterator_traits<counted_iterator>.
6108 * testsuite/std/ranges/p2259.cc: New test.
6109
6110 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
6111
6112 PR libstdc++/100146
6113 * include/std/charconv (__cpp_lib_to_chars): Define
6114 conditionally.
6115 * include/std/version (__cpp_lib_to_chars): Likewise..
6116 * testsuite/20_util/from_chars/4.cc: Only check feature test
6117 macro, not _GLIBCXX_HAVE_USELOCALE.
6118 * testsuite/20_util/from_chars/5.cc: Likewise.
6119 * testsuite/20_util/from_chars/6.cc: Likewise.
6120 * testsuite/20_util/to_chars/long_double.cc: Likewise.
6121
6122 2021-04-20 Jakub Jelinek <jakub@redhat.com>
6123
6124 * testsuite/util/testsuite_abi.cc (compare_symbols): If any symbol
6125 versions with _IEEE128_ substring are found, set ieee_version_found
6126 to true. Ignore missing symbols with _IEEE128_ in version name if
6127 !ieee_version_found. Use i->first as version_name instead of
6128 i->second.version_name if the latter is empty.
6129 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
6130
6131 2021-04-19 H.J. Lu <hjl.tools@gmail.com>
6132
6133 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
6134 Updated.
6135
6136 2021-04-17 Jakub Jelinek <jakub@redhat.com>
6137
6138 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
6139 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
6140
6141 2021-04-17 Jakub Jelinek <jakub@redhat.com>
6142
6143 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
6144 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
6145 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
6146 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
6147 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
6148 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
6149
6150 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
6151
6152 * testsuite/lib/dg-options.exp (add_options_for_libatomic): Also
6153 add libatomic options for 32-bit sparc*-*-linux-gnu.
6154
6155 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
6156
6157 PR libstdc++/96657
6158 * libsupc++/Makefile.am: Add atomicity.cc here.
6159 * src/c++98/Makefile.am: Remove it from here.
6160 * libsupc++/Makefile.in: Regenerate.
6161 * src/c++98/Makefile.in: Regenerate.
6162 * testsuite/18_support/exception_ptr/96657.cc: New test.
6163
6164 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
6165
6166 PR libstdc++/100060
6167 * include/std/bit: Only include <ext/numeric_traits.h> for
6168 hosted build, use <limits> otherwise.
6169
6170 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
6171
6172 * doc/xml/manual/backwards_compatibility.xml: Remove porting
6173 notes for libg++ and libstdc++-v2, and bibliography.
6174 * doc/html/*: Regenerated.
6175
6176 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
6177
6178 PR libstdc++/100044
6179 * include/bits/ranges_util.h (__detail::__iterator_sentinel_pair):
6180 Remove helper concept.
6181 (subrange(_Pr), subrange(Pr, __make_unsigned_like<...>)): Remove
6182 deduction guides, as per LWG 3404.
6183 * testsuite/std/ranges/subrange/lwg3282_neg.cc: Check that class
6184 template argument deduction fails.
6185
6186 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
6187
6188 * testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc:
6189 Adjust expected error for C++20 mode.
6190 * testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc:
6191 Likewise.
6192
6193 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
6194
6195 PR libstdc++/99995
6196 * testsuite/17_intro/headers/c++1998/49745.cc: Include all
6197 standard headers and XFAIL for effective-target c++20.
6198
6199 2021-04-09 François Dumont <fdumont@gcc.gnu.org>
6200
6201 PR libstdc++/99402
6202 * include/debug/helper_functions.h (__can_advance(_InputIterator,
6203 const std::pair<_Diff, _Distance_precision>&, int)): New.
6204 (__can_advance(const _Safe_iterator<>&,
6205 const std::pair<_Diff, _Distance_precision>&, int)): New.
6206 * include/debug/macros.h (__glibcxx_check_can_increment_dist): New,
6207 use latter.
6208 (__glibcxx_check_can_increment_range): Adapt to use latter.
6209 (__glibcxx_check_can_decrement_range): Likewise.
6210 * include/debug/safe_iterator.h
6211 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
6212 int)): New.
6213 (__can_advance(const _Safe_iterator<>&,
6214 const std::pair<_Diff, _Distance_precision>&, int)): New.
6215 * include/debug/safe_iterator.tcc
6216 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
6217 int)): New.
6218 (_Safe_iterator<>::_M_valid_range(const _Safe_iterator<>&,
6219 std::pair<difference_type, _Distance_precision>&, bool)): Adapt for
6220 __dp_sign_max_size.
6221 (__copy_move_a): Adapt to use __glibcxx_check_can_increment_dist.
6222 (__copy_move_backward_a): Likewise.
6223 (__equal_aux): Likewise.
6224 * include/debug/stl_iterator.h (__can_advance(const std::reverse_iterator<>&,
6225 const std::pair<_Diff, _Distance_precision>&, int)): New.
6226 (__can_advance(const std::move_iterator<>&,
6227 const std::pair<_Diff, _Distance_precision>&, int)): New.
6228 * testsuite/25_algorithms/copy/debug/99402.cc: New test.
6229
6230 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
6231
6232 PR libstdc++/99985
6233 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()): Fix
6234 to be a valid constexpr function in C++11.
6235 * testsuite/23_containers/unordered_set/cons/99985.cc: New test.
6236
6237 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
6238
6239 * include/bits/fs_fwd.h: Fix doxygen group command.
6240 * include/bits/streambuf_iterator.h: Likewise.
6241 * include/bits/uses_allocator_args.h: Likewise.
6242 * include/std/memory: Likewise.
6243 * include/tr1/complex: Likewise.
6244
6245 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
6246
6247 * include/bits/basic_string.h: Tweak doxygen comment.
6248
6249 2021-04-08 Patrick Palka <ppalka@redhat.com>
6250
6251 * include/std/ranges (__detail::find): Define.
6252 (split_view::_OuterIter::operator++): Apply proposed resolution
6253 of LWG 3505.
6254 * testsuite/std/ranges/adaptors/split.cc (test10): New test.
6255
6256 2021-04-08 Patrick Palka <ppalka@redhat.com>
6257
6258 * include/std/ranges (__detail::find_if): Simplify.
6259 (__detail::find_if_not): Likewise.
6260 (__detail::min): Remove.
6261 (__detail::mismatch): Simplify.
6262 (take_view::size): Use std::min instead of __detail::min.
6263
6264 2021-04-08 Patrick Palka <ppalka@redhat.com>
6265
6266 * include/std/ranges (__detail::__returnable_element): New
6267 concept.
6268 (elements_view): Use this concept in its constraints. Add
6269 missing private access specifier.
6270 (elements_view::_S_get_element): Define as per LWG 3502.
6271 (elements_view::operator*, elements_view::operator[]): Use
6272 _S_get_element.
6273 (elements_view::operator++): Remove unnecessary constraint
6274 as per LWG 3492.
6275 * testsuite/std/ranges/adaptors/elements.cc (test05): New test.
6276
6277 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
6278
6279 * doc/Makefile.am (stamp-pdf-doxygen): Also grep for
6280 out-of-memory error in log file.
6281 * doc/Makefile.in: Regenerate.
6282
6283 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
6284
6285 * configure: Regenerate.
6286
6287 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
6288
6289 * include/bits/random.h: Fix doxygen group commands.
6290 * include/bits/regex_constants.h: Likewise.
6291 * include/tr1/random.h: Likewise.
6292
6293 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
6294
6295 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()):
6296 New function to determine noexcept-specifier for move
6297 constructors.
6298 (_Hashtable): Use _S_nothrow_move() on move constructors.
6299 * testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc:
6300 Correct static assertion message.
6301 * testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc:
6302 Likewise.
6303 * testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc:
6304 Likewise.
6305 * testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc:
6306 Likewise.
6307
6308 2021-04-08 Patrick Palka <ppalka@redhat.com>
6309
6310 PR libstdc++/98384
6311 * testsuite/20_util/to_chars/long_double.cc: Don't run the test
6312 on targets without a large long double. XFAIL the execution on
6313 targets with a non-conforming printf.
6314
6315 2021-04-08 Patrick Palka <ppalka@redhat.com>
6316
6317 PR libstdc++/99433
6318 * include/std/ranges (__adaptor::__maybe_refwrap): Remove.
6319 (__adaptor::__adaptor_invocable): New concept.
6320 (__adaptor::__adaptor_partial_app_viable): New concept.
6321 (__adaptor::_RangeAdaptorClosure): Rewrite, turning it into a
6322 non-template base class.
6323 (__adaptor::_RangeAdaptor): Rewrite, turning it into a CRTP base
6324 class template.
6325 (__adaptor::_Partial): New class template that represents
6326 partial application of a range adaptor non-closure.
6327 (__adaptor::__pipe_invocable): New concept.
6328 (__adaptor::_Pipe): New class template.
6329 (__detail::__can_ref_view): New concept.
6330 (__detail::__can_subrange): New concept.
6331 (all): Replace the lambda here with ...
6332 (_All): ... this functor. Add appropriate constraints.
6333 (__detail::__can_filter_view): New concept.
6334 (filter, _Filter): As in all/_All.
6335 (__detail::__can_transform): New concept.
6336 (transform, _Transform): As in all/_All.
6337 (__detail::__can_take_view): New concept.
6338 (take, _Take): As in all/_All.
6339 (__detail::__can_take_while_view): New concept.
6340 (take_while, _TakeWhile): As in all/_All.
6341 (__detail::__can_drop_view): New concept.
6342 (drop, _Drop): As in all/_All.
6343 (__detail::__can_drop_while_view): New concept.
6344 (drop_while, _DropWhile): As in all/_All.
6345 (__detail::__can_join_view): New concept.
6346 (join, _Join): As in all/_All.
6347 (__detail::__can_split_view): New concept.
6348 (split, _Split): As in all/_All. Rename template parameter
6349 _Fp to _Pattern.
6350 (__detail::__already_common): New concept.
6351 (__detail::__can_common_view): New concept.
6352 (common, _Common): As in all/_All.
6353 (__detail::__can_reverse_view): New concept.
6354 (reverse, _Reverse): As in all/_All.
6355 (__detail::__can_elements_view): New concept.
6356 (elements, _Elements): As in all/_All.
6357 (keys, values): Adjust.
6358 * testsuite/std/ranges/adaptors/99433.cc: New test.
6359 * testsuite/std/ranges/adaptors/all.cc: No longer expect that
6360 adding empty range adaptor closure objects to a pipeline doesn't
6361 increase the size of the pipeline.
6362 (test05): New test.
6363 * testsuite/std/ranges/adaptors/common.cc (test03): New test.
6364 * testsuite/std/ranges/adaptors/drop.cc (test09): New test.
6365 * testsuite/std/ranges/adaptors/drop_while.cc (test04): New test.
6366 * testsuite/std/ranges/adaptors/elements.cc (test04): New test.
6367 * testsuite/std/ranges/adaptors/filter.cc (test06): New test.
6368 * testsuite/std/ranges/adaptors/join.cc (test09): New test.
6369 * testsuite/std/ranges/adaptors/p2281.cc: New test.
6370 * testsuite/std/ranges/adaptors/reverse.cc (test07): New test.
6371 * testsuite/std/ranges/adaptors/split.cc (test01, test04):
6372 Adjust.
6373 (test09): New test.
6374 * testsuite/std/ranges/adaptors/split_neg.cc (test01): Adjust
6375 expected error message.
6376 (test02): Likewise. Extend test.
6377 * testsuite/std/ranges/adaptors/take.cc (test06): New test.
6378 * testsuite/std/ranges/adaptors/take_while.cc (test05): New test.
6379 * testsuite/std/ranges/adaptors/transform.cc (test07, test08):
6380 New test.
6381
6382 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
6383
6384 * include/std/string_view: Adjust Doxygen @file comment.
6385
6386 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
6387
6388 * include/std/type_traits (is_scoped_enum<T>): Constrain partial
6389 specialization to not match incomplete enum types. Use a
6390 requires-expression instead of instantiating is_convertible.
6391 (is_scoped_enum<const T>): Add as workaround for PR c++/99968.
6392 * testsuite/20_util/is_scoped_enum/value.cc: Check with
6393 incomplete types and opaque-enum-declarations.
6394
6395 2021-04-07 Jonathan Wakely <jwakely@redhat.com>
6396
6397 PR libstdc++/99805
6398 * src/c++17/fs_path.cc (path::_M_split_cmpts): Do not call
6399 non-const member on _M_pathname, to avoid copy-on-write.
6400 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
6401 Check construction from strings that might be shared.
6402
6403 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
6404
6405 * include/bits/move.h (forward, move, move_if_noexcept)
6406 (addressof): Add _GLIBCXX_NODISCARD.
6407 * include/bits/ranges_cmp.h (identity::operator()): Add
6408 nodiscard attribute.
6409 * include/c_global/cstddef (to_integer): Likewise.
6410 * include/std/bit (bit_cast): Likewise.
6411 * include/std/utility (as_const, to_underlying): Likewise.
6412
6413 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
6414
6415 * include/bits/move.h (forward): Change static_assert message
6416 to be unambiguous about what must be true.
6417 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
6418 * testsuite/20_util/forward/f_neg.cc: Likewise.
6419
6420 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
6421
6422 * include/bits/alloc_traits.h: Use markdown for code font.
6423 * include/bits/basic_string.h: Fix @param names.
6424 * include/bits/max_size_type.h: Remove period after @file.
6425 * include/bits/regex.h: Fix duplicate @retval names, and rename.
6426 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp: Add
6427 group open to match existing group close.
6428 * include/ext/pb_ds/priority_queue.hpp: Add blank line before group
6429 open.
6430
6431 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
6432
6433 * include/bits/atomic_base.h: Fix doxygen group close.
6434 * include/bits/basic_ios.h: Likewise.
6435 * include/bits/forward_list.h: Likewise.
6436 * include/bits/fs_dir.h: Likewise.
6437 * include/bits/fs_ops.h: Likewise.
6438 * include/bits/fs_path.h: Likewise.
6439 * include/bits/functional_hash.h: Likewise.
6440 * include/bits/gslice.h: Likewise.
6441 * include/bits/gslice_array.h: Likewise.
6442 * include/bits/hashtable_policy.h: Likewise.
6443 * include/bits/indirect_array.h: Likewise.
6444 * include/bits/locale_classes.h: Likewise.
6445 * include/bits/locale_facets.h: Likewise.
6446 * include/bits/locale_facets_nonio.h: Likewise.
6447 * include/bits/mask_array.h: Likewise.
6448 * include/bits/refwrap.h: Likewise.
6449 * include/bits/regex.h: Likewise.
6450 * include/bits/regex_automaton.h: Likewise.
6451 * include/bits/regex_compiler.h: Likewise.
6452 * include/bits/regex_constants.h: Likewise.
6453 * include/bits/regex_error.h: Likewise.
6454 * include/bits/regex_executor.h: Likewise.
6455 * include/bits/regex_scanner.h: Likewise.
6456 * include/bits/shared_ptr.h: Likewise.
6457 * include/bits/shared_ptr_atomic.h: Likewise.
6458 * include/bits/shared_ptr_base.h: Likewise.
6459 * include/bits/slice_array.h: Likewise.
6460 * include/bits/specfun.h: Likewise.
6461 * include/bits/std_function.h: Likewise.
6462 * include/bits/std_mutex.h: Likewise.
6463 * include/bits/stl_deque.h: Likewise.
6464 * include/bits/stl_iterator.h: Likewise.
6465 * include/bits/stl_iterator_base_types.h: Likewise.
6466 * include/bits/stl_map.h: Likewise.
6467 * include/bits/stl_multimap.h: Likewise.
6468 * include/bits/stl_multiset.h: Likewise.
6469 * include/bits/stl_numeric.h: Likewise.
6470 * include/bits/stl_pair.h: Likewise.
6471 * include/bits/stl_set.h: Likewise.
6472 * include/bits/stl_uninitialized.h: Likewise.
6473 * include/bits/stream_iterator.h: Likewise.
6474 * include/bits/streambuf_iterator.h: Likewise.
6475 * include/bits/unique_ptr.h: Likewise.
6476 * include/bits/unordered_map.h: Likewise.
6477 * include/bits/unordered_set.h: Likewise.
6478 * include/decimal/decimal: Likewise.
6479 * include/experimental/any: Likewise.
6480 * include/experimental/array: Likewise.
6481 * include/experimental/bits/fs_dir.h: Likewise.
6482 * include/experimental/bits/fs_fwd.h: Likewise.
6483 * include/experimental/bits/fs_ops.h: Likewise.
6484 * include/experimental/bits/fs_path.h: Likewise.
6485 * include/experimental/buffer: Likewise.
6486 * include/experimental/internet: Likewise.
6487 * include/experimental/optional: Likewise.
6488 * include/experimental/propagate_const: Likewise.
6489 * include/experimental/socket: Likewise.
6490 * include/ext/pb_ds/assoc_container.hpp: Likewise.
6491 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp:
6492 Likewise.
6493 * include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp: Likewise.
6494 * include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp: Likewise.
6495 * include/ext/pb_ds/detail/types_traits.hpp: Likewise.
6496 * include/ext/pb_ds/exception.hpp: Likewise.
6497 * include/ext/pb_ds/priority_queue.hpp: Likewise.
6498 * include/ext/pb_ds/tag_and_trait.hpp: Likewise.
6499 * include/ext/random: Likewise.
6500 * include/std/any: Likewise.
6501 * include/std/atomic: Likewise.
6502 * include/std/bitset: Likewise.
6503 * include/std/chrono: Likewise.
6504 * include/std/complex: Likewise.
6505 * include/std/condition_variable: Likewise.
6506 * include/std/fstream: Likewise.
6507 * include/std/future: Likewise.
6508 * include/std/iostream: Likewise.
6509 * include/std/istream: Likewise.
6510 * include/std/mutex: Likewise.
6511 * include/std/numeric: Likewise.
6512 * include/std/ostream: Likewise.
6513 * include/std/ratio: Likewise.
6514 * include/std/shared_mutex: Likewise.
6515 * include/std/stdexcept: Likewise.
6516 * include/std/streambuf: Likewise.
6517 * include/std/system_error: Likewise.
6518 * include/std/thread: Likewise.
6519 * include/std/valarray: Likewise.
6520 * include/std/variant: Likewise.
6521 * include/tr1/cmath: Likewise.
6522 * include/tr1/regex: Likewise.
6523 * include/tr2/dynamic_bitset: Likewise.
6524 * libsupc++/atomic_lockfree_defines.h: Likewise.
6525 * libsupc++/exception: Likewise.
6526 * libsupc++/exception.h: Likewise.
6527 * libsupc++/exception_ptr.h: Likewise.
6528 * libsupc++/nested_exception.h: Likewise.
6529
6530 2021-03-31 Alexandre Oliva <oliva@adacore.com>
6531
6532 * testsuite/30_threads/future/members/poll.cc: Use faster
6533 after-ready call in the calibration loop.
6534
6535 2021-03-29 Jonathan Wakely <jwakely@redhat.com>
6536
6537 * doc/xml/manual/status_cxx2017.xml: Adjust link for PSTL.
6538 * doc/html/manual/status.html: Regenerate.
6539
6540 2021-03-28 François Dumont <fdumont@gcc.gnu.org>
6541
6542 * include/debug/forward_list
6543 (forward_list(forward_list&&, const allocator_type&)): Add noexcept qualification.
6544 * include/debug/list (list(list&&, const allocator_type&)): Likewise and add
6545 call to safe container allocator aware move constructor.
6546 * include/debug/vector (vector(vector&&, const allocator_type&)):
6547 Fix noexcept qualification.
6548 * testsuite/23_containers/forward_list/cons/noexcept_move_construct.cc:
6549 Add allocator-extended move constructor noexceot qualification check.
6550 * testsuite/23_containers/list/cons/noexcept_move_construct.cc: Likewise.
6551
6552 2021-03-26 Jonathan Wakely <jwakely@redhat.com>
6553
6554 * src/c++11/random.cc (USE_LCG): Define when a pseudo-random
6555 fallback is needed.
6556 [USE_LCG] (bad_seed, construct_lcg_at, destroy_lcg_at, __lcg):
6557 New helper functions and callback.
6558 (random_device::_M_init): Add 'prng' and 'all' enumerators.
6559 Replace switch with fallthrough with a series of 'if' statements.
6560 [USE_LCG]: Construct an lcg_type engine and use __lcg when cpuid
6561 checks fail.
6562 (random_device::_M_init_pretr1) [USE_MT19937]: Accept "prng"
6563 token.
6564 (random_device::_M_getval): Check for callback unconditionally
6565 and always pass _M_file pointer.
6566 * testsuite/26_numerics/random/random_device/85494.cc: Remove
6567 effective-target check. Use new random_device_available helper.
6568 * testsuite/26_numerics/random/random_device/94087.cc: Likewise.
6569 * testsuite/26_numerics/random/random_device/cons/default-cow.cc:
6570 Remove effective-target check.
6571 * testsuite/26_numerics/random/random_device/cons/default.cc:
6572 Likewise.
6573 * testsuite/26_numerics/random/random_device/cons/token.cc: Use
6574 new random_device_available helper. Test "prng" token.
6575 * testsuite/util/testsuite_random.h (random_device_available):
6576 New helper function.
6577
6578 2021-03-25 François Dumont <fdumont@gcc.gnu.org>
6579
6580 * include/debug/string
6581 (basic_string(const basic_string&, const _Alloc&)): Define even if !_GLIBCXX_USE_CXX11_ABI.
6582 (basic_string(basic_string&&, const _Alloc&)): Likewise and add noexcept qualification.
6583 (basic_string<>::erase): Adapt to take __const_iterator.
6584 (basic_string(const _CharT*, const _Allocator&)): Remove assign call.
6585 (basic_string<>::insert(const_iterator, _InputIte, _InputIte)): Try to
6586 remove iterator debug layer even if !_GLIBCXX_USE_CXX11_ABI.
6587 [_GLIBCXX_USE_CHAR8_T] (__gnu_debug::u8string): New.
6588 (__gnu_debug::u16string, __gnu_debug::u32string): New.
6589 (std::hash<__gnu_debug::basic_string<>>): New partial specialization.
6590 (std::__is_fast_hash<__gnu_debug::basic_string<>>): Likewise.
6591 * testsuite/util/exception/safety.h
6592 (erase_base<__gnu_debug::basic_string<>>): New partial specialization.
6593 (insert_base<__gnu_debug::basic_string<>>): Likewise.
6594 * testsuite/util/testsuite_container_traits.h (traits<__gnu_debug::basic_string<>>):
6595 New partial specialization.
6596 * testsuite/21_strings/basic_string/hash/debug.cc: New test.
6597 * testsuite/21_strings/basic_string/requirements/citerators.cc:
6598 Add test on __gnu_debug::string.
6599 * testsuite/21_strings/basic_string/requirements/dr438/constructor.cc: Likewise.
6600 * testsuite/21_strings/basic_string/requirements/exception/basic.cc: Likewise.
6601 * testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc:
6602 Likewise.
6603 * testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc:
6604 Likewise.
6605 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
6606 Likewise.
6607 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
6608 Likewise.
6609 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
6610 Likewise.
6611 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
6612 Likewise.
6613 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
6614 Likewise.
6615 * testsuite/21_strings/basic_string/requirements/typedefs.cc: Likewise.
6616
6617 2021-03-25 Jakub Jelinek <jakub@redhat.com>
6618
6619 PR c++/99672
6620 * testsuite/18_support/source_location/consteval.cc (main): Adjust
6621 expected column numbers.
6622 * testsuite/18_support/source_location/1.cc (main): Likewise.
6623
6624 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
6625
6626 * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare malloc.
6627
6628 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
6629
6630 * testsuite/util/exception/safety.h (setup_base::generate):
6631 Support seeding random engine.
6632 (erase_point, erase_range): Adjust range of random numbers to
6633 ensure dereferenceable iterators are used where required.
6634 (generation_prohibited::run): Do not try to erase from empty
6635 containers.
6636 * testsuite/util/testsuite_containergen.h (test_containers):
6637 Support seeding random engine.
6638
6639 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
6640
6641 * testsuite/std/ranges/adaptors/reverse.cc: Replace duplicated
6642 line with a check that uses the const being/end overloads.
6643
6644 2021-03-23 Moritz Sichert <sichert@in.tum.de>
6645
6646 * include/std/ranges (reverse_view::begin, reverse_view::end):
6647 Qualify make_reverse_iterator calls to avoid ADL.
6648 * testsuite/std/ranges/adaptors/reverse.cc: Test that
6649 views::reverse works when make_reverse_iterator is defined
6650 in an associated namespace.
6651
6652 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
6653
6654 * include/bits/c++config (_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT):
6655 Do not define when compiling with Clang.
6656
6657 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
6658
6659 * include/std/string_view (basic_string_view(Range&&)): Define new
6660 constructor and deduction guide.
6661 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: New test.
6662 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: New test.
6663
6664 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
6665
6666 * include/bits/range_access.h (begin(T (&)[N]), end(T (&)[N])):
6667 Add missing 'noexcept' as per LWG 2280.
6668 (rbegin(T (&)[N]), rend(T (&)[N]), rbegin(initializer_list<T>))
6669 (rend(initializer_list<T>)): Add 'noexcept' as per LWG 3537.
6670 * testsuite/24_iterators/range_access/range_access.cc: Check for
6671 expected noexcept specifiers. Check result types of generic
6672 std::begin and std::end overloads.
6673 * testsuite/24_iterators/range_access/range_access_cpp14.cc:
6674 Check for expected noexcept specifiers.
6675 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
6676 Likewise.
6677
6678 2021-03-19 Jonathan Wakely <jwakely@redhat.com>
6679
6680 * include/std/type_traits (is_scoped_enum): Define.
6681 * include/std/version (__cpp_lib_is_scoped_enum): Define.
6682 * testsuite/20_util/is_scoped_enum/value.cc: New test.
6683 * testsuite/20_util/is_scoped_enum/version.cc: New test.
6684
6685 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
6686
6687 PR libstdc++/99341
6688 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Remove
6689 std::once_flag symbols.
6690 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Likewise.
6691 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
6692 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
6693 Likewise.
6694 * config/abi/pre/gnu.ver: Likewise.
6695 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
6696 (struct __once_flag_compat): Remove.
6697 (_ZNSt9once_flag11_M_activateEv): Remove.
6698 (_ZNSt9once_flag9_M_finishEb): Remove.
6699
6700 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
6701
6702 PR libstdc++/99341
6703 * include/std/mutex [_GLIBCXX_HAVE_LINUX_FUTEX] (once_flag):
6704 Revert to pthread_once_t implementation.
6705 [_GLIBCXX_HAVE_LINUX_FUTEX] (call_once): Likewise.
6706 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
6707 (struct __once_flag_compat): New type matching the reverted
6708 implementation of once_flag using futexes.
6709 (once_flag::_M_activate): Remove, replace with ...
6710 (_ZNSt9once_flag11_M_activateEv): ... alias symbol.
6711 (once_flag::_M_finish): Remove, replace with ...
6712 (_ZNSt9once_flag9_M_finishEb): ... alias symbol.
6713 * testsuite/30_threads/call_once/66146.cc: Removed.
6714
6715 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
6716
6717 * testsuite/17_intro/names.cc: Exclude j from the list
6718 of test symbols for Darwin.
6719
6720 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
6721
6722 * config/os/bsd/darwin/ppc-extra.ver: Add matching for
6723 to_chars and from_chars for long double.
6724
6725 2021-03-15 Patrick Palka <ppalka@redhat.com>
6726
6727 * include/bits/max_size_type.h (__max_size_type::operator _Tp):
6728 Fix formatting.
6729 (__max_size_type::operator++): Define.
6730 (__max_size_type::operator--): Likewise.
6731 (__max_size_type::operator<=>): Conditionally define (in place
6732 of the other comparison operators).
6733 (__max_diff_type::operator _Tp): Fix formatting.
6734 (__max_diff_type::operator++): Define.
6735 (__max_diff_type::operator--): Likewise.
6736 (__max_diff_type::operator<=>): Conditionally define (in place
6737 of the other comparison operators).
6738 * testsuite/std/ranges/iota/max_size_type.cc (test01): Test
6739 these operator overloads.
6740
6741 2021-03-15 Caroline Tice <cmtice@google.com>
6742
6743 PR libstdc++/99172
6744 * src/Makefile.am (AM_CXXFLAGS_PRE, AM_CXXFLAGS): Add
6745 AM_CXXFLAGS_PRE with the old definition of AM_CXXFLAGS; make
6746 AM_CXXFLAGS to be AM_CXXFLAGS_PRE with '-fvtable-verify=std'
6747 filtered out.
6748 * src/Makefile.in: Regenerate.
6749
6750 2021-03-11 Patrick Palka <ppalka@redhat.com>
6751
6752 * src/c++17/floating_to_chars.cc: Simplify the file as if
6753 __SIZEOF_INT128__ is always defined.
6754 [!defined __SIZEOF_INT128__]: Include "uint128_t.h". Define
6755 a base-10 to_chars overload for the uint128_t class type.
6756 * src/c++17/uint128_t.h: New file.
6757 * testsuite/20_util/to_chars/long_double.cc: No longer expect an
6758 execution FAIL on targets that have a large long double type
6759 but lack __int128.
6760
6761 2021-03-11 Patrick Palka <ppalka@redhat.com>
6762
6763 * src/c++17/ryu/LOCAL_PATCHES: Update.
6764 * src/c++17/ryu/d2s_intrinsics.h: Don't define uint128_t.
6765 * src/c++17/ryu/generic_128.h: Likewise.
6766 * src/c++17/ryu/ryu_generic_128.h (struct floating_decimal_128):
6767 Use uint128_t instead of __uint128_t.
6768 (generic_binary_to_decimal): Likewise.
6769
6770 2021-03-11 Patrick Palka <ppalka@redhat.com>
6771
6772 * src/c++17/ryu/LOCAL_PATCHES: New file.
6773
6774 2021-03-11 Patrick Palka <ppalka@redhat.com>
6775
6776 * src/c++17/floating_to_chars.cc (uint128_t): New conditionally
6777 defined alias of unsigned __int128.
6778 (floating_type_traits_binary128::mantissa_t): Use uint128_t
6779 instead of unsigned __int128.
6780 (floating_type_traits<long double>::mantissa_t)
6781 [LONG_DOUBLE_KIND == LDK_IBM128]: Likewise.
6782 (get_ieee_repr): Likewise. Make casts from uint_t to mantissa_t
6783 and uint32_t explicit. Simplify the extraction of mantissa,
6784 exponent and sign bit.
6785
6786 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
6787
6788 * include/std/barrier (barrier::arrival_token): New move-only
6789 class that encapsulates the underlying token value.
6790
6791 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
6792
6793 * python/libstdcxx/v6/printers.py (find_type): Use tag attribute
6794 instead of unqualified() method.
6795
6796 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
6797
6798 PR libstdc++/99537
6799 * include/std/stop_token (_Stop_state_t::_M_release_ownership):
6800 Use acq_rel memory ordering.
6801
6802 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
6803
6804 PR libstdc++/99533
6805 * src/c++17/fs_dir.cc (recursive_directory_iterator): Use new
6806 helper function to check for permission denied errors.
6807 * src/filesystem/dir.cc (recursive_directory_iterator):
6808 Likewise.
6809 * src/filesystem/dir-common.h (is_permission_denied_error): New
6810 helper function.
6811
6812 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
6813
6814 PR libstdc++/99536
6815 * include/bits/random.h (normal_distribution): Use
6816 default-initializer for _M_saved and _M_saved_available.
6817
6818 2021-03-10 John David Anglin <danglin@gcc.gnu.org>
6819
6820 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Add options to
6821 link with libatomic.
6822 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
6823 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
6824 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
6825 * testsuite/30_threads/barrier/arrive.cc: Likewise.
6826 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
6827 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
6828 * testsuite/30_threads/barrier/completion.cc: Likewise.
6829 * testsuite/30_threads/latch/3.cc: Likewise.
6830 * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
6831 * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
6832 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
6833
6834 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
6835
6836 PR libstdc++/99413
6837 * include/bits/align.h: Include debug/assertions.h.
6838 * include/bits/codecvt.h: Include bits/c++config.h.
6839 * include/bits/enable_special_members.h: Likewise.
6840 * include/bits/erase_if.h: Likewise.
6841 * include/bits/functional_hash.h: Include <type_traits>.
6842 * include/bits/invoke.h: Include bits/move.h.
6843 * include/bits/ostream_insert.h: Include bits/exception_defines.h.
6844 * include/bits/parse_numbers.h: Include <type_traits>.
6845 * include/bits/predefined_ops.h: Include bits/c++config.h.
6846 * include/bits/range_access.h: Include bits/stl_iterator.h.
6847 * include/bits/stl_bvector.h: Do not include bits/stl_vector.h.
6848 * include/bits/stl_iterator.h: Include bits/stl_iterator_base_types.h.
6849 * include/bits/stl_uninitialized.h: Include bits/stl_algobase.h.
6850 * include/bits/uniform_int_dist.h: Include bits/concept_check.h.
6851 * include/bits/unique_lock.h: Include bits/std_mutex.h.
6852 * include/debug/assertions.h: Include bits/c++config.h.
6853
6854 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
6855
6856 * include/bits/ranges_cmp.h (__eq_builtin_ptr_cmp): Remove.
6857 (ranges::equal_to, ranges::not_equal_to): Do not constrain
6858 with __eq_builtin_ptr_cmp.
6859 (ranges::less, ranges::greater, ranges::less_equal)
6860 (ranges::greater_equal): Do not constrain with
6861 __less_builtin_ptr_cmp.
6862 * libsupc++/compare (compare_three_way): Do not constrain with
6863 __3way_builtin_ptr_cmp.
6864 * testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc: Moved to...
6865 * testsuite/18_support/comparisons/object/lwg3530.cc: ...here.
6866 * testsuite/20_util/function_objects/range.cmp/lwg3530.cc: New test.
6867
6868 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
6869
6870 * testsuite/std/time/syn_c++20.cc: Enable synopsis checks for
6871 C++20 calendar types.
6872
6873 2021-03-06 Jakub Jelinek <jakub@redhat.com>
6874
6875 PR libstdc++/99396
6876 * include/std/bit (__rotl, __rotr): Add optimized variants for power of
6877 two _Nd which the compiler can pattern match the rotates.
6878
6879 2021-03-04 Jonathan Wakely <jwakely@redhat.com>
6880
6881 PR libstdc++/99382
6882 * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
6883 Make storage larger than required. Verify no write to the last
6884 element.
6885 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
6886 Likewise.
6887
6888 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6889
6890 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
6891 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
6892 Likewise.
6893 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
6894 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
6895 Likewise.
6896
6897 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6898
6899 * include/experimental/bits/simd.h: Replace reserved _X, _B by
6900 _Xp, _Bp.
6901 * include/experimental/bits/simd_builtin.h: Likewise.
6902 * include/experimental/bits/simd_x86.h: Likewise.
6903
6904 2021-02-27 Jonathan Wakely <jwakely@redhat.com>
6905
6906 PR libstdc++/99301
6907 * include/std/chrono (year_month_day::_M_days_since_epoch()):
6908 Convert chrono::month and chrono::day to unsigned before
6909 converting to uint32_t.
6910
6911 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
6912
6913 * include/std/chrono (year_month_day::_S_from_days): Perform
6914 all calculations with type uint32_t.
6915
6916 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
6917
6918 * doc/xml/manual/abi.xml: Document versioning for GCC 11.
6919 * doc/html/manual/abi.html: Regenerate.
6920
6921 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
6922
6923 PR libstdc++/99270
6924 * testsuite/27_io/headers/cstdio/types_std.cc: Use pointer to
6925 FILE instead of FILE.
6926
6927 2021-02-25 Andreas Schwab <schwab@suse.de>
6928
6929 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
6930 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
6931 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
6932 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
6933
6934 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
6935
6936 PR libstdc++/99265
6937 * include/std/chrono (year_month_day::_S_from_days): Cast long
6938 to int explicitly.
6939
6940 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
6941
6942 * include/std/utility (to_underlying): Define.
6943 * include/std/version (__cpp_lib_to_underlying): Define.
6944 * testsuite/20_util/to_underlying/1.cc: New test.
6945 * testsuite/20_util/to_underlying/version.cc: New test.
6946
6947 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
6948
6949 PR libstdc++/99261
6950 * src/c++17/floating_to_chars.cc (sprintf_ld): Add extra args
6951 before value to be printed.
6952
6953 2021-02-24 Patrick Palka <ppalka@redhat.com>
6954
6955 * src/c++17/floating_to_chars.cc (__floating_to_chars_precision):
6956 Relax the condition that guards the printf code path to accept
6957 F128_type as well as long double.
6958
6959 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
6960
6961 * include/std/chrono (year_month_day_last:day): New
6962 implementation.
6963
6964 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
6965
6966 * include/std/chrono (year::is_leap): New implementation.
6967 * testsuite/std/time/year/2.cc: New test.
6968
6969 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
6970
6971 * include/std/chrono (year_month_day::_M_days_since_epoch):
6972 New implementation.
6973 * testsuite/std/time/year_month_day/4.cc: New test.
6974
6975 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
6976
6977 * include/std/chrono (year_month_day::_S_from_days): New
6978 implementation.
6979 * testsuite/std/time/year_month_day/3.cc: New test.
6980
6981 2021-02-24 Patrick Palka <ppalka@redhat.com>
6982
6983 PR libstdc++/98384
6984 * testsuite/20_util/to_chars/long_double.cc: Include <optional>.
6985 (test01): Simplify verifying the nearby values by using a
6986 2-iteration loop and a dedicated output buffer to check that the
6987 nearby values are different. Factor out the printf-based
6988 verification into a local function, and check that the leading
6989 hex digits agree before comparing to the output of printf. Also
6990 verify the output by round-tripping it through from_chars.
6991
6992 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
6993
6994 PR libstdc++/98389
6995 * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Do not match to_chars
6996 symbols for long double arguments mangled as 'g'.
6997 * config/os/gnu-linux/ldbl-extra.ver: Likewise.
6998 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Likewise.
6999 * src/c++17/Makefile.am [GLIBCXX_LDBL_ALT128_COMPAT_TRUE]:
7000 Use -mabi=ibmlongdouble for floating_to_chars.cc.
7001 * src/c++17/Makefile.in: Regenerate.
7002 * src/c++17/floating_to_chars.cc (floating_type_traits_binary128):
7003 New type defining type traits of IEEE binary128 format.
7004 (floating_type_traits<__float128>): Define specialization.
7005 (floating_type_traits<long double>): Define in terms of
7006 floating_type_traits_binary128 when appropriate.
7007 (floating_to_shortest_scientific): Handle __float128.
7008 (sprintf_ld): New function template for printing a long double
7009 or __ieee128 value using sprintf.
7010 (__floating_to_chars_shortest, __floating_to_chars_precision):
7011 Use sprintf_ld.
7012 (to_chars): Define overloads for __float128.
7013
7014 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
7015
7016 * testsuite/17_intro/names.cc: Undefine 'u' on powerpc*-linux*.
7017
7018 2021-02-23 Martin Sebor <msebor@redhat.com>
7019
7020 PR c++/99074
7021 * libsupc++/dyncast.cc (__dynamic_cast): Return null when
7022 first argument is null.
7023
7024 2021-02-23 Jakub Jelinek <jakub@redhat.com>
7025
7026 PR libstdc++/99181
7027 * testsuite/21_strings/char_traits/requirements/char/99181.cc: New
7028 test.
7029
7030 2021-02-23 Jakub Jelinek <jakub@redhat.com>
7031
7032 PR libstdc++/99181
7033 * include/bits/char_traits.h (char_traits<char>::compare): For
7034 constexpr evaluation don't call
7035 __gnu_cxx::char_traits<char_type>::compare but do the comparison loop
7036 directly.
7037
7038 2021-02-23 Jakub Jelinek <jakub@redhat.com>
7039
7040 PR libstdc++/97549
7041 * include/pstl/parallel_backend_serial.h: Remove __pstl::__par_backend.
7042
7043 2021-02-23 Patrick Palka <ppalka@redhat.com>
7044
7045 PR libstdc++/98384
7046 * src/c++17/floating_to_chars.cc (get_ieee_repr): Extract
7047 the high- and low-order parts from an IBM long double value
7048 in an endian-agnostic way.
7049
7050 2021-02-19 Jonathan Wakely <jwakely@redhat.com>
7051
7052 * include/bits/atomic_wait.h (__thread_relax()): Call
7053 __thread_yield() not __gthread_yield().
7054
7055 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
7056
7057 * include/bits/atomic_wait.h (__thread_yield()): Check
7058 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
7059 (__thread_relax()): Use __thread_yield() instead of repeating
7060 the preprocessor checks for __gthread_yield.
7061
7062 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
7063
7064 * include/std/mutex (once_flag::_M_activate()): Add explicit
7065 return statement for passive case.
7066 (once_flag::_M_finish(bool)): Use reserved name for parameter.
7067
7068 2021-02-14 Jonathan Wakely <jwakely@redhat.com>
7069
7070 PR libstdc++/99096
7071 * testsuite/util/testsuite_fs.h: Always include <unistd.h>.
7072
7073 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
7074
7075 PR libstdc++/88881
7076 * src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround.
7077
7078 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
7079
7080 * doc/xml/manual/status_cxx2014.xml: Document implementation
7081 specific properties of std::experimental::filesystem::rename.
7082 * doc/xml/manual/status_cxx2017.xml: Document implementation
7083 specific properties of std::filesystem::rename.
7084 * doc/html/*: Regenerate.
7085 * src/c++17/fs_ops.cc (fs::rename): Implement correct behaviour
7086 for directories on Windows.
7087 * src/filesystem/ops-common.h (__gnu_posix::rename): Use
7088 MoveFileExW on Windows.
7089 * testsuite/27_io/filesystem/operations/rename.cc: New test.
7090 * testsuite/experimental/filesystem/operations/rename.cc: New test.
7091
7092 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
7093
7094 * testsuite/util/testsuite_fs.h (nonexistent_path): Add
7095 random number to the path.
7096
7097 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
7098
7099 * include/experimental/internet (address_v6::to_string): Include
7100 scope ID in string.
7101 * testsuite/experimental/net/internet/address/v6/members.cc:
7102 Test to_string() results.
7103
7104 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
7105
7106 * include/experimental/internet (address_v6::any): Avoid using
7107 memcpy in constexpr function.
7108 (address_v6::loopback): Likewise.
7109 (make_address_v6): Fix missing return statements on error paths.
7110 * include/experimental/io_context: Avoid -Wdangling-else
7111 warning.
7112 * testsuite/experimental/net/internet/address/v4/members.cc:
7113 Remove unused variables.
7114 * testsuite/experimental/net/internet/address/v6/members.cc:
7115 New test.
7116
7117 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
7118
7119 * include/bits/shared_ptr_base.h (__shared_ptr::_M_get_deleter):
7120 Add unused attribute to parameter.
7121 * src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq):
7122 Likewise.
7123
7124 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
7125
7126 * testsuite/27_io/basic_ostream/emit/1.cc: Expect test to fail
7127 if -fno-rtti is used.
7128 * testsuite/30_threads/async/forced_unwind.cc: Expect test
7129 to abort if -fno-rtti is used.
7130
7131 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
7132
7133 * testsuite/util/testsuite_allocator.h (memory_resource):
7134 Remove requirement for RTTI and exceptions to be enabled.
7135
7136 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
7137
7138 * testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Use
7139 static_cast when RTTI is disabled.
7140 * testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc:
7141 Likewise.
7142 * testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc:
7143 Likewise.
7144 * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc:
7145 Likewise.
7146 * testsuite/27_io/basic_stringstream/str/char/2.cc:
7147 Likewise.
7148 * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc:
7149 Likewise.
7150
7151 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
7152
7153 * include/std/ostream (__syncbuf_base::_S_get): Mark parameter
7154 as unused and only use dynamic_cast when RTTI is enabled.
7155
7156 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
7157
7158 PR libstdc++/99077
7159 * src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)):
7160 Change int parameter to error_code, to match std::ios_failure.
7161 (__throw_ios_failure(const char*, int)): Construct error_code
7162 from int parameter.
7163
7164 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
7165
7166 * libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define
7167 new macro.
7168 * libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new
7169 macro instead of _GLIBCXX_EH_PTR_COMPAT.
7170 (operator==): Likewise.
7171
7172 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
7173
7174 PR libstdc++/99058
7175 * doc/xml/manual/status_cxx2011.xml: Document when support
7176 became stable.
7177 * doc/xml/manual/status_cxx2014.xml: Likewise.
7178 * doc/xml/manual/status_cxx2017.xml: Likewise.
7179 * doc/html/manual/status.html: Regenerate.
7180
7181 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
7182
7183 PR libstdc++/88881
7184 * src/c++17/fs_ops.cc (fs::status): Re-enable workaround.
7185
7186 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
7187
7188 * src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent)
7189 (fs::remove): Use std::system_category() for error codes from
7190 GetLastError().
7191 * src/filesystem/ops.cc (fs::create_hard_link, fs::remove):
7192 Likewise.
7193
7194 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
7195
7196 * testsuite/27_io/filesystem/operations/proximate.cc: Fix typo
7197 in __MINGW32__ macro name.
7198 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
7199 * testsuite/27_io/filesystem/path/generation/proximate.cc:
7200 Likewise.
7201 * testsuite/27_io/filesystem/path/generation/relative.cc:
7202 Likewise.
7203 * testsuite/util/testsuite_fs.h: Likewise.
7204
7205 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
7206
7207 * include/bits/stl_tree.h
7208 (__has_is_transparent, __has_is_transparent_t): Move...
7209 * include/bits/stl_function.h: ...here.
7210 * include/bits/hashtable_policy.h (_Hash_code_base<>::_M_hash_code_tr): New..
7211 (_Hashtable_base<>::_M_equals_tr): New.
7212 * include/bits/hashtable.h (_Hashtable<>::_M_find_tr, _Hashtable<>::_M_count_tr,
7213 _Hashtable<>::_M_equal_range_tr): New member function templates to perform
7214 heterogeneous lookup.
7215 (_Hashtable<>::_M_find_before_node_tr): New.
7216 (_Hashtable<>::_M_find_node_tr): New.
7217 * include/bits/unordered_map.h (unordered_map::find<>, unordered_map::count<>,
7218 unordered_map::contains<>, unordered_map::equal_range<>): New member function
7219 templates to perform heterogeneous lookup.
7220 (unordered_multimap::find<>, unordered_multimap::count<>,
7221 unordered_multimap::contains<>, unordered_multimap::equal_range<>): Likewise.
7222 * include/bits/unordered_set.h (unordered_set::find<>, unordered_set::count<>,
7223 unordered_set::contains<>, unordered_set::equal_range<>): Likewise.
7224 (unordered_multiset::find<>, unordered_multiset::count<>,
7225 unordered_multiset::contains<>, unordered_multiset::equal_range<>): Likewise.
7226 * include/debug/unordered_map
7227 (unordered_map::find<>, unordered_map::equal_range<>): Likewise.
7228 (unordered_multimap::find<>, unordered_multimap::equal_range<>): Likewise.
7229 * include/debug/unordered_set
7230 (unordered_set::find<>, unordered_set::equal_range<>): Likewise.
7231 (unordered_multiset::find<>, unordered_multiset::equal_range<>): Likewise.
7232 * testsuite/23_containers/unordered_map/operations/1.cc: New test.
7233 * testsuite/23_containers/unordered_multimap/operations/1.cc: New test.
7234 * testsuite/23_containers/unordered_multiset/operations/1.cc: New test.
7235 * testsuite/23_containers/unordered_set/operations/1.cc: New test.
7236
7237 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
7238
7239 * include/bits/stl_deque.h
7240 (std::operator-(deque::iterator, deque::iterator)): Replace if/then with
7241 a null pointer test.
7242
7243 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
7244
7245 * testsuite/27_io/filesystem/operations/remove_all.cc: Remove
7246 test directory after making it writable again.
7247 * testsuite/experimental/filesystem/operations/remove_all.cc:
7248 Likewise.
7249
7250 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
7251
7252 PR libstdc++/99021
7253 * include/std/coroutine (coroutine_handle<P>::from_address): Add
7254 noexcept.
7255
7256 2021-02-09 Vladimir Vishnevsky <vv.os.swe@gmail.com>
7257
7258 * include/ext/stdio_sync_filebuf.h: Remove unused <unistd.h>.
7259 * src/c++17/fs_ops.cc (fs::permissions): Qualify mode_t.
7260
7261 2021-02-09 Jakub Jelinek <jakub@redhat.com>
7262
7263 PR middle-end/98465
7264 * include/bits/basic_string.tcc (basic_string::_M_replace): When __s
7265 points to the characters moved by earlier _S_move, compute the source
7266 address using expression based on the __p pointer rather than __s
7267 pointer.
7268
7269 2021-02-03 Jonathan Wakely <jwakely@redhat.com>
7270
7271 * testsuite/19_diagnostics/error_code/operators/not_equal.cc:
7272 Add comparison with same category and different values.
7273 * testsuite/19_diagnostics/error_code/operators/less.cc:
7274 Likewise. Fix comparison involving different categories.
7275 * testsuite/19_diagnostics/error_code/operators/three_way.cc:
7276 Likewise.
7277 * testsuite/19_diagnostics/error_condition/operators/less.cc:
7278 Add comment.
7279 * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
7280 Likewise.
7281
7282 2021-02-03 yaozhongxiao <yaozhongxiao@linux.alibaba.com>
7283
7284 * include/experimental/bits/simd_neon.h: Replace repeated vpadd
7285 calls with a single vaddv for aarch64.
7286
7287 2021-02-03 Matthias Kretz <kretz@kde.org>
7288
7289 * testsuite/Makefile.am: Warn about the workaround. Add
7290 -fno-tree-vrp to CXXFLAGS passed to the check_simd script.
7291 Improve initial user feedback from make check-simd.
7292 * testsuite/Makefile.in: Regenerated.
7293
7294 2021-02-03 Matthias Kretz <kretz@kde.org>
7295
7296 * include/experimental/bits/simd.h: Add __detail::_Minimum and
7297 __detail::_Maximum to use them as _BinaryOperation to _S_reduce.
7298 Add hmin and hmax overloads for simd and const_where_expression.
7299 * include/experimental/bits/simd_scalar.h
7300 (_SimdImplScalar::_S_reduce): Make unused _BinaryOperation
7301 parameter const-ref to allow calling _S_reduce with an rvalue.
7302 * testsuite/experimental/simd/tests/reductions.cc: Add tests for
7303 hmin and hmax. Since the compiler statically determined that all
7304 tests pass, repeat the test after a call to make_value_unknown.
7305
7306 2021-02-03 Matthias Kretz <kretz@kde.org>
7307
7308 * testsuite/experimental/simd/tests/bits/verify.h (verify): Add
7309 instruction pointer data member. Ensure that the `if (m_failed)`
7310 branch is always inlined into the calling code. The body of the
7311 conditional can still be a function call. Move the get_ip call
7312 into the verify ctor to simplify the ctor calls.
7313 (COMPARE): Don't mention the use of all_of for reduction of a
7314 simd_mask. It only distracts from the real issue.
7315
7316 2021-02-03 Matthias Kretz <kretz@kde.org>
7317
7318 * testsuite/experimental/simd/driver.sh: Abstract reading test
7319 options into read_src_option function. Read skip, only,
7320 expensive, and xfail via read_src_option. Add timeout and
7321 timeout-factor options and adjust timeout variable accordingly.
7322 * testsuite/experimental/simd/tests/loadstore.cc: Set
7323 timeout-factor 2.
7324
7325 2021-02-03 Matthias Kretz <kretz@kde.org>
7326
7327 * testsuite/experimental/simd/driver.sh: When handling the pipe
7328 to log (and on verbose to stdout) count the lines. If it exceeds
7329 1000 log the issue and exit 125, which is then handled as a
7330 failure.
7331
7332 2021-02-03 Matthias Kretz <kretz@kde.org>
7333
7334 * testsuite/experimental/simd/tests/hypot3_fma.cc: Add skip:
7335 markup for long double on powerpc64*.
7336
7337 2021-02-03 Matthias Kretz <kretz@kde.org>
7338
7339 * include/experimental/bits/simd.h: Add __have_power10vec
7340 conditional on _ARCH_PWR10.
7341 * include/experimental/bits/simd_builtin.h: Forward declare
7342 _MaskImplPpc and use it as _MaskImpl when __ALTIVEC__ is
7343 defined.
7344 (_MaskImplBuiltin::_S_some_of): Call _S_popcount from the
7345 _SuperImpl for optimizations and correctness.
7346 * include/experimental/bits/simd_ppc.h: Add _MaskImplPpc.
7347 (_MaskImplPpc::_S_popcount): Implement via vec_cntm for POWER10.
7348 Otherwise, for >=int use -vec_sums divided by a sizeof factor.
7349 For <int use -vec_sums(vec_sum4s(...)) to sum all mask entries.
7350
7351 2021-02-03 Matthias Kretz <kretz@kde.org>
7352
7353 * testsuite/experimental/simd/driver.sh: Remove executable on
7354 SIGINT. Process compiler and test executable output: In verbose
7355 mode print messages immediately, limited to 1000 lines and
7356 breaking long lines to below $COLUMNS (or 1024 if not set).
7357 Communicating the exit status of the compiler / test with the
7358 necessary pipe is done via a message through stdout/-in.
7359
7360 2021-02-03 Matthias Kretz <kretz@kde.org>
7361
7362 * testsuite/Makefile.am: Ensure .simd.summary is empty before
7363 collecting a new summary.
7364 * testsuite/Makefile.in: Regenerate.
7365
7366 2021-02-03 Matthias Kretz <kretz@kde.org>
7367
7368 * testsuite/experimental/simd/generate_makefile.sh: Use
7369 different variables internally than documented for user
7370 overrides. This makes internal append/prepend work as intended.
7371
7372 2021-02-03 Matthias Kretz <kretz@kde.org>
7373
7374 * testsuite/experimental/simd/driver.sh (verify_test): Print
7375 test output on run xfail. Do not repeat lines from the log that
7376 were already printed on stdout.
7377 (test_selector): Make the compiler flags pattern usable as a
7378 substring selector.
7379 (toplevel): Trap on SIGINT and remove the log and sum files.
7380 Call timout with --foreground to quickly terminate on SIGINT.
7381 * testsuite/experimental/simd/generate_makefile.sh: Simplify run
7382 targets via target patterns. Default DRIVEROPTS to -v for run
7383 targets. Remove log and sum files after completion of the run
7384 target (so that it's always recompiled).
7385 Place help text into text file for reasonable 'make help'
7386 performance.
7387
7388 2021-02-03 Matthias Kretz <kretz@kde.org>
7389
7390 * include/experimental/bits/simd.h: Remove unnecessary static
7391 assertion. Allow sizeof(8) integer __intrinsic_type to enable
7392 the necessary mask type.
7393
7394 2021-02-03 Matthias Kretz <kretz@kde.org>
7395
7396 * include/experimental/bits/simd.h: Let __intrinsic_type<long
7397 double, N> be valid if sizeof(long double) == sizeof(double) and
7398 use a __vector double as member type.
7399
7400 2021-02-03 Matthias Kretz <kretz@kde.org>
7401
7402 * include/experimental/bits/simd.h (__is_intrinsic_type): New
7403 internal type trait. Alias for __is_vector_type on x86.
7404 (_VectorTraitsImpl): Enable for __intrinsic_type in addition for
7405 __vector_type.
7406 (__intrin_bitcast): Allow casting to & from vector & intrinsic
7407 types.
7408 (__intrinsic_type): Explicitly specialize for NEON intrinsic
7409 vector types.
7410
7411 2021-02-03 Matthias Kretz <kretz@kde.org>
7412
7413 * testsuite/experimental/simd/driver.sh: Implement skip, only,
7414 expensive, and xfail markers. They can select on type, ABI tag
7415 subset number, target-triplet, and compiler flags.
7416 * testsuite/experimental/simd/generate_makefile.sh: The summary
7417 now includes lines for unexpected passes and expected failures.
7418 If the skip or only markers are only conditional on the type, do
7419 not generate rules for those types.
7420 * testsuite/experimental/simd/tests/abs.cc: Mark test expensive
7421 for ABI tag subsets 1-9.
7422 * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
7423 * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
7424 * testsuite/experimental/simd/tests/casts.cc: Ditto.
7425 * testsuite/experimental/simd/tests/generator.cc: Ditto.
7426 * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
7427 * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
7428 * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
7429 * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
7430 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
7431 * testsuite/experimental/simd/tests/mask_loadstore.cc: Ditto.
7432 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
7433 * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
7434 * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
7435 * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
7436 * testsuite/experimental/simd/tests/operators.cc: Ditto.
7437 * testsuite/experimental/simd/tests/reductions.cc: Ditto.
7438 * testsuite/experimental/simd/tests/simd.cc: Ditto.
7439 * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
7440 * testsuite/experimental/simd/tests/splits.cc: Ditto.
7441 * testsuite/experimental/simd/tests/where.cc: Ditto.
7442 * testsuite/experimental/simd/tests/fpclassify.cc: Ditto. In
7443 addition replace "test only floattypes" marker by unconditional
7444 "float|double|ldouble" only marker.
7445 * testsuite/experimental/simd/tests/frexp.cc: Ditto.
7446 * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
7447 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
7448 Ditto.
7449 * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
7450 * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
7451 * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
7452 * testsuite/experimental/simd/tests/remqo.cc: Ditto.
7453 * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
7454 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
7455 * testsuite/experimental/simd/tests/sincos.cc: Ditto. In
7456 addition, xfail on run because the reference data is missing.
7457
7458 2021-02-02 Jonathan Wakely <jwakely@redhat.com>
7459
7460 * doc/xml/manual/status_cxx2011.xml: Remove stray table cell.
7461 * doc/xml/manual/status_cxx2014.xml: Likewise.
7462 * doc/xml/manual/status_cxx2017.xml: Likewise.
7463 * doc/html/manual/status.html: Regenerate.
7464
7465 2021-02-01 François Dumont <fdumont@gcc.gnu.org>
7466
7467 PR libstdc++/70303
7468 * include/bits/stl_deque.h (std::deque<>::operator-(iterator, iterator)):
7469 Return 0 if both iterators are value-initialized.
7470 * testsuite/23_containers/deque/70303.cc: New test.
7471 * testsuite/23_containers/vector/70303.cc: New test.
7472
7473 2021-02-01 Jonathan Wakely <jwakely@redhat.com>
7474
7475 * doc/xml/manual/status_cxx2011.xml: Update std::call_once
7476 status.
7477 * doc/xml/manual/status_cxx2014.xml: Likewise.
7478 * doc/xml/manual/status_cxx2017.xml: Likewise. Update
7479 std::from_chars and std::to_chars status. Fix formatting.
7480 * doc/html/manual/status.html: Regenerate.
7481
7482 2021-01-28 Jonathan Wakely <jwakely@redhat.com>
7483
7484 * include/experimental/bits/numeric_traits.h: Update copyright
7485 dates.
7486 * include/experimental/bits/simd.h: Likewise.
7487 * include/experimental/bits/simd_builtin.h: Likewise.
7488 * include/experimental/bits/simd_converter.h: Likewise.
7489 * include/experimental/bits/simd_detail.h: Likewise.
7490 * include/experimental/bits/simd_fixed_size.h: Likewise.
7491 * include/experimental/bits/simd_math.h: Likewise.
7492 * include/experimental/bits/simd_neon.h: Likewise.
7493 * include/experimental/bits/simd_ppc.h: Likewise.
7494 * include/experimental/bits/simd_scalar.h: Likewise.
7495 * include/experimental/bits/simd_x86.h: Likewise.
7496 * include/experimental/bits/simd_x86_conversions.h: Likewise.
7497 * include/experimental/simd: Likewise.
7498 * testsuite/experimental/simd/*: Likewise.
7499
7500 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
7501
7502 * doc/xml/manual/status_cxx2017.xml: Replace invalid entity.
7503 * doc/html/*: Regenerate.
7504
7505 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
7506
7507 * testsuite/experimental/simd/generate_makefile.sh: Use printf
7508 instead of echo when printing escape characters.
7509
7510 2021-01-27 Matthias Kretz <kretz@kde.org>
7511
7512 * scripts/check_simd: New file. This script is called from the
7513 the check-simd target. It determines a set of compiler flags and
7514 simulator setups for calling generate_makefile.sh and passes the
7515 information back to the check-simd target, which recurses to the
7516 generated Makefiles.
7517 * scripts/create_testsuite_files: Remove files below simd/tests/
7518 from testsuite_files and place them in testsuite_files_simd.
7519 * testsuite/Makefile.am: Add testsuite_files_simd. Add
7520 check-simd target.
7521 * testsuite/Makefile.in: Regenerate.
7522 * testsuite/experimental/simd/driver.sh: New file. This script
7523 compiles and runs a given simd test, logging its output and
7524 status. It uses the timeout command to implement compile and
7525 test timeouts.
7526 * testsuite/experimental/simd/generate_makefile.sh: New file.
7527 This script generates a Makefile which uses driver.sh to compile
7528 and run the tests and collect the logs into a single log file.
7529 * testsuite/experimental/simd/tests/abs.cc: New file. Tests
7530 abs(simd).
7531 * testsuite/experimental/simd/tests/algorithms.cc: New file.
7532 Tests min/max(simd, simd).
7533 * testsuite/experimental/simd/tests/bits/conversions.h: New
7534 file. Contains functions to support tests involving conversions.
7535 * testsuite/experimental/simd/tests/bits/make_vec.h: New file.
7536 Support functions make_mask and make_vec.
7537 * testsuite/experimental/simd/tests/bits/mathreference.h: New
7538 file. Support functions to supply precomputed math function
7539 reference data.
7540 * testsuite/experimental/simd/tests/bits/metahelpers.h: New
7541 file. Support code for SFINAE testing.
7542 * testsuite/experimental/simd/tests/bits/simd_view.h: New file.
7543 * testsuite/experimental/simd/tests/bits/test_values.h: New
7544 file. Test functions to easily drive a test with simd objects
7545 initialized from a given list of values and a range of random
7546 values.
7547 * testsuite/experimental/simd/tests/bits/ulp.h: New file.
7548 Support code to determine the ULP distance of simd objects.
7549 * testsuite/experimental/simd/tests/bits/verify.h: New file.
7550 Test framework for COMPARE'ing simd objects and instantiating
7551 the test templates with value_type and ABI tag.
7552 * testsuite/experimental/simd/tests/broadcast.cc: New file. Test
7553 simd broadcasts.
7554 * testsuite/experimental/simd/tests/casts.cc: New file. Test
7555 simd casts.
7556 * testsuite/experimental/simd/tests/fpclassify.cc: New file.
7557 Test floating-point classification functions.
7558 * testsuite/experimental/simd/tests/frexp.cc: New file. Test
7559 frexp(simd).
7560 * testsuite/experimental/simd/tests/generator.cc: New file. Test
7561 simd generator constructor.
7562 * testsuite/experimental/simd/tests/hypot3_fma.cc: New file.
7563 Test 3-arg hypot(simd,simd,simd) and fma(simd,simd,sim).
7564 * testsuite/experimental/simd/tests/integer_operators.cc: New
7565 file. Test integer operators.
7566 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
7567 New file. Test ldexp(simd), scalbn(simd), scalbln(simd), and
7568 modf(simd).
7569 * testsuite/experimental/simd/tests/loadstore.cc: New file. Test
7570 (converting) simd loads and stores.
7571 * testsuite/experimental/simd/tests/logarithm.cc: New file. Test
7572 log*(simd).
7573 * testsuite/experimental/simd/tests/mask_broadcast.cc: New file.
7574 Test simd_mask broadcasts.
7575 * testsuite/experimental/simd/tests/mask_conversions.cc: New
7576 file. Test simd_mask conversions.
7577 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: New
7578 file. Test simd_mask implicit conversions.
7579 * testsuite/experimental/simd/tests/mask_loadstore.cc: New file.
7580 Test simd_mask loads and stores.
7581 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: New
7582 file. Test simd_mask operators convert as specified.
7583 * testsuite/experimental/simd/tests/mask_operators.cc: New file.
7584 Test simd_mask compares, subscripts, and negation.
7585 * testsuite/experimental/simd/tests/mask_reductions.cc: New
7586 file. Test simd_mask reductions.
7587 * testsuite/experimental/simd/tests/math_1arg.cc: New file. Test
7588 1-arg math functions on simd.
7589 * testsuite/experimental/simd/tests/math_2arg.cc: New file. Test
7590 2-arg math functions on simd.
7591 * testsuite/experimental/simd/tests/operator_cvt.cc: New file.
7592 Test implicit conversions on simd binary operators behave as
7593 specified.
7594 * testsuite/experimental/simd/tests/operators.cc: New file. Test
7595 simd compares, subscripts, not, unary minus, plus, minus,
7596 multiplies, divides, increment, and decrement.
7597 * testsuite/experimental/simd/tests/reductions.cc: New file.
7598 Test reduce(simd).
7599 * testsuite/experimental/simd/tests/remqo.cc: New file. Test
7600 remqo(simd).
7601 * testsuite/experimental/simd/tests/simd.cc: New file. Basic
7602 sanity checks of simd types.
7603 * testsuite/experimental/simd/tests/sincos.cc: New file. Test
7604 sin(simd) and cos(simd).
7605 * testsuite/experimental/simd/tests/split_concat.cc: New file.
7606 Test split(simd) and concat(simd, simd).
7607 * testsuite/experimental/simd/tests/splits.cc: New file. Test
7608 split(simd_mask).
7609 * testsuite/experimental/simd/tests/trigonometric.cc: New file.
7610 Test remaining trigonometric functions on simd.
7611 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: New
7612 file. Test trunc(simd), ceil(simd), and floor(simd).
7613 * testsuite/experimental/simd/tests/where.cc: New file. Test
7614 masked operations using where.
7615
7616 2021-01-27 Matthias Kretz <kretz@kde.org>
7617
7618 * doc/xml/manual/status_cxx2017.xml: Add implementation status
7619 of the Parallelism TS 2. Document implementation-defined types
7620 and behavior.
7621 * include/Makefile.am: Add new headers.
7622 * include/Makefile.in: Regenerate.
7623 * include/experimental/simd: New file. New header for
7624 Parallelism TS 2.
7625 * include/experimental/bits/numeric_traits.h: New file.
7626 Implementation of P1841R1 using internal naming. Addition of
7627 missing IEC559 functionality query.
7628 * include/experimental/bits/simd.h: New file. Definition of the
7629 public simd interfaces and general implementation helpers.
7630 * include/experimental/bits/simd_builtin.h: New file.
7631 Implementation of the _VecBuiltin simd_abi.
7632 * include/experimental/bits/simd_converter.h: New file. Generic
7633 simd conversions.
7634 * include/experimental/bits/simd_detail.h: New file. Internal
7635 macros for the simd implementation.
7636 * include/experimental/bits/simd_fixed_size.h: New file. Simd
7637 fixed_size ABI specific implementations.
7638 * include/experimental/bits/simd_math.h: New file. Math
7639 overloads for simd.
7640 * include/experimental/bits/simd_neon.h: New file. Simd NEON
7641 specific implementations.
7642 * include/experimental/bits/simd_ppc.h: New file. Implement bit
7643 shifts to avoid invalid results for integral types smaller than
7644 int.
7645 * include/experimental/bits/simd_scalar.h: New file. Simd scalar
7646 ABI specific implementations.
7647 * include/experimental/bits/simd_x86.h: New file. Simd x86
7648 specific implementations.
7649 * include/experimental/bits/simd_x86_conversions.h: New file.
7650 x86 specific conversion optimizations. The conversion patterns
7651 work around missing conversion patterns in the compiler and
7652 should be removed as soon as PR85048 is resolved.
7653 * testsuite/experimental/simd/standard_abi_usable.cc: New file.
7654 Test that all (not all fixed_size<N>, though) standard simd and
7655 simd_mask types are usable.
7656 * testsuite/experimental/simd/standard_abi_usable_2.cc: New
7657 file. As above but with -ffast-math.
7658 * testsuite/libstdc++-dg/conformance.exp: Don't build simd tests
7659 from the standard test loop. Instead use
7660 check_vect_support_and_set_flags to build simd tests with the
7661 relevant machine flags.
7662
7663 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
7664
7665 PR libstdc++/66414
7666 * include/bits/string_view.tcc
7667 (basic_string_view::find(const CharT*, size_type, size_type)):
7668 Optimize.
7669
7670 2021-01-27 Paul Fee <paul.f.fee@gmail.com>
7671
7672 * include/bits/basic_string.h (basic_string::contains): New
7673 member functions.
7674 * include/std/string_view (basic_string_view::contains):
7675 Likewise.
7676 * include/std/version (__cpp_lib_string_contains): Define.
7677 * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
7678 Remove trailing whitespace.
7679 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
7680 Likewise.
7681 * testsuite/21_strings/basic_string/operations/contains/char/1.cc: New test.
7682 * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc: New test.
7683 * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc: New test.
7684 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: New test.
7685 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc: New test.
7686
7687 2021-01-21 Jonathan Wakely <jwakely@redhat.com>
7688
7689 * src/c++17/Makefile.in: Regenerate.
7690
7691 2021-01-20 David Edelsohn <dje.gcc@gmail.com>
7692
7693 * config/os/aix/ctype_inline.h (bool ctype<char>:: is): Cast
7694 _OBJ_DATA subscript to unsigned char. Add _THREAD_SAFE access to
7695 __lc_type.
7696 (const char* ctype<char>:: is): Same.
7697
7698 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
7699
7700 PR libstdc++/98725
7701 * testsuite/20_util/unique_ptr/io/lwg2948.cc: Do not try to
7702 write to a wide character stream if wide character support is
7703 disabled in the library.
7704
7705 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
7706
7707 * testsuite/27_io/basic_stringstream/cons/char/1.cc: Use
7708 stringbuf not wstringbuf.
7709
7710 2021-01-18 Jakub Jelinek <jakub@redhat.com>
7711
7712 PR debug/98708
7713 * src/c++11/Makefile.am (cxx11-ios_failure-lt.s, cxx11-ios_failure.s):
7714 Compile with -gno-as-loc-support.
7715 * src/c++11/Makefile.in: Regenerated.
7716
7717 2021-01-16 H.J. Lu <hjl.tools@gmail.com>
7718
7719 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
7720 Add -fcf-protection=none to -march=i486.
7721
7722 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
7723
7724 * testsuite/23_containers/deque/debug/98466.cc: Make it pre-C++11
7725 compliant.
7726
7727 2021-01-14 Alexandre Oliva <oliva@adacore.com>
7728
7729 * testsuite/30_threads/future/members/poll.cc: Calibrate
7730 iteration count.
7731
7732 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
7733
7734 PR libstdc++/98466
7735 * include/bits/hashtable_policy.h (_Node_iterator_base()): Set _M_cur to nullptr.
7736 (_Node_iterator()): Make default.
7737 (_Node_const_iterator()): Make default.
7738 * include/debug/macros.h (__glibcxx_check_erae_range_after): Add _M_singular
7739 iterator checks.
7740 * include/debug/safe_iterator.h
7741 (_GLIBCXX_DEBUG_VERIFY_OPERANDS): Accept if both iterator are value initialized.
7742 * include/debug/safe_local_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
7743 Likewise.
7744 * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range): Add
7745 _M_singular checks on input iterators.
7746 * src/c++11/debug.cc (_Safe_iterator_base::_M_can_compare): Remove _M_singular
7747 checks.
7748 * testsuite/23_containers/deque/debug/98466.cc: New test.
7749 * testsuite/23_containers/unordered_map/debug/98466.cc: New test.
7750
7751 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
7752
7753 PR libstdc++/98471
7754 * include/bits/fs_path.h (__throw_conversion_error): New
7755 function to throw or abort on character conversion errors.
7756 (__wstr_from_utf8): Move definition after filesystem_error has
7757 been defined. Use __throw_conversion_error.
7758 (path::_S_convert<_EcharT>): Use __throw_conversion_error.
7759 (path::_S_str_convert<_CharT, _Traits, _Allocator>): Likewise.
7760 (path::u8string): Likewise.
7761
7762 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
7763
7764 * include/std/barrier: Update copyright years. Fix whitespace.
7765 * include/std/version: Fix whitespace.
7766 * testsuite/30_threads/barrier/1.cc: Update copyright years.
7767 * testsuite/30_threads/barrier/2.cc: Likewise.
7768 * testsuite/30_threads/barrier/arrive.cc: Likewise.
7769 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
7770 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
7771 * testsuite/30_threads/barrier/completion.cc: Likewise.
7772
7773 2021-01-13 Jonathan Wakely <jwakely@redhat.com>
7774
7775 * doc/doxygen/user.cfg.in (INPUT): Remove include/debug/array.
7776
7777 2021-01-10 David Edelsohn <dje.gcc@gmail.com>
7778
7779 PR libstdc++/98613
7780 * testsuite/ext/vstring/cons/moveable.cc: Suppress false positive
7781 warning.
7782 * testsuite/ext/vstring/modifiers/assign/move_assign.cc: Same.
7783
7784 2021-01-08 Olivier Hainque <hainque@adacore.com>
7785
7786 * testsuite/20_util/bind/ref_neg.cc: Tweak the
7787 dg-prune-output regex for out-of-build-tree contexts.
7788
7789 2021-01-07 Thomas Rodgers <trodgers@redhat.com>
7790
7791 * doc/doxygen/user.cfg.in: Add new header.
7792 * include/Makefile.am (std_headers): likewise.
7793 * include/Makefile.in: Regenerate.
7794 * include/precompiled/stdc++.h: Add new header.
7795 * include/std/barrier: New file.
7796 * include/std/version: Add __cpp_lib_barrier feature test macro.
7797 * testsuite/30_threads/barrier/1.cc: New test.
7798 * testsuite/30_threads/barrier/2.cc: Likewise.
7799 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
7800 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
7801 * testsuite/30_threads/barrier/arrive.cc: Likewise.
7802 * testsuite/30_threads/barrier/completion.cc: Likewise.
7803
7804 2021-01-07 Patrick Palka <ppalka@redhat.com>
7805
7806 PR libstdc++/98384
7807 * testsuite/20_util/to_chars/long_double.cc: Use nexttowardl
7808 instead of the non-standard nextupl and nextdownl.
7809
7810 2021-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
7811
7812 * configure: Re-generate.
7813
7814 2021-01-05 Ed Smith-Rowland <3dw4rd@verizon.net>
7815
7816 * include/precompiled/stdc++.h: Add <source_location> to C++20 section.
7817
7818 2021-01-01 Jakub Jelinek <jakub@redhat.com>
7819
7820 * ChangeLog-2020: Rotate ChangeLog. New file.
7821
7822 \f
7823 Copyright (C) 2021 Free Software Foundation, Inc.
7824
7825 Copying and distribution of this file, with or without modification,
7826 are permitted in any medium without royalty provided the copyright
7827 notice and this notice are preserved.