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