1 2021-12-13 Jonathan Wakely <jwakely@redhat.com>
3 * scripts/make_exports.pl: Replace '?' with '.' when turning
6 2021-12-13 Jonathan Wakely <jwakely@redhat.com>
8 * include/bits/ranges_base.h (ranges::size, ranges::empty): Add
9 explicit check for unbounded arrays before using ranges::begin.
10 * testsuite/std/ranges/access/empty.cc: Check handling of unbounded
12 * testsuite/std/ranges/access/size.cc: Likewise.
14 2021-12-13 Jonathan Wakely <jwakely@redhat.com>
17 * include/bits/regex.h (__regex_replace): Declare.
18 (regex_replace): Use it.
19 * include/bits/regex.tcc (__regex_replace): Replace regex_replace
20 definition with __regex_replace.
21 * testsuite/28_regex/algorithms/regex_replace/char/103664.cc: New test.
23 2021-12-11 Jason Merrill <jason@redhat.com>
26 * include/bits/basic_string.h (append (basic_string)): Call pointer
27 append instead of _M_append directly.
29 2021-12-10 Jakub Jelinek <jakub@redhat.com>
32 * config/locale/dragonfly/time_members.cc (_M_initialize_timepunct):
33 Initialize "C" _M_am_pm_format to %I:%M:%S %p rather than empty
35 * config/locale/gnu/time_members.cc (_M_initialize_timepunct):
37 * config/locale/generic/time_members.cc (_M_initialize_timepunct):
39 * include/bits/locale_facets_nonio.h (_M_am_pm_format): New method.
40 * include/bits/locale_facets_nonio.tcc (_M_extract_via_format): Handle
42 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export _M_am_pm_format
43 with const _CharT** argument, ensure it isn't exported in GLIBCXX_3.4.
44 * testsuite/22_locale/time_get/get/char/71367.cc: New test.
45 * testsuite/22_locale/time_get/get/wchar_t/71367.cc: New test.
47 2021-12-10 Jakub Jelinek <jakub@redhat.com>
50 * include/bits/locale_facets_nonio.tcc (_M_extract_via_format):
51 Mention in function comment it interprets strptime format string
52 rather than strftime. Handle %a and %A the same by accepting both
53 full and abbreviated names. Similarly handle %h, %b and %B the same.
54 Handle %d and %e the same by accepting possibly optional single space
55 and 1 or 2 digits. For %I store tm_hour 0 instead of tm_hour 12. For
56 %t and %n skip any whitespace. Handle %p and %%. For whitespace in
57 the string skip any whitespace.
58 (_M_extract_num): For __len == 2 accept 1 or 2 digits rather than
59 always 2. Don't punt early if __value * __mult is larget than __max
60 or smaller than __min - __mult, instead punt if __value > __max.
61 At the end verify __value is in between __min and __max and punt
63 (_M_extract_name): Allow non-unique names or names which are prefixes
64 of other names. Don't recompute lengths of names for every character.
65 * testsuite/22_locale/time_get/get/char/3.cc: New test.
66 * testsuite/22_locale/time_get/get/wchar_t/3.cc: New test.
67 * testsuite/22_locale/time_get/get_date/char/12791.cc (test01): Use
68 62 instead 60 and expect 6 to be accepted and thus *ret01 == '2'.
69 * testsuite/22_locale/time_get/get_date/wchar_t/12791.cc (test01):
71 * testsuite/22_locale/time_get/get_time/char/2.cc (test02): Add " PM"
73 * testsuite/22_locale/time_get/get_time/char/5.cc (test01): Expect
74 tm_hour 1 rather than 0.
75 * testsuite/22_locale/time_get/get_time/wchar_t/2.cc (test02): Add
77 * testsuite/22_locale/time_get/get_time/wchar_t/5.cc (test01): Expect
78 tm_hour 1 rather than 0.
80 2021-12-10 Jonathan Wakely <jwakely@redhat.com>
83 * include/bits/atomic_timed_wait.h: Check _GLIBCXX_HAS_GTHREADS
84 before using std::mutex and std::__condvar.
86 2021-12-10 Jonathan Wakely <jwakely@redhat.com>
88 * acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Add _GLIBCXX_
89 prefix to NO_SLEEP macro.
90 * config.h.in: Regenerate.
91 * configure: Regenerate.
93 2021-12-10 Jonathan Wakely <jwakely@redhat.com>
95 * include/bits/char_traits.h: Change pragma push to pop.
97 2021-12-10 Thomas Rodgers <rodgert@twrodgers.com>
100 * include/bits/atomic_base.h (__atomic_base<_PTp*>::wait()):
102 * include/std/atomic (atomic<_Tp*>::wait(), atomic_wait()):
104 * testsuite/29_atomics/atomic/wait_notify/102994.cc:
107 2021-12-09 Jonathan Wakely <jwakely@redhat.com>
109 * include/bits/stl_iterator.h (operator==, operator<=>): Define
110 overloads for homogeneous specializations of reverse_iterator,
111 __normal_iterator and move_iterator.
113 2021-12-09 Jonathan Wakely <jwakely@redhat.com>
115 * testsuite/20_util/scoped_allocator/69293_neg.cc: Remove
118 2021-12-09 Jonathan Wakely <jwakely@redhat.com>
121 * libsupc++/exception_ptr.h (__dest_thunk): Add macro for
122 destructor calling convention.
123 (make_exception_ptr): Enable non-throwing implementation for
124 -fno-exceptions and for non-standard calling conventions. Use
125 always_inline attribute on the useless no-rtti no-exceptions
127 * testsuite/18_support/exception_ptr/64241.cc: Add -fno-rtti so
128 the no-op implementation is still used.
130 2021-12-09 Jonathan Wakely <jwakely@redhat.com>
133 * libsupc++/exception_ptr.h (exception_ptr): Fix exception
134 specifications on inline definitions.
135 (make_exception_ptr): Decay the template parameter. Use typeid
137 * testsuite/18_support/exception_ptr/103630.cc: New test.
139 2021-12-09 Jonathan Wakely <jwakely@redhat.com>
142 * config/io/basic_file_stdio.cc (fopen_mode): Add support for
144 * include/bits/ios_base.h (_S_noreplace): Define new enumerator.
145 (ios_base::__noreplace): Define.
146 (ios_base::noreplace): Define for C++23.
147 * include/std/version (__cpp_lib_ios_noreplace): Define.
148 * testsuite/27_io/basic_ofstream/open/char/noreplace.cc: New test.
149 * testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc: New test.
151 2021-12-09 Jonathan Wakely <jwakely@redhat.com>
154 * config/abi/pre/gnu.ver (GLIBCXX_3.4.11): Do not export old
155 symbol if .symver renaming is supported.
156 (GLIBCXX_3.4.30): Export new symbol if .symver renaming is
158 * doc/xml/manual/evolution.xml: Document change.
159 * doc/html/manual/api.html: Regenerate.
160 * include/bits/std_mutex.h (__condvar::wait, __condvar::wait_until):
162 * include/std/condition_variable (condition_variable::wait):
164 * src/c++11/condition_variable.cc (condition_variable::wait):
166 * src/c++11/compatibility-condvar.cc (__nothrow_wait_cv::wait):
167 Define nothrow wrapper around std::condition_variable::wait and
168 export the old symbol as an alias to it.
169 * testsuite/30_threads/condition_variable/members/103382.cc: New test.
171 2021-12-09 Jonathan Wakely <jwakely@redhat.com>
174 * include/bits/stl_map.h (insert(Pair&&), emplace(Args&&...)):
175 Check whether the arguments can be looked up directly without
176 constructing a temporary node first.
177 * include/bits/stl_pair.h (__is_pair): Move to here, from ...
178 * include/bits/uses_allocator_args.h (__is_pair): ... here.
179 * testsuite/23_containers/map/modifiers/emplace/92300.cc: New test.
180 * testsuite/23_containers/map/modifiers/insert/92300.cc: New test.
182 2021-12-09 Jonathan Wakely <jwakely@redhat.com>
184 * include/bits/cow_string.h (basic_string::_M_leak_hard): Do not
185 reallocate an empty string.
187 2021-12-09 Jonathan Wakely <jwakely@redhat.com>
192 * include/bits/char_traits.h: Suppress stringop and array-bounds
195 2021-12-09 Jonathan Wakely <jwakely@redhat.com>
198 * config/allocator/new_allocator_base.h: Include
199 <bits/new_allocator.h> instead of <ext/new_allocator.h>.
200 (__allocator_base): Use std::__new_allocator instead of
201 __gnu_cxx::new_allocator.
202 * doc/xml/manual/allocator.xml: Document new default base class
204 * doc/xml/manual/evolution.xml: Likewise.
205 * doc/html/*: Regenerate.
206 * include/Makefile.am: Add bits/new_allocator.h.
207 * include/Makefile.in: Regenerate.
208 * include/experimental/memory_resource (new_delete_resource):
209 Use std::__new_allocator instead of __gnu_cxx::new_allocator.
210 * include/ext/new_allocator.h (new_allocator): Derive from
211 std::__new_allocator. Move implementation to ...
212 * include/bits/new_allocator.h: New file.
213 * testsuite/20_util/allocator/64135.cc: New test.
215 2021-12-08 Jonathan Wakely <jwakely@redhat.com>
217 * include/bits/shared_ptr_base.h (_Sp_counted_base::_M_release()):
218 Make shift width conditional on __double_word condition.
220 2021-12-08 François Dumont <fdumont@gcc.gnu.org>
222 * include/std/deque (erase_if): Use _GLIBCXX_STD_C container reference and
223 __niter_wrap to limit _GLIBCXX_DEBUG mode impact.
224 * include/std/vector (erase_if): Likewise.
226 2021-12-08 Maged Michael <maged.michael@gmail.com>
227 Jonathan Wakely <jwakely@redhat.com>
229 * include/bits/c++config (_GLIBCXX_TSAN): Define macro
230 indicating that TSan is in use.
231 * include/bits/shared_ptr_base.h (_Sp_counted_base::_M_release):
232 Replace definition in primary template with explicit
233 specializations for _S_mutex and _S_atomic policies.
234 (_Sp_counted_base<_S_mutex>::_M_release): New specialization.
235 (_Sp_counted_base<_S_atomic>::_M_release): New specialization,
236 using a single atomic load to access both reference counts at
238 (_Sp_counted_base::_M_release_last_use): New member function.
240 2021-12-07 Tamar Christina <tamar.christina@arm.com>
243 2021-11-19 Tamar Christina <tamar.christina@arm.com>
246 * config/os/newlib/ctype_base.h (upper, lower, alpha, digit, xdigit,
247 space, print, graph, cntrl, punct, alnum, blank): Use short or long
248 names depending on if short ones are defined.
250 2021-12-04 Jonathan Wakely <jwakely@redhat.com>
253 * include/bits/regex.h (match_results): Give names to template
254 parameters in first declaration.
255 (match_results::_M_begin): Add default member-initializer.
257 2021-12-03 Jonathan Wakely <jwakely@redhat.com>
259 * include/bits/stl_tree.h (_Rb_tree::_Auto_node): Define new
260 RAII helper for creating and inserting new nodes.
261 (_Rb_tree::_M_insert_node): Use trailing-return-type to simplify
262 out-of-line definition.
263 (_Rb_tree::_M_insert_lower_node): Likewise.
264 (_Rb_tree::_M_insert_equal_lower_node): Likewise.
265 (_Rb_tree::_M_emplace_unique): Likewise. Use _Auto_node.
266 (_Rb_tree::_M_emplace_equal): Likewise.
267 (_Rb_tree::_M_emplace_hint_unique): Likewise.
268 (_Rb_tree::_M_emplace_hint_equal): Likewise.
270 2021-12-02 Jonathan Wakely <jwakely@redhat.com>
272 * src/c++11/cow-stdexcept.cc [_GLIBCXX_FULLY_DYNAMIC_STRING]
273 (logic_error, runtime_error): Remove custom definitions.
275 2021-12-02 Jonathan Wakely <jwakely@redhat.com>
280 * acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): Remove mt, bitmap
282 * configure: Regenerate.
283 * config/allocator/bitmap_allocator_base.h: Removed.
284 * config/allocator/mt_allocator_base.h: Removed.
285 * config/allocator/pool_allocator_base.h: Removed.
286 * doc/xml/manual/allocator.xml: Update.
287 * doc/xml/manual/configure.xml: Update.
288 * doc/xml/manual/evolution.xml: Document removal.
289 * doc/xml/manual/mt_allocator.xml: Editorial tweaks.
290 * doc/html/manual/*: Regenerate.
292 2021-12-02 Jonathan Wakely <jwakely@redhat.com>
294 * include/bits/cow_string.h (basic_string::_M_is_leaked()):
295 Revert change to check __is_single_threaded() before using
298 2021-12-01 Jonathan Wakely <jwakely@redhat.com>
301 * include/bits/stl_tree.h (_Rb_tree(_Rb_tree&&, false_type)):
302 Clear container if elements have been moved-from.
303 * testsuite/23_containers/map/allocator/move_cons.cc: Expect
304 moved-from container to be empty.
305 * testsuite/23_containers/multimap/allocator/move_cons.cc:
307 * testsuite/23_containers/multiset/allocator/103501.cc: New test.
308 * testsuite/23_containers/set/allocator/103501.cc: New test.
310 2021-12-01 Jonathan Wakely <jwakely@redhat.com>
312 * doc/doxygen/user.cfg.in (PREDEFINED): Change macro name.
313 * include/bits/allocator.h (allocate, deallocate): Use
314 std::__is_constant_evaluated() unconditionally, instead of
315 checking whether std::is_constant_evaluated() (or the built-in)
317 * include/bits/basic_string.h: Check new macro. call
318 std::is_constant_evaluated() directly in C++20-only code that is
319 guarded by a suitable macro.
320 * include/bits/basic_string.tcc: Likewise.
321 * include/bits/c++config (__is_constant_evaluated): Define.
322 (_GLIBCXX_HAVE_BUILTIN_IS_CONSTANT_EVALUATED): Replace with ...
323 (_GLIBCXX_HAVE_IS_CONSTANT_EVALUATED): New macro.
324 * include/bits/char_traits.h (char_traits): Replace conditional
325 calls to std::is_constant_evaluated with unconditional calls to
326 std::__is_constant_evaluated.
327 * include/bits/cow_string.h: Use new macro.
328 * include/bits/ranges_algobase.h (__copy_or_move): Replace
329 conditional calls to std::is_constant_evaluated with unconditional
330 calls to std::__is_constant_evaluated.
331 (__copy_or_move_backward, __fill_n_fn): Likewise.
332 * include/bits/ranges_cmp.h (ranges::less): Likewise.
333 * include/bits/stl_algobase.h (lexicographical_compare_three_way):
335 * include/bits/stl_bvector.h: Call std::is_constant_evaluated
336 directly in C++20-only code that is guarded by a suitable macro.
337 * include/bits/stl_construct.h (_Construct, _Destroy, _Destroy_n):
338 Replace is_constant_evaluated with __is_constant_evaluated.
339 * include/bits/stl_function.h (greater, less, greater_equal)
340 (less_equal): Replace __builtin_is_constant_evaluated and
341 __builtin_constant_p with __is_constant_evaluated.
342 * include/bits/stl_vector.h: Call std::is_constant_evaluated()
344 * include/debug/helper_functions.h (__check_singular): Use
345 __is_constant_evaluated instead of built-in, or remove check
347 * include/std/array (operator<=>): Use __is_constant_evaluated
349 * include/std/bit (__bit_ceil): Likewise.
350 * include/std/type_traits (is_constant_evaluated): Define using
351 'if consteval' if possible.
352 * include/std/version: Use new macro.
353 * libsupc++/compare: Use __is_constant_evaluated instead of
354 __builtin_is_constant_evaluated.
355 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
356 Adjust dg-error lines.
358 2021-12-01 Jonathan Wakely <jwakely@redhat.com>
360 * include/bits/cow_string.h (basic_string::_M_is_leaked): Use
361 non-atomic load when __is_single_threaded() is true.
362 (basic_string::_M_is_shared): Likewise.
363 (basic_string::(basic_string&&)) [_GLIBCXX_FULLY_DYNAMIC_STRING]:
364 Use non-atomic store when rvalue is not shared.
366 2021-12-01 Jonathan Wakely <jwakely@redhat.com>
368 * src/c++17/fs_path.cc (path::_M_split_cmpts()): Remove
369 micro-optimization for "/" path.
370 * src/filesystem/path.cc (path::_M_split_cmpts()): Only access
371 the contents of _M_pathname using const member functions.
373 2021-11-30 Jonathan Wakely <jwakely@redhat.com>
375 * testsuite/21_strings/basic_string/cons/char/moveable.cc: Allow
376 moved-from string to be non-empty.
377 * testsuite/21_strings/basic_string/cons/char/moveable2.cc:
379 * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc:
381 * testsuite/21_strings/basic_string/cons/wchar_t/moveable.cc:
383 * testsuite/21_strings/basic_string/cons/wchar_t/moveable2.cc:
385 * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
387 * testsuite/21_strings/basic_string/modifiers/assign/char/87749.cc:
388 Construct empty string before setting oom flag.
389 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/87749.cc:
392 2021-11-30 Jonathan Wakely <jwakely@redhat.com>
394 * include/bits/cow_string.h (basic_string(basic_string&&)): Fix
395 mem-initializer for _GLIBCXX_FULLY_DYNAMIC_STRING==0 case.
396 * testsuite/21_strings/basic_string/cons/char/noexcept_move_construct.cc:
397 Remove outdated comment.
398 * testsuite/21_strings/basic_string/cons/wchar_t/noexcept_move_construct.cc:
401 2021-11-30 Jonathan Wakely <jwakely@redhat.com>
403 * src/c++20/sstream-inst.cc (_GLIBCXX_USE_CXX11_ABI): Define to
406 2021-11-30 Jonathan Wakely <jwakely@redhat.com>
408 * include/bits/stl_vector.h (vector::_S_do_relocate): Remove
409 C++20 constexpr specifier.
410 (vector::_S_relocate) [__cpp_if_constexpr]: Call __relocate_a
411 directly without tag dispatching.
413 2021-11-30 Jonathan Wakely <jwakely@redhat.com>
416 * config/allocator/malloc_allocator_base.h
417 (_GLIBCXX_SANITIZE_STD_ALLOCATOR): Define for Clang.
418 * config/allocator/new_allocator_base.h
419 (_GLIBCXX_SANITIZE_STD_ALLOCATOR): Likewise.
421 2021-11-30 Jonathan Wakely <jwakely@redhat.com>
423 * doc/xml/manual/debug_mode.xml: Replace "his or her" with "their".
424 * doc/html/manual/debug_mode_design.html: Regenerate.
426 2021-11-30 Jakub Jelinek <jakub@redhat.com>
428 * include/std/bit (byteswap): Add [[nodiscard]].
430 2021-11-28 Jakub Jelinek <jakub@redhat.com>
432 * include/std/bit (__cpp_lib_byteswap, byteswap): Define.
433 * include/std/version (__cpp_lib_byteswap): Define.
434 * testsuite/26_numerics/bit/bit.byteswap/byteswap.cc: New test.
435 * testsuite/26_numerics/bit/bit.byteswap/version.cc: New test.
437 2021-11-26 Jonathan Wakely <jwakely@redhat.com>
439 * testsuite/24_iterators/move_iterator/dr3265.cc: Fix test to
440 account for LWG 3435 resolution.
442 2021-11-26 Jonathan Wakely <jwakely@redhat.com>
444 * include/bits/stl_uninitialized.h (__relocate_a_1): Do not use
445 memmove during constant evaluation.
446 * include/bits/stl_vector.h (vector::_S_use_relocate()): Do not
447 check is_constant_evaluated in always-constexpr function.
449 2021-11-26 Jonathan Wakely <jwakely@redhat.com>
452 * include/std/tuple (tuple::is_constructible): Remove.
454 2021-11-26 Jonathan Wakely <jwakely@redhat.com>
456 * testsuite/29_atomics/atomic_float/1.cc: Reorder directives.
458 2021-11-26 Jonathan Wakely <jwakely@redhat.com>
460 * testsuite/23_containers/unordered_map/modifiers/move_assign.cc:
461 Change dg-do compile to run.
462 * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499.cc:
465 2021-11-26 Jonathan Wakely <jwakely@redhat.com>
467 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
468 Remove xfail selector.
469 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
472 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
474 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
476 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
478 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
480 * testsuite/23_containers/span/101411.cc: Likewise.
481 * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Likewise.
482 * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc:
484 * testsuite/25_algorithms/equal/constexpr_neg.cc: Likewise.
485 * testsuite/25_algorithms/equal/debug/constexpr_neg.cc: Likewise.
486 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc:
488 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc:
490 * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc:
492 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc:
494 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc:
496 * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc:
499 2021-11-26 Jonathan Wakely <jwakely@redhat.com>
501 * testsuite/20_util/pointer_traits/lwg3545.cc: Move to_address
503 * testsuite/20_util/to_address/lwg3545.cc: ... here. Add -std
504 option before checking effective target.
506 2021-11-25 Jonathan Wakely <jwakely@redhat.com>
508 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
509 Remove dg-error for C++11_only error.
511 2021-11-25 Jonathan Wakely <jwakely@redhat.com>
514 * include/bits/ptr_traits.h (pointer_traits): Reimplement to be
515 SFINAE-friendly (LWG 3545).
516 * testsuite/20_util/pointer_traits/lwg3545.cc: New test.
517 * testsuite/20_util/to_address/1_neg.cc: Adjust dg-error line.
518 * testsuite/20_util/to_address/lwg3545.cc: New test.
520 2021-11-25 Jonathan Wakely <jwakely@redhat.com>
523 * include/bits/ranges_algobase.h (__fill_n_fn): Check for
524 constant evaluation before using memset.
525 * testsuite/25_algorithms/fill_n/constrained.cc: Check
526 byte-sized values as well.
528 2021-11-24 Jonathan Wakely <jwakely@redhat.com>
530 * testsuite/libstdc++-prettyprinters/80276.cc: Add xfail for
532 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
534 2021-11-24 Jonathan Wakely <jwakely@redhat.com>
536 * testsuite/lib/libstdc++.exp: Rename effective target keywords
537 to avoid dashes in the name.
538 * testsuite/*: Update effective targe keywords.
540 2021-11-23 Jonathan Wakely <jwakely@redhat.com>
543 * testsuite/libstdc++-prettyprinters/cxx11.cc: Check unique_ptr
544 with non-empty pointer and non-empty deleter.
546 2021-11-23 Jonathan Wakely <jwakely@redhat.com>
548 * testsuite/18_support/50594.cc: Check effective target.
549 * testsuite/20_util/allocator/1.cc: Likewise.
550 * testsuite/20_util/allocator/overaligned.cc: Likewise.
551 * testsuite/23_containers/unordered_map/96088.cc: Likewise.
552 * testsuite/23_containers/unordered_multimap/96088.cc: Likewise.
553 * testsuite/23_containers/unordered_multiset/96088.cc: Likewise.
554 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
555 * testsuite/ext/throw_allocator/check_delete.cc: Likewise.
556 * testsuite/ext/throw_allocator/check_new.cc: Likewise.
557 * testsuite/lib/libstdc++.exp (check_effective_target_std_allocator_new):
560 2021-11-23 Jonathan Wakely <jwakely@redhat.com>
563 * include/ext/bitmap_allocator.h: Include <bits/stl_function.h>
564 instead of <functional>.
566 2021-11-22 Jonathan Wakely <jwakely@redhat.com>
568 * include/bits/c++config (_GLIBCXX14_DEPRECATED): Fix condition
571 2021-11-20 François Dumont <fdumont@gcc.gnu.org>
573 * include/bits/erase_if.h (__erase_nodes_if): Add _UnsafeContainer template
574 parameter. Use it to get iterators to work with.
575 * include/debug/macros.h (__glibcxx_check_erase2): New.
576 * include/debug/map.h (map<>::erase(_Base_const_iterator)): New.
577 (map<>::erase(const_iterator)): Use latter.
578 * include/debug/multimap.h (multimap<>::erase(_Base_const_iterator)): New.
579 (multimap<>::erase(const_iterator)): Use latter.
580 * include/debug/multiset.h (multiset<>::erase(_Base_const_iterator)): New.
581 (multiset<>::erase(const_iterator)): Use latter.
582 * include/debug/set.h (set<>::erase(_Base_const_iterator)): New.
583 (set<>::erase(const_iterator)): Use latter.
584 * include/debug/unordered_map (unordered_map<>::erase(_Base_const_iterator)): New.
585 (unordered_multimap<>::erase(const_iterator)): New.
586 * include/debug/unordered_set (unordered_set<>::erase(_Base_const_iterator)): New.
587 (unordered_multiset<>::erase(const_iterator)): New.
588 * include/experimental/map (erase_if): Adapt.
589 * include/experimental/set (erase_if): Adapt.
590 * include/experimental/unordered_map (erase_if): Adapt.
591 * include/experimental/unordered_set (erase_if): Adapt.
592 * include/std/map (erase_if): Adapt.
593 * include/std/set (erase_if): Adapt.
594 * include/std/unordered_map (erase_if): Adapt.
595 * include/std/unordered_set (erase_if): Adapt.
597 2021-11-19 Jonathan Wakely <jwakely@redhat.com>
599 * testsuite/27_io/basic_istringstream/cons/char/1.cc: Check all
601 * testsuite/27_io/basic_istringstream/cons/wchar_t/1.cc:
603 * testsuite/27_io/basic_ostringstream/cons/char/1.cc: Likewise.
604 * testsuite/27_io/basic_ostringstream/cons/wchar_t/1.cc:
606 * testsuite/27_io/basic_stringstream/cons/char/1.cc: Likewise.
607 * testsuite/27_io/basic_stringstream/cons/wchar_t/1.cc:
610 2021-11-19 Jonathan Wakely <jwakely@redhat.com>
612 * src/c++98/locale_init.cc (_S_initialize_once): Check if
613 initialization has already been done.
614 (_S_initialize): Replace __gthread_active_p with
615 __is_single_threaded. Use __builtin_expect.
617 2021-11-19 Jonathan Wakely <jwakely@redhat.com>
620 * include/bits/basic_string.tcc (_M_construct): Use the
621 traits assign member to write into allcoated memory.
623 2021-11-19 Iain Sandoe <iain@sandoe.co.uk>
625 * testsuite/lib/prune.exp: Prune dsymutil (ld64) warning.
627 2021-11-19 Jonathan Wakely <jwakely@redhat.com>
631 * testsuite/21_strings/basic_string/capacity/char/1.cc: Add
632 -Wno-stringop-overflow.
633 * testsuite/21_strings/basic_string/operators/char/1.cc:
635 * testsuite/experimental/filesystem/path/factory/u8path-char8_t.cc:
636 Add -Wno-stringop-overread.
638 2021-11-19 Jonathan Wakely <jwakely@redhat.com>
641 * include/bits/basic_string.h (_Alloc_traits): Replace typedef
642 with struct for C++20 mode.
643 * include/bits/basic_string.tcc (_M_replace): Use _Alloc_traits
645 * include/bits/char_traits.h (__gnu_cxx::char_traits::assign):
646 Use std::_Construct during constant evaluation.
647 (__gnu_cxx::char_traits::assign(CharT*, const CharT*, size_t)):
648 Likewise. Replace std::fill_n with memset or manual loop.
649 (__gnu_cxx::char_traits::copy): Likewise, replacing std::copy
651 * include/ext/vstring.h: Include <bits/stl_algobase.h> for
653 * include/std/string_view: Likewise.
654 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
657 2021-11-19 Tamar Christina <tamar.christina@arm.com>
660 * config/os/newlib/ctype_base.h (upper, lower, alpha, digit, xdigit,
661 space, print, graph, cntrl, punct, alnum, blank): Use short or long
662 names depending on if short ones are defined.
664 2021-11-18 Jonathan Wakely <jwakely@redhat.com>
666 * include/bits/char_traits.h (__gnu_cxx::char_traits::move):
667 Do not compare unrelated pointers during constant evaluation.
668 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
669 Improve tests for char_traits::move.
671 2021-11-18 Jonathan Wakely <jwakely@redhat.com>
673 * acinclude.m4: Replace AC_CACHE_VAL with AC_CACHE_CHECK.
674 * configure: Regenerate.
676 2021-11-17 Jonathan Wakely <jwakely@redhat.com>
678 * include/experimental/internet (address): Use std::_Construct
679 to initialize union members.
681 2021-11-17 Jonathan Wakely <jwakely@redhat.com>
683 * include/bits/basic_string.h (_M_construct_aux): Only define
684 for C++98. Remove constexpr.
685 (_M_construct_aux_2): Likewise.
686 (_M_construct(InputIter, InputIter)): Remove.
687 (basic_string(const basic_string&)): Call _M_construct with
688 iterator category argument.
689 (basic_string(const basic_string&, size_type, const Alloc&)):
691 (basic_string(const basic_string&, size_type, size_type)):
693 (basic_string(const charT*, size_type, const Alloc&)): Likewise.
694 Check for null pointer.
695 (basic_string(const charT*, const Alloc&)): Likewise.
696 (basic_string(initializer_list<charT>, const Alloc&)): Call
697 _M_construct with iterator category argument.
698 (basic_string(const basic_string&, const Alloc&)): Likewise.
699 (basic_string(basic_string&&, const Alloc&)): Likewise.
700 (basic_string(_InputIter, _InputIter, const Alloc&)): Likewise
701 for C++11 and later, call _M_construct_aux for C++98.
702 * include/bits/basic_string.tcc
703 (_M_construct(I, I, input_iterator_tag)): Replace try-block with
705 (_M_construct(I, I, forward_iterator_tag)): Likewise. Remove
706 __is_null_pointer check.
708 2021-11-17 Jonathan Wakely <jwakely@redhat.com>
711 * include/bits/basic_string.h (_M_use_local_data()): New
712 member function to make local buffer the active member.
713 (assign(const basic_string&)): Use it.
714 * include/bits/basic_string.tcc (_M_construct, reserve()):
717 2021-11-17 Jonathan Wakely <jwakely@redhat.com>
720 * libsupc++/tinfo2.cc (type_info::before): Use unadjusted name
721 to check for the '*' prefix.
722 * testsuite/util/testsuite_shared.cc: Add type_info object for
724 * testsuite/18_support/type_info/103240.cc: New test.
726 2021-11-16 Jonathan Wakely <jwakely@redhat.com>
728 * include/bits/basic_string.h (operator<=>): Use constexpr
730 * testsuite/21_strings/basic_string/modifiers/constexpr.cc:
731 Require cxx11-abit effective target.
732 * testsuite/21_strings/headers/string/synopsis.cc: Add
733 conditional constexpr to declarations, and adjust relational
736 2021-11-16 Patrick Palka <ppalka@redhat.com>
738 * src/c++17/ryu/MERGE: Update the commit hash.
739 * src/c++17/ryu/d2s_intrinsics.h: Merge from Ryu's master
742 2021-11-16 Jonathan Wakely <jwakely@redhat.com>
744 * include/bits/basic_string.h (basic_string, operator""s): Add
746 (basic_string::basic_string(basic_string&&)): Only copy
747 initialized portion of the buffer.
748 (basic_string::basic_string(basic_string&&, const Alloc&)):
750 * include/bits/basic_string.tcc (basic_string): Add constexpr
752 (basic_string::swap(basic_string&)): Only copy initialized
753 portions of the buffers.
754 (basic_string::_M_replace): Add constexpr implementation that
755 doesn't depend on pointer comparisons.
756 * include/bits/cow_string.h: Adjust comment.
757 * include/ext/type_traits.h (__is_null_pointer): Add constexpr.
758 * include/std/string (erase, erase_if): Add constexpr.
759 * include/std/version (__cpp_lib_constexpr_string): Update
761 * testsuite/21_strings/basic_string/cons/char/constexpr.cc:
763 * testsuite/21_strings/basic_string/cons/wchar_t/constexpr.cc:
765 * testsuite/21_strings/basic_string/literals/constexpr.cc:
767 * testsuite/21_strings/basic_string/modifiers/constexpr.cc: New test.
768 * testsuite/21_strings/basic_string/modifiers/swap/char/constexpr.cc:
770 * testsuite/21_strings/basic_string/modifiers/swap/wchar_t/constexpr.cc:
772 * testsuite/21_strings/basic_string/version.cc: New test.
774 2021-11-16 Jonathan Wakely <jwakely@redhat.com>
776 * include/bits/stl_bvector.h (swap(_Bit_reference, _Bit_reference))
777 (swap(_Bit_reference, bool&), swap(bool&, _Bit_reference)):
778 Define as hidden friends of _Bit_reference.
780 2021-11-16 Jonathan Wakely <jwakely@redhat.com>
782 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/1.cc:
783 Fix reads past the end of strings.
784 * testsuite/21_strings/basic_string/operations/compare/wchar_t/1.cc:
786 * testsuite/experimental/string_view/operations/compare/wchar_t/1.cc:
789 2021-11-16 Jonathan Wakely <jwakely@redhat.com>
791 * testsuite/21_strings/basic_string/allocator/71964.cc: Fix
793 * testsuite/23_containers/set/allocator/71964.cc: Likewise.
795 2021-11-15 Jason Merrill <jason@redhat.com>
797 * testsuite/20_util/to_address/1_neg.cc: Adjust error.
798 * testsuite/26_numerics/random/concept.cc: Adjust asserts.
800 2021-11-15 François Dumont <fdumont@gcc.gnu.org>
802 * include/bits/hashtable_policy.h:
803 (_Hash_code_base<>::_M_hash_code(const _Hash&, const _Hash_node_value<_Value, true>&)): New.
804 (_Hash_code_base<>::_M_hash_code<_H2>(const _H2&, const _Hash_node_value<>&)): New.
805 * include/bits/hashtable.h (_Hashtable<>::_M_merge_unique): Use latter.
806 (_Hashtable<>::_M_merge_multi): Likewise.
807 * testsuite/23_containers/unordered_multiset/modifiers/merge.cc (test05): New test.
808 * testsuite/23_containers/unordered_set/modifiers/merge.cc (test04): New test.
810 2021-11-15 Jason Merrill <jason@redhat.com>
812 * src/c++17/memory_resource.cc: Add missing constexpr.
813 * include/experimental/internet: Only mark copy constructor
814 as constexpr with __cpp_constexpr_dynamic_alloc.
816 2021-11-14 François Dumont <fdumont@gcc.gnu.org>
818 * include/debug/safe_container.h (_Safe_container<>::_M_safe): Remove.
819 * include/debug/deque (deque::operator=(initializer_list<>)): Replace
820 _M_base() call with _Base:: call.
821 (deque::operator[](size_type)): Likewise.
822 * include/debug/forward_list (forward_list(forward_list&&, const allocator_type&)):
823 Remove _M_safe() and _M_base() calls.
824 (forward_list::operator=(initializer_list<>)): Remove _M_base() calls.
825 (forward_list::splice_after, forward_list::merge): Likewise.
826 * include/debug/list (list(list&&, const allocator_type&)):
827 Remove _M_safe() and _M_base() calls.
828 (list::operator=(initializer_list<>)): Remove _M_base() calls.
829 (list::splice, list::merge): Likewise.
830 * include/debug/map.h (map(map&&, const allocator_type&)):
831 Remove _M_safe() and _M_base() calls.
832 (map::operator=(initializer_list<>)): Remove _M_base() calls.
833 * include/debug/multimap.h (multimap(multimap&&, const allocator_type&)):
834 Remove _M_safe() and _M_base() calls.
835 (multimap::operator=(initializer_list<>)): Remove _M_base() calls.
836 * include/debug/set.h (set(set&&, const allocator_type&)):
837 Remove _M_safe() and _M_base() calls.
838 (set::operator=(initializer_list<>)): Remove _M_base() calls.
839 * include/debug/multiset.h (multiset(multiset&&, const allocator_type&)):
840 Remove _M_safe() and _M_base() calls.
841 (multiset::operator=(initializer_list<>)): Remove _M_base() calls.
842 * include/debug/string (basic_string(basic_string&&, const allocator_type&)):
843 Remove _M_safe() and _M_base() calls.
844 (basic_string::operator=(initializer_list<>)): Remove _M_base() call.
845 (basic_string::operator=(const _CharT*), basic_string::operator=(_CharT)): Likewise.
846 (basic_string::operator[](size_type), basic_string::operator+=(const basic_string&)):
848 (basic_string::operator+=(const _Char*), basic_string::operator+=(_CharT)): Likewise.
849 * include/debug/unordered_map (unordered_map(unordered_map&&, const allocator_type&)):
850 Remove _M_safe() and _M_base() calls.
851 (unordered_map::operator=(initializer_list<>), unordered_map::merge):
852 Remove _M_base() calls.
853 (unordered_multimap(unordered_multimap&&, const allocator_type&)):
854 Remove _M_safe() and _M_base() calls.
855 (unordered_multimap::operator=(initializer_list<>), unordered_multimap::merge):
856 Remove _M_base() calls.
857 * include/debug/unordered_set (unordered_set(unordered_set&&, const allocator_type&)):
858 Remove _M_safe() and _M_base() calls.
859 (unordered_set::operator=(initializer_list<>), unordered_set::merge):
860 Remove _M_base() calls.
861 (unordered_multiset(unordered_multiset&&, const allocator_type&)):
862 Remove _M_safe() and _M_base() calls.
863 (unordered_multiset::operator=(initializer_list<>), unordered_multiset::merge):
864 Remove _M_base() calls.
865 * include/debug/vector (vector(vector&&, const allocator_type&)):
866 Remove _M_safe() and _M_base() calls.
867 (vector::operator=(initializer_list<>)): Remove _M_base() calls.
868 (vector::operator[](size_type)): Likewise.
870 2021-11-13 Jonathan Wakely <jwakely@redhat.com>
872 * include/Makefile.am: Add spanstream header.
873 * include/Makefile.in: Regenerate.
874 * include/precompiled/stdc++.h: Add spanstream header.
875 * include/std/version (__cpp_lib_spanstream): Define.
876 * include/std/spanstream: New file.
877 * testsuite/27_io/spanstream/1.cc: New test.
878 * testsuite/27_io/spanstream/version.cc: New test.
880 2021-11-13 Hans-Peter Nilsson <hp@axis.com>
883 * acinclude.m4 (GLIBCXX_CHECK_GETENTROPY, GLIBCXX_CHECK_ARC4RANDOM):
884 Use GCC_TRY_COMPILE_OR_LINK instead of AC_TRY_COMPILE.
885 * configure: Regenerate.
887 2021-11-12 Jonathan Wakely <jwakely@redhat.com>
890 * acinclude.m4 (libtool_VERSION): Bump version.
891 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Add version and
893 * configure: Regenerate.
894 * include/bits/c++config (__replacement_assert): Remove, declare
895 __glibcxx_assert_fail instead.
896 * src/c++11/debug.cc (__glibcxx_assert_fail): New function to
897 replace __replacement_assert, writing to stderr instead of
899 * testsuite/util/testsuite_abi.cc: Update latest version.
901 2021-11-12 Jonathan Wakely <jwakely@redhat.com>
902 Josh Marshall <joshua.r.marshall.1991@gmail.com>
904 * include/bits/alloc_traits.h (_Destroy): Make constexpr for
906 * include/bits/allocator.h (__shrink_to_fit::_S_do_it):
908 * include/bits/stl_algobase.h (__fill_a1): Declare _Bit_iterator
909 overload constexpr for C++20.
910 * include/bits/stl_bvector.h (_Bit_type, _S_word_bit): Move out
912 (_Bit_reference, _Bit_iterator_base, _Bit_iterator)
913 (_Bit_const_iterator, _Bvector_impl_data, _Bvector_base)
914 (vector<bool, A>>): Add constexpr to every member function.
915 (_Bvector_base::_M_allocate): Initialize storage during constant
917 (vector<bool, A>::_M_initialize_value): Use __fill_bvector_n
919 (__fill_bvector_n): New helper function to replace memset during
921 * include/bits/stl_uninitialized.h (__uninitialized_copy<false>):
923 (__do_uninit_copy): New function.
924 (__uninitialized_fill<false>): Move logic to ...
925 (__do_uninit_fill): New function.
926 (__uninitialized_fill_n<false>): Move logic to ...
927 (__do_uninit_fill_n): New function.
928 (__uninitialized_copy_a): Add constexpr. Use __do_uninit_copy.
929 (__uninitialized_move_a, __uninitialized_move_if_noexcept_a):
931 (__uninitialized_fill_a): Add constexpr. Use __do_uninit_fill.
932 (__uninitialized_fill_n_a): Add constexpr. Use
934 (__uninitialized_default_n, __uninitialized_default_n_a)
935 (__relocate_a_1, __relocate_a): Add constexpr.
936 * include/bits/stl_vector.h (_Vector_impl_data, _Vector_impl)
937 (_Vector_base, vector): Add constexpr to every member function.
938 (_Vector_impl::_S_adjust): Disable ASan annotation during
940 (_Vector_base::_S_use_relocate): Disable bitwise-relocation
941 during constant evaluation.
942 (vector::_Temporary_value): Use a union for storage.
943 * include/bits/vector.tcc (vector, vector<bool>): Add constexpr
944 to every member function.
945 * include/std/vector (erase_if, erase): Add constexpr.
946 * testsuite/23_containers/headers/vector/synopsis.cc: Add
947 constexpr for C++20 mode.
948 * testsuite/23_containers/vector/bool/cmp_c++20.cc: Change to
949 compile-only test using constant expressions.
950 * testsuite/23_containers/vector/bool/capacity/29134.cc: Adjust
951 namespace for _S_word_bit.
952 * testsuite/23_containers/vector/bool/modifiers/insert/31370.cc:
954 * testsuite/23_containers/vector/cmp_c++20.cc: Likewise.
955 * testsuite/23_containers/vector/cons/89164.cc: Adjust errors
956 for C++20 and move C++17 test to ...
957 * testsuite/23_containers/vector/cons/89164_c++17.cc: ... here.
958 * testsuite/23_containers/vector/bool/capacity/constexpr.cc: New test.
959 * testsuite/23_containers/vector/bool/cons/constexpr.cc: New test.
960 * testsuite/23_containers/vector/bool/element_access/constexpr.cc: New test.
961 * testsuite/23_containers/vector/bool/modifiers/assign/constexpr.cc: New test.
962 * testsuite/23_containers/vector/bool/modifiers/constexpr.cc: New test.
963 * testsuite/23_containers/vector/bool/modifiers/swap/constexpr.cc: New test.
964 * testsuite/23_containers/vector/capacity/constexpr.cc: New test.
965 * testsuite/23_containers/vector/cons/constexpr.cc: New test.
966 * testsuite/23_containers/vector/data_access/constexpr.cc: New test.
967 * testsuite/23_containers/vector/element_access/constexpr.cc: New test.
968 * testsuite/23_containers/vector/modifiers/assign/constexpr.cc: New test.
969 * testsuite/23_containers/vector/modifiers/constexpr.cc: New test.
970 * testsuite/23_containers/vector/modifiers/swap/constexpr.cc: New test.
972 2021-11-11 Jonathan Wakely <jwakely@redhat.com>
974 * include/debug/deque (deque::operator=(const deque&)): Remove
976 * include/debug/list (list::operator=(const list&)): Likewise.
977 * include/debug/map.h (map::operator=(const map&)): Likewise.
978 * include/debug/multimap.h (multimap::operator=(const multimap&)):
980 * include/debug/multiset.h (multiset::operator=(const multiset&)):
982 * include/debug/set.h (set::operator=(const set&)): Likewise.
983 * include/debug/string (basic_string::operator=(const basic_string&)):
985 * include/debug/vector (vector::operator=(const vector&)):
987 (_Safe_vector::operator=(const _Safe_vector&)): Define for
990 2021-11-11 Jonathan Wakely <jwakely@redhat.com>
992 * include/std/memory_resource (memory_resource::allocate):
993 Implicitly create objects in the returned storage.
995 2021-11-11 Jonathan Wakely <jwakely@redhat.com>
997 * include/bits/stl_bvector.h (vector<bool>::data()): Give
998 protected access, and delete for C++11 and later.
1000 2021-11-10 Jonathan Wakely <jwakely@redhat.com>
1003 * testsuite/17_intro/headers/c++1998/49745.cc: Explicitly list
1004 all C++ headers instead of including <bits/stdc++.h>
1006 2021-11-10 Jonathan Wakely <jwakely@redhat.com>
1010 * config/os/gnu-linux/os_defines.h (_GLIBCXX_GTHREAD_USE_WEAK):
1011 Define for glibc 2.34 and later.
1013 2021-11-09 François Dumont <fdumont@gcc.gnu.org>
1015 * include/bits/hashtable_policy.h (__distance_fw): Replace class keyword with
1017 * include/bits/hashtable.h (_Hashtable<>::_M_merge_unique): Remove noexcept
1018 qualification. Use const_iterator for node extraction/reinsert.
1019 (_Hashtable<>::_M_merge_multi): Likewise. Compute new hash code before extract.
1020 * include/debug/safe_container.h (_Safe_container<>): Make all methods
1022 * include/debug/safe_unordered_container.h
1023 (_Safe_unordered_container<>::_UContInvalidatePred<_ExtractKey, _Source>): New.
1024 (_Safe_unordered_container<>::_UMContInvalidatePred<_ExtractKey, _Source>): New.
1025 (_Safe_unordered_container<>::_UContMergeGuard<_Source, _InvalidatePred>): New.
1026 (_Safe_unordered_container<>::_S_uc_guard<_ExtractKey, _Source>): New.
1027 (_Safe_unordered_container<>::_S_umc_guard<_ExtractKey, _Source>): New.
1028 (_Safe_unordered_container<>::_M_invalide_all): Make public.
1029 (_Safe_unordered_container<>::_M_invalide_if): Likewise.
1030 (_Safe_unordered_container<>::_M_invalide_local_if): Likewise.
1031 * include/debug/unordered_map
1032 (unordered_map<>::mapped_type, pointer, const_pointer): New typedef.
1033 (unordered_map<>::reference, const_reference, difference_type): New typedef.
1034 (unordered_map<>::get_allocator, empty, size, max_size): Add usings.
1035 (unordered_map<>::bucket_count, max_bucket_count, bucket): Add usings.
1036 (unordered_map<>::hash_function, key_equal, count, contains): Add usings.
1037 (unordered_map<>::operator[], at, rehash, reserve): Add usings.
1038 (unordered_map<>::merge): New.
1039 (unordered_multimap<>::mapped_type, pointer, const_pointer): New typedef.
1040 (unordered_multimap<>::reference, const_reference, difference_type): New typedef.
1041 (unordered_multimap<>::get_allocator, empty, size, max_size): Add usings.
1042 (unordered_multimap<>::bucket_count, max_bucket_count, bucket): Add usings.
1043 (unordered_multimap<>::hash_function, key_equal, count, contains): Add usings.
1044 (unordered_multimap<>::rehash, reserve): Add usings.
1045 (unordered_multimap<>::merge): New.
1046 * include/debug/unordered_set
1047 (unordered_set<>::mapped_type, pointer, const_pointer): New typedef.
1048 (unordered_set<>::reference, const_reference, difference_type): New typedef.
1049 (unordered_set<>::get_allocator, empty, size, max_size): Add usings.
1050 (unordered_set<>::bucket_count, max_bucket_count, bucket): Add usings.
1051 (unordered_set<>::hash_function, key_equal, count, contains): Add usings.
1052 (unordered_set<>::rehash, reserve): Add usings.
1053 (unordered_set<>::merge): New.
1054 (unordered_multiset<>::mapped_type, pointer, const_pointer): New typedef.
1055 (unordered_multiset<>::reference, const_reference, difference_type): New typedef.
1056 (unordered_multiset<>::get_allocator, empty, size, max_size): Add usings.
1057 (unordered_multiset<>::bucket_count, max_bucket_count, bucket): Add usings.
1058 (unordered_multiset<>::hash_function, key_equal, count, contains): Add usings.
1059 (unordered_multiset<>::rehash, reserve): Add usings.
1060 (unordered_multiset<>::merge): New.
1061 * testsuite/23_containers/unordered_map/debug/merge1_neg.cc: New test.
1062 * testsuite/23_containers/unordered_map/debug/merge2_neg.cc: New test.
1063 * testsuite/23_containers/unordered_map/debug/merge3_neg.cc: New test.
1064 * testsuite/23_containers/unordered_map/debug/merge4_neg.cc: New test.
1065 * testsuite/23_containers/unordered_multimap/debug/merge1_neg.cc: New test.
1066 * testsuite/23_containers/unordered_multimap/debug/merge2_neg.cc: New test.
1067 * testsuite/23_containers/unordered_multimap/debug/merge3_neg.cc: New test.
1068 * testsuite/23_containers/unordered_multimap/debug/merge4_neg.cc: New test.
1069 * testsuite/23_containers/unordered_multiset/debug/merge1_neg.cc: New test.
1070 * testsuite/23_containers/unordered_multiset/debug/merge2_neg.cc: New test.
1071 * testsuite/23_containers/unordered_multiset/debug/merge3_neg.cc: New test.
1072 * testsuite/23_containers/unordered_multiset/debug/merge4_neg.cc: New test.
1073 * testsuite/23_containers/unordered_set/debug/merge1_neg.cc: New test.
1074 * testsuite/23_containers/unordered_set/debug/merge2_neg.cc: New test.
1075 * testsuite/23_containers/unordered_set/debug/merge3_neg.cc: New test.
1076 * testsuite/23_containers/unordered_set/debug/merge4_neg.cc: New test.
1077 * testsuite/util/testsuite_abi.h: [_GLIBCXX_DEBUG] Use normal unordered
1078 container implementation.
1080 2021-11-09 Jonathan Wakely <jwakely@redhat.com>
1082 * testsuite/26_numerics/random/random_device/cons/token.cc:
1083 Print results of random_device_available checks.
1085 2021-11-09 Jonathan Wakely <jwakely@redhat.com>
1088 * src/c++11/random.cc: Check __powerpc64__ not __powerpc__.
1090 2021-11-09 Jonathan Wakely <jwakely@redhat.com>
1092 * acinclude.m4 (GLIBCXX_CHECK_GETENTROPY, GLIBCXX_CHECK_ARC4RANDOM):
1094 * configure.ac (GLIBCXX_CHECK_GETENTROPY, GLIBCXX_CHECK_ARC4RANDOM):
1096 * config.h.in: Regenerate.
1097 * configure: Regenerate.
1098 * src/c++11/random.cc (random_device): Add getentropy and
1099 arc4random as sources.
1100 * testsuite/26_numerics/random/random_device/cons/token.cc:
1102 * testsuite/26_numerics/random/random_device/entropy.cc:
1105 2021-11-09 Jonathan Wakely <jwakely@redhat.com>
1107 * testsuite/26_numerics/random/random_device/cons/token.cc:
1108 Retry if random devices produce the same value.
1110 2021-11-09 Rasmus Villemoes <rasmus.villemoes@prevas.dk>
1112 * config/os/vxworks/os_defines.h (_GLIBCXX_HAVE_TLS): Only
1113 define for VxWorks >= 6.6.
1115 2021-11-05 Jonathan Wakely <jwakely@redhat.com>
1117 * include/bits/range_access.h (begin(valarray), end(valarray)):
1120 2021-11-05 Jonathan Wakely <jwakely@redhat.com>
1122 * include/std/tuple (tuple_size_v): Fix pack expansion.
1124 2021-11-05 Jonathan Wakely <jwakely@redhat.com>
1126 * src/c++11/random.cc (__x86_rdrand, __x86_rdseed): Add
1127 [[unlikely]] attribute.
1129 2021-11-05 Jonathan Wakely <jwakely@redhat.com>
1131 * src/c++11/random.cc [__powerpc__] (USE_DARN): Define.
1132 (__ppc_darn): New function to use POWER9 DARN instruction.
1133 (Which): Add 'darn' enumerator.
1134 (which_source): Check for __ppc_darn.
1135 (random_device::_M_init): Support "darn" and "hw" tokens.
1136 (random_device::_M_getentropy): Add darn to switch.
1137 * testsuite/26_numerics/random/random_device/cons/token.cc:
1139 * testsuite/26_numerics/random/random_device/entropy.cc:
1142 2021-11-05 Jonathan Wakely <jwakely@redhat.com>
1144 * testsuite/lib/gdb-test.exp: Add target selector support to the
1145 dg-final directives.
1146 * testsuite/libstdc++-prettyprinters/80276.cc: Add xfail for
1148 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
1149 * testsuite/libstdc++-prettyprinters/prettyprinters.exp: Tweak
1152 2021-11-04 Jonathan Wakely <jwakely@redhat.com>
1155 * python/libstdcxx/v6/printers.py (_tuple_impl_get): New helper
1156 for accessing the tuple element stored in a _Tuple_impl node.
1157 (tuple_get): New function for accessing a tuple element.
1158 (unique_ptr_get): New function for accessing a unique_ptr.
1159 (UniquePointerPrinter, StdPathPrinter): Use unique_ptr_get.
1160 * python/libstdcxx/v6/xmethods.py (UniquePtrGetWorker): Cast
1161 tuple to its base class before accessing _M_head_impl.
1163 2021-11-04 Jonathan Wakely <jwakely@redhat.com>
1165 * doc/xml/manual/evolution.xml: Document deprecations.
1166 * doc/html/*: Regenerate.
1167 * libsupc++/exception (unexpected_handler, unexpected)
1168 (get_unexpected, set_unexpected): Add deprecated attribute.
1169 Do not define without _GLIBCXX_USE_DEPRECATED for C++17 and up.
1170 * libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): Disable
1171 deprecated warnings.
1172 * libsupc++/eh_ptr.cc (std::rethrow_exception): Likewise.
1173 * libsupc++/eh_terminate.cc: Likewise.
1174 * libsupc++/eh_throw.cc (__cxa_init_primary_exception):
1176 * libsupc++/unwind-cxx.h (struct __cxa_exception): Use
1177 terminate_handler instead of unexpected_handler.
1178 (struct __cxa_dependent_exception): Likewise.
1179 (__unexpected): Likewise.
1180 * testsuite/18_support/headers/exception/synopsis.cc: Add
1181 dg-warning for deprecated warning.
1182 * testsuite/18_support/exception_ptr/60612-unexpected.cc:
1183 Disable deprecated warnings.
1184 * testsuite/18_support/set_unexpected.cc: Likewise.
1185 * testsuite/18_support/unexpected_handler.cc: Likewise.
1187 2021-11-04 Jonathan Wakely <jwakely@redhat.com>
1189 * include/bits/utility.h (__find_uniq_type_in_pack): Move
1190 definition to here, ...
1191 * include/std/tuple (__find_uniq_type_in_pack): ... from here.
1192 * include/std/variant (__detail__variant::__index_of): Remove.
1193 (__detail::__variant::__exactly_once): Define using
1194 __find_uniq_type_in_pack instead of __index_of.
1195 (get<T>, get_if<T>, variant::__index_of): Likewise.
1197 2021-11-04 Jonathan Wakely <jwakely@redhat.com>
1199 * include/bits/stl_pair.h (tuple_size_v): Define partial
1200 specializations for std::pair.
1201 * include/bits/utility.h (_Nth_type): Move definition here
1202 and define primary template.
1203 (tuple_size_v): Move definition here.
1204 * include/std/array (tuple_size_v): Define partial
1205 specializations for std::array.
1206 * include/std/tuple (tuple_size_v): Move primary template to
1207 <bits/utility.h>. Define partial specializations for
1209 (tuple_element): Change definition to use _Nth_type.
1210 * include/std/variant (_Nth_type): Move to <bits/utility.h>.
1211 (variant_alternative, variant): Adjust qualification of
1213 * testsuite/20_util/tuple/element_access/get_neg.cc: Prune
1214 additional errors from _Nth_type.
1216 2021-11-04 Jonathan Wakely <jwakely@redhat.com>
1218 * include/std/variant (__detail::__variant::__emplace): New
1220 (_Copy_assign_base::operator=): Reorder conditions to match
1221 bulleted list of effects in the standard. Use __emplace instead
1222 of _M_reset followed by _Construct.
1223 (_Move_assign_base::operator=): Likewise.
1224 (__construct_by_index): Remove.
1225 (variant::emplace): Use __emplace instead of _M_reset followed
1226 by __construct_by_index.
1227 (variant::swap): Hoist valueless cases out of visitor. Use
1228 __emplace to replace _M_reset followed by _Construct.
1230 2021-11-04 Jonathan Wakely <jwakely@redhat.com>
1232 * include/std/variant (_Nth_type): Define partial
1233 specializations to reduce number of instantiations.
1234 (variant_size_v): Define partial specializations to avoid
1236 (variant_alternative): Use _Nth_type. Add static assert.
1237 (__tuple_count, __tuple_count_v): Replace with ...
1238 (__count): New variable template.
1239 (_Variant_union): Add deleted constructor.
1240 (variant::__to_type): Use _Nth_type.
1241 (variant::emplace): Use _Nth_type. Add deleted overloads for
1242 invalid types and indices.
1244 2021-11-04 Jonathan Wakely <jwakely@redhat.com>
1247 * include/std/variant (_Variant_storage::__index_of): Remove.
1248 (__variant_construct_single): Remove.
1249 (__variant_construct): Remove.
1250 (_Copy_ctor_base::_Copy_ctor_base(const _Copy_ctor_base&)): Do
1251 construction directly instead of using __variant_construct.
1252 (_Move_ctor_base::_Move_ctor_base(_Move_ctor_base&&)): Likewise.
1253 (_Move_ctor_base::_M_destructive_move()): Remove.
1254 (_Move_ctor_base::_M_destructive_copy()): Remove.
1255 (_Copy_assign_base::operator=(const _Copy_assign_base&)): Do
1256 construction directly instead of using _M_destructive_copy.
1257 (variant::swap): Do construction directly instead of using
1258 _M_destructive_move.
1259 * testsuite/20_util/variant/102912.cc: New test.
1261 2021-11-03 Jonathan Wakely <jwakely@redhat.com>
1264 * include/bits/list.tcc (list::sort): Use mutable iterators for
1266 * include/bits/stl_list.h (_Scratch_list::_Ptr_cmp): Likewise.
1267 * testsuite/23_containers/list/operations/66742.cc: Check
1268 non-const comparisons.
1270 2021-11-03 Jonathan Wakely <jwakely@redhat.com>
1272 * include/std/valarray (valarray::valarray()): Add noexcept.
1273 (valarray::operator[]): Likewise.
1275 2021-11-01 Jonathan Wakely <jwakely@redhat.com>
1277 * include/debug/stl_iterator.h (__valid_range): Add constexpr
1278 for C++20. Qualify call to avoid ADL.
1279 (__get_distance, __can_advance, __unsafe, __base): Likewise.
1280 * testsuite/25_algorithms/move/constexpr.cc: Also check with
1281 std::reverse_iterator arguments.
1283 2021-11-01 Jonathan Wakely <jwakely@redhat.com>
1285 * include/std/span (span(Range&&)): Reorder constraints.
1287 2021-11-01 Jonathan Wakely <jwakely@redhat.com>
1290 * include/std/valarray (begin, end): Do not dereference an empty
1291 valarray. Add noexcept and [[nodiscard]].
1292 * testsuite/26_numerics/valarray/range_access.cc: Check empty
1293 valarray. Check iterator properties. Run as well as compiling.
1294 * testsuite/26_numerics/valarray/range_access2.cc: Likewise.
1295 * testsuite/26_numerics/valarray/103022.cc: New test.
1297 2021-10-29 Jonathan Wakely <jwakely@redhat.com>
1299 * testsuite/23_containers/stack/deduction.cc: Fix typo.
1301 2021-10-26 Martin Sebor <msebor@redhat.com>
1303 * testsuite/21_strings/basic_string/capacity/1.cc: Also suppress
1304 -Wstringop-overread.
1305 * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc: Same.
1307 2021-10-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1309 * testsuite/28_regex/basic_regex/84110.cc (test01)
1310 [__cpp_exceptions]: Disambiguate extended.
1312 2021-10-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1314 * testsuite/17_intro/names.cc [__sun__] (r, x): Undef.
1316 2021-10-22 Jonathan Wakely <jwakely@redhat.com>
1319 * include/std/any (make_any): Add SFINAE constraint.
1320 * testsuite/20_util/any/102894.cc: New test.
1322 2021-10-21 Jonathan Wakely <jwakely@redhat.com>
1324 * doc/doxygen/stdheader.cc: Refactor. Use C++23. Add new
1326 * scripts/run_doxygen: Fix post-processing of #include
1327 directives in man pages. Use new xg++ to compile helper program.
1329 2021-10-21 Jonathan Wakely <jwakely@redhat.com>
1331 * include/bits/mofunc_impl.h: Add doxygen comments.
1332 * include/std/functional: Likewise.
1334 2021-10-21 Jonathan Wakely <jwakely@redhat.com>
1336 * include/bits/alloc_traits.h: Suppress doxygen documentation.
1337 * include/bits/allocated_ptr.h: Likewise.
1338 * include/bits/enable_special_members.h: Likewise.
1339 * include/bits/hashtable.h: Likewise.
1340 * include/bits/hashtable_policy.h: Likewise.
1341 * include/bits/uses_allocator.h: Likewise.
1342 * include/bits/node_handle.h: Document node handles and suppress
1343 documentation for protected members.
1344 * include/std/any: Suppress documentation for implementation
1347 2021-10-21 Patrick Palka <ppalka@redhat.com>
1350 * include/bits/stl_iterator.h (__niter_base): Make constexpr
1352 (__miter_base): Likewise.
1353 * testsuite/25_algorithms/move/constexpr.cc: New test.
1355 2021-10-21 Patrick Palka <ppalka@redhat.com>
1357 * include/std/ranges (istream_view): Replace this function
1358 template with an alias template as per P2432R1.
1359 (wistream_view): Define as per P2432R1.
1360 (views::_Istream, views::istream): Likewise.
1361 * testsuite/std/ranges/istream_view.cc (test07): New test.
1363 2021-10-21 Patrick Palka <ppalka@redhat.com>
1365 * include/bits/ranges_util.h (views::_Drop): Forward declare.
1366 (subrange): Befriend views::_Drop.
1367 (subrange::_S_store_size): Declare constexpr instead of just
1368 const, remove obsolete comment.
1369 * include/std/ranges (views::__detail::__is_empty_view): Define.
1370 (views::__detail::__is_basic_string_view): Likewise.
1371 (views::__detail::__is_subrange): Likewise.
1372 (views::__detail::__is_iota_view): Likewise.
1373 (views::__detail::__can_take_view): Rename template parm _Tp to _Dp.
1374 (views::_Take): Rename template parm _Tp to _Dp, make it non-deducible
1375 and fix it to range_difference_t<_Range>. Implement P1739R4 and
1377 (views::__detail::__can_drop_view): Rename template parm _Tp to _Dp.
1378 (views::_Drop): As with views::_Take.
1379 (views::_Counted): Implement P1739R4 changes.
1380 * include/std/span (__detail::__is_std_span): Rename to ...
1381 (__detail::__is_span): ... this and turn it into a variable
1383 (__detail::__is_std_array): Turn it into a variable template.
1384 (span::span): Adjust uses of __is_std_span and __is_std_array
1386 * testsuite/std/ranges/adaptors/p1739.cc: New test.
1388 2021-10-21 Patrick Palka <ppalka@redhat.com>
1390 * include/bits/stl_iterator.h (common_iterator::__arrow_proxy):
1391 Make fully constexpr as per LWG 3595.
1392 (common_iterator::__postfix_proxy): Likewise.
1394 2021-10-21 Patrick Palka <ppalka@redhat.com>
1396 * include/std/ranges (lazy_split_view::base): Add forward_range
1397 constraint as per LWG 3591.
1398 (lazy_split_view::begin, lazy_split_view::end): Also check
1399 simpleness of _Pattern as per LWG 3592.
1400 (split_view::base): Relax copyable constraint as per LWG 3590.
1402 2021-10-21 Patrick Palka <ppalka@redhat.com>
1404 * include/std/ranges (join_view::__iter_cat::_S_iter_cat): Adjust
1405 criteria for returning bidirectional_iterator_tag as per LWG 3535.
1406 (join_view::_Iterator::_S_iter_concept): Likewise.
1408 2021-10-21 Patrick Palka <ppalka@redhat.com>
1410 * include/bits/ranges_base.h (viewable_range): Adjust as per
1412 * testsuite/std/ranges/adaptors/all.cc (test07): New test.
1414 2021-10-21 Jonathan Wakely <jwakely@redhat.com>
1417 * include/std/optional (optional::and_then, optional::transform):
1418 Remove requires-clause.
1419 * testsuite/20_util/optional/monadic/and_then.cc: Check
1420 overload resolution doesn't cause errors.
1421 * testsuite/20_util/optional/monadic/transform.cc: Likewise.
1423 2021-10-20 Jonathan Wakely <jwakely@redhat.com>
1425 * testsuite/20_util/optional/monadic/transform.cc: Check that
1426 an rvalue result is not materialized too soon.
1428 2021-10-19 Patrick Palka <ppalka@redhat.com>
1430 * include/std/ranges (iota_view::_Iterator::operator+): Adjust
1431 definition as per LWG 3580.
1432 (iota_view::_Iterator::operator-): Likewise.
1434 2021-10-19 Patrick Palka <ppalka@redhat.com>
1436 * include/std/ranges (basic_istream_view::_M_object): Value
1437 initialize as per LWG 3568.
1439 2021-10-19 Patrick Palka <ppalka@redhat.com>
1441 * include/bits/ranges_util.h
1442 (__detail::__uses_nonqualification_pointer_conversion): Define
1444 (__detail::__convertible_to_nonslicing): ... here, as per LWG 3470.
1445 * testsuite/std/ranges/subrange/1.cc: New test.
1447 2021-10-19 Patrick Palka <ppalka@redhat.com>
1449 * include/std/ranges (iota_view::_Iterator): Befriend iota_view.
1450 (iota_view::_Sentinel): Likewise.
1451 (iota_view::iota_view): Add three overloads, each taking an
1452 iterator/sentinel pair as per LWG 3523.
1453 * testsuite/std/ranges/iota/iota_view.cc (test06): New test.
1455 2021-10-19 Patrick Palka <ppalka@redhat.com>
1457 * include/bits/ranges_base.h (view_interface): Forward declare.
1458 (__detail::__is_derived_from_view_interface_fn): Declare.
1459 (__detail::__is_derived_from_view_interface): Define as per LWG 3549.
1460 (enable_view): Adjust as per LWG 3549.
1461 * include/bits/ranges_util.h (view_interface): Don't derive from
1463 * include/std/ranges (filter_view): Revert r11-3504 change.
1464 (transform_view): Likewise.
1465 (take_view): Likewise.
1466 (take_while_view): Likewise.
1467 (drop_view): Likewise.
1468 (drop_while_view): Likewise.
1469 (join_view): Likewise.
1470 (lazy_split_view): Likewise.
1471 (split_view): Likewise.
1472 (reverse_view): Likewise.
1473 * testsuite/std/ranges/adaptors/sizeof.cc: Update expected sizes.
1474 * testsuite/std/ranges/view.cc (test_view::test_view): Remove
1475 this default ctor since views no longer need to be default initable.
1478 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
1480 * src/c++11/random.cc (which_source): New helper function.
1481 (random_device::_M_getentropy()): Use which_source and return
1482 suitable values for sources other than device files.
1483 * testsuite/26_numerics/random/random_device/entropy.cc: New test.
1485 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
1487 * doc/Makefile.am (stamp-html-doxygen, stamp-html-doxygen)
1488 (stamp-latex-doxygen, stamp-man-doxygen): Fix recipes for
1489 relative ${top_srcdir}.
1490 * doc/Makefile.in: Regenerate.
1492 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
1494 * include/std/variant (_Uninitialized): Use an empty struct
1495 for the unused union member, instead of char.
1497 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
1499 * include/bits/stl_stack.h (stack(Iterator, Iterator)): Remove
1500 non-deducible template parameter from deduction guide.
1501 * testsuite/23_containers/stack/deduction.cc: Check new C++23
1504 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
1506 * include/std/optional (_Optional_payload_base::_Storage): Add
1507 constructor taking a callable function to invoke.
1508 (_Optional_payload_base::_M_apply): New function.
1509 (__cpp_lib_monadic_optional): Define for C++23.
1510 (optional::and_then, optional::transform, optional::or_else):
1512 * include/std/ranges (__detail::__cached): Remove.
1513 (__detail::__non_propagating_cache): Remove use of __cached for
1514 contained value. Use _Optional_payload_base::_M_construct and
1515 _Optional_payload_base::_M_apply to set the contained value.
1516 * include/std/version (__cpp_lib_monadic_optional): Define.
1517 * testsuite/20_util/optional/monadic/and_then.cc: New test.
1518 * testsuite/20_util/optional/monadic/or_else.cc: New test.
1519 * testsuite/20_util/optional/monadic/or_else_neg.cc: New test.
1520 * testsuite/20_util/optional/monadic/transform.cc: New test.
1521 * testsuite/20_util/optional/monadic/version.cc: New test.
1523 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
1526 * include/bits/mofunc_impl.h (move_only_function): Remove
1527 invalid base initializer.
1528 * testsuite/20_util/move_only_function/cons.cc: Instantiate
1529 constructors to check bodies.
1531 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
1533 * include/bits/fs_path.h (path::_S_convert(T)): Avoid recursive
1534 call to function with deduced return type.
1536 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
1538 * include/bits/basic_string.h (__cpp_lib_string_resize_and_overwrite):
1540 (basic_string::resize_and_overwrite): Declare.
1541 * include/bits/basic_string.tcc (basic_string::resize_and_overwrite):
1543 * include/std/version (__cpp_lib_resize_and_overwrite): Define
1545 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
1548 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
1551 * include/std/ranges (__cached): New wrapper struct.
1552 (__non_propagating_cache): Use __cached for contained value.
1553 (__non_propagating_cache::_M_emplace_deref): Add constexpr. Use
1554 std::construct_at instead of placement new.
1555 * testsuite/std/ranges/adaptors/join.cc: Check constexpr works.
1557 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
1559 * include/std/variant (__cpp_lib_variant): Update value for
1561 (__variant_cast, __variant_construct): Add constexpr for C++20.
1562 (__variant_construct_single, __construct_by_index) Likewise. Use
1563 std::_Construct instead of placement new.
1564 (_Uninitialized<T, false>) [__cplusplus >= 202002]: Replace
1565 buffer with a union and define a destructor.
1566 (_Variadic_union) [__cplusplus >= 202002]: Add a specialization
1567 for non-trivial destruction.
1568 (_Variant_storage::__index_of): New helper variable template.
1569 (_Variant_storage::~_Variant_storage()): Add constexpr.
1570 (_Variant_storage::_M_reset()): Likewise.
1571 (_Copy_ctor_base, _Move_ctor_base): Likewise.
1572 (_Copy_assign_base, _Move_assign_base): Likewise.
1573 (variant, swap): Likewise.
1574 * include/std/version (__cpp_lib_variant): Update value for
1576 * testsuite/20_util/optional/version.cc: Check for exact value
1578 * testsuite/20_util/variant/87619.cc: Increase timeout for
1580 * testsuite/20_util/variant/constexpr.cc: New test.
1581 * testsuite/20_util/variant/version.cc: New test.
1583 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
1585 * include/std/variant (__detail::__variant::__get_storage):
1586 Remove unused function.
1587 (__variant_construct_by_index): Set index after construction is
1588 complete. Rename to ...
1589 (__detail::__variant::__construct_by_index): ... this.
1590 (variant): Use new name for __variant_construct_by_index friend
1591 declaration. Remove __get_storage friend declaration.
1592 (variant::emplace): Use new name and remove try-blocks.
1594 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
1596 * include/std/variant (_Variant_storage::_M_storage()): Remove.
1597 (__detail::__variant::__get_storage): Remove.
1598 (variant): Remove friend declaration of __get_storage.
1600 2021-10-15 Jason Merrill <jason@redhat.com>
1602 * testsuite/20_util/integer_comparisons/greater_equal_neg.cc:
1603 * testsuite/20_util/integer_comparisons/greater_neg.cc:
1604 * testsuite/20_util/integer_comparisons/less_equal_neg.cc:
1605 Adjust expected message.
1606 * testsuite/lib/prune.exp: Prune 'in constexpr expansion'.
1608 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
1610 * include/std/variant (__variant::__get(in_place_index_t<N>, U&&)):
1611 Rename to __get_n and remove first argument. Replace pair of
1612 overloads with a single function using 'if constexpr'.
1613 (__variant::__get(Variant&&)): Adjust to use __get_n.
1615 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
1617 * include/bits/fs_path.h (path(path&&)): Make unconditionally
1619 (path::_S_convert(T)): Add condtional noexcept.
1621 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
1624 * include/bits/fs_path.h (path::_S_convert(T)): Fix condition
1625 for returning the same string unchanged.
1627 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
1629 * include/bits/regex.h: Check __cpp_inline_variables instead of
1632 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
1634 * testsuite/20_util/is_layout_compatible/version.cc: Check
1637 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
1639 * include/bits/stl_construct.h (_Construct): Use
1640 std::construct_at when constant evaluated.
1641 * include/std/optional (_Storage, _Optional_payload, optional):
1642 Add constexpr as specified by P2231R1.
1643 * include/std/version (__cpp_lib_optional): Update value for
1645 * testsuite/20_util/optional/requirements.cc: Check feature test
1647 * testsuite/20_util/optional/constexpr/assign.cc: New test.
1648 * testsuite/20_util/optional/constexpr/cons/conv.cc: New test.
1649 * testsuite/20_util/optional/constexpr/modifiers.cc: New test.
1650 * testsuite/20_util/optional/constexpr/swap.cc: New test.
1651 * testsuite/20_util/optional/version.cc: New test.
1653 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
1655 * include/bits/fs_path.h (__detail::__is_contiguous): Add
1656 partial specializations for pointers and __normal_iterator.
1658 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
1660 * testsuite/27_io/filesystem/path/construct/102592.C: Moved to...
1661 * testsuite/27_io/filesystem/path/construct/102592.cc: ...here.
1662 * testsuite/28_regex/match_results/102667.C: Moved to...
1663 * testsuite/28_regex/match_results/102667.cc: ...here.
1665 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
1667 * include/bits/fs_path.h (__detail::__is_contiguous): New
1668 variable template to identify contiguous iterators.
1669 (__detail::__unified_char8_t): New alias template to decide when
1670 to treat char8_t as char without encoding conversion.
1671 (__detail::__effective_range(const basic_string<C,T>&)): Use
1672 std::char_traits<C> for returned string view.
1673 (__detail::__effective_range(const basic_string_view<C,T>&)):
1675 (__detail::__effective_range(const Source&)): Use
1676 __is_contiguous to detect mode cases of contiguous iterators.
1677 Use __unified_char8_t to return a std::string instead of
1680 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
1683 * include/bits/fs_path.h (path::path(Iter, Iter, format))
1684 (path::append(Iter, Iter), path::concat(Iter, Iter)): Call
1685 __string_from_range directly, instead of two-argument overload
1687 (path::_S_convert(Iter, Iter)): Remove.
1688 * testsuite/27_io/filesystem/path/construct/102592.C: New test.
1690 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
1692 * include/bits/c++config (__terminate): Add extern "C++".
1694 2021-10-12 Jonathan Wakely <jwakely@redhat.com>
1696 * testsuite/20_util/tuple/comparison_operators/overloaded.cc:
1697 Restore test for operator<.
1698 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
1699 Adjust expected errors for C++20.
1701 2021-10-12 Jonathan Wakely <jwakely@redhat.com>
1704 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)): Define as
1706 * testsuite/20_util/tuple/cons/101960.cc: Check tuples with
1707 array elements before the last element.
1709 2021-10-12 Jonathan Wakely <jwakely@redhat.com>
1711 * include/bits/stl_iterator_base_funcs.h (__advance): Add
1712 deleted overload to improve diagnostics.
1713 (__distance): Likewise.
1715 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
1717 * include/bits/atomic_timed_wait.h: Remove unused header.
1718 * include/bits/c++config (std:__terminate): Define.
1719 * include/bits/semaphore_base.h: Remove <exception> and use
1720 __terminate instead of terminate.
1721 * include/bits/std_thread.h: Likewise.
1722 * libsupc++/eh_terminate.cc (std::terminate): Use qualified-id
1723 to call __cxxabiv1::__terminate.
1725 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
1727 * include/bits/regex.h (basic_regex::assign(Iter, Iter)): Avoid
1728 std::__to_address by using poitner directly or using base()
1729 member of __normal_iterator.
1731 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
1733 * testsuite/18_support/numeric_limits/lowest.cc: Use
1734 numeric_limits<T>::is_integer instead of is_integral<T>::value.
1736 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
1739 * include/bits/regex.h (basic_regex(const _Ch_type*, size_t)):
1740 Add __glibcxx_requires_string_len assertion.
1741 (basic_regex::assign(InputIterator, InputIterator)): Add
1742 __glibcxx_requires_valid_range assertion.
1743 * include/bits/regex_scanner.tcc (_Scanner::_M_advance())
1744 (_Scanner::_M_scan_normal()): Use string literal in assertions.
1746 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
1749 * include/bits/regex.h (match_result::empty()): Optimize by
1750 calling the base function directly.
1751 (match_results::end()): Check _Base_type::empty() not empty().
1752 * testsuite/28_regex/match_results/102667.C: New test.
1754 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
1757 * testsuite/18_support/numeric_limits/lowest.cc: Remove use of
1758 _GLIBCXX_USE_WCHAR_T.
1759 * testsuite/18_support/numeric_limits/min_max.cc: Replace use of
1760 _GLIBCXX_USE_WCHAR_T with checks for WCHAR_MIN and WCHAR_MAX.
1761 * testsuite/20_util/from_chars/1_neg.cc: Remove use of
1762 _GLIBCXX_USE_WCHAR_T.
1763 * testsuite/20_util/function_objects/searchers.cc: Likewise. Use
1764 char_traits<wchar_t>::length instead of wcslen.
1765 * testsuite/20_util/hash/requirements/explicit_instantiation.cc:
1767 * testsuite/20_util/is_arithmetic/value.cc: Likewise.
1768 * testsuite/20_util/is_compound/value.cc: Likewise.
1769 * testsuite/20_util/is_floating_point/value.cc: Likewise.
1770 * testsuite/20_util/is_fundamental/value.cc: Likewise.
1771 * testsuite/20_util/is_integral/value.cc: Likewise.
1772 * testsuite/20_util/is_signed/value.cc: Likewise.
1773 * testsuite/20_util/is_unsigned/value.cc: Likewise.
1774 * testsuite/20_util/is_void/value.cc: Likewise.
1775 * testsuite/20_util/make_signed/requirements/typedefs-1.cc:
1777 * testsuite/20_util/make_signed/requirements/typedefs-2.cc:
1779 * testsuite/20_util/make_signed/requirements/typedefs-3.cc:
1781 * testsuite/20_util/make_signed/requirements/typedefs-4.cc:
1783 * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
1785 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
1787 * testsuite/20_util/make_unsigned/requirements/typedefs-3.cc:
1789 * testsuite/20_util/to_chars/3.cc: Likewise.
1790 * testsuite/20_util/type_identity/requirements/typedefs.cc:
1792 * testsuite/21_strings/basic_string/hash/debug.cc: Likewise.
1793 * testsuite/21_strings/basic_string/hash/hash.cc: Likewise.
1794 * testsuite/21_strings/basic_string/literals/types-char8_t.cc:
1796 * testsuite/21_strings/basic_string/literals/types.cc: Likewise.
1797 * testsuite/21_strings/basic_string/literals/values-char8_t.cc:
1799 * testsuite/21_strings/basic_string/literals/values.cc:
1801 * testsuite/21_strings/basic_string/modifiers/64422.cc:
1803 * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
1805 * testsuite/21_strings/basic_string/requirements/citerators.cc:
1807 * testsuite/21_strings/basic_string/requirements/typedefs.cc:
1809 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
1811 * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
1813 * testsuite/21_strings/basic_string_view/literals/types.cc:
1815 * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
1817 * testsuite/21_strings/basic_string_view/literals/values.cc:
1819 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
1821 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
1822 * testsuite/21_strings/char_traits/requirements/constexpr_functions.cc:
1824 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
1826 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
1828 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Likewise.
1829 * testsuite/25_algorithms/fill/4.cc: Likewise.
1830 * testsuite/25_algorithms/fill_n/1.cc: Likewise.
1831 * testsuite/experimental/functional/searchers.cc: Likewise. Use
1832 char_traits<wchar_t>::length instead of wcslen.
1833 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc:
1835 * testsuite/experimental/string_view/literals/types-char8_t.cc:
1837 * testsuite/experimental/string_view/literals/types.cc:
1839 * testsuite/experimental/string_view/literals/values-char8_t.cc:
1841 * testsuite/experimental/string_view/literals/values.cc:
1843 * testsuite/experimental/string_view/range_access/wchar_t/1.cc:
1845 * testsuite/experimental/string_view/requirements/typedefs.cc:
1847 * testsuite/experimental/string_view/typedefs.cc: Likewise.
1848 * testsuite/ext/vstring/range_access.cc: Likewise.
1849 * testsuite/std/concepts/concepts.lang/concept.arithmetic/integral.cc:
1851 * testsuite/std/concepts/concepts.lang/concept.arithmetic/signed_integral.cc:
1853 * testsuite/std/concepts/concepts.lang/concept.arithmetic/unsigned_integral.cc:
1855 * testsuite/tr1/4_metaprogramming/is_arithmetic/value.cc:
1857 * testsuite/tr1/4_metaprogramming/is_compound/value.cc:
1859 * testsuite/tr1/4_metaprogramming/is_floating_point/value.cc:
1861 * testsuite/tr1/4_metaprogramming/is_fundamental/value.cc:
1863 * testsuite/tr1/4_metaprogramming/is_integral/value.cc:
1865 * testsuite/tr1/4_metaprogramming/is_signed/value.cc: Likewise.
1866 * testsuite/tr1/4_metaprogramming/is_unsigned/value.cc:
1868 * testsuite/tr1/4_metaprogramming/is_void/value.cc: Likewise.
1869 * testsuite/tr1/6_containers/hash/24799.cc: Likewise.
1871 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
1874 * include/std/ostream (operator<<(basic_ostream<char, Tr>&, wchar_t))
1875 (operator<<(basic_ostream<char, Tr>&, const wchar_t*)): Always
1876 define as deleted. Do not check _GLIBCXX_USE_WCHAR_T.
1878 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
1881 * include/bits/locale_conv.h (wstring_convert, wbuffer_convert):
1882 Define unconditionally. Do not check _GLIBCXX_USE_WCHAR_T.
1884 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
1887 * include/c_global/cstddef [!_GLIBCXX_USE_WCHAR_T]
1888 (__byte_operand<wchar_t>): Define specialization.
1889 * include/std/type_traits (__make_signed<wchar_t>)
1890 (__make_unsigned<wchar_t>): Remove redundant check for
1891 __WCHAR_TYPE__ being defined.
1892 * include/tr1/type_traits [!_GLIBCXX_USE_WCHAR_T]
1893 (__is_integral_helper<wchar_t>): Likewise.
1895 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
1898 * include/ext/rc_string_base.h [!_GLIBCXX_USE_WCHAR_T]
1899 (__rc_string_base<wchar_t>): Define member function.
1900 * include/ext/vstring.h [!_GLIBCXX_USE_WCHAR_T]
1901 (hash<__gnu_cxx::__wvstring>): Define specialization.
1902 * include/ext/vstring_fwd.h [!_GLIBCXX_USE_WCHAR_T] (__wvstring)
1903 (__wsso_string, __wrc_string): Declare typedefs.
1905 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
1908 * include/bits/char_traits.h (char_traits<wchar_t>): Define
1909 explicit specialization unconditionally.
1910 * include/bits/basic_string.h (hash<wstring>): Define
1911 unconditionally. Do not check _GLIBCXX_USE_WCHAR_T.
1912 * include/bits/stringfwd.h (wstring): Likewise.
1913 * include/debug/string (wstring): Likewise.
1914 * include/experimental/string_view (experimental::wstring_view)
1915 (hash<experimental::wstring_view>): Likewise.
1916 * include/std/string (pmr::wstring, hash<pmr::wstring>):
1918 * include/std/string_view (wstring_view, hash<wstring_view>):
1921 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
1923 * testsuite/27_io/basic_filebuf/close/81256.cc: Moved to...
1924 * testsuite/27_io/basic_filebuf/close/wchar_t/81256.cc: ...here.
1926 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
1928 * testsuite/22_locale/conversions/buffer/1.cc: Check
1929 _GLIBCXX_USE_WCHAR_T.
1930 * testsuite/22_locale/conversions/buffer/3.cc: Likewise. Add
1931 test using char16_t.
1932 * testsuite/22_locale/conversions/string/1.cc: Check
1933 _GLIBCXX_USE_WCHAR_T.
1934 * testsuite/27_io/filesystem/path/generic/generic_string.cc:
1936 * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
1938 * testsuite/27_io/filesystem/path/native/alloc.cc: Likewise.
1939 * testsuite/27_io/filesystem/path/native/string-char8_t.cc:
1941 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
1942 * testsuite/28_regex/algorithms/regex_match/extended/wstring_locale.cc:
1944 * testsuite/experimental/filesystem/path/generic/generic_string.cc:
1946 * testsuite/experimental/filesystem/path/native/alloc.cc:
1948 * testsuite/experimental/filesystem/path/native/string-char8_t.cc:
1950 * testsuite/experimental/filesystem/path/native/string.cc:
1953 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
1955 * testsuite/26_numerics/bit/bit.rotate/rotr.cc:
1956 * testsuite/util/testsuite_common_types.h:
1958 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
1960 * testsuite/18_support/numeric_limits/40856.cc: Replace use of
1961 _GLIBCXX_USE_INT128.
1962 * testsuite/18_support/numeric_limits/dr559.cc: Likewise.
1963 * testsuite/18_support/numeric_limits/lowest.cc: Likewise.
1964 * testsuite/18_support/numeric_limits/max_digits10.cc: Likewise.
1965 * testsuite/20_util/is_floating_point/value.cc: Likewise.
1966 * testsuite/20_util/is_integral/value.cc: Likewise.
1967 * testsuite/20_util/is_signed/value.cc: Likewise.
1968 * testsuite/20_util/is_unsigned/value.cc: Likewise.
1969 * testsuite/20_util/make_signed/requirements/typedefs-1.cc:
1971 * testsuite/20_util/make_signed/requirements/typedefs-2.cc:
1973 * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
1975 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
1977 * testsuite/20_util/type_identity/requirements/typedefs.cc:
1979 * testsuite/26_numerics/bit/bit.count/countl_one.cc: Likewise.
1980 * testsuite/26_numerics/bit/bit.count/countl_zero.cc: Likewise.
1981 * testsuite/26_numerics/bit/bit.count/countr_one.cc: Likewise.
1982 * testsuite/26_numerics/bit/bit.count/countr_zero.cc: Likewise.
1983 * testsuite/26_numerics/bit/bit.count/popcount.cc: Likewise.
1984 * testsuite/26_numerics/bit/bit.pow.two/bit_ceil.cc: Likewise.
1985 * testsuite/26_numerics/bit/bit.pow.two/bit_floor.cc: Likewise.
1986 * testsuite/26_numerics/bit/bit.pow.two/bit_width.cc: Likewise.
1987 * testsuite/26_numerics/bit/bit.pow.two/has_single_bit.cc:
1989 * testsuite/26_numerics/bit/bit.rotate/rotl.cc: Likewise.
1991 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
1993 * include/bits/hashtable_policy.h (_Select1st): Replace use of
1995 (_Select2nd): Remove.
1996 (_NodeBuilder::_S_build): Use _NodeGenerator::__node_type
1997 typedef instead of deducing it. Remove unnecessary piecewise
1999 (_ReuseOrAllocNode): Make __node_type public.
2000 (_Map_base): Adjust partial specialization to be able to extract
2001 the mapped_type without using tuple_element.
2002 (_Map_base::at): Define inline
2003 * testsuite/23_containers/unordered_map/requirements/53339.cc:
2005 * testsuite/23_containers/unordered_multimap/requirements/53339.cc:
2008 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
2010 * include/bits/hashtable.h: Move static assertion to destructor.
2011 * include/bits/hashtable_policy.h: Deduce value type from node
2012 type without instantiating it.
2014 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
2016 * src/c++11/limits.cc: Fail if __cpp_inline_variables is
2019 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
2022 * include/bits/ranges_algobase.h: Replace <iterator> with a
2023 subset of the headers it includes.
2025 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
2027 * include/experimental/deque (erase, erase_if): Revert changes
2028 to avoid debug mode overhead.
2029 * include/experimental/map (erase, erase_if): Likewise.
2030 * include/experimental/set (erase, erase_if): Likewise.
2031 * include/experimental/unordered_map (erase, erase_if):
2033 * include/experimental/unordered_set (erase, erase_if):
2035 * include/experimental/vector (erase, erase_if): Likewise.
2036 * include/std/deque (erase, erase_if): Likewise.
2037 * include/std/map (erase, erase_if): Likewise.
2038 * include/std/set (erase, erase_if): Likewise.
2039 * include/std/unordered_map (erase, erase_if): Likewise.
2040 * include/std/unordered_set (erase, erase_if): Likewise.
2041 * include/std/vector (erase, erase_if): Likewise.
2043 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
2045 * include/std/chrono (__detail::__units_suffix_misc): New
2047 (__detail::__units_suffix): Likewise.
2048 (chrono::operator<<(basic_ostream&, const duration&)): Define.
2049 * testsuite/20_util/duration/io.cc: New test.
2051 2021-10-07 Jonathan Wakely <jwakely@redhat.com>
2053 * include/Makefile.am: Add new header.
2054 * include/Makefile.in: Regenerate.
2055 * include/std/chrono (duration, time_point, system_clock)
2056 (steady_clock, high_resolution_clock, chrono_literals, sys_time)
2057 (file_clock, file_time): Move to ...
2058 * include/bits/chrono.h: New file.
2059 * include/bits/atomic_futex.h: Include new header instead of
2061 * include/bits/atomic_timed_wait.h: Likewise.
2062 * include/bits/fs_fwd.h: Likewise.
2063 * include/bits/semaphore_base.h: Likewise.
2064 * include/bits/this_thread_sleep.h: Likewise.
2065 * include/bits/unique_lock.h: Likewise.
2066 * include/experimental/bits/fs_fwd.h: Likewise.
2067 * include/experimental/chrono: Likewise.
2068 * include/experimental/io_context: Likewise.
2069 * include/experimental/netfwd: Likewise.
2070 * include/experimental/timer: Likewise.
2071 * include/std/condition_variable: Likewise.
2072 * include/std/mutex: Likewise.
2073 * include/std/shared_mutex: Likewise.
2075 2021-10-07 Jonathan Wakely <jwakely@redhat.com>
2078 * include/bits/atomic_wait.h (__waiter_pool_base:_S_align):
2079 Hardcode to 64 instead of using non-constant constant.
2081 2021-10-07 Jonathan Wakely <jwakely@redhat.com>
2083 * include/bits/erase_if.h (__erase_nodes_if): Remove redundant
2085 * include/std/string (erase, erase_if): Likewise.
2086 * include/std/deque (erase, erase_if): Access non-debug
2088 * include/std/map (erase, erase_if): Likewise.
2089 * include/std/set (erase, erase_if): Likewise.
2090 * include/std/unordered_map (erase, erase_if): Likewise.
2091 * include/std/unordered_set (erase, erase_if): Likewise.
2092 * include/std/vector (erase, erase_if): Likewise.
2093 * include/experimental/deque (erase, erase_if): Likewise.
2094 * include/experimental/map (erase, erase_if): Likewise.
2095 * include/experimental/set (erase, erase_if): Likewise.
2096 * include/experimental/unordered_map (erase, erase_if):
2098 * include/experimental/unordered_set (erase, erase_if):
2100 * include/experimental/vector (erase, erase_if): Likewise.
2102 2021-10-06 Jonathan Wakely <jwakely@redhat.com>
2104 * include/Makefile.am: Add new headers.
2105 * include/Makefile.in: Regenerate.
2106 * include/std/functional: Include <bits/move_only_function.h>.
2107 * include/std/version (__cpp_lib_move_only_function): Define.
2108 * include/bits/mofunc_impl.h: New file.
2109 * include/bits/move_only_function.h: New file.
2110 * testsuite/20_util/move_only_function/call.cc: New test.
2111 * testsuite/20_util/move_only_function/cons.cc: New test.
2112 * testsuite/20_util/move_only_function/move.cc: New test.
2113 * testsuite/20_util/move_only_function/version.cc: New test.
2115 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
2117 * testsuite/21_strings/basic_string_view/requirements/trivially_copyable.cc:
2119 * testsuite/23_containers/span/trivially_copyable.cc: New test.
2121 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
2123 * include/bits/utility.h (__is_in_place_type_v): Define
2124 variable template to detect in_place_type_t specializations.
2125 (__is_in_place_type): Replace class template with alias
2126 template using __is_in_place_type_v.
2127 * include/std/any (any(T&&)): Check __is_in_place_type first and
2128 avoid instantiating is_copy_constructible unnecessarily.
2130 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
2132 * testsuite/20_util/integer_comparisons/greater.cc: New test.
2134 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
2136 * testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc:
2137 Check result matches non-volatile pointer.
2139 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
2142 * testsuite/20_util/is_trivially_constructible/value.cc: Adjust
2143 expected value for C++20.
2145 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
2147 * include/bits/std_function.h (_Any_data::_M_access): Add
2149 (_Function_base::_Base_manager::_M_get_pointer): Likewise.
2150 (_Function_base::_Base_manager::_M_not_empty_function):
2153 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
2155 * include/std/ostream (operator<<(const volatile void*)):
2156 Add new overload, as per P1147R1.
2157 * testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc:
2160 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
2162 * include/bits/stl_queue.h
2163 (__cpp_lib_adaptor_iterator_pair_constructor): Set to correct
2165 * include/bits/stl_stack.h
2166 (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
2167 * include/std/version
2168 (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
2169 * testsuite/23_containers/queue/cons_from_iters.cc: Update
2171 * testsuite/23_containers/stack/cons_from_iters.cc: Likewise.
2173 2021-10-04 Jonathan Wakely <jwakely@redhat.com>
2175 * include/bits/forward_list.h (forward_list): Use non-deduced
2176 context for allocator parameter of allocator-extended copy and
2178 * include/bits/stl_bvector.h (vector<bool>): Likewise.
2179 * include/bits/stl_deque.h (deque): Likewise.
2180 * include/bits/stl_list.h (list): Likewise.
2181 * include/bits/stl_map.h (map): Likewise.
2182 * include/bits/stl_multimap.h (multimap): Likewise.
2183 * include/bits/stl_multiset.h (multiset): Likewise.
2184 * include/bits/stl_set.h (set): Likewise.
2185 * include/bits/stl_vector.h (vector): Likewise.
2186 * include/bits/stl_queue.h (queue, priority_queue): Do not
2187 constrain Allocator template parameter of deduction guides that
2188 have a Container parameter.
2189 * include/bits/stl_stack.h (stack): Likewise.
2190 * include/debug/deque (__gnu_debug::deque): Use non-deduced
2191 context for allocator parameter of allocator-extended copy and
2193 * include/debug/list (__gnu_debug::list): Likewise.
2194 * include/debug/map.h (__gnu_debug::map): Likewise.
2195 * include/debug/multimap.h (__gnu_debug::multimap): Likewise.
2196 * include/debug/multiset.h (__gnu_debug::multiset): Likewise.
2197 * include/debug/set.h (__gnu_debug::set): Likewise.
2198 * include/debug/vector (__gnu_debug::vector): Likewise.
2199 * testsuite/23_containers/deque/cons/deduction.cc: Test class
2200 template argument deduction with non-deduced allocator
2202 * testsuite/23_containers/forward_list/cons/deduction.cc:
2204 * testsuite/23_containers/list/cons/deduction.cc: Likewise.
2205 * testsuite/23_containers/map/cons/deduction.cc: Likewise.
2206 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
2207 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
2208 * testsuite/23_containers/priority_queue/deduction.cc: Likewise.
2209 * testsuite/23_containers/queue/deduction.cc: Likewise.
2210 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
2211 * testsuite/23_containers/stack/deduction.cc: Likewise.
2212 * testsuite/23_containers/unordered_map/cons/deduction.cc:
2214 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
2216 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
2218 * testsuite/23_containers/unordered_set/cons/deduction.cc:
2220 * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
2222 2021-10-04 Jonathan Wakely <jwakely@redhat.com>
2224 * include/std/variant (__detail::__variant::__as): Add missing
2225 noexcept to first overload.
2227 2021-10-04 Jonathan Wakely <jwakely@redhat.com>
2229 * include/bits/basic_string.h (basic_string(nullptr_t)): Define
2231 (operator=(nullptr_t)): Likewise.
2232 * include/bits/cow_string.h (basic_string(nullptr_t)): Likewise.
2233 (operator=(nullptr_t)): Likewise.
2234 * include/std/string_view (basic_string_view(nullptr_t)):
2236 * testsuite/21_strings/basic_string/cons/char/nullptr.cc: New test.
2237 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
2238 Change dg-warning to dg-error.
2239 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
2242 2021-10-02 Jonathan Wakely <jwakely@redhat.com>
2244 * src/c++17/fs_ops.cc (create_directory): Fix typo in enum name.
2245 * src/filesystem/ops-common.h (__last_system_error): Add
2246 explicit cast to avoid narrowing conversion.
2247 (do_space): Fix type in function name.
2249 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2252 * include/Makefile.am (c++config.h): Define
2253 _GLIBCXX_VERBOSE_ASSERT based on configure output.
2254 * include/Makefile.in: Regenerate.
2255 * include/bits/c++config: Fix condition for verbose assertions.
2257 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2260 * include/bits/erase_if.h (__erase_nodes_if): Use __niter_base to
2261 unwrap debug iterators.
2262 * include/bits/refwrap.h: Do not error if included in C++03.
2263 * include/bits/stl_algo.h (__remove_if): Move to ...
2264 * include/bits/stl_algobase.h (__remove_if): ... here.
2265 * include/std/deque (erase, erase_if): Use __remove_if instead of
2266 remove and remove_if.
2267 * include/std/string (erase, erase_if): Likewise.
2268 * include/std/vector (erase, erase_if): Likewise.
2270 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2273 * include/bits/list.tcc (list::sort()): Use _Scratch_list
2274 objects for splicing and merging.
2275 (list::sort(StrictWeakOrdering)): Likewise.
2276 * include/bits/stl_list.h (__detail::_Scratch_list): New type.
2277 * src/c++98/list.cc (_List_node_base::_M_transfer): Add
2278 assertion for --enable-libstdcxx-debug library.
2279 * testsuite/23_containers/list/operations/66742.cc: New test.
2281 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2284 * include/std/thread (__pmf_expects_stop_token): New variable
2285 template to detect a pointer to member function that needs a
2286 stop_token to be added to the arguments.
2287 (jthread::__S_create): Use __pmf_expects_stop_token.
2288 (jthread::__S_create_pmf): New function.
2289 * testsuite/30_threads/jthread/100612.cc: New test.
2291 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2293 * include/bits/stl_queue.h
2294 (__cpp_lib_adaptor_iterator_pair_constructor): Define for C++23, as
2296 (queue(InputIterator, InputIterator)): Likewise.
2297 (queue(InputIterator, InputIterator, const Alloc&)): Likewise.
2298 * include/bits/stl_stack.h
2299 (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
2300 (stack(InputIterator, InputIterator)): Likewise.
2301 (stack(InputIterator, InputIterator, const Alloc&)): Likewise.
2302 * include/std/version (__cpp_lib_adaptor_iterator_pair_constructor):
2304 * testsuite/23_containers/queue/cons_from_iters.cc: New test.
2305 * testsuite/23_containers/stack/cons_from_iters.cc: New test.
2307 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2309 * include/bits/stl_queue.h (priority_queue): Add
2310 allocator-extended overloads for constructors taking iterator.
2311 * testsuite/23_containers/priority_queue/lwg3506.cc: New test.
2313 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2315 * include/bits/stl_queue.h (priority_queue): Construct sequence
2316 from iterators when no sequence argument is present (LWG 3529).
2317 * testsuite/23_containers/priority_queue/lwg3529.cc: New test.
2319 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2321 * include/bits/stl_queue.h (priority_queue): Constrain
2322 constructors with InputIterator parameters (LWG 3522).
2323 * testsuite/23_containers/priority_queue/lwg3522.cc: New test.
2325 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2327 * include/bits/ranges_base.h (ranges::distance): Split overload
2328 into two (LWG 3392).
2329 * testsuite/24_iterators/range_operations/lwg3392.cc: New test.
2331 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2333 * testsuite/30_threads/thread/cons/3.cc: Remove derivation from
2334 std::unary_function.
2335 * testsuite/30_threads/thread/cons/4.cc: Likewise.
2336 * testsuite/30_threads/thread/cons/5.cc: Likewise.
2338 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2340 * testsuite/ext/pb_ds/example/basic_multimap.cc: Remove
2341 unnecesary derivation from std::unary_function.
2342 * testsuite/ext/pb_ds/example/erase_if.cc: Likewise.
2343 * testsuite/ext/pb_ds/example/hash_illegal_resize.cc: Likewise.
2344 * testsuite/ext/pb_ds/example/hash_initial_size.cc: Likewise.
2345 * testsuite/ext/pb_ds/example/hash_load_set_change.cc: Likewise.
2346 * testsuite/ext/pb_ds/example/hash_mod.cc: Likewise.
2347 * testsuite/ext/pb_ds/example/hash_resize.cc: Likewise.
2348 * testsuite/ext/pb_ds/example/hash_shift_mask.cc: Likewise.
2349 * testsuite/ext/pb_ds/example/priority_queue_dijkstra.cc:
2351 * testsuite/ext/pb_ds/example/ranged_hash.cc: Likewise.
2352 * testsuite/ext/pb_ds/example/store_hash.cc: Likewise.
2354 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2356 * src/c++11/functexcept.cc (__throw_out_of_range_fmt): Do not
2357 expand the format string for freestanding, or non-vebose, or if
2358 we're just going to abort anyway.
2359 * src/c++11/snprintf_lite.cc: Remove unused header and
2362 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2364 * include/std/variant (__do_visit): Use variant_npos instead of
2365 literal -1 that requires a narrowing conversion.
2367 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2370 * src/filesystem/ops-common.h (__unsupported): New function to
2371 return a suitable error code for missing functionality.
2372 (posix::off_t): New typedef.
2373 (posix::*): Set errno to ENOSYS instead of ENOTSUP for no-op
2374 fallback implementations.
2375 (do_copy_file): Replace uses of errc::not_supported.
2376 * src/c++17/fs_ops.cc (fs::copy, fs::copy_file, create_dir)
2377 (fs::create_directory, fs::create_directory_symlink)
2378 (fs::create_hard_link, fs::create_symlink, fs::current_path)
2379 (fs::equivalent, do_stat, fs::file_size, fs::hard_link_count)
2380 (fs::last_write_time, fs::permissions, fs::read_symlink):
2381 Replace uses of errc::not_supported.
2382 (fs::resize_file): Qualify off_t.
2383 * src/filesystem/ops.cc (fs::copy, fs::copy_file, create_dir)
2384 (fs::create_directory, fs::create_directory_symlink)
2385 (fs::create_hard_link, fs::create_symlink, fs::current_path)
2386 (fs::equivalent, do_stat, fs::file_size, fs::last_write_time)
2387 (fs::permissions, fs::read_symlink, fs::system_complete):
2388 Replace uses of errc::not_supported.
2389 (fs::resize_file): Qualify off_t and enable unconditionally.
2390 * testsuite/19_diagnostics/system_error/cons-1.cc: Likewise.
2392 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2394 * src/filesystem/ops-common.h (last_error): New helper function.
2395 (filesystem::do_space): Use last_error().
2396 * src/c++17/fs_ops.cc (fs::absolute, fs::create_hard_link)
2397 (fs::equivalent, fs::remove, fs::temp_directory_path): Use
2399 * src/filesystem/ops.cc (fs::create_hard_link)
2400 (fs::remove, fs::temp_directory_path): Likewise.
2402 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2404 * include/std/type_traits (__conditional): New class template
2405 for internal uses of std::conditional.
2406 (__conditional_t): New alias template to replace conditional_t.
2407 (__and_, __or_, __result_of_memfun, __result_of_memobj): Use
2408 __conditional_t instead of conditional::type.
2409 * include/bits/atomic_base.h (__atomic_impl::_Diff): Likewise.
2410 * include/bits/hashtable.h (_Hashtable): Likewise.
2411 * include/bits/hashtable_policy.h (_Node_iterator, _Insert_base)
2412 (_Local_iterator): Likewise. Replace typedefs with
2414 * include/bits/move.h (move_if_noexcept): Use __conditional_t.
2415 * include/bits/parse_numbers.h (_Select_int_base): Likewise.
2416 * include/bits/ptr_traits.h (__make_not_void): Likewise.
2417 * include/bits/ranges_algobase.h (__copy_or_move_backward)
2418 (__copy_or_move): Likewise.
2419 * include/bits/ranges_base.h (borrowed_iterator_t): Likewise.
2420 * include/bits/ranges_util.h (borrowed_subrange_t): Likewise.
2421 * include/bits/regex_compiler.h (_BracketMatcher): Use
2422 __conditional_t. Replace typedefs with using-declarations.
2423 * include/bits/shared_ptr_base.h (__shared_count): Use
2425 * include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
2427 * include/bits/stl_iterator.h (__detail::__clamp_iter_cat)
2428 (reverse_iterator::iterator_concept)
2429 (__make_move_if_noexcept_iterator)
2430 (iterator_traits<common_iterator<_It, _Sent>>)
2431 (iterator_traits<counted_iterator<_It>>): Likewise.
2432 * include/bits/stl_pair.h (_PCC, pair::operator=): Likewise.
2433 * include/bits/stl_tree.h (_Rb_tree::insert_return_type)
2434 (_Rb_tree::_M_clone_node): Likewise.
2435 * include/bits/unique_ptr.h (unique_ptr(unique_ptr<U,E>&&)):
2437 * include/bits/uses_allocator.h (__uses_alloc): Likewise.
2438 (__is_uses_allocator_predicate): Likewise.
2439 * include/debug/functions.h (__foreign_iterator_aux2): Likewise.
2440 * include/experimental/any (any::_Manager, __any_caster):
2442 * include/experimental/executor (async_completion): Likewise.
2443 * include/experimental/functional (__boyer_moore_base_t):
2445 * include/std/any (any::_Manager): Likewise.
2446 * include/std/functional (__boyer_moore_base_t): Likewise.
2447 * include/std/ranges (borrowed_iterator_t)
2448 (borrowed_subrange_t, __detail::__maybe_present_t)
2449 (__detail::__maybe_const_t, split_view): Likewise.
2450 * include/std/tuple (__empty_not_final, tuple::operator=):
2452 * include/std/variant (__detail::__variant::__get_t): Likewise.
2454 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2457 * include/std/variant (__do_visit): Use a switch when we have a
2458 single variant with a small number of alternatives.
2460 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2463 * include/std/variant (__cpp_lib_variant): Update value.
2464 (__detail::__variant::__as): New helpers implementing the
2465 as-variant exposition-only function templates.
2466 (visit, visit<R>): Use __as to upcast the variant parameters.
2467 * include/std/version (__cpp_lib_variant): Update value.
2468 * testsuite/20_util/variant/visit_inherited.cc: New test.
2470 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2472 * include/bits/stl_iterator.h (__normal_iterator): Simplify
2473 converting constructor and do not require _Container::pointer.
2475 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2477 * include/bits/cow_string.h [_GLIBCXX_FULLY_DYNAMIC_STRING]
2478 (basic_string(basic_string&&)): Add noexcept and avoid
2479 allocation, by sharing rep with the rvalue string.
2481 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2483 * include/bits/stl_iterator.h (common_iterator::__arrow_proxy)
2484 (common_iterator::__postfix_proxy): Add noexcept.
2486 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2489 * include/bits/stl_iterator.h (reverse_iterator): Use
2490 conditional noexcept on constructors and assignment operators.
2491 * testsuite/24_iterators/reverse_iterator/noexcept.cc: New test.
2493 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2496 * include/bits/vector.tcc (vector<bool>::_M_shrink_to_fit()):
2497 When size() is zero just deallocate and reset.
2499 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2502 * include/bits/stl_algo.h (clamp): Use std::min and std::max.
2504 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2506 * include/bits/regex.h (basic_regex::multiline): Define for
2507 non-strict C++11 and C++14 modes.
2508 * include/bits/regex_constants.h (regex_constants::multiline):
2509 Add _GLIBCXX_RESOLVE_LIB_DEFECTS comment.
2511 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2513 * testsuite/25_algorithms/is_permutation/2.cc: Include <iterator>.
2515 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2517 * include/bits/stream_iterator.h (istream_iterator): Add
2518 noexcept to constructors and non-throwing member functions and
2520 (ostream_iterator): Likewise.
2522 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2524 * include/bits/boost_concept_check.h (_Is_vector_bool_iterator):
2525 New trait to identify vector<bool> iterators, including debug
2527 (_ForwardIteratorReferenceConcept): Add default template
2528 argument using _Is_vector_bool_iterator and use it in partial
2529 specialization for the vector<bool> cases.
2530 (_Mutable_ForwardIteratorReferenceConcept): Likewise.
2531 * testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error
2534 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2536 * include/bits/list.tcc (list::merge): Remove call to size() and
2537 try-catch block. Use _Finalize_merge instead.
2538 * include/bits/stl_list.h (list::_Finalize_merge): New
2539 scope guard type to update _M_size members after a merge.
2541 2021-09-30 Jonathan Wakely <jwakely@redhat.com>
2543 * include/bits/regex.h (basic_regex::multiline): Fix #if
2546 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
2548 * include/bits/regex.h (basic_regex::multiline): Define constant
2550 * include/bits/regex_constants.h (regex_constants::multiline):
2551 Define constant for C++17.
2552 (regex_constants::__multiline): Define duplicate constant for
2553 internal use in C++11 and C++14.
2554 * include/bits/regex_executor.h (_Executor::_M_match_multiline()):
2555 New member function.
2556 (_Executor::_M_is_line_terminator(_CharT)): New member function.
2557 (_Executor::_M_at_begin(), _Executor::_M_at_end()): Use new
2558 member functions to support multiline matches.
2559 * testsuite/28_regex/algorithms/regex_match/multiline.cc: New test.
2561 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
2563 * include/bits/regex_compiler.h (_Compiler::_S_validate): New
2565 * include/bits/regex_compiler.tcc (_Compiler::_Compiler): Use
2566 _S_validate to check flags.
2567 * include/bits/regex_error.h (_S_grammar): New error code for
2569 * testsuite/28_regex/basic_regex/ctors/grammar.cc: New test.
2571 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
2574 * include/bits/regex_error.h (regex_constants::_S_null): New
2575 error code for internal use.
2576 * include/bits/regex_scanner.tcc (_Scanner::_M_scan_normal()):
2577 Check for null character.
2578 * testsuite/28_regex/basic_regex/84110.cc: New test.
2580 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
2582 * include/bits/regex.h (__detail::__is_contiguous_iter): Move
2583 here from <bits/regex_compiler.h>.
2584 (basic_regex::_M_compile): New function to compile an NFA from
2585 a regular expression string.
2586 (basic_regex::basic_regex): Use _M_compile instead of delegating
2587 to other constructors.
2588 (basic_regex::operator=(const basic_regex&)): Define as
2590 (basic_regex::operator=(initializer_list<C>)): Use _M_compile.
2591 (basic_regex::assign(const basic_regex&)): Use copy assignment.
2592 (basic_regex::assign(basic_regex&&)): Use move assignment.
2593 (basic_regex::assign(const C*, flag_type)): Use _M_compile
2594 instead of constructing a temporary string.
2595 (basic_regex::assign(const C*, size_t, flag_type)): Likewise.
2596 (basic_regex::assign(const basic_string<C,T,A>&, flag_type)):
2597 Use _M_compile instead of constructing a temporary basic_regex.
2598 (basic_regex::assign(InputIter, InputIter, flag_type)): Avoid
2599 constructing a temporary string for contiguous iterators of the
2601 * include/bits/regex_compiler.h (__is_contiguous_iter): Move to
2603 (__enable_if_contiguous_iter, __disable_if_contiguous_iter)
2604 (__compile_nfa): Remove.
2605 * testsuite/28_regex/basic_regex/assign/exception_safety.cc: New
2607 * testsuite/28_regex/basic_regex/ctors/char/other.cc: New test.
2609 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
2611 * include/bits/atomic_timed_wait.h (__platform_wait_until_impl):
2612 Return false for ETIMEDOUT and true otherwise.
2614 2021-09-28 François Dumont <fdumont@gcc.gnu.org>
2616 * testsuite/20_util/default_delete/48631_neg.cc: Adapt dg-prune-output message
2617 to also match message with '__8' in it.
2619 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
2621 * include/bits/regex_automaton.h (_NFA_base::_SizeT): Remove.
2622 * include/bits/regex_compiler.h (_Compiler::_IterT): Remove.
2623 * include/bits/regex_compiler.tcc: Likewise.
2624 * include/bits/regex_scanner.h (_Scanner::_IterT): Remove.
2625 * include/bits/regex_scanner.tcc: Likewise.
2627 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
2629 * include/bits/regex_compiler.tcc: Add line break in empty while
2631 * include/bits/regex_executor.tcc: Avoid unused parameter
2634 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
2636 * include/bits/regex.h (basic_regex, swap): Add noexcept to
2637 non-throwing functions.
2638 * include/bits/regex_automaton.h (_State_base, _State)
2639 (_NFA_base): Likewise.
2640 * include/bits/regex_compiler.h (_Compiler): Likewise.
2641 * include/bits/regex_error.h (regex_error::code()): Likewise.
2642 * include/bits/regex_scanner.h (_Scanner): Likewise.
2644 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
2646 * include/bits/atomic_wait.h (_GLIBCXX_HAVE_PLATFORM_WAIT):
2647 Define before first attempt to check it.
2649 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
2651 * testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1.cc:
2652 Do not check non-default constructible sequences when
2653 _GLIBCXX_CONCEPT_CHECKS is defined.
2654 * testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1_c++98.cc:
2656 * testsuite/23_containers/queue/requirements/explicit_instantiation/1.cc:
2658 * testsuite/23_containers/queue/requirements/explicit_instantiation/1_c++98.cc:
2660 * testsuite/23_containers/stack/requirements/explicit_instantiation/1.cc:
2662 * testsuite/23_containers/stack/requirements/explicit_instantiation/1_c++98.cc:
2665 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
2667 * testsuite/23_containers/deque/requirements/explicit_instantiation/3.cc:
2668 Do not test implicit allocator rebinding when _GLIBCXX_CONCEPT_CHECKS
2670 * testsuite/23_containers/forward_list/requirements/explicit_instantiation/3.cc:
2672 * testsuite/23_containers/list/requirements/explicit_instantiation/3.cc:
2674 * testsuite/23_containers/list/requirements/explicit_instantiation/5.cc:
2676 * testsuite/23_containers/map/requirements/explicit_instantiation/3.cc:
2678 * testsuite/23_containers/map/requirements/explicit_instantiation/5.cc:
2680 * testsuite/23_containers/multimap/requirements/explicit_instantiation/3.cc:
2682 * testsuite/23_containers/multimap/requirements/explicit_instantiation/5.cc:
2684 * testsuite/23_containers/multiset/requirements/explicit_instantiation/3.cc:
2686 * testsuite/23_containers/multiset/requirements/explicit_instantiation/5.cc:
2688 * testsuite/23_containers/set/requirements/explicit_instantiation/3.cc:
2690 * testsuite/23_containers/set/requirements/explicit_instantiation/5.cc:
2692 * testsuite/23_containers/unordered_map/requirements/explicit_instantiation/3.cc:
2694 * testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/3.cc:
2696 * testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/3.cc:
2698 * testsuite/23_containers/unordered_set/requirements/explicit_instantiation/3.cc:
2700 * testsuite/23_containers/vector/ext_pointer/explicit_instantiation/3.cc:
2702 * testsuite/23_containers/vector/requirements/explicit_instantiation/3.cc:
2705 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
2707 * include/bits/boost_concept_check.h (_ForwardIteratorConcept)
2708 (_BidirectionalIteratorConcept, _RandomAccessIteratorConcept):
2709 Check result types of iterator operations.
2710 (_Mutable_ForwardIteratorConcept): Check that iterator's
2711 reference type is a reference to its value type.
2712 (_Mutable_BidirectionalIteratorConcept): Do not require the
2713 value type to be assignable.
2714 (_Mutable_RandomAccessIteratorConcept): Likewise.
2715 * testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error
2718 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
2720 * testsuite/25_algorithms/copy/34595.cc: Add missing operation
2721 for type used as an iterator.
2722 * testsuite/25_algorithms/unique_copy/check_type.cc: Likewise.
2724 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
2726 * testsuite/20_util/is_nothrow_swappable/value.h: Use custom
2727 comparison function for priority_queue of type with no
2728 relational operators.
2729 * testsuite/20_util/is_swappable/value.h: Likewise.
2730 * testsuite/24_iterators/output/concept.cc: Add operator< to
2733 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
2735 * include/bits/boost_concept_check.h (_OutputIteratorConcept):
2736 Use a function to preserve value category of the type.
2737 * include/bits/stl_algobase.h (copy, move, fill_n): Use a
2738 reference as the second argument for _OutputIteratorConcept.
2739 (copy_backward, move_backward): Use _OutputIteratorConcept
2740 instead of _ConvertibleConcept.
2742 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
2744 * include/bits/stl_iterator.h (pointer_traits): Define partial
2745 specialization for __normal_iterator.
2746 * testsuite/24_iterators/normal_iterator/to_address.cc: New test.
2748 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
2750 * include/bits/move.h (forward(remove_reference_t<T>&&)):
2751 Improve text of static_assert.
2752 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
2753 * testsuite/20_util/forward/f_neg.cc: Likewise.
2755 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
2758 * include/bits/fs_path.h (path::begin, path::end): Add noexcept
2759 to declarations, to match definitions.
2761 2021-09-24 Jonathan Wakely <jwakely@redhat.com>
2763 * include/bits/range_access.h (cbegin, cend): Remove redundant
2766 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
2768 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
2769 Remove dg-error lines for C++20-only errors.
2771 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
2773 * testsuite/19_diagnostics/headers/system_error/93151.cc:
2776 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
2778 * src/c++11/system_error.cc (system_error_category) [_WIN32]:
2779 Map Windows error codes to generic POSIX error numbers. Use
2780 FormatMessage instead of strerror.
2781 * testsuite/19_diagnostics/error_category/system_category.cc:
2782 Adjust for new behaviour on Windows.
2784 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
2786 * src/c++11/system_error.cc (generic_error_category): Define
2787 class and virtual functions as 'final'.
2788 (generic_error_category::equivalent(int, const error_condition&)):
2790 (system_error_category): Define class and virtual functions as
2792 (system_error_category::equivalent(int, const error_condition&)):
2794 (generic_category_instance, system_category_instance): Use
2795 constinit union to make the objects immortal.
2797 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
2800 * src/c++11/system_error.cc
2801 (system_error_category::default_error_condition): Add 0 to
2803 * testsuite/19_diagnostics/error_category/102425.cc: New test.
2805 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
2807 * include/bits/fs_path.h (path::iterator): Add noexcept to all
2808 member functions and friend functions.
2809 (distance): Add noexcept.
2810 (advance): Add noexcept and inline.
2811 * include/experimental/bits/fs_path.h (path::iterator):
2812 Add noexcept to all member functions.
2814 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
2817 * include/std/tuple (_Tuple_impl): Add constexpr to constructor
2818 missed in previous patch.
2819 * testsuite/20_util/tuple/cons/102270.C: Moved to...
2820 * testsuite/20_util/tuple/cons/102270.cc: ...here.
2821 * testsuite/util/testsuite_allocator.h (SimpleAllocator): Add
2822 constexpr to constructor so it can be used for C++20 tests.
2824 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
2826 * testsuite/26_numerics/valarray/dr630-3.C: Moved to...
2827 * testsuite/26_numerics/valarray/dr630-3.cc: ...here.
2828 * testsuite/27_io/basic_iostream/cons/16251.C: Moved to...
2829 * testsuite/27_io/basic_iostream/cons/16251.cc: ...here.
2831 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
2833 * src/Makefile.am (stamp-debug): Add all Makefiles as
2835 * src/Makefile.in: Regenerate.
2837 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
2839 * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Increase
2840 timeout factor to 3.
2841 * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
2843 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
2845 * doc/xml/manual/using.xml: Generalize to apply to more than
2847 * doc/html/manual/using_macros.html: Regenerate.
2849 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
2851 * include/std/optional (nullptr_t): Make constructor noexcept.
2853 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
2855 * include/bits/fs_path.h (advance): Remove non-deducible
2858 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
2861 * include/std/tuple (_Head_base, _Tuple_impl): Add
2862 _GLIBCXX20_CONSTEXPR to allocator-extended constructors.
2863 (tuple<>::swap(tuple&)): Add _GLIBCXX20_CONSTEXPR.
2864 * testsuite/20_util/tuple/cons/102270.C: New test.
2866 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
2869 * include/std/span (span(Range&&)): Add constraint to deduction
2872 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
2874 * src/c++98/Makefile.am: Use CXXCOMPILE not LTCXXCOMPILE.
2875 * src/c++98/Makefile.in: Regenerate.
2877 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
2879 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2880 (to_string): Add noexcept if the type width is 32 bits or less.
2882 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
2884 * include/bits/unique_ptr.h (__uniq_ptr_impl::_M_ptr)
2885 (__uniq_ptr_impl::_M_deleter): Add noexcept.
2887 2021-09-16 Thomas Rodgers <rodgert@twrodgers.com>
2890 * testsuite/29_atomics/atomic_ref/wait_notify.cc (test): Use
2891 va and vb as arguments to wait/notify, remove unused bb local.
2893 2021-09-15 Hugo Beauzée-Luyssen <hugo@beauzee.fr>
2895 * crossconfig.m4: Check for TLS support on mingw.
2896 * configure: Regenerate.
2898 2021-09-13 Jason Merrill <jason@redhat.com>
2900 * include/std/version: Define __cpp_lib_hardware_interference_size.
2901 * libsupc++/new: Define hardware interference size variables.
2903 2021-09-10 Jonathan Wakely <jwakely@redhat.com>
2905 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
2906 Fix invalid hostname to only match the .invalid TLD.
2908 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
2910 * include/bits/atomic_base.h (__atomic_base<P*>::compare_exchange_weak):
2912 * include/std/atomic (atomic<T*>::compare_exchange_weak): Use
2915 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
2917 * include/std/atomic: Tweak whitespace.
2919 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
2922 * include/bits/atomic_base.h (__is_valid_cmpexch_failure_order):
2923 New function to check if a memory order is valid for the failure
2924 case of compare exchange operations.
2925 (__atomic_base<I>::compare_exchange_weak): Simplify assertions
2926 by using __is_valid_cmpexch_failure_order.
2927 (__atomic_base<I>::compare_exchange_strong): Likewise.
2928 (__atomic_base<P*>::compare_exchange_weak): Likewise.
2929 (__atomic_base<P*>::compare_exchange_strong): Likewise.
2930 (__atomic_impl::compare_exchange_weak): Add assertion.
2931 (__atomic_impl::compare_exchange_strong): Likewise.
2932 * include/std/atomic (atomic::compare_exchange_weak): Likewise.
2933 (atomic::compare_exchange_strong): Likewise.
2935 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
2937 * include/std/functional (invoke_r): Define.
2938 * include/std/version (__cpp_lib_invoke_r): Define.
2939 * testsuite/20_util/function_objects/invoke/version.cc: Check
2940 for __cpp_lib_invoke_r as well as __cpp_lib_invoke.
2941 * testsuite/20_util/function_objects/invoke/4.cc: New test.
2943 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
2946 * include/std/span (span(Iter, size_type), span(Iter, Iter)):
2947 Add valid range checks.
2948 * testsuite/23_containers/span/cons_1_assert_neg.cc: New test.
2949 * testsuite/23_containers/span/cons_2_assert_neg.cc: New test.
2951 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
2953 * configure.ac: Fix checks for F_GETFL, F_SETFL and O_NONBLOCK.
2954 * configure: Regenerate.
2956 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
2958 * src/c++11/system_error.cc (error_category::~error_category()):
2959 Remove noexcept-specifier.
2960 (system_error::~system_error()): Likewise.
2961 * testsuite/19_diagnostics/error_category/noexcept.cc: New test.
2962 * testsuite/19_diagnostics/system_error/noexcept.cc: New test.
2964 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
2967 * include/bits/atomic_timed_wait.h (__timed_waiter_pool)
2968 [!_GLIBCXX_HAVE_PLATFORM_TIMED_WAIT]: Add missing return.
2970 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
2972 * include/experimental/internet (__make_resolver_error_code):
2973 Handle EAI_SYSTEM errors.
2974 (basic_resolver_results): Use __make_resolver_error_code. Use
2975 Glibc NI_MAXHOST and NI_MAXSERV values for buffer sizes.
2977 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
2979 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
2980 Try other service if "http" fails.
2982 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
2984 * testsuite/17_intro/names.cc: Undefine some more names used
2985 by Solaris system headers.
2987 2021-08-30 Jason Merrill <jason@redhat.com>
2990 * testsuite/30_threads/promise/requirements/lwg3466.cc:
2991 Remove dg-prune-outputs.
2993 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
2995 * include/bits/alloc_traits.h (allocator_traits): Add explicit
2996 specialization for allocator<void>. Improve doxygen comments.
2997 * include/bits/allocator.h (allocator<void>): Restore for the
2998 versioned namespace.
2999 (allocator<void>::construct, allocator<void>::destroy): Remove.
3000 * include/ext/extptr_allocator.h (_Extptr_allocator<void>):
3001 Add default constructor and converting constructor.
3003 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
3005 * include/bits/stl_uninitialized.h: Fix typo in comment.
3007 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
3010 * src/c++17/fs_ops.cc (fs::absolute): Call non-throwing form,
3011 to avoid unnecessary current_path() call.
3013 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
3015 * include/bits/std_function.h (function::function(F&&)): Give
3016 name to defaulted template parameter, to improve diagnostics.
3017 Use markdown for more doxygen comments.
3019 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
3021 * include/bits/std_function.h (function): Adjust doxygen
3023 * include/bits/unique_ptr.h (make_unique_for_overwrite):
3024 Change parameter name to match doxygen comment.
3026 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
3028 * include/bits/std_function.h (_function_base::_Base_manager):
3029 Replace _M_init_functor with a function template using a
3030 forwarding reference, and a pair of _M_create function
3031 templates. Reuse _M_create for the clone operation.
3032 (function::_Decay_t): New alias template.
3033 (function::_Callable): Simplify by using _Decay.
3034 (function::function(F)): Change parameter to forwarding
3035 reference, as per LWG 2447. Add noexcept-specifier. Simplify
3037 (function::operator=(F&&)): Add noexcept-specifier.
3038 * testsuite/20_util/function/cons/lwg2774.cc: New test.
3039 * testsuite/20_util/function/cons/noexcept.cc: New test.
3041 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
3043 * include/bits/std_function.h (function::function(F)): Add
3044 static assertions to check constructibility requirements.
3046 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
3049 * configure.ac: Check for O_NONBLOCK.
3050 * configure: Regenerate.
3051 * include/experimental/internet: Include <ws2tcpip.h> for
3052 Windows. Use preprocessor conditions around more constants.
3053 * include/experimental/socket: Use preprocessor conditions
3054 around more constants.
3055 * testsuite/experimental/net/internet/resolver/base.cc: Only use
3056 constants when the corresponding C macro is defined.
3057 * testsuite/experimental/net/socket/basic_socket.cc: Likewise.
3058 * testsuite/experimental/net/socket/socket_base.cc: Likewise.
3059 Make preprocessor checks more fine-grained.
3061 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
3063 * testsuite/17_intro/names.cc: Check 'sz'.
3065 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
3067 * testsuite/17_intro/names.cc: Adjust for Windows.
3069 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
3071 * include/std/valarray: Uglify 'func' parameters.
3072 * testsuite/17_intro/names.cc: Add 'func' to checks.
3074 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
3077 * include/bits/stl_uninitialized.h (_GLIBCXX_USE_ASSIGN_FOR_INIT):
3078 Define macro to check conditions for optimizing trivial cases.
3079 (__check_constructible): New function to do static assert.
3080 (uninitialized_copy, uninitialized_fill, uninitialized_fill_n):
3082 * testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc:
3083 Adjust dg-error pattern.
3084 * testsuite/23_containers/vector/cons/89164.cc: Likewise. Add
3085 C++17-specific checks from 89164_c++17.cc.
3086 * testsuite/23_containers/vector/cons/89164_c++17.cc: Removed.
3087 * testsuite/20_util/specialized_algorithms/uninitialized_copy/102064.cc:
3089 * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/102064.cc:
3091 * testsuite/20_util/specialized_algorithms/uninitialized_fill/102064.cc:
3093 * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/102064.cc:
3096 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
3099 * include/ext/rope (rope::erase(size_type)): Remove broken
3102 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
3104 * doc/xml/manual/status_cxx2020.xml: Update table.
3105 * doc/html/manual/status.html: Regenerate.
3107 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
3109 * include/std/type_traits (is_layout_compatible): Define.
3110 (is_corresponding_member): Define.
3111 * include/std/version (__cpp_lib_is_layout_compatible): Define.
3112 * testsuite/20_util/is_layout_compatible/is_corresponding_member.cc:
3114 * testsuite/20_util/is_layout_compatible/value.cc: New test.
3115 * testsuite/20_util/is_layout_compatible/version.cc: New test.
3116 * testsuite/20_util/is_pointer_interconvertible/with_class.cc:
3118 * testsuite/23_containers/span/layout_compat.cc: Do not use real
3119 std::is_layout_compatible trait if available.
3121 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
3123 * src/c++11/cxx11-shim_facets.cc: Fix mismatched class-key in
3124 explicit instantiation definitions.
3126 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
3128 * include/std/ranges (basic_istream_view): Add default template
3130 * testsuite/std/ranges/istream_view.cc: Check it.
3132 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
3134 * libsupc++/dyncast.cc (__dynamic_cast): Add __builtin_expect to
3137 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
3140 * testsuite/util/testsuite_fs.h (permissions_are_testable):
3143 2021-08-20 Jonathan Wakely <jwakely@redhat.com>
3146 * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
3147 Use new __gnu_test::permissions_are_testable() function.
3148 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
3150 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
3151 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
3152 * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
3153 * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
3154 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
3155 * testsuite/27_io/filesystem/operations/symlink_status.cc:
3157 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
3159 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
3161 * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc:
3163 * testsuite/experimental/filesystem/operations/exists.cc:
3165 * testsuite/experimental/filesystem/operations/is_empty.cc:
3167 * testsuite/experimental/filesystem/operations/remove.cc:
3169 * testsuite/experimental/filesystem/operations/remove_all.cc:
3171 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
3173 * testsuite/util/testsuite_fs.h (__gnu_test::permissions_are_testable):
3174 New function to guess whether testing permissions will work.
3176 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
3178 * doc/xml/manual/status_cxx2020.xml: Move row earlier in table.
3179 * doc/html/manual/status.html: Regenerate.
3181 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
3183 * doc/doxygen/user.cfg.in: Update to Doxygen 1.9.2
3185 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
3188 * include/std/charconv (__to_chars_i): Remove redundant check.
3190 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
3193 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)): Use base
3194 class' move constructor. Define as defaulted for versioned
3196 * testsuite/20_util/tuple/cons/101960.cc: New test.
3198 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
3201 * doc/xml/manual/status_cxx2020.xml: Add P1739R4 to status table.
3202 * doc/html/manual/status.html: Regenerate.
3204 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
3206 * include/bits/shared_ptr.h: Add @since and @headerfile tags.
3207 * include/bits/unique_ptr.h: Add @headerfile tags.
3209 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
3211 * src/filesystem/ops-common.h (filesystem::file_time): Improve
3212 overflow check by using system_clock::duration::max().
3214 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
3216 * include/bits/stl_tree.h: Tweak whitespace.
3218 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
3220 * include/bits/unique_ptr.h (default_delete): Add @since tag.
3221 (unique_ptr, unique_ptr<T[]>): Likewise. Improve @brief.
3222 (make_unique, make_unique_for_overwrite): Likewise. Add @tparam,
3223 @param, and @returns.
3224 (_MakeUniq): Move to __detail namespace. Add alias template
3227 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
3229 * include/bits/stl_function.h: Improve doxygen comments.
3231 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
3233 * doc/doxygen/user.cfg.in (PREDEFINED): Enable doxygen
3234 processing for C++20 components and components that depend on
3236 * include/bits/stl_algo.h (random_shuffle): Use @deprecated.
3237 * include/std/type_traits: Improve doxygen comments for C++20
3240 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
3242 * include/ext/type_traits.h (__promote_2, __promote_3)
3243 (__promote_4): Redfine as alias templates using __promoted_t.
3244 * include/std/complex (__promote_2): Remove partial
3245 specializations for std::complex.
3247 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
3249 * include/bits/stl_algo.h (min(initializer_list<T>))
3250 (min(initializer_list<T>, Compare)): Call __min_element directly to
3251 avoid redundant debug checks for valid ranges.
3252 (max(initializer_list<T>), max(initializer_list<T>, Compare)):
3253 Likewise, for __max_element.
3254 (minmax(initializer_list<T>), minmax(initializer_list<T>, Compare)):
3255 Likewise, for __minmax_element.
3257 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
3259 * include/debug/deque (deque(size_type, const T&, const A&)):
3260 Prevent class template argument deduction and replace with a
3262 * include/debug/forward_list (forward_list(size_type, const T&, const A&)):
3264 * include/debug/list (list(size_type, const T&, const A&)):
3266 * include/debug/vector (vector(size_type, const T&, const A&)):
3269 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
3271 * python/libstdcxx/v6/printers.py (StdBitReferencePrinter): Use
3272 'std::vector<bool>::reference' as type name, not _Bit_reference.
3273 (build_libstdcxx_dictionary): Register printers for vector<bool>
3274 types in debug mode too.
3275 * testsuite/libstdc++-prettyprinters/simple.cc: Adjust expected
3276 output for invalid _Bit_reference. Use vector<bool>::reference
3277 instead of _Bit_reference.
3278 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
3280 2021-08-17 Thomas Schwinge <thomas@codesourcery.com>
3282 * testsuite/lib/libstdc++.exp: Avoid illegal argument to verbose,
3285 2021-08-17 Luc Michel <lmichel@kalray.eu>
3286 Marc Poulhies <mpoulhies@kalrayinc.com>
3288 * testsuite/lib/gdb-test.exp (gdb_version_check)
3289 (gdb_version_check_xmethods): Only check the GDB version for
3290 local native targets.
3292 2021-08-17 Antony Polukhin <antoshkka@gmail.com>
3293 Jonathan Wakely <jwakely@redhat.com>
3295 * include/bits/random.tcc (seed_seq::seed_seq): Reserve capacity
3296 if distance is O(1).
3297 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
3300 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
3302 * testsuite/26_numerics/random/seed_seq/cons/range.cc: Check
3303 construction from input iterators.
3305 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
3307 * python/libstdcxx/v6/printers.py (StdErrorCatPrinter): Remove.
3309 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
3312 * include/bits/std_function.h (function(function&&)): Check for
3313 non-empty parameter before doing any work.
3315 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
3317 * include/bits/cow_string.h (basic_string::contains): Do not
3318 define for -std=gnu++20.
3320 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
3322 * include/bits/ranges_util.h (__not_same_as): Rename to
3324 * include/std/ranges (__not_same_as): Likewise.
3326 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
3328 * include/std/utility (exchange): Add noexcept-specifier.
3329 * testsuite/20_util/exchange/noexcept.cc: New test.
3331 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
3333 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Define.
3334 (build_libstdcxx_dictionary): Register printer for
3335 std::error_code and std::error_condition.
3336 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test it.
3338 2021-08-16 Jonathan Wakely <jwakely@redhat.com>
3341 * src/c++11/debug.cc (PrintContext::_M_indent): Replace with a
3343 (print_word): Use qualified-id to access it.
3345 2021-08-16 Jonathan Wakely <jwakely@redhat.com>
3347 * python/Makefile.am [GLIBCXX_BUILD_DEBUG] (install-data-local):
3348 Install another copy of the GDB hook.
3349 * python/Makefile.in: Regenerate.
3351 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
3354 * include/c_global/cmath (hypot): Use __promoted_t.
3355 (lerp): Add new overload accepting any arithmetic types.
3356 * include/ext/type_traits.h (__promoted_t): New alias template.
3357 * testsuite/26_numerics/lerp.cc: Moved to...
3358 * testsuite/26_numerics/lerp/1.cc: ...here.
3359 * testsuite/26_numerics/lerp/constexpr.cc: New test.
3360 * testsuite/26_numerics/lerp/version.cc: New test.
3362 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
3364 * testsuite/26_numerics/lerp.cc: Add header name to #error.
3365 * testsuite/26_numerics/midpoint/integral.cc: Likewise.
3366 * testsuite/26_numerics/midpoint/version.cc: New test.
3368 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
3370 * include/experimental/random (experimental::randint): Add
3371 nodiscard attribute.
3373 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
3375 * src/c++98/locale_init.cc: Require C++11.
3376 * src/c++98/localename.cc: Likewise.
3377 * src/c++98/misc-inst.cc: Require C++98.
3379 2021-08-11 Jonathan Wakely <jwakely@redhat.com>
3382 * testsuite/experimental/random/randint.cc: Loop and retry if
3383 reseed() produces the same sequence.
3385 2021-08-11 Jonathan Wakely <jwakely@redhat.com>
3387 * include/std/type_traits (__cpp_lib_is_pointer_interconvertible)
3388 (is_pointer_interconvertible_base_of_v)
3389 (is_pointer_interconvertible_base_of): Define for C++20.
3390 * include/std/version (__cpp_lib_is_pointer_interconvertible):
3392 * testsuite/23_containers/span/layout_compat.cc: Use correct
3393 feature test macro for std::is_layout_compatible_v.
3394 * testsuite/20_util/is_pointer_interconvertible/value.cc: New test.
3395 * testsuite/20_util/is_pointer_interconvertible/version.cc: New test.
3397 2021-08-09 Jonathan Wakely <jwakely@redhat.com>
3399 * include/bits/regex.h (basic_regex::transform_primary): Use
3400 _GLIBCXX_STD_C::vector for local variable.
3401 * include/bits/regex.tcc (__regex_algo_impl): Use reference to
3402 _GLIBCXX_STD_C::vector base class of match_results.
3403 * include/bits/regex_automaton.tcc (_StateSeq:_M_clone): Use
3404 _GLIBCXX_STD_C::map and _GLIBCXX_STD_C::deque for local
3406 * include/bits/regex_compiler.h (_BracketMatcher): Use
3407 _GLIBCXX_STD_C::vector for data members.
3408 * include/bits/regex_executor.h (_Executor): Likewise.
3409 * include/std/regex [_GLIBCXX_DEBUG]: Include <debug/vector>.
3411 2021-08-09 François Dumont <fdumont@gcc.gnu.org>
3413 * include/debug/safe_container.h
3414 (_Safe_container(_Safe_container&&, const _Alloc&, std::true_type)): New.
3415 (_Safe_container(_Safe_container&&, const _Alloc&, std::false_type)): New.
3416 (_Safe_container(_Safe_container&&, const _Alloc&)): Use latters.
3418 2021-08-09 Jonathan Wakely <jwakely@redhat.com>
3420 * testsuite/23_containers/unordered_map/cons/default.cc: Add
3421 equality comparison operators to allocator.
3422 * testsuite/23_containers/unordered_set/cons/default.cc:
3425 2021-08-08 François Dumont <fdumont@gcc.gnu.org>
3427 * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Replace 'failed_assertion'
3428 dg-prune-output reason with 'builtin_unreachable'.
3429 * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc: Likewise.
3430 * testsuite/25_algorithms/equal/debug/constexpr_neg.cc: Likewise.
3431 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc: Likewise.
3432 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
3433 * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc: Likewise.
3434 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc: Likewise.
3435 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
3436 * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc: Likewise.
3438 2021-08-08 Hans-Peter Nilsson <hp@bitrange.com>
3440 * testsuite/std/ranges/iota/max_size_type.cc: Set
3441 dg-timeout-factor to 4.
3443 2021-08-06 Jonathan Wakely <jwakely@redhat.com>
3445 * libsupc++/compare (compare_three_way, strong_order)
3446 (weak_order, partial_order, compare_strong_order_fallback)
3447 (compare_weak_order_fallback, compare_partial_order_fallback):
3448 Move nodiscard attributes to correct location.
3450 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
3453 * include/bits/ranges_base.h (ranges::begin, ranges::end)
3454 (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
3455 (ranges::empty, ranges::data): Move attribute after the
3456 declarator-id instead of at the end of the declarator.
3457 * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator):
3458 Move attributes back to the start of the function declarator,
3459 but move the requires-clause to the end.
3460 (common_iterator): Move attribute after the declarator-id.
3461 * include/bits/stl_queue.h (queue): Remove ill-formed attributes
3462 from friend declaration that are not definitions.
3463 * include/std/ranges (views::all, views::filter)
3464 (views::transform, views::take, views::take_while,
3465 views::drop) (views::drop_while, views::join,
3466 views::lazy_split) (views::split, views::counted,
3467 views::common, views::reverse) (views::elements): Move
3468 attributes after the declarator-id.
3470 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
3472 * libsupc++/compare (partial_ordering, weak_ordering)
3473 (strong_ordering, is_eq, is_neq, is_lt, is_lteq, is_gt, is_gteq)
3474 (compare_three_way, strong_order, weak_order, partial_order)
3475 (compare_strong_order_fallback, compare_weak_order_fallback)
3476 (compare_partial_order_fallback, __detail::__synth3way): Add
3477 nodiscard attribute.
3478 * testsuite/18_support/comparisons/categories/zero_neg.cc: Add
3479 -Wno-unused-result to options.
3481 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
3484 * include/bits/ranges_base.h (ranges::begin, ranges::end)
3485 (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
3486 (ranges::empty, ranges::data): Move attribute to the end of
3488 * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator)
3489 (common_iterator): Likewise for non-member operator functions.
3490 * include/std/ranges (views::all, views::filter)
3491 (views::transform, views::take, views::take_while, views::drop)
3492 (views::drop_while, views::join, views::lazy_split)
3493 (views::split, views::counted, views::common, views::reverse)
3494 (views::elements): Likewise.
3495 * testsuite/std/ranges/access/101782.cc: New test.
3497 2021-08-04 Jonathan Wakely <jwakely@redhat.com>
3499 * include/bits/forward_list.h: Add [[nodiscard]] to functions
3500 with no side-effects.
3501 * include/bits/stl_bvector.h: Likewise.
3502 * include/bits/stl_deque.h: Likewise.
3503 * include/bits/stl_list.h: Likewise.
3504 * include/bits/stl_queue.h: Likewise.
3505 * include/bits/stl_stack.h: Likewise.
3506 * include/bits/stl_vector.h: Likewise.
3507 * include/debug/deque: Likewise.
3508 * include/debug/forward_list: Likewise.
3509 * include/debug/list: Likewise.
3510 * include/debug/safe_iterator.h: Likewise.
3511 * include/debug/vector: Likewise.
3512 * include/std/array: Likewise.
3513 * testsuite/23_containers/array/creation/3_neg.cc: Use
3515 * testsuite/23_containers/array/debug/back1_neg.cc: Cast result
3517 * testsuite/23_containers/array/debug/back2_neg.cc: Likewise.
3518 * testsuite/23_containers/array/debug/front1_neg.cc: Likewise.
3519 * testsuite/23_containers/array/debug/front2_neg.cc: Likewise.
3520 * testsuite/23_containers/array/debug/square_brackets_operator1_neg.cc:
3522 * testsuite/23_containers/array/debug/square_brackets_operator2_neg.cc:
3524 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
3525 Adjust dg-error line numbers.
3526 * testsuite/23_containers/deque/cons/clear_allocator.cc: Cast
3528 * testsuite/23_containers/deque/debug/invalidation/4.cc:
3530 * testsuite/23_containers/deque/types/1.cc: Use
3532 * testsuite/23_containers/list/types/1.cc: Cast result to void.
3533 * testsuite/23_containers/priority_queue/members/7161.cc:
3535 * testsuite/23_containers/queue/members/7157.cc: Likewise.
3536 * testsuite/23_containers/vector/59829.cc: Likewise.
3537 * testsuite/23_containers/vector/ext_pointer/types/1.cc:
3539 * testsuite/23_containers/vector/ext_pointer/types/2.cc:
3541 * testsuite/23_containers/vector/types/1.cc: Use
3544 2021-08-04 Jonathan Wakely <jwakely@redhat.com>
3546 * include/bits/iterator_concepts.h (iter_move): Add
3548 * include/bits/range_access.h (begin, end, cbegin, cend)
3549 (rbegin, rend, crbegin, crend, size, data, ssize): Likewise.
3550 * include/bits/ranges_base.h (ranges::begin, ranges::end)
3551 (ranges::cbegin, ranges::cend, ranges::rbegin, ranges::rend)
3552 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
3553 (ranges::empty, ranges::data, ranges::cdata): Likewise.
3554 * include/bits/stl_iterator.h (reverse_iterator, __normal_iterator)
3555 (back_insert_iterator, front_insert_iterator, insert_iterator)
3556 (move_iterator, move_sentinel, common_iterator)
3557 (counted_iterator): Likewise.
3558 * include/bits/stl_iterator_base_funcs.h (distance, next, prev):
3560 * include/bits/stream_iterator.h (istream_iterator)
3561 (ostream_iterartor): Likewise.
3562 * include/bits/streambuf_iterator.h (istreambuf_iterator)
3563 (ostreambuf_iterator): Likewise.
3564 * include/std/ranges (views::single, views::iota, views::all)
3565 (views::filter, views::transform, views::take, views::take_while)
3566 (views::drop, views::drop_while, views::join, views::lazy_split)
3567 (views::split, views::counted, views::common, views::reverse)
3568 (views::elements): Likewise.
3569 * testsuite/20_util/rel_ops.cc: Use -Wno-unused-result.
3570 * testsuite/24_iterators/move_iterator/greedy_ops.cc: Likewise.
3571 * testsuite/24_iterators/normal_iterator/greedy_ops.cc:
3573 * testsuite/24_iterators/reverse_iterator/2.cc: Likewise.
3574 * testsuite/24_iterators/reverse_iterator/greedy_ops.cc:
3576 * testsuite/21_strings/basic_string/range_access/char/1.cc:
3577 Cast result to void.
3578 * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
3580 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
3582 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
3584 * testsuite/23_containers/array/range_access.cc: Likewise.
3585 * testsuite/23_containers/deque/range_access.cc: Likewise.
3586 * testsuite/23_containers/forward_list/range_access.cc:
3588 * testsuite/23_containers/list/range_access.cc: Likewise.
3589 * testsuite/23_containers/map/range_access.cc: Likewise.
3590 * testsuite/23_containers/multimap/range_access.cc: Likewise.
3591 * testsuite/23_containers/multiset/range_access.cc: Likewise.
3592 * testsuite/23_containers/set/range_access.cc: Likewise.
3593 * testsuite/23_containers/unordered_map/range_access.cc:
3595 * testsuite/23_containers/unordered_multimap/range_access.cc:
3597 * testsuite/23_containers/unordered_multiset/range_access.cc:
3599 * testsuite/23_containers/unordered_set/range_access.cc:
3601 * testsuite/23_containers/vector/range_access.cc: Likewise.
3602 * testsuite/24_iterators/customization_points/iter_move.cc:
3604 * testsuite/24_iterators/istream_iterator/sentinel.cc:
3606 * testsuite/24_iterators/istreambuf_iterator/sentinel.cc:
3608 * testsuite/24_iterators/move_iterator/dr2061.cc: Likewise.
3609 * testsuite/24_iterators/operations/prev_neg.cc: Likewise.
3610 * testsuite/24_iterators/ostreambuf_iterator/2.cc: Likewise.
3611 * testsuite/24_iterators/range_access/range_access.cc:
3613 * testsuite/24_iterators/range_operations/100768.cc: Likewise.
3614 * testsuite/26_numerics/valarray/range_access2.cc: Likewise.
3615 * testsuite/28_regex/range_access.cc: Likewise.
3616 * testsuite/experimental/string_view/range_access/char/1.cc:
3618 * testsuite/experimental/string_view/range_access/wchar_t/1.cc:
3620 * testsuite/ext/vstring/range_access.cc: Likewise.
3621 * testsuite/std/ranges/adaptors/take.cc: Likewise.
3622 * testsuite/std/ranges/p2259.cc: Likewise.
3624 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
3626 * include/bits/random.tcc (linear_congruential_engine): Do not
3627 define static constexpr members when they are implicitly inline.
3628 * include/std/ratio (ratio, __ratio_multiply, __ratio_divide)
3629 (__ratio_add, __ratio_subtract): Likewise.
3630 * include/std/type_traits (integral_constant): Likewise.
3631 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
3634 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
3636 * testsuite/util/testsuite_common_types.h: Replace uses of
3637 tr1::unordered_map and tr1::unordered_set with their C++11
3639 * testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust
3640 dg-error line number.
3641 * testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
3642 * testsuite/29_atomics/atomic_integral/cons/assign_neg.cc:
3644 * testsuite/29_atomics/atomic_integral/cons/copy_neg.cc:
3646 * testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc:
3648 * testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc:
3650 * testsuite/29_atomics/atomic_integral/operators/increment_neg.cc:
3653 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
3655 * include/std/memory_resource (polymorphic_allocator::delete_object):
3656 Call destructor directly instead of using destroy.
3657 (allocator_traits<polymorphic_allocator<T>>): Define partial
3660 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
3662 * testsuite/20_util/function_objects/binders/3113.cc: Remove
3663 trailing whitespace.
3664 * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
3665 * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
3666 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
3668 * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
3669 * testsuite/25_algorithms/headers/algorithm/synopsis.cc:
3671 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
3673 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
3676 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
3678 * doc/xml/manual/evolution.xml: Document deprecation.
3679 * doc/html/*: Regenerate.
3680 * include/bits/c++config (_GLIBCXX14_DEPRECATED): Define.
3681 (_GLIBCXX14_DEPRECATED_SUGGEST): Define.
3682 * include/bits/stl_algo.h (random_shuffle): Deprecate for C++14
3684 * testsuite/25_algorithms/headers/algorithm/synopsis.cc: Adjust
3685 for C++11 and C++14 changes to std::random_shuffle and
3687 * testsuite/25_algorithms/random_shuffle/1.cc: Add options to
3688 use deprecated algorithms.
3689 * testsuite/25_algorithms/random_shuffle/59603.cc: Likewise.
3690 * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise.
3691 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
3693 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
3696 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
3698 * testsuite/23_containers/forward_list/operations/3.cc:
3699 Use lambda instead of std::bind2nd.
3700 * testsuite/20_util/function_objects/binders/3113.cc: Add
3701 options for testing deprecated features.
3702 * testsuite/20_util/pair/cons/99957.cc: Likewise.
3703 * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
3704 * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
3705 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
3707 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
3708 * testsuite/20_util/shared_ptr/cons/auto_ptr.cc: Likewise.
3709 * testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc: Likewise.
3710 * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
3711 * testsuite/20_util/unique_ptr/cons/auto_ptr.cc: Likewise.
3712 * testsuite/20_util/unique_ptr/cons/auto_ptr_neg.cc: Likewise.
3713 * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
3715 * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
3717 * testsuite/lib/dg-options.exp (dg_add_options_using-deprecated):
3720 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
3722 * include/bits/regex_executor.h (_State_info): Replace
3723 unique_ptr<bool[]> with array of bool.
3724 * include/bits/regex_executor.tcc: Likewise.
3725 * include/bits/regex_scanner.tcc: Replace std::strchr with
3727 * include/std/regex: Replace standard headers with smaller
3729 * testsuite/28_regex/traits/char/lookup_classname.cc: Include
3730 <string.h> for strlen.
3731 * testsuite/28_regex/traits/char/lookup_collatename.cc:
3734 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
3736 * include/bits/locale_conv.h (__detail::_Scoped_ptr): Define new
3737 RAII class template.
3738 (wstring_convert, wbuffer_convert): Use __detail::_Scoped_ptr
3739 instead of unique_ptr.
3741 2021-08-02 Patrick Palka <ppalka@redhat.com>
3744 * include/bits/ranges_algo.h (__reverse_copy_fn::operator()):
3745 Add missing std::move in return statement.
3746 (__partition_copy_fn::operator()): Rename templtae parameter
3747 _O2 to _Out2. Uglify function parameters out_true and out_false.
3748 * include/bits/ranges_algobase.h (__copy_or_move): Add missing
3749 std::move to recursive call that unwraps a __normal_iterator
3751 * testsuite/25_algorithms/copy/constrained.cc (test06): New test.
3752 * testsuite/25_algorithms/move/constrained.cc (test05): New test.
3754 2021-08-02 Patrick Palka <ppalka@redhat.com>
3757 * include/std/ranges (lazy_split_view::_InnerIter::base): Make
3758 the const& overload unconstrained and return a const reference
3759 as per LWG 3533. Make unconditionally noexcept.
3760 (elements_view::base): Revert accidental r12-569 change.
3761 (elements_view::_Iterator::base): Make the const& overload
3762 unconstrained and return a const reference as per LWG 3533.
3763 Make unconditionally noexcept.
3765 2021-08-02 Patrick Palka <ppalka@redhat.com>
3768 * include/std/ranges (join_view::_Iterator::_Iterator): Add
3771 2021-08-02 Jonathan Wakely <jwakely@redhat.com>
3774 * src/filesystem/ops-common.h (get_temp_directory_from_env):
3775 Add error_code parameter.
3776 * src/c++17/fs_ops.cc (fs::temp_directory_path): Pass error_code
3777 argument to get_temp_directory_from_env and check it.
3778 * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
3780 2021-08-02 Jonathan Wakely <jwakely@redhat.com>
3782 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
3783 Add dg-error for c++11_only target.
3785 2021-07-30 Jonathan Wakely <jwakely@redhat.com>
3788 * configure.ac: Check for secure_getenv.
3789 * config.h.in: Regenerate.
3790 * configure: Regenerate.
3791 * src/filesystem/ops-common.h (get_temp_directory_from_env): New
3792 helper function to obtain path from the environment.
3793 * src/c++17/fs_ops.cc (fs::temp_directory_path): Use new helper.
3794 * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
3795 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
3796 Print messages if test cannot be run.
3797 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
3798 Likewise. Fix incorrect condition. Use "TMP" to work with
3799 Windows as well as POSIX.
3801 2021-07-29 Hans-Peter Nilsson <hp@bitrange.com>
3803 * src/c++17/memory_resource.cc: Use __exchange instead
3806 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
3808 * include/experimental/optional (__throw_bad_optional_access):
3809 Replace GNU attribute with C++11 attribute.
3810 (optional::value, optional::value_or): Use if statements
3811 instead of conditional expressions.
3812 * include/std/optional (__throw_bad_optional_access)
3813 (optional::value, optional::value_or): Likewise.
3815 2021-07-27 Marek Polacek <polacek@redhat.com>
3819 * testsuite/20_util/tuple/comparison_operators/overloaded.cc:
3821 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
3824 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
3826 * include/bits/cow_string.h: Consistently use tab for
3829 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
3831 * include/Makefile.am: Add new header.
3832 * include/Makefile.in: Regenerate.
3833 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
3834 (basic_string): Move definition of Copy-on-Write string to
3836 * include/bits/basic_string.tcc: Likewise.
3837 * include/bits/cow_string.h: New file.
3839 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
3841 * include/std/algorithm: Do not include <utility>.
3842 * include/std/functional: Likewise.
3843 * include/std/regex: Include <bits/stl_pair.h> instead of
3845 * include/debug/map.h: Likewise.
3846 * include/debug/multimap.h: Likewise.
3847 * include/debug/multiset.h: Likewise.
3848 * include/debug/set.h: Likewise.
3849 * include/debug/vector: Likewise.
3850 * include/bits/fs_path.h: Likewise.
3851 * include/bits/unique_ptr.h: Do not include <utility>.
3852 * include/experimental/any: Likewise.
3853 * include/experimental/executor: Likewise.
3854 * include/experimental/memory: Likewise.
3855 * include/experimental/optional: Likewise.
3856 * include/experimental/socket: Use __exchange instead
3858 * src/filesystem/ops-common.h: Likewise.
3859 * testsuite/20_util/default_delete/48631_neg.cc: Adjust expected
3860 errors to not use a hardcoded line number.
3861 * testsuite/20_util/default_delete/void_neg.cc: Likewise.
3862 * testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc:
3863 Include <utility> for std::as_const.
3864 * testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constrained.cc:
3866 * testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc:
3868 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constrained.cc:
3870 * testsuite/23_containers/vector/cons/destructible_debug_neg.cc:
3871 Adjust dg-error line number.
3873 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
3875 * include/Makefile.am: Add bits/utility.h header.
3876 * include/Makefile.in: Regenerate.
3877 * include/bits/utility.h: New file.
3878 * include/std/utility (tuple_size, tuple_element): Move
3880 * include/std/type_traits (__is_tuple_like_impl<tuple<T...>>):
3882 (_Index_tuple, _Build_index_tuple, integer_sequence): Likewise.
3883 (in_place_t, in_place_index_t, in_place_type_t): Likewise.
3884 * include/bits/ranges_util.h: Include new header instead of
3886 * include/bits/stl_pair.h (tuple_size, tuple_element): Move
3887 partial specializations for std::pair here.
3888 (get): Move overloads for std::pair here.
3889 * include/std/any: Include new header instead of <utility>.
3890 * include/std/array: Likewise.
3891 * include/std/memory_resource: Likewise.
3892 * include/std/optional: Likewise.
3893 * include/std/variant: Likewise.
3894 * include/std/tuple: Likewise.
3895 (__is_tuple_like_impl<tuple<T...>>): Move here.
3896 (get) Declare overloads for std::array.
3897 * include/std/version (__cpp_lib_tuples_by_type): Change type
3899 * testsuite/20_util/optional/84601.cc: Include <utility>.
3900 * testsuite/20_util/specialized_algorithms/uninitialized_fill/constrained.cc:
3902 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
3903 Adjust dg-error line numbers.
3904 * testsuite/std/ranges/access/cbegin.cc: Include <utility>.
3905 * testsuite/std/ranges/access/cend.cc: Likewise.
3906 * testsuite/std/ranges/access/end.cc: Likewise.
3907 * testsuite/std/ranges/single_view.cc: Likewise.
3909 2021-07-23 Jonathan Wakely <jwakely@redhat.com>
3911 * include/std/future: Include <bits/atomic_base.h> instead of
3914 2021-07-23 Jonathan Wakely <jwakely@redhat.com>
3916 * include/bits/stl_relops.h: Update documentation comments.
3918 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
3921 * include/bits/hashtable.h (_Hashtable): Replace mixin with
3922 _Enable_default_ctor. Construct it explicitly in all
3923 non-forwarding, non-defaulted constructors.
3924 * testsuite/23_containers/unordered_map/cons/default.cc: Check
3925 non-default constructors can be used.
3926 * testsuite/23_containers/unordered_set/cons/default.cc:
3929 2021-07-22 David Edelsohn <dje.gcc@gmail.com>
3931 * config/os/aix/os_defines.h (__LIBC_NO_CPP_MATH_OVERLOADS__): Define.
3933 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
3936 * include/ext/new_allocator.h (_GLIBCXX_OPERATOR_NEW)
3937 (_GLIBCXX_OPERATOR_DELETE, _GLIBCXX_SIZED_DEALLOC): Define.
3938 (allocator::allocate, allocator::deallocate): Use new macros.
3940 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
3943 * include/bits/ranges_uninitialized.h (_DestroyGuard): Change
3944 constructor parameter to reference and use addressof.
3945 * testsuite/util/testsuite_iterators.h: Define deleted operator&
3946 overloads for test iterators.
3948 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
3950 * include/bits/std_function.h (_Function_base): Add
3951 default member initializers and define constructor as defaulted.
3952 (function::_M_invoker): Add default member initializer.
3954 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
3957 * doc/xml/manual/debug_mode.xml: Update documentation about
3958 debug capability of std::array.
3959 * doc/html/*: Regenerate.
3960 * include/debug/array: New file.
3962 2021-07-21 Jonathan Wakely <jwakely@redhat.com>
3965 * include/ext/rope (sequence_buffer): Add move constructor and
3966 move assignment operator.
3967 * testsuite/ext/rope/101542.cc: New test.
3969 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
3972 * src/c++17/fs_ops.cc (fs::create_directories): Use status
3973 instead of symlink_status.
3974 * src/filesystem/ops.cc (fs::create_directories): Likewise.
3975 * testsuite/27_io/filesystem/operations/create_directories.cc:
3976 Check symlink to existing directory.
3977 * testsuite/27_io/filesystem/operations/create_directory.cc: Do
3978 not test with symlinks on Windows.
3979 * testsuite/experimental/filesystem/operations/create_directories.cc:
3980 Check symlink to existing directory.
3981 * testsuite/experimental/filesystem/operations/create_directory.cc:
3982 Do not test with symlinks on Windows.
3984 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
3987 * include/bits/hashtable.h (_Hashtable): Conditionally delete
3988 default constructor by deriving from _Enable_special_members.
3989 * testsuite/23_containers/unordered_map/cons/default.cc: New test.
3990 * testsuite/23_containers/unordered_set/cons/default.cc: New test.
3992 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
3995 * src/c++17/fs_ops.cc (create_dir): Adjust whitespace.
3996 * testsuite/27_io/filesystem/operations/create_directory.cc:
3997 Test creating directory with name of existing symlink to
3999 * testsuite/experimental/filesystem/operations/create_directory.cc:
4002 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
4004 * include/std/tuple (get<I>): Add deleted overload for bad
4006 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
4009 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
4011 * include/bits/max_size_type.h (numeric_limits<__max_size_type>):
4012 Use __int_traits unconditionally.
4014 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
4016 * include/bits/random.h (_Shift::__value): Use constexpr.
4017 (_Select_uint_least_t::type): Use using-declaration.
4019 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
4022 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
4024 * include/bits/cpp_type_traits.h (__INT_N): Use __extension__
4025 instead of diagnostic pragmas.
4026 * include/bits/functional_hash.h: Likewise.
4027 * include/bits/iterator_concepts.h (__is_signed_int128)
4028 (__is_unsigned_int128): Likewise.
4029 * include/bits/max_size_type.h (__max_size_type): Likewise.
4030 (numeric_limits<__max_size_type>): Likewise.
4031 * include/bits/std_abs.h (abs): Likewise.
4032 * include/bits/stl_algobase.h (__size_to_integer): Likewise.
4033 * include/bits/uniform_int_dist.h (uniform_int_distribution):
4035 * include/ext/numeric_traits.h (_GLIBCXX_INT_N_TRAITS):
4037 * include/std/type_traits (__is_integral_helper<INT_N>)
4038 (__is_signed_integer, __is_unsigned_integer)
4039 (__make_unsigned<INT_N>, __make_signed<INT_N>): Likewise.
4040 * include/std/limits (__INT_N): Add __extension__ keyword.
4041 * include/bits/random.h (_Select_uint_least_t)
4042 (random_device): Likewise.
4044 2021-07-16 Patrick Palka <ppalka@redhat.com>
4047 * include/std/ranges (_CachedPosition::_M_get): For non-forward
4048 ranges, just call __builtin_unreachable.
4049 * testsuite/std/ranges/istream_view.cc (test05): New test.
4051 2021-07-16 Patrick Palka <ppalka@redhat.com>
4054 * include/std/ranges (split_view::split_view): Use std::move.
4055 (split_view::_Iterator::_Iterator): Remove redundant
4056 default_initializable constraint.
4057 (split_view::_Sentinel::_Sentinel): Declare.
4058 * testsuite/std/ranges/adaptors/split.cc (test02): New test.
4060 2021-07-16 Marek Polacek <polacek@redhat.com>
4062 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Add
4065 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
4067 * include/bits/unique_ptr.h: Adjust doxygen markup.
4069 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
4072 * include/std/type_traits: Adjust doxygen markup.
4074 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
4076 * include/bits/cpp_type_traits.h: Add diagnostic pragmas around
4077 uses of non-standard integer types.
4078 * include/bits/functional_hash.h: Likewise.
4079 * include/bits/iterator_concepts.h: Likewise.
4080 * include/bits/max_size_type.h: Likewise.
4081 * include/bits/std_abs.h: Likewise.
4082 * include/bits/stl_algobase.h: Likewise.
4083 * include/bits/uniform_int_dist.h: Likewise.
4084 * include/ext/numeric_traits.h: Likewise.
4085 * include/std/type_traits: Likewise.
4087 2021-07-15 Jonathan Wakely <jwakely@redhat.com>
4090 * include/std/tuple (tuple_element): Improve static_assert text.
4091 (__get_helper): Add deleted overload.
4092 (get<i>(tuple<T...>&&), get<i>(const tuple<T...>&&)): Use
4093 __get_helper directly.
4094 (__get_helper2): Remove.
4095 (__find_uniq_type_in_pack): New constexpr helper function.
4096 (get<T>): Use __find_uniq_type_in_pack and __get_helper instead
4098 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
4100 * testsuite/20_util/tuple/element_access/101427.cc: New test.
4102 2021-07-15 Jonathan Wakely <jwakely@redhat.com>
4105 * include/bits/c++config (__replacement_assert): Add noexcept.
4106 [!_GLIBCXX_VERBOSE] (__glibcxx_assert_impl): Use __builtin_abort
4107 instead of __replacement_assert.
4109 2021-07-14 Jonathan Wakely <jwakely@redhat.com>
4111 * include/std/string_view (basic_string_view(It, End)): Add
4113 * testsuite/21_strings/basic_string_view/cons/char/range.cc:
4114 Check noexcept-specifier. Also check construction without CTAD.
4116 2021-07-13 Jonathan Wakely <jwakely@redhat.com>
4119 * include/std/string_view (ends_with): Use traits_type::compare
4122 2021-07-13 Jonathan Wakely <jwakely@redhat.com>
4124 * include/std/string_view: Only include <bits/ranges_base.h>
4125 once, and only for C++20 and later.
4127 2021-07-12 Jonathan Wakely <jwakely@redhat.com>
4130 * include/std/span (as_writable_bytes): Add requires-clause.
4131 * testsuite/23_containers/span/101411.cc: New test.
4133 2021-07-09 Matheus Castanho <msc@linux.ibm.com>
4135 * include/std/mutex (__lock_impl): Check
4136 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
4138 2021-07-02 Jonathan Wakely <jwakely@redhat.com>
4141 * include/bits/unique_ptr.h (unique_ptr<T[],D>::operator[]):
4142 Remove noexcept-specifier.
4143 (unique_ptr<T[],D>::_S_nothrow_deref): Remove.
4144 * testsuite/20_util/unique_ptr/lwg2762.cc: Remove checks for
4147 2021-07-01 Jonathan Wakely <jwakely@redhat.com>
4149 * doc/doxygen/doxygroups.cc: Fix docs for std::literals.
4150 * doc/doxygen/user.cfg.in: Exclude the Networking TS header.
4151 Add some more predefined macros.
4152 * include/bits/fs_fwd.h: Move @addtogroup commands inside
4153 namespaces. Add better documentation.
4154 * include/bits/fs_path.h: Likewise.
4155 * include/experimental/bits/fs_fwd.h: Likewise.
4156 * include/experimental/bits/fs_path.h: Likewise.
4157 * include/ext/throw_allocator.h: Fix typo and improve docs.
4158 * include/std/chrono: Move @addtogroup commands.
4159 * include/std/system_error: Move @addtogroup commands.
4160 * libsupc++/exception: Improve documentation.
4161 * libsupc++/exception.h: Add @since documentation.
4163 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
4166 * doc/doxygen/user.cfg.in (INPUT): Add <experimental/simd>.
4167 (COLS_IN_ALPHA_INDEX): Remove obsolete tag.
4168 (PREDEFINED): Add/fix some more macros that need to be expanded.
4169 * include/bits/random.h: Stop Doxygen from documenting internal
4170 implementation details.
4171 * include/bits/random.tcc: Likewise.
4172 * include/bits/this_thread_sleep.h: Fix @file name.
4173 * include/experimental/bits/simd.h: Add to Doxygen group. Do not
4174 document internal implementation details.
4175 * include/experimental/bits/simd_detail.h: Do not document
4176 internal implementation details.
4177 * include/experimental/simd: Define Doxygen groups.
4178 * include/experimental/type_traits: Improve documentation for
4179 the header file. Define groups. Use @since commands.
4180 * include/std/scoped_allocator (scoped_allocator_adaptor): Move
4181 declaration before undocumented region.
4182 * include/std/type_traits (true_type, false_type): Use using
4183 declaration instead of typedef.
4184 (is_invocable_v, is_nothrow_invocable_v, is_invocable_r_v)
4185 (is_nothrow_invocable_r_v): Move definitions next to other C++17
4187 Do not document internal implementation details. Move misplaced
4188 group-end command. Define group for variable templates.
4189 * include/std/variant: Do not document internal implementation
4191 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
4194 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
4196 * include/experimental/simd: Do not define anything pre-C++17.
4198 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
4200 * include/bits/random.tcc [__cpp_inline_variables]: Remove
4201 redundant definitions of static constexpr member variables.
4202 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
4205 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
4207 * include/bits/streambuf.tcc (__copy_streambufs_eof): Remove
4208 explicit instantiation declarations.
4209 * src/c++11/streambuf-inst.cc (__copy_streambufs_eof): Remove
4210 explicit instantiation definitions.
4212 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
4215 * testsuite/17_intro/names.cc: Fix #if condition for names used
4218 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
4221 * include/bits/unique_ptr.h (unique_ptr<T[], D>::operator[]):
4222 Fail gracefully if element_type is incomplete.
4223 * testsuite/20_util/unique_ptr/cons/incomplete.cc: Clarify that
4224 the standard doesn't require this test to work for array types.
4225 * testsuite/20_util/unique_ptr/lwg2762.cc: Check that incomplete
4226 types can be used with array specialization.
4227 * testsuite/20_util/unique_ptr/101236.cc: New test.
4229 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
4231 * doc/xml/manual/intro.xml: Document LWG 415 change.
4232 * doc/html/manual/bugs.html: Regenerate.
4233 * include/bits/istream.tcc (ws): Create sentry and catch
4235 * testsuite/27_io/basic_istream/ws/char/lwg415.cc: New test.
4236 * testsuite/27_io/basic_istream/ws/wchar_t/lwg415.cc: New test.
4238 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
4240 * include/bits/ostream.tcc (basic_ostream::write): Call sputn
4241 directly instead of using _M_write. Do setstate(__err) all
4242 outside the try-catch block.
4243 * include/std/ostream (basic_ostream::_M_write): Declare
4244 private. Use __ostream_insert. Do not define for the versioned
4247 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
4249 * doc/xml/manual/intro.xml: Document LWG 581 change.
4250 * doc/html/manual/bugs.html: Regenerate.
4251 * include/bits/basic_ios.tcc: Whitespace.
4252 * include/bits/ostream.tcc (basic_ostream::flush()): Construct
4254 * testsuite/27_io/basic_ostream/flush/char/2.cc: Check
4256 * testsuite/27_io/basic_ostream/flush/char/exceptions_badbit_throw.cc:
4258 * testsuite/27_io/basic_ostream/flush/wchar_t/2.cc: Likewise.
4259 * testsuite/27_io/basic_ostream/flush/wchar_t/exceptions_badbit_throw.cc:
4262 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
4264 * include/bits/ostream.tcc (sentry): Only set failbit if badbit
4265 is set, not if eofbit is set.
4266 (tellp, seekp, seekp): Create sentry object. Do not set badbit
4268 * testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc:
4269 Adjust expected behaviour.
4270 * testsuite/27_io/basic_ostream/seekp/wchar_t/exceptions_badbit_throw.cc:
4272 * testsuite/27_io/basic_ostream/tellp/char/exceptions_badbit_throw.cc:
4274 * testsuite/27_io/basic_ostream/tellp/wchar_t/exceptions_badbit_throw.cc:
4276 * testsuite/27_io/basic_ostream/seekp/char/n3168.cc: New test.
4277 * testsuite/27_io/basic_ostream/seekp/wchar_t/n3168.cc: New test.
4278 * testsuite/27_io/basic_ostream/tellp/char/n3168.cc: New test.
4279 * testsuite/27_io/basic_ostream/tellp/wchar_t/n3168.cc: New test.
4281 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
4283 * include/std/syncstream (basic_syncbuf::swap()): Remove
4284 noexcept, as per LWG 3498.
4286 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
4289 * testsuite/17_intro/names.cc: Undef more names for newlib and
4290 also for arm-none-linux-gnueabi.
4291 * testsuite/experimental/names.cc: Disable PCH.
4293 2021-06-25 Matthias Kretz <m.kretz@gsi.de>
4295 * include/experimental/bits/simd.h (__bit_cast): Implement via
4296 __builtin_bit_cast #if available.
4297 (__proposed::simd_bit_cast): Add overloads for simd and
4298 simd_mask, which use __builtin_bit_cast (or __bit_cast #if not
4299 available), which return an object of the requested type with
4300 the same bits as the argument.
4301 * include/experimental/bits/simd_math.h: Use simd_bit_cast
4302 instead of __bit_cast to allow casts to fixed_size_simd.
4303 (copysign): Remove branch that was only required if __bit_cast
4304 cannot be constexpr.
4305 * testsuite/experimental/simd/tests/bits/test_values.h: Switch
4306 from __bit_cast to __proposed::simd_bit_cast since the former
4307 will not cast fixed_size objects anymore.
4309 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
4311 * include/experimental/bits/simd_math.h
4312 (_GLIBCXX_SIMD_MATH_CALL2_): Rename arg2_ to __arg2.
4313 (_GLIBCXX_SIMD_MATH_CALL3_): Rename arg2_ to __arg2 and arg3_ to
4316 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
4318 * include/experimental/bits/simd.h (__execute_on_index_sequence)
4319 (__execute_on_index_sequence_with_return)
4320 (__call_with_n_evaluations, __call_with_subscripts): Add flatten
4323 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
4325 * include/experimental/bits/simd_x86.h (_S_trunc, _S_floor)
4326 (_S_ceil): Set bit 8 (_MM_FROUND_NO_EXC) on AVX and SSE4.1
4329 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
4331 * include/experimental/bits/simd_x86.h (_S_ldexp): The AVX512F
4332 implementation doesn't require a _VecBltnBtmsk ABI tag, it
4333 requires either a 64-Byte input (in which case AVX512F must be
4334 available) or AVX512VL.
4336 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
4338 * include/experimental/bits/simd_math.h: Undefine internal
4340 (frexp): Move #if to a more sensible position and reformat
4342 (logb): Call _SimdImpl::_S_logb for fixed_size instead of
4343 duplicating the code here.
4344 (modf): Simplify condition.
4346 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
4348 * include/experimental/bits/simd_math.h (fabs): Remove
4349 fabs(simd<integral>) overload.
4351 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
4353 * include/experimental/bits/simd_converter.h
4354 (_SimdConverter::operator()): Pass _SimdTuple by const-ref.
4355 * include/experimental/bits/simd_fixed_size.h
4356 (_GLIBCXX_SIMD_FIXED_OP): Pass binary operator _SimdTuple
4357 arguments by const-ref.
4358 (_S_masked_unary): Pass _SimdTuple by const-ref.
4360 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
4362 * include/experimental/bits/simd_fixed_size.h
4363 (_AbisInSimdTuple): Removed.
4365 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
4367 * include/experimental/bits/simd.h: Add missing operator~
4368 overload for simd<floating-point> to __float_bitwise_operators.
4369 * include/experimental/bits/simd_builtin.h
4370 (_SimdImplBuiltin::_S_complement): Bitcast to int (and back) to
4371 implement complement for floating-point vectors.
4372 * include/experimental/bits/simd_fixed_size.h
4373 (_SimdImplFixedSize::_S_copysign): New function, forwarding to
4374 copysign implementation of _SimdTuple members.
4375 * include/experimental/bits/simd_math.h (copysign): Call
4376 _SimdImpl::_S_copysign for fixed_size arguments. Simplify
4377 generic copysign implementation using the new ~ operator.
4379 2021-06-24 Jonathan Wakely <jwakely@redhat.com>
4381 * testsuite/experimental/simd/README.md: Fix typos.
4383 2021-06-24 Jonathan Wakely <jwakely@redhat.com>
4385 * include/bits/shared_ptr_base.h (__shared_ptr_access::operator[]):
4387 * include/bits/unique_ptr.h (unique_ptr::operator*): Add
4388 conditional noexcept as per LWG 2762.
4389 * testsuite/20_util/shared_ptr/observers/array.cc: Check that
4390 dereferencing cannot throw.
4391 * testsuite/20_util/shared_ptr/observers/get.cc: Likewise.
4392 * testsuite/20_util/optional/observers/lwg2762.cc: New test.
4393 * testsuite/20_util/unique_ptr/lwg2762.cc: New test.
4395 2021-06-23 Patrick Palka <ppalka@redhat.com>
4398 * testsuite/23_containers/multiset/cons/deduction.cc:
4399 Uncomment CTAD example that was rejected by this bug.
4400 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
4402 2021-06-23 Jonathan Wakely <jwakely@redhat.com>
4404 * include/std/chrono (chrono::year::is_leap()): Fix incorrect
4407 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
4409 * testsuite/experimental/simd/README.md: New file.
4411 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
4413 * testsuite/experimental/simd/driver.sh: Rewrite output
4414 verbosity logic. Add -p/--percentage option. Allow -v/--verbose
4415 to be used twice. Add -x and -o short options. Parse long
4416 options with = instead of separating space generically. Parce
4417 contracted short options. Make unrecognized options an error.
4418 If same-line output is active, trap on EXIT to increment the
4419 progress (only with --percentage), erase the line and print the
4421 * testsuite/experimental/simd/generate_makefile.sh: Initialize
4422 helper files for progress account keeping. Update help target
4423 for changes to DRIVEROPTS.
4425 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
4427 * testsuite/Makefile.am (check-simd): Remove -fno-tree-vrp flag
4428 and associated warning.
4429 * testsuite/Makefile.in: Regenerate.
4431 2021-06-23 Cassio Neri <cassio.neri@gmail.com>
4432 Jonathan Wakely <jwakely@redhat.com>
4433 Ulrich Drepper <drepper@redhat.com>
4435 * include/std/chrono (chrono::year::is_leap()): Optimize.
4437 2021-06-23 Patrick Palka <ppalka@redhat.com>
4440 * testsuite/23_containers/map/cons/deduction.cc: Replace ambiguous
4442 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
4443 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
4444 Mention one of the replaced examples is broken due to PR101174.
4445 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
4446 * testsuite/23_containers/unordered_map/cons/deduction.cc: Replace
4447 ambiguous CTAD examples.
4448 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
4450 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
4452 * testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise.
4454 2021-06-23 Jonathan Wakely <jwakely@redhat.com>
4456 * include/std/mutex (__detail::__try_lock_impl): Rename
4457 parameter to avoid clashing with newlib's __lockable macro.
4458 (try_lock): Add 'inline' specifier.
4459 * testsuite/17_intro/names.cc: Add check for __lockable.
4460 * testsuite/30_threads/try_lock/5.cc: Add options for pthreads.
4462 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
4463 Matthias Kretz <m.kretz@gsi.de>
4465 * include/std/mutex (lock): Replace recursion with iteration
4466 when lockables all have the same type.
4467 (__detail::__try_lock_impl): Likewise. Pass lockables as
4468 parameters, instead of a tuple. Always lock the first one, and
4469 recurse for the rest.
4470 (__detail::__lock_impl): Adjust call to __try_lock_impl.
4471 (__detail::__try_to_lock): Remove.
4472 * testsuite/30_threads/lock/3.cc: Check that mutexes are locked.
4473 * testsuite/30_threads/lock/4.cc: Also test non-heterogeneous
4475 * testsuite/30_threads/unique_lock/cons/60497.cc: Also check
4477 * testsuite/30_threads/try_lock/5.cc: New test.
4479 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
4481 * include/std/memory (declare_reachable, undeclare_reachable)
4482 (declare_no_pointers, undeclare_no_pointers, get_pointer_safety)
4483 (pointer_safety): Only define for C++11 to C++20 inclusive.
4484 * testsuite/20_util/pointer_safety/1.cc: Do not run for C++23.
4486 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
4488 * include/bits/random.h (seed_seq): Constrain initializer-list
4490 * include/bits/random.tcc (seed_seq): Add template parameter.
4491 * testsuite/26_numerics/random/seed_seq/cons/default.cc: Check
4493 * testsuite/26_numerics/random/seed_seq/cons/initlist.cc: Check
4496 2021-06-22 Thomas Rodgers <rodgert@appliantology.com>
4499 * include/bits/semaphore_base.h (__atomic_semaphore::_M_release):
4500 Force _M_release() to wake all waiting threads.
4501 * testsuite/30_threads/semaphore/100806.cc: New test.
4503 2021-06-21 Jonathan Wakely <jwakely@redhat.com>
4505 * include/std/mutex (__try_to_lock): Move to __detail namespace.
4506 (struct __try_lock_impl): Replace with ...
4507 (__detail::__try_lock_impl<Idx>(tuple<Lockables...>&)): New
4508 function templates to implement std::try_lock.
4509 (try_lock): Use new __try_lock_impl.
4510 (__detail::__lock_impl(int, int&, L0&, L1&...)): New function
4511 template to implement std::lock.
4512 (lock): Use __lock_impl.
4514 2021-06-21 Patrick Palka <ppalka@redhat.com>
4516 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
4518 2021-06-20 Patrick Palka <ppalka@redhat.com>
4520 * include/std/ranges (__non_propagating_cache::operator bool):
4521 Define for split_view::begin().
4522 (split_view): Define as per P2210.
4523 (views::__detail::__can_split_view): Define.
4524 (views::_Split, views::split): Define.
4525 * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
4527 * testsuite/std/ranges/adaptors/split.cc: New test.
4528 * testsuite/std/ranges/p2325.cc (test08a): New test.
4529 * testsuite/std/ranges/p2367.cc (test01): Test views::split.
4531 2021-06-20 Patrick Palka <ppalka@redhat.com>
4533 * include/std/ranges: Rename views::split to views::lazy_split,
4534 split_view to lazy_split_view, etc. throughout.
4535 * testsuite/std/ranges/*: Likewise.
4536 * testsuite/std/ranges/adaptors/lazy_split.cc: New file.
4537 * testsuite/std/ranges/adaptors/lazy_split_neg.cc: New file.
4539 2021-06-20 Patrick Palka <ppalka@redhat.com>
4541 * include/std/ranges (split_view::_OuterIter::__at_end):
4542 Check _M_trailing_empty.
4543 (split_view::_OuterIter::_M_trailing_empty): Define this
4545 (split_view::_OuterIter::operator++): Set _M_trailing_empty
4547 (split_view::_OuterIter::operator==): Compare
4549 * testsuite/std/ranges/adaptors/100479.cc (test03): Expect two
4550 split parts instead of one.
4551 * testsuite/std/ranges/adaptors/split.cc (test11): New test.
4553 2021-06-20 Patrick Palka <ppalka@redhat.com>
4555 * include/std/ranges (split_view::_InnerIter::base): Define as
4558 2021-06-19 Patrick Palka <ppalka@redhat.com>
4560 * include/std/ranges (transform_view::_Iterator::_S_iter_concept):
4561 Consider _Base instead of _Vp as per LWG 3555.
4562 (elements_view::_Iterator::_S_iter_concept): Likewise.
4564 2021-06-19 Patrick Palka <ppalka@redhat.com>
4566 * include/std/ranges (split_view::_OuterIter::value_type::begin):
4567 Remove the non-const overload, and remove the copyable constraint
4568 on the const overload as per LWG 3553.
4570 2021-06-19 Patrick Palka <ppalka@redhat.com>
4572 * include/bits/stl_iterator.h
4573 (__detail::__common_iter_use_postfix_proxy): Add
4574 move_constructible constraint as per LWG 3546.
4575 (common_iterator::__postfix_proxy): Adjust initializer of
4576 _M_keep as per LWG 3546.
4578 2021-06-18 Patrick Palka <ppalka@redhat.com>
4581 * include/bits/ranges_algo.h (__minmax_fn::operator()): Rewrite
4582 to limit comparison complexity to 3*N/2.
4583 (__minmax_element_fn::operator()): Likewise.
4584 (shift_right): Avoid premature std::move of __result.
4585 * testsuite/25_algorithms/minmax/constrained.cc (test04, test05):
4587 * testsuite/25_algorithms/minmax_element/constrained.cc (test02):
4590 2021-06-18 Patrick Palka <ppalka@redhat.com>
4592 * include/std/concepts (convertible_to): Just use declval as per
4595 2021-06-18 Jonathan Wakely <jwakely@redhat.com>
4598 * include/std/numeric (reduce(Iter, Iter, T, BinaryOp)): Replace
4599 incorrect static_assert with ones matching the 'Mandates'
4600 conditions in the standard.
4601 * testsuite/26_numerics/reduce/95833.cc: New test.
4603 2021-06-18 Jonathan Wakely <jwakely@redhat.com>
4605 * testsuite/21_strings/basic_string/cons/char/1.cc: Use
4606 diagnostic pragma to suppress -Wstringop-overread error.
4608 2021-06-18 Patrick Palka <ppalka@redhat.com>
4610 * include/bits/ranges_algo.h (__find_fn, find, __find_if_fn)
4611 (find_if, __find_if_not_fn, find_if_not, _in_in_result)
4612 (__mismatch_fn, mismatch, __search_fn, search): Move to ...
4613 * include/bits/ranges_util.h: ... here.
4614 * include/std/ranges (__detail::find, __detail::find_if)
4615 (__detail::find_if_not, __detail::mismatch): Remove.
4616 (filter_view): Use ranges::find_if instead.
4617 (drop_while_view): Use ranges::find_if_not instead.
4618 (split_view): Use ranges::find and ranges::mismatch instead.
4620 2021-06-18 Patrick Palka <ppalka@redhat.com>
4622 * include/bits/iterator_concepts.h (weakly_incrementable): Remove
4623 default_initializable requirement.
4624 * include/bits/ranges_base.h (ranges::view): Likewise.
4625 * include/bits/ranges_util.h (subrange): Constrain the default
4627 * include/bits/stl_iterator.h (back_insert_iterator): Remove the
4629 (front_insert_iterator): Likewise.
4630 (insert_iterator): Likewise. Remove NSDMIs.
4631 (common_iterator): Constrain the default ctor.
4632 (counted_iterator): Likewise.
4633 * include/bits/stream_iterator.h (ostream_iterator): Remove the
4635 * include/std/ranges (__detail::__box::operator=): Handle
4636 self-assignment in the primary template.
4637 (__detail::__box): In the partial specialization: adjust
4638 constraints as per P2325. Add specialized operator= for the
4639 case when the wrapped type is not copyable. Constrain the
4640 default ctor. Avoid list-initialization.
4641 (single_view): Constraint the default ctor.
4642 (iota_view): Relax semiregular constraint to copyable.
4643 Constrain the default ctor.
4644 (iota_view::_Iterator): Constraint the default ctor.
4645 (basic_istream_view): Remove the default ctor. Remove NSDMIs.
4646 Remove redundant checks for empty _M_stream.
4647 (basic_istream_view::_Iterator): Likewise.
4648 (ref_view): Remove the default ctor. Remove NSDMIs.
4649 (ref_view::_Iterator): Constrain the default ctor.
4650 (__detail::__non_propagating_cache::operator=): Define overload
4651 for assigning from a value of the underlying type.
4652 (filter_view): Likewise.
4653 (filter_view::_Iterator): Likewise.
4654 (transform_view): Likewise.
4655 (transform_view::_Iterator): Likewise.
4656 (take_view): Likewise.
4657 (take_view::_Iterator): Likewise.
4658 (take_while_view): Likewise.
4659 (take_while_view::_Iterator): Likewise.
4660 (drop_while_view): Likewise.
4661 (drop_while_view::_Iterator): Likewise.
4662 (join_view): Likewise.
4663 (split_view::_OuterIter::__current): Adjust after changing the
4665 (split_view::_M_current): Wrap it in a __non_propagating_cache.
4666 (split_view::split_view): Constrain the default ctor.
4667 (common_view): Constrain the default ctor.
4668 (reverse_view): Likewise.
4669 (elements_view): Likewise.
4670 * include/std/span (enable_view<span<_ElementType, _Extent>>):
4671 Define this partial specialization to true unconditionally.
4672 * include/std/version (__cpp_lib_ranges): Adjust value.
4673 * testsuite/24_iterators/back_insert_iterator/constexpr.cc:
4674 Don't attempt to default construct a back_insert_iterator.
4675 * testsuite/24_iterators/front_insert_iterator/constexpr.cc:
4676 Don't attempt to default construct a front_insert_iterator.
4677 * testsuite/24_iterators/insert_iterator/constexpr.cc:
4678 Don't attempt to default construct an insert_iterator.
4679 * testsuite/24_iterators/ostream_iterator/requirements/constexpr.cc:
4680 Remove this test for default constructibility of ostream_iterator.
4681 * testsuite/std/ranges/97600.cc: Don't attempt to default
4682 construct a basic_istream_view.
4683 * testsuite/std/ranges/adaptors/detail/semiregular_box.cc:
4685 * testsuite/std/ranges/adaptors/detail/copyable_box.cc: ... this.
4686 (test02): Adjust now that __box is copyable-box not
4689 * testsuite/std/ranges/p2325.cc: New test.
4690 * testsuite/std/ranges/single_view.cc (test06): New test.
4691 * testsuite/std/ranges/view.cc: Adjust now that view doesn't
4692 require default_initializable.
4694 2021-06-17 Jonathan Wakely <jwakely@redhat.com>
4697 * include/bits/basic_string.h (__cpp_lib_constexpr_string): Only
4698 define when is_constant_evaluated is available.
4699 * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits):
4701 (__constant_string_p, __constant_array_p): Remove.
4702 (char_traits): Use is_constant_evaluated directly.
4703 * include/std/version (__cpp_lib_constexpr_char_traits)
4704 (__cpp_lib_constexpr_string): Only define when
4705 is_constant_evaluated is available.
4707 2021-06-17 Patrick Palka <ppalka@redhat.com>
4710 * include/std/ranges (__adaptor::_Partial): For the "simple"
4711 forwarding partial specializations, also require that
4712 the extra arguments are trivially copyable.
4713 * testsuite/std/ranges/adaptors/100577.cc (test04): New test.
4715 2021-06-17 Patrick Palka <ppalka@redhat.com>
4718 * include/std/ranges (__adaptor::_RangeAdaptor): Document the
4719 template form of _S_has_simple_extra_args.
4720 (__adaptor::__adaptor_has_simple_extra_args): Add _Args template
4721 parameter pack. Try to treat _S_has_simple_extra_args as a
4722 variable template parameterized by _Args.
4723 (__adaptor::_Partial): Pass _Arg/_Args to the constraint
4724 __adaptor_has_simple_extra_args.
4725 (views::_Take::_S_has_simple_extra_args): Templatize according
4726 to the type of the extra argument.
4727 (views::_Drop::_S_has_simple_extra_args): Likewise.
4728 (views::_Split::_S_has_simple_extra_args): Define.
4729 * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
4730 Adjust after changes to _S_has_simple_extra_args mechanism.
4733 2021-06-16 Jonathan Wakely <jwakely@redhat.com>
4735 * include/bits/iterator_concepts.h (__decay_copy): Name type.
4737 2021-06-16 Jonathan Wakely <jwakely@redhat.com>
4739 * include/bits/ranges_base.h (ranges::begin, ranges::end)
4740 (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
4741 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
4742 (ranges::empty, ranges::data, ranges::cdata): Remove final
4743 keywords and deleted operator& overloads.
4744 * testsuite/24_iterators/customization_points/iter_move.cc: Use
4745 new is_customization_point_object function.
4746 * testsuite/24_iterators/customization_points/iter_swap.cc:
4748 * testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc:
4750 * testsuite/std/ranges/access/begin.cc: Likewise.
4751 * testsuite/std/ranges/access/cbegin.cc: Likewise.
4752 * testsuite/std/ranges/access/cdata.cc: Likewise.
4753 * testsuite/std/ranges/access/cend.cc: Likewise.
4754 * testsuite/std/ranges/access/crbegin.cc: Likewise.
4755 * testsuite/std/ranges/access/crend.cc: Likewise.
4756 * testsuite/std/ranges/access/data.cc: Likewise.
4757 * testsuite/std/ranges/access/empty.cc: Likewise.
4758 * testsuite/std/ranges/access/end.cc: Likewise.
4759 * testsuite/std/ranges/access/rbegin.cc: Likewise.
4760 * testsuite/std/ranges/access/rend.cc: Likewise.
4761 * testsuite/std/ranges/access/size.cc: Likewise.
4762 * testsuite/std/ranges/access/ssize.cc: Likewise.
4763 * testsuite/util/testsuite_iterators.h
4764 (is_customization_point_object): New function.
4766 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
4768 * include/bits/ranges_base.h (ranges::begin, ranges::end)
4769 (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
4770 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
4771 (ranges::empty, ranges::data, ranges::cdata): Make types final.
4772 Add deleted operator& overloads.
4773 (ranges::advance, ranges::distance, ranges::next, ranges::prev):
4775 * testsuite/std/ranges/headers/ranges/synopsis.cc: Replace
4776 ill-formed & expressions with using-declarations. Add checks for
4777 other function objects.
4779 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
4781 * include/bits/ranges_util.h (view_interface): Add noexcept to
4782 empty, operator bool, data and size members.
4783 (subrange): Add noexcept to constructors.
4784 * include/std/ranges (single_view, ref_view): Add noexcept to
4786 (views::single, views::all): Add noexcept.
4787 * testsuite/std/ranges/adaptors/all.cc: Check noexcept.
4788 * testsuite/std/ranges/single_view.cc: Likewise.
4790 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
4792 * include/bits/ranges_util.h (subrange): Add __size_type typedef
4793 and use it to simplify declarations.
4794 (subrange(i, s, n)): Remove assertion.
4795 * testsuite/std/ranges/subrange/constexpr.cc: New test.
4797 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
4799 * include/bits/iterator_concepts.h (__cust_access::__decay_copy):
4800 Replace with function object.
4801 (__cust_access::__member_begin, ___cust_access::_adl_begin): Use
4802 __decay_copy unqualified.
4803 * include/bits/ranges_base.h (__member_end, __adl_end):
4804 Likewise. Use __range_iter_t for type of ranges::begin.
4805 (__member_rend): Use correct value category for rbegin argument.
4806 (__member_data): Use __decay_copy unqualified.
4807 (__begin_data): Use __range_iter_t for type of ranges::begin.
4809 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
4811 * include/bits/ranges_base.h (ranges::empty): Check whether
4812 conversion to bool can throw.
4813 * testsuite/std/ranges/access/empty.cc: Check for correct
4816 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
4819 * include/std/type_traits (__common_ref_impl<X&, Y&>): Only
4820 use the type if it's a reference.
4821 * testsuite/20_util/common_reference/100894.cc: New test.
4823 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
4825 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
4826 Add dg-require-filesystem-ts directive.
4828 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
4831 * include/std/any (any(in_place_t<T>, initializer_list<U>, A&&...))
4832 (any::emplace<T>(initializer_list<U>, A&&...)): Fix constraint
4834 * testsuite/20_util/any/cons/101034.cc: New test.
4836 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
4838 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Add
4839 -std=gnu++17 option.
4841 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
4844 * libsupc++/compare (compare_partial_order_fallback): Add
4845 constraint using reversed parameter order, as per LWG 3465.
4846 * testsuite/18_support/comparisons/algorithms/fallback.cc:
4847 Adjust expected result.
4849 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
4851 * libsupc++/compare (__decayed_same_as): New helper concept.
4852 (strong_order, weak_order, partial_order): Constrain with new
4853 concept instead of using static_assert.
4854 (compare_strong_order_fallback, compare_weak_order_fallback)
4855 (compare_partial_order_fallback): Likewise. Do not deduce return
4856 types. Remove redundant if-constexpr checks.
4857 * testsuite/18_support/comparisons/algorithms/fallback.cc: New test.
4859 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
4862 * include/std/tuple: Use reserved form of attribute name.
4863 * testsuite/17_intro/headers/c++2011/all_attributes.cc: Add
4864 check for no_unique_address.
4865 * testsuite/17_intro/headers/c++2014/all_attributes.cc:
4867 * testsuite/17_intro/headers/c++2017/all_attributes.cc:
4870 2021-06-11 Jonathan Wakely <jwakely@redhat.com>
4872 * include/bits/fs_path.h (operator==, operator<=>): Use new
4873 _S_compare function.
4874 (path::_S_compare): New function to call path::compare in a
4875 context where path::iterator is complete.
4876 * include/experimental/bits/fs_path.h (operator<, operator==):
4877 Define after path::iterator is complete.
4878 * testsuite/27_io/filesystem/path/native/conv_c++23.cc: New
4880 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
4883 2021-06-09 Thomas Rodgers <rodgert@appliantology.com>
4885 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Guard
4886 test logic with constexpr check for is_always_lock_free.
4888 2021-06-09 Jonathan Wakely <jwakely@redhat.com>
4891 * include/std/optional (optional::operator=(const optional<U>&)):
4892 Fix value category used in is_assignable check.
4893 * testsuite/20_util/optional/assignment/100982.cc: New test.
4895 2021-06-09 Jonathan Wakely <jwakely@redhat.com>
4897 * include/bits/allocator.h (allocator::is_always_equal): Deprecate.
4898 * include/bits/iterator_concepts.h (indirectly_readable_traits):
4899 Add LWG issue number to comment.
4900 * include/std/memory_resource (polymorphic_allocator::release):
4902 * testsuite/20_util/allocator/requirements/typedefs.cc: Add
4903 dg-warning for deprecation. Also check std::allocator<void>.
4905 2021-06-08 Thomas Rodgers <rodgert@appliantology.com>
4908 * include/bits/atomic_base.h (atomic_ref<_Tp*>::wait):
4909 Change parameter type from _Tp to _Tp*.
4910 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Extend
4911 coverage of types tested.
4913 2021-06-08 Thomas Rodgers <rodgert@appliantology.com>
4915 * include/std/barrier (__tree_barrier::_M_arrive): Remove
4916 unnecessary hasher instantiation.
4918 2021-06-08 Jonathan Wakely <jwakely@redhat.com>
4920 * include/experimental/propagate_const (swap): Constrain.
4921 * testsuite/experimental/propagate_const/swap/lwg3413.cc: New test.
4923 2021-06-07 Avi Kivity <avi@scylladb.com>
4926 * include/std/ranges (elements_view::__iter_cat::_S_iter_cat):
4927 Add missing typename.
4929 2021-06-07 Jonathan Wakely <jwakely@redhat.com>
4932 * include/std/optional (operator<=>(const optional<T>& const U&)):
4933 Add missing constraint and add workaround for template
4935 * testsuite/20_util/optional/relops/three_way.cc: Check that
4936 type without equality comparison cannot be compared when wrapped
4939 2021-06-05 Jonathan Wakely <jwakely@redhat.com>
4942 * include/bits/ranges_base.h (_SSize): Return signed type.
4943 * testsuite/std/ranges/access/ssize.cc: Check with __int128.
4945 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
4947 * include/bits/ranges_base.h (_SSize): Return the result of
4948 ranges::size converted to the wider of make-signed-like-t<S> and
4949 ptrdiff_t, rather than the ranges different type.
4950 * testsuite/std/ranges/access/ssize.cc: Adjust expected result
4951 for an iota_view that uses an integer class type for its
4954 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
4957 * include/bits/ranges_base.h (__member_data): Use __decay_copy.
4958 * testsuite/std/ranges/access/data.cc: Add testcase from PR.
4960 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
4963 * include/bits/iterator_concepts.h (__detail::__decay_copy)
4964 (__detail::__member_begin, __detail::__adl_begin): Move to
4965 namespace ranges::__cust_access.
4966 (__detail::__ranges_begin): Likewise, and rename to __begin.
4967 Remove redundant static assertion.
4968 * include/bits/ranges_base.h (_Begin, _End, _RBegin, _REnd):
4969 Use lvalue in noexcept specifier.
4970 (__as_const): Add non-deduced parameter for value category.
4971 (_CBegin, _CEnd, _CRBegin, _CREnd, _CData): Adjust uses of
4973 (__member_size, __adl_size, __member_empty, __size0_empty):
4974 (__eq_iter_empty, __adl_data): Use lvalue objects in
4976 (__sentinel_size): Likewise. Add check for conversion to
4978 (__member_data): Allow non-lvalue types to satisfy the concept,
4979 but use lvalue object in requirements.
4980 (_Size, _SSize): Remove forwarding to always use an lvalue.
4981 (_Data): Likewise. Add static assertion for arrays.
4982 * testsuite/std/ranges/access/cdata.cc: Adjust expected
4983 behaviour for rvalues. Add negative tests for ill-formed
4985 * testsuite/std/ranges/access/data.cc: Likewise.
4986 * testsuite/std/ranges/access/empty.cc: Adjust expected
4987 behaviour for rvalues.
4988 * testsuite/std/ranges/access/size.cc: Likewise.
4990 2021-06-04 Tim Adye <Tim.Adye@cern.ch>
4992 * include/std/any (any::_Manager::_S_access): New static
4993 function to access the contained value.
4994 (any::emplace, __any_caster): Use _S_access member of the
4997 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
4999 * doc/xml/manual/status_cxx2020.xml:
5000 * doc/html/*: Regenerate.
5001 * include/bits/hashtable.h (__cpp_lib_generic_unordered_lookup):
5003 * include/std/version (__cpp_lib_generic_unordered_lookup):
5005 * testsuite/23_containers/unordered_map/operations/1.cc: Check
5007 * testsuite/23_containers/unordered_set/operations/1.cc:
5010 2021-06-03 Patrick Palka <ppalka@redhat.com>
5012 * include/bits/ranges_algo.h (__detail::__can_reread_output):
5013 Factor out this concept from ...
5014 (__unique_copy_fn::operator()): ... here. Use the concept
5016 * testsuite/std/ranges/range.cc: Remove now ill-formed use
5017 of range_value_t on an output_range.
5018 * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
5019 Define value_type, pointer and reference member types to void.
5021 2021-06-03 Patrick Palka <ppalka@redhat.com>
5024 * include/std/ranges (_RangeAdaptorClosure): Document
5025 _S_has_simple_call_op mechanism.
5026 (_RangeAdaptor): Document _S_has_simple_extra_args mechanism.
5027 (__closure_has_simple_call_op): New concept.
5028 (__adaptor_has_simple_extra_args): Likewise.
5029 (_Partial<_Adaptor, _Args...>): New partial specialization.
5030 (_Partial<_Adaptor, _Arg>): Likewise.
5031 (_Pipe<_Lhs, _Rhs>): Likewise.
5032 (views::_All::_S_has_simple_call_op): Define to true.
5033 (views::_Filter::_S_has_simple_extra_args): Likewise.
5034 (views::_Transform::_S_has_simple_extra_args): Likewise.
5035 (views::_Take::_S_has_simple_extra_args): Likewise.
5036 (views::_TakeWhile::_S_has_simple_extra_args): Likewise.
5037 (views::_Drop::_S_has_simple_extra_args): Likewise.
5038 (views::_DropWhile::_S_has_simple_extra_args): Likewise.
5039 (views::_Join::_S_has_simple_call_op): Likewise.
5040 (views::_Split): Document why we don't define
5041 _S_has_simple_extra_args to true for this adaptor.
5042 (views::_Common::_S_has_simple_call_op): Define to true.
5043 (views::_Reverse::_S_has_simple_call_op): Likewise.
5044 (views::_Elements::_S_has_simple_call_op): Likewise.
5045 * testsuite/std/ranges/adaptors/100577.cc: New test.
5047 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
5051 * include/bits/hashtable_policy.h (_Hashtable_ebo_helper):
5052 Value-initialize subobject.
5053 * testsuite/23_containers/unordered_map/allocator/default_init.cc:
5055 * testsuite/23_containers/unordered_set/allocator/default_init.cc:
5058 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
5061 * testsuite/23_containers/unordered_map/96088.cc: Adjust
5062 expected number of allocations.
5063 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
5065 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
5067 * doc/xml/manual/status_cxxis29124.xml: Improve punctuation.
5068 * doc/xml/manual/status_cxxtr1.xml: Likewise.
5069 * doc/xml/manual/status_cxxtr24733.xml: Likewise.
5070 * doc/html/*: Regenerate.
5072 2021-06-01 Patrick Palka <ppalka@redhat.com>
5075 * testsuite/23_containers/deque/allocator/default_init.cc,
5076 testsuite/23_containers/forward_list/allocator/default_init.cc,
5077 testsuite/23_containers/list/allocator/default_init.cc,
5078 testsuite/23_containers/map/allocator/default_init.cc,
5079 testsuite/23_containers/set/allocator/default_init.cc,
5080 testsuite/23_containers/vector/allocator/default_init.cc,
5081 testsuite/23_containers/vector/bool/allocator/default_init.cc:
5084 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
5086 * testsuite/23_containers/unordered_map/96088.cc: Change
5087 effective target to c++17.
5088 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
5090 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
5092 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Only test
5093 isblank for C++11 and later.
5095 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
5098 * include/bits/ranges_base.h (ranges::advance(iter, n, sentinel)):
5099 Fix return value for no-op case.
5100 * testsuite/24_iterators/range_operations/advance.cc: Test
5101 return values of three-argument overload.
5103 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
5106 * python/Makefile.am: Use archive name for printer hook if no
5107 dynamic library name is available.
5108 * python/Makefile.in: Regenerate.
5110 2021-05-30 Gerald Pfeifer <gerald@pfeifer.com>
5112 * doc/xml/manual/abi.xml: Remove dead reference to "Intel
5113 Compilers for Linux: Compatibility with GNU Compilers" article.
5114 * doc/html/manual/abi.html: Regenerate.
5116 2021-05-26 François Dumont <fdumont@gcc.gnu.org>
5118 * include/debug/formatter.h
5119 (_Error_formatter::_Parameter::_Named): New.
5120 (_Error_formatter::_Parameter::_Type): Inherit latter.
5121 (_Error_formatter::_Parameter::_M_integer): Likewise.
5122 (_Error_formatter::_Parameter::_M_string): Likewise.
5123 * src/c++11/debug.cc: Include <cstring>.
5124 (_Print_func_t): New.
5125 (print_raw(PrintContext&, const char*, ptrdiff_t)): New.
5126 (print_word): Use '%.*s' format in fprintf to render only expected number of chars.
5127 (pretty_print(PrintContext&, const char*, _Print_func_t)): New.
5128 (print_type): Rename in...
5129 (print_type_info): ...this. Use pretty_print.
5130 (print_address, print_integer): New.
5131 (print_named_name, print_iterator_constness, print_iterator_state): New.
5132 (print_iterator_seq_type): New.
5133 (print_named_field, print_type_field, print_instance_field, print_iterator_field): New.
5134 (print_field): Use latters.
5135 (print_quoted_named_name, print_type_type, print_type, print_instance): New.
5136 (print_string(PrintContext&, const char*, const _Parameter*, size_t)):
5137 Change signature to...
5138 (print_string(PrintContext&, const char*, ptrdiff_t, const _Parameter*, size_t)):
5139 ...this and adapt. Remove intermediate buffer to render input string.
5140 (print_string(PrintContext&, const char*, ptrdiff_t)): New.
5142 2021-05-26 Jonathan Wakely <jwakely@redhat.com>
5145 * include/bits/ranges_base.h (advance, distance, next, prev):
5146 Replace function templates with function objects.
5147 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
5148 Adjust for changes to function objects.
5149 * testsuite/std/ranges/adaptors/elements.cc: Add using
5150 declarations for names from namespace ranges.
5151 * testsuite/std/ranges/adaptors/transform.cc: Likewise.
5152 * testsuite/24_iterators/range_operations/100768.cc: New test.
5154 2021-05-24 François Dumont <fdumont@gcc.gnu.org>
5157 * include/bits/hashtable_policy.h (_Select2nd): New.
5158 (_NodeBuilder<>): New.
5159 (_ReuseOrAllocNode<>::operator()): Use variadic template args.
5160 (_AllocNode<>::operator()): Likewise.
5161 * include/bits/hashtable.h
5162 (_Hashtable<>::__node_builder_t): New.
5163 (_Hashtable<>::_M_insert_unique<>(_Kt&&, _Arg&&, const _NodeGenerator&)):
5165 (_Hashtable<>::_S_forward_key): New.
5166 (_Hashtable<>::_M_insert): Use latter.
5167 (_Hashtable<>::_M_insert(const_iterator, _Arg&&, const _NodeGenerator&, false_type)):
5168 Instantiate node first, compute hash code second.
5169 * testsuite/23_containers/unordered_map/96088.cc: New test.
5170 * testsuite/23_containers/unordered_multimap/96088.cc: New test.
5171 * testsuite/23_containers/unordered_multiset/96088.cc: New test.
5172 * testsuite/23_containers/unordered_set/96088.cc: New test.
5173 * testsuite/util/replacement_memory_operators.h
5174 (counter::_M_increment): New.
5175 (counter::_M_decrement): New.
5176 (counter::reset()): New.
5178 2021-05-24 Patrick Palka <ppalka@redhat.com>
5181 * include/std/ranges (__detail::__non_propagating_cache): Move
5182 definition up to before that of _CachedPosition. Make base
5183 class _Optional_base protected instead of private. Add const
5184 overload for operator*.
5185 (__detail::_CachedPosition): Rewrite the partial specialization
5186 for forward ranges as a derived class of __non_propagating_cache.
5187 Remove the size constraint on the partial specialization for
5188 random access ranges. Add copy/move/copy-assignment/move-assignment
5189 members to the offset partial specialization for random
5190 access ranges that propagate the cached value but additionally
5191 invalidate it in the source object on move.
5192 * testsuite/std/ranges/adaptors/100479.cc: New test.
5194 2021-05-24 Jonathan Wakely <jwakely@redhat.com>
5196 * testsuite/25_algorithms/inplace_merge/constrained.cc: Qualify
5197 call to ranges::next.
5198 * testsuite/25_algorithms/is_sorted/constrained.cc: Likewise.
5199 * testsuite/25_algorithms/is_sorted_until/constrained.cc:
5201 * testsuite/25_algorithms/swap_ranges/1.cc: Qualify call to
5204 2021-05-21 Patrick Palka <ppalka@redhat.com>
5207 * include/std/ranges (drop_while_view::begin): Assert the
5208 precondition added by LWG 3490.
5210 2021-05-21 Patrick Palka <ppalka@redhat.com>
5213 * include/std/ranges (iota_view::_Sentinel::_M_distance_from):
5214 Split out this member function from ...
5215 (iota_view::_Sentinel::operator-): ... here, for sake of access
5217 * testsuite/std/ranges/iota/iota_view.cc (test05): New test.
5219 2021-05-20 Jonathan Wakely <jwakely@redhat.com>
5221 * include/bits/random.tcc (__representable_as_double)
5222 (__p1_representable_as_double): Add "" to static asserts.
5224 2021-05-20 Jonathan Wakely <jwakely@redhat.com>
5227 * include/bits/c++config (__glibcxx_assert_1): Rename to ...
5228 (__glibcxx_constexpr_assert): ... this.
5229 (__glibcxx_assert_impl): Use __glibcxx_constexpr_assert.
5230 (__glibcxx_assert): Define as either __glibcxx_constexpr_assert
5231 or __glibcxx_assert_impl.
5232 (__glibcxx_assert_2): Remove
5233 * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): Use
5234 __glibcxx_constexpr_assert instead of __glibcxx_assert_1.
5235 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
5236 Adjust expected error.
5237 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
5239 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
5242 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
5244 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
5246 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
5248 * testsuite/23_containers/span/back_neg.cc: Likewise.
5249 * testsuite/23_containers/span/front_neg.cc: Likewise.
5250 * testsuite/23_containers/span/index_op_neg.cc: Likewise.
5252 2021-05-20 Patrick Palka <ppalka@redhat.com>
5255 * include/bits/stl_iterator.h (reverse_iterator::difference_type):
5256 In C++20 mode, define in terms of iter_difference_t as per P0896R4.
5257 (reverse_iterator::reference): Likewise, but with iter_reference_t.
5258 (reverse_iterator::value_type): Likewise, but with iter_value_t.
5259 * testsuite/std/ranges/adaptors/reverse.cc (test08): New test.
5260 * testsuite/24_iterators/reverse_iterator/100639.cc: New test.
5262 2021-05-20 Joern Rennecke <joern.rennecke@riscy-ip.com>
5265 * include/std/charconv (to_chars): Hide the overloads for
5266 floating-point types for 16 bit targets.
5267 * src/c++17/floating_to_chars.cc: Don't compile for 16 bit targets.
5268 * testsuite/20_util/to_chars/double.cc: Run this test only on
5270 * testsuite/20_util/to_chars/float.cc: Likewise.
5271 * testsuite/20_util/to_chars/long_double.cc: Likewise.
5273 2021-05-18 Patrick Palka <ppalka@redhat.com>
5276 * include/std/ranges (elements_view::_Sentinel::operator-): Use
5277 _M_distance_from in the other operator- overload too.
5278 * testsuite/std/ranges/adaptors/elements.cc (test06): Augment test.
5280 2021-05-18 Thomas Schwinge <thomas@codesourcery.com>
5282 * testsuite/lib/prune.exp: Add note about 'dg-note'.
5284 2021-05-18 Patrick Palka <ppalka@redhat.com>
5287 * include/std/ranges (__box::__box): Use non-list-initialization
5288 in member initializer list of in-place constructor of the
5289 partial specialization for semiregular types.
5290 (__box::operator->): Use std::__addressof.
5291 * testsuite/std/ranges/adaptors/detail/semiregular_box.cc
5293 * testsuite/std/ranges/single_view.cc (test04): New test.
5295 2021-05-18 Patrick Palka <ppalka@redhat.com>
5298 * include/std/ranges (reverse_view::_S_needs_cached_begin):
5299 Set to true if the underlying non-common random-access range
5300 doesn't have a sized sentinel.
5302 2021-05-18 Patrick Palka <ppalka@redhat.com>
5305 * include/std/ranges (elements_view::_Iterator): Also befriend
5307 (elements_view::_Sentinel::_M_equal): Templatize.
5308 (elements_view::_Sentinel::_M_distance_from): Split out from ...
5309 (elements_view::_Sentinel::operator-): ... here. Depend on
5310 _Base2 instead of _Base in the return type.
5311 * testsuite/std/ranges/adaptors/elements.cc (test06, test07):
5314 2021-05-17 Thomas Rodgers <rodgert@twrodgers.com>
5316 * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): loop
5317 until value change observed.
5318 (__waiter_base::_M_laundered): New member.
5319 (__waiter_base::_M_notify): Check _M_laundered to determine
5320 whether to wake one or all.
5321 (__detail::__atomic_compare): Return true if call to
5322 __builtin_memcmp() == 0.
5323 (__waiter_base::_S_do_spin_v): Adjust predicate.
5324 * testsuite/29_atomics/atomic/wait_notify/100334.cc: New
5327 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
5330 * include/experimental/bits/fs_path.h (__is_constructible_from):
5331 Test construction from a const lvalue, not an rvalue.
5332 * testsuite/27_io/filesystem/path/construct/100630.cc: New test.
5333 * testsuite/experimental/filesystem/path/construct/100630.cc:
5336 2021-05-17 Antony Polukhin <antoshkka@gmail.com>
5339 * include/bits/locale_facets.h (ctype<basic_string<C,T,A>>):
5340 Declare (but do not define) partial specialization.
5341 * testsuite/22_locale/ctype/is/string/89728_neg.cc: New test.
5343 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
5345 * include/std/thread (jthread::_S_create): Fix static assert
5347 * testsuite/30_threads/jthread/95989.cc: Re-enable test.
5348 * testsuite/30_threads/jthread/jthread.cc: Do not require
5349 pthread effective target.
5350 * testsuite/30_threads/jthread/2.cc: Moved to...
5351 * testsuite/30_threads/jthread/version.cc: ...here.
5353 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
5355 * doc/Makefile.am: Simplify doxygen recipes and use --latex_cmd.
5356 * doc/Makefile.in: Regenerate.
5357 * doc/doxygen/user.cfg.in (LATEX_CMD_NAME): Add placeholder
5359 * scripts/run_doxygen (print_usage): Always print to stdout and
5361 (fail): New function for exiting on error.
5362 (parse_options): Handle --latex_cmd. Do not treat --help the
5363 same as errors. Simplify handling of required arguments.
5365 2021-05-12 Jonathan Wakely <jwakely@redhat.com>
5367 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
5368 Increase dg-timeout-factor to 4. Fix -Wunused-parameter
5369 warnings. Replace bitwise AND with logical AND in loop
5371 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
5372 Replace bitwise AND with logical AND in loop condition.
5373 * testsuite/util/pstl/test_utils.h: Remove unused parameter
5376 2021-05-11 Patrick Palka <ppalka@redhat.com>
5378 * src/c++17/ryu/LOCAL_PATCHES: Update.
5379 * src/c++17/ryu/ryu_generic_128.h: Remove extern "C".
5380 Remove declarations for never-defined functions.
5381 * testsuite/20_util/to_chars/4.cc: New test.
5383 2021-05-11 Jonathan Wakely <jwakely@redhat.com>
5385 * testsuite/20_util/headers/memory/synopsis.cc: Define C++98
5386 alternative for macro.
5387 * testsuite/20_util/shared_ptr/creation/99006.cc: Add effective
5389 * testsuite/25_algorithms/copy/debug/99402.cc: Avoid C++11
5392 2021-05-11 Jonathan Wakely <jwakely@redhat.com>
5394 * include/bits/allocator.h (allocator<void>) [C++20]: Add
5395 missing noexcept to constructor. Restore missing POCMA and
5396 is_always_equal_traits.
5397 [C++17]: Make construct and destroy members private and
5398 declare allocator_traits as a friend.
5399 * include/bits/memoryfwd.h (allocator_traits): Declare.
5400 * include/ext/malloc_allocator.h (malloc_allocator::allocate):
5401 Add nodiscard attribute. Add static assertion for LWG 3307.
5402 * include/ext/new_allocator.h (new_allocator::allocate): Add
5403 static assertion for LWG 3307.
5404 * testsuite/20_util/allocator/void.cc: Check that converting
5405 constructor is noexcept. Check for propagation traits and
5406 size_type and difference_type. Check that pointer and
5407 const_pointer are gone in C++20.
5409 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
5411 * include/std/stop_token: Remove TODO comment.
5413 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
5415 * include/bits/shared_ptr_base.h (__shared_count(unique_ptr&&)):
5416 Initialize a non-reference deleter from an rvalue, as per LWG
5418 (__shared_ptr::_UniqCompatible): Add missing constraint.
5419 * testsuite/20_util/shared_ptr/cons/lwg3548.cc: New test.
5420 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc: Check
5423 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
5425 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Remove
5426 -std=gnu++17 from dg-options directive.
5427 * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc:
5429 * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc:
5431 * testsuite/17_intro/headers/c++2017/operator_names.cc:
5433 * testsuite/17_intro/headers/c++2017/parallel_mode.cc: Likewise.
5434 * testsuite/17_intro/headers/c++2017/stdc++.cc: Likewise.
5435 * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
5437 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Likewise.
5438 * testsuite/18_support/byte/81076.cc: Likewise.
5439 * testsuite/18_support/byte/global_neg.cc: Likewise.
5440 * testsuite/18_support/byte/ops.cc: Likewise.
5441 * testsuite/18_support/byte/requirements.cc: Likewise.
5442 * testsuite/18_support/headers/cfloat/values_c++17.cc: Likewise.
5443 * testsuite/18_support/launder/1.cc: Likewise.
5444 * testsuite/18_support/launder/nodiscard.cc: Likewise.
5445 * testsuite/18_support/launder/requirements.cc: Likewise.
5446 * testsuite/18_support/launder/requirements_neg.cc: Likewise.
5447 * testsuite/18_support/new_aligned.cc: Likewise.
5448 * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
5450 * testsuite/19_diagnostics/error_code/is_error_code_v.cc:
5452 * testsuite/19_diagnostics/error_condition/hash.cc: Likewise.
5453 * testsuite/20_util/addressof/requirements/constexpr.cc:
5455 * testsuite/20_util/as_const/1.cc: Likewise.
5456 * testsuite/20_util/as_const/rvalue_neg.cc: Likewise.
5457 * testsuite/20_util/bind/83427.cc: Likewise.
5458 * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
5459 * testsuite/20_util/bool_constant/requirements.cc: Likewise.
5460 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
5462 * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
5464 * testsuite/20_util/duration_cast/rounding.cc: Likewise.
5465 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
5467 * testsuite/20_util/from_chars/1_neg.cc: Likewise.
5468 * testsuite/20_util/from_chars/requirements.cc: Likewise.
5469 * testsuite/20_util/function/91456.cc: Likewise.
5470 * testsuite/20_util/function/cons/deduction.cc: Likewise.
5471 * testsuite/20_util/function_objects/83607.cc: Likewise.
5472 * testsuite/20_util/function_objects/invoke/59768.cc: Likewise.
5473 * testsuite/20_util/function_objects/mem_fn/80478.cc: Likewise.
5474 * testsuite/20_util/function_objects/not_fn/1.cc: Likewise.
5475 * testsuite/20_util/function_objects/not_fn/87538.cc: Likewise.
5476 * testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc:
5478 * testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc:
5480 * testsuite/20_util/has_unique_object_representations/value.cc:
5482 * testsuite/20_util/hash/nullptr.cc: Likewise.
5483 * testsuite/20_util/in_place/requirements.cc: Likewise.
5484 * testsuite/20_util/is_aggregate/incomplete_neg.cc: Likewise.
5485 * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
5487 * testsuite/20_util/is_aggregate/requirements/typedefs.cc:
5489 * testsuite/20_util/is_aggregate/value.cc: Likewise.
5490 * testsuite/20_util/is_invocable/83395.cc: Likewise.
5491 * testsuite/20_util/is_invocable/91456.cc: Likewise.
5492 * testsuite/20_util/is_invocable/requirements/explicit_instantiation.cc:
5494 * testsuite/20_util/is_invocable/requirements/typedefs.cc:
5496 * testsuite/20_util/is_invocable/value.cc: Likewise.
5497 * testsuite/20_util/is_literal_type/deprecated-1z.cc: Likewise.
5498 * testsuite/20_util/is_nothrow_constructible/94003.cc: Likewise.
5499 * testsuite/20_util/is_nothrow_invocable/83395.cc: Likewise.
5500 * testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation.cc:
5502 * testsuite/20_util/is_nothrow_invocable/requirements/typedefs.cc: Likewise.
5503 * testsuite/20_util/is_nothrow_invocable/value.cc: Likewise.
5504 * testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc:
5506 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
5508 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
5509 * testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc:
5511 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
5513 * testsuite/20_util/is_nothrow_swappable_with/value.cc:
5515 * testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc:
5517 * testsuite/20_util/is_swappable/requirements/typedefs.cc:
5519 * testsuite/20_util/is_swappable/value.cc: Likewise.
5520 * testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc:
5522 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc:
5524 * testsuite/20_util/is_swappable_with/value.cc: Likewise.
5525 * testsuite/20_util/logical_traits/83134.cc: Likewise.
5526 * testsuite/20_util/logical_traits/requirements/explicit_instantiation.cc:
5528 * testsuite/20_util/logical_traits/requirements/typedefs.cc:
5530 * testsuite/20_util/logical_traits/value.cc: Likewise.
5531 * testsuite/20_util/pair/cons/deduction.cc: Likewise.
5532 * testsuite/20_util/pair/swap_cxx17.cc: Likewise.
5533 * testsuite/20_util/ratio/requirements/ratio_equal_v.cc:
5535 * testsuite/20_util/reference_wrapper/83427.cc: Likewise.
5536 * testsuite/20_util/reference_wrapper/deduction.cc: Likewise.
5537 * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
5538 * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
5539 * testsuite/20_util/shared_ptr/requirements/weak_type.cc:
5541 * testsuite/20_util/time_point/arithmetic/constexpr.cc:
5543 * testsuite/20_util/time_point_cast/rounding.cc: Likewise.
5544 * testsuite/20_util/to_chars/3.cc: Likewise.
5545 * testsuite/20_util/to_chars/chars_format.cc: Likewise.
5546 * testsuite/20_util/to_chars/lwg3266.cc: Likewise.
5547 * testsuite/20_util/to_chars/requirements.cc: Likewise.
5548 * testsuite/20_util/tuple/78939.cc: Likewise.
5549 * testsuite/20_util/tuple/apply/1.cc: Likewise.
5550 * testsuite/20_util/tuple/apply/2.cc: Likewise.
5551 * testsuite/20_util/tuple/cons/deduction.cc: Likewise.
5552 * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
5553 * testsuite/20_util/tuple/make_from_tuple/2.cc: Likewise.
5554 * testsuite/20_util/tuple/swap_cxx17.cc: Likewise.
5555 * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
5556 * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: Likewise.
5557 * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
5559 * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
5560 * testsuite/20_util/void_t/1.cc: Likewise.
5561 * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
5562 * testsuite/24_iterators/container_access.cc: Likewise.
5563 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc:
5565 * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc:
5567 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
5569 * testsuite/24_iterators/range_access/range_access_cpp17_neg.cc:
5571 * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
5572 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc:
5574 * testsuite/26_numerics/headers/cmath/hypot.cc: Likewise.
5575 * testsuite/26_numerics/headers/cmath/special_functions_global.cc:
5577 * testsuite/26_numerics/lcm/1.cc: Likewise.
5578 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
5579 * testsuite/26_numerics/valarray/deduction.cc: Likewise.
5580 * testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc:
5582 * testsuite/27_io/manipulators/standard/char/quoted_sv.cc:
5584 * testsuite/27_io/manipulators/standard/wchar_t/quoted_sv.cc:
5586 * testsuite/27_io/types/4.cc: Likewise.
5587 * testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise.
5588 * testsuite/libstdc++-prettyprinters/91997.cc: Likewise.
5589 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
5591 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
5593 * testsuite/20_util/function_objects/searchers.cc: Remove
5594 -std=gnu++17 from dg-options directive.
5595 * testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc:
5597 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
5599 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc:
5601 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94831.cc:
5603 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc:
5605 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
5607 * testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc:
5609 * testsuite/25_algorithms/clamp/1.cc: Likewise.
5610 * testsuite/25_algorithms/clamp/2.cc: Likewise.
5611 * testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
5612 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc:
5614 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/pod.cc:
5616 * testsuite/25_algorithms/for_each/for_each_n.cc: Likewise.
5617 * testsuite/25_algorithms/for_each/for_each_n_debug.cc:
5619 * testsuite/25_algorithms/sample/1.cc: Likewise.
5620 * testsuite/25_algorithms/sample/2.cc: Likewise.
5621 * testsuite/25_algorithms/sample/3.cc: Likewise.
5622 * testsuite/25_algorithms/sample/81221.cc: Likewise.
5623 * testsuite/25_algorithms/search/searcher.cc: Likewise.
5624 * testsuite/26_numerics/exclusive_scan/1.cc: Likewise.
5625 * testsuite/26_numerics/inclusive_scan/1.cc: Likewise.
5626 * testsuite/26_numerics/reduce/1.cc: Likewise.
5627 * testsuite/26_numerics/reduce/2.cc: Likewise.
5628 * testsuite/26_numerics/transform_exclusive_scan/1.cc: Likewise.
5629 * testsuite/26_numerics/transform_inclusive_scan/1.cc: Likewise.
5630 * testsuite/26_numerics/transform_reduce/1.cc: Likewise.
5632 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
5634 * testsuite/23_containers/array/cons/deduction.cc: Remove
5635 -std=gnu++17 from dg-options directive.
5636 * testsuite/23_containers/array/cons/deduction_neg.cc: Likewise.
5637 * testsuite/23_containers/array/element_access/constexpr_c++17.cc:
5639 * testsuite/23_containers/array/requirements/constexpr_iter.cc:
5641 * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
5643 * testsuite/23_containers/deque/cons/deduction.cc: Likewise.
5644 * testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc:
5646 * testsuite/23_containers/forward_list/cons/deduction.cc:
5648 * testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc:
5650 * testsuite/23_containers/list/cons/deduction.cc: Likewise.
5651 * testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc:
5653 * testsuite/23_containers/map/cons/deduction.cc: Likewise.
5654 * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
5655 * testsuite/23_containers/map/modifiers/insert/83226.cc:
5657 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
5659 * testsuite/23_containers/map/modifiers/merge.cc: Likewise.
5660 * testsuite/23_containers/map/modifiers/try_emplace/1.cc:
5662 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
5663 * testsuite/23_containers/multimap/modifiers/extract.cc:
5665 * testsuite/23_containers/multimap/modifiers/merge.cc: Likewise.
5666 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
5667 * testsuite/23_containers/multiset/modifiers/extract.cc:
5669 * testsuite/23_containers/multiset/modifiers/merge.cc: Likewise.
5670 * testsuite/23_containers/priority_queue/deduction.cc: Likewise.
5671 * testsuite/23_containers/queue/deduction.cc: Likewise.
5672 * testsuite/23_containers/queue/members/emplace_cxx17_return.cc:
5674 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
5675 * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
5676 * testsuite/23_containers/set/modifiers/merge.cc: Likewise.
5677 * testsuite/23_containers/set/modifiers/node_swap.cc: Likewise.
5678 * testsuite/23_containers/stack/deduction.cc: Likewise.
5679 * testsuite/23_containers/stack/members/emplace_cxx17_return.cc:
5681 * testsuite/23_containers/unordered_map/cons/deduction.cc:
5683 * testsuite/23_containers/unordered_map/modifiers/extract.cc:
5685 * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
5687 * testsuite/23_containers/unordered_map/modifiers/merge.cc:
5689 * testsuite/23_containers/unordered_map/modifiers/try_emplace.cc:
5691 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
5693 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
5695 * testsuite/23_containers/unordered_multimap/modifiers/merge.cc:
5697 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
5699 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
5701 * testsuite/23_containers/unordered_multiset/modifiers/merge.cc:
5703 * testsuite/23_containers/unordered_set/cons/deduction.cc:
5705 * testsuite/23_containers/unordered_set/modifiers/extract.cc:
5707 * testsuite/23_containers/unordered_set/modifiers/merge.cc:
5709 * testsuite/23_containers/vector/bool/emplace_cxx17_return.cc:
5711 * testsuite/23_containers/vector/cons/89164_c++17.cc: Likewise.
5712 * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
5713 * testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc:
5716 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
5718 * testsuite/21_strings/basic_string/79162.cc: Remove
5719 -std=gnu++17 from dg-options directive.
5720 * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
5721 * testsuite/21_strings/basic_string/cons/char/79162.cc:
5723 * testsuite/21_strings/basic_string/cons/char/86138.cc:
5725 * testsuite/21_strings/basic_string/cons/char/9.cc: Likewise.
5726 * testsuite/21_strings/basic_string/cons/char/deduction.cc:
5728 * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc:
5730 * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
5731 * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc:
5733 * testsuite/21_strings/basic_string/cons/wchar_t/86138.cc:
5735 * testsuite/21_strings/basic_string/cons/wchar_t/9.cc: Likewise.
5736 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
5738 * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
5740 * testsuite/21_strings/basic_string/hash/hash.cc: Likewise.
5741 * testsuite/21_strings/basic_string/lwg2758.cc: Likewise.
5742 * testsuite/21_strings/basic_string/lwg2946.cc: Likewise.
5743 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
5745 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
5747 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
5749 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
5751 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
5753 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
5755 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
5757 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
5759 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
5761 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
5763 * testsuite/21_strings/basic_string/operations/data/char/2.cc:
5765 * testsuite/21_strings/basic_string/operations/data/char/86169.cc:
5767 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc:
5769 * testsuite/21_strings/basic_string/operations/find/char/5.cc:
5771 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
5773 * testsuite/21_strings/basic_string/operators/char/5.cc:
5775 * testsuite/21_strings/basic_string/operators/wchar_t/5.cc:
5777 * testsuite/21_strings/basic_string_view/capacity/1.cc:
5779 * testsuite/21_strings/basic_string_view/capacity/empty_neg.cc:
5781 * testsuite/21_strings/basic_string_view/cons/char/1.cc:
5783 * testsuite/21_strings/basic_string_view/cons/char/2.cc:
5785 * testsuite/21_strings/basic_string_view/cons/char/3.cc:
5787 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
5789 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
5791 * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc:
5793 * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc:
5795 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
5797 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
5799 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
5801 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
5803 * testsuite/21_strings/basic_string_view/element_access/char/constexpr.cc:
5805 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
5807 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
5809 * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
5811 * testsuite/21_strings/basic_string_view/element_access/char/front_back_constexpr.cc:
5813 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
5815 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
5817 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
5819 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
5821 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr.cc:
5823 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
5825 * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
5827 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
5829 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
5831 * testsuite/21_strings/basic_string_view/include.cc: Likewise.
5832 * testsuite/21_strings/basic_string_view/inserters/94051.cc:
5834 * testsuite/21_strings/basic_string_view/inserters/char/1.cc:
5836 * testsuite/21_strings/basic_string_view/inserters/char/2.cc:
5838 * testsuite/21_strings/basic_string_view/inserters/char/3.cc:
5840 * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
5842 * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
5844 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
5846 * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
5848 * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
5850 * testsuite/21_strings/basic_string_view/literals/types.cc:
5852 * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
5854 * testsuite/21_strings/basic_string_view/literals/values.cc:
5856 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
5858 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
5860 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
5862 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
5864 * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
5866 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
5868 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
5870 * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
5872 * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
5874 * testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc:
5876 * testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc:
5878 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
5880 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
5882 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc:
5884 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
5886 * testsuite/21_strings/basic_string_view/operations/copy/char/2.cc:
5888 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
5890 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc:
5892 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
5894 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
5896 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
5898 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
5900 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
5902 * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
5904 * testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc:
5906 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
5908 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
5910 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
5912 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
5914 * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
5916 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
5918 * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
5920 * testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc:
5922 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
5924 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
5926 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
5928 * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
5930 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
5932 * testsuite/21_strings/basic_string_view/operations/substr/char/83511.cc:
5934 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
5936 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/83511.cc:
5938 * testsuite/21_strings/basic_string_view/operators/char/2.cc:
5940 * testsuite/21_strings/basic_string_view/operators/char/89446.cc:
5942 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
5944 * testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc:
5946 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
5948 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
5950 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
5952 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
5954 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
5956 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
5958 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc:
5960 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
5962 * testsuite/21_strings/basic_string_view/requirements/traits_neg.cc:
5964 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
5966 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
5967 * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
5968 * testsuite/21_strings/char_traits/requirements/char/99181.cc:
5970 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
5972 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
5974 * testsuite/20_util/memory_resource/1.cc: Remove -std=gnu++17
5975 from dg-options directive.
5976 * testsuite/20_util/memory_resource/2.cc: Likewise.
5977 * testsuite/20_util/monotonic_buffer_resource/1.cc: Likewise.
5978 * testsuite/20_util/monotonic_buffer_resource/93208.cc:
5980 * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
5982 * testsuite/20_util/monotonic_buffer_resource/deallocate.cc:
5984 * testsuite/20_util/monotonic_buffer_resource/release.cc:
5986 * testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc:
5988 * testsuite/20_util/polymorphic_allocator/1.cc: Likewise.
5989 * testsuite/20_util/polymorphic_allocator/construct_pair.cc:
5991 * testsuite/20_util/polymorphic_allocator/resource.cc: Likewise.
5992 * testsuite/20_util/polymorphic_allocator/select.cc: Likewise.
5993 * testsuite/20_util/synchronized_pool_resource/allocate.cc:
5995 * testsuite/20_util/synchronized_pool_resource/allocate_single.cc:
5997 * testsuite/20_util/synchronized_pool_resource/cons.cc:
5999 * testsuite/20_util/synchronized_pool_resource/cons_single.cc:
6001 * testsuite/20_util/synchronized_pool_resource/is_equal.cc:
6003 * testsuite/20_util/synchronized_pool_resource/multithreaded.cc:
6005 * testsuite/20_util/synchronized_pool_resource/options.cc:
6007 * testsuite/20_util/synchronized_pool_resource/release.cc:
6009 * testsuite/20_util/synchronized_pool_resource/release_single.cc:
6011 * testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc:
6013 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
6015 * testsuite/20_util/unsynchronized_pool_resource/cons.cc:
6017 * testsuite/20_util/unsynchronized_pool_resource/is_equal.cc:
6019 * testsuite/20_util/unsynchronized_pool_resource/options.cc:
6021 * testsuite/20_util/unsynchronized_pool_resource/release.cc:
6023 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
6025 * testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise.
6026 * testsuite/23_containers/deque/types/pmr_typedefs_debug.cc:
6028 * testsuite/23_containers/forward_list/pmr_typedefs.cc:
6030 * testsuite/23_containers/forward_list/pmr_typedefs_debug.cc:
6032 * testsuite/23_containers/list/pmr_typedefs.cc: Likewise.
6033 * testsuite/23_containers/list/pmr_typedefs_debug.cc: Likewise.
6034 * testsuite/23_containers/map/pmr_typedefs.cc: Likewise.
6035 * testsuite/23_containers/map/pmr_typedefs_debug.cc: Likewise.
6036 * testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise.
6037 * testsuite/23_containers/multimap/pmr_typedefs_debug.cc:
6039 * testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise.
6040 * testsuite/23_containers/multiset/pmr_typedefs_debug.cc:
6042 * testsuite/23_containers/set/pmr_typedefs.cc: Likewise.
6043 * testsuite/23_containers/set/pmr_typedefs_debug.cc: Likewise.
6044 * testsuite/23_containers/unordered_map/pmr_typedefs.cc:
6046 * testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc:
6048 * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc:
6050 * testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc:
6052 * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc:
6054 * testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc:
6056 * testsuite/23_containers/unordered_set/pmr_typedefs.cc:
6058 * testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc:
6060 * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise.
6061 * testsuite/23_containers/vector/types/pmr_typedefs_debug.cc:
6063 * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
6065 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
6067 * testsuite/29_atomics/atomic/69769.cc: Remove -std=gnu++17 from
6069 * testsuite/29_atomics/atomic/is_always_lock_free.cc:
6070 * testsuite/29_atomics/atomic/requirements/typedefs.cc:
6071 * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc:
6072 * testsuite/29_atomics/atomic_integral/requirements/typedefs.cc:
6073 * testsuite/30_threads/lock_guard/cons/deduction.cc: Likewise.
6074 * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
6075 * testsuite/30_threads/scoped_lock/cons/deduction.cc: Likewise.
6076 * testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc:
6078 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc:
6080 * testsuite/30_threads/shared_lock/70766.cc: Likewise.
6081 * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
6082 * testsuite/30_threads/shared_mutex/cons/assign_neg.cc:
6084 * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise.
6085 * testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
6087 * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
6088 * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
6089 * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
6090 * testsuite/30_threads/unique_lock/cons/deduction.cc: Likewise.
6092 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
6094 * testsuite/20_util/any/assign/1.cc: Remove -std=gnu++17 from
6095 dg-options directive.
6096 * testsuite/20_util/any/assign/2.cc: Likewise.
6097 * testsuite/20_util/any/assign/emplace.cc: Likewise.
6098 * testsuite/20_util/any/assign/exception.cc: Likewise.
6099 * testsuite/20_util/any/assign/self.cc: Likewise.
6100 * testsuite/20_util/any/cons/1.cc: Likewise.
6101 * testsuite/20_util/any/cons/2.cc: Likewise.
6102 * testsuite/20_util/any/cons/90415.cc: Likewise.
6103 * testsuite/20_util/any/cons/92156.cc: Likewise.
6104 * testsuite/20_util/any/cons/aligned.cc: Likewise.
6105 * testsuite/20_util/any/cons/explicit.cc: Likewise.
6106 * testsuite/20_util/any/cons/in_place.cc: Likewise.
6107 * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
6108 * testsuite/20_util/any/make_any.cc: Likewise.
6109 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
6110 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
6111 * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
6112 * testsuite/20_util/any/misc/swap.cc: Likewise.
6113 * testsuite/20_util/any/modifiers/1.cc: Likewise.
6114 * testsuite/20_util/any/modifiers/83658.cc: Likewise.
6115 * testsuite/20_util/any/modifiers/92156.cc: Likewise.
6116 * testsuite/20_util/any/observers/type.cc: Likewise.
6117 * testsuite/20_util/any/requirements.cc: Likewise.
6118 * testsuite/20_util/any/typedefs.cc: Likewise.
6119 * testsuite/20_util/optional/77288.cc: Likewise.
6120 * testsuite/20_util/optional/84601.cc: Likewise.
6121 * testsuite/20_util/optional/assignment/1.cc: Likewise.
6122 * testsuite/20_util/optional/assignment/2.cc: Likewise.
6123 * testsuite/20_util/optional/assignment/3.cc: Likewise.
6124 * testsuite/20_util/optional/assignment/4.cc: Likewise.
6125 * testsuite/20_util/optional/assignment/5.cc: Likewise.
6126 * testsuite/20_util/optional/assignment/6.cc: Likewise.
6127 * testsuite/20_util/optional/assignment/7.cc: Likewise.
6128 * testsuite/20_util/optional/assignment/8.cc: Likewise.
6129 * testsuite/20_util/optional/assignment/9.cc: Likewise.
6130 * testsuite/20_util/optional/bad_access.cc: Likewise.
6131 * testsuite/20_util/optional/cons/77727.cc: Likewise.
6132 * testsuite/20_util/optional/cons/85642.cc: Likewise.
6133 * testsuite/20_util/optional/cons/copy.cc: Likewise.
6134 * testsuite/20_util/optional/cons/deduction.cc: Likewise.
6135 * testsuite/20_util/optional/cons/default.cc: Likewise.
6136 * testsuite/20_util/optional/cons/move.cc: Likewise.
6137 * testsuite/20_util/optional/cons/trivial.cc: Likewise.
6138 * testsuite/20_util/optional/cons/value.cc: Likewise.
6139 * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
6140 * testsuite/20_util/optional/constexpr/cons/default.cc:
6142 * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
6143 * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
6144 * testsuite/20_util/optional/constexpr/make_optional.cc:
6146 * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
6147 * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
6148 * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
6149 * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
6150 * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
6151 * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
6152 * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
6153 * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
6154 * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
6155 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
6156 * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
6157 * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
6158 * testsuite/20_util/optional/hash.cc: Likewise.
6159 * testsuite/20_util/optional/in_place.cc: Likewise.
6160 * testsuite/20_util/optional/make_optional.cc: Likewise.
6161 * testsuite/20_util/optional/nullopt.cc: Likewise.
6162 * testsuite/20_util/optional/observers/1.cc: Likewise.
6163 * testsuite/20_util/optional/observers/2.cc: Likewise.
6164 * testsuite/20_util/optional/observers/3.cc: Likewise.
6165 * testsuite/20_util/optional/observers/4.cc: Likewise.
6166 * testsuite/20_util/optional/observers/5.cc: Likewise.
6167 * testsuite/20_util/optional/observers/6.cc: Likewise.
6168 * testsuite/20_util/optional/relops/1.cc: Likewise.
6169 * testsuite/20_util/optional/relops/2.cc: Likewise.
6170 * testsuite/20_util/optional/relops/3.cc: Likewise.
6171 * testsuite/20_util/optional/relops/4.cc: Likewise.
6172 * testsuite/20_util/optional/relops/5.cc: Likewise.
6173 * testsuite/20_util/optional/relops/6.cc: Likewise.
6174 * testsuite/20_util/optional/relops/7.cc: Likewise.
6175 * testsuite/20_util/optional/requirements.cc: Likewise.
6176 * testsuite/20_util/optional/swap/1.cc: Likewise.
6177 * testsuite/20_util/optional/swap/2.cc: Likewise.
6178 * testsuite/20_util/optional/typedefs.cc: Likewise.
6179 * testsuite/20_util/variant/80165.cc: Likewise.
6180 * testsuite/20_util/variant/85183.cc: Likewise.
6181 * testsuite/20_util/variant/86874.cc: Likewise.
6182 * testsuite/20_util/variant/87431.cc: Likewise.
6183 * testsuite/20_util/variant/87619.cc: Likewise.
6184 * testsuite/20_util/variant/91807.cc: Likewise.
6185 * testsuite/20_util/variant/any.cc: Likewise.
6186 * testsuite/20_util/variant/compile.cc: Likewise.
6187 * testsuite/20_util/variant/deduction.cc: Likewise.
6188 * testsuite/20_util/variant/exception_safety.cc: Likewise.
6189 * testsuite/20_util/variant/hash.cc: Likewise.
6190 * testsuite/20_util/variant/index_type.cc: Likewise.
6191 * testsuite/20_util/variant/relops/89851.cc: Likewise.
6192 * testsuite/20_util/variant/relops/90008.cc: Likewise.
6193 * testsuite/20_util/variant/run.cc: Likewise.
6194 * testsuite/20_util/variant/visit.cc: Likewise.
6196 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
6198 * testsuite/27_io/basic_filebuf/open/char/path.cc: Remove
6199 -std=gnu++17 from dg-options directive.
6200 * testsuite/27_io/basic_fstream/cons/char/path.cc: Likewise.
6201 * testsuite/27_io/basic_fstream/open/char/path.cc: Likewise.
6202 * testsuite/27_io/basic_ifstream/cons/char/path.cc: Likewise.
6203 * testsuite/27_io/basic_ifstream/open/char/path.cc: Likewise.
6204 * testsuite/27_io/basic_ofstream/cons/char/path.cc: Likewise.
6205 * testsuite/27_io/basic_ofstream/open/char/path.cc: Likewise.
6206 * testsuite/27_io/filesystem/directory_entry/86597.cc: Likewise.
6207 * testsuite/27_io/filesystem/directory_entry/lwg3171.cc:
6209 * testsuite/27_io/filesystem/file_status/1.cc: Likewise.
6210 * testsuite/27_io/filesystem/filesystem_error/cons.cc: Likewise.
6211 * testsuite/27_io/filesystem/filesystem_error/copy.cc: Likewise.
6212 * testsuite/27_io/filesystem/iterators/91067.cc: Likewise.
6213 * testsuite/27_io/filesystem/iterators/caching.cc: Likewise.
6214 * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
6216 * testsuite/27_io/filesystem/iterators/pop.cc: Likewise.
6217 * testsuite/27_io/filesystem/iterators/recursion_pending.cc:
6219 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
6221 * testsuite/27_io/filesystem/operations/absolute.cc: Likewise.
6222 * testsuite/27_io/filesystem/operations/all.cc: Likewise.
6223 * testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
6224 * testsuite/27_io/filesystem/operations/copy.cc: Likewise.
6225 * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
6226 * testsuite/27_io/filesystem/operations/create_directories.cc:
6228 * testsuite/27_io/filesystem/operations/create_directory.cc:
6230 * testsuite/27_io/filesystem/operations/create_symlink.cc:
6232 * testsuite/27_io/filesystem/operations/current_path.cc:
6234 * testsuite/27_io/filesystem/operations/equivalent.cc: Likewise.
6235 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
6236 * testsuite/27_io/filesystem/operations/file_size.cc: Likewise.
6237 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
6238 * testsuite/27_io/filesystem/operations/last_write_time.cc:
6240 * testsuite/27_io/filesystem/operations/permissions.cc:
6242 * testsuite/27_io/filesystem/operations/proximate.cc: Likewise.
6243 * testsuite/27_io/filesystem/operations/read_symlink.cc:
6245 * testsuite/27_io/filesystem/operations/relative.cc: Likewise.
6246 * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
6247 * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
6248 * testsuite/27_io/filesystem/operations/rename.cc: Likewise.
6249 * testsuite/27_io/filesystem/operations/resize_file.cc:
6251 * testsuite/27_io/filesystem/operations/space.cc: Likewise.
6252 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
6253 * testsuite/27_io/filesystem/operations/symlink_status.cc:
6255 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
6257 * testsuite/27_io/filesystem/operations/weakly_canonical.cc:
6259 * testsuite/27_io/filesystem/path/append/path.cc: Likewise.
6260 * testsuite/27_io/filesystem/path/append/source.cc: Likewise.
6261 * testsuite/27_io/filesystem/path/assign/assign.cc: Likewise.
6262 * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
6263 * testsuite/27_io/filesystem/path/compare/compare.cc: Likewise.
6264 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
6265 * testsuite/27_io/filesystem/path/compare/path.cc: Likewise.
6266 * testsuite/27_io/filesystem/path/compare/strings.cc: Likewise.
6267 * testsuite/27_io/filesystem/path/concat/92853.cc: Likewise.
6268 * testsuite/27_io/filesystem/path/concat/94063.cc: Likewise.
6269 * testsuite/27_io/filesystem/path/concat/path.cc: Likewise.
6270 * testsuite/27_io/filesystem/path/concat/strings.cc: Likewise.
6271 * testsuite/27_io/filesystem/path/construct/80762.cc: Likewise.
6272 * testsuite/27_io/filesystem/path/construct/90281.cc: Likewise.
6273 * testsuite/27_io/filesystem/path/construct/90634.cc: Likewise.
6274 * testsuite/27_io/filesystem/path/construct/copy.cc: Likewise.
6275 * testsuite/27_io/filesystem/path/construct/default.cc:
6277 * testsuite/27_io/filesystem/path/construct/format.cc: Likewise.
6278 * testsuite/27_io/filesystem/path/construct/locale.cc: Likewise.
6279 * testsuite/27_io/filesystem/path/construct/range.cc: Likewise.
6280 * testsuite/27_io/filesystem/path/construct/string_view.cc:
6282 * testsuite/27_io/filesystem/path/decompose/extension.cc:
6284 * testsuite/27_io/filesystem/path/decompose/filename.cc:
6286 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
6288 * testsuite/27_io/filesystem/path/decompose/relative_path.cc:
6290 * testsuite/27_io/filesystem/path/decompose/root_directory.cc:
6292 * testsuite/27_io/filesystem/path/decompose/root_name.cc:
6294 * testsuite/27_io/filesystem/path/decompose/root_path.cc:
6296 * testsuite/27_io/filesystem/path/decompose/stem.cc: Likewise.
6297 * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc:
6299 * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise.
6300 * testsuite/27_io/filesystem/path/generation/normal.cc:
6302 * testsuite/27_io/filesystem/path/generation/normal2.cc:
6304 * testsuite/27_io/filesystem/path/generation/proximate.cc:
6306 * testsuite/27_io/filesystem/path/generation/relative.cc:
6308 * testsuite/27_io/filesystem/path/generic/94242.cc: Likewise.
6309 * testsuite/27_io/filesystem/path/generic/generic_string.cc:
6311 * testsuite/27_io/filesystem/path/generic/utf.cc: Likewise.
6312 * testsuite/27_io/filesystem/path/generic/wchar_t.cc: Likewise.
6313 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
6314 * testsuite/27_io/filesystem/path/itr/components.cc: Likewise.
6315 * testsuite/27_io/filesystem/path/itr/traversal.cc: Likewise.
6316 * testsuite/27_io/filesystem/path/modifiers/clear.cc: Likewise.
6317 * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
6319 * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc:
6321 * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
6323 * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
6325 * testsuite/27_io/filesystem/path/modifiers/swap.cc: Likewise.
6326 * testsuite/27_io/filesystem/path/native/alloc.cc: Likewise.
6327 * testsuite/27_io/filesystem/path/native/string-char8_t.cc:
6329 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
6330 * testsuite/27_io/filesystem/path/nonmember/append.cc: Likewise.
6331 * testsuite/27_io/filesystem/path/nonmember/cmp.cc: Likewise.
6332 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
6334 * testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
6335 * testsuite/27_io/filesystem/path/query/empty_neg.cc:
6336 * testsuite/27_io/filesystem/path/query/has_extension.cc:
6338 * testsuite/27_io/filesystem/path/query/has_filename.cc:
6340 * testsuite/27_io/filesystem/path/query/has_parent_path.cc:
6342 * testsuite/27_io/filesystem/path/query/has_relative_path.cc:
6344 * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
6346 * testsuite/27_io/filesystem/path/query/has_root_name.cc:
6348 * testsuite/27_io/filesystem/path/query/has_root_path.cc:
6350 * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
6351 * testsuite/27_io/filesystem/path/query/is_absolute.cc:
6353 * testsuite/27_io/filesystem/path/query/is_relative.cc:
6355 * testsuite/experimental/filesystem/path/construct/string_view.cc:
6358 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
6360 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc:
6361 Remove -std=gnu++17 from dg-options.
6362 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
6364 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc:
6366 * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc:
6368 * testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise.
6369 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
6371 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
6373 * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc:
6375 * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc:
6377 * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
6379 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
6381 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
6383 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
6385 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc:
6387 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc:
6389 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc:
6391 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
6393 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
6395 * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc:
6397 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
6399 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc:
6401 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
6403 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
6405 * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc:
6407 * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc:
6409 * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc:
6411 * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc:
6413 * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc:
6415 * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc:
6417 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
6419 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
6421 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc:
6423 * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc:
6425 * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
6427 * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc:
6429 * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
6431 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc:
6433 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
6435 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
6437 * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
6439 * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: Likewise.
6440 * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc:
6442 * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
6444 * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
6446 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc:
6448 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
6450 * testsuite/25_algorithms/pstl/alg_sorting/set.cc: Likewise.
6451 * testsuite/25_algorithms/pstl/alg_sorting/sort.cc: Likewise.
6452 * testsuite/25_algorithms/pstl/feature_test-2.cc: Likewise.
6453 * testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise.
6454 * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise.
6455 * testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise.
6456 * testsuite/25_algorithms/pstl/feature_test.cc: Likewise.
6457 * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc:
6459 * testsuite/26_numerics/pstl/numeric_ops/reduce.cc: Likewise.
6460 * testsuite/26_numerics/pstl/numeric_ops/scan.cc: Likewise.
6461 * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
6463 * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc:
6466 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
6468 * testsuite/20_util/scoped_allocator/69293_neg.cc: Add dg-error
6469 for additional errors in C++20.
6470 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
6472 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
6473 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
6475 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
6477 * testsuite/20_util/variant/compile.cc: Rename 'any' to avoid
6478 clash with std::any.
6480 2021-05-07 Jonathan Wakely <jwakely@redhat.com>
6482 * include/std/istream (__rvalue_stream_extraction_t): Replace
6483 use of __rval_streamable.
6484 * include/std/ostream (__rvalue_stream_insertion_t): Likewise.
6485 (__rval_streamable): Remove.
6486 (_Require_derived_from_ios_base, __derived_from_ios_base): New
6487 helper for checking constraints.
6488 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Fix
6489 reference to the wrong subclause of the standard.
6490 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
6492 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
6494 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
6496 * testsuite/27_io/basic_ostream/inserters_other/char/99692.cc:
6498 * testsuite/27_io/filesystem/path/io/dr2989.cc: Adjust pruned
6501 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
6503 * include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
6504 Improve static_assert messages.
6505 * testsuite/25_algorithms/copy/58982.cc: Adjust expected output.
6506 * testsuite/25_algorithms/copy_n/58982.cc: Likewise.
6508 2021-05-06 Patrick Palka <ppalka@redhat.com>
6510 * include/std/ranges (filter_view::_Iterator::base): Make the
6511 const& overload unconstrained and return a const reference as
6512 per LWG 3533. Make unconditionally noexcept.
6513 (transform_view::_Iterator::base): Likewise.
6514 (elements_view::_Iterator::base): Likewise.
6516 2021-05-06 Patrick Palka <ppalka@redhat.com>
6518 * include/bits/stl_iterator.h (move_iterator::base): Make the
6519 const& overload unconstrained and return a const reference as
6520 per LWG 3391. Make unconditionally noexcept.
6521 (counted_iterator::base): Likewise.
6522 * testsuite/24_iterators/move_iterator/lwg3391.cc: New test.
6523 * testsuite/24_iterators/move_iterator/move_only.cc: Adjust
6524 has_member_base concept to decay-copy the result of base().
6526 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
6528 * include/std/type_traits (remove_cvref_t): Define in terms of
6530 * testsuite/20_util/remove_cvref/value.cc: Check alias.
6532 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
6535 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
6537 * include/std/charconv (__from_chars_alnum): Pass unsigned
6538 char to std::isdigit.
6540 2021-05-05 Patrick Palka <ppalka@redhat.com>
6542 * include/bits/ranges_util.h (enable_borrowed_range<subrange>):
6543 Remove constraints on this partial specialization.
6544 * include/std/ranges (enable_borrowed_range<iota_view>):
6547 2021-05-05 Patrick Palka <ppalka@redhat.com>
6549 * include/std/ranges (transform_view::_Iterator::iter_swap):
6550 Remove as per LWG 3520.
6551 (join_view::_Iterator::iter_swap): Add indirectly_swappable
6552 constraint as per LWG 3517.
6554 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
6556 * testsuite/20_util/function_objects/invoke/3.cc: Check feature
6558 * testsuite/20_util/function_objects/invoke/version.cc: New test.
6560 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
6562 * include/std/charconv (__from_chars_alnum): Pass unsigned
6563 char to std::isdigit.
6565 2021-05-05 Corentin Gay <gay@adacore.com>
6567 * acinclude.m4: Add VxWorks-specific case for the
6568 configuration of ctypes.
6569 * configure: Regenerate.
6570 * config/locale/vxworks/ctype_members.cc: Add VxWorks-specific
6572 * config/os/vxworks/ctype_base.h: Adjust for VxWorks7+.
6573 * config/os/vxworks/ctype_configure_char.cc: Likewise.
6574 * config/os/vxworks/ctype_inline.h: Likewise.
6575 * testsuite/28_regex/traits/char/isctype.cc: Defines
6576 NEWLINE_IN_CLASS_BLANK if the target is VxWorks.
6577 * testsuite/28_regex/traits/wchar_t/isctype.cc: Likewise.
6579 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
6581 * include/std/future (promise::set_value): Check for existence
6582 of shared state before dereferncing it.
6583 (promise::set_exception, promise::set_value_at_thread_exit)
6584 (promise::set_exception_at_thread_exit): Likewise.
6585 (promise<R&>::set_value, promise<R&>::set_exception)
6586 (promise<R&>::set_value_at_thread_exit)
6587 (promise<R&>::set_exception_at_thread_exit): Likewise.
6588 (promise<void>::set_value, promise<void>::set_exception)
6589 (promise<void>::set_value_at_thread_exit)
6590 (promise<void>::set_exception_at_thread_exit): Likewise.
6591 * testsuite/30_threads/promise/members/at_thread_exit2.cc:
6592 Remove unused variable.
6594 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
6596 * include/bits/basic_string.h (basic_string(const CharT*, const A&)):
6597 Do not do arithmetic on null pointer.
6599 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
6601 * include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
6602 (find_key_pointer(key_const_reference, false_type))
6603 (find_key_pointer(key_const_reference, true_type)): Do not
6604 dereference null pointer.
6606 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
6608 * testsuite/20_util/from_chars/3.cc: Use unsigned type to avoid
6610 * testsuite/24_iterators/reverse_iterator/2.cc: Do not add
6611 non-zero value to null pointer.
6612 * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc:
6613 Use past-the-end iterator for result.
6614 * testsuite/25_algorithms/move_backward/69478.cc: Likewise.
6615 * testsuite/25_algorithms/move_backward/93872.cc: Likewise.
6617 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
6620 * include/std/variant (__get_t): New alias template yielding the
6621 return type of std::get<N> on a variant.
6622 (__visit_result_t): New alias template yielding the result of
6624 (__same_types): Move into namespace __detail::__variant.
6625 (__check_visitor_results): Likewise. Use __invoke_result_t and
6627 (__check_visitor_result): Remove.
6628 (visit): Use __visit_result_t for return type.
6629 * testsuite/20_util/variant/100384.cc: New test.
6631 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
6633 * acinclude.m4 (GLIBCXX_ENABLE_INT128_FLOAT128): Remove
6634 checks for __int128 and rename to GLIBCXX_ENABLE_FLOAT128.
6635 * config.h.in: Regenerate.
6636 * configure: Regenerate.
6637 * configure.ac: Adjust to use GLIBCXX_ENABLE_FLOAT128.
6638 * include/bits/random.h (_Select_uint_least_t<s, 1>):
6639 Use __SIZEOF_INT128__ to decide whether to use __int128.
6640 * include/std/charconv (__to_chars_unsigned_type): Likewise.
6642 2021-05-03 Gerald Pfeifer <gerald@pfeifer.com>
6644 * doc/xml/manual/ctype.xml: Move unix.org reference to https.
6645 * doc/html/manual/facets.html: Regenerate.
6647 2021-04-30 Patrick Palka <ppalka@redhat.com>
6649 * include/std/ranges (__detail::__non_propating_cache): Define
6651 (join_view): Remove constraints on the value and reference types
6652 of the wrapped iterator type as per P2328.
6653 (join_view::_Iterator::_M_satisfy): Adjust as per P2328.
6654 (join_view::_Iterator::operator++): Likewise.
6655 (join_view::_M_inner): Use __non_propating_cache as per P2328.
6656 Remove now-redundant use of __maybe_present_t.
6657 * testsuite/std/ranges/adaptors/join.cc: Include <array>.
6660 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
6662 * include/bits/basic_string.h (__cpp_lib_constexpr_string):
6663 Only define for C++17 and later.
6664 * include/std/version (__cpp_lib_semaphore): Fix condition
6665 to match the one in <semaphore>.
6667 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
6669 * acinclude.m4 (GLIBCXX_CHECK_INT64_T): Delete.
6670 * config.h.in: Regenerate.
6671 * configure: Regenerate.
6672 * configure.ac: Do not use GLIBCXX_CHECK_INT64_T.
6673 * include/bits/postypes.h: Remove include of <stdint.h> and
6674 definition/undefinition of the __STDC_LIMIT_MACROS and
6675 __STDC_CONSTANT_MACROS macros.
6676 (streamoff): Use __INT64_TYPE__ if defined.
6678 2021-04-30 Patrick Palka <ppalka@redhat.com>
6680 * include/std/ranges (split_view::_InnerIter::operator++):
6681 Depend on _Base instead of _Vp directly, as per LWG 3532.
6683 2021-04-30 Patrick Palka <ppalka@redhat.com>
6685 * include/bits/ranges_util.h (subrange::subrange): Avoid
6686 list-initialization in delegating constructor.
6687 * include/std/ranges (single_view): Replace implicit guide
6688 with explicit deduction guide that decays its argument.
6689 (_Single::operator()): Avoid CTAD when constructing the
6691 (_Iota::operator()): Avoid list-initialization.
6692 (__detail::__can_filter_view, _Filter::operator()): Likewise.
6693 (__detail::__can_transform_view, _Transform::operator()): Likewise.
6694 (take_view::begin): Likewise.
6695 (__detail::__can_take_view, _Take::operator()): Likewise.
6696 (__detail::__can_take_while_view, _TakeWhile::operator()): Likewise.
6697 (__detail::__can_drop_view, _Drop::operator()): Likewise.
6698 (__detail::__can_drop_while_view, _DropWhile::operator()): Likewise.
6699 (split_view::split_view): Use views::single when initializing
6701 (__detail::__can_split_view, _Split::operator()): Avoid
6702 list-initialization.
6703 (_Counted::operator()): Likewise.
6704 * testsuite/std/ranges/p2367.cc: New test.
6706 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
6709 * include/bits/basic_ios.tcc (basic_ios::copyfmt): use
6711 * include/bits/basic_string.tcc (basic_string::swap)
6712 (basic_string::assign): Likewise.
6713 * include/bits/deque.tcc (deque::operator=(const deque&)):
6715 * include/bits/stl_tree.h (_Rb_tree::operator=(const * _Rb_tree&)):
6717 * include/bits/vector.tcc (vector::operator=(const vector&)):
6720 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
6722 * include/std/istream (operator>>(Istream&&, x&)): Simplify, as
6724 * include/std/ostream (operator<<(Ostream&&, const x&)):
6726 * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc:
6727 Adjust dg-error pattern.
6728 * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc:
6730 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Define
6731 is_extractable trait to replace std::__is_extractable. Make it
6732 work with rvalue streams as well as lvalues, to replace f() and
6733 g() helper functions.
6734 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
6736 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
6737 Define is_insertable trait to replace std::__is_insertable. Make
6738 it work with rvalue streams as well as lvalues, to replace f()
6739 and g() helper functions.
6740 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
6742 * testsuite/27_io/filesystem/path/io/dr2989.cc: Prune additional
6743 errors from new constraints.
6744 * testsuite/27_io/rvalue_streams-2.cc: Remove PR 80675 checks,
6745 which are no longer expected to compile.
6746 * testsuite/27_io/rvalue_streams.cc: Adjust existing test.
6747 Verify LWG 1203 changes.
6749 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
6752 * include/experimental/socket (__basic_socket_impl::set_option)
6753 (__basic_socket_impl::get_option) [!_GLIBCXX_HAVE_SYS_SOCKET_H]:
6754 Just set error code.
6755 * testsuite/experimental/net/socket/socket_base.cc: CHeck
6756 for <sys/socket.h> not <socket.h>.
6758 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
6763 * testsuite/experimental/net/internet/address/v4/comparisons.cc:
6764 Use new effective-target keyword.
6765 * testsuite/experimental/net/internet/address/v4/cons.cc:
6767 * testsuite/experimental/net/internet/address/v4/creation.cc:
6769 * testsuite/experimental/net/internet/address/v4/members.cc:
6771 * testsuite/experimental/net/internet/address/v6/members.cc:
6773 * testsuite/experimental/net/internet/resolver/base.cc:
6775 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
6777 * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
6779 * testsuite/experimental/net/internet/socket/opt.cc:
6781 * testsuite/experimental/net/internet/tcp.cc:
6783 * testsuite/experimental/net/internet/udp.cc:
6785 * testsuite/lib/libstdc++.exp (check_effective_target_net_ts_ip):
6786 New proc to check net_ts_ip et.
6788 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
6791 * testsuite/20_util/pair/requirements/structural.cc: New test.
6793 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
6795 * include/bits/stl_pair.h (pair) [__cplusplus > 202002]: Add
6796 new definitions for constructors and assignment operators using
6797 concepts for constraints.
6798 * testsuite/20_util/pair/cons/99957.cc: Disable for C++20 and
6800 * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust
6801 expected error messages to also match C++20 errors.
6803 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
6806 * include/bits/stl_pair.h (_PCC::_MoveCopyPair, _PCC::_CopyMovePair):
6807 Combine and replace with ...
6808 (_PCC::_DeprConsPair): New SFINAE helper function.
6809 (pair): Merge preprocessor blocks so that all C++03 members
6810 are defined together at the end.
6811 (pair::pair(const _T1&, _U2&&), pair::pair(_U1&&, const _T2&)):
6812 Replace _T1 and _T2 parameters with __null_ptr_constant and
6814 * testsuite/20_util/pair/40925.cc: Use nullptr instead of 0.
6815 * testsuite/20_util/pair/cons/explicit_construct.cc: Likewise.
6816 * testsuite/20_util/pair/cons/99957.cc: New test.
6818 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
6820 * include/bits/basic_string.h (__cpp_lib_constexpr_string): Define.
6821 * include/std/version (__cpp_lib_constexpr_string): Define.
6822 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
6823 Check for __cpp_lib_constexpr_string.
6824 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
6826 * testsuite/21_strings/char_traits/requirements/version.cc: New test.
6828 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
6830 * doc/Makefile.am (stamp-pdf-doxygen): Improve comment about
6831 dealing with errors. Use '@' to prevent shell command being
6833 * doc/Makefile.in: Regenerate.
6835 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
6838 * include/bits/std_thread.h (thread::hardware_concurrency): Add
6839 missing noexcept to inline definition for non-gthreads targets.
6841 2021-04-28 Patrick Palka <ppalka@redhat.com>
6847 * include/bits/ranges_algo.h (__search_n_fn::operator()): Give
6848 the __value_comp lambda an explicit bool return type.
6849 (__is_permutation_fn::operator()): Give the __proj_scan local
6850 variable auto&& return type. Give the __comp_scan lambda an
6851 explicit bool return type.
6852 (__remove_fn::operator()): Give the __pred lambda an explicit
6854 (__partition_fn::operator()): Don't std::move __first twice
6855 when returning an empty subrange.
6856 (__min_fn::operator()): Don't std::move __comp.
6857 (__max_fn::operator()): Likewise.
6858 (__minmax_fn::operator()): Likewise.
6860 2021-04-27 Patrick Palka <ppalka@redhat.com>
6863 * include/std/ranges (join_view::_Iterator::operator++): Correct
6864 the return type of the lambda to avoid returning a copy of
6865 _M_parent->_M_inner.
6866 * testsuite/std/ranges/adaptors/join.cc (test10): New test.
6868 2021-04-27 Jakub Jelinek <jakub@redhat.com>
6871 2021-04-22 Jakub Jelinek <jakub@redhat.com>
6874 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
6876 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
6879 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
6881 * include/experimental/internet (address_v6::bytes_type): Adjust
6883 (basic_endpoint): Define _M_is_v6() to put all checks for
6884 AF_INET6 in one place.
6885 (basic_endpoint::resize): Simplify.
6886 (operator==(const tcp&, const tcp&)): Add constexpr and noexcept.
6887 (operator!=(const tcp&, const tcp&)): Likewise.
6888 (operator==(const udp&, const udp&)): Likewise.
6889 (operator!=(const udp&, const udp&)): Likewise.
6890 * testsuite/experimental/net/internet/tcp.cc: New test.
6891 * testsuite/experimental/net/internet/udp.cc: New test.
6893 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
6896 * include/experimental/internet (resolver_errc, resolver_category())
6897 (make_error_code, make_error_condition): Define unconditionally,
6898 only make enumerators and use of gai_strerror depend on the
6899 availability of <netdb.h>.
6900 (address_v4::to_string): Use correct constant for string length.
6901 (address_v4::to_string, address_v6::to_string): Define
6902 unconditionally, throw if unsupported.
6903 (make_address_v4, make_address_v6): Define unconditionally.
6904 Return an error if unsupported.
6905 (tcp, udp, v6_only, unicast::hops, multicast::*): Define
6907 * testsuite/experimental/net/internet/socket/opt.cc: Check for
6908 <netinet/in.h> and <netinet/tcp.h> before using types from
6911 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
6914 * include/experimental/internet (resolver_base::flags):
6915 Define overloaded operators as hidden friends.
6916 * include/experimental/socket (socket_base::message_flags):
6919 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
6921 * include/experimental/internet (tcp::no_delay, v6_only)
6922 (unicast::hops, multicast::hops, multicast::enable_loopback):
6923 Change access of base class and static data members. Add
6924 using-declaration for __socket_crtp::operator=(_Tp).
6925 (multicast::__mcastopt): New type.
6926 (multicast::join_group, multicast::leave_group): Derive from
6927 __mcastopt for common implementation.
6928 * include/experimental/socket: Add comment.
6929 * testsuite/experimental/net/internet/socket/opt.cc: New test.
6930 * testsuite/experimental/net/socket/socket_base.cc: Check for
6931 protected constructor/destructor of socket_base. Check for
6932 explicit constructors of socket option classes.
6934 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
6936 * include/experimental/bits/net.h (__socket_base): Add
6937 bool template parameter to allow BooleanSocketOption and
6938 IntegerSocketOption to have different __socket_base<int>
6940 (__socket_base<bool>): Adjust base class.
6941 (__socket_base<int>): Add partial specialization.
6942 (__socket_crtp::operator=(_Tp)): Add noexcept-specifier.
6943 * include/experimental/socket (socket_base::broadcast)
6944 (socket_base::debug, socket_base::do_not_route)
6945 (socket_base::keep_alive, socket_base::linger)
6946 (socket_base::out_of_band_inline)
6947 (socket_base::receive_buffer_size)
6948 (socket_base::receive_low_watermark)
6949 (socket_base::reuse_address, socket_base::send_buffer_size)
6950 (socket_base::send_low_watermark): Add using-declaration for
6951 __socket_crtp::operator=(_Tp).
6952 * testsuite/experimental/net/socket/socket_base.cc: Check
6953 properties of socket option types.
6955 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
6957 * include/experimental/internet (resolver_base::flags): Remove
6958 enumerators. Initialize constants directly with desired values.
6959 Make all operators constexpr and noexcept.
6960 * testsuite/experimental/net/internet/resolver/base.cc: Use
6961 __gnu_test::test_bitmask_values for bitmask type. Check
6962 construction and destruction is protected.
6964 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
6966 * include/bits/semaphore_base.h: Include <exception> and <errno.h>.
6968 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
6971 * include/experimental/internet (net::ip::make_error_code)
6972 (net::ip::make_error_condition, net::ip::make_network_v4)
6973 (net::ip::operator==(const udp&, const udp&)): Add 'inline'.
6975 2021-04-24 David Edelsohn <dje.gcc@gmail.com>
6977 * testsuite/lib/dg-options.exp (atomic_link_flags): New.
6978 (add_options_for_libatomic): Use atomic_link_flags.
6980 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
6983 * include/experimental/io_context (io_context): Define
6984 dummy_pollfd type so that most member functions still compile
6985 without <poll.h> and struct pollfd.
6987 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
6989 * include/experimental/io_context (io_context::async_wait): Add
6991 * include/experimental/socket (basic_socket::async_connect):
6992 Cast wait_type constant to int.
6993 (basic_datagram_socket::async_receive): Likewise.
6994 (basic_datagram_socket::async_receive_from): Likewise.
6995 (basic_datagram_socket::async_send): Likewise.
6996 (basic_datagram_socket::async_send_to): Likewise.
6997 (basic_stream_socket::async_receive): Likewise.
6998 (basic_stream_socket::async_send): Likewise. Use io_context
6999 parameter directly, instead of via an executor.
7000 (basic_socket_acceptor::async_accept): Likewise.
7002 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
7004 * include/experimental/socket (socket_base::shutdown_type):
7005 (socket_base::wait_type, socket_base::message_flags):
7006 Remove enumerators. Initialize constants directly with desired
7008 (socket_base::message_flags): Make all operators constexpr and
7010 * testsuite/util/testsuite_common_types.h (test_bitmask_values):
7012 * testsuite/experimental/net/socket/socket_base.cc: New test.
7014 2021-04-22 David Edelsohn <dje.gcc@gmail.com>
7016 * config/os/aix/atomicity.h: Delete.
7018 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
7020 * include/bits/atomic_timed_wait.h (__cond_wait_until_impl):
7021 Handle system_clock as well as steady_clock.
7022 * testsuite/30_threads/semaphore/try_acquire_for.cc: Re-enable.
7023 * testsuite/30_threads/semaphore/try_acquire_until.cc:
7026 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
7028 * testsuite/30_threads/semaphore/try_acquire_posix.cc: Add
7029 options for libatomic.
7031 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
7033 * config/os/gnu-linux/os_defines.h: Fix type in comment.
7035 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
7038 * include/bits/shared_ptr.h (allocate_shared): Assert that _Tp
7039 is not an array type.
7040 * include/bits/shared_ptr_base.h (__allocate_shared): Likewise.
7041 * testsuite/20_util/shared_ptr/creation/99006.cc: New test.
7043 2021-04-22 Thomas Rodgers <rodgert@twrodgers.com>
7045 * include/bits/atomic_wait.h: Always notify waiters in the
7046 case of 'bare' address notification.
7048 2021-04-22 Jakub Jelinek <jakub@redhat.com>
7051 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
7053 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
7056 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
7059 * include/bits/semaphore_base.h: Remove #error.
7060 * include/std/semaphore: Do not define anything unless one of
7061 the implementations is available.
7063 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
7065 * include/bits/semaphore_base.h: Always reload __old in
7066 __atomic_semaphore::_S_do_try_acquire().
7067 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
7070 2021-04-21 Philippe Blain <levraiphilippeblain@gmail.com>
7071 Jonathan Wakely <jwakely@redhat.com>
7074 * python/Makefile.am: Install libstdc++*-gdb.py more robustly.
7075 * python/Makefile.in: Regenerate.
7077 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
7079 * include/bits/semaphore_base.h: Add missing _M_try_acquire()
7080 member to __platform_wait.
7082 2021-04-21 Jonathan Wakely <jwakely@redhat.com>
7084 * include/std/latch: Replace tab characters in license text.
7085 * include/std/semaphore: Likewise.
7087 2021-04-21 Jakub Jelinek <jakub@redhat.com>
7090 * acinclude.m4: For POSIX semaphores AC_DEFINE HAVE_POSIX_SEMAPHORE
7091 rather than _GLIBCXX_HAVE_POSIX_SEMAPHORE.
7092 * configure: Regenerated.
7093 * config.h.in: Regenerated.
7095 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
7097 * testsuite/30_threads/semaphore/try_acquire_for.cc: Disable
7098 test for targets not using futexes for semaphores.
7099 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
7100 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
7101 Disable for all targets.
7103 2021-04-20 Thomas Rodgers <trodgers@redhat.com>
7105 * include/Makefile.am: Add new <bits/this_thread_sleep.h> header.
7106 * include/Makefile.in: Regenerate.
7107 * include/bits/this_thread_sleep.h: New file.
7108 * include/bits/atomic_base.h: Adjust all calls
7109 to __atomic_wait/__atomic_notify for new call signatures.
7110 * include/bits/atomic_timed_wait.h: Extensive rewrite.
7111 * include/bits/atomic_wait.h: Likewise.
7112 * include/bits/semaphore_base.h: Adjust all calls
7113 to __atomic_wait/__atomic_notify for new call signatures.
7114 * include/std/atomic: Likewise.
7115 * include/std/barrier: Likewise.
7116 * include/std/latch: Likewise.
7117 * include/std/semaphore: Likewise.
7118 * include/std/thread (this_thread::sleep_for)
7119 (this_thread::sleep_until): Move to new header.
7120 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Simplify
7122 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
7123 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
7124 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
7125 * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
7126 * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
7127 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Likewise.
7129 2021-04-20 Patrick Palka <ppalka@redhat.com>
7132 * include/bits/stl_iterator.h (__detail::__move_iter_cat):
7134 (move_iterator): Derive from the above in C++20 in order to
7135 conditionally define iterator_category as per P2259.
7136 (move_iterator::__base_cat): No longer used, so remove.
7137 (move_iterator::iterator_category): Remove in C++20.
7138 (__detail::__common_iter_use_postfix_proxy): Define.
7139 (common_iterator::_Proxy): Rename to ...
7140 (common_iterator:__arrow_proxy): ... this.
7141 (common_iterator::__postfix_proxy): Define as per P2259.
7142 (common_iterator::operator->): Adjust.
7143 (common_iterator::operator++): Adjust as per P2259.
7144 (iterator_traits<common_iterator>::_S_iter_cat): Define.
7145 (iterator_traits<common_iterator>::iterator_category): Change as
7147 (__detail::__counted_iter_value_type): Define.
7148 (__detail::__counted_iter_concept): Define.
7149 (__detail::__counted_iter_cat): Define.
7150 (counted_iterator): Derive from the above three classes in order
7151 to conditionally define value_type, iterator_concept and
7152 iterator category respectively as per P2259.
7153 (counted_iterator::operator->): Define as per P2259.
7154 (incrementable_traits<counted_iterator>): Remove as per P2259.
7155 (iterator_traits<counted_iterator>): Adjust as per P2259.
7156 * include/std/ranges (__detail::__iota_view_iter_cat): Define.
7157 (iota_view::_Iterator): Derive from the above in order to
7158 conditionally define iterator_category as per P2259.
7159 (iota_view::_S_iter_cat): Rename to ...
7160 (iota_view::_S_iter_concept): ... this.
7161 (iota_view::iterator_concept): Use it to apply LWG 3291 changes.
7162 (iota_view::iterator_category): Remove.
7163 (__detail::__filter_view_iter_cat): Define.
7164 (filter_view::_Iterator): Derive from the above in order to
7165 conditionally define iterator_category as per P2259.
7166 (filter_view::_Iterator): Move to struct __filter_view_iter_cat.
7167 (filter_view::_Iterator::iterator_category): Remove.
7168 (transform_view::_Base): Define.
7169 (transform_view::__iter_cat): Define.
7170 (transform_view::_Iterator): Derive from the above in order to
7171 conditionally define iterator_category as per P2259.
7172 (transform_view::_Iterator::_Base): Just alias
7173 transform_view::_Base.
7174 (transform_view::_Iterator::_S_iter_cat): Move to struct
7175 transform_view::__iter_cat.
7176 (transform_view::_Iterator::iterator_category): Remove.
7177 (transform_view::_Sentinel::_Base): Just alias
7178 transform_view::_Base.
7179 (join_view::_Base): Define.
7180 (join_view::_Outer_iter): Define.
7181 (join_view::_Inner_iter): Define.
7182 (join_view::_S_ref_is_glvalue): Define.
7183 (join_view::__iter_cat): Define.
7184 (join_view::_Iterator): Derive from it in order to conditionally
7185 define iterator_category as per P2259.
7186 (join_view::_Iterator::_Base): Just alias join_view::_Base.
7187 (join_view::_Iterator::_S_ref_is_glvalue): Just alias
7188 join_view::_S_ref_is_glvalue.
7189 (join_view::_Iterator::_S_iter_cat): Move to struct
7190 transform_view::__iter_cat.
7191 (join_view::_Iterator::_Outer_iter): Just alias
7192 join_view::_Outer_iter.
7193 (join_view::_Iterator::_Inner_iter): Just alias
7194 join_view::_Inner_iter.
7195 (join_view::_Iterator::iterator_category): Remove.
7196 (join_view::_Sentinel::_Base): Just alias join_view::_Base.
7197 (__detail::__split_view_outer_iter_cat): Define.
7198 (__detail::__split_view_inner_iter_cat): Define.
7199 (split_view::_Base): Define.
7200 (split_view::_Outer_iter): Derive from __split_view_outer_iter_cat
7201 in order to conditionally define iterator_category as per P2259.
7202 (split_view::_Outer_iter::iterator_category): Remove.
7203 (split_view::_Inner_iter): Derive from __split_view_inner_iter_cat
7204 in order to conditionally define iterator_category as per P2259.
7205 (split_view::_Inner_iter::_S_iter_cat): Move to
7206 __split_view_inner_iter_cat.
7207 (split_view::_Inner_iter::iterator_category): Remove.
7208 (elements_view::_Base): Define.
7209 (elements_view::__iter_cat): Define.
7210 (elements_view::_Iterator): Derive from the above in order to
7211 conditionall define iterator_category as per P2259.
7212 (elements_view::_Iterator::_Base): Just alias
7213 elements_view::_Base.
7214 (elements_view::_Iterator::_S_iter_concept)
7215 (elements_view::_Iterator::iterator_concept): Define as per
7217 (elements_view::_Iterator::iterator_category): Remove.
7218 (elements_view::_Sentinel::_Base): Just alias
7219 elements_view::_Base.
7220 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
7221 Adjust constraints on iterator_traits<counted_iterator>.
7222 * testsuite/std/ranges/p2259.cc: New test.
7224 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
7227 * include/std/charconv (__cpp_lib_to_chars): Define
7229 * include/std/version (__cpp_lib_to_chars): Likewise..
7230 * testsuite/20_util/from_chars/4.cc: Only check feature test
7231 macro, not _GLIBCXX_HAVE_USELOCALE.
7232 * testsuite/20_util/from_chars/5.cc: Likewise.
7233 * testsuite/20_util/from_chars/6.cc: Likewise.
7234 * testsuite/20_util/to_chars/long_double.cc: Likewise.
7236 2021-04-20 Jakub Jelinek <jakub@redhat.com>
7238 * testsuite/util/testsuite_abi.cc (compare_symbols): If any symbol
7239 versions with _IEEE128_ substring are found, set ieee_version_found
7240 to true. Ignore missing symbols with _IEEE128_ in version name if
7241 !ieee_version_found. Use i->first as version_name instead of
7242 i->second.version_name if the latter is empty.
7243 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
7245 2021-04-19 H.J. Lu <hjl.tools@gmail.com>
7247 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
7250 2021-04-17 Jakub Jelinek <jakub@redhat.com>
7252 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
7253 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
7255 2021-04-17 Jakub Jelinek <jakub@redhat.com>
7257 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
7258 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
7259 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
7260 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
7261 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
7262 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
7264 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
7266 * testsuite/lib/dg-options.exp (add_options_for_libatomic): Also
7267 add libatomic options for 32-bit sparc*-*-linux-gnu.
7269 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
7272 * libsupc++/Makefile.am: Add atomicity.cc here.
7273 * src/c++98/Makefile.am: Remove it from here.
7274 * libsupc++/Makefile.in: Regenerate.
7275 * src/c++98/Makefile.in: Regenerate.
7276 * testsuite/18_support/exception_ptr/96657.cc: New test.
7278 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
7281 * include/std/bit: Only include <ext/numeric_traits.h> for
7282 hosted build, use <limits> otherwise.
7284 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
7286 * doc/xml/manual/backwards_compatibility.xml: Remove porting
7287 notes for libg++ and libstdc++-v2, and bibliography.
7288 * doc/html/*: Regenerated.
7290 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
7293 * include/bits/ranges_util.h (__detail::__iterator_sentinel_pair):
7294 Remove helper concept.
7295 (subrange(_Pr), subrange(Pr, __make_unsigned_like<...>)): Remove
7296 deduction guides, as per LWG 3404.
7297 * testsuite/std/ranges/subrange/lwg3282_neg.cc: Check that class
7298 template argument deduction fails.
7300 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
7302 * testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc:
7303 Adjust expected error for C++20 mode.
7304 * testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc:
7307 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
7310 * testsuite/17_intro/headers/c++1998/49745.cc: Include all
7311 standard headers and XFAIL for effective-target c++20.
7313 2021-04-09 François Dumont <fdumont@gcc.gnu.org>
7316 * include/debug/helper_functions.h (__can_advance(_InputIterator,
7317 const std::pair<_Diff, _Distance_precision>&, int)): New.
7318 (__can_advance(const _Safe_iterator<>&,
7319 const std::pair<_Diff, _Distance_precision>&, int)): New.
7320 * include/debug/macros.h (__glibcxx_check_can_increment_dist): New,
7322 (__glibcxx_check_can_increment_range): Adapt to use latter.
7323 (__glibcxx_check_can_decrement_range): Likewise.
7324 * include/debug/safe_iterator.h
7325 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
7327 (__can_advance(const _Safe_iterator<>&,
7328 const std::pair<_Diff, _Distance_precision>&, int)): New.
7329 * include/debug/safe_iterator.tcc
7330 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
7332 (_Safe_iterator<>::_M_valid_range(const _Safe_iterator<>&,
7333 std::pair<difference_type, _Distance_precision>&, bool)): Adapt for
7335 (__copy_move_a): Adapt to use __glibcxx_check_can_increment_dist.
7336 (__copy_move_backward_a): Likewise.
7337 (__equal_aux): Likewise.
7338 * include/debug/stl_iterator.h (__can_advance(const std::reverse_iterator<>&,
7339 const std::pair<_Diff, _Distance_precision>&, int)): New.
7340 (__can_advance(const std::move_iterator<>&,
7341 const std::pair<_Diff, _Distance_precision>&, int)): New.
7342 * testsuite/25_algorithms/copy/debug/99402.cc: New test.
7344 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
7347 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()): Fix
7348 to be a valid constexpr function in C++11.
7349 * testsuite/23_containers/unordered_set/cons/99985.cc: New test.
7351 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
7353 * include/bits/fs_fwd.h: Fix doxygen group command.
7354 * include/bits/streambuf_iterator.h: Likewise.
7355 * include/bits/uses_allocator_args.h: Likewise.
7356 * include/std/memory: Likewise.
7357 * include/tr1/complex: Likewise.
7359 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
7361 * include/bits/basic_string.h: Tweak doxygen comment.
7363 2021-04-08 Patrick Palka <ppalka@redhat.com>
7365 * include/std/ranges (__detail::find): Define.
7366 (split_view::_OuterIter::operator++): Apply proposed resolution
7368 * testsuite/std/ranges/adaptors/split.cc (test10): New test.
7370 2021-04-08 Patrick Palka <ppalka@redhat.com>
7372 * include/std/ranges (__detail::find_if): Simplify.
7373 (__detail::find_if_not): Likewise.
7374 (__detail::min): Remove.
7375 (__detail::mismatch): Simplify.
7376 (take_view::size): Use std::min instead of __detail::min.
7378 2021-04-08 Patrick Palka <ppalka@redhat.com>
7380 * include/std/ranges (__detail::__returnable_element): New
7382 (elements_view): Use this concept in its constraints. Add
7383 missing private access specifier.
7384 (elements_view::_S_get_element): Define as per LWG 3502.
7385 (elements_view::operator*, elements_view::operator[]): Use
7387 (elements_view::operator++): Remove unnecessary constraint
7389 * testsuite/std/ranges/adaptors/elements.cc (test05): New test.
7391 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
7393 * doc/Makefile.am (stamp-pdf-doxygen): Also grep for
7394 out-of-memory error in log file.
7395 * doc/Makefile.in: Regenerate.
7397 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
7399 * configure: Regenerate.
7401 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
7403 * include/bits/random.h: Fix doxygen group commands.
7404 * include/bits/regex_constants.h: Likewise.
7405 * include/tr1/random.h: Likewise.
7407 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
7409 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()):
7410 New function to determine noexcept-specifier for move
7412 (_Hashtable): Use _S_nothrow_move() on move constructors.
7413 * testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc:
7414 Correct static assertion message.
7415 * testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc:
7417 * testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc:
7419 * testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc:
7422 2021-04-08 Patrick Palka <ppalka@redhat.com>
7425 * testsuite/20_util/to_chars/long_double.cc: Don't run the test
7426 on targets without a large long double. XFAIL the execution on
7427 targets with a non-conforming printf.
7429 2021-04-08 Patrick Palka <ppalka@redhat.com>
7432 * include/std/ranges (__adaptor::__maybe_refwrap): Remove.
7433 (__adaptor::__adaptor_invocable): New concept.
7434 (__adaptor::__adaptor_partial_app_viable): New concept.
7435 (__adaptor::_RangeAdaptorClosure): Rewrite, turning it into a
7436 non-template base class.
7437 (__adaptor::_RangeAdaptor): Rewrite, turning it into a CRTP base
7439 (__adaptor::_Partial): New class template that represents
7440 partial application of a range adaptor non-closure.
7441 (__adaptor::__pipe_invocable): New concept.
7442 (__adaptor::_Pipe): New class template.
7443 (__detail::__can_ref_view): New concept.
7444 (__detail::__can_subrange): New concept.
7445 (all): Replace the lambda here with ...
7446 (_All): ... this functor. Add appropriate constraints.
7447 (__detail::__can_filter_view): New concept.
7448 (filter, _Filter): As in all/_All.
7449 (__detail::__can_transform): New concept.
7450 (transform, _Transform): As in all/_All.
7451 (__detail::__can_take_view): New concept.
7452 (take, _Take): As in all/_All.
7453 (__detail::__can_take_while_view): New concept.
7454 (take_while, _TakeWhile): As in all/_All.
7455 (__detail::__can_drop_view): New concept.
7456 (drop, _Drop): As in all/_All.
7457 (__detail::__can_drop_while_view): New concept.
7458 (drop_while, _DropWhile): As in all/_All.
7459 (__detail::__can_join_view): New concept.
7460 (join, _Join): As in all/_All.
7461 (__detail::__can_split_view): New concept.
7462 (split, _Split): As in all/_All. Rename template parameter
7464 (__detail::__already_common): New concept.
7465 (__detail::__can_common_view): New concept.
7466 (common, _Common): As in all/_All.
7467 (__detail::__can_reverse_view): New concept.
7468 (reverse, _Reverse): As in all/_All.
7469 (__detail::__can_elements_view): New concept.
7470 (elements, _Elements): As in all/_All.
7471 (keys, values): Adjust.
7472 * testsuite/std/ranges/adaptors/99433.cc: New test.
7473 * testsuite/std/ranges/adaptors/all.cc: No longer expect that
7474 adding empty range adaptor closure objects to a pipeline doesn't
7475 increase the size of the pipeline.
7477 * testsuite/std/ranges/adaptors/common.cc (test03): New test.
7478 * testsuite/std/ranges/adaptors/drop.cc (test09): New test.
7479 * testsuite/std/ranges/adaptors/drop_while.cc (test04): New test.
7480 * testsuite/std/ranges/adaptors/elements.cc (test04): New test.
7481 * testsuite/std/ranges/adaptors/filter.cc (test06): New test.
7482 * testsuite/std/ranges/adaptors/join.cc (test09): New test.
7483 * testsuite/std/ranges/adaptors/p2281.cc: New test.
7484 * testsuite/std/ranges/adaptors/reverse.cc (test07): New test.
7485 * testsuite/std/ranges/adaptors/split.cc (test01, test04):
7488 * testsuite/std/ranges/adaptors/split_neg.cc (test01): Adjust
7489 expected error message.
7490 (test02): Likewise. Extend test.
7491 * testsuite/std/ranges/adaptors/take.cc (test06): New test.
7492 * testsuite/std/ranges/adaptors/take_while.cc (test05): New test.
7493 * testsuite/std/ranges/adaptors/transform.cc (test07, test08):
7496 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
7498 * include/std/string_view: Adjust Doxygen @file comment.
7500 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
7502 * include/std/type_traits (is_scoped_enum<T>): Constrain partial
7503 specialization to not match incomplete enum types. Use a
7504 requires-expression instead of instantiating is_convertible.
7505 (is_scoped_enum<const T>): Add as workaround for PR c++/99968.
7506 * testsuite/20_util/is_scoped_enum/value.cc: Check with
7507 incomplete types and opaque-enum-declarations.
7509 2021-04-07 Jonathan Wakely <jwakely@redhat.com>
7512 * src/c++17/fs_path.cc (path::_M_split_cmpts): Do not call
7513 non-const member on _M_pathname, to avoid copy-on-write.
7514 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
7515 Check construction from strings that might be shared.
7517 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
7519 * include/bits/move.h (forward, move, move_if_noexcept)
7520 (addressof): Add _GLIBCXX_NODISCARD.
7521 * include/bits/ranges_cmp.h (identity::operator()): Add
7522 nodiscard attribute.
7523 * include/c_global/cstddef (to_integer): Likewise.
7524 * include/std/bit (bit_cast): Likewise.
7525 * include/std/utility (as_const, to_underlying): Likewise.
7527 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
7529 * include/bits/move.h (forward): Change static_assert message
7530 to be unambiguous about what must be true.
7531 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
7532 * testsuite/20_util/forward/f_neg.cc: Likewise.
7534 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
7536 * include/bits/alloc_traits.h: Use markdown for code font.
7537 * include/bits/basic_string.h: Fix @param names.
7538 * include/bits/max_size_type.h: Remove period after @file.
7539 * include/bits/regex.h: Fix duplicate @retval names, and rename.
7540 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp: Add
7541 group open to match existing group close.
7542 * include/ext/pb_ds/priority_queue.hpp: Add blank line before group
7545 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
7547 * include/bits/atomic_base.h: Fix doxygen group close.
7548 * include/bits/basic_ios.h: Likewise.
7549 * include/bits/forward_list.h: Likewise.
7550 * include/bits/fs_dir.h: Likewise.
7551 * include/bits/fs_ops.h: Likewise.
7552 * include/bits/fs_path.h: Likewise.
7553 * include/bits/functional_hash.h: Likewise.
7554 * include/bits/gslice.h: Likewise.
7555 * include/bits/gslice_array.h: Likewise.
7556 * include/bits/hashtable_policy.h: Likewise.
7557 * include/bits/indirect_array.h: Likewise.
7558 * include/bits/locale_classes.h: Likewise.
7559 * include/bits/locale_facets.h: Likewise.
7560 * include/bits/locale_facets_nonio.h: Likewise.
7561 * include/bits/mask_array.h: Likewise.
7562 * include/bits/refwrap.h: Likewise.
7563 * include/bits/regex.h: Likewise.
7564 * include/bits/regex_automaton.h: Likewise.
7565 * include/bits/regex_compiler.h: Likewise.
7566 * include/bits/regex_constants.h: Likewise.
7567 * include/bits/regex_error.h: Likewise.
7568 * include/bits/regex_executor.h: Likewise.
7569 * include/bits/regex_scanner.h: Likewise.
7570 * include/bits/shared_ptr.h: Likewise.
7571 * include/bits/shared_ptr_atomic.h: Likewise.
7572 * include/bits/shared_ptr_base.h: Likewise.
7573 * include/bits/slice_array.h: Likewise.
7574 * include/bits/specfun.h: Likewise.
7575 * include/bits/std_function.h: Likewise.
7576 * include/bits/std_mutex.h: Likewise.
7577 * include/bits/stl_deque.h: Likewise.
7578 * include/bits/stl_iterator.h: Likewise.
7579 * include/bits/stl_iterator_base_types.h: Likewise.
7580 * include/bits/stl_map.h: Likewise.
7581 * include/bits/stl_multimap.h: Likewise.
7582 * include/bits/stl_multiset.h: Likewise.
7583 * include/bits/stl_numeric.h: Likewise.
7584 * include/bits/stl_pair.h: Likewise.
7585 * include/bits/stl_set.h: Likewise.
7586 * include/bits/stl_uninitialized.h: Likewise.
7587 * include/bits/stream_iterator.h: Likewise.
7588 * include/bits/streambuf_iterator.h: Likewise.
7589 * include/bits/unique_ptr.h: Likewise.
7590 * include/bits/unordered_map.h: Likewise.
7591 * include/bits/unordered_set.h: Likewise.
7592 * include/decimal/decimal: Likewise.
7593 * include/experimental/any: Likewise.
7594 * include/experimental/array: Likewise.
7595 * include/experimental/bits/fs_dir.h: Likewise.
7596 * include/experimental/bits/fs_fwd.h: Likewise.
7597 * include/experimental/bits/fs_ops.h: Likewise.
7598 * include/experimental/bits/fs_path.h: Likewise.
7599 * include/experimental/buffer: Likewise.
7600 * include/experimental/internet: Likewise.
7601 * include/experimental/optional: Likewise.
7602 * include/experimental/propagate_const: Likewise.
7603 * include/experimental/socket: Likewise.
7604 * include/ext/pb_ds/assoc_container.hpp: Likewise.
7605 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp:
7607 * include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp: Likewise.
7608 * include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp: Likewise.
7609 * include/ext/pb_ds/detail/types_traits.hpp: Likewise.
7610 * include/ext/pb_ds/exception.hpp: Likewise.
7611 * include/ext/pb_ds/priority_queue.hpp: Likewise.
7612 * include/ext/pb_ds/tag_and_trait.hpp: Likewise.
7613 * include/ext/random: Likewise.
7614 * include/std/any: Likewise.
7615 * include/std/atomic: Likewise.
7616 * include/std/bitset: Likewise.
7617 * include/std/chrono: Likewise.
7618 * include/std/complex: Likewise.
7619 * include/std/condition_variable: Likewise.
7620 * include/std/fstream: Likewise.
7621 * include/std/future: Likewise.
7622 * include/std/iostream: Likewise.
7623 * include/std/istream: Likewise.
7624 * include/std/mutex: Likewise.
7625 * include/std/numeric: Likewise.
7626 * include/std/ostream: Likewise.
7627 * include/std/ratio: Likewise.
7628 * include/std/shared_mutex: Likewise.
7629 * include/std/stdexcept: Likewise.
7630 * include/std/streambuf: Likewise.
7631 * include/std/system_error: Likewise.
7632 * include/std/thread: Likewise.
7633 * include/std/valarray: Likewise.
7634 * include/std/variant: Likewise.
7635 * include/tr1/cmath: Likewise.
7636 * include/tr1/regex: Likewise.
7637 * include/tr2/dynamic_bitset: Likewise.
7638 * libsupc++/atomic_lockfree_defines.h: Likewise.
7639 * libsupc++/exception: Likewise.
7640 * libsupc++/exception.h: Likewise.
7641 * libsupc++/exception_ptr.h: Likewise.
7642 * libsupc++/nested_exception.h: Likewise.
7644 2021-03-31 Alexandre Oliva <oliva@adacore.com>
7646 * testsuite/30_threads/future/members/poll.cc: Use faster
7647 after-ready call in the calibration loop.
7649 2021-03-29 Jonathan Wakely <jwakely@redhat.com>
7651 * doc/xml/manual/status_cxx2017.xml: Adjust link for PSTL.
7652 * doc/html/manual/status.html: Regenerate.
7654 2021-03-28 François Dumont <fdumont@gcc.gnu.org>
7656 * include/debug/forward_list
7657 (forward_list(forward_list&&, const allocator_type&)): Add noexcept qualification.
7658 * include/debug/list (list(list&&, const allocator_type&)): Likewise and add
7659 call to safe container allocator aware move constructor.
7660 * include/debug/vector (vector(vector&&, const allocator_type&)):
7661 Fix noexcept qualification.
7662 * testsuite/23_containers/forward_list/cons/noexcept_move_construct.cc:
7663 Add allocator-extended move constructor noexceot qualification check.
7664 * testsuite/23_containers/list/cons/noexcept_move_construct.cc: Likewise.
7666 2021-03-26 Jonathan Wakely <jwakely@redhat.com>
7668 * src/c++11/random.cc (USE_LCG): Define when a pseudo-random
7670 [USE_LCG] (bad_seed, construct_lcg_at, destroy_lcg_at, __lcg):
7671 New helper functions and callback.
7672 (random_device::_M_init): Add 'prng' and 'all' enumerators.
7673 Replace switch with fallthrough with a series of 'if' statements.
7674 [USE_LCG]: Construct an lcg_type engine and use __lcg when cpuid
7676 (random_device::_M_init_pretr1) [USE_MT19937]: Accept "prng"
7678 (random_device::_M_getval): Check for callback unconditionally
7679 and always pass _M_file pointer.
7680 * testsuite/26_numerics/random/random_device/85494.cc: Remove
7681 effective-target check. Use new random_device_available helper.
7682 * testsuite/26_numerics/random/random_device/94087.cc: Likewise.
7683 * testsuite/26_numerics/random/random_device/cons/default-cow.cc:
7684 Remove effective-target check.
7685 * testsuite/26_numerics/random/random_device/cons/default.cc:
7687 * testsuite/26_numerics/random/random_device/cons/token.cc: Use
7688 new random_device_available helper. Test "prng" token.
7689 * testsuite/util/testsuite_random.h (random_device_available):
7690 New helper function.
7692 2021-03-25 François Dumont <fdumont@gcc.gnu.org>
7694 * include/debug/string
7695 (basic_string(const basic_string&, const _Alloc&)): Define even if !_GLIBCXX_USE_CXX11_ABI.
7696 (basic_string(basic_string&&, const _Alloc&)): Likewise and add noexcept qualification.
7697 (basic_string<>::erase): Adapt to take __const_iterator.
7698 (basic_string(const _CharT*, const _Allocator&)): Remove assign call.
7699 (basic_string<>::insert(const_iterator, _InputIte, _InputIte)): Try to
7700 remove iterator debug layer even if !_GLIBCXX_USE_CXX11_ABI.
7701 [_GLIBCXX_USE_CHAR8_T] (__gnu_debug::u8string): New.
7702 (__gnu_debug::u16string, __gnu_debug::u32string): New.
7703 (std::hash<__gnu_debug::basic_string<>>): New partial specialization.
7704 (std::__is_fast_hash<__gnu_debug::basic_string<>>): Likewise.
7705 * testsuite/util/exception/safety.h
7706 (erase_base<__gnu_debug::basic_string<>>): New partial specialization.
7707 (insert_base<__gnu_debug::basic_string<>>): Likewise.
7708 * testsuite/util/testsuite_container_traits.h (traits<__gnu_debug::basic_string<>>):
7709 New partial specialization.
7710 * testsuite/21_strings/basic_string/hash/debug.cc: New test.
7711 * testsuite/21_strings/basic_string/requirements/citerators.cc:
7712 Add test on __gnu_debug::string.
7713 * testsuite/21_strings/basic_string/requirements/dr438/constructor.cc: Likewise.
7714 * testsuite/21_strings/basic_string/requirements/exception/basic.cc: Likewise.
7715 * testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc:
7717 * testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc:
7719 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
7721 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
7723 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
7725 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
7727 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
7729 * testsuite/21_strings/basic_string/requirements/typedefs.cc: Likewise.
7731 2021-03-25 Jakub Jelinek <jakub@redhat.com>
7734 * testsuite/18_support/source_location/consteval.cc (main): Adjust
7735 expected column numbers.
7736 * testsuite/18_support/source_location/1.cc (main): Likewise.
7738 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
7740 * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare malloc.
7742 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
7744 * testsuite/util/exception/safety.h (setup_base::generate):
7745 Support seeding random engine.
7746 (erase_point, erase_range): Adjust range of random numbers to
7747 ensure dereferenceable iterators are used where required.
7748 (generation_prohibited::run): Do not try to erase from empty
7750 * testsuite/util/testsuite_containergen.h (test_containers):
7751 Support seeding random engine.
7753 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
7755 * testsuite/std/ranges/adaptors/reverse.cc: Replace duplicated
7756 line with a check that uses the const being/end overloads.
7758 2021-03-23 Moritz Sichert <sichert@in.tum.de>
7760 * include/std/ranges (reverse_view::begin, reverse_view::end):
7761 Qualify make_reverse_iterator calls to avoid ADL.
7762 * testsuite/std/ranges/adaptors/reverse.cc: Test that
7763 views::reverse works when make_reverse_iterator is defined
7764 in an associated namespace.
7766 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
7768 * include/bits/c++config (_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT):
7769 Do not define when compiling with Clang.
7771 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
7773 * include/std/string_view (basic_string_view(Range&&)): Define new
7774 constructor and deduction guide.
7775 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: New test.
7776 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: New test.
7778 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
7780 * include/bits/range_access.h (begin(T (&)[N]), end(T (&)[N])):
7781 Add missing 'noexcept' as per LWG 2280.
7782 (rbegin(T (&)[N]), rend(T (&)[N]), rbegin(initializer_list<T>))
7783 (rend(initializer_list<T>)): Add 'noexcept' as per LWG 3537.
7784 * testsuite/24_iterators/range_access/range_access.cc: Check for
7785 expected noexcept specifiers. Check result types of generic
7786 std::begin and std::end overloads.
7787 * testsuite/24_iterators/range_access/range_access_cpp14.cc:
7788 Check for expected noexcept specifiers.
7789 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
7792 2021-03-19 Jonathan Wakely <jwakely@redhat.com>
7794 * include/std/type_traits (is_scoped_enum): Define.
7795 * include/std/version (__cpp_lib_is_scoped_enum): Define.
7796 * testsuite/20_util/is_scoped_enum/value.cc: New test.
7797 * testsuite/20_util/is_scoped_enum/version.cc: New test.
7799 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
7802 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Remove
7803 std::once_flag symbols.
7804 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Likewise.
7805 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
7806 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
7808 * config/abi/pre/gnu.ver: Likewise.
7809 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
7810 (struct __once_flag_compat): Remove.
7811 (_ZNSt9once_flag11_M_activateEv): Remove.
7812 (_ZNSt9once_flag9_M_finishEb): Remove.
7814 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
7817 * include/std/mutex [_GLIBCXX_HAVE_LINUX_FUTEX] (once_flag):
7818 Revert to pthread_once_t implementation.
7819 [_GLIBCXX_HAVE_LINUX_FUTEX] (call_once): Likewise.
7820 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
7821 (struct __once_flag_compat): New type matching the reverted
7822 implementation of once_flag using futexes.
7823 (once_flag::_M_activate): Remove, replace with ...
7824 (_ZNSt9once_flag11_M_activateEv): ... alias symbol.
7825 (once_flag::_M_finish): Remove, replace with ...
7826 (_ZNSt9once_flag9_M_finishEb): ... alias symbol.
7827 * testsuite/30_threads/call_once/66146.cc: Removed.
7829 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
7831 * testsuite/17_intro/names.cc: Exclude j from the list
7832 of test symbols for Darwin.
7834 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
7836 * config/os/bsd/darwin/ppc-extra.ver: Add matching for
7837 to_chars and from_chars for long double.
7839 2021-03-15 Patrick Palka <ppalka@redhat.com>
7841 * include/bits/max_size_type.h (__max_size_type::operator _Tp):
7843 (__max_size_type::operator++): Define.
7844 (__max_size_type::operator--): Likewise.
7845 (__max_size_type::operator<=>): Conditionally define (in place
7846 of the other comparison operators).
7847 (__max_diff_type::operator _Tp): Fix formatting.
7848 (__max_diff_type::operator++): Define.
7849 (__max_diff_type::operator--): Likewise.
7850 (__max_diff_type::operator<=>): Conditionally define (in place
7851 of the other comparison operators).
7852 * testsuite/std/ranges/iota/max_size_type.cc (test01): Test
7853 these operator overloads.
7855 2021-03-15 Caroline Tice <cmtice@google.com>
7858 * src/Makefile.am (AM_CXXFLAGS_PRE, AM_CXXFLAGS): Add
7859 AM_CXXFLAGS_PRE with the old definition of AM_CXXFLAGS; make
7860 AM_CXXFLAGS to be AM_CXXFLAGS_PRE with '-fvtable-verify=std'
7862 * src/Makefile.in: Regenerate.
7864 2021-03-11 Patrick Palka <ppalka@redhat.com>
7866 * src/c++17/floating_to_chars.cc: Simplify the file as if
7867 __SIZEOF_INT128__ is always defined.
7868 [!defined __SIZEOF_INT128__]: Include "uint128_t.h". Define
7869 a base-10 to_chars overload for the uint128_t class type.
7870 * src/c++17/uint128_t.h: New file.
7871 * testsuite/20_util/to_chars/long_double.cc: No longer expect an
7872 execution FAIL on targets that have a large long double type
7875 2021-03-11 Patrick Palka <ppalka@redhat.com>
7877 * src/c++17/ryu/LOCAL_PATCHES: Update.
7878 * src/c++17/ryu/d2s_intrinsics.h: Don't define uint128_t.
7879 * src/c++17/ryu/generic_128.h: Likewise.
7880 * src/c++17/ryu/ryu_generic_128.h (struct floating_decimal_128):
7881 Use uint128_t instead of __uint128_t.
7882 (generic_binary_to_decimal): Likewise.
7884 2021-03-11 Patrick Palka <ppalka@redhat.com>
7886 * src/c++17/ryu/LOCAL_PATCHES: New file.
7888 2021-03-11 Patrick Palka <ppalka@redhat.com>
7890 * src/c++17/floating_to_chars.cc (uint128_t): New conditionally
7891 defined alias of unsigned __int128.
7892 (floating_type_traits_binary128::mantissa_t): Use uint128_t
7893 instead of unsigned __int128.
7894 (floating_type_traits<long double>::mantissa_t)
7895 [LONG_DOUBLE_KIND == LDK_IBM128]: Likewise.
7896 (get_ieee_repr): Likewise. Make casts from uint_t to mantissa_t
7897 and uint32_t explicit. Simplify the extraction of mantissa,
7898 exponent and sign bit.
7900 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
7902 * include/std/barrier (barrier::arrival_token): New move-only
7903 class that encapsulates the underlying token value.
7905 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
7907 * python/libstdcxx/v6/printers.py (find_type): Use tag attribute
7908 instead of unqualified() method.
7910 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
7913 * include/std/stop_token (_Stop_state_t::_M_release_ownership):
7914 Use acq_rel memory ordering.
7916 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
7919 * src/c++17/fs_dir.cc (recursive_directory_iterator): Use new
7920 helper function to check for permission denied errors.
7921 * src/filesystem/dir.cc (recursive_directory_iterator):
7923 * src/filesystem/dir-common.h (is_permission_denied_error): New
7926 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
7929 * include/bits/random.h (normal_distribution): Use
7930 default-initializer for _M_saved and _M_saved_available.
7932 2021-03-10 John David Anglin <danglin@gcc.gnu.org>
7934 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Add options to
7935 link with libatomic.
7936 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
7937 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
7938 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
7939 * testsuite/30_threads/barrier/arrive.cc: Likewise.
7940 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
7941 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
7942 * testsuite/30_threads/barrier/completion.cc: Likewise.
7943 * testsuite/30_threads/latch/3.cc: Likewise.
7944 * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
7945 * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
7946 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
7948 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
7951 * include/bits/align.h: Include debug/assertions.h.
7952 * include/bits/codecvt.h: Include bits/c++config.h.
7953 * include/bits/enable_special_members.h: Likewise.
7954 * include/bits/erase_if.h: Likewise.
7955 * include/bits/functional_hash.h: Include <type_traits>.
7956 * include/bits/invoke.h: Include bits/move.h.
7957 * include/bits/ostream_insert.h: Include bits/exception_defines.h.
7958 * include/bits/parse_numbers.h: Include <type_traits>.
7959 * include/bits/predefined_ops.h: Include bits/c++config.h.
7960 * include/bits/range_access.h: Include bits/stl_iterator.h.
7961 * include/bits/stl_bvector.h: Do not include bits/stl_vector.h.
7962 * include/bits/stl_iterator.h: Include bits/stl_iterator_base_types.h.
7963 * include/bits/stl_uninitialized.h: Include bits/stl_algobase.h.
7964 * include/bits/uniform_int_dist.h: Include bits/concept_check.h.
7965 * include/bits/unique_lock.h: Include bits/std_mutex.h.
7966 * include/debug/assertions.h: Include bits/c++config.h.
7968 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
7970 * include/bits/ranges_cmp.h (__eq_builtin_ptr_cmp): Remove.
7971 (ranges::equal_to, ranges::not_equal_to): Do not constrain
7972 with __eq_builtin_ptr_cmp.
7973 (ranges::less, ranges::greater, ranges::less_equal)
7974 (ranges::greater_equal): Do not constrain with
7975 __less_builtin_ptr_cmp.
7976 * libsupc++/compare (compare_three_way): Do not constrain with
7977 __3way_builtin_ptr_cmp.
7978 * testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc: Moved to...
7979 * testsuite/18_support/comparisons/object/lwg3530.cc: ...here.
7980 * testsuite/20_util/function_objects/range.cmp/lwg3530.cc: New test.
7982 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
7984 * testsuite/std/time/syn_c++20.cc: Enable synopsis checks for
7985 C++20 calendar types.
7987 2021-03-06 Jakub Jelinek <jakub@redhat.com>
7990 * include/std/bit (__rotl, __rotr): Add optimized variants for power of
7991 two _Nd which the compiler can pattern match the rotates.
7993 2021-03-04 Jonathan Wakely <jwakely@redhat.com>
7996 * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
7997 Make storage larger than required. Verify no write to the last
7999 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
8002 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8004 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
8005 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
8007 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
8008 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
8011 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8013 * include/experimental/bits/simd.h: Replace reserved _X, _B by
8015 * include/experimental/bits/simd_builtin.h: Likewise.
8016 * include/experimental/bits/simd_x86.h: Likewise.
8018 2021-02-27 Jonathan Wakely <jwakely@redhat.com>
8021 * include/std/chrono (year_month_day::_M_days_since_epoch()):
8022 Convert chrono::month and chrono::day to unsigned before
8023 converting to uint32_t.
8025 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
8027 * include/std/chrono (year_month_day::_S_from_days): Perform
8028 all calculations with type uint32_t.
8030 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
8032 * doc/xml/manual/abi.xml: Document versioning for GCC 11.
8033 * doc/html/manual/abi.html: Regenerate.
8035 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
8038 * testsuite/27_io/headers/cstdio/types_std.cc: Use pointer to
8039 FILE instead of FILE.
8041 2021-02-25 Andreas Schwab <schwab@suse.de>
8043 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
8044 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
8045 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
8046 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
8048 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
8051 * include/std/chrono (year_month_day::_S_from_days): Cast long
8054 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
8056 * include/std/utility (to_underlying): Define.
8057 * include/std/version (__cpp_lib_to_underlying): Define.
8058 * testsuite/20_util/to_underlying/1.cc: New test.
8059 * testsuite/20_util/to_underlying/version.cc: New test.
8061 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
8064 * src/c++17/floating_to_chars.cc (sprintf_ld): Add extra args
8065 before value to be printed.
8067 2021-02-24 Patrick Palka <ppalka@redhat.com>
8069 * src/c++17/floating_to_chars.cc (__floating_to_chars_precision):
8070 Relax the condition that guards the printf code path to accept
8071 F128_type as well as long double.
8073 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
8075 * include/std/chrono (year_month_day_last:day): New
8078 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
8080 * include/std/chrono (year::is_leap): New implementation.
8081 * testsuite/std/time/year/2.cc: New test.
8083 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
8085 * include/std/chrono (year_month_day::_M_days_since_epoch):
8087 * testsuite/std/time/year_month_day/4.cc: New test.
8089 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
8091 * include/std/chrono (year_month_day::_S_from_days): New
8093 * testsuite/std/time/year_month_day/3.cc: New test.
8095 2021-02-24 Patrick Palka <ppalka@redhat.com>
8098 * testsuite/20_util/to_chars/long_double.cc: Include <optional>.
8099 (test01): Simplify verifying the nearby values by using a
8100 2-iteration loop and a dedicated output buffer to check that the
8101 nearby values are different. Factor out the printf-based
8102 verification into a local function, and check that the leading
8103 hex digits agree before comparing to the output of printf. Also
8104 verify the output by round-tripping it through from_chars.
8106 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
8109 * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Do not match to_chars
8110 symbols for long double arguments mangled as 'g'.
8111 * config/os/gnu-linux/ldbl-extra.ver: Likewise.
8112 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Likewise.
8113 * src/c++17/Makefile.am [GLIBCXX_LDBL_ALT128_COMPAT_TRUE]:
8114 Use -mabi=ibmlongdouble for floating_to_chars.cc.
8115 * src/c++17/Makefile.in: Regenerate.
8116 * src/c++17/floating_to_chars.cc (floating_type_traits_binary128):
8117 New type defining type traits of IEEE binary128 format.
8118 (floating_type_traits<__float128>): Define specialization.
8119 (floating_type_traits<long double>): Define in terms of
8120 floating_type_traits_binary128 when appropriate.
8121 (floating_to_shortest_scientific): Handle __float128.
8122 (sprintf_ld): New function template for printing a long double
8123 or __ieee128 value using sprintf.
8124 (__floating_to_chars_shortest, __floating_to_chars_precision):
8126 (to_chars): Define overloads for __float128.
8128 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
8130 * testsuite/17_intro/names.cc: Undefine 'u' on powerpc*-linux*.
8132 2021-02-23 Martin Sebor <msebor@redhat.com>
8135 * libsupc++/dyncast.cc (__dynamic_cast): Return null when
8136 first argument is null.
8138 2021-02-23 Jakub Jelinek <jakub@redhat.com>
8141 * testsuite/21_strings/char_traits/requirements/char/99181.cc: New
8144 2021-02-23 Jakub Jelinek <jakub@redhat.com>
8147 * include/bits/char_traits.h (char_traits<char>::compare): For
8148 constexpr evaluation don't call
8149 __gnu_cxx::char_traits<char_type>::compare but do the comparison loop
8152 2021-02-23 Jakub Jelinek <jakub@redhat.com>
8155 * include/pstl/parallel_backend_serial.h: Remove __pstl::__par_backend.
8157 2021-02-23 Patrick Palka <ppalka@redhat.com>
8160 * src/c++17/floating_to_chars.cc (get_ieee_repr): Extract
8161 the high- and low-order parts from an IBM long double value
8162 in an endian-agnostic way.
8164 2021-02-19 Jonathan Wakely <jwakely@redhat.com>
8166 * include/bits/atomic_wait.h (__thread_relax()): Call
8167 __thread_yield() not __gthread_yield().
8169 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
8171 * include/bits/atomic_wait.h (__thread_yield()): Check
8172 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
8173 (__thread_relax()): Use __thread_yield() instead of repeating
8174 the preprocessor checks for __gthread_yield.
8176 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
8178 * include/std/mutex (once_flag::_M_activate()): Add explicit
8179 return statement for passive case.
8180 (once_flag::_M_finish(bool)): Use reserved name for parameter.
8182 2021-02-14 Jonathan Wakely <jwakely@redhat.com>
8185 * testsuite/util/testsuite_fs.h: Always include <unistd.h>.
8187 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
8190 * src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround.
8192 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
8194 * doc/xml/manual/status_cxx2014.xml: Document implementation
8195 specific properties of std::experimental::filesystem::rename.
8196 * doc/xml/manual/status_cxx2017.xml: Document implementation
8197 specific properties of std::filesystem::rename.
8198 * doc/html/*: Regenerate.
8199 * src/c++17/fs_ops.cc (fs::rename): Implement correct behaviour
8200 for directories on Windows.
8201 * src/filesystem/ops-common.h (__gnu_posix::rename): Use
8202 MoveFileExW on Windows.
8203 * testsuite/27_io/filesystem/operations/rename.cc: New test.
8204 * testsuite/experimental/filesystem/operations/rename.cc: New test.
8206 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
8208 * testsuite/util/testsuite_fs.h (nonexistent_path): Add
8209 random number to the path.
8211 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
8213 * include/experimental/internet (address_v6::to_string): Include
8215 * testsuite/experimental/net/internet/address/v6/members.cc:
8216 Test to_string() results.
8218 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
8220 * include/experimental/internet (address_v6::any): Avoid using
8221 memcpy in constexpr function.
8222 (address_v6::loopback): Likewise.
8223 (make_address_v6): Fix missing return statements on error paths.
8224 * include/experimental/io_context: Avoid -Wdangling-else
8226 * testsuite/experimental/net/internet/address/v4/members.cc:
8227 Remove unused variables.
8228 * testsuite/experimental/net/internet/address/v6/members.cc:
8231 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
8233 * include/bits/shared_ptr_base.h (__shared_ptr::_M_get_deleter):
8234 Add unused attribute to parameter.
8235 * src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq):
8238 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
8240 * testsuite/27_io/basic_ostream/emit/1.cc: Expect test to fail
8241 if -fno-rtti is used.
8242 * testsuite/30_threads/async/forced_unwind.cc: Expect test
8243 to abort if -fno-rtti is used.
8245 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
8247 * testsuite/util/testsuite_allocator.h (memory_resource):
8248 Remove requirement for RTTI and exceptions to be enabled.
8250 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
8252 * testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Use
8253 static_cast when RTTI is disabled.
8254 * testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc:
8256 * testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc:
8258 * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc:
8260 * testsuite/27_io/basic_stringstream/str/char/2.cc:
8262 * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc:
8265 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
8267 * include/std/ostream (__syncbuf_base::_S_get): Mark parameter
8268 as unused and only use dynamic_cast when RTTI is enabled.
8270 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
8273 * src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)):
8274 Change int parameter to error_code, to match std::ios_failure.
8275 (__throw_ios_failure(const char*, int)): Construct error_code
8278 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
8280 * libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define
8282 * libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new
8283 macro instead of _GLIBCXX_EH_PTR_COMPAT.
8284 (operator==): Likewise.
8286 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
8289 * doc/xml/manual/status_cxx2011.xml: Document when support
8291 * doc/xml/manual/status_cxx2014.xml: Likewise.
8292 * doc/xml/manual/status_cxx2017.xml: Likewise.
8293 * doc/html/manual/status.html: Regenerate.
8295 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
8298 * src/c++17/fs_ops.cc (fs::status): Re-enable workaround.
8300 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
8302 * src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent)
8303 (fs::remove): Use std::system_category() for error codes from
8305 * src/filesystem/ops.cc (fs::create_hard_link, fs::remove):
8308 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
8310 * testsuite/27_io/filesystem/operations/proximate.cc: Fix typo
8311 in __MINGW32__ macro name.
8312 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
8313 * testsuite/27_io/filesystem/path/generation/proximate.cc:
8315 * testsuite/27_io/filesystem/path/generation/relative.cc:
8317 * testsuite/util/testsuite_fs.h: Likewise.
8319 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
8321 * include/bits/stl_tree.h
8322 (__has_is_transparent, __has_is_transparent_t): Move...
8323 * include/bits/stl_function.h: ...here.
8324 * include/bits/hashtable_policy.h (_Hash_code_base<>::_M_hash_code_tr): New..
8325 (_Hashtable_base<>::_M_equals_tr): New.
8326 * include/bits/hashtable.h (_Hashtable<>::_M_find_tr, _Hashtable<>::_M_count_tr,
8327 _Hashtable<>::_M_equal_range_tr): New member function templates to perform
8328 heterogeneous lookup.
8329 (_Hashtable<>::_M_find_before_node_tr): New.
8330 (_Hashtable<>::_M_find_node_tr): New.
8331 * include/bits/unordered_map.h (unordered_map::find<>, unordered_map::count<>,
8332 unordered_map::contains<>, unordered_map::equal_range<>): New member function
8333 templates to perform heterogeneous lookup.
8334 (unordered_multimap::find<>, unordered_multimap::count<>,
8335 unordered_multimap::contains<>, unordered_multimap::equal_range<>): Likewise.
8336 * include/bits/unordered_set.h (unordered_set::find<>, unordered_set::count<>,
8337 unordered_set::contains<>, unordered_set::equal_range<>): Likewise.
8338 (unordered_multiset::find<>, unordered_multiset::count<>,
8339 unordered_multiset::contains<>, unordered_multiset::equal_range<>): Likewise.
8340 * include/debug/unordered_map
8341 (unordered_map::find<>, unordered_map::equal_range<>): Likewise.
8342 (unordered_multimap::find<>, unordered_multimap::equal_range<>): Likewise.
8343 * include/debug/unordered_set
8344 (unordered_set::find<>, unordered_set::equal_range<>): Likewise.
8345 (unordered_multiset::find<>, unordered_multiset::equal_range<>): Likewise.
8346 * testsuite/23_containers/unordered_map/operations/1.cc: New test.
8347 * testsuite/23_containers/unordered_multimap/operations/1.cc: New test.
8348 * testsuite/23_containers/unordered_multiset/operations/1.cc: New test.
8349 * testsuite/23_containers/unordered_set/operations/1.cc: New test.
8351 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
8353 * include/bits/stl_deque.h
8354 (std::operator-(deque::iterator, deque::iterator)): Replace if/then with
8355 a null pointer test.
8357 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
8359 * testsuite/27_io/filesystem/operations/remove_all.cc: Remove
8360 test directory after making it writable again.
8361 * testsuite/experimental/filesystem/operations/remove_all.cc:
8364 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
8367 * include/std/coroutine (coroutine_handle<P>::from_address): Add
8370 2021-02-09 Vladimir Vishnevsky <vv.os.swe@gmail.com>
8372 * include/ext/stdio_sync_filebuf.h: Remove unused <unistd.h>.
8373 * src/c++17/fs_ops.cc (fs::permissions): Qualify mode_t.
8375 2021-02-09 Jakub Jelinek <jakub@redhat.com>
8378 * include/bits/basic_string.tcc (basic_string::_M_replace): When __s
8379 points to the characters moved by earlier _S_move, compute the source
8380 address using expression based on the __p pointer rather than __s
8383 2021-02-03 Jonathan Wakely <jwakely@redhat.com>
8385 * testsuite/19_diagnostics/error_code/operators/not_equal.cc:
8386 Add comparison with same category and different values.
8387 * testsuite/19_diagnostics/error_code/operators/less.cc:
8388 Likewise. Fix comparison involving different categories.
8389 * testsuite/19_diagnostics/error_code/operators/three_way.cc:
8391 * testsuite/19_diagnostics/error_condition/operators/less.cc:
8393 * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
8396 2021-02-03 yaozhongxiao <yaozhongxiao@linux.alibaba.com>
8398 * include/experimental/bits/simd_neon.h: Replace repeated vpadd
8399 calls with a single vaddv for aarch64.
8401 2021-02-03 Matthias Kretz <kretz@kde.org>
8403 * testsuite/Makefile.am: Warn about the workaround. Add
8404 -fno-tree-vrp to CXXFLAGS passed to the check_simd script.
8405 Improve initial user feedback from make check-simd.
8406 * testsuite/Makefile.in: Regenerated.
8408 2021-02-03 Matthias Kretz <kretz@kde.org>
8410 * include/experimental/bits/simd.h: Add __detail::_Minimum and
8411 __detail::_Maximum to use them as _BinaryOperation to _S_reduce.
8412 Add hmin and hmax overloads for simd and const_where_expression.
8413 * include/experimental/bits/simd_scalar.h
8414 (_SimdImplScalar::_S_reduce): Make unused _BinaryOperation
8415 parameter const-ref to allow calling _S_reduce with an rvalue.
8416 * testsuite/experimental/simd/tests/reductions.cc: Add tests for
8417 hmin and hmax. Since the compiler statically determined that all
8418 tests pass, repeat the test after a call to make_value_unknown.
8420 2021-02-03 Matthias Kretz <kretz@kde.org>
8422 * testsuite/experimental/simd/tests/bits/verify.h (verify): Add
8423 instruction pointer data member. Ensure that the `if (m_failed)`
8424 branch is always inlined into the calling code. The body of the
8425 conditional can still be a function call. Move the get_ip call
8426 into the verify ctor to simplify the ctor calls.
8427 (COMPARE): Don't mention the use of all_of for reduction of a
8428 simd_mask. It only distracts from the real issue.
8430 2021-02-03 Matthias Kretz <kretz@kde.org>
8432 * testsuite/experimental/simd/driver.sh: Abstract reading test
8433 options into read_src_option function. Read skip, only,
8434 expensive, and xfail via read_src_option. Add timeout and
8435 timeout-factor options and adjust timeout variable accordingly.
8436 * testsuite/experimental/simd/tests/loadstore.cc: Set
8439 2021-02-03 Matthias Kretz <kretz@kde.org>
8441 * testsuite/experimental/simd/driver.sh: When handling the pipe
8442 to log (and on verbose to stdout) count the lines. If it exceeds
8443 1000 log the issue and exit 125, which is then handled as a
8446 2021-02-03 Matthias Kretz <kretz@kde.org>
8448 * testsuite/experimental/simd/tests/hypot3_fma.cc: Add skip:
8449 markup for long double on powerpc64*.
8451 2021-02-03 Matthias Kretz <kretz@kde.org>
8453 * include/experimental/bits/simd.h: Add __have_power10vec
8454 conditional on _ARCH_PWR10.
8455 * include/experimental/bits/simd_builtin.h: Forward declare
8456 _MaskImplPpc and use it as _MaskImpl when __ALTIVEC__ is
8458 (_MaskImplBuiltin::_S_some_of): Call _S_popcount from the
8459 _SuperImpl for optimizations and correctness.
8460 * include/experimental/bits/simd_ppc.h: Add _MaskImplPpc.
8461 (_MaskImplPpc::_S_popcount): Implement via vec_cntm for POWER10.
8462 Otherwise, for >=int use -vec_sums divided by a sizeof factor.
8463 For <int use -vec_sums(vec_sum4s(...)) to sum all mask entries.
8465 2021-02-03 Matthias Kretz <kretz@kde.org>
8467 * testsuite/experimental/simd/driver.sh: Remove executable on
8468 SIGINT. Process compiler and test executable output: In verbose
8469 mode print messages immediately, limited to 1000 lines and
8470 breaking long lines to below $COLUMNS (or 1024 if not set).
8471 Communicating the exit status of the compiler / test with the
8472 necessary pipe is done via a message through stdout/-in.
8474 2021-02-03 Matthias Kretz <kretz@kde.org>
8476 * testsuite/Makefile.am: Ensure .simd.summary is empty before
8477 collecting a new summary.
8478 * testsuite/Makefile.in: Regenerate.
8480 2021-02-03 Matthias Kretz <kretz@kde.org>
8482 * testsuite/experimental/simd/generate_makefile.sh: Use
8483 different variables internally than documented for user
8484 overrides. This makes internal append/prepend work as intended.
8486 2021-02-03 Matthias Kretz <kretz@kde.org>
8488 * testsuite/experimental/simd/driver.sh (verify_test): Print
8489 test output on run xfail. Do not repeat lines from the log that
8490 were already printed on stdout.
8491 (test_selector): Make the compiler flags pattern usable as a
8493 (toplevel): Trap on SIGINT and remove the log and sum files.
8494 Call timout with --foreground to quickly terminate on SIGINT.
8495 * testsuite/experimental/simd/generate_makefile.sh: Simplify run
8496 targets via target patterns. Default DRIVEROPTS to -v for run
8497 targets. Remove log and sum files after completion of the run
8498 target (so that it's always recompiled).
8499 Place help text into text file for reasonable 'make help'
8502 2021-02-03 Matthias Kretz <kretz@kde.org>
8504 * include/experimental/bits/simd.h: Remove unnecessary static
8505 assertion. Allow sizeof(8) integer __intrinsic_type to enable
8506 the necessary mask type.
8508 2021-02-03 Matthias Kretz <kretz@kde.org>
8510 * include/experimental/bits/simd.h: Let __intrinsic_type<long
8511 double, N> be valid if sizeof(long double) == sizeof(double) and
8512 use a __vector double as member type.
8514 2021-02-03 Matthias Kretz <kretz@kde.org>
8516 * include/experimental/bits/simd.h (__is_intrinsic_type): New
8517 internal type trait. Alias for __is_vector_type on x86.
8518 (_VectorTraitsImpl): Enable for __intrinsic_type in addition for
8520 (__intrin_bitcast): Allow casting to & from vector & intrinsic
8522 (__intrinsic_type): Explicitly specialize for NEON intrinsic
8525 2021-02-03 Matthias Kretz <kretz@kde.org>
8527 * testsuite/experimental/simd/driver.sh: Implement skip, only,
8528 expensive, and xfail markers. They can select on type, ABI tag
8529 subset number, target-triplet, and compiler flags.
8530 * testsuite/experimental/simd/generate_makefile.sh: The summary
8531 now includes lines for unexpected passes and expected failures.
8532 If the skip or only markers are only conditional on the type, do
8533 not generate rules for those types.
8534 * testsuite/experimental/simd/tests/abs.cc: Mark test expensive
8535 for ABI tag subsets 1-9.
8536 * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
8537 * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
8538 * testsuite/experimental/simd/tests/casts.cc: Ditto.
8539 * testsuite/experimental/simd/tests/generator.cc: Ditto.
8540 * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
8541 * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
8542 * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
8543 * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
8544 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
8545 * testsuite/experimental/simd/tests/mask_loadstore.cc: Ditto.
8546 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
8547 * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
8548 * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
8549 * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
8550 * testsuite/experimental/simd/tests/operators.cc: Ditto.
8551 * testsuite/experimental/simd/tests/reductions.cc: Ditto.
8552 * testsuite/experimental/simd/tests/simd.cc: Ditto.
8553 * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
8554 * testsuite/experimental/simd/tests/splits.cc: Ditto.
8555 * testsuite/experimental/simd/tests/where.cc: Ditto.
8556 * testsuite/experimental/simd/tests/fpclassify.cc: Ditto. In
8557 addition replace "test only floattypes" marker by unconditional
8558 "float|double|ldouble" only marker.
8559 * testsuite/experimental/simd/tests/frexp.cc: Ditto.
8560 * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
8561 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
8563 * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
8564 * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
8565 * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
8566 * testsuite/experimental/simd/tests/remqo.cc: Ditto.
8567 * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
8568 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
8569 * testsuite/experimental/simd/tests/sincos.cc: Ditto. In
8570 addition, xfail on run because the reference data is missing.
8572 2021-02-02 Jonathan Wakely <jwakely@redhat.com>
8574 * doc/xml/manual/status_cxx2011.xml: Remove stray table cell.
8575 * doc/xml/manual/status_cxx2014.xml: Likewise.
8576 * doc/xml/manual/status_cxx2017.xml: Likewise.
8577 * doc/html/manual/status.html: Regenerate.
8579 2021-02-01 François Dumont <fdumont@gcc.gnu.org>
8582 * include/bits/stl_deque.h (std::deque<>::operator-(iterator, iterator)):
8583 Return 0 if both iterators are value-initialized.
8584 * testsuite/23_containers/deque/70303.cc: New test.
8585 * testsuite/23_containers/vector/70303.cc: New test.
8587 2021-02-01 Jonathan Wakely <jwakely@redhat.com>
8589 * doc/xml/manual/status_cxx2011.xml: Update std::call_once
8591 * doc/xml/manual/status_cxx2014.xml: Likewise.
8592 * doc/xml/manual/status_cxx2017.xml: Likewise. Update
8593 std::from_chars and std::to_chars status. Fix formatting.
8594 * doc/html/manual/status.html: Regenerate.
8596 2021-01-28 Jonathan Wakely <jwakely@redhat.com>
8598 * include/experimental/bits/numeric_traits.h: Update copyright
8600 * include/experimental/bits/simd.h: Likewise.
8601 * include/experimental/bits/simd_builtin.h: Likewise.
8602 * include/experimental/bits/simd_converter.h: Likewise.
8603 * include/experimental/bits/simd_detail.h: Likewise.
8604 * include/experimental/bits/simd_fixed_size.h: Likewise.
8605 * include/experimental/bits/simd_math.h: Likewise.
8606 * include/experimental/bits/simd_neon.h: Likewise.
8607 * include/experimental/bits/simd_ppc.h: Likewise.
8608 * include/experimental/bits/simd_scalar.h: Likewise.
8609 * include/experimental/bits/simd_x86.h: Likewise.
8610 * include/experimental/bits/simd_x86_conversions.h: Likewise.
8611 * include/experimental/simd: Likewise.
8612 * testsuite/experimental/simd/*: Likewise.
8614 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
8616 * doc/xml/manual/status_cxx2017.xml: Replace invalid entity.
8617 * doc/html/*: Regenerate.
8619 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
8621 * testsuite/experimental/simd/generate_makefile.sh: Use printf
8622 instead of echo when printing escape characters.
8624 2021-01-27 Matthias Kretz <kretz@kde.org>
8626 * scripts/check_simd: New file. This script is called from the
8627 the check-simd target. It determines a set of compiler flags and
8628 simulator setups for calling generate_makefile.sh and passes the
8629 information back to the check-simd target, which recurses to the
8630 generated Makefiles.
8631 * scripts/create_testsuite_files: Remove files below simd/tests/
8632 from testsuite_files and place them in testsuite_files_simd.
8633 * testsuite/Makefile.am: Add testsuite_files_simd. Add
8635 * testsuite/Makefile.in: Regenerate.
8636 * testsuite/experimental/simd/driver.sh: New file. This script
8637 compiles and runs a given simd test, logging its output and
8638 status. It uses the timeout command to implement compile and
8640 * testsuite/experimental/simd/generate_makefile.sh: New file.
8641 This script generates a Makefile which uses driver.sh to compile
8642 and run the tests and collect the logs into a single log file.
8643 * testsuite/experimental/simd/tests/abs.cc: New file. Tests
8645 * testsuite/experimental/simd/tests/algorithms.cc: New file.
8646 Tests min/max(simd, simd).
8647 * testsuite/experimental/simd/tests/bits/conversions.h: New
8648 file. Contains functions to support tests involving conversions.
8649 * testsuite/experimental/simd/tests/bits/make_vec.h: New file.
8650 Support functions make_mask and make_vec.
8651 * testsuite/experimental/simd/tests/bits/mathreference.h: New
8652 file. Support functions to supply precomputed math function
8654 * testsuite/experimental/simd/tests/bits/metahelpers.h: New
8655 file. Support code for SFINAE testing.
8656 * testsuite/experimental/simd/tests/bits/simd_view.h: New file.
8657 * testsuite/experimental/simd/tests/bits/test_values.h: New
8658 file. Test functions to easily drive a test with simd objects
8659 initialized from a given list of values and a range of random
8661 * testsuite/experimental/simd/tests/bits/ulp.h: New file.
8662 Support code to determine the ULP distance of simd objects.
8663 * testsuite/experimental/simd/tests/bits/verify.h: New file.
8664 Test framework for COMPARE'ing simd objects and instantiating
8665 the test templates with value_type and ABI tag.
8666 * testsuite/experimental/simd/tests/broadcast.cc: New file. Test
8668 * testsuite/experimental/simd/tests/casts.cc: New file. Test
8670 * testsuite/experimental/simd/tests/fpclassify.cc: New file.
8671 Test floating-point classification functions.
8672 * testsuite/experimental/simd/tests/frexp.cc: New file. Test
8674 * testsuite/experimental/simd/tests/generator.cc: New file. Test
8675 simd generator constructor.
8676 * testsuite/experimental/simd/tests/hypot3_fma.cc: New file.
8677 Test 3-arg hypot(simd,simd,simd) and fma(simd,simd,sim).
8678 * testsuite/experimental/simd/tests/integer_operators.cc: New
8679 file. Test integer operators.
8680 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
8681 New file. Test ldexp(simd), scalbn(simd), scalbln(simd), and
8683 * testsuite/experimental/simd/tests/loadstore.cc: New file. Test
8684 (converting) simd loads and stores.
8685 * testsuite/experimental/simd/tests/logarithm.cc: New file. Test
8687 * testsuite/experimental/simd/tests/mask_broadcast.cc: New file.
8688 Test simd_mask broadcasts.
8689 * testsuite/experimental/simd/tests/mask_conversions.cc: New
8690 file. Test simd_mask conversions.
8691 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: New
8692 file. Test simd_mask implicit conversions.
8693 * testsuite/experimental/simd/tests/mask_loadstore.cc: New file.
8694 Test simd_mask loads and stores.
8695 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: New
8696 file. Test simd_mask operators convert as specified.
8697 * testsuite/experimental/simd/tests/mask_operators.cc: New file.
8698 Test simd_mask compares, subscripts, and negation.
8699 * testsuite/experimental/simd/tests/mask_reductions.cc: New
8700 file. Test simd_mask reductions.
8701 * testsuite/experimental/simd/tests/math_1arg.cc: New file. Test
8702 1-arg math functions on simd.
8703 * testsuite/experimental/simd/tests/math_2arg.cc: New file. Test
8704 2-arg math functions on simd.
8705 * testsuite/experimental/simd/tests/operator_cvt.cc: New file.
8706 Test implicit conversions on simd binary operators behave as
8708 * testsuite/experimental/simd/tests/operators.cc: New file. Test
8709 simd compares, subscripts, not, unary minus, plus, minus,
8710 multiplies, divides, increment, and decrement.
8711 * testsuite/experimental/simd/tests/reductions.cc: New file.
8713 * testsuite/experimental/simd/tests/remqo.cc: New file. Test
8715 * testsuite/experimental/simd/tests/simd.cc: New file. Basic
8716 sanity checks of simd types.
8717 * testsuite/experimental/simd/tests/sincos.cc: New file. Test
8718 sin(simd) and cos(simd).
8719 * testsuite/experimental/simd/tests/split_concat.cc: New file.
8720 Test split(simd) and concat(simd, simd).
8721 * testsuite/experimental/simd/tests/splits.cc: New file. Test
8723 * testsuite/experimental/simd/tests/trigonometric.cc: New file.
8724 Test remaining trigonometric functions on simd.
8725 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: New
8726 file. Test trunc(simd), ceil(simd), and floor(simd).
8727 * testsuite/experimental/simd/tests/where.cc: New file. Test
8728 masked operations using where.
8730 2021-01-27 Matthias Kretz <kretz@kde.org>
8732 * doc/xml/manual/status_cxx2017.xml: Add implementation status
8733 of the Parallelism TS 2. Document implementation-defined types
8735 * include/Makefile.am: Add new headers.
8736 * include/Makefile.in: Regenerate.
8737 * include/experimental/simd: New file. New header for
8739 * include/experimental/bits/numeric_traits.h: New file.
8740 Implementation of P1841R1 using internal naming. Addition of
8741 missing IEC559 functionality query.
8742 * include/experimental/bits/simd.h: New file. Definition of the
8743 public simd interfaces and general implementation helpers.
8744 * include/experimental/bits/simd_builtin.h: New file.
8745 Implementation of the _VecBuiltin simd_abi.
8746 * include/experimental/bits/simd_converter.h: New file. Generic
8748 * include/experimental/bits/simd_detail.h: New file. Internal
8749 macros for the simd implementation.
8750 * include/experimental/bits/simd_fixed_size.h: New file. Simd
8751 fixed_size ABI specific implementations.
8752 * include/experimental/bits/simd_math.h: New file. Math
8754 * include/experimental/bits/simd_neon.h: New file. Simd NEON
8755 specific implementations.
8756 * include/experimental/bits/simd_ppc.h: New file. Implement bit
8757 shifts to avoid invalid results for integral types smaller than
8759 * include/experimental/bits/simd_scalar.h: New file. Simd scalar
8760 ABI specific implementations.
8761 * include/experimental/bits/simd_x86.h: New file. Simd x86
8762 specific implementations.
8763 * include/experimental/bits/simd_x86_conversions.h: New file.
8764 x86 specific conversion optimizations. The conversion patterns
8765 work around missing conversion patterns in the compiler and
8766 should be removed as soon as PR85048 is resolved.
8767 * testsuite/experimental/simd/standard_abi_usable.cc: New file.
8768 Test that all (not all fixed_size<N>, though) standard simd and
8769 simd_mask types are usable.
8770 * testsuite/experimental/simd/standard_abi_usable_2.cc: New
8771 file. As above but with -ffast-math.
8772 * testsuite/libstdc++-dg/conformance.exp: Don't build simd tests
8773 from the standard test loop. Instead use
8774 check_vect_support_and_set_flags to build simd tests with the
8775 relevant machine flags.
8777 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
8780 * include/bits/string_view.tcc
8781 (basic_string_view::find(const CharT*, size_type, size_type)):
8784 2021-01-27 Paul Fee <paul.f.fee@gmail.com>
8786 * include/bits/basic_string.h (basic_string::contains): New
8788 * include/std/string_view (basic_string_view::contains):
8790 * include/std/version (__cpp_lib_string_contains): Define.
8791 * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
8792 Remove trailing whitespace.
8793 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
8795 * testsuite/21_strings/basic_string/operations/contains/char/1.cc: New test.
8796 * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc: New test.
8797 * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc: New test.
8798 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: New test.
8799 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc: New test.
8801 2021-01-21 Jonathan Wakely <jwakely@redhat.com>
8803 * src/c++17/Makefile.in: Regenerate.
8805 2021-01-20 David Edelsohn <dje.gcc@gmail.com>
8807 * config/os/aix/ctype_inline.h (bool ctype<char>:: is): Cast
8808 _OBJ_DATA subscript to unsigned char. Add _THREAD_SAFE access to
8810 (const char* ctype<char>:: is): Same.
8812 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
8815 * testsuite/20_util/unique_ptr/io/lwg2948.cc: Do not try to
8816 write to a wide character stream if wide character support is
8817 disabled in the library.
8819 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
8821 * testsuite/27_io/basic_stringstream/cons/char/1.cc: Use
8822 stringbuf not wstringbuf.
8824 2021-01-18 Jakub Jelinek <jakub@redhat.com>
8827 * src/c++11/Makefile.am (cxx11-ios_failure-lt.s, cxx11-ios_failure.s):
8828 Compile with -gno-as-loc-support.
8829 * src/c++11/Makefile.in: Regenerated.
8831 2021-01-16 H.J. Lu <hjl.tools@gmail.com>
8833 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
8834 Add -fcf-protection=none to -march=i486.
8836 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
8838 * testsuite/23_containers/deque/debug/98466.cc: Make it pre-C++11
8841 2021-01-14 Alexandre Oliva <oliva@adacore.com>
8843 * testsuite/30_threads/future/members/poll.cc: Calibrate
8846 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
8849 * include/bits/hashtable_policy.h (_Node_iterator_base()): Set _M_cur to nullptr.
8850 (_Node_iterator()): Make default.
8851 (_Node_const_iterator()): Make default.
8852 * include/debug/macros.h (__glibcxx_check_erae_range_after): Add _M_singular
8854 * include/debug/safe_iterator.h
8855 (_GLIBCXX_DEBUG_VERIFY_OPERANDS): Accept if both iterator are value initialized.
8856 * include/debug/safe_local_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
8858 * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range): Add
8859 _M_singular checks on input iterators.
8860 * src/c++11/debug.cc (_Safe_iterator_base::_M_can_compare): Remove _M_singular
8862 * testsuite/23_containers/deque/debug/98466.cc: New test.
8863 * testsuite/23_containers/unordered_map/debug/98466.cc: New test.
8865 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
8868 * include/bits/fs_path.h (__throw_conversion_error): New
8869 function to throw or abort on character conversion errors.
8870 (__wstr_from_utf8): Move definition after filesystem_error has
8871 been defined. Use __throw_conversion_error.
8872 (path::_S_convert<_EcharT>): Use __throw_conversion_error.
8873 (path::_S_str_convert<_CharT, _Traits, _Allocator>): Likewise.
8874 (path::u8string): Likewise.
8876 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
8878 * include/std/barrier: Update copyright years. Fix whitespace.
8879 * include/std/version: Fix whitespace.
8880 * testsuite/30_threads/barrier/1.cc: Update copyright years.
8881 * testsuite/30_threads/barrier/2.cc: Likewise.
8882 * testsuite/30_threads/barrier/arrive.cc: Likewise.
8883 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
8884 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
8885 * testsuite/30_threads/barrier/completion.cc: Likewise.
8887 2021-01-13 Jonathan Wakely <jwakely@redhat.com>
8889 * doc/doxygen/user.cfg.in (INPUT): Remove include/debug/array.
8891 2021-01-10 David Edelsohn <dje.gcc@gmail.com>
8894 * testsuite/ext/vstring/cons/moveable.cc: Suppress false positive
8896 * testsuite/ext/vstring/modifiers/assign/move_assign.cc: Same.
8898 2021-01-08 Olivier Hainque <hainque@adacore.com>
8900 * testsuite/20_util/bind/ref_neg.cc: Tweak the
8901 dg-prune-output regex for out-of-build-tree contexts.
8903 2021-01-07 Thomas Rodgers <trodgers@redhat.com>
8905 * doc/doxygen/user.cfg.in: Add new header.
8906 * include/Makefile.am (std_headers): likewise.
8907 * include/Makefile.in: Regenerate.
8908 * include/precompiled/stdc++.h: Add new header.
8909 * include/std/barrier: New file.
8910 * include/std/version: Add __cpp_lib_barrier feature test macro.
8911 * testsuite/30_threads/barrier/1.cc: New test.
8912 * testsuite/30_threads/barrier/2.cc: Likewise.
8913 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
8914 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
8915 * testsuite/30_threads/barrier/arrive.cc: Likewise.
8916 * testsuite/30_threads/barrier/completion.cc: Likewise.
8918 2021-01-07 Patrick Palka <ppalka@redhat.com>
8921 * testsuite/20_util/to_chars/long_double.cc: Use nexttowardl
8922 instead of the non-standard nextupl and nextdownl.
8924 2021-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
8926 * configure: Re-generate.
8928 2021-01-05 Ed Smith-Rowland <3dw4rd@verizon.net>
8930 * include/precompiled/stdc++.h: Add <source_location> to C++20 section.
8932 2021-01-01 Jakub Jelinek <jakub@redhat.com>
8934 * ChangeLog-2020: Rotate ChangeLog. New file.
8937 Copyright (C) 2021 Free Software Foundation, Inc.
8939 Copying and distribution of this file, with or without modification,
8940 are permitted in any medium without royalty provided the copyright
8941 notice and this notice are preserved.