1 2021-12-14 Jonathan Wakely <jwakely@redhat.com>
4 * testsuite/22_locale/time_get/get_date/wchar_t/4.cc: Restore
5 original locale before returning.
6 * testsuite/22_locale/time_get/get_time/char/2.cc: Check for %p
7 in locale's T_FMT and adjust accordingly.
8 * testsuite/22_locale/time_get/get_time/wchar_t/2.cc: Likewise.
10 2021-12-14 Jonathan Wakely <jwakely@redhat.com>
13 * include/bits/regex_compiler.h (_Compiler::_BracketState): New
15 (_Compiler::_BrackeyMatcher): New alias template.
16 (_Compiler::_M_expression_term): Change pair<bool, CharT>
17 parameter to _BracketState. Process first character for
18 ECMAScript syntax as well as POSIX.
19 * include/bits/regex_compiler.tcc
20 (_Compiler::_M_insert_bracket_matcher): Pass _BracketState.
21 (_Compiler::_M_expression_term): Use _BracketState to store
22 state between calls. Improve handling of dashes in ranges.
23 * testsuite/28_regex/algorithms/regex_match/cstring_bracket_01.cc:
24 Add more tests for ranges containing dashes. Check invalid
25 ranges with character class at the beginning.
27 2021-12-14 Jonathan Wakely <jwakely@redhat.com>
29 * include/ext/pointer.h (_Relative_pointer_impl::_UIntPtrType):
30 Rename to uintptr_t and define as __UINTPTR_TYPE__.
32 2021-12-14 Jonathan Wakely <jwakely@redhat.com>
34 * include/bits/regex_constants.h (__syntax_option, __match_flag):
36 (syntax_option_type, match_flag_type): Define enumerators.
37 Use to initialize globals. Add constexpr to compound assignment
39 * include/bits/regex_error.h (error_type): Add comment.
40 * testsuite/28_regex/constants/constexpr.cc: Remove comment.
41 * testsuite/28_regex/constants/error_type.cc: Improve comment.
42 * testsuite/28_regex/constants/match_flag_type.cc: Check bitmask
44 * testsuite/28_regex/constants/syntax_option_type.cc: Likewise.
46 2021-12-14 Jonathan Wakely <jwakely@redhat.com>
48 * include/bits/regex_compiler.tcc (_Compiler::_M_match_token):
49 Use reserved name for parameter.
50 * testsuite/17_intro/names.cc: Check "token".
52 2021-12-13 Jonathan Wakely <jwakely@redhat.com>
54 * scripts/make_exports.pl: Replace '?' with '.' when turning
57 2021-12-13 Jonathan Wakely <jwakely@redhat.com>
59 * include/bits/ranges_base.h (ranges::size, ranges::empty): Add
60 explicit check for unbounded arrays before using ranges::begin.
61 * testsuite/std/ranges/access/empty.cc: Check handling of unbounded
63 * testsuite/std/ranges/access/size.cc: Likewise.
65 2021-12-13 Jonathan Wakely <jwakely@redhat.com>
68 * include/bits/regex.h (__regex_replace): Declare.
69 (regex_replace): Use it.
70 * include/bits/regex.tcc (__regex_replace): Replace regex_replace
71 definition with __regex_replace.
72 * testsuite/28_regex/algorithms/regex_replace/char/103664.cc: New test.
74 2021-12-11 Jason Merrill <jason@redhat.com>
77 * include/bits/basic_string.h (append (basic_string)): Call pointer
78 append instead of _M_append directly.
80 2021-12-10 Jakub Jelinek <jakub@redhat.com>
83 * config/locale/dragonfly/time_members.cc (_M_initialize_timepunct):
84 Initialize "C" _M_am_pm_format to %I:%M:%S %p rather than empty
86 * config/locale/gnu/time_members.cc (_M_initialize_timepunct):
88 * config/locale/generic/time_members.cc (_M_initialize_timepunct):
90 * include/bits/locale_facets_nonio.h (_M_am_pm_format): New method.
91 * include/bits/locale_facets_nonio.tcc (_M_extract_via_format): Handle
93 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export _M_am_pm_format
94 with const _CharT** argument, ensure it isn't exported in GLIBCXX_3.4.
95 * testsuite/22_locale/time_get/get/char/71367.cc: New test.
96 * testsuite/22_locale/time_get/get/wchar_t/71367.cc: New test.
98 2021-12-10 Jakub Jelinek <jakub@redhat.com>
101 * include/bits/locale_facets_nonio.tcc (_M_extract_via_format):
102 Mention in function comment it interprets strptime format string
103 rather than strftime. Handle %a and %A the same by accepting both
104 full and abbreviated names. Similarly handle %h, %b and %B the same.
105 Handle %d and %e the same by accepting possibly optional single space
106 and 1 or 2 digits. For %I store tm_hour 0 instead of tm_hour 12. For
107 %t and %n skip any whitespace. Handle %p and %%. For whitespace in
108 the string skip any whitespace.
109 (_M_extract_num): For __len == 2 accept 1 or 2 digits rather than
110 always 2. Don't punt early if __value * __mult is larget than __max
111 or smaller than __min - __mult, instead punt if __value > __max.
112 At the end verify __value is in between __min and __max and punt
114 (_M_extract_name): Allow non-unique names or names which are prefixes
115 of other names. Don't recompute lengths of names for every character.
116 * testsuite/22_locale/time_get/get/char/3.cc: New test.
117 * testsuite/22_locale/time_get/get/wchar_t/3.cc: New test.
118 * testsuite/22_locale/time_get/get_date/char/12791.cc (test01): Use
119 62 instead 60 and expect 6 to be accepted and thus *ret01 == '2'.
120 * testsuite/22_locale/time_get/get_date/wchar_t/12791.cc (test01):
122 * testsuite/22_locale/time_get/get_time/char/2.cc (test02): Add " PM"
124 * testsuite/22_locale/time_get/get_time/char/5.cc (test01): Expect
125 tm_hour 1 rather than 0.
126 * testsuite/22_locale/time_get/get_time/wchar_t/2.cc (test02): Add
128 * testsuite/22_locale/time_get/get_time/wchar_t/5.cc (test01): Expect
129 tm_hour 1 rather than 0.
131 2021-12-10 Jonathan Wakely <jwakely@redhat.com>
134 * include/bits/atomic_timed_wait.h: Check _GLIBCXX_HAS_GTHREADS
135 before using std::mutex and std::__condvar.
137 2021-12-10 Jonathan Wakely <jwakely@redhat.com>
139 * acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Add _GLIBCXX_
140 prefix to NO_SLEEP macro.
141 * config.h.in: Regenerate.
142 * configure: Regenerate.
144 2021-12-10 Jonathan Wakely <jwakely@redhat.com>
146 * include/bits/char_traits.h: Change pragma push to pop.
148 2021-12-10 Thomas Rodgers <rodgert@twrodgers.com>
151 * include/bits/atomic_base.h (__atomic_base<_PTp*>::wait()):
153 * include/std/atomic (atomic<_Tp*>::wait(), atomic_wait()):
155 * testsuite/29_atomics/atomic/wait_notify/102994.cc:
158 2021-12-09 Jonathan Wakely <jwakely@redhat.com>
160 * include/bits/stl_iterator.h (operator==, operator<=>): Define
161 overloads for homogeneous specializations of reverse_iterator,
162 __normal_iterator and move_iterator.
164 2021-12-09 Jonathan Wakely <jwakely@redhat.com>
166 * testsuite/20_util/scoped_allocator/69293_neg.cc: Remove
169 2021-12-09 Jonathan Wakely <jwakely@redhat.com>
172 * libsupc++/exception_ptr.h (__dest_thunk): Add macro for
173 destructor calling convention.
174 (make_exception_ptr): Enable non-throwing implementation for
175 -fno-exceptions and for non-standard calling conventions. Use
176 always_inline attribute on the useless no-rtti no-exceptions
178 * testsuite/18_support/exception_ptr/64241.cc: Add -fno-rtti so
179 the no-op implementation is still used.
181 2021-12-09 Jonathan Wakely <jwakely@redhat.com>
184 * libsupc++/exception_ptr.h (exception_ptr): Fix exception
185 specifications on inline definitions.
186 (make_exception_ptr): Decay the template parameter. Use typeid
188 * testsuite/18_support/exception_ptr/103630.cc: New test.
190 2021-12-09 Jonathan Wakely <jwakely@redhat.com>
193 * config/io/basic_file_stdio.cc (fopen_mode): Add support for
195 * include/bits/ios_base.h (_S_noreplace): Define new enumerator.
196 (ios_base::__noreplace): Define.
197 (ios_base::noreplace): Define for C++23.
198 * include/std/version (__cpp_lib_ios_noreplace): Define.
199 * testsuite/27_io/basic_ofstream/open/char/noreplace.cc: New test.
200 * testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc: New test.
202 2021-12-09 Jonathan Wakely <jwakely@redhat.com>
205 * config/abi/pre/gnu.ver (GLIBCXX_3.4.11): Do not export old
206 symbol if .symver renaming is supported.
207 (GLIBCXX_3.4.30): Export new symbol if .symver renaming is
209 * doc/xml/manual/evolution.xml: Document change.
210 * doc/html/manual/api.html: Regenerate.
211 * include/bits/std_mutex.h (__condvar::wait, __condvar::wait_until):
213 * include/std/condition_variable (condition_variable::wait):
215 * src/c++11/condition_variable.cc (condition_variable::wait):
217 * src/c++11/compatibility-condvar.cc (__nothrow_wait_cv::wait):
218 Define nothrow wrapper around std::condition_variable::wait and
219 export the old symbol as an alias to it.
220 * testsuite/30_threads/condition_variable/members/103382.cc: New test.
222 2021-12-09 Jonathan Wakely <jwakely@redhat.com>
225 * include/bits/stl_map.h (insert(Pair&&), emplace(Args&&...)):
226 Check whether the arguments can be looked up directly without
227 constructing a temporary node first.
228 * include/bits/stl_pair.h (__is_pair): Move to here, from ...
229 * include/bits/uses_allocator_args.h (__is_pair): ... here.
230 * testsuite/23_containers/map/modifiers/emplace/92300.cc: New test.
231 * testsuite/23_containers/map/modifiers/insert/92300.cc: New test.
233 2021-12-09 Jonathan Wakely <jwakely@redhat.com>
235 * include/bits/cow_string.h (basic_string::_M_leak_hard): Do not
236 reallocate an empty string.
238 2021-12-09 Jonathan Wakely <jwakely@redhat.com>
243 * include/bits/char_traits.h: Suppress stringop and array-bounds
246 2021-12-09 Jonathan Wakely <jwakely@redhat.com>
249 * config/allocator/new_allocator_base.h: Include
250 <bits/new_allocator.h> instead of <ext/new_allocator.h>.
251 (__allocator_base): Use std::__new_allocator instead of
252 __gnu_cxx::new_allocator.
253 * doc/xml/manual/allocator.xml: Document new default base class
255 * doc/xml/manual/evolution.xml: Likewise.
256 * doc/html/*: Regenerate.
257 * include/Makefile.am: Add bits/new_allocator.h.
258 * include/Makefile.in: Regenerate.
259 * include/experimental/memory_resource (new_delete_resource):
260 Use std::__new_allocator instead of __gnu_cxx::new_allocator.
261 * include/ext/new_allocator.h (new_allocator): Derive from
262 std::__new_allocator. Move implementation to ...
263 * include/bits/new_allocator.h: New file.
264 * testsuite/20_util/allocator/64135.cc: New test.
266 2021-12-08 Jonathan Wakely <jwakely@redhat.com>
268 * include/bits/shared_ptr_base.h (_Sp_counted_base::_M_release()):
269 Make shift width conditional on __double_word condition.
271 2021-12-08 François Dumont <fdumont@gcc.gnu.org>
273 * include/std/deque (erase_if): Use _GLIBCXX_STD_C container reference and
274 __niter_wrap to limit _GLIBCXX_DEBUG mode impact.
275 * include/std/vector (erase_if): Likewise.
277 2021-12-08 Maged Michael <maged.michael@gmail.com>
278 Jonathan Wakely <jwakely@redhat.com>
280 * include/bits/c++config (_GLIBCXX_TSAN): Define macro
281 indicating that TSan is in use.
282 * include/bits/shared_ptr_base.h (_Sp_counted_base::_M_release):
283 Replace definition in primary template with explicit
284 specializations for _S_mutex and _S_atomic policies.
285 (_Sp_counted_base<_S_mutex>::_M_release): New specialization.
286 (_Sp_counted_base<_S_atomic>::_M_release): New specialization,
287 using a single atomic load to access both reference counts at
289 (_Sp_counted_base::_M_release_last_use): New member function.
291 2021-12-07 Tamar Christina <tamar.christina@arm.com>
294 2021-11-19 Tamar Christina <tamar.christina@arm.com>
297 * config/os/newlib/ctype_base.h (upper, lower, alpha, digit, xdigit,
298 space, print, graph, cntrl, punct, alnum, blank): Use short or long
299 names depending on if short ones are defined.
301 2021-12-04 Jonathan Wakely <jwakely@redhat.com>
304 * include/bits/regex.h (match_results): Give names to template
305 parameters in first declaration.
306 (match_results::_M_begin): Add default member-initializer.
308 2021-12-03 Jonathan Wakely <jwakely@redhat.com>
310 * include/bits/stl_tree.h (_Rb_tree::_Auto_node): Define new
311 RAII helper for creating and inserting new nodes.
312 (_Rb_tree::_M_insert_node): Use trailing-return-type to simplify
313 out-of-line definition.
314 (_Rb_tree::_M_insert_lower_node): Likewise.
315 (_Rb_tree::_M_insert_equal_lower_node): Likewise.
316 (_Rb_tree::_M_emplace_unique): Likewise. Use _Auto_node.
317 (_Rb_tree::_M_emplace_equal): Likewise.
318 (_Rb_tree::_M_emplace_hint_unique): Likewise.
319 (_Rb_tree::_M_emplace_hint_equal): Likewise.
321 2021-12-02 Jonathan Wakely <jwakely@redhat.com>
323 * src/c++11/cow-stdexcept.cc [_GLIBCXX_FULLY_DYNAMIC_STRING]
324 (logic_error, runtime_error): Remove custom definitions.
326 2021-12-02 Jonathan Wakely <jwakely@redhat.com>
331 * acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): Remove mt, bitmap
333 * configure: Regenerate.
334 * config/allocator/bitmap_allocator_base.h: Removed.
335 * config/allocator/mt_allocator_base.h: Removed.
336 * config/allocator/pool_allocator_base.h: Removed.
337 * doc/xml/manual/allocator.xml: Update.
338 * doc/xml/manual/configure.xml: Update.
339 * doc/xml/manual/evolution.xml: Document removal.
340 * doc/xml/manual/mt_allocator.xml: Editorial tweaks.
341 * doc/html/manual/*: Regenerate.
343 2021-12-02 Jonathan Wakely <jwakely@redhat.com>
345 * include/bits/cow_string.h (basic_string::_M_is_leaked()):
346 Revert change to check __is_single_threaded() before using
349 2021-12-01 Jonathan Wakely <jwakely@redhat.com>
352 * include/bits/stl_tree.h (_Rb_tree(_Rb_tree&&, false_type)):
353 Clear container if elements have been moved-from.
354 * testsuite/23_containers/map/allocator/move_cons.cc: Expect
355 moved-from container to be empty.
356 * testsuite/23_containers/multimap/allocator/move_cons.cc:
358 * testsuite/23_containers/multiset/allocator/103501.cc: New test.
359 * testsuite/23_containers/set/allocator/103501.cc: New test.
361 2021-12-01 Jonathan Wakely <jwakely@redhat.com>
363 * doc/doxygen/user.cfg.in (PREDEFINED): Change macro name.
364 * include/bits/allocator.h (allocate, deallocate): Use
365 std::__is_constant_evaluated() unconditionally, instead of
366 checking whether std::is_constant_evaluated() (or the built-in)
368 * include/bits/basic_string.h: Check new macro. call
369 std::is_constant_evaluated() directly in C++20-only code that is
370 guarded by a suitable macro.
371 * include/bits/basic_string.tcc: Likewise.
372 * include/bits/c++config (__is_constant_evaluated): Define.
373 (_GLIBCXX_HAVE_BUILTIN_IS_CONSTANT_EVALUATED): Replace with ...
374 (_GLIBCXX_HAVE_IS_CONSTANT_EVALUATED): New macro.
375 * include/bits/char_traits.h (char_traits): Replace conditional
376 calls to std::is_constant_evaluated with unconditional calls to
377 std::__is_constant_evaluated.
378 * include/bits/cow_string.h: Use new macro.
379 * include/bits/ranges_algobase.h (__copy_or_move): Replace
380 conditional calls to std::is_constant_evaluated with unconditional
381 calls to std::__is_constant_evaluated.
382 (__copy_or_move_backward, __fill_n_fn): Likewise.
383 * include/bits/ranges_cmp.h (ranges::less): Likewise.
384 * include/bits/stl_algobase.h (lexicographical_compare_three_way):
386 * include/bits/stl_bvector.h: Call std::is_constant_evaluated
387 directly in C++20-only code that is guarded by a suitable macro.
388 * include/bits/stl_construct.h (_Construct, _Destroy, _Destroy_n):
389 Replace is_constant_evaluated with __is_constant_evaluated.
390 * include/bits/stl_function.h (greater, less, greater_equal)
391 (less_equal): Replace __builtin_is_constant_evaluated and
392 __builtin_constant_p with __is_constant_evaluated.
393 * include/bits/stl_vector.h: Call std::is_constant_evaluated()
395 * include/debug/helper_functions.h (__check_singular): Use
396 __is_constant_evaluated instead of built-in, or remove check
398 * include/std/array (operator<=>): Use __is_constant_evaluated
400 * include/std/bit (__bit_ceil): Likewise.
401 * include/std/type_traits (is_constant_evaluated): Define using
402 'if consteval' if possible.
403 * include/std/version: Use new macro.
404 * libsupc++/compare: Use __is_constant_evaluated instead of
405 __builtin_is_constant_evaluated.
406 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
407 Adjust dg-error lines.
409 2021-12-01 Jonathan Wakely <jwakely@redhat.com>
411 * include/bits/cow_string.h (basic_string::_M_is_leaked): Use
412 non-atomic load when __is_single_threaded() is true.
413 (basic_string::_M_is_shared): Likewise.
414 (basic_string::(basic_string&&)) [_GLIBCXX_FULLY_DYNAMIC_STRING]:
415 Use non-atomic store when rvalue is not shared.
417 2021-12-01 Jonathan Wakely <jwakely@redhat.com>
419 * src/c++17/fs_path.cc (path::_M_split_cmpts()): Remove
420 micro-optimization for "/" path.
421 * src/filesystem/path.cc (path::_M_split_cmpts()): Only access
422 the contents of _M_pathname using const member functions.
424 2021-11-30 Jonathan Wakely <jwakely@redhat.com>
426 * testsuite/21_strings/basic_string/cons/char/moveable.cc: Allow
427 moved-from string to be non-empty.
428 * testsuite/21_strings/basic_string/cons/char/moveable2.cc:
430 * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc:
432 * testsuite/21_strings/basic_string/cons/wchar_t/moveable.cc:
434 * testsuite/21_strings/basic_string/cons/wchar_t/moveable2.cc:
436 * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
438 * testsuite/21_strings/basic_string/modifiers/assign/char/87749.cc:
439 Construct empty string before setting oom flag.
440 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/87749.cc:
443 2021-11-30 Jonathan Wakely <jwakely@redhat.com>
445 * include/bits/cow_string.h (basic_string(basic_string&&)): Fix
446 mem-initializer for _GLIBCXX_FULLY_DYNAMIC_STRING==0 case.
447 * testsuite/21_strings/basic_string/cons/char/noexcept_move_construct.cc:
448 Remove outdated comment.
449 * testsuite/21_strings/basic_string/cons/wchar_t/noexcept_move_construct.cc:
452 2021-11-30 Jonathan Wakely <jwakely@redhat.com>
454 * src/c++20/sstream-inst.cc (_GLIBCXX_USE_CXX11_ABI): Define to
457 2021-11-30 Jonathan Wakely <jwakely@redhat.com>
459 * include/bits/stl_vector.h (vector::_S_do_relocate): Remove
460 C++20 constexpr specifier.
461 (vector::_S_relocate) [__cpp_if_constexpr]: Call __relocate_a
462 directly without tag dispatching.
464 2021-11-30 Jonathan Wakely <jwakely@redhat.com>
467 * config/allocator/malloc_allocator_base.h
468 (_GLIBCXX_SANITIZE_STD_ALLOCATOR): Define for Clang.
469 * config/allocator/new_allocator_base.h
470 (_GLIBCXX_SANITIZE_STD_ALLOCATOR): Likewise.
472 2021-11-30 Jonathan Wakely <jwakely@redhat.com>
474 * doc/xml/manual/debug_mode.xml: Replace "his or her" with "their".
475 * doc/html/manual/debug_mode_design.html: Regenerate.
477 2021-11-30 Jakub Jelinek <jakub@redhat.com>
479 * include/std/bit (byteswap): Add [[nodiscard]].
481 2021-11-28 Jakub Jelinek <jakub@redhat.com>
483 * include/std/bit (__cpp_lib_byteswap, byteswap): Define.
484 * include/std/version (__cpp_lib_byteswap): Define.
485 * testsuite/26_numerics/bit/bit.byteswap/byteswap.cc: New test.
486 * testsuite/26_numerics/bit/bit.byteswap/version.cc: New test.
488 2021-11-26 Jonathan Wakely <jwakely@redhat.com>
490 * testsuite/24_iterators/move_iterator/dr3265.cc: Fix test to
491 account for LWG 3435 resolution.
493 2021-11-26 Jonathan Wakely <jwakely@redhat.com>
495 * include/bits/stl_uninitialized.h (__relocate_a_1): Do not use
496 memmove during constant evaluation.
497 * include/bits/stl_vector.h (vector::_S_use_relocate()): Do not
498 check is_constant_evaluated in always-constexpr function.
500 2021-11-26 Jonathan Wakely <jwakely@redhat.com>
503 * include/std/tuple (tuple::is_constructible): Remove.
505 2021-11-26 Jonathan Wakely <jwakely@redhat.com>
507 * testsuite/29_atomics/atomic_float/1.cc: Reorder directives.
509 2021-11-26 Jonathan Wakely <jwakely@redhat.com>
511 * testsuite/23_containers/unordered_map/modifiers/move_assign.cc:
512 Change dg-do compile to run.
513 * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499.cc:
516 2021-11-26 Jonathan Wakely <jwakely@redhat.com>
518 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
519 Remove xfail selector.
520 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
523 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
525 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
527 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
529 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
531 * testsuite/23_containers/span/101411.cc: Likewise.
532 * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Likewise.
533 * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc:
535 * testsuite/25_algorithms/equal/constexpr_neg.cc: Likewise.
536 * testsuite/25_algorithms/equal/debug/constexpr_neg.cc: Likewise.
537 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc:
539 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc:
541 * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc:
543 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc:
545 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc:
547 * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc:
550 2021-11-26 Jonathan Wakely <jwakely@redhat.com>
552 * testsuite/20_util/pointer_traits/lwg3545.cc: Move to_address
554 * testsuite/20_util/to_address/lwg3545.cc: ... here. Add -std
555 option before checking effective target.
557 2021-11-25 Jonathan Wakely <jwakely@redhat.com>
559 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
560 Remove dg-error for C++11_only error.
562 2021-11-25 Jonathan Wakely <jwakely@redhat.com>
565 * include/bits/ptr_traits.h (pointer_traits): Reimplement to be
566 SFINAE-friendly (LWG 3545).
567 * testsuite/20_util/pointer_traits/lwg3545.cc: New test.
568 * testsuite/20_util/to_address/1_neg.cc: Adjust dg-error line.
569 * testsuite/20_util/to_address/lwg3545.cc: New test.
571 2021-11-25 Jonathan Wakely <jwakely@redhat.com>
574 * include/bits/ranges_algobase.h (__fill_n_fn): Check for
575 constant evaluation before using memset.
576 * testsuite/25_algorithms/fill_n/constrained.cc: Check
577 byte-sized values as well.
579 2021-11-24 Jonathan Wakely <jwakely@redhat.com>
581 * testsuite/libstdc++-prettyprinters/80276.cc: Add xfail for
583 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
585 2021-11-24 Jonathan Wakely <jwakely@redhat.com>
587 * testsuite/lib/libstdc++.exp: Rename effective target keywords
588 to avoid dashes in the name.
589 * testsuite/*: Update effective targe keywords.
591 2021-11-23 Jonathan Wakely <jwakely@redhat.com>
594 * testsuite/libstdc++-prettyprinters/cxx11.cc: Check unique_ptr
595 with non-empty pointer and non-empty deleter.
597 2021-11-23 Jonathan Wakely <jwakely@redhat.com>
599 * testsuite/18_support/50594.cc: Check effective target.
600 * testsuite/20_util/allocator/1.cc: Likewise.
601 * testsuite/20_util/allocator/overaligned.cc: Likewise.
602 * testsuite/23_containers/unordered_map/96088.cc: Likewise.
603 * testsuite/23_containers/unordered_multimap/96088.cc: Likewise.
604 * testsuite/23_containers/unordered_multiset/96088.cc: Likewise.
605 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
606 * testsuite/ext/throw_allocator/check_delete.cc: Likewise.
607 * testsuite/ext/throw_allocator/check_new.cc: Likewise.
608 * testsuite/lib/libstdc++.exp (check_effective_target_std_allocator_new):
611 2021-11-23 Jonathan Wakely <jwakely@redhat.com>
614 * include/ext/bitmap_allocator.h: Include <bits/stl_function.h>
615 instead of <functional>.
617 2021-11-22 Jonathan Wakely <jwakely@redhat.com>
619 * include/bits/c++config (_GLIBCXX14_DEPRECATED): Fix condition
622 2021-11-20 François Dumont <fdumont@gcc.gnu.org>
624 * include/bits/erase_if.h (__erase_nodes_if): Add _UnsafeContainer template
625 parameter. Use it to get iterators to work with.
626 * include/debug/macros.h (__glibcxx_check_erase2): New.
627 * include/debug/map.h (map<>::erase(_Base_const_iterator)): New.
628 (map<>::erase(const_iterator)): Use latter.
629 * include/debug/multimap.h (multimap<>::erase(_Base_const_iterator)): New.
630 (multimap<>::erase(const_iterator)): Use latter.
631 * include/debug/multiset.h (multiset<>::erase(_Base_const_iterator)): New.
632 (multiset<>::erase(const_iterator)): Use latter.
633 * include/debug/set.h (set<>::erase(_Base_const_iterator)): New.
634 (set<>::erase(const_iterator)): Use latter.
635 * include/debug/unordered_map (unordered_map<>::erase(_Base_const_iterator)): New.
636 (unordered_multimap<>::erase(const_iterator)): New.
637 * include/debug/unordered_set (unordered_set<>::erase(_Base_const_iterator)): New.
638 (unordered_multiset<>::erase(const_iterator)): New.
639 * include/experimental/map (erase_if): Adapt.
640 * include/experimental/set (erase_if): Adapt.
641 * include/experimental/unordered_map (erase_if): Adapt.
642 * include/experimental/unordered_set (erase_if): Adapt.
643 * include/std/map (erase_if): Adapt.
644 * include/std/set (erase_if): Adapt.
645 * include/std/unordered_map (erase_if): Adapt.
646 * include/std/unordered_set (erase_if): Adapt.
648 2021-11-19 Jonathan Wakely <jwakely@redhat.com>
650 * testsuite/27_io/basic_istringstream/cons/char/1.cc: Check all
652 * testsuite/27_io/basic_istringstream/cons/wchar_t/1.cc:
654 * testsuite/27_io/basic_ostringstream/cons/char/1.cc: Likewise.
655 * testsuite/27_io/basic_ostringstream/cons/wchar_t/1.cc:
657 * testsuite/27_io/basic_stringstream/cons/char/1.cc: Likewise.
658 * testsuite/27_io/basic_stringstream/cons/wchar_t/1.cc:
661 2021-11-19 Jonathan Wakely <jwakely@redhat.com>
663 * src/c++98/locale_init.cc (_S_initialize_once): Check if
664 initialization has already been done.
665 (_S_initialize): Replace __gthread_active_p with
666 __is_single_threaded. Use __builtin_expect.
668 2021-11-19 Jonathan Wakely <jwakely@redhat.com>
671 * include/bits/basic_string.tcc (_M_construct): Use the
672 traits assign member to write into allcoated memory.
674 2021-11-19 Iain Sandoe <iain@sandoe.co.uk>
676 * testsuite/lib/prune.exp: Prune dsymutil (ld64) warning.
678 2021-11-19 Jonathan Wakely <jwakely@redhat.com>
682 * testsuite/21_strings/basic_string/capacity/char/1.cc: Add
683 -Wno-stringop-overflow.
684 * testsuite/21_strings/basic_string/operators/char/1.cc:
686 * testsuite/experimental/filesystem/path/factory/u8path-char8_t.cc:
687 Add -Wno-stringop-overread.
689 2021-11-19 Jonathan Wakely <jwakely@redhat.com>
692 * include/bits/basic_string.h (_Alloc_traits): Replace typedef
693 with struct for C++20 mode.
694 * include/bits/basic_string.tcc (_M_replace): Use _Alloc_traits
696 * include/bits/char_traits.h (__gnu_cxx::char_traits::assign):
697 Use std::_Construct during constant evaluation.
698 (__gnu_cxx::char_traits::assign(CharT*, const CharT*, size_t)):
699 Likewise. Replace std::fill_n with memset or manual loop.
700 (__gnu_cxx::char_traits::copy): Likewise, replacing std::copy
702 * include/ext/vstring.h: Include <bits/stl_algobase.h> for
704 * include/std/string_view: Likewise.
705 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
708 2021-11-19 Tamar Christina <tamar.christina@arm.com>
711 * config/os/newlib/ctype_base.h (upper, lower, alpha, digit, xdigit,
712 space, print, graph, cntrl, punct, alnum, blank): Use short or long
713 names depending on if short ones are defined.
715 2021-11-18 Jonathan Wakely <jwakely@redhat.com>
717 * include/bits/char_traits.h (__gnu_cxx::char_traits::move):
718 Do not compare unrelated pointers during constant evaluation.
719 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
720 Improve tests for char_traits::move.
722 2021-11-18 Jonathan Wakely <jwakely@redhat.com>
724 * acinclude.m4: Replace AC_CACHE_VAL with AC_CACHE_CHECK.
725 * configure: Regenerate.
727 2021-11-17 Jonathan Wakely <jwakely@redhat.com>
729 * include/experimental/internet (address): Use std::_Construct
730 to initialize union members.
732 2021-11-17 Jonathan Wakely <jwakely@redhat.com>
734 * include/bits/basic_string.h (_M_construct_aux): Only define
735 for C++98. Remove constexpr.
736 (_M_construct_aux_2): Likewise.
737 (_M_construct(InputIter, InputIter)): Remove.
738 (basic_string(const basic_string&)): Call _M_construct with
739 iterator category argument.
740 (basic_string(const basic_string&, size_type, const Alloc&)):
742 (basic_string(const basic_string&, size_type, size_type)):
744 (basic_string(const charT*, size_type, const Alloc&)): Likewise.
745 Check for null pointer.
746 (basic_string(const charT*, const Alloc&)): Likewise.
747 (basic_string(initializer_list<charT>, const Alloc&)): Call
748 _M_construct with iterator category argument.
749 (basic_string(const basic_string&, const Alloc&)): Likewise.
750 (basic_string(basic_string&&, const Alloc&)): Likewise.
751 (basic_string(_InputIter, _InputIter, const Alloc&)): Likewise
752 for C++11 and later, call _M_construct_aux for C++98.
753 * include/bits/basic_string.tcc
754 (_M_construct(I, I, input_iterator_tag)): Replace try-block with
756 (_M_construct(I, I, forward_iterator_tag)): Likewise. Remove
757 __is_null_pointer check.
759 2021-11-17 Jonathan Wakely <jwakely@redhat.com>
762 * include/bits/basic_string.h (_M_use_local_data()): New
763 member function to make local buffer the active member.
764 (assign(const basic_string&)): Use it.
765 * include/bits/basic_string.tcc (_M_construct, reserve()):
768 2021-11-17 Jonathan Wakely <jwakely@redhat.com>
771 * libsupc++/tinfo2.cc (type_info::before): Use unadjusted name
772 to check for the '*' prefix.
773 * testsuite/util/testsuite_shared.cc: Add type_info object for
775 * testsuite/18_support/type_info/103240.cc: New test.
777 2021-11-16 Jonathan Wakely <jwakely@redhat.com>
779 * include/bits/basic_string.h (operator<=>): Use constexpr
781 * testsuite/21_strings/basic_string/modifiers/constexpr.cc:
782 Require cxx11-abit effective target.
783 * testsuite/21_strings/headers/string/synopsis.cc: Add
784 conditional constexpr to declarations, and adjust relational
787 2021-11-16 Patrick Palka <ppalka@redhat.com>
789 * src/c++17/ryu/MERGE: Update the commit hash.
790 * src/c++17/ryu/d2s_intrinsics.h: Merge from Ryu's master
793 2021-11-16 Jonathan Wakely <jwakely@redhat.com>
795 * include/bits/basic_string.h (basic_string, operator""s): Add
797 (basic_string::basic_string(basic_string&&)): Only copy
798 initialized portion of the buffer.
799 (basic_string::basic_string(basic_string&&, const Alloc&)):
801 * include/bits/basic_string.tcc (basic_string): Add constexpr
803 (basic_string::swap(basic_string&)): Only copy initialized
804 portions of the buffers.
805 (basic_string::_M_replace): Add constexpr implementation that
806 doesn't depend on pointer comparisons.
807 * include/bits/cow_string.h: Adjust comment.
808 * include/ext/type_traits.h (__is_null_pointer): Add constexpr.
809 * include/std/string (erase, erase_if): Add constexpr.
810 * include/std/version (__cpp_lib_constexpr_string): Update
812 * testsuite/21_strings/basic_string/cons/char/constexpr.cc:
814 * testsuite/21_strings/basic_string/cons/wchar_t/constexpr.cc:
816 * testsuite/21_strings/basic_string/literals/constexpr.cc:
818 * testsuite/21_strings/basic_string/modifiers/constexpr.cc: New test.
819 * testsuite/21_strings/basic_string/modifiers/swap/char/constexpr.cc:
821 * testsuite/21_strings/basic_string/modifiers/swap/wchar_t/constexpr.cc:
823 * testsuite/21_strings/basic_string/version.cc: New test.
825 2021-11-16 Jonathan Wakely <jwakely@redhat.com>
827 * include/bits/stl_bvector.h (swap(_Bit_reference, _Bit_reference))
828 (swap(_Bit_reference, bool&), swap(bool&, _Bit_reference)):
829 Define as hidden friends of _Bit_reference.
831 2021-11-16 Jonathan Wakely <jwakely@redhat.com>
833 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/1.cc:
834 Fix reads past the end of strings.
835 * testsuite/21_strings/basic_string/operations/compare/wchar_t/1.cc:
837 * testsuite/experimental/string_view/operations/compare/wchar_t/1.cc:
840 2021-11-16 Jonathan Wakely <jwakely@redhat.com>
842 * testsuite/21_strings/basic_string/allocator/71964.cc: Fix
844 * testsuite/23_containers/set/allocator/71964.cc: Likewise.
846 2021-11-15 Jason Merrill <jason@redhat.com>
848 * testsuite/20_util/to_address/1_neg.cc: Adjust error.
849 * testsuite/26_numerics/random/concept.cc: Adjust asserts.
851 2021-11-15 François Dumont <fdumont@gcc.gnu.org>
853 * include/bits/hashtable_policy.h:
854 (_Hash_code_base<>::_M_hash_code(const _Hash&, const _Hash_node_value<_Value, true>&)): New.
855 (_Hash_code_base<>::_M_hash_code<_H2>(const _H2&, const _Hash_node_value<>&)): New.
856 * include/bits/hashtable.h (_Hashtable<>::_M_merge_unique): Use latter.
857 (_Hashtable<>::_M_merge_multi): Likewise.
858 * testsuite/23_containers/unordered_multiset/modifiers/merge.cc (test05): New test.
859 * testsuite/23_containers/unordered_set/modifiers/merge.cc (test04): New test.
861 2021-11-15 Jason Merrill <jason@redhat.com>
863 * src/c++17/memory_resource.cc: Add missing constexpr.
864 * include/experimental/internet: Only mark copy constructor
865 as constexpr with __cpp_constexpr_dynamic_alloc.
867 2021-11-14 François Dumont <fdumont@gcc.gnu.org>
869 * include/debug/safe_container.h (_Safe_container<>::_M_safe): Remove.
870 * include/debug/deque (deque::operator=(initializer_list<>)): Replace
871 _M_base() call with _Base:: call.
872 (deque::operator[](size_type)): Likewise.
873 * include/debug/forward_list (forward_list(forward_list&&, const allocator_type&)):
874 Remove _M_safe() and _M_base() calls.
875 (forward_list::operator=(initializer_list<>)): Remove _M_base() calls.
876 (forward_list::splice_after, forward_list::merge): Likewise.
877 * include/debug/list (list(list&&, const allocator_type&)):
878 Remove _M_safe() and _M_base() calls.
879 (list::operator=(initializer_list<>)): Remove _M_base() calls.
880 (list::splice, list::merge): Likewise.
881 * include/debug/map.h (map(map&&, const allocator_type&)):
882 Remove _M_safe() and _M_base() calls.
883 (map::operator=(initializer_list<>)): Remove _M_base() calls.
884 * include/debug/multimap.h (multimap(multimap&&, const allocator_type&)):
885 Remove _M_safe() and _M_base() calls.
886 (multimap::operator=(initializer_list<>)): Remove _M_base() calls.
887 * include/debug/set.h (set(set&&, const allocator_type&)):
888 Remove _M_safe() and _M_base() calls.
889 (set::operator=(initializer_list<>)): Remove _M_base() calls.
890 * include/debug/multiset.h (multiset(multiset&&, const allocator_type&)):
891 Remove _M_safe() and _M_base() calls.
892 (multiset::operator=(initializer_list<>)): Remove _M_base() calls.
893 * include/debug/string (basic_string(basic_string&&, const allocator_type&)):
894 Remove _M_safe() and _M_base() calls.
895 (basic_string::operator=(initializer_list<>)): Remove _M_base() call.
896 (basic_string::operator=(const _CharT*), basic_string::operator=(_CharT)): Likewise.
897 (basic_string::operator[](size_type), basic_string::operator+=(const basic_string&)):
899 (basic_string::operator+=(const _Char*), basic_string::operator+=(_CharT)): Likewise.
900 * include/debug/unordered_map (unordered_map(unordered_map&&, const allocator_type&)):
901 Remove _M_safe() and _M_base() calls.
902 (unordered_map::operator=(initializer_list<>), unordered_map::merge):
903 Remove _M_base() calls.
904 (unordered_multimap(unordered_multimap&&, const allocator_type&)):
905 Remove _M_safe() and _M_base() calls.
906 (unordered_multimap::operator=(initializer_list<>), unordered_multimap::merge):
907 Remove _M_base() calls.
908 * include/debug/unordered_set (unordered_set(unordered_set&&, const allocator_type&)):
909 Remove _M_safe() and _M_base() calls.
910 (unordered_set::operator=(initializer_list<>), unordered_set::merge):
911 Remove _M_base() calls.
912 (unordered_multiset(unordered_multiset&&, const allocator_type&)):
913 Remove _M_safe() and _M_base() calls.
914 (unordered_multiset::operator=(initializer_list<>), unordered_multiset::merge):
915 Remove _M_base() calls.
916 * include/debug/vector (vector(vector&&, const allocator_type&)):
917 Remove _M_safe() and _M_base() calls.
918 (vector::operator=(initializer_list<>)): Remove _M_base() calls.
919 (vector::operator[](size_type)): Likewise.
921 2021-11-13 Jonathan Wakely <jwakely@redhat.com>
923 * include/Makefile.am: Add spanstream header.
924 * include/Makefile.in: Regenerate.
925 * include/precompiled/stdc++.h: Add spanstream header.
926 * include/std/version (__cpp_lib_spanstream): Define.
927 * include/std/spanstream: New file.
928 * testsuite/27_io/spanstream/1.cc: New test.
929 * testsuite/27_io/spanstream/version.cc: New test.
931 2021-11-13 Hans-Peter Nilsson <hp@axis.com>
934 * acinclude.m4 (GLIBCXX_CHECK_GETENTROPY, GLIBCXX_CHECK_ARC4RANDOM):
935 Use GCC_TRY_COMPILE_OR_LINK instead of AC_TRY_COMPILE.
936 * configure: Regenerate.
938 2021-11-12 Jonathan Wakely <jwakely@redhat.com>
941 * acinclude.m4 (libtool_VERSION): Bump version.
942 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Add version and
944 * configure: Regenerate.
945 * include/bits/c++config (__replacement_assert): Remove, declare
946 __glibcxx_assert_fail instead.
947 * src/c++11/debug.cc (__glibcxx_assert_fail): New function to
948 replace __replacement_assert, writing to stderr instead of
950 * testsuite/util/testsuite_abi.cc: Update latest version.
952 2021-11-12 Jonathan Wakely <jwakely@redhat.com>
953 Josh Marshall <joshua.r.marshall.1991@gmail.com>
955 * include/bits/alloc_traits.h (_Destroy): Make constexpr for
957 * include/bits/allocator.h (__shrink_to_fit::_S_do_it):
959 * include/bits/stl_algobase.h (__fill_a1): Declare _Bit_iterator
960 overload constexpr for C++20.
961 * include/bits/stl_bvector.h (_Bit_type, _S_word_bit): Move out
963 (_Bit_reference, _Bit_iterator_base, _Bit_iterator)
964 (_Bit_const_iterator, _Bvector_impl_data, _Bvector_base)
965 (vector<bool, A>>): Add constexpr to every member function.
966 (_Bvector_base::_M_allocate): Initialize storage during constant
968 (vector<bool, A>::_M_initialize_value): Use __fill_bvector_n
970 (__fill_bvector_n): New helper function to replace memset during
972 * include/bits/stl_uninitialized.h (__uninitialized_copy<false>):
974 (__do_uninit_copy): New function.
975 (__uninitialized_fill<false>): Move logic to ...
976 (__do_uninit_fill): New function.
977 (__uninitialized_fill_n<false>): Move logic to ...
978 (__do_uninit_fill_n): New function.
979 (__uninitialized_copy_a): Add constexpr. Use __do_uninit_copy.
980 (__uninitialized_move_a, __uninitialized_move_if_noexcept_a):
982 (__uninitialized_fill_a): Add constexpr. Use __do_uninit_fill.
983 (__uninitialized_fill_n_a): Add constexpr. Use
985 (__uninitialized_default_n, __uninitialized_default_n_a)
986 (__relocate_a_1, __relocate_a): Add constexpr.
987 * include/bits/stl_vector.h (_Vector_impl_data, _Vector_impl)
988 (_Vector_base, vector): Add constexpr to every member function.
989 (_Vector_impl::_S_adjust): Disable ASan annotation during
991 (_Vector_base::_S_use_relocate): Disable bitwise-relocation
992 during constant evaluation.
993 (vector::_Temporary_value): Use a union for storage.
994 * include/bits/vector.tcc (vector, vector<bool>): Add constexpr
995 to every member function.
996 * include/std/vector (erase_if, erase): Add constexpr.
997 * testsuite/23_containers/headers/vector/synopsis.cc: Add
998 constexpr for C++20 mode.
999 * testsuite/23_containers/vector/bool/cmp_c++20.cc: Change to
1000 compile-only test using constant expressions.
1001 * testsuite/23_containers/vector/bool/capacity/29134.cc: Adjust
1002 namespace for _S_word_bit.
1003 * testsuite/23_containers/vector/bool/modifiers/insert/31370.cc:
1005 * testsuite/23_containers/vector/cmp_c++20.cc: Likewise.
1006 * testsuite/23_containers/vector/cons/89164.cc: Adjust errors
1007 for C++20 and move C++17 test to ...
1008 * testsuite/23_containers/vector/cons/89164_c++17.cc: ... here.
1009 * testsuite/23_containers/vector/bool/capacity/constexpr.cc: New test.
1010 * testsuite/23_containers/vector/bool/cons/constexpr.cc: New test.
1011 * testsuite/23_containers/vector/bool/element_access/constexpr.cc: New test.
1012 * testsuite/23_containers/vector/bool/modifiers/assign/constexpr.cc: New test.
1013 * testsuite/23_containers/vector/bool/modifiers/constexpr.cc: New test.
1014 * testsuite/23_containers/vector/bool/modifiers/swap/constexpr.cc: New test.
1015 * testsuite/23_containers/vector/capacity/constexpr.cc: New test.
1016 * testsuite/23_containers/vector/cons/constexpr.cc: New test.
1017 * testsuite/23_containers/vector/data_access/constexpr.cc: New test.
1018 * testsuite/23_containers/vector/element_access/constexpr.cc: New test.
1019 * testsuite/23_containers/vector/modifiers/assign/constexpr.cc: New test.
1020 * testsuite/23_containers/vector/modifiers/constexpr.cc: New test.
1021 * testsuite/23_containers/vector/modifiers/swap/constexpr.cc: New test.
1023 2021-11-11 Jonathan Wakely <jwakely@redhat.com>
1025 * include/debug/deque (deque::operator=(const deque&)): Remove
1027 * include/debug/list (list::operator=(const list&)): Likewise.
1028 * include/debug/map.h (map::operator=(const map&)): Likewise.
1029 * include/debug/multimap.h (multimap::operator=(const multimap&)):
1031 * include/debug/multiset.h (multiset::operator=(const multiset&)):
1033 * include/debug/set.h (set::operator=(const set&)): Likewise.
1034 * include/debug/string (basic_string::operator=(const basic_string&)):
1036 * include/debug/vector (vector::operator=(const vector&)):
1038 (_Safe_vector::operator=(const _Safe_vector&)): Define for
1041 2021-11-11 Jonathan Wakely <jwakely@redhat.com>
1043 * include/std/memory_resource (memory_resource::allocate):
1044 Implicitly create objects in the returned storage.
1046 2021-11-11 Jonathan Wakely <jwakely@redhat.com>
1048 * include/bits/stl_bvector.h (vector<bool>::data()): Give
1049 protected access, and delete for C++11 and later.
1051 2021-11-10 Jonathan Wakely <jwakely@redhat.com>
1054 * testsuite/17_intro/headers/c++1998/49745.cc: Explicitly list
1055 all C++ headers instead of including <bits/stdc++.h>
1057 2021-11-10 Jonathan Wakely <jwakely@redhat.com>
1061 * config/os/gnu-linux/os_defines.h (_GLIBCXX_GTHREAD_USE_WEAK):
1062 Define for glibc 2.34 and later.
1064 2021-11-09 François Dumont <fdumont@gcc.gnu.org>
1066 * include/bits/hashtable_policy.h (__distance_fw): Replace class keyword with
1068 * include/bits/hashtable.h (_Hashtable<>::_M_merge_unique): Remove noexcept
1069 qualification. Use const_iterator for node extraction/reinsert.
1070 (_Hashtable<>::_M_merge_multi): Likewise. Compute new hash code before extract.
1071 * include/debug/safe_container.h (_Safe_container<>): Make all methods
1073 * include/debug/safe_unordered_container.h
1074 (_Safe_unordered_container<>::_UContInvalidatePred<_ExtractKey, _Source>): New.
1075 (_Safe_unordered_container<>::_UMContInvalidatePred<_ExtractKey, _Source>): New.
1076 (_Safe_unordered_container<>::_UContMergeGuard<_Source, _InvalidatePred>): New.
1077 (_Safe_unordered_container<>::_S_uc_guard<_ExtractKey, _Source>): New.
1078 (_Safe_unordered_container<>::_S_umc_guard<_ExtractKey, _Source>): New.
1079 (_Safe_unordered_container<>::_M_invalide_all): Make public.
1080 (_Safe_unordered_container<>::_M_invalide_if): Likewise.
1081 (_Safe_unordered_container<>::_M_invalide_local_if): Likewise.
1082 * include/debug/unordered_map
1083 (unordered_map<>::mapped_type, pointer, const_pointer): New typedef.
1084 (unordered_map<>::reference, const_reference, difference_type): New typedef.
1085 (unordered_map<>::get_allocator, empty, size, max_size): Add usings.
1086 (unordered_map<>::bucket_count, max_bucket_count, bucket): Add usings.
1087 (unordered_map<>::hash_function, key_equal, count, contains): Add usings.
1088 (unordered_map<>::operator[], at, rehash, reserve): Add usings.
1089 (unordered_map<>::merge): New.
1090 (unordered_multimap<>::mapped_type, pointer, const_pointer): New typedef.
1091 (unordered_multimap<>::reference, const_reference, difference_type): New typedef.
1092 (unordered_multimap<>::get_allocator, empty, size, max_size): Add usings.
1093 (unordered_multimap<>::bucket_count, max_bucket_count, bucket): Add usings.
1094 (unordered_multimap<>::hash_function, key_equal, count, contains): Add usings.
1095 (unordered_multimap<>::rehash, reserve): Add usings.
1096 (unordered_multimap<>::merge): New.
1097 * include/debug/unordered_set
1098 (unordered_set<>::mapped_type, pointer, const_pointer): New typedef.
1099 (unordered_set<>::reference, const_reference, difference_type): New typedef.
1100 (unordered_set<>::get_allocator, empty, size, max_size): Add usings.
1101 (unordered_set<>::bucket_count, max_bucket_count, bucket): Add usings.
1102 (unordered_set<>::hash_function, key_equal, count, contains): Add usings.
1103 (unordered_set<>::rehash, reserve): Add usings.
1104 (unordered_set<>::merge): New.
1105 (unordered_multiset<>::mapped_type, pointer, const_pointer): New typedef.
1106 (unordered_multiset<>::reference, const_reference, difference_type): New typedef.
1107 (unordered_multiset<>::get_allocator, empty, size, max_size): Add usings.
1108 (unordered_multiset<>::bucket_count, max_bucket_count, bucket): Add usings.
1109 (unordered_multiset<>::hash_function, key_equal, count, contains): Add usings.
1110 (unordered_multiset<>::rehash, reserve): Add usings.
1111 (unordered_multiset<>::merge): New.
1112 * testsuite/23_containers/unordered_map/debug/merge1_neg.cc: New test.
1113 * testsuite/23_containers/unordered_map/debug/merge2_neg.cc: New test.
1114 * testsuite/23_containers/unordered_map/debug/merge3_neg.cc: New test.
1115 * testsuite/23_containers/unordered_map/debug/merge4_neg.cc: New test.
1116 * testsuite/23_containers/unordered_multimap/debug/merge1_neg.cc: New test.
1117 * testsuite/23_containers/unordered_multimap/debug/merge2_neg.cc: New test.
1118 * testsuite/23_containers/unordered_multimap/debug/merge3_neg.cc: New test.
1119 * testsuite/23_containers/unordered_multimap/debug/merge4_neg.cc: New test.
1120 * testsuite/23_containers/unordered_multiset/debug/merge1_neg.cc: New test.
1121 * testsuite/23_containers/unordered_multiset/debug/merge2_neg.cc: New test.
1122 * testsuite/23_containers/unordered_multiset/debug/merge3_neg.cc: New test.
1123 * testsuite/23_containers/unordered_multiset/debug/merge4_neg.cc: New test.
1124 * testsuite/23_containers/unordered_set/debug/merge1_neg.cc: New test.
1125 * testsuite/23_containers/unordered_set/debug/merge2_neg.cc: New test.
1126 * testsuite/23_containers/unordered_set/debug/merge3_neg.cc: New test.
1127 * testsuite/23_containers/unordered_set/debug/merge4_neg.cc: New test.
1128 * testsuite/util/testsuite_abi.h: [_GLIBCXX_DEBUG] Use normal unordered
1129 container implementation.
1131 2021-11-09 Jonathan Wakely <jwakely@redhat.com>
1133 * testsuite/26_numerics/random/random_device/cons/token.cc:
1134 Print results of random_device_available checks.
1136 2021-11-09 Jonathan Wakely <jwakely@redhat.com>
1139 * src/c++11/random.cc: Check __powerpc64__ not __powerpc__.
1141 2021-11-09 Jonathan Wakely <jwakely@redhat.com>
1143 * acinclude.m4 (GLIBCXX_CHECK_GETENTROPY, GLIBCXX_CHECK_ARC4RANDOM):
1145 * configure.ac (GLIBCXX_CHECK_GETENTROPY, GLIBCXX_CHECK_ARC4RANDOM):
1147 * config.h.in: Regenerate.
1148 * configure: Regenerate.
1149 * src/c++11/random.cc (random_device): Add getentropy and
1150 arc4random as sources.
1151 * testsuite/26_numerics/random/random_device/cons/token.cc:
1153 * testsuite/26_numerics/random/random_device/entropy.cc:
1156 2021-11-09 Jonathan Wakely <jwakely@redhat.com>
1158 * testsuite/26_numerics/random/random_device/cons/token.cc:
1159 Retry if random devices produce the same value.
1161 2021-11-09 Rasmus Villemoes <rasmus.villemoes@prevas.dk>
1163 * config/os/vxworks/os_defines.h (_GLIBCXX_HAVE_TLS): Only
1164 define for VxWorks >= 6.6.
1166 2021-11-05 Jonathan Wakely <jwakely@redhat.com>
1168 * include/bits/range_access.h (begin(valarray), end(valarray)):
1171 2021-11-05 Jonathan Wakely <jwakely@redhat.com>
1173 * include/std/tuple (tuple_size_v): Fix pack expansion.
1175 2021-11-05 Jonathan Wakely <jwakely@redhat.com>
1177 * src/c++11/random.cc (__x86_rdrand, __x86_rdseed): Add
1178 [[unlikely]] attribute.
1180 2021-11-05 Jonathan Wakely <jwakely@redhat.com>
1182 * src/c++11/random.cc [__powerpc__] (USE_DARN): Define.
1183 (__ppc_darn): New function to use POWER9 DARN instruction.
1184 (Which): Add 'darn' enumerator.
1185 (which_source): Check for __ppc_darn.
1186 (random_device::_M_init): Support "darn" and "hw" tokens.
1187 (random_device::_M_getentropy): Add darn to switch.
1188 * testsuite/26_numerics/random/random_device/cons/token.cc:
1190 * testsuite/26_numerics/random/random_device/entropy.cc:
1193 2021-11-05 Jonathan Wakely <jwakely@redhat.com>
1195 * testsuite/lib/gdb-test.exp: Add target selector support to the
1196 dg-final directives.
1197 * testsuite/libstdc++-prettyprinters/80276.cc: Add xfail for
1199 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
1200 * testsuite/libstdc++-prettyprinters/prettyprinters.exp: Tweak
1203 2021-11-04 Jonathan Wakely <jwakely@redhat.com>
1206 * python/libstdcxx/v6/printers.py (_tuple_impl_get): New helper
1207 for accessing the tuple element stored in a _Tuple_impl node.
1208 (tuple_get): New function for accessing a tuple element.
1209 (unique_ptr_get): New function for accessing a unique_ptr.
1210 (UniquePointerPrinter, StdPathPrinter): Use unique_ptr_get.
1211 * python/libstdcxx/v6/xmethods.py (UniquePtrGetWorker): Cast
1212 tuple to its base class before accessing _M_head_impl.
1214 2021-11-04 Jonathan Wakely <jwakely@redhat.com>
1216 * doc/xml/manual/evolution.xml: Document deprecations.
1217 * doc/html/*: Regenerate.
1218 * libsupc++/exception (unexpected_handler, unexpected)
1219 (get_unexpected, set_unexpected): Add deprecated attribute.
1220 Do not define without _GLIBCXX_USE_DEPRECATED for C++17 and up.
1221 * libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): Disable
1222 deprecated warnings.
1223 * libsupc++/eh_ptr.cc (std::rethrow_exception): Likewise.
1224 * libsupc++/eh_terminate.cc: Likewise.
1225 * libsupc++/eh_throw.cc (__cxa_init_primary_exception):
1227 * libsupc++/unwind-cxx.h (struct __cxa_exception): Use
1228 terminate_handler instead of unexpected_handler.
1229 (struct __cxa_dependent_exception): Likewise.
1230 (__unexpected): Likewise.
1231 * testsuite/18_support/headers/exception/synopsis.cc: Add
1232 dg-warning for deprecated warning.
1233 * testsuite/18_support/exception_ptr/60612-unexpected.cc:
1234 Disable deprecated warnings.
1235 * testsuite/18_support/set_unexpected.cc: Likewise.
1236 * testsuite/18_support/unexpected_handler.cc: Likewise.
1238 2021-11-04 Jonathan Wakely <jwakely@redhat.com>
1240 * include/bits/utility.h (__find_uniq_type_in_pack): Move
1241 definition to here, ...
1242 * include/std/tuple (__find_uniq_type_in_pack): ... from here.
1243 * include/std/variant (__detail__variant::__index_of): Remove.
1244 (__detail::__variant::__exactly_once): Define using
1245 __find_uniq_type_in_pack instead of __index_of.
1246 (get<T>, get_if<T>, variant::__index_of): Likewise.
1248 2021-11-04 Jonathan Wakely <jwakely@redhat.com>
1250 * include/bits/stl_pair.h (tuple_size_v): Define partial
1251 specializations for std::pair.
1252 * include/bits/utility.h (_Nth_type): Move definition here
1253 and define primary template.
1254 (tuple_size_v): Move definition here.
1255 * include/std/array (tuple_size_v): Define partial
1256 specializations for std::array.
1257 * include/std/tuple (tuple_size_v): Move primary template to
1258 <bits/utility.h>. Define partial specializations for
1260 (tuple_element): Change definition to use _Nth_type.
1261 * include/std/variant (_Nth_type): Move to <bits/utility.h>.
1262 (variant_alternative, variant): Adjust qualification of
1264 * testsuite/20_util/tuple/element_access/get_neg.cc: Prune
1265 additional errors from _Nth_type.
1267 2021-11-04 Jonathan Wakely <jwakely@redhat.com>
1269 * include/std/variant (__detail::__variant::__emplace): New
1271 (_Copy_assign_base::operator=): Reorder conditions to match
1272 bulleted list of effects in the standard. Use __emplace instead
1273 of _M_reset followed by _Construct.
1274 (_Move_assign_base::operator=): Likewise.
1275 (__construct_by_index): Remove.
1276 (variant::emplace): Use __emplace instead of _M_reset followed
1277 by __construct_by_index.
1278 (variant::swap): Hoist valueless cases out of visitor. Use
1279 __emplace to replace _M_reset followed by _Construct.
1281 2021-11-04 Jonathan Wakely <jwakely@redhat.com>
1283 * include/std/variant (_Nth_type): Define partial
1284 specializations to reduce number of instantiations.
1285 (variant_size_v): Define partial specializations to avoid
1287 (variant_alternative): Use _Nth_type. Add static assert.
1288 (__tuple_count, __tuple_count_v): Replace with ...
1289 (__count): New variable template.
1290 (_Variant_union): Add deleted constructor.
1291 (variant::__to_type): Use _Nth_type.
1292 (variant::emplace): Use _Nth_type. Add deleted overloads for
1293 invalid types and indices.
1295 2021-11-04 Jonathan Wakely <jwakely@redhat.com>
1298 * include/std/variant (_Variant_storage::__index_of): Remove.
1299 (__variant_construct_single): Remove.
1300 (__variant_construct): Remove.
1301 (_Copy_ctor_base::_Copy_ctor_base(const _Copy_ctor_base&)): Do
1302 construction directly instead of using __variant_construct.
1303 (_Move_ctor_base::_Move_ctor_base(_Move_ctor_base&&)): Likewise.
1304 (_Move_ctor_base::_M_destructive_move()): Remove.
1305 (_Move_ctor_base::_M_destructive_copy()): Remove.
1306 (_Copy_assign_base::operator=(const _Copy_assign_base&)): Do
1307 construction directly instead of using _M_destructive_copy.
1308 (variant::swap): Do construction directly instead of using
1309 _M_destructive_move.
1310 * testsuite/20_util/variant/102912.cc: New test.
1312 2021-11-03 Jonathan Wakely <jwakely@redhat.com>
1315 * include/bits/list.tcc (list::sort): Use mutable iterators for
1317 * include/bits/stl_list.h (_Scratch_list::_Ptr_cmp): Likewise.
1318 * testsuite/23_containers/list/operations/66742.cc: Check
1319 non-const comparisons.
1321 2021-11-03 Jonathan Wakely <jwakely@redhat.com>
1323 * include/std/valarray (valarray::valarray()): Add noexcept.
1324 (valarray::operator[]): Likewise.
1326 2021-11-01 Jonathan Wakely <jwakely@redhat.com>
1328 * include/debug/stl_iterator.h (__valid_range): Add constexpr
1329 for C++20. Qualify call to avoid ADL.
1330 (__get_distance, __can_advance, __unsafe, __base): Likewise.
1331 * testsuite/25_algorithms/move/constexpr.cc: Also check with
1332 std::reverse_iterator arguments.
1334 2021-11-01 Jonathan Wakely <jwakely@redhat.com>
1336 * include/std/span (span(Range&&)): Reorder constraints.
1338 2021-11-01 Jonathan Wakely <jwakely@redhat.com>
1341 * include/std/valarray (begin, end): Do not dereference an empty
1342 valarray. Add noexcept and [[nodiscard]].
1343 * testsuite/26_numerics/valarray/range_access.cc: Check empty
1344 valarray. Check iterator properties. Run as well as compiling.
1345 * testsuite/26_numerics/valarray/range_access2.cc: Likewise.
1346 * testsuite/26_numerics/valarray/103022.cc: New test.
1348 2021-10-29 Jonathan Wakely <jwakely@redhat.com>
1350 * testsuite/23_containers/stack/deduction.cc: Fix typo.
1352 2021-10-26 Martin Sebor <msebor@redhat.com>
1354 * testsuite/21_strings/basic_string/capacity/1.cc: Also suppress
1355 -Wstringop-overread.
1356 * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc: Same.
1358 2021-10-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1360 * testsuite/28_regex/basic_regex/84110.cc (test01)
1361 [__cpp_exceptions]: Disambiguate extended.
1363 2021-10-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1365 * testsuite/17_intro/names.cc [__sun__] (r, x): Undef.
1367 2021-10-22 Jonathan Wakely <jwakely@redhat.com>
1370 * include/std/any (make_any): Add SFINAE constraint.
1371 * testsuite/20_util/any/102894.cc: New test.
1373 2021-10-21 Jonathan Wakely <jwakely@redhat.com>
1375 * doc/doxygen/stdheader.cc: Refactor. Use C++23. Add new
1377 * scripts/run_doxygen: Fix post-processing of #include
1378 directives in man pages. Use new xg++ to compile helper program.
1380 2021-10-21 Jonathan Wakely <jwakely@redhat.com>
1382 * include/bits/mofunc_impl.h: Add doxygen comments.
1383 * include/std/functional: Likewise.
1385 2021-10-21 Jonathan Wakely <jwakely@redhat.com>
1387 * include/bits/alloc_traits.h: Suppress doxygen documentation.
1388 * include/bits/allocated_ptr.h: Likewise.
1389 * include/bits/enable_special_members.h: Likewise.
1390 * include/bits/hashtable.h: Likewise.
1391 * include/bits/hashtable_policy.h: Likewise.
1392 * include/bits/uses_allocator.h: Likewise.
1393 * include/bits/node_handle.h: Document node handles and suppress
1394 documentation for protected members.
1395 * include/std/any: Suppress documentation for implementation
1398 2021-10-21 Patrick Palka <ppalka@redhat.com>
1401 * include/bits/stl_iterator.h (__niter_base): Make constexpr
1403 (__miter_base): Likewise.
1404 * testsuite/25_algorithms/move/constexpr.cc: New test.
1406 2021-10-21 Patrick Palka <ppalka@redhat.com>
1408 * include/std/ranges (istream_view): Replace this function
1409 template with an alias template as per P2432R1.
1410 (wistream_view): Define as per P2432R1.
1411 (views::_Istream, views::istream): Likewise.
1412 * testsuite/std/ranges/istream_view.cc (test07): New test.
1414 2021-10-21 Patrick Palka <ppalka@redhat.com>
1416 * include/bits/ranges_util.h (views::_Drop): Forward declare.
1417 (subrange): Befriend views::_Drop.
1418 (subrange::_S_store_size): Declare constexpr instead of just
1419 const, remove obsolete comment.
1420 * include/std/ranges (views::__detail::__is_empty_view): Define.
1421 (views::__detail::__is_basic_string_view): Likewise.
1422 (views::__detail::__is_subrange): Likewise.
1423 (views::__detail::__is_iota_view): Likewise.
1424 (views::__detail::__can_take_view): Rename template parm _Tp to _Dp.
1425 (views::_Take): Rename template parm _Tp to _Dp, make it non-deducible
1426 and fix it to range_difference_t<_Range>. Implement P1739R4 and
1428 (views::__detail::__can_drop_view): Rename template parm _Tp to _Dp.
1429 (views::_Drop): As with views::_Take.
1430 (views::_Counted): Implement P1739R4 changes.
1431 * include/std/span (__detail::__is_std_span): Rename to ...
1432 (__detail::__is_span): ... this and turn it into a variable
1434 (__detail::__is_std_array): Turn it into a variable template.
1435 (span::span): Adjust uses of __is_std_span and __is_std_array
1437 * testsuite/std/ranges/adaptors/p1739.cc: New test.
1439 2021-10-21 Patrick Palka <ppalka@redhat.com>
1441 * include/bits/stl_iterator.h (common_iterator::__arrow_proxy):
1442 Make fully constexpr as per LWG 3595.
1443 (common_iterator::__postfix_proxy): Likewise.
1445 2021-10-21 Patrick Palka <ppalka@redhat.com>
1447 * include/std/ranges (lazy_split_view::base): Add forward_range
1448 constraint as per LWG 3591.
1449 (lazy_split_view::begin, lazy_split_view::end): Also check
1450 simpleness of _Pattern as per LWG 3592.
1451 (split_view::base): Relax copyable constraint as per LWG 3590.
1453 2021-10-21 Patrick Palka <ppalka@redhat.com>
1455 * include/std/ranges (join_view::__iter_cat::_S_iter_cat): Adjust
1456 criteria for returning bidirectional_iterator_tag as per LWG 3535.
1457 (join_view::_Iterator::_S_iter_concept): Likewise.
1459 2021-10-21 Patrick Palka <ppalka@redhat.com>
1461 * include/bits/ranges_base.h (viewable_range): Adjust as per
1463 * testsuite/std/ranges/adaptors/all.cc (test07): New test.
1465 2021-10-21 Jonathan Wakely <jwakely@redhat.com>
1468 * include/std/optional (optional::and_then, optional::transform):
1469 Remove requires-clause.
1470 * testsuite/20_util/optional/monadic/and_then.cc: Check
1471 overload resolution doesn't cause errors.
1472 * testsuite/20_util/optional/monadic/transform.cc: Likewise.
1474 2021-10-20 Jonathan Wakely <jwakely@redhat.com>
1476 * testsuite/20_util/optional/monadic/transform.cc: Check that
1477 an rvalue result is not materialized too soon.
1479 2021-10-19 Patrick Palka <ppalka@redhat.com>
1481 * include/std/ranges (iota_view::_Iterator::operator+): Adjust
1482 definition as per LWG 3580.
1483 (iota_view::_Iterator::operator-): Likewise.
1485 2021-10-19 Patrick Palka <ppalka@redhat.com>
1487 * include/std/ranges (basic_istream_view::_M_object): Value
1488 initialize as per LWG 3568.
1490 2021-10-19 Patrick Palka <ppalka@redhat.com>
1492 * include/bits/ranges_util.h
1493 (__detail::__uses_nonqualification_pointer_conversion): Define
1495 (__detail::__convertible_to_nonslicing): ... here, as per LWG 3470.
1496 * testsuite/std/ranges/subrange/1.cc: New test.
1498 2021-10-19 Patrick Palka <ppalka@redhat.com>
1500 * include/std/ranges (iota_view::_Iterator): Befriend iota_view.
1501 (iota_view::_Sentinel): Likewise.
1502 (iota_view::iota_view): Add three overloads, each taking an
1503 iterator/sentinel pair as per LWG 3523.
1504 * testsuite/std/ranges/iota/iota_view.cc (test06): New test.
1506 2021-10-19 Patrick Palka <ppalka@redhat.com>
1508 * include/bits/ranges_base.h (view_interface): Forward declare.
1509 (__detail::__is_derived_from_view_interface_fn): Declare.
1510 (__detail::__is_derived_from_view_interface): Define as per LWG 3549.
1511 (enable_view): Adjust as per LWG 3549.
1512 * include/bits/ranges_util.h (view_interface): Don't derive from
1514 * include/std/ranges (filter_view): Revert r11-3504 change.
1515 (transform_view): Likewise.
1516 (take_view): Likewise.
1517 (take_while_view): Likewise.
1518 (drop_view): Likewise.
1519 (drop_while_view): Likewise.
1520 (join_view): Likewise.
1521 (lazy_split_view): Likewise.
1522 (split_view): Likewise.
1523 (reverse_view): Likewise.
1524 * testsuite/std/ranges/adaptors/sizeof.cc: Update expected sizes.
1525 * testsuite/std/ranges/view.cc (test_view::test_view): Remove
1526 this default ctor since views no longer need to be default initable.
1529 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
1531 * src/c++11/random.cc (which_source): New helper function.
1532 (random_device::_M_getentropy()): Use which_source and return
1533 suitable values for sources other than device files.
1534 * testsuite/26_numerics/random/random_device/entropy.cc: New test.
1536 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
1538 * doc/Makefile.am (stamp-html-doxygen, stamp-html-doxygen)
1539 (stamp-latex-doxygen, stamp-man-doxygen): Fix recipes for
1540 relative ${top_srcdir}.
1541 * doc/Makefile.in: Regenerate.
1543 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
1545 * include/std/variant (_Uninitialized): Use an empty struct
1546 for the unused union member, instead of char.
1548 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
1550 * include/bits/stl_stack.h (stack(Iterator, Iterator)): Remove
1551 non-deducible template parameter from deduction guide.
1552 * testsuite/23_containers/stack/deduction.cc: Check new C++23
1555 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
1557 * include/std/optional (_Optional_payload_base::_Storage): Add
1558 constructor taking a callable function to invoke.
1559 (_Optional_payload_base::_M_apply): New function.
1560 (__cpp_lib_monadic_optional): Define for C++23.
1561 (optional::and_then, optional::transform, optional::or_else):
1563 * include/std/ranges (__detail::__cached): Remove.
1564 (__detail::__non_propagating_cache): Remove use of __cached for
1565 contained value. Use _Optional_payload_base::_M_construct and
1566 _Optional_payload_base::_M_apply to set the contained value.
1567 * include/std/version (__cpp_lib_monadic_optional): Define.
1568 * testsuite/20_util/optional/monadic/and_then.cc: New test.
1569 * testsuite/20_util/optional/monadic/or_else.cc: New test.
1570 * testsuite/20_util/optional/monadic/or_else_neg.cc: New test.
1571 * testsuite/20_util/optional/monadic/transform.cc: New test.
1572 * testsuite/20_util/optional/monadic/version.cc: New test.
1574 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
1577 * include/bits/mofunc_impl.h (move_only_function): Remove
1578 invalid base initializer.
1579 * testsuite/20_util/move_only_function/cons.cc: Instantiate
1580 constructors to check bodies.
1582 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
1584 * include/bits/fs_path.h (path::_S_convert(T)): Avoid recursive
1585 call to function with deduced return type.
1587 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
1589 * include/bits/basic_string.h (__cpp_lib_string_resize_and_overwrite):
1591 (basic_string::resize_and_overwrite): Declare.
1592 * include/bits/basic_string.tcc (basic_string::resize_and_overwrite):
1594 * include/std/version (__cpp_lib_resize_and_overwrite): Define
1596 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
1599 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
1602 * include/std/ranges (__cached): New wrapper struct.
1603 (__non_propagating_cache): Use __cached for contained value.
1604 (__non_propagating_cache::_M_emplace_deref): Add constexpr. Use
1605 std::construct_at instead of placement new.
1606 * testsuite/std/ranges/adaptors/join.cc: Check constexpr works.
1608 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
1610 * include/std/variant (__cpp_lib_variant): Update value for
1612 (__variant_cast, __variant_construct): Add constexpr for C++20.
1613 (__variant_construct_single, __construct_by_index) Likewise. Use
1614 std::_Construct instead of placement new.
1615 (_Uninitialized<T, false>) [__cplusplus >= 202002]: Replace
1616 buffer with a union and define a destructor.
1617 (_Variadic_union) [__cplusplus >= 202002]: Add a specialization
1618 for non-trivial destruction.
1619 (_Variant_storage::__index_of): New helper variable template.
1620 (_Variant_storage::~_Variant_storage()): Add constexpr.
1621 (_Variant_storage::_M_reset()): Likewise.
1622 (_Copy_ctor_base, _Move_ctor_base): Likewise.
1623 (_Copy_assign_base, _Move_assign_base): Likewise.
1624 (variant, swap): Likewise.
1625 * include/std/version (__cpp_lib_variant): Update value for
1627 * testsuite/20_util/optional/version.cc: Check for exact value
1629 * testsuite/20_util/variant/87619.cc: Increase timeout for
1631 * testsuite/20_util/variant/constexpr.cc: New test.
1632 * testsuite/20_util/variant/version.cc: New test.
1634 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
1636 * include/std/variant (__detail::__variant::__get_storage):
1637 Remove unused function.
1638 (__variant_construct_by_index): Set index after construction is
1639 complete. Rename to ...
1640 (__detail::__variant::__construct_by_index): ... this.
1641 (variant): Use new name for __variant_construct_by_index friend
1642 declaration. Remove __get_storage friend declaration.
1643 (variant::emplace): Use new name and remove try-blocks.
1645 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
1647 * include/std/variant (_Variant_storage::_M_storage()): Remove.
1648 (__detail::__variant::__get_storage): Remove.
1649 (variant): Remove friend declaration of __get_storage.
1651 2021-10-15 Jason Merrill <jason@redhat.com>
1653 * testsuite/20_util/integer_comparisons/greater_equal_neg.cc:
1654 * testsuite/20_util/integer_comparisons/greater_neg.cc:
1655 * testsuite/20_util/integer_comparisons/less_equal_neg.cc:
1656 Adjust expected message.
1657 * testsuite/lib/prune.exp: Prune 'in constexpr expansion'.
1659 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
1661 * include/std/variant (__variant::__get(in_place_index_t<N>, U&&)):
1662 Rename to __get_n and remove first argument. Replace pair of
1663 overloads with a single function using 'if constexpr'.
1664 (__variant::__get(Variant&&)): Adjust to use __get_n.
1666 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
1668 * include/bits/fs_path.h (path(path&&)): Make unconditionally
1670 (path::_S_convert(T)): Add condtional noexcept.
1672 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
1675 * include/bits/fs_path.h (path::_S_convert(T)): Fix condition
1676 for returning the same string unchanged.
1678 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
1680 * include/bits/regex.h: Check __cpp_inline_variables instead of
1683 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
1685 * testsuite/20_util/is_layout_compatible/version.cc: Check
1688 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
1690 * include/bits/stl_construct.h (_Construct): Use
1691 std::construct_at when constant evaluated.
1692 * include/std/optional (_Storage, _Optional_payload, optional):
1693 Add constexpr as specified by P2231R1.
1694 * include/std/version (__cpp_lib_optional): Update value for
1696 * testsuite/20_util/optional/requirements.cc: Check feature test
1698 * testsuite/20_util/optional/constexpr/assign.cc: New test.
1699 * testsuite/20_util/optional/constexpr/cons/conv.cc: New test.
1700 * testsuite/20_util/optional/constexpr/modifiers.cc: New test.
1701 * testsuite/20_util/optional/constexpr/swap.cc: New test.
1702 * testsuite/20_util/optional/version.cc: New test.
1704 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
1706 * include/bits/fs_path.h (__detail::__is_contiguous): Add
1707 partial specializations for pointers and __normal_iterator.
1709 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
1711 * testsuite/27_io/filesystem/path/construct/102592.C: Moved to...
1712 * testsuite/27_io/filesystem/path/construct/102592.cc: ...here.
1713 * testsuite/28_regex/match_results/102667.C: Moved to...
1714 * testsuite/28_regex/match_results/102667.cc: ...here.
1716 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
1718 * include/bits/fs_path.h (__detail::__is_contiguous): New
1719 variable template to identify contiguous iterators.
1720 (__detail::__unified_char8_t): New alias template to decide when
1721 to treat char8_t as char without encoding conversion.
1722 (__detail::__effective_range(const basic_string<C,T>&)): Use
1723 std::char_traits<C> for returned string view.
1724 (__detail::__effective_range(const basic_string_view<C,T>&)):
1726 (__detail::__effective_range(const Source&)): Use
1727 __is_contiguous to detect mode cases of contiguous iterators.
1728 Use __unified_char8_t to return a std::string instead of
1731 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
1734 * include/bits/fs_path.h (path::path(Iter, Iter, format))
1735 (path::append(Iter, Iter), path::concat(Iter, Iter)): Call
1736 __string_from_range directly, instead of two-argument overload
1738 (path::_S_convert(Iter, Iter)): Remove.
1739 * testsuite/27_io/filesystem/path/construct/102592.C: New test.
1741 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
1743 * include/bits/c++config (__terminate): Add extern "C++".
1745 2021-10-12 Jonathan Wakely <jwakely@redhat.com>
1747 * testsuite/20_util/tuple/comparison_operators/overloaded.cc:
1748 Restore test for operator<.
1749 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
1750 Adjust expected errors for C++20.
1752 2021-10-12 Jonathan Wakely <jwakely@redhat.com>
1755 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)): Define as
1757 * testsuite/20_util/tuple/cons/101960.cc: Check tuples with
1758 array elements before the last element.
1760 2021-10-12 Jonathan Wakely <jwakely@redhat.com>
1762 * include/bits/stl_iterator_base_funcs.h (__advance): Add
1763 deleted overload to improve diagnostics.
1764 (__distance): Likewise.
1766 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
1768 * include/bits/atomic_timed_wait.h: Remove unused header.
1769 * include/bits/c++config (std:__terminate): Define.
1770 * include/bits/semaphore_base.h: Remove <exception> and use
1771 __terminate instead of terminate.
1772 * include/bits/std_thread.h: Likewise.
1773 * libsupc++/eh_terminate.cc (std::terminate): Use qualified-id
1774 to call __cxxabiv1::__terminate.
1776 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
1778 * include/bits/regex.h (basic_regex::assign(Iter, Iter)): Avoid
1779 std::__to_address by using poitner directly or using base()
1780 member of __normal_iterator.
1782 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
1784 * testsuite/18_support/numeric_limits/lowest.cc: Use
1785 numeric_limits<T>::is_integer instead of is_integral<T>::value.
1787 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
1790 * include/bits/regex.h (basic_regex(const _Ch_type*, size_t)):
1791 Add __glibcxx_requires_string_len assertion.
1792 (basic_regex::assign(InputIterator, InputIterator)): Add
1793 __glibcxx_requires_valid_range assertion.
1794 * include/bits/regex_scanner.tcc (_Scanner::_M_advance())
1795 (_Scanner::_M_scan_normal()): Use string literal in assertions.
1797 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
1800 * include/bits/regex.h (match_result::empty()): Optimize by
1801 calling the base function directly.
1802 (match_results::end()): Check _Base_type::empty() not empty().
1803 * testsuite/28_regex/match_results/102667.C: New test.
1805 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
1808 * testsuite/18_support/numeric_limits/lowest.cc: Remove use of
1809 _GLIBCXX_USE_WCHAR_T.
1810 * testsuite/18_support/numeric_limits/min_max.cc: Replace use of
1811 _GLIBCXX_USE_WCHAR_T with checks for WCHAR_MIN and WCHAR_MAX.
1812 * testsuite/20_util/from_chars/1_neg.cc: Remove use of
1813 _GLIBCXX_USE_WCHAR_T.
1814 * testsuite/20_util/function_objects/searchers.cc: Likewise. Use
1815 char_traits<wchar_t>::length instead of wcslen.
1816 * testsuite/20_util/hash/requirements/explicit_instantiation.cc:
1818 * testsuite/20_util/is_arithmetic/value.cc: Likewise.
1819 * testsuite/20_util/is_compound/value.cc: Likewise.
1820 * testsuite/20_util/is_floating_point/value.cc: Likewise.
1821 * testsuite/20_util/is_fundamental/value.cc: Likewise.
1822 * testsuite/20_util/is_integral/value.cc: Likewise.
1823 * testsuite/20_util/is_signed/value.cc: Likewise.
1824 * testsuite/20_util/is_unsigned/value.cc: Likewise.
1825 * testsuite/20_util/is_void/value.cc: Likewise.
1826 * testsuite/20_util/make_signed/requirements/typedefs-1.cc:
1828 * testsuite/20_util/make_signed/requirements/typedefs-2.cc:
1830 * testsuite/20_util/make_signed/requirements/typedefs-3.cc:
1832 * testsuite/20_util/make_signed/requirements/typedefs-4.cc:
1834 * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
1836 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
1838 * testsuite/20_util/make_unsigned/requirements/typedefs-3.cc:
1840 * testsuite/20_util/to_chars/3.cc: Likewise.
1841 * testsuite/20_util/type_identity/requirements/typedefs.cc:
1843 * testsuite/21_strings/basic_string/hash/debug.cc: Likewise.
1844 * testsuite/21_strings/basic_string/hash/hash.cc: Likewise.
1845 * testsuite/21_strings/basic_string/literals/types-char8_t.cc:
1847 * testsuite/21_strings/basic_string/literals/types.cc: Likewise.
1848 * testsuite/21_strings/basic_string/literals/values-char8_t.cc:
1850 * testsuite/21_strings/basic_string/literals/values.cc:
1852 * testsuite/21_strings/basic_string/modifiers/64422.cc:
1854 * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
1856 * testsuite/21_strings/basic_string/requirements/citerators.cc:
1858 * testsuite/21_strings/basic_string/requirements/typedefs.cc:
1860 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
1862 * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
1864 * testsuite/21_strings/basic_string_view/literals/types.cc:
1866 * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
1868 * testsuite/21_strings/basic_string_view/literals/values.cc:
1870 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
1872 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
1873 * testsuite/21_strings/char_traits/requirements/constexpr_functions.cc:
1875 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
1877 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
1879 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Likewise.
1880 * testsuite/25_algorithms/fill/4.cc: Likewise.
1881 * testsuite/25_algorithms/fill_n/1.cc: Likewise.
1882 * testsuite/experimental/functional/searchers.cc: Likewise. Use
1883 char_traits<wchar_t>::length instead of wcslen.
1884 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc:
1886 * testsuite/experimental/string_view/literals/types-char8_t.cc:
1888 * testsuite/experimental/string_view/literals/types.cc:
1890 * testsuite/experimental/string_view/literals/values-char8_t.cc:
1892 * testsuite/experimental/string_view/literals/values.cc:
1894 * testsuite/experimental/string_view/range_access/wchar_t/1.cc:
1896 * testsuite/experimental/string_view/requirements/typedefs.cc:
1898 * testsuite/experimental/string_view/typedefs.cc: Likewise.
1899 * testsuite/ext/vstring/range_access.cc: Likewise.
1900 * testsuite/std/concepts/concepts.lang/concept.arithmetic/integral.cc:
1902 * testsuite/std/concepts/concepts.lang/concept.arithmetic/signed_integral.cc:
1904 * testsuite/std/concepts/concepts.lang/concept.arithmetic/unsigned_integral.cc:
1906 * testsuite/tr1/4_metaprogramming/is_arithmetic/value.cc:
1908 * testsuite/tr1/4_metaprogramming/is_compound/value.cc:
1910 * testsuite/tr1/4_metaprogramming/is_floating_point/value.cc:
1912 * testsuite/tr1/4_metaprogramming/is_fundamental/value.cc:
1914 * testsuite/tr1/4_metaprogramming/is_integral/value.cc:
1916 * testsuite/tr1/4_metaprogramming/is_signed/value.cc: Likewise.
1917 * testsuite/tr1/4_metaprogramming/is_unsigned/value.cc:
1919 * testsuite/tr1/4_metaprogramming/is_void/value.cc: Likewise.
1920 * testsuite/tr1/6_containers/hash/24799.cc: Likewise.
1922 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
1925 * include/std/ostream (operator<<(basic_ostream<char, Tr>&, wchar_t))
1926 (operator<<(basic_ostream<char, Tr>&, const wchar_t*)): Always
1927 define as deleted. Do not check _GLIBCXX_USE_WCHAR_T.
1929 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
1932 * include/bits/locale_conv.h (wstring_convert, wbuffer_convert):
1933 Define unconditionally. Do not check _GLIBCXX_USE_WCHAR_T.
1935 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
1938 * include/c_global/cstddef [!_GLIBCXX_USE_WCHAR_T]
1939 (__byte_operand<wchar_t>): Define specialization.
1940 * include/std/type_traits (__make_signed<wchar_t>)
1941 (__make_unsigned<wchar_t>): Remove redundant check for
1942 __WCHAR_TYPE__ being defined.
1943 * include/tr1/type_traits [!_GLIBCXX_USE_WCHAR_T]
1944 (__is_integral_helper<wchar_t>): Likewise.
1946 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
1949 * include/ext/rc_string_base.h [!_GLIBCXX_USE_WCHAR_T]
1950 (__rc_string_base<wchar_t>): Define member function.
1951 * include/ext/vstring.h [!_GLIBCXX_USE_WCHAR_T]
1952 (hash<__gnu_cxx::__wvstring>): Define specialization.
1953 * include/ext/vstring_fwd.h [!_GLIBCXX_USE_WCHAR_T] (__wvstring)
1954 (__wsso_string, __wrc_string): Declare typedefs.
1956 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
1959 * include/bits/char_traits.h (char_traits<wchar_t>): Define
1960 explicit specialization unconditionally.
1961 * include/bits/basic_string.h (hash<wstring>): Define
1962 unconditionally. Do not check _GLIBCXX_USE_WCHAR_T.
1963 * include/bits/stringfwd.h (wstring): Likewise.
1964 * include/debug/string (wstring): Likewise.
1965 * include/experimental/string_view (experimental::wstring_view)
1966 (hash<experimental::wstring_view>): Likewise.
1967 * include/std/string (pmr::wstring, hash<pmr::wstring>):
1969 * include/std/string_view (wstring_view, hash<wstring_view>):
1972 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
1974 * testsuite/27_io/basic_filebuf/close/81256.cc: Moved to...
1975 * testsuite/27_io/basic_filebuf/close/wchar_t/81256.cc: ...here.
1977 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
1979 * testsuite/22_locale/conversions/buffer/1.cc: Check
1980 _GLIBCXX_USE_WCHAR_T.
1981 * testsuite/22_locale/conversions/buffer/3.cc: Likewise. Add
1982 test using char16_t.
1983 * testsuite/22_locale/conversions/string/1.cc: Check
1984 _GLIBCXX_USE_WCHAR_T.
1985 * testsuite/27_io/filesystem/path/generic/generic_string.cc:
1987 * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
1989 * testsuite/27_io/filesystem/path/native/alloc.cc: Likewise.
1990 * testsuite/27_io/filesystem/path/native/string-char8_t.cc:
1992 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
1993 * testsuite/28_regex/algorithms/regex_match/extended/wstring_locale.cc:
1995 * testsuite/experimental/filesystem/path/generic/generic_string.cc:
1997 * testsuite/experimental/filesystem/path/native/alloc.cc:
1999 * testsuite/experimental/filesystem/path/native/string-char8_t.cc:
2001 * testsuite/experimental/filesystem/path/native/string.cc:
2004 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
2006 * testsuite/26_numerics/bit/bit.rotate/rotr.cc:
2007 * testsuite/util/testsuite_common_types.h:
2009 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
2011 * testsuite/18_support/numeric_limits/40856.cc: Replace use of
2012 _GLIBCXX_USE_INT128.
2013 * testsuite/18_support/numeric_limits/dr559.cc: Likewise.
2014 * testsuite/18_support/numeric_limits/lowest.cc: Likewise.
2015 * testsuite/18_support/numeric_limits/max_digits10.cc: Likewise.
2016 * testsuite/20_util/is_floating_point/value.cc: Likewise.
2017 * testsuite/20_util/is_integral/value.cc: Likewise.
2018 * testsuite/20_util/is_signed/value.cc: Likewise.
2019 * testsuite/20_util/is_unsigned/value.cc: Likewise.
2020 * testsuite/20_util/make_signed/requirements/typedefs-1.cc:
2022 * testsuite/20_util/make_signed/requirements/typedefs-2.cc:
2024 * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
2026 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
2028 * testsuite/20_util/type_identity/requirements/typedefs.cc:
2030 * testsuite/26_numerics/bit/bit.count/countl_one.cc: Likewise.
2031 * testsuite/26_numerics/bit/bit.count/countl_zero.cc: Likewise.
2032 * testsuite/26_numerics/bit/bit.count/countr_one.cc: Likewise.
2033 * testsuite/26_numerics/bit/bit.count/countr_zero.cc: Likewise.
2034 * testsuite/26_numerics/bit/bit.count/popcount.cc: Likewise.
2035 * testsuite/26_numerics/bit/bit.pow.two/bit_ceil.cc: Likewise.
2036 * testsuite/26_numerics/bit/bit.pow.two/bit_floor.cc: Likewise.
2037 * testsuite/26_numerics/bit/bit.pow.two/bit_width.cc: Likewise.
2038 * testsuite/26_numerics/bit/bit.pow.two/has_single_bit.cc:
2040 * testsuite/26_numerics/bit/bit.rotate/rotl.cc: Likewise.
2042 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
2044 * include/bits/hashtable_policy.h (_Select1st): Replace use of
2046 (_Select2nd): Remove.
2047 (_NodeBuilder::_S_build): Use _NodeGenerator::__node_type
2048 typedef instead of deducing it. Remove unnecessary piecewise
2050 (_ReuseOrAllocNode): Make __node_type public.
2051 (_Map_base): Adjust partial specialization to be able to extract
2052 the mapped_type without using tuple_element.
2053 (_Map_base::at): Define inline
2054 * testsuite/23_containers/unordered_map/requirements/53339.cc:
2056 * testsuite/23_containers/unordered_multimap/requirements/53339.cc:
2059 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
2061 * include/bits/hashtable.h: Move static assertion to destructor.
2062 * include/bits/hashtable_policy.h: Deduce value type from node
2063 type without instantiating it.
2065 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
2067 * src/c++11/limits.cc: Fail if __cpp_inline_variables is
2070 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
2073 * include/bits/ranges_algobase.h: Replace <iterator> with a
2074 subset of the headers it includes.
2076 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
2078 * include/experimental/deque (erase, erase_if): Revert changes
2079 to avoid debug mode overhead.
2080 * include/experimental/map (erase, erase_if): Likewise.
2081 * include/experimental/set (erase, erase_if): Likewise.
2082 * include/experimental/unordered_map (erase, erase_if):
2084 * include/experimental/unordered_set (erase, erase_if):
2086 * include/experimental/vector (erase, erase_if): Likewise.
2087 * include/std/deque (erase, erase_if): Likewise.
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.
2094 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
2096 * include/std/chrono (__detail::__units_suffix_misc): New
2098 (__detail::__units_suffix): Likewise.
2099 (chrono::operator<<(basic_ostream&, const duration&)): Define.
2100 * testsuite/20_util/duration/io.cc: New test.
2102 2021-10-07 Jonathan Wakely <jwakely@redhat.com>
2104 * include/Makefile.am: Add new header.
2105 * include/Makefile.in: Regenerate.
2106 * include/std/chrono (duration, time_point, system_clock)
2107 (steady_clock, high_resolution_clock, chrono_literals, sys_time)
2108 (file_clock, file_time): Move to ...
2109 * include/bits/chrono.h: New file.
2110 * include/bits/atomic_futex.h: Include new header instead of
2112 * include/bits/atomic_timed_wait.h: Likewise.
2113 * include/bits/fs_fwd.h: Likewise.
2114 * include/bits/semaphore_base.h: Likewise.
2115 * include/bits/this_thread_sleep.h: Likewise.
2116 * include/bits/unique_lock.h: Likewise.
2117 * include/experimental/bits/fs_fwd.h: Likewise.
2118 * include/experimental/chrono: Likewise.
2119 * include/experimental/io_context: Likewise.
2120 * include/experimental/netfwd: Likewise.
2121 * include/experimental/timer: Likewise.
2122 * include/std/condition_variable: Likewise.
2123 * include/std/mutex: Likewise.
2124 * include/std/shared_mutex: Likewise.
2126 2021-10-07 Jonathan Wakely <jwakely@redhat.com>
2129 * include/bits/atomic_wait.h (__waiter_pool_base:_S_align):
2130 Hardcode to 64 instead of using non-constant constant.
2132 2021-10-07 Jonathan Wakely <jwakely@redhat.com>
2134 * include/bits/erase_if.h (__erase_nodes_if): Remove redundant
2136 * include/std/string (erase, erase_if): Likewise.
2137 * include/std/deque (erase, erase_if): Access non-debug
2139 * include/std/map (erase, erase_if): Likewise.
2140 * include/std/set (erase, erase_if): Likewise.
2141 * include/std/unordered_map (erase, erase_if): Likewise.
2142 * include/std/unordered_set (erase, erase_if): Likewise.
2143 * include/std/vector (erase, erase_if): Likewise.
2144 * include/experimental/deque (erase, erase_if): Likewise.
2145 * include/experimental/map (erase, erase_if): Likewise.
2146 * include/experimental/set (erase, erase_if): Likewise.
2147 * include/experimental/unordered_map (erase, erase_if):
2149 * include/experimental/unordered_set (erase, erase_if):
2151 * include/experimental/vector (erase, erase_if): Likewise.
2153 2021-10-06 Jonathan Wakely <jwakely@redhat.com>
2155 * include/Makefile.am: Add new headers.
2156 * include/Makefile.in: Regenerate.
2157 * include/std/functional: Include <bits/move_only_function.h>.
2158 * include/std/version (__cpp_lib_move_only_function): Define.
2159 * include/bits/mofunc_impl.h: New file.
2160 * include/bits/move_only_function.h: New file.
2161 * testsuite/20_util/move_only_function/call.cc: New test.
2162 * testsuite/20_util/move_only_function/cons.cc: New test.
2163 * testsuite/20_util/move_only_function/move.cc: New test.
2164 * testsuite/20_util/move_only_function/version.cc: New test.
2166 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
2168 * testsuite/21_strings/basic_string_view/requirements/trivially_copyable.cc:
2170 * testsuite/23_containers/span/trivially_copyable.cc: New test.
2172 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
2174 * include/bits/utility.h (__is_in_place_type_v): Define
2175 variable template to detect in_place_type_t specializations.
2176 (__is_in_place_type): Replace class template with alias
2177 template using __is_in_place_type_v.
2178 * include/std/any (any(T&&)): Check __is_in_place_type first and
2179 avoid instantiating is_copy_constructible unnecessarily.
2181 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
2183 * testsuite/20_util/integer_comparisons/greater.cc: New test.
2185 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
2187 * testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc:
2188 Check result matches non-volatile pointer.
2190 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
2193 * testsuite/20_util/is_trivially_constructible/value.cc: Adjust
2194 expected value for C++20.
2196 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
2198 * include/bits/std_function.h (_Any_data::_M_access): Add
2200 (_Function_base::_Base_manager::_M_get_pointer): Likewise.
2201 (_Function_base::_Base_manager::_M_not_empty_function):
2204 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
2206 * include/std/ostream (operator<<(const volatile void*)):
2207 Add new overload, as per P1147R1.
2208 * testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc:
2211 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
2213 * include/bits/stl_queue.h
2214 (__cpp_lib_adaptor_iterator_pair_constructor): Set to correct
2216 * include/bits/stl_stack.h
2217 (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
2218 * include/std/version
2219 (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
2220 * testsuite/23_containers/queue/cons_from_iters.cc: Update
2222 * testsuite/23_containers/stack/cons_from_iters.cc: Likewise.
2224 2021-10-04 Jonathan Wakely <jwakely@redhat.com>
2226 * include/bits/forward_list.h (forward_list): Use non-deduced
2227 context for allocator parameter of allocator-extended copy and
2229 * include/bits/stl_bvector.h (vector<bool>): Likewise.
2230 * include/bits/stl_deque.h (deque): Likewise.
2231 * include/bits/stl_list.h (list): Likewise.
2232 * include/bits/stl_map.h (map): Likewise.
2233 * include/bits/stl_multimap.h (multimap): Likewise.
2234 * include/bits/stl_multiset.h (multiset): Likewise.
2235 * include/bits/stl_set.h (set): Likewise.
2236 * include/bits/stl_vector.h (vector): Likewise.
2237 * include/bits/stl_queue.h (queue, priority_queue): Do not
2238 constrain Allocator template parameter of deduction guides that
2239 have a Container parameter.
2240 * include/bits/stl_stack.h (stack): Likewise.
2241 * include/debug/deque (__gnu_debug::deque): Use non-deduced
2242 context for allocator parameter of allocator-extended copy and
2244 * include/debug/list (__gnu_debug::list): Likewise.
2245 * include/debug/map.h (__gnu_debug::map): Likewise.
2246 * include/debug/multimap.h (__gnu_debug::multimap): Likewise.
2247 * include/debug/multiset.h (__gnu_debug::multiset): Likewise.
2248 * include/debug/set.h (__gnu_debug::set): Likewise.
2249 * include/debug/vector (__gnu_debug::vector): Likewise.
2250 * testsuite/23_containers/deque/cons/deduction.cc: Test class
2251 template argument deduction with non-deduced allocator
2253 * testsuite/23_containers/forward_list/cons/deduction.cc:
2255 * testsuite/23_containers/list/cons/deduction.cc: Likewise.
2256 * testsuite/23_containers/map/cons/deduction.cc: Likewise.
2257 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
2258 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
2259 * testsuite/23_containers/priority_queue/deduction.cc: Likewise.
2260 * testsuite/23_containers/queue/deduction.cc: Likewise.
2261 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
2262 * testsuite/23_containers/stack/deduction.cc: Likewise.
2263 * testsuite/23_containers/unordered_map/cons/deduction.cc:
2265 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
2267 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
2269 * testsuite/23_containers/unordered_set/cons/deduction.cc:
2271 * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
2273 2021-10-04 Jonathan Wakely <jwakely@redhat.com>
2275 * include/std/variant (__detail::__variant::__as): Add missing
2276 noexcept to first overload.
2278 2021-10-04 Jonathan Wakely <jwakely@redhat.com>
2280 * include/bits/basic_string.h (basic_string(nullptr_t)): Define
2282 (operator=(nullptr_t)): Likewise.
2283 * include/bits/cow_string.h (basic_string(nullptr_t)): Likewise.
2284 (operator=(nullptr_t)): Likewise.
2285 * include/std/string_view (basic_string_view(nullptr_t)):
2287 * testsuite/21_strings/basic_string/cons/char/nullptr.cc: New test.
2288 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
2289 Change dg-warning to dg-error.
2290 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
2293 2021-10-02 Jonathan Wakely <jwakely@redhat.com>
2295 * src/c++17/fs_ops.cc (create_directory): Fix typo in enum name.
2296 * src/filesystem/ops-common.h (__last_system_error): Add
2297 explicit cast to avoid narrowing conversion.
2298 (do_space): Fix type in function name.
2300 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2303 * include/Makefile.am (c++config.h): Define
2304 _GLIBCXX_VERBOSE_ASSERT based on configure output.
2305 * include/Makefile.in: Regenerate.
2306 * include/bits/c++config: Fix condition for verbose assertions.
2308 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2311 * include/bits/erase_if.h (__erase_nodes_if): Use __niter_base to
2312 unwrap debug iterators.
2313 * include/bits/refwrap.h: Do not error if included in C++03.
2314 * include/bits/stl_algo.h (__remove_if): Move to ...
2315 * include/bits/stl_algobase.h (__remove_if): ... here.
2316 * include/std/deque (erase, erase_if): Use __remove_if instead of
2317 remove and remove_if.
2318 * include/std/string (erase, erase_if): Likewise.
2319 * include/std/vector (erase, erase_if): Likewise.
2321 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2324 * include/bits/list.tcc (list::sort()): Use _Scratch_list
2325 objects for splicing and merging.
2326 (list::sort(StrictWeakOrdering)): Likewise.
2327 * include/bits/stl_list.h (__detail::_Scratch_list): New type.
2328 * src/c++98/list.cc (_List_node_base::_M_transfer): Add
2329 assertion for --enable-libstdcxx-debug library.
2330 * testsuite/23_containers/list/operations/66742.cc: New test.
2332 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2335 * include/std/thread (__pmf_expects_stop_token): New variable
2336 template to detect a pointer to member function that needs a
2337 stop_token to be added to the arguments.
2338 (jthread::__S_create): Use __pmf_expects_stop_token.
2339 (jthread::__S_create_pmf): New function.
2340 * testsuite/30_threads/jthread/100612.cc: New test.
2342 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2344 * include/bits/stl_queue.h
2345 (__cpp_lib_adaptor_iterator_pair_constructor): Define for C++23, as
2347 (queue(InputIterator, InputIterator)): Likewise.
2348 (queue(InputIterator, InputIterator, const Alloc&)): Likewise.
2349 * include/bits/stl_stack.h
2350 (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
2351 (stack(InputIterator, InputIterator)): Likewise.
2352 (stack(InputIterator, InputIterator, const Alloc&)): Likewise.
2353 * include/std/version (__cpp_lib_adaptor_iterator_pair_constructor):
2355 * testsuite/23_containers/queue/cons_from_iters.cc: New test.
2356 * testsuite/23_containers/stack/cons_from_iters.cc: New test.
2358 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2360 * include/bits/stl_queue.h (priority_queue): Add
2361 allocator-extended overloads for constructors taking iterator.
2362 * testsuite/23_containers/priority_queue/lwg3506.cc: New test.
2364 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2366 * include/bits/stl_queue.h (priority_queue): Construct sequence
2367 from iterators when no sequence argument is present (LWG 3529).
2368 * testsuite/23_containers/priority_queue/lwg3529.cc: New test.
2370 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2372 * include/bits/stl_queue.h (priority_queue): Constrain
2373 constructors with InputIterator parameters (LWG 3522).
2374 * testsuite/23_containers/priority_queue/lwg3522.cc: New test.
2376 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2378 * include/bits/ranges_base.h (ranges::distance): Split overload
2379 into two (LWG 3392).
2380 * testsuite/24_iterators/range_operations/lwg3392.cc: New test.
2382 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2384 * testsuite/30_threads/thread/cons/3.cc: Remove derivation from
2385 std::unary_function.
2386 * testsuite/30_threads/thread/cons/4.cc: Likewise.
2387 * testsuite/30_threads/thread/cons/5.cc: Likewise.
2389 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2391 * testsuite/ext/pb_ds/example/basic_multimap.cc: Remove
2392 unnecesary derivation from std::unary_function.
2393 * testsuite/ext/pb_ds/example/erase_if.cc: Likewise.
2394 * testsuite/ext/pb_ds/example/hash_illegal_resize.cc: Likewise.
2395 * testsuite/ext/pb_ds/example/hash_initial_size.cc: Likewise.
2396 * testsuite/ext/pb_ds/example/hash_load_set_change.cc: Likewise.
2397 * testsuite/ext/pb_ds/example/hash_mod.cc: Likewise.
2398 * testsuite/ext/pb_ds/example/hash_resize.cc: Likewise.
2399 * testsuite/ext/pb_ds/example/hash_shift_mask.cc: Likewise.
2400 * testsuite/ext/pb_ds/example/priority_queue_dijkstra.cc:
2402 * testsuite/ext/pb_ds/example/ranged_hash.cc: Likewise.
2403 * testsuite/ext/pb_ds/example/store_hash.cc: Likewise.
2405 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2407 * src/c++11/functexcept.cc (__throw_out_of_range_fmt): Do not
2408 expand the format string for freestanding, or non-vebose, or if
2409 we're just going to abort anyway.
2410 * src/c++11/snprintf_lite.cc: Remove unused header and
2413 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2415 * include/std/variant (__do_visit): Use variant_npos instead of
2416 literal -1 that requires a narrowing conversion.
2418 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2421 * src/filesystem/ops-common.h (__unsupported): New function to
2422 return a suitable error code for missing functionality.
2423 (posix::off_t): New typedef.
2424 (posix::*): Set errno to ENOSYS instead of ENOTSUP for no-op
2425 fallback implementations.
2426 (do_copy_file): Replace uses of errc::not_supported.
2427 * src/c++17/fs_ops.cc (fs::copy, fs::copy_file, create_dir)
2428 (fs::create_directory, fs::create_directory_symlink)
2429 (fs::create_hard_link, fs::create_symlink, fs::current_path)
2430 (fs::equivalent, do_stat, fs::file_size, fs::hard_link_count)
2431 (fs::last_write_time, fs::permissions, fs::read_symlink):
2432 Replace uses of errc::not_supported.
2433 (fs::resize_file): Qualify off_t.
2434 * src/filesystem/ops.cc (fs::copy, fs::copy_file, create_dir)
2435 (fs::create_directory, fs::create_directory_symlink)
2436 (fs::create_hard_link, fs::create_symlink, fs::current_path)
2437 (fs::equivalent, do_stat, fs::file_size, fs::last_write_time)
2438 (fs::permissions, fs::read_symlink, fs::system_complete):
2439 Replace uses of errc::not_supported.
2440 (fs::resize_file): Qualify off_t and enable unconditionally.
2441 * testsuite/19_diagnostics/system_error/cons-1.cc: Likewise.
2443 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2445 * src/filesystem/ops-common.h (last_error): New helper function.
2446 (filesystem::do_space): Use last_error().
2447 * src/c++17/fs_ops.cc (fs::absolute, fs::create_hard_link)
2448 (fs::equivalent, fs::remove, fs::temp_directory_path): Use
2450 * src/filesystem/ops.cc (fs::create_hard_link)
2451 (fs::remove, fs::temp_directory_path): Likewise.
2453 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2455 * include/std/type_traits (__conditional): New class template
2456 for internal uses of std::conditional.
2457 (__conditional_t): New alias template to replace conditional_t.
2458 (__and_, __or_, __result_of_memfun, __result_of_memobj): Use
2459 __conditional_t instead of conditional::type.
2460 * include/bits/atomic_base.h (__atomic_impl::_Diff): Likewise.
2461 * include/bits/hashtable.h (_Hashtable): Likewise.
2462 * include/bits/hashtable_policy.h (_Node_iterator, _Insert_base)
2463 (_Local_iterator): Likewise. Replace typedefs with
2465 * include/bits/move.h (move_if_noexcept): Use __conditional_t.
2466 * include/bits/parse_numbers.h (_Select_int_base): Likewise.
2467 * include/bits/ptr_traits.h (__make_not_void): Likewise.
2468 * include/bits/ranges_algobase.h (__copy_or_move_backward)
2469 (__copy_or_move): Likewise.
2470 * include/bits/ranges_base.h (borrowed_iterator_t): Likewise.
2471 * include/bits/ranges_util.h (borrowed_subrange_t): Likewise.
2472 * include/bits/regex_compiler.h (_BracketMatcher): Use
2473 __conditional_t. Replace typedefs with using-declarations.
2474 * include/bits/shared_ptr_base.h (__shared_count): Use
2476 * include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
2478 * include/bits/stl_iterator.h (__detail::__clamp_iter_cat)
2479 (reverse_iterator::iterator_concept)
2480 (__make_move_if_noexcept_iterator)
2481 (iterator_traits<common_iterator<_It, _Sent>>)
2482 (iterator_traits<counted_iterator<_It>>): Likewise.
2483 * include/bits/stl_pair.h (_PCC, pair::operator=): Likewise.
2484 * include/bits/stl_tree.h (_Rb_tree::insert_return_type)
2485 (_Rb_tree::_M_clone_node): Likewise.
2486 * include/bits/unique_ptr.h (unique_ptr(unique_ptr<U,E>&&)):
2488 * include/bits/uses_allocator.h (__uses_alloc): Likewise.
2489 (__is_uses_allocator_predicate): Likewise.
2490 * include/debug/functions.h (__foreign_iterator_aux2): Likewise.
2491 * include/experimental/any (any::_Manager, __any_caster):
2493 * include/experimental/executor (async_completion): Likewise.
2494 * include/experimental/functional (__boyer_moore_base_t):
2496 * include/std/any (any::_Manager): Likewise.
2497 * include/std/functional (__boyer_moore_base_t): Likewise.
2498 * include/std/ranges (borrowed_iterator_t)
2499 (borrowed_subrange_t, __detail::__maybe_present_t)
2500 (__detail::__maybe_const_t, split_view): Likewise.
2501 * include/std/tuple (__empty_not_final, tuple::operator=):
2503 * include/std/variant (__detail::__variant::__get_t): Likewise.
2505 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2508 * include/std/variant (__do_visit): Use a switch when we have a
2509 single variant with a small number of alternatives.
2511 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2514 * include/std/variant (__cpp_lib_variant): Update value.
2515 (__detail::__variant::__as): New helpers implementing the
2516 as-variant exposition-only function templates.
2517 (visit, visit<R>): Use __as to upcast the variant parameters.
2518 * include/std/version (__cpp_lib_variant): Update value.
2519 * testsuite/20_util/variant/visit_inherited.cc: New test.
2521 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2523 * include/bits/stl_iterator.h (__normal_iterator): Simplify
2524 converting constructor and do not require _Container::pointer.
2526 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2528 * include/bits/cow_string.h [_GLIBCXX_FULLY_DYNAMIC_STRING]
2529 (basic_string(basic_string&&)): Add noexcept and avoid
2530 allocation, by sharing rep with the rvalue string.
2532 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2534 * include/bits/stl_iterator.h (common_iterator::__arrow_proxy)
2535 (common_iterator::__postfix_proxy): Add noexcept.
2537 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2540 * include/bits/stl_iterator.h (reverse_iterator): Use
2541 conditional noexcept on constructors and assignment operators.
2542 * testsuite/24_iterators/reverse_iterator/noexcept.cc: New test.
2544 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2547 * include/bits/vector.tcc (vector<bool>::_M_shrink_to_fit()):
2548 When size() is zero just deallocate and reset.
2550 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2553 * include/bits/stl_algo.h (clamp): Use std::min and std::max.
2555 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2557 * include/bits/regex.h (basic_regex::multiline): Define for
2558 non-strict C++11 and C++14 modes.
2559 * include/bits/regex_constants.h (regex_constants::multiline):
2560 Add _GLIBCXX_RESOLVE_LIB_DEFECTS comment.
2562 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2564 * testsuite/25_algorithms/is_permutation/2.cc: Include <iterator>.
2566 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2568 * include/bits/stream_iterator.h (istream_iterator): Add
2569 noexcept to constructors and non-throwing member functions and
2571 (ostream_iterator): Likewise.
2573 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2575 * include/bits/boost_concept_check.h (_Is_vector_bool_iterator):
2576 New trait to identify vector<bool> iterators, including debug
2578 (_ForwardIteratorReferenceConcept): Add default template
2579 argument using _Is_vector_bool_iterator and use it in partial
2580 specialization for the vector<bool> cases.
2581 (_Mutable_ForwardIteratorReferenceConcept): Likewise.
2582 * testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error
2585 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
2587 * include/bits/list.tcc (list::merge): Remove call to size() and
2588 try-catch block. Use _Finalize_merge instead.
2589 * include/bits/stl_list.h (list::_Finalize_merge): New
2590 scope guard type to update _M_size members after a merge.
2592 2021-09-30 Jonathan Wakely <jwakely@redhat.com>
2594 * include/bits/regex.h (basic_regex::multiline): Fix #if
2597 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
2599 * include/bits/regex.h (basic_regex::multiline): Define constant
2601 * include/bits/regex_constants.h (regex_constants::multiline):
2602 Define constant for C++17.
2603 (regex_constants::__multiline): Define duplicate constant for
2604 internal use in C++11 and C++14.
2605 * include/bits/regex_executor.h (_Executor::_M_match_multiline()):
2606 New member function.
2607 (_Executor::_M_is_line_terminator(_CharT)): New member function.
2608 (_Executor::_M_at_begin(), _Executor::_M_at_end()): Use new
2609 member functions to support multiline matches.
2610 * testsuite/28_regex/algorithms/regex_match/multiline.cc: New test.
2612 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
2614 * include/bits/regex_compiler.h (_Compiler::_S_validate): New
2616 * include/bits/regex_compiler.tcc (_Compiler::_Compiler): Use
2617 _S_validate to check flags.
2618 * include/bits/regex_error.h (_S_grammar): New error code for
2620 * testsuite/28_regex/basic_regex/ctors/grammar.cc: New test.
2622 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
2625 * include/bits/regex_error.h (regex_constants::_S_null): New
2626 error code for internal use.
2627 * include/bits/regex_scanner.tcc (_Scanner::_M_scan_normal()):
2628 Check for null character.
2629 * testsuite/28_regex/basic_regex/84110.cc: New test.
2631 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
2633 * include/bits/regex.h (__detail::__is_contiguous_iter): Move
2634 here from <bits/regex_compiler.h>.
2635 (basic_regex::_M_compile): New function to compile an NFA from
2636 a regular expression string.
2637 (basic_regex::basic_regex): Use _M_compile instead of delegating
2638 to other constructors.
2639 (basic_regex::operator=(const basic_regex&)): Define as
2641 (basic_regex::operator=(initializer_list<C>)): Use _M_compile.
2642 (basic_regex::assign(const basic_regex&)): Use copy assignment.
2643 (basic_regex::assign(basic_regex&&)): Use move assignment.
2644 (basic_regex::assign(const C*, flag_type)): Use _M_compile
2645 instead of constructing a temporary string.
2646 (basic_regex::assign(const C*, size_t, flag_type)): Likewise.
2647 (basic_regex::assign(const basic_string<C,T,A>&, flag_type)):
2648 Use _M_compile instead of constructing a temporary basic_regex.
2649 (basic_regex::assign(InputIter, InputIter, flag_type)): Avoid
2650 constructing a temporary string for contiguous iterators of the
2652 * include/bits/regex_compiler.h (__is_contiguous_iter): Move to
2654 (__enable_if_contiguous_iter, __disable_if_contiguous_iter)
2655 (__compile_nfa): Remove.
2656 * testsuite/28_regex/basic_regex/assign/exception_safety.cc: New
2658 * testsuite/28_regex/basic_regex/ctors/char/other.cc: New test.
2660 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
2662 * include/bits/atomic_timed_wait.h (__platform_wait_until_impl):
2663 Return false for ETIMEDOUT and true otherwise.
2665 2021-09-28 François Dumont <fdumont@gcc.gnu.org>
2667 * testsuite/20_util/default_delete/48631_neg.cc: Adapt dg-prune-output message
2668 to also match message with '__8' in it.
2670 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
2672 * include/bits/regex_automaton.h (_NFA_base::_SizeT): Remove.
2673 * include/bits/regex_compiler.h (_Compiler::_IterT): Remove.
2674 * include/bits/regex_compiler.tcc: Likewise.
2675 * include/bits/regex_scanner.h (_Scanner::_IterT): Remove.
2676 * include/bits/regex_scanner.tcc: Likewise.
2678 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
2680 * include/bits/regex_compiler.tcc: Add line break in empty while
2682 * include/bits/regex_executor.tcc: Avoid unused parameter
2685 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
2687 * include/bits/regex.h (basic_regex, swap): Add noexcept to
2688 non-throwing functions.
2689 * include/bits/regex_automaton.h (_State_base, _State)
2690 (_NFA_base): Likewise.
2691 * include/bits/regex_compiler.h (_Compiler): Likewise.
2692 * include/bits/regex_error.h (regex_error::code()): Likewise.
2693 * include/bits/regex_scanner.h (_Scanner): Likewise.
2695 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
2697 * include/bits/atomic_wait.h (_GLIBCXX_HAVE_PLATFORM_WAIT):
2698 Define before first attempt to check it.
2700 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
2702 * testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1.cc:
2703 Do not check non-default constructible sequences when
2704 _GLIBCXX_CONCEPT_CHECKS is defined.
2705 * testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1_c++98.cc:
2707 * testsuite/23_containers/queue/requirements/explicit_instantiation/1.cc:
2709 * testsuite/23_containers/queue/requirements/explicit_instantiation/1_c++98.cc:
2711 * testsuite/23_containers/stack/requirements/explicit_instantiation/1.cc:
2713 * testsuite/23_containers/stack/requirements/explicit_instantiation/1_c++98.cc:
2716 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
2718 * testsuite/23_containers/deque/requirements/explicit_instantiation/3.cc:
2719 Do not test implicit allocator rebinding when _GLIBCXX_CONCEPT_CHECKS
2721 * testsuite/23_containers/forward_list/requirements/explicit_instantiation/3.cc:
2723 * testsuite/23_containers/list/requirements/explicit_instantiation/3.cc:
2725 * testsuite/23_containers/list/requirements/explicit_instantiation/5.cc:
2727 * testsuite/23_containers/map/requirements/explicit_instantiation/3.cc:
2729 * testsuite/23_containers/map/requirements/explicit_instantiation/5.cc:
2731 * testsuite/23_containers/multimap/requirements/explicit_instantiation/3.cc:
2733 * testsuite/23_containers/multimap/requirements/explicit_instantiation/5.cc:
2735 * testsuite/23_containers/multiset/requirements/explicit_instantiation/3.cc:
2737 * testsuite/23_containers/multiset/requirements/explicit_instantiation/5.cc:
2739 * testsuite/23_containers/set/requirements/explicit_instantiation/3.cc:
2741 * testsuite/23_containers/set/requirements/explicit_instantiation/5.cc:
2743 * testsuite/23_containers/unordered_map/requirements/explicit_instantiation/3.cc:
2745 * testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/3.cc:
2747 * testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/3.cc:
2749 * testsuite/23_containers/unordered_set/requirements/explicit_instantiation/3.cc:
2751 * testsuite/23_containers/vector/ext_pointer/explicit_instantiation/3.cc:
2753 * testsuite/23_containers/vector/requirements/explicit_instantiation/3.cc:
2756 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
2758 * include/bits/boost_concept_check.h (_ForwardIteratorConcept)
2759 (_BidirectionalIteratorConcept, _RandomAccessIteratorConcept):
2760 Check result types of iterator operations.
2761 (_Mutable_ForwardIteratorConcept): Check that iterator's
2762 reference type is a reference to its value type.
2763 (_Mutable_BidirectionalIteratorConcept): Do not require the
2764 value type to be assignable.
2765 (_Mutable_RandomAccessIteratorConcept): Likewise.
2766 * testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error
2769 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
2771 * testsuite/25_algorithms/copy/34595.cc: Add missing operation
2772 for type used as an iterator.
2773 * testsuite/25_algorithms/unique_copy/check_type.cc: Likewise.
2775 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
2777 * testsuite/20_util/is_nothrow_swappable/value.h: Use custom
2778 comparison function for priority_queue of type with no
2779 relational operators.
2780 * testsuite/20_util/is_swappable/value.h: Likewise.
2781 * testsuite/24_iterators/output/concept.cc: Add operator< to
2784 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
2786 * include/bits/boost_concept_check.h (_OutputIteratorConcept):
2787 Use a function to preserve value category of the type.
2788 * include/bits/stl_algobase.h (copy, move, fill_n): Use a
2789 reference as the second argument for _OutputIteratorConcept.
2790 (copy_backward, move_backward): Use _OutputIteratorConcept
2791 instead of _ConvertibleConcept.
2793 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
2795 * include/bits/stl_iterator.h (pointer_traits): Define partial
2796 specialization for __normal_iterator.
2797 * testsuite/24_iterators/normal_iterator/to_address.cc: New test.
2799 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
2801 * include/bits/move.h (forward(remove_reference_t<T>&&)):
2802 Improve text of static_assert.
2803 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
2804 * testsuite/20_util/forward/f_neg.cc: Likewise.
2806 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
2809 * include/bits/fs_path.h (path::begin, path::end): Add noexcept
2810 to declarations, to match definitions.
2812 2021-09-24 Jonathan Wakely <jwakely@redhat.com>
2814 * include/bits/range_access.h (cbegin, cend): Remove redundant
2817 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
2819 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
2820 Remove dg-error lines for C++20-only errors.
2822 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
2824 * testsuite/19_diagnostics/headers/system_error/93151.cc:
2827 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
2829 * src/c++11/system_error.cc (system_error_category) [_WIN32]:
2830 Map Windows error codes to generic POSIX error numbers. Use
2831 FormatMessage instead of strerror.
2832 * testsuite/19_diagnostics/error_category/system_category.cc:
2833 Adjust for new behaviour on Windows.
2835 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
2837 * src/c++11/system_error.cc (generic_error_category): Define
2838 class and virtual functions as 'final'.
2839 (generic_error_category::equivalent(int, const error_condition&)):
2841 (system_error_category): Define class and virtual functions as
2843 (system_error_category::equivalent(int, const error_condition&)):
2845 (generic_category_instance, system_category_instance): Use
2846 constinit union to make the objects immortal.
2848 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
2851 * src/c++11/system_error.cc
2852 (system_error_category::default_error_condition): Add 0 to
2854 * testsuite/19_diagnostics/error_category/102425.cc: New test.
2856 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
2858 * include/bits/fs_path.h (path::iterator): Add noexcept to all
2859 member functions and friend functions.
2860 (distance): Add noexcept.
2861 (advance): Add noexcept and inline.
2862 * include/experimental/bits/fs_path.h (path::iterator):
2863 Add noexcept to all member functions.
2865 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
2868 * include/std/tuple (_Tuple_impl): Add constexpr to constructor
2869 missed in previous patch.
2870 * testsuite/20_util/tuple/cons/102270.C: Moved to...
2871 * testsuite/20_util/tuple/cons/102270.cc: ...here.
2872 * testsuite/util/testsuite_allocator.h (SimpleAllocator): Add
2873 constexpr to constructor so it can be used for C++20 tests.
2875 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
2877 * testsuite/26_numerics/valarray/dr630-3.C: Moved to...
2878 * testsuite/26_numerics/valarray/dr630-3.cc: ...here.
2879 * testsuite/27_io/basic_iostream/cons/16251.C: Moved to...
2880 * testsuite/27_io/basic_iostream/cons/16251.cc: ...here.
2882 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
2884 * src/Makefile.am (stamp-debug): Add all Makefiles as
2886 * src/Makefile.in: Regenerate.
2888 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
2890 * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Increase
2891 timeout factor to 3.
2892 * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
2894 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
2896 * doc/xml/manual/using.xml: Generalize to apply to more than
2898 * doc/html/manual/using_macros.html: Regenerate.
2900 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
2902 * include/std/optional (nullptr_t): Make constructor noexcept.
2904 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
2906 * include/bits/fs_path.h (advance): Remove non-deducible
2909 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
2912 * include/std/tuple (_Head_base, _Tuple_impl): Add
2913 _GLIBCXX20_CONSTEXPR to allocator-extended constructors.
2914 (tuple<>::swap(tuple&)): Add _GLIBCXX20_CONSTEXPR.
2915 * testsuite/20_util/tuple/cons/102270.C: New test.
2917 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
2920 * include/std/span (span(Range&&)): Add constraint to deduction
2923 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
2925 * src/c++98/Makefile.am: Use CXXCOMPILE not LTCXXCOMPILE.
2926 * src/c++98/Makefile.in: Regenerate.
2928 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
2930 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2931 (to_string): Add noexcept if the type width is 32 bits or less.
2933 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
2935 * include/bits/unique_ptr.h (__uniq_ptr_impl::_M_ptr)
2936 (__uniq_ptr_impl::_M_deleter): Add noexcept.
2938 2021-09-16 Thomas Rodgers <rodgert@twrodgers.com>
2941 * testsuite/29_atomics/atomic_ref/wait_notify.cc (test): Use
2942 va and vb as arguments to wait/notify, remove unused bb local.
2944 2021-09-15 Hugo Beauzée-Luyssen <hugo@beauzee.fr>
2946 * crossconfig.m4: Check for TLS support on mingw.
2947 * configure: Regenerate.
2949 2021-09-13 Jason Merrill <jason@redhat.com>
2951 * include/std/version: Define __cpp_lib_hardware_interference_size.
2952 * libsupc++/new: Define hardware interference size variables.
2954 2021-09-10 Jonathan Wakely <jwakely@redhat.com>
2956 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
2957 Fix invalid hostname to only match the .invalid TLD.
2959 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
2961 * include/bits/atomic_base.h (__atomic_base<P*>::compare_exchange_weak):
2963 * include/std/atomic (atomic<T*>::compare_exchange_weak): Use
2966 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
2968 * include/std/atomic: Tweak whitespace.
2970 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
2973 * include/bits/atomic_base.h (__is_valid_cmpexch_failure_order):
2974 New function to check if a memory order is valid for the failure
2975 case of compare exchange operations.
2976 (__atomic_base<I>::compare_exchange_weak): Simplify assertions
2977 by using __is_valid_cmpexch_failure_order.
2978 (__atomic_base<I>::compare_exchange_strong): Likewise.
2979 (__atomic_base<P*>::compare_exchange_weak): Likewise.
2980 (__atomic_base<P*>::compare_exchange_strong): Likewise.
2981 (__atomic_impl::compare_exchange_weak): Add assertion.
2982 (__atomic_impl::compare_exchange_strong): Likewise.
2983 * include/std/atomic (atomic::compare_exchange_weak): Likewise.
2984 (atomic::compare_exchange_strong): Likewise.
2986 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
2988 * include/std/functional (invoke_r): Define.
2989 * include/std/version (__cpp_lib_invoke_r): Define.
2990 * testsuite/20_util/function_objects/invoke/version.cc: Check
2991 for __cpp_lib_invoke_r as well as __cpp_lib_invoke.
2992 * testsuite/20_util/function_objects/invoke/4.cc: New test.
2994 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
2997 * include/std/span (span(Iter, size_type), span(Iter, Iter)):
2998 Add valid range checks.
2999 * testsuite/23_containers/span/cons_1_assert_neg.cc: New test.
3000 * testsuite/23_containers/span/cons_2_assert_neg.cc: New test.
3002 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
3004 * configure.ac: Fix checks for F_GETFL, F_SETFL and O_NONBLOCK.
3005 * configure: Regenerate.
3007 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
3009 * src/c++11/system_error.cc (error_category::~error_category()):
3010 Remove noexcept-specifier.
3011 (system_error::~system_error()): Likewise.
3012 * testsuite/19_diagnostics/error_category/noexcept.cc: New test.
3013 * testsuite/19_diagnostics/system_error/noexcept.cc: New test.
3015 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
3018 * include/bits/atomic_timed_wait.h (__timed_waiter_pool)
3019 [!_GLIBCXX_HAVE_PLATFORM_TIMED_WAIT]: Add missing return.
3021 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
3023 * include/experimental/internet (__make_resolver_error_code):
3024 Handle EAI_SYSTEM errors.
3025 (basic_resolver_results): Use __make_resolver_error_code. Use
3026 Glibc NI_MAXHOST and NI_MAXSERV values for buffer sizes.
3028 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
3030 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
3031 Try other service if "http" fails.
3033 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
3035 * testsuite/17_intro/names.cc: Undefine some more names used
3036 by Solaris system headers.
3038 2021-08-30 Jason Merrill <jason@redhat.com>
3041 * testsuite/30_threads/promise/requirements/lwg3466.cc:
3042 Remove dg-prune-outputs.
3044 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
3046 * include/bits/alloc_traits.h (allocator_traits): Add explicit
3047 specialization for allocator<void>. Improve doxygen comments.
3048 * include/bits/allocator.h (allocator<void>): Restore for the
3049 versioned namespace.
3050 (allocator<void>::construct, allocator<void>::destroy): Remove.
3051 * include/ext/extptr_allocator.h (_Extptr_allocator<void>):
3052 Add default constructor and converting constructor.
3054 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
3056 * include/bits/stl_uninitialized.h: Fix typo in comment.
3058 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
3061 * src/c++17/fs_ops.cc (fs::absolute): Call non-throwing form,
3062 to avoid unnecessary current_path() call.
3064 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
3066 * include/bits/std_function.h (function::function(F&&)): Give
3067 name to defaulted template parameter, to improve diagnostics.
3068 Use markdown for more doxygen comments.
3070 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
3072 * include/bits/std_function.h (function): Adjust doxygen
3074 * include/bits/unique_ptr.h (make_unique_for_overwrite):
3075 Change parameter name to match doxygen comment.
3077 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
3079 * include/bits/std_function.h (_function_base::_Base_manager):
3080 Replace _M_init_functor with a function template using a
3081 forwarding reference, and a pair of _M_create function
3082 templates. Reuse _M_create for the clone operation.
3083 (function::_Decay_t): New alias template.
3084 (function::_Callable): Simplify by using _Decay.
3085 (function::function(F)): Change parameter to forwarding
3086 reference, as per LWG 2447. Add noexcept-specifier. Simplify
3088 (function::operator=(F&&)): Add noexcept-specifier.
3089 * testsuite/20_util/function/cons/lwg2774.cc: New test.
3090 * testsuite/20_util/function/cons/noexcept.cc: New test.
3092 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
3094 * include/bits/std_function.h (function::function(F)): Add
3095 static assertions to check constructibility requirements.
3097 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
3100 * configure.ac: Check for O_NONBLOCK.
3101 * configure: Regenerate.
3102 * include/experimental/internet: Include <ws2tcpip.h> for
3103 Windows. Use preprocessor conditions around more constants.
3104 * include/experimental/socket: Use preprocessor conditions
3105 around more constants.
3106 * testsuite/experimental/net/internet/resolver/base.cc: Only use
3107 constants when the corresponding C macro is defined.
3108 * testsuite/experimental/net/socket/basic_socket.cc: Likewise.
3109 * testsuite/experimental/net/socket/socket_base.cc: Likewise.
3110 Make preprocessor checks more fine-grained.
3112 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
3114 * testsuite/17_intro/names.cc: Check 'sz'.
3116 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
3118 * testsuite/17_intro/names.cc: Adjust for Windows.
3120 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
3122 * include/std/valarray: Uglify 'func' parameters.
3123 * testsuite/17_intro/names.cc: Add 'func' to checks.
3125 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
3128 * include/bits/stl_uninitialized.h (_GLIBCXX_USE_ASSIGN_FOR_INIT):
3129 Define macro to check conditions for optimizing trivial cases.
3130 (__check_constructible): New function to do static assert.
3131 (uninitialized_copy, uninitialized_fill, uninitialized_fill_n):
3133 * testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc:
3134 Adjust dg-error pattern.
3135 * testsuite/23_containers/vector/cons/89164.cc: Likewise. Add
3136 C++17-specific checks from 89164_c++17.cc.
3137 * testsuite/23_containers/vector/cons/89164_c++17.cc: Removed.
3138 * testsuite/20_util/specialized_algorithms/uninitialized_copy/102064.cc:
3140 * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/102064.cc:
3142 * testsuite/20_util/specialized_algorithms/uninitialized_fill/102064.cc:
3144 * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/102064.cc:
3147 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
3150 * include/ext/rope (rope::erase(size_type)): Remove broken
3153 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
3155 * doc/xml/manual/status_cxx2020.xml: Update table.
3156 * doc/html/manual/status.html: Regenerate.
3158 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
3160 * include/std/type_traits (is_layout_compatible): Define.
3161 (is_corresponding_member): Define.
3162 * include/std/version (__cpp_lib_is_layout_compatible): Define.
3163 * testsuite/20_util/is_layout_compatible/is_corresponding_member.cc:
3165 * testsuite/20_util/is_layout_compatible/value.cc: New test.
3166 * testsuite/20_util/is_layout_compatible/version.cc: New test.
3167 * testsuite/20_util/is_pointer_interconvertible/with_class.cc:
3169 * testsuite/23_containers/span/layout_compat.cc: Do not use real
3170 std::is_layout_compatible trait if available.
3172 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
3174 * src/c++11/cxx11-shim_facets.cc: Fix mismatched class-key in
3175 explicit instantiation definitions.
3177 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
3179 * include/std/ranges (basic_istream_view): Add default template
3181 * testsuite/std/ranges/istream_view.cc: Check it.
3183 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
3185 * libsupc++/dyncast.cc (__dynamic_cast): Add __builtin_expect to
3188 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
3191 * testsuite/util/testsuite_fs.h (permissions_are_testable):
3194 2021-08-20 Jonathan Wakely <jwakely@redhat.com>
3197 * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
3198 Use new __gnu_test::permissions_are_testable() function.
3199 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
3201 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
3202 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
3203 * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
3204 * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
3205 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
3206 * testsuite/27_io/filesystem/operations/symlink_status.cc:
3208 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
3210 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
3212 * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc:
3214 * testsuite/experimental/filesystem/operations/exists.cc:
3216 * testsuite/experimental/filesystem/operations/is_empty.cc:
3218 * testsuite/experimental/filesystem/operations/remove.cc:
3220 * testsuite/experimental/filesystem/operations/remove_all.cc:
3222 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
3224 * testsuite/util/testsuite_fs.h (__gnu_test::permissions_are_testable):
3225 New function to guess whether testing permissions will work.
3227 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
3229 * doc/xml/manual/status_cxx2020.xml: Move row earlier in table.
3230 * doc/html/manual/status.html: Regenerate.
3232 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
3234 * doc/doxygen/user.cfg.in: Update to Doxygen 1.9.2
3236 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
3239 * include/std/charconv (__to_chars_i): Remove redundant check.
3241 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
3244 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)): Use base
3245 class' move constructor. Define as defaulted for versioned
3247 * testsuite/20_util/tuple/cons/101960.cc: New test.
3249 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
3252 * doc/xml/manual/status_cxx2020.xml: Add P1739R4 to status table.
3253 * doc/html/manual/status.html: Regenerate.
3255 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
3257 * include/bits/shared_ptr.h: Add @since and @headerfile tags.
3258 * include/bits/unique_ptr.h: Add @headerfile tags.
3260 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
3262 * src/filesystem/ops-common.h (filesystem::file_time): Improve
3263 overflow check by using system_clock::duration::max().
3265 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
3267 * include/bits/stl_tree.h: Tweak whitespace.
3269 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
3271 * include/bits/unique_ptr.h (default_delete): Add @since tag.
3272 (unique_ptr, unique_ptr<T[]>): Likewise. Improve @brief.
3273 (make_unique, make_unique_for_overwrite): Likewise. Add @tparam,
3274 @param, and @returns.
3275 (_MakeUniq): Move to __detail namespace. Add alias template
3278 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
3280 * include/bits/stl_function.h: Improve doxygen comments.
3282 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
3284 * doc/doxygen/user.cfg.in (PREDEFINED): Enable doxygen
3285 processing for C++20 components and components that depend on
3287 * include/bits/stl_algo.h (random_shuffle): Use @deprecated.
3288 * include/std/type_traits: Improve doxygen comments for C++20
3291 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
3293 * include/ext/type_traits.h (__promote_2, __promote_3)
3294 (__promote_4): Redfine as alias templates using __promoted_t.
3295 * include/std/complex (__promote_2): Remove partial
3296 specializations for std::complex.
3298 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
3300 * include/bits/stl_algo.h (min(initializer_list<T>))
3301 (min(initializer_list<T>, Compare)): Call __min_element directly to
3302 avoid redundant debug checks for valid ranges.
3303 (max(initializer_list<T>), max(initializer_list<T>, Compare)):
3304 Likewise, for __max_element.
3305 (minmax(initializer_list<T>), minmax(initializer_list<T>, Compare)):
3306 Likewise, for __minmax_element.
3308 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
3310 * include/debug/deque (deque(size_type, const T&, const A&)):
3311 Prevent class template argument deduction and replace with a
3313 * include/debug/forward_list (forward_list(size_type, const T&, const A&)):
3315 * include/debug/list (list(size_type, const T&, const A&)):
3317 * include/debug/vector (vector(size_type, const T&, const A&)):
3320 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
3322 * python/libstdcxx/v6/printers.py (StdBitReferencePrinter): Use
3323 'std::vector<bool>::reference' as type name, not _Bit_reference.
3324 (build_libstdcxx_dictionary): Register printers for vector<bool>
3325 types in debug mode too.
3326 * testsuite/libstdc++-prettyprinters/simple.cc: Adjust expected
3327 output for invalid _Bit_reference. Use vector<bool>::reference
3328 instead of _Bit_reference.
3329 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
3331 2021-08-17 Thomas Schwinge <thomas@codesourcery.com>
3333 * testsuite/lib/libstdc++.exp: Avoid illegal argument to verbose,
3336 2021-08-17 Luc Michel <lmichel@kalray.eu>
3337 Marc Poulhies <mpoulhies@kalrayinc.com>
3339 * testsuite/lib/gdb-test.exp (gdb_version_check)
3340 (gdb_version_check_xmethods): Only check the GDB version for
3341 local native targets.
3343 2021-08-17 Antony Polukhin <antoshkka@gmail.com>
3344 Jonathan Wakely <jwakely@redhat.com>
3346 * include/bits/random.tcc (seed_seq::seed_seq): Reserve capacity
3347 if distance is O(1).
3348 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
3351 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
3353 * testsuite/26_numerics/random/seed_seq/cons/range.cc: Check
3354 construction from input iterators.
3356 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
3358 * python/libstdcxx/v6/printers.py (StdErrorCatPrinter): Remove.
3360 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
3363 * include/bits/std_function.h (function(function&&)): Check for
3364 non-empty parameter before doing any work.
3366 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
3368 * include/bits/cow_string.h (basic_string::contains): Do not
3369 define for -std=gnu++20.
3371 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
3373 * include/bits/ranges_util.h (__not_same_as): Rename to
3375 * include/std/ranges (__not_same_as): Likewise.
3377 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
3379 * include/std/utility (exchange): Add noexcept-specifier.
3380 * testsuite/20_util/exchange/noexcept.cc: New test.
3382 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
3384 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Define.
3385 (build_libstdcxx_dictionary): Register printer for
3386 std::error_code and std::error_condition.
3387 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test it.
3389 2021-08-16 Jonathan Wakely <jwakely@redhat.com>
3392 * src/c++11/debug.cc (PrintContext::_M_indent): Replace with a
3394 (print_word): Use qualified-id to access it.
3396 2021-08-16 Jonathan Wakely <jwakely@redhat.com>
3398 * python/Makefile.am [GLIBCXX_BUILD_DEBUG] (install-data-local):
3399 Install another copy of the GDB hook.
3400 * python/Makefile.in: Regenerate.
3402 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
3405 * include/c_global/cmath (hypot): Use __promoted_t.
3406 (lerp): Add new overload accepting any arithmetic types.
3407 * include/ext/type_traits.h (__promoted_t): New alias template.
3408 * testsuite/26_numerics/lerp.cc: Moved to...
3409 * testsuite/26_numerics/lerp/1.cc: ...here.
3410 * testsuite/26_numerics/lerp/constexpr.cc: New test.
3411 * testsuite/26_numerics/lerp/version.cc: New test.
3413 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
3415 * testsuite/26_numerics/lerp.cc: Add header name to #error.
3416 * testsuite/26_numerics/midpoint/integral.cc: Likewise.
3417 * testsuite/26_numerics/midpoint/version.cc: New test.
3419 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
3421 * include/experimental/random (experimental::randint): Add
3422 nodiscard attribute.
3424 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
3426 * src/c++98/locale_init.cc: Require C++11.
3427 * src/c++98/localename.cc: Likewise.
3428 * src/c++98/misc-inst.cc: Require C++98.
3430 2021-08-11 Jonathan Wakely <jwakely@redhat.com>
3433 * testsuite/experimental/random/randint.cc: Loop and retry if
3434 reseed() produces the same sequence.
3436 2021-08-11 Jonathan Wakely <jwakely@redhat.com>
3438 * include/std/type_traits (__cpp_lib_is_pointer_interconvertible)
3439 (is_pointer_interconvertible_base_of_v)
3440 (is_pointer_interconvertible_base_of): Define for C++20.
3441 * include/std/version (__cpp_lib_is_pointer_interconvertible):
3443 * testsuite/23_containers/span/layout_compat.cc: Use correct
3444 feature test macro for std::is_layout_compatible_v.
3445 * testsuite/20_util/is_pointer_interconvertible/value.cc: New test.
3446 * testsuite/20_util/is_pointer_interconvertible/version.cc: New test.
3448 2021-08-09 Jonathan Wakely <jwakely@redhat.com>
3450 * include/bits/regex.h (basic_regex::transform_primary): Use
3451 _GLIBCXX_STD_C::vector for local variable.
3452 * include/bits/regex.tcc (__regex_algo_impl): Use reference to
3453 _GLIBCXX_STD_C::vector base class of match_results.
3454 * include/bits/regex_automaton.tcc (_StateSeq:_M_clone): Use
3455 _GLIBCXX_STD_C::map and _GLIBCXX_STD_C::deque for local
3457 * include/bits/regex_compiler.h (_BracketMatcher): Use
3458 _GLIBCXX_STD_C::vector for data members.
3459 * include/bits/regex_executor.h (_Executor): Likewise.
3460 * include/std/regex [_GLIBCXX_DEBUG]: Include <debug/vector>.
3462 2021-08-09 François Dumont <fdumont@gcc.gnu.org>
3464 * include/debug/safe_container.h
3465 (_Safe_container(_Safe_container&&, const _Alloc&, std::true_type)): New.
3466 (_Safe_container(_Safe_container&&, const _Alloc&, std::false_type)): New.
3467 (_Safe_container(_Safe_container&&, const _Alloc&)): Use latters.
3469 2021-08-09 Jonathan Wakely <jwakely@redhat.com>
3471 * testsuite/23_containers/unordered_map/cons/default.cc: Add
3472 equality comparison operators to allocator.
3473 * testsuite/23_containers/unordered_set/cons/default.cc:
3476 2021-08-08 François Dumont <fdumont@gcc.gnu.org>
3478 * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Replace 'failed_assertion'
3479 dg-prune-output reason with 'builtin_unreachable'.
3480 * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc: Likewise.
3481 * testsuite/25_algorithms/equal/debug/constexpr_neg.cc: Likewise.
3482 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc: Likewise.
3483 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
3484 * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc: Likewise.
3485 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc: Likewise.
3486 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
3487 * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc: Likewise.
3489 2021-08-08 Hans-Peter Nilsson <hp@bitrange.com>
3491 * testsuite/std/ranges/iota/max_size_type.cc: Set
3492 dg-timeout-factor to 4.
3494 2021-08-06 Jonathan Wakely <jwakely@redhat.com>
3496 * libsupc++/compare (compare_three_way, strong_order)
3497 (weak_order, partial_order, compare_strong_order_fallback)
3498 (compare_weak_order_fallback, compare_partial_order_fallback):
3499 Move nodiscard attributes to correct location.
3501 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
3504 * include/bits/ranges_base.h (ranges::begin, ranges::end)
3505 (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
3506 (ranges::empty, ranges::data): Move attribute after the
3507 declarator-id instead of at the end of the declarator.
3508 * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator):
3509 Move attributes back to the start of the function declarator,
3510 but move the requires-clause to the end.
3511 (common_iterator): Move attribute after the declarator-id.
3512 * include/bits/stl_queue.h (queue): Remove ill-formed attributes
3513 from friend declaration that are not definitions.
3514 * include/std/ranges (views::all, views::filter)
3515 (views::transform, views::take, views::take_while,
3516 views::drop) (views::drop_while, views::join,
3517 views::lazy_split) (views::split, views::counted,
3518 views::common, views::reverse) (views::elements): Move
3519 attributes after the declarator-id.
3521 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
3523 * libsupc++/compare (partial_ordering, weak_ordering)
3524 (strong_ordering, is_eq, is_neq, is_lt, is_lteq, is_gt, is_gteq)
3525 (compare_three_way, strong_order, weak_order, partial_order)
3526 (compare_strong_order_fallback, compare_weak_order_fallback)
3527 (compare_partial_order_fallback, __detail::__synth3way): Add
3528 nodiscard attribute.
3529 * testsuite/18_support/comparisons/categories/zero_neg.cc: Add
3530 -Wno-unused-result to options.
3532 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
3535 * include/bits/ranges_base.h (ranges::begin, ranges::end)
3536 (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
3537 (ranges::empty, ranges::data): Move attribute to the end of
3539 * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator)
3540 (common_iterator): Likewise for non-member operator functions.
3541 * include/std/ranges (views::all, views::filter)
3542 (views::transform, views::take, views::take_while, views::drop)
3543 (views::drop_while, views::join, views::lazy_split)
3544 (views::split, views::counted, views::common, views::reverse)
3545 (views::elements): Likewise.
3546 * testsuite/std/ranges/access/101782.cc: New test.
3548 2021-08-04 Jonathan Wakely <jwakely@redhat.com>
3550 * include/bits/forward_list.h: Add [[nodiscard]] to functions
3551 with no side-effects.
3552 * include/bits/stl_bvector.h: Likewise.
3553 * include/bits/stl_deque.h: Likewise.
3554 * include/bits/stl_list.h: Likewise.
3555 * include/bits/stl_queue.h: Likewise.
3556 * include/bits/stl_stack.h: Likewise.
3557 * include/bits/stl_vector.h: Likewise.
3558 * include/debug/deque: Likewise.
3559 * include/debug/forward_list: Likewise.
3560 * include/debug/list: Likewise.
3561 * include/debug/safe_iterator.h: Likewise.
3562 * include/debug/vector: Likewise.
3563 * include/std/array: Likewise.
3564 * testsuite/23_containers/array/creation/3_neg.cc: Use
3566 * testsuite/23_containers/array/debug/back1_neg.cc: Cast result
3568 * testsuite/23_containers/array/debug/back2_neg.cc: Likewise.
3569 * testsuite/23_containers/array/debug/front1_neg.cc: Likewise.
3570 * testsuite/23_containers/array/debug/front2_neg.cc: Likewise.
3571 * testsuite/23_containers/array/debug/square_brackets_operator1_neg.cc:
3573 * testsuite/23_containers/array/debug/square_brackets_operator2_neg.cc:
3575 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
3576 Adjust dg-error line numbers.
3577 * testsuite/23_containers/deque/cons/clear_allocator.cc: Cast
3579 * testsuite/23_containers/deque/debug/invalidation/4.cc:
3581 * testsuite/23_containers/deque/types/1.cc: Use
3583 * testsuite/23_containers/list/types/1.cc: Cast result to void.
3584 * testsuite/23_containers/priority_queue/members/7161.cc:
3586 * testsuite/23_containers/queue/members/7157.cc: Likewise.
3587 * testsuite/23_containers/vector/59829.cc: Likewise.
3588 * testsuite/23_containers/vector/ext_pointer/types/1.cc:
3590 * testsuite/23_containers/vector/ext_pointer/types/2.cc:
3592 * testsuite/23_containers/vector/types/1.cc: Use
3595 2021-08-04 Jonathan Wakely <jwakely@redhat.com>
3597 * include/bits/iterator_concepts.h (iter_move): Add
3599 * include/bits/range_access.h (begin, end, cbegin, cend)
3600 (rbegin, rend, crbegin, crend, size, data, ssize): Likewise.
3601 * include/bits/ranges_base.h (ranges::begin, ranges::end)
3602 (ranges::cbegin, ranges::cend, ranges::rbegin, ranges::rend)
3603 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
3604 (ranges::empty, ranges::data, ranges::cdata): Likewise.
3605 * include/bits/stl_iterator.h (reverse_iterator, __normal_iterator)
3606 (back_insert_iterator, front_insert_iterator, insert_iterator)
3607 (move_iterator, move_sentinel, common_iterator)
3608 (counted_iterator): Likewise.
3609 * include/bits/stl_iterator_base_funcs.h (distance, next, prev):
3611 * include/bits/stream_iterator.h (istream_iterator)
3612 (ostream_iterartor): Likewise.
3613 * include/bits/streambuf_iterator.h (istreambuf_iterator)
3614 (ostreambuf_iterator): Likewise.
3615 * include/std/ranges (views::single, views::iota, views::all)
3616 (views::filter, views::transform, views::take, views::take_while)
3617 (views::drop, views::drop_while, views::join, views::lazy_split)
3618 (views::split, views::counted, views::common, views::reverse)
3619 (views::elements): Likewise.
3620 * testsuite/20_util/rel_ops.cc: Use -Wno-unused-result.
3621 * testsuite/24_iterators/move_iterator/greedy_ops.cc: Likewise.
3622 * testsuite/24_iterators/normal_iterator/greedy_ops.cc:
3624 * testsuite/24_iterators/reverse_iterator/2.cc: Likewise.
3625 * testsuite/24_iterators/reverse_iterator/greedy_ops.cc:
3627 * testsuite/21_strings/basic_string/range_access/char/1.cc:
3628 Cast result to void.
3629 * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
3631 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
3633 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
3635 * testsuite/23_containers/array/range_access.cc: Likewise.
3636 * testsuite/23_containers/deque/range_access.cc: Likewise.
3637 * testsuite/23_containers/forward_list/range_access.cc:
3639 * testsuite/23_containers/list/range_access.cc: Likewise.
3640 * testsuite/23_containers/map/range_access.cc: Likewise.
3641 * testsuite/23_containers/multimap/range_access.cc: Likewise.
3642 * testsuite/23_containers/multiset/range_access.cc: Likewise.
3643 * testsuite/23_containers/set/range_access.cc: Likewise.
3644 * testsuite/23_containers/unordered_map/range_access.cc:
3646 * testsuite/23_containers/unordered_multimap/range_access.cc:
3648 * testsuite/23_containers/unordered_multiset/range_access.cc:
3650 * testsuite/23_containers/unordered_set/range_access.cc:
3652 * testsuite/23_containers/vector/range_access.cc: Likewise.
3653 * testsuite/24_iterators/customization_points/iter_move.cc:
3655 * testsuite/24_iterators/istream_iterator/sentinel.cc:
3657 * testsuite/24_iterators/istreambuf_iterator/sentinel.cc:
3659 * testsuite/24_iterators/move_iterator/dr2061.cc: Likewise.
3660 * testsuite/24_iterators/operations/prev_neg.cc: Likewise.
3661 * testsuite/24_iterators/ostreambuf_iterator/2.cc: Likewise.
3662 * testsuite/24_iterators/range_access/range_access.cc:
3664 * testsuite/24_iterators/range_operations/100768.cc: Likewise.
3665 * testsuite/26_numerics/valarray/range_access2.cc: Likewise.
3666 * testsuite/28_regex/range_access.cc: Likewise.
3667 * testsuite/experimental/string_view/range_access/char/1.cc:
3669 * testsuite/experimental/string_view/range_access/wchar_t/1.cc:
3671 * testsuite/ext/vstring/range_access.cc: Likewise.
3672 * testsuite/std/ranges/adaptors/take.cc: Likewise.
3673 * testsuite/std/ranges/p2259.cc: Likewise.
3675 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
3677 * include/bits/random.tcc (linear_congruential_engine): Do not
3678 define static constexpr members when they are implicitly inline.
3679 * include/std/ratio (ratio, __ratio_multiply, __ratio_divide)
3680 (__ratio_add, __ratio_subtract): Likewise.
3681 * include/std/type_traits (integral_constant): Likewise.
3682 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
3685 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
3687 * testsuite/util/testsuite_common_types.h: Replace uses of
3688 tr1::unordered_map and tr1::unordered_set with their C++11
3690 * testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust
3691 dg-error line number.
3692 * testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
3693 * testsuite/29_atomics/atomic_integral/cons/assign_neg.cc:
3695 * testsuite/29_atomics/atomic_integral/cons/copy_neg.cc:
3697 * testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc:
3699 * testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc:
3701 * testsuite/29_atomics/atomic_integral/operators/increment_neg.cc:
3704 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
3706 * include/std/memory_resource (polymorphic_allocator::delete_object):
3707 Call destructor directly instead of using destroy.
3708 (allocator_traits<polymorphic_allocator<T>>): Define partial
3711 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
3713 * testsuite/20_util/function_objects/binders/3113.cc: Remove
3714 trailing whitespace.
3715 * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
3716 * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
3717 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
3719 * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
3720 * testsuite/25_algorithms/headers/algorithm/synopsis.cc:
3722 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
3724 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
3727 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
3729 * doc/xml/manual/evolution.xml: Document deprecation.
3730 * doc/html/*: Regenerate.
3731 * include/bits/c++config (_GLIBCXX14_DEPRECATED): Define.
3732 (_GLIBCXX14_DEPRECATED_SUGGEST): Define.
3733 * include/bits/stl_algo.h (random_shuffle): Deprecate for C++14
3735 * testsuite/25_algorithms/headers/algorithm/synopsis.cc: Adjust
3736 for C++11 and C++14 changes to std::random_shuffle and
3738 * testsuite/25_algorithms/random_shuffle/1.cc: Add options to
3739 use deprecated algorithms.
3740 * testsuite/25_algorithms/random_shuffle/59603.cc: Likewise.
3741 * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise.
3742 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
3744 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
3747 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
3749 * testsuite/23_containers/forward_list/operations/3.cc:
3750 Use lambda instead of std::bind2nd.
3751 * testsuite/20_util/function_objects/binders/3113.cc: Add
3752 options for testing deprecated features.
3753 * testsuite/20_util/pair/cons/99957.cc: Likewise.
3754 * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
3755 * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
3756 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
3758 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
3759 * testsuite/20_util/shared_ptr/cons/auto_ptr.cc: Likewise.
3760 * testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc: Likewise.
3761 * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
3762 * testsuite/20_util/unique_ptr/cons/auto_ptr.cc: Likewise.
3763 * testsuite/20_util/unique_ptr/cons/auto_ptr_neg.cc: Likewise.
3764 * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
3766 * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
3768 * testsuite/lib/dg-options.exp (dg_add_options_using-deprecated):
3771 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
3773 * include/bits/regex_executor.h (_State_info): Replace
3774 unique_ptr<bool[]> with array of bool.
3775 * include/bits/regex_executor.tcc: Likewise.
3776 * include/bits/regex_scanner.tcc: Replace std::strchr with
3778 * include/std/regex: Replace standard headers with smaller
3780 * testsuite/28_regex/traits/char/lookup_classname.cc: Include
3781 <string.h> for strlen.
3782 * testsuite/28_regex/traits/char/lookup_collatename.cc:
3785 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
3787 * include/bits/locale_conv.h (__detail::_Scoped_ptr): Define new
3788 RAII class template.
3789 (wstring_convert, wbuffer_convert): Use __detail::_Scoped_ptr
3790 instead of unique_ptr.
3792 2021-08-02 Patrick Palka <ppalka@redhat.com>
3795 * include/bits/ranges_algo.h (__reverse_copy_fn::operator()):
3796 Add missing std::move in return statement.
3797 (__partition_copy_fn::operator()): Rename templtae parameter
3798 _O2 to _Out2. Uglify function parameters out_true and out_false.
3799 * include/bits/ranges_algobase.h (__copy_or_move): Add missing
3800 std::move to recursive call that unwraps a __normal_iterator
3802 * testsuite/25_algorithms/copy/constrained.cc (test06): New test.
3803 * testsuite/25_algorithms/move/constrained.cc (test05): New test.
3805 2021-08-02 Patrick Palka <ppalka@redhat.com>
3808 * include/std/ranges (lazy_split_view::_InnerIter::base): Make
3809 the const& overload unconstrained and return a const reference
3810 as per LWG 3533. Make unconditionally noexcept.
3811 (elements_view::base): Revert accidental r12-569 change.
3812 (elements_view::_Iterator::base): Make the const& overload
3813 unconstrained and return a const reference as per LWG 3533.
3814 Make unconditionally noexcept.
3816 2021-08-02 Patrick Palka <ppalka@redhat.com>
3819 * include/std/ranges (join_view::_Iterator::_Iterator): Add
3822 2021-08-02 Jonathan Wakely <jwakely@redhat.com>
3825 * src/filesystem/ops-common.h (get_temp_directory_from_env):
3826 Add error_code parameter.
3827 * src/c++17/fs_ops.cc (fs::temp_directory_path): Pass error_code
3828 argument to get_temp_directory_from_env and check it.
3829 * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
3831 2021-08-02 Jonathan Wakely <jwakely@redhat.com>
3833 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
3834 Add dg-error for c++11_only target.
3836 2021-07-30 Jonathan Wakely <jwakely@redhat.com>
3839 * configure.ac: Check for secure_getenv.
3840 * config.h.in: Regenerate.
3841 * configure: Regenerate.
3842 * src/filesystem/ops-common.h (get_temp_directory_from_env): New
3843 helper function to obtain path from the environment.
3844 * src/c++17/fs_ops.cc (fs::temp_directory_path): Use new helper.
3845 * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
3846 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
3847 Print messages if test cannot be run.
3848 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
3849 Likewise. Fix incorrect condition. Use "TMP" to work with
3850 Windows as well as POSIX.
3852 2021-07-29 Hans-Peter Nilsson <hp@bitrange.com>
3854 * src/c++17/memory_resource.cc: Use __exchange instead
3857 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
3859 * include/experimental/optional (__throw_bad_optional_access):
3860 Replace GNU attribute with C++11 attribute.
3861 (optional::value, optional::value_or): Use if statements
3862 instead of conditional expressions.
3863 * include/std/optional (__throw_bad_optional_access)
3864 (optional::value, optional::value_or): Likewise.
3866 2021-07-27 Marek Polacek <polacek@redhat.com>
3870 * testsuite/20_util/tuple/comparison_operators/overloaded.cc:
3872 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
3875 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
3877 * include/bits/cow_string.h: Consistently use tab for
3880 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
3882 * include/Makefile.am: Add new header.
3883 * include/Makefile.in: Regenerate.
3884 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
3885 (basic_string): Move definition of Copy-on-Write string to
3887 * include/bits/basic_string.tcc: Likewise.
3888 * include/bits/cow_string.h: New file.
3890 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
3892 * include/std/algorithm: Do not include <utility>.
3893 * include/std/functional: Likewise.
3894 * include/std/regex: Include <bits/stl_pair.h> instead of
3896 * include/debug/map.h: Likewise.
3897 * include/debug/multimap.h: Likewise.
3898 * include/debug/multiset.h: Likewise.
3899 * include/debug/set.h: Likewise.
3900 * include/debug/vector: Likewise.
3901 * include/bits/fs_path.h: Likewise.
3902 * include/bits/unique_ptr.h: Do not include <utility>.
3903 * include/experimental/any: Likewise.
3904 * include/experimental/executor: Likewise.
3905 * include/experimental/memory: Likewise.
3906 * include/experimental/optional: Likewise.
3907 * include/experimental/socket: Use __exchange instead
3909 * src/filesystem/ops-common.h: Likewise.
3910 * testsuite/20_util/default_delete/48631_neg.cc: Adjust expected
3911 errors to not use a hardcoded line number.
3912 * testsuite/20_util/default_delete/void_neg.cc: Likewise.
3913 * testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc:
3914 Include <utility> for std::as_const.
3915 * testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constrained.cc:
3917 * testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc:
3919 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constrained.cc:
3921 * testsuite/23_containers/vector/cons/destructible_debug_neg.cc:
3922 Adjust dg-error line number.
3924 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
3926 * include/Makefile.am: Add bits/utility.h header.
3927 * include/Makefile.in: Regenerate.
3928 * include/bits/utility.h: New file.
3929 * include/std/utility (tuple_size, tuple_element): Move
3931 * include/std/type_traits (__is_tuple_like_impl<tuple<T...>>):
3933 (_Index_tuple, _Build_index_tuple, integer_sequence): Likewise.
3934 (in_place_t, in_place_index_t, in_place_type_t): Likewise.
3935 * include/bits/ranges_util.h: Include new header instead of
3937 * include/bits/stl_pair.h (tuple_size, tuple_element): Move
3938 partial specializations for std::pair here.
3939 (get): Move overloads for std::pair here.
3940 * include/std/any: Include new header instead of <utility>.
3941 * include/std/array: Likewise.
3942 * include/std/memory_resource: Likewise.
3943 * include/std/optional: Likewise.
3944 * include/std/variant: Likewise.
3945 * include/std/tuple: Likewise.
3946 (__is_tuple_like_impl<tuple<T...>>): Move here.
3947 (get) Declare overloads for std::array.
3948 * include/std/version (__cpp_lib_tuples_by_type): Change type
3950 * testsuite/20_util/optional/84601.cc: Include <utility>.
3951 * testsuite/20_util/specialized_algorithms/uninitialized_fill/constrained.cc:
3953 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
3954 Adjust dg-error line numbers.
3955 * testsuite/std/ranges/access/cbegin.cc: Include <utility>.
3956 * testsuite/std/ranges/access/cend.cc: Likewise.
3957 * testsuite/std/ranges/access/end.cc: Likewise.
3958 * testsuite/std/ranges/single_view.cc: Likewise.
3960 2021-07-23 Jonathan Wakely <jwakely@redhat.com>
3962 * include/std/future: Include <bits/atomic_base.h> instead of
3965 2021-07-23 Jonathan Wakely <jwakely@redhat.com>
3967 * include/bits/stl_relops.h: Update documentation comments.
3969 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
3972 * include/bits/hashtable.h (_Hashtable): Replace mixin with
3973 _Enable_default_ctor. Construct it explicitly in all
3974 non-forwarding, non-defaulted constructors.
3975 * testsuite/23_containers/unordered_map/cons/default.cc: Check
3976 non-default constructors can be used.
3977 * testsuite/23_containers/unordered_set/cons/default.cc:
3980 2021-07-22 David Edelsohn <dje.gcc@gmail.com>
3982 * config/os/aix/os_defines.h (__LIBC_NO_CPP_MATH_OVERLOADS__): Define.
3984 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
3987 * include/ext/new_allocator.h (_GLIBCXX_OPERATOR_NEW)
3988 (_GLIBCXX_OPERATOR_DELETE, _GLIBCXX_SIZED_DEALLOC): Define.
3989 (allocator::allocate, allocator::deallocate): Use new macros.
3991 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
3994 * include/bits/ranges_uninitialized.h (_DestroyGuard): Change
3995 constructor parameter to reference and use addressof.
3996 * testsuite/util/testsuite_iterators.h: Define deleted operator&
3997 overloads for test iterators.
3999 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
4001 * include/bits/std_function.h (_Function_base): Add
4002 default member initializers and define constructor as defaulted.
4003 (function::_M_invoker): Add default member initializer.
4005 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
4008 * doc/xml/manual/debug_mode.xml: Update documentation about
4009 debug capability of std::array.
4010 * doc/html/*: Regenerate.
4011 * include/debug/array: New file.
4013 2021-07-21 Jonathan Wakely <jwakely@redhat.com>
4016 * include/ext/rope (sequence_buffer): Add move constructor and
4017 move assignment operator.
4018 * testsuite/ext/rope/101542.cc: New test.
4020 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
4023 * src/c++17/fs_ops.cc (fs::create_directories): Use status
4024 instead of symlink_status.
4025 * src/filesystem/ops.cc (fs::create_directories): Likewise.
4026 * testsuite/27_io/filesystem/operations/create_directories.cc:
4027 Check symlink to existing directory.
4028 * testsuite/27_io/filesystem/operations/create_directory.cc: Do
4029 not test with symlinks on Windows.
4030 * testsuite/experimental/filesystem/operations/create_directories.cc:
4031 Check symlink to existing directory.
4032 * testsuite/experimental/filesystem/operations/create_directory.cc:
4033 Do not test with symlinks on Windows.
4035 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
4038 * include/bits/hashtable.h (_Hashtable): Conditionally delete
4039 default constructor by deriving from _Enable_special_members.
4040 * testsuite/23_containers/unordered_map/cons/default.cc: New test.
4041 * testsuite/23_containers/unordered_set/cons/default.cc: New test.
4043 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
4046 * src/c++17/fs_ops.cc (create_dir): Adjust whitespace.
4047 * testsuite/27_io/filesystem/operations/create_directory.cc:
4048 Test creating directory with name of existing symlink to
4050 * testsuite/experimental/filesystem/operations/create_directory.cc:
4053 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
4055 * include/std/tuple (get<I>): Add deleted overload for bad
4057 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
4060 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
4062 * include/bits/max_size_type.h (numeric_limits<__max_size_type>):
4063 Use __int_traits unconditionally.
4065 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
4067 * include/bits/random.h (_Shift::__value): Use constexpr.
4068 (_Select_uint_least_t::type): Use using-declaration.
4070 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
4073 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
4075 * include/bits/cpp_type_traits.h (__INT_N): Use __extension__
4076 instead of diagnostic pragmas.
4077 * include/bits/functional_hash.h: Likewise.
4078 * include/bits/iterator_concepts.h (__is_signed_int128)
4079 (__is_unsigned_int128): Likewise.
4080 * include/bits/max_size_type.h (__max_size_type): Likewise.
4081 (numeric_limits<__max_size_type>): Likewise.
4082 * include/bits/std_abs.h (abs): Likewise.
4083 * include/bits/stl_algobase.h (__size_to_integer): Likewise.
4084 * include/bits/uniform_int_dist.h (uniform_int_distribution):
4086 * include/ext/numeric_traits.h (_GLIBCXX_INT_N_TRAITS):
4088 * include/std/type_traits (__is_integral_helper<INT_N>)
4089 (__is_signed_integer, __is_unsigned_integer)
4090 (__make_unsigned<INT_N>, __make_signed<INT_N>): Likewise.
4091 * include/std/limits (__INT_N): Add __extension__ keyword.
4092 * include/bits/random.h (_Select_uint_least_t)
4093 (random_device): Likewise.
4095 2021-07-16 Patrick Palka <ppalka@redhat.com>
4098 * include/std/ranges (_CachedPosition::_M_get): For non-forward
4099 ranges, just call __builtin_unreachable.
4100 * testsuite/std/ranges/istream_view.cc (test05): New test.
4102 2021-07-16 Patrick Palka <ppalka@redhat.com>
4105 * include/std/ranges (split_view::split_view): Use std::move.
4106 (split_view::_Iterator::_Iterator): Remove redundant
4107 default_initializable constraint.
4108 (split_view::_Sentinel::_Sentinel): Declare.
4109 * testsuite/std/ranges/adaptors/split.cc (test02): New test.
4111 2021-07-16 Marek Polacek <polacek@redhat.com>
4113 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Add
4116 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
4118 * include/bits/unique_ptr.h: Adjust doxygen markup.
4120 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
4123 * include/std/type_traits: Adjust doxygen markup.
4125 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
4127 * include/bits/cpp_type_traits.h: Add diagnostic pragmas around
4128 uses of non-standard integer types.
4129 * include/bits/functional_hash.h: Likewise.
4130 * include/bits/iterator_concepts.h: Likewise.
4131 * include/bits/max_size_type.h: Likewise.
4132 * include/bits/std_abs.h: Likewise.
4133 * include/bits/stl_algobase.h: Likewise.
4134 * include/bits/uniform_int_dist.h: Likewise.
4135 * include/ext/numeric_traits.h: Likewise.
4136 * include/std/type_traits: Likewise.
4138 2021-07-15 Jonathan Wakely <jwakely@redhat.com>
4141 * include/std/tuple (tuple_element): Improve static_assert text.
4142 (__get_helper): Add deleted overload.
4143 (get<i>(tuple<T...>&&), get<i>(const tuple<T...>&&)): Use
4144 __get_helper directly.
4145 (__get_helper2): Remove.
4146 (__find_uniq_type_in_pack): New constexpr helper function.
4147 (get<T>): Use __find_uniq_type_in_pack and __get_helper instead
4149 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
4151 * testsuite/20_util/tuple/element_access/101427.cc: New test.
4153 2021-07-15 Jonathan Wakely <jwakely@redhat.com>
4156 * include/bits/c++config (__replacement_assert): Add noexcept.
4157 [!_GLIBCXX_VERBOSE] (__glibcxx_assert_impl): Use __builtin_abort
4158 instead of __replacement_assert.
4160 2021-07-14 Jonathan Wakely <jwakely@redhat.com>
4162 * include/std/string_view (basic_string_view(It, End)): Add
4164 * testsuite/21_strings/basic_string_view/cons/char/range.cc:
4165 Check noexcept-specifier. Also check construction without CTAD.
4167 2021-07-13 Jonathan Wakely <jwakely@redhat.com>
4170 * include/std/string_view (ends_with): Use traits_type::compare
4173 2021-07-13 Jonathan Wakely <jwakely@redhat.com>
4175 * include/std/string_view: Only include <bits/ranges_base.h>
4176 once, and only for C++20 and later.
4178 2021-07-12 Jonathan Wakely <jwakely@redhat.com>
4181 * include/std/span (as_writable_bytes): Add requires-clause.
4182 * testsuite/23_containers/span/101411.cc: New test.
4184 2021-07-09 Matheus Castanho <msc@linux.ibm.com>
4186 * include/std/mutex (__lock_impl): Check
4187 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
4189 2021-07-02 Jonathan Wakely <jwakely@redhat.com>
4192 * include/bits/unique_ptr.h (unique_ptr<T[],D>::operator[]):
4193 Remove noexcept-specifier.
4194 (unique_ptr<T[],D>::_S_nothrow_deref): Remove.
4195 * testsuite/20_util/unique_ptr/lwg2762.cc: Remove checks for
4198 2021-07-01 Jonathan Wakely <jwakely@redhat.com>
4200 * doc/doxygen/doxygroups.cc: Fix docs for std::literals.
4201 * doc/doxygen/user.cfg.in: Exclude the Networking TS header.
4202 Add some more predefined macros.
4203 * include/bits/fs_fwd.h: Move @addtogroup commands inside
4204 namespaces. Add better documentation.
4205 * include/bits/fs_path.h: Likewise.
4206 * include/experimental/bits/fs_fwd.h: Likewise.
4207 * include/experimental/bits/fs_path.h: Likewise.
4208 * include/ext/throw_allocator.h: Fix typo and improve docs.
4209 * include/std/chrono: Move @addtogroup commands.
4210 * include/std/system_error: Move @addtogroup commands.
4211 * libsupc++/exception: Improve documentation.
4212 * libsupc++/exception.h: Add @since documentation.
4214 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
4217 * doc/doxygen/user.cfg.in (INPUT): Add <experimental/simd>.
4218 (COLS_IN_ALPHA_INDEX): Remove obsolete tag.
4219 (PREDEFINED): Add/fix some more macros that need to be expanded.
4220 * include/bits/random.h: Stop Doxygen from documenting internal
4221 implementation details.
4222 * include/bits/random.tcc: Likewise.
4223 * include/bits/this_thread_sleep.h: Fix @file name.
4224 * include/experimental/bits/simd.h: Add to Doxygen group. Do not
4225 document internal implementation details.
4226 * include/experimental/bits/simd_detail.h: Do not document
4227 internal implementation details.
4228 * include/experimental/simd: Define Doxygen groups.
4229 * include/experimental/type_traits: Improve documentation for
4230 the header file. Define groups. Use @since commands.
4231 * include/std/scoped_allocator (scoped_allocator_adaptor): Move
4232 declaration before undocumented region.
4233 * include/std/type_traits (true_type, false_type): Use using
4234 declaration instead of typedef.
4235 (is_invocable_v, is_nothrow_invocable_v, is_invocable_r_v)
4236 (is_nothrow_invocable_r_v): Move definitions next to other C++17
4238 Do not document internal implementation details. Move misplaced
4239 group-end command. Define group for variable templates.
4240 * include/std/variant: Do not document internal implementation
4242 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
4245 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
4247 * include/experimental/simd: Do not define anything pre-C++17.
4249 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
4251 * include/bits/random.tcc [__cpp_inline_variables]: Remove
4252 redundant definitions of static constexpr member variables.
4253 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
4256 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
4258 * include/bits/streambuf.tcc (__copy_streambufs_eof): Remove
4259 explicit instantiation declarations.
4260 * src/c++11/streambuf-inst.cc (__copy_streambufs_eof): Remove
4261 explicit instantiation definitions.
4263 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
4266 * testsuite/17_intro/names.cc: Fix #if condition for names used
4269 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
4272 * include/bits/unique_ptr.h (unique_ptr<T[], D>::operator[]):
4273 Fail gracefully if element_type is incomplete.
4274 * testsuite/20_util/unique_ptr/cons/incomplete.cc: Clarify that
4275 the standard doesn't require this test to work for array types.
4276 * testsuite/20_util/unique_ptr/lwg2762.cc: Check that incomplete
4277 types can be used with array specialization.
4278 * testsuite/20_util/unique_ptr/101236.cc: New test.
4280 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
4282 * doc/xml/manual/intro.xml: Document LWG 415 change.
4283 * doc/html/manual/bugs.html: Regenerate.
4284 * include/bits/istream.tcc (ws): Create sentry and catch
4286 * testsuite/27_io/basic_istream/ws/char/lwg415.cc: New test.
4287 * testsuite/27_io/basic_istream/ws/wchar_t/lwg415.cc: New test.
4289 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
4291 * include/bits/ostream.tcc (basic_ostream::write): Call sputn
4292 directly instead of using _M_write. Do setstate(__err) all
4293 outside the try-catch block.
4294 * include/std/ostream (basic_ostream::_M_write): Declare
4295 private. Use __ostream_insert. Do not define for the versioned
4298 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
4300 * doc/xml/manual/intro.xml: Document LWG 581 change.
4301 * doc/html/manual/bugs.html: Regenerate.
4302 * include/bits/basic_ios.tcc: Whitespace.
4303 * include/bits/ostream.tcc (basic_ostream::flush()): Construct
4305 * testsuite/27_io/basic_ostream/flush/char/2.cc: Check
4307 * testsuite/27_io/basic_ostream/flush/char/exceptions_badbit_throw.cc:
4309 * testsuite/27_io/basic_ostream/flush/wchar_t/2.cc: Likewise.
4310 * testsuite/27_io/basic_ostream/flush/wchar_t/exceptions_badbit_throw.cc:
4313 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
4315 * include/bits/ostream.tcc (sentry): Only set failbit if badbit
4316 is set, not if eofbit is set.
4317 (tellp, seekp, seekp): Create sentry object. Do not set badbit
4319 * testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc:
4320 Adjust expected behaviour.
4321 * testsuite/27_io/basic_ostream/seekp/wchar_t/exceptions_badbit_throw.cc:
4323 * testsuite/27_io/basic_ostream/tellp/char/exceptions_badbit_throw.cc:
4325 * testsuite/27_io/basic_ostream/tellp/wchar_t/exceptions_badbit_throw.cc:
4327 * testsuite/27_io/basic_ostream/seekp/char/n3168.cc: New test.
4328 * testsuite/27_io/basic_ostream/seekp/wchar_t/n3168.cc: New test.
4329 * testsuite/27_io/basic_ostream/tellp/char/n3168.cc: New test.
4330 * testsuite/27_io/basic_ostream/tellp/wchar_t/n3168.cc: New test.
4332 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
4334 * include/std/syncstream (basic_syncbuf::swap()): Remove
4335 noexcept, as per LWG 3498.
4337 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
4340 * testsuite/17_intro/names.cc: Undef more names for newlib and
4341 also for arm-none-linux-gnueabi.
4342 * testsuite/experimental/names.cc: Disable PCH.
4344 2021-06-25 Matthias Kretz <m.kretz@gsi.de>
4346 * include/experimental/bits/simd.h (__bit_cast): Implement via
4347 __builtin_bit_cast #if available.
4348 (__proposed::simd_bit_cast): Add overloads for simd and
4349 simd_mask, which use __builtin_bit_cast (or __bit_cast #if not
4350 available), which return an object of the requested type with
4351 the same bits as the argument.
4352 * include/experimental/bits/simd_math.h: Use simd_bit_cast
4353 instead of __bit_cast to allow casts to fixed_size_simd.
4354 (copysign): Remove branch that was only required if __bit_cast
4355 cannot be constexpr.
4356 * testsuite/experimental/simd/tests/bits/test_values.h: Switch
4357 from __bit_cast to __proposed::simd_bit_cast since the former
4358 will not cast fixed_size objects anymore.
4360 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
4362 * include/experimental/bits/simd_math.h
4363 (_GLIBCXX_SIMD_MATH_CALL2_): Rename arg2_ to __arg2.
4364 (_GLIBCXX_SIMD_MATH_CALL3_): Rename arg2_ to __arg2 and arg3_ to
4367 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
4369 * include/experimental/bits/simd.h (__execute_on_index_sequence)
4370 (__execute_on_index_sequence_with_return)
4371 (__call_with_n_evaluations, __call_with_subscripts): Add flatten
4374 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
4376 * include/experimental/bits/simd_x86.h (_S_trunc, _S_floor)
4377 (_S_ceil): Set bit 8 (_MM_FROUND_NO_EXC) on AVX and SSE4.1
4380 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
4382 * include/experimental/bits/simd_x86.h (_S_ldexp): The AVX512F
4383 implementation doesn't require a _VecBltnBtmsk ABI tag, it
4384 requires either a 64-Byte input (in which case AVX512F must be
4385 available) or AVX512VL.
4387 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
4389 * include/experimental/bits/simd_math.h: Undefine internal
4391 (frexp): Move #if to a more sensible position and reformat
4393 (logb): Call _SimdImpl::_S_logb for fixed_size instead of
4394 duplicating the code here.
4395 (modf): Simplify condition.
4397 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
4399 * include/experimental/bits/simd_math.h (fabs): Remove
4400 fabs(simd<integral>) overload.
4402 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
4404 * include/experimental/bits/simd_converter.h
4405 (_SimdConverter::operator()): Pass _SimdTuple by const-ref.
4406 * include/experimental/bits/simd_fixed_size.h
4407 (_GLIBCXX_SIMD_FIXED_OP): Pass binary operator _SimdTuple
4408 arguments by const-ref.
4409 (_S_masked_unary): Pass _SimdTuple by const-ref.
4411 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
4413 * include/experimental/bits/simd_fixed_size.h
4414 (_AbisInSimdTuple): Removed.
4416 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
4418 * include/experimental/bits/simd.h: Add missing operator~
4419 overload for simd<floating-point> to __float_bitwise_operators.
4420 * include/experimental/bits/simd_builtin.h
4421 (_SimdImplBuiltin::_S_complement): Bitcast to int (and back) to
4422 implement complement for floating-point vectors.
4423 * include/experimental/bits/simd_fixed_size.h
4424 (_SimdImplFixedSize::_S_copysign): New function, forwarding to
4425 copysign implementation of _SimdTuple members.
4426 * include/experimental/bits/simd_math.h (copysign): Call
4427 _SimdImpl::_S_copysign for fixed_size arguments. Simplify
4428 generic copysign implementation using the new ~ operator.
4430 2021-06-24 Jonathan Wakely <jwakely@redhat.com>
4432 * testsuite/experimental/simd/README.md: Fix typos.
4434 2021-06-24 Jonathan Wakely <jwakely@redhat.com>
4436 * include/bits/shared_ptr_base.h (__shared_ptr_access::operator[]):
4438 * include/bits/unique_ptr.h (unique_ptr::operator*): Add
4439 conditional noexcept as per LWG 2762.
4440 * testsuite/20_util/shared_ptr/observers/array.cc: Check that
4441 dereferencing cannot throw.
4442 * testsuite/20_util/shared_ptr/observers/get.cc: Likewise.
4443 * testsuite/20_util/optional/observers/lwg2762.cc: New test.
4444 * testsuite/20_util/unique_ptr/lwg2762.cc: New test.
4446 2021-06-23 Patrick Palka <ppalka@redhat.com>
4449 * testsuite/23_containers/multiset/cons/deduction.cc:
4450 Uncomment CTAD example that was rejected by this bug.
4451 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
4453 2021-06-23 Jonathan Wakely <jwakely@redhat.com>
4455 * include/std/chrono (chrono::year::is_leap()): Fix incorrect
4458 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
4460 * testsuite/experimental/simd/README.md: New file.
4462 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
4464 * testsuite/experimental/simd/driver.sh: Rewrite output
4465 verbosity logic. Add -p/--percentage option. Allow -v/--verbose
4466 to be used twice. Add -x and -o short options. Parse long
4467 options with = instead of separating space generically. Parce
4468 contracted short options. Make unrecognized options an error.
4469 If same-line output is active, trap on EXIT to increment the
4470 progress (only with --percentage), erase the line and print the
4472 * testsuite/experimental/simd/generate_makefile.sh: Initialize
4473 helper files for progress account keeping. Update help target
4474 for changes to DRIVEROPTS.
4476 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
4478 * testsuite/Makefile.am (check-simd): Remove -fno-tree-vrp flag
4479 and associated warning.
4480 * testsuite/Makefile.in: Regenerate.
4482 2021-06-23 Cassio Neri <cassio.neri@gmail.com>
4483 Jonathan Wakely <jwakely@redhat.com>
4484 Ulrich Drepper <drepper@redhat.com>
4486 * include/std/chrono (chrono::year::is_leap()): Optimize.
4488 2021-06-23 Patrick Palka <ppalka@redhat.com>
4491 * testsuite/23_containers/map/cons/deduction.cc: Replace ambiguous
4493 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
4494 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
4495 Mention one of the replaced examples is broken due to PR101174.
4496 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
4497 * testsuite/23_containers/unordered_map/cons/deduction.cc: Replace
4498 ambiguous CTAD examples.
4499 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
4501 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
4503 * testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise.
4505 2021-06-23 Jonathan Wakely <jwakely@redhat.com>
4507 * include/std/mutex (__detail::__try_lock_impl): Rename
4508 parameter to avoid clashing with newlib's __lockable macro.
4509 (try_lock): Add 'inline' specifier.
4510 * testsuite/17_intro/names.cc: Add check for __lockable.
4511 * testsuite/30_threads/try_lock/5.cc: Add options for pthreads.
4513 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
4514 Matthias Kretz <m.kretz@gsi.de>
4516 * include/std/mutex (lock): Replace recursion with iteration
4517 when lockables all have the same type.
4518 (__detail::__try_lock_impl): Likewise. Pass lockables as
4519 parameters, instead of a tuple. Always lock the first one, and
4520 recurse for the rest.
4521 (__detail::__lock_impl): Adjust call to __try_lock_impl.
4522 (__detail::__try_to_lock): Remove.
4523 * testsuite/30_threads/lock/3.cc: Check that mutexes are locked.
4524 * testsuite/30_threads/lock/4.cc: Also test non-heterogeneous
4526 * testsuite/30_threads/unique_lock/cons/60497.cc: Also check
4528 * testsuite/30_threads/try_lock/5.cc: New test.
4530 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
4532 * include/std/memory (declare_reachable, undeclare_reachable)
4533 (declare_no_pointers, undeclare_no_pointers, get_pointer_safety)
4534 (pointer_safety): Only define for C++11 to C++20 inclusive.
4535 * testsuite/20_util/pointer_safety/1.cc: Do not run for C++23.
4537 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
4539 * include/bits/random.h (seed_seq): Constrain initializer-list
4541 * include/bits/random.tcc (seed_seq): Add template parameter.
4542 * testsuite/26_numerics/random/seed_seq/cons/default.cc: Check
4544 * testsuite/26_numerics/random/seed_seq/cons/initlist.cc: Check
4547 2021-06-22 Thomas Rodgers <rodgert@appliantology.com>
4550 * include/bits/semaphore_base.h (__atomic_semaphore::_M_release):
4551 Force _M_release() to wake all waiting threads.
4552 * testsuite/30_threads/semaphore/100806.cc: New test.
4554 2021-06-21 Jonathan Wakely <jwakely@redhat.com>
4556 * include/std/mutex (__try_to_lock): Move to __detail namespace.
4557 (struct __try_lock_impl): Replace with ...
4558 (__detail::__try_lock_impl<Idx>(tuple<Lockables...>&)): New
4559 function templates to implement std::try_lock.
4560 (try_lock): Use new __try_lock_impl.
4561 (__detail::__lock_impl(int, int&, L0&, L1&...)): New function
4562 template to implement std::lock.
4563 (lock): Use __lock_impl.
4565 2021-06-21 Patrick Palka <ppalka@redhat.com>
4567 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
4569 2021-06-20 Patrick Palka <ppalka@redhat.com>
4571 * include/std/ranges (__non_propagating_cache::operator bool):
4572 Define for split_view::begin().
4573 (split_view): Define as per P2210.
4574 (views::__detail::__can_split_view): Define.
4575 (views::_Split, views::split): Define.
4576 * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
4578 * testsuite/std/ranges/adaptors/split.cc: New test.
4579 * testsuite/std/ranges/p2325.cc (test08a): New test.
4580 * testsuite/std/ranges/p2367.cc (test01): Test views::split.
4582 2021-06-20 Patrick Palka <ppalka@redhat.com>
4584 * include/std/ranges: Rename views::split to views::lazy_split,
4585 split_view to lazy_split_view, etc. throughout.
4586 * testsuite/std/ranges/*: Likewise.
4587 * testsuite/std/ranges/adaptors/lazy_split.cc: New file.
4588 * testsuite/std/ranges/adaptors/lazy_split_neg.cc: New file.
4590 2021-06-20 Patrick Palka <ppalka@redhat.com>
4592 * include/std/ranges (split_view::_OuterIter::__at_end):
4593 Check _M_trailing_empty.
4594 (split_view::_OuterIter::_M_trailing_empty): Define this
4596 (split_view::_OuterIter::operator++): Set _M_trailing_empty
4598 (split_view::_OuterIter::operator==): Compare
4600 * testsuite/std/ranges/adaptors/100479.cc (test03): Expect two
4601 split parts instead of one.
4602 * testsuite/std/ranges/adaptors/split.cc (test11): New test.
4604 2021-06-20 Patrick Palka <ppalka@redhat.com>
4606 * include/std/ranges (split_view::_InnerIter::base): Define as
4609 2021-06-19 Patrick Palka <ppalka@redhat.com>
4611 * include/std/ranges (transform_view::_Iterator::_S_iter_concept):
4612 Consider _Base instead of _Vp as per LWG 3555.
4613 (elements_view::_Iterator::_S_iter_concept): Likewise.
4615 2021-06-19 Patrick Palka <ppalka@redhat.com>
4617 * include/std/ranges (split_view::_OuterIter::value_type::begin):
4618 Remove the non-const overload, and remove the copyable constraint
4619 on the const overload as per LWG 3553.
4621 2021-06-19 Patrick Palka <ppalka@redhat.com>
4623 * include/bits/stl_iterator.h
4624 (__detail::__common_iter_use_postfix_proxy): Add
4625 move_constructible constraint as per LWG 3546.
4626 (common_iterator::__postfix_proxy): Adjust initializer of
4627 _M_keep as per LWG 3546.
4629 2021-06-18 Patrick Palka <ppalka@redhat.com>
4632 * include/bits/ranges_algo.h (__minmax_fn::operator()): Rewrite
4633 to limit comparison complexity to 3*N/2.
4634 (__minmax_element_fn::operator()): Likewise.
4635 (shift_right): Avoid premature std::move of __result.
4636 * testsuite/25_algorithms/minmax/constrained.cc (test04, test05):
4638 * testsuite/25_algorithms/minmax_element/constrained.cc (test02):
4641 2021-06-18 Patrick Palka <ppalka@redhat.com>
4643 * include/std/concepts (convertible_to): Just use declval as per
4646 2021-06-18 Jonathan Wakely <jwakely@redhat.com>
4649 * include/std/numeric (reduce(Iter, Iter, T, BinaryOp)): Replace
4650 incorrect static_assert with ones matching the 'Mandates'
4651 conditions in the standard.
4652 * testsuite/26_numerics/reduce/95833.cc: New test.
4654 2021-06-18 Jonathan Wakely <jwakely@redhat.com>
4656 * testsuite/21_strings/basic_string/cons/char/1.cc: Use
4657 diagnostic pragma to suppress -Wstringop-overread error.
4659 2021-06-18 Patrick Palka <ppalka@redhat.com>
4661 * include/bits/ranges_algo.h (__find_fn, find, __find_if_fn)
4662 (find_if, __find_if_not_fn, find_if_not, _in_in_result)
4663 (__mismatch_fn, mismatch, __search_fn, search): Move to ...
4664 * include/bits/ranges_util.h: ... here.
4665 * include/std/ranges (__detail::find, __detail::find_if)
4666 (__detail::find_if_not, __detail::mismatch): Remove.
4667 (filter_view): Use ranges::find_if instead.
4668 (drop_while_view): Use ranges::find_if_not instead.
4669 (split_view): Use ranges::find and ranges::mismatch instead.
4671 2021-06-18 Patrick Palka <ppalka@redhat.com>
4673 * include/bits/iterator_concepts.h (weakly_incrementable): Remove
4674 default_initializable requirement.
4675 * include/bits/ranges_base.h (ranges::view): Likewise.
4676 * include/bits/ranges_util.h (subrange): Constrain the default
4678 * include/bits/stl_iterator.h (back_insert_iterator): Remove the
4680 (front_insert_iterator): Likewise.
4681 (insert_iterator): Likewise. Remove NSDMIs.
4682 (common_iterator): Constrain the default ctor.
4683 (counted_iterator): Likewise.
4684 * include/bits/stream_iterator.h (ostream_iterator): Remove the
4686 * include/std/ranges (__detail::__box::operator=): Handle
4687 self-assignment in the primary template.
4688 (__detail::__box): In the partial specialization: adjust
4689 constraints as per P2325. Add specialized operator= for the
4690 case when the wrapped type is not copyable. Constrain the
4691 default ctor. Avoid list-initialization.
4692 (single_view): Constraint the default ctor.
4693 (iota_view): Relax semiregular constraint to copyable.
4694 Constrain the default ctor.
4695 (iota_view::_Iterator): Constraint the default ctor.
4696 (basic_istream_view): Remove the default ctor. Remove NSDMIs.
4697 Remove redundant checks for empty _M_stream.
4698 (basic_istream_view::_Iterator): Likewise.
4699 (ref_view): Remove the default ctor. Remove NSDMIs.
4700 (ref_view::_Iterator): Constrain the default ctor.
4701 (__detail::__non_propagating_cache::operator=): Define overload
4702 for assigning from a value of the underlying type.
4703 (filter_view): Likewise.
4704 (filter_view::_Iterator): Likewise.
4705 (transform_view): Likewise.
4706 (transform_view::_Iterator): Likewise.
4707 (take_view): Likewise.
4708 (take_view::_Iterator): Likewise.
4709 (take_while_view): Likewise.
4710 (take_while_view::_Iterator): Likewise.
4711 (drop_while_view): Likewise.
4712 (drop_while_view::_Iterator): Likewise.
4713 (join_view): Likewise.
4714 (split_view::_OuterIter::__current): Adjust after changing the
4716 (split_view::_M_current): Wrap it in a __non_propagating_cache.
4717 (split_view::split_view): Constrain the default ctor.
4718 (common_view): Constrain the default ctor.
4719 (reverse_view): Likewise.
4720 (elements_view): Likewise.
4721 * include/std/span (enable_view<span<_ElementType, _Extent>>):
4722 Define this partial specialization to true unconditionally.
4723 * include/std/version (__cpp_lib_ranges): Adjust value.
4724 * testsuite/24_iterators/back_insert_iterator/constexpr.cc:
4725 Don't attempt to default construct a back_insert_iterator.
4726 * testsuite/24_iterators/front_insert_iterator/constexpr.cc:
4727 Don't attempt to default construct a front_insert_iterator.
4728 * testsuite/24_iterators/insert_iterator/constexpr.cc:
4729 Don't attempt to default construct an insert_iterator.
4730 * testsuite/24_iterators/ostream_iterator/requirements/constexpr.cc:
4731 Remove this test for default constructibility of ostream_iterator.
4732 * testsuite/std/ranges/97600.cc: Don't attempt to default
4733 construct a basic_istream_view.
4734 * testsuite/std/ranges/adaptors/detail/semiregular_box.cc:
4736 * testsuite/std/ranges/adaptors/detail/copyable_box.cc: ... this.
4737 (test02): Adjust now that __box is copyable-box not
4740 * testsuite/std/ranges/p2325.cc: New test.
4741 * testsuite/std/ranges/single_view.cc (test06): New test.
4742 * testsuite/std/ranges/view.cc: Adjust now that view doesn't
4743 require default_initializable.
4745 2021-06-17 Jonathan Wakely <jwakely@redhat.com>
4748 * include/bits/basic_string.h (__cpp_lib_constexpr_string): Only
4749 define when is_constant_evaluated is available.
4750 * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits):
4752 (__constant_string_p, __constant_array_p): Remove.
4753 (char_traits): Use is_constant_evaluated directly.
4754 * include/std/version (__cpp_lib_constexpr_char_traits)
4755 (__cpp_lib_constexpr_string): Only define when
4756 is_constant_evaluated is available.
4758 2021-06-17 Patrick Palka <ppalka@redhat.com>
4761 * include/std/ranges (__adaptor::_Partial): For the "simple"
4762 forwarding partial specializations, also require that
4763 the extra arguments are trivially copyable.
4764 * testsuite/std/ranges/adaptors/100577.cc (test04): New test.
4766 2021-06-17 Patrick Palka <ppalka@redhat.com>
4769 * include/std/ranges (__adaptor::_RangeAdaptor): Document the
4770 template form of _S_has_simple_extra_args.
4771 (__adaptor::__adaptor_has_simple_extra_args): Add _Args template
4772 parameter pack. Try to treat _S_has_simple_extra_args as a
4773 variable template parameterized by _Args.
4774 (__adaptor::_Partial): Pass _Arg/_Args to the constraint
4775 __adaptor_has_simple_extra_args.
4776 (views::_Take::_S_has_simple_extra_args): Templatize according
4777 to the type of the extra argument.
4778 (views::_Drop::_S_has_simple_extra_args): Likewise.
4779 (views::_Split::_S_has_simple_extra_args): Define.
4780 * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
4781 Adjust after changes to _S_has_simple_extra_args mechanism.
4784 2021-06-16 Jonathan Wakely <jwakely@redhat.com>
4786 * include/bits/iterator_concepts.h (__decay_copy): Name type.
4788 2021-06-16 Jonathan Wakely <jwakely@redhat.com>
4790 * include/bits/ranges_base.h (ranges::begin, ranges::end)
4791 (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
4792 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
4793 (ranges::empty, ranges::data, ranges::cdata): Remove final
4794 keywords and deleted operator& overloads.
4795 * testsuite/24_iterators/customization_points/iter_move.cc: Use
4796 new is_customization_point_object function.
4797 * testsuite/24_iterators/customization_points/iter_swap.cc:
4799 * testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc:
4801 * testsuite/std/ranges/access/begin.cc: Likewise.
4802 * testsuite/std/ranges/access/cbegin.cc: Likewise.
4803 * testsuite/std/ranges/access/cdata.cc: Likewise.
4804 * testsuite/std/ranges/access/cend.cc: Likewise.
4805 * testsuite/std/ranges/access/crbegin.cc: Likewise.
4806 * testsuite/std/ranges/access/crend.cc: Likewise.
4807 * testsuite/std/ranges/access/data.cc: Likewise.
4808 * testsuite/std/ranges/access/empty.cc: Likewise.
4809 * testsuite/std/ranges/access/end.cc: Likewise.
4810 * testsuite/std/ranges/access/rbegin.cc: Likewise.
4811 * testsuite/std/ranges/access/rend.cc: Likewise.
4812 * testsuite/std/ranges/access/size.cc: Likewise.
4813 * testsuite/std/ranges/access/ssize.cc: Likewise.
4814 * testsuite/util/testsuite_iterators.h
4815 (is_customization_point_object): New function.
4817 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
4819 * include/bits/ranges_base.h (ranges::begin, ranges::end)
4820 (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
4821 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
4822 (ranges::empty, ranges::data, ranges::cdata): Make types final.
4823 Add deleted operator& overloads.
4824 (ranges::advance, ranges::distance, ranges::next, ranges::prev):
4826 * testsuite/std/ranges/headers/ranges/synopsis.cc: Replace
4827 ill-formed & expressions with using-declarations. Add checks for
4828 other function objects.
4830 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
4832 * include/bits/ranges_util.h (view_interface): Add noexcept to
4833 empty, operator bool, data and size members.
4834 (subrange): Add noexcept to constructors.
4835 * include/std/ranges (single_view, ref_view): Add noexcept to
4837 (views::single, views::all): Add noexcept.
4838 * testsuite/std/ranges/adaptors/all.cc: Check noexcept.
4839 * testsuite/std/ranges/single_view.cc: Likewise.
4841 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
4843 * include/bits/ranges_util.h (subrange): Add __size_type typedef
4844 and use it to simplify declarations.
4845 (subrange(i, s, n)): Remove assertion.
4846 * testsuite/std/ranges/subrange/constexpr.cc: New test.
4848 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
4850 * include/bits/iterator_concepts.h (__cust_access::__decay_copy):
4851 Replace with function object.
4852 (__cust_access::__member_begin, ___cust_access::_adl_begin): Use
4853 __decay_copy unqualified.
4854 * include/bits/ranges_base.h (__member_end, __adl_end):
4855 Likewise. Use __range_iter_t for type of ranges::begin.
4856 (__member_rend): Use correct value category for rbegin argument.
4857 (__member_data): Use __decay_copy unqualified.
4858 (__begin_data): Use __range_iter_t for type of ranges::begin.
4860 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
4862 * include/bits/ranges_base.h (ranges::empty): Check whether
4863 conversion to bool can throw.
4864 * testsuite/std/ranges/access/empty.cc: Check for correct
4867 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
4870 * include/std/type_traits (__common_ref_impl<X&, Y&>): Only
4871 use the type if it's a reference.
4872 * testsuite/20_util/common_reference/100894.cc: New test.
4874 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
4876 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
4877 Add dg-require-filesystem-ts directive.
4879 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
4882 * include/std/any (any(in_place_t<T>, initializer_list<U>, A&&...))
4883 (any::emplace<T>(initializer_list<U>, A&&...)): Fix constraint
4885 * testsuite/20_util/any/cons/101034.cc: New test.
4887 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
4889 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Add
4890 -std=gnu++17 option.
4892 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
4895 * libsupc++/compare (compare_partial_order_fallback): Add
4896 constraint using reversed parameter order, as per LWG 3465.
4897 * testsuite/18_support/comparisons/algorithms/fallback.cc:
4898 Adjust expected result.
4900 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
4902 * libsupc++/compare (__decayed_same_as): New helper concept.
4903 (strong_order, weak_order, partial_order): Constrain with new
4904 concept instead of using static_assert.
4905 (compare_strong_order_fallback, compare_weak_order_fallback)
4906 (compare_partial_order_fallback): Likewise. Do not deduce return
4907 types. Remove redundant if-constexpr checks.
4908 * testsuite/18_support/comparisons/algorithms/fallback.cc: New test.
4910 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
4913 * include/std/tuple: Use reserved form of attribute name.
4914 * testsuite/17_intro/headers/c++2011/all_attributes.cc: Add
4915 check for no_unique_address.
4916 * testsuite/17_intro/headers/c++2014/all_attributes.cc:
4918 * testsuite/17_intro/headers/c++2017/all_attributes.cc:
4921 2021-06-11 Jonathan Wakely <jwakely@redhat.com>
4923 * include/bits/fs_path.h (operator==, operator<=>): Use new
4924 _S_compare function.
4925 (path::_S_compare): New function to call path::compare in a
4926 context where path::iterator is complete.
4927 * include/experimental/bits/fs_path.h (operator<, operator==):
4928 Define after path::iterator is complete.
4929 * testsuite/27_io/filesystem/path/native/conv_c++23.cc: New
4931 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
4934 2021-06-09 Thomas Rodgers <rodgert@appliantology.com>
4936 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Guard
4937 test logic with constexpr check for is_always_lock_free.
4939 2021-06-09 Jonathan Wakely <jwakely@redhat.com>
4942 * include/std/optional (optional::operator=(const optional<U>&)):
4943 Fix value category used in is_assignable check.
4944 * testsuite/20_util/optional/assignment/100982.cc: New test.
4946 2021-06-09 Jonathan Wakely <jwakely@redhat.com>
4948 * include/bits/allocator.h (allocator::is_always_equal): Deprecate.
4949 * include/bits/iterator_concepts.h (indirectly_readable_traits):
4950 Add LWG issue number to comment.
4951 * include/std/memory_resource (polymorphic_allocator::release):
4953 * testsuite/20_util/allocator/requirements/typedefs.cc: Add
4954 dg-warning for deprecation. Also check std::allocator<void>.
4956 2021-06-08 Thomas Rodgers <rodgert@appliantology.com>
4959 * include/bits/atomic_base.h (atomic_ref<_Tp*>::wait):
4960 Change parameter type from _Tp to _Tp*.
4961 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Extend
4962 coverage of types tested.
4964 2021-06-08 Thomas Rodgers <rodgert@appliantology.com>
4966 * include/std/barrier (__tree_barrier::_M_arrive): Remove
4967 unnecessary hasher instantiation.
4969 2021-06-08 Jonathan Wakely <jwakely@redhat.com>
4971 * include/experimental/propagate_const (swap): Constrain.
4972 * testsuite/experimental/propagate_const/swap/lwg3413.cc: New test.
4974 2021-06-07 Avi Kivity <avi@scylladb.com>
4977 * include/std/ranges (elements_view::__iter_cat::_S_iter_cat):
4978 Add missing typename.
4980 2021-06-07 Jonathan Wakely <jwakely@redhat.com>
4983 * include/std/optional (operator<=>(const optional<T>& const U&)):
4984 Add missing constraint and add workaround for template
4986 * testsuite/20_util/optional/relops/three_way.cc: Check that
4987 type without equality comparison cannot be compared when wrapped
4990 2021-06-05 Jonathan Wakely <jwakely@redhat.com>
4993 * include/bits/ranges_base.h (_SSize): Return signed type.
4994 * testsuite/std/ranges/access/ssize.cc: Check with __int128.
4996 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
4998 * include/bits/ranges_base.h (_SSize): Return the result of
4999 ranges::size converted to the wider of make-signed-like-t<S> and
5000 ptrdiff_t, rather than the ranges different type.
5001 * testsuite/std/ranges/access/ssize.cc: Adjust expected result
5002 for an iota_view that uses an integer class type for its
5005 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
5008 * include/bits/ranges_base.h (__member_data): Use __decay_copy.
5009 * testsuite/std/ranges/access/data.cc: Add testcase from PR.
5011 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
5014 * include/bits/iterator_concepts.h (__detail::__decay_copy)
5015 (__detail::__member_begin, __detail::__adl_begin): Move to
5016 namespace ranges::__cust_access.
5017 (__detail::__ranges_begin): Likewise, and rename to __begin.
5018 Remove redundant static assertion.
5019 * include/bits/ranges_base.h (_Begin, _End, _RBegin, _REnd):
5020 Use lvalue in noexcept specifier.
5021 (__as_const): Add non-deduced parameter for value category.
5022 (_CBegin, _CEnd, _CRBegin, _CREnd, _CData): Adjust uses of
5024 (__member_size, __adl_size, __member_empty, __size0_empty):
5025 (__eq_iter_empty, __adl_data): Use lvalue objects in
5027 (__sentinel_size): Likewise. Add check for conversion to
5029 (__member_data): Allow non-lvalue types to satisfy the concept,
5030 but use lvalue object in requirements.
5031 (_Size, _SSize): Remove forwarding to always use an lvalue.
5032 (_Data): Likewise. Add static assertion for arrays.
5033 * testsuite/std/ranges/access/cdata.cc: Adjust expected
5034 behaviour for rvalues. Add negative tests for ill-formed
5036 * testsuite/std/ranges/access/data.cc: Likewise.
5037 * testsuite/std/ranges/access/empty.cc: Adjust expected
5038 behaviour for rvalues.
5039 * testsuite/std/ranges/access/size.cc: Likewise.
5041 2021-06-04 Tim Adye <Tim.Adye@cern.ch>
5043 * include/std/any (any::_Manager::_S_access): New static
5044 function to access the contained value.
5045 (any::emplace, __any_caster): Use _S_access member of the
5048 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
5050 * doc/xml/manual/status_cxx2020.xml:
5051 * doc/html/*: Regenerate.
5052 * include/bits/hashtable.h (__cpp_lib_generic_unordered_lookup):
5054 * include/std/version (__cpp_lib_generic_unordered_lookup):
5056 * testsuite/23_containers/unordered_map/operations/1.cc: Check
5058 * testsuite/23_containers/unordered_set/operations/1.cc:
5061 2021-06-03 Patrick Palka <ppalka@redhat.com>
5063 * include/bits/ranges_algo.h (__detail::__can_reread_output):
5064 Factor out this concept from ...
5065 (__unique_copy_fn::operator()): ... here. Use the concept
5067 * testsuite/std/ranges/range.cc: Remove now ill-formed use
5068 of range_value_t on an output_range.
5069 * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
5070 Define value_type, pointer and reference member types to void.
5072 2021-06-03 Patrick Palka <ppalka@redhat.com>
5075 * include/std/ranges (_RangeAdaptorClosure): Document
5076 _S_has_simple_call_op mechanism.
5077 (_RangeAdaptor): Document _S_has_simple_extra_args mechanism.
5078 (__closure_has_simple_call_op): New concept.
5079 (__adaptor_has_simple_extra_args): Likewise.
5080 (_Partial<_Adaptor, _Args...>): New partial specialization.
5081 (_Partial<_Adaptor, _Arg>): Likewise.
5082 (_Pipe<_Lhs, _Rhs>): Likewise.
5083 (views::_All::_S_has_simple_call_op): Define to true.
5084 (views::_Filter::_S_has_simple_extra_args): Likewise.
5085 (views::_Transform::_S_has_simple_extra_args): Likewise.
5086 (views::_Take::_S_has_simple_extra_args): Likewise.
5087 (views::_TakeWhile::_S_has_simple_extra_args): Likewise.
5088 (views::_Drop::_S_has_simple_extra_args): Likewise.
5089 (views::_DropWhile::_S_has_simple_extra_args): Likewise.
5090 (views::_Join::_S_has_simple_call_op): Likewise.
5091 (views::_Split): Document why we don't define
5092 _S_has_simple_extra_args to true for this adaptor.
5093 (views::_Common::_S_has_simple_call_op): Define to true.
5094 (views::_Reverse::_S_has_simple_call_op): Likewise.
5095 (views::_Elements::_S_has_simple_call_op): Likewise.
5096 * testsuite/std/ranges/adaptors/100577.cc: New test.
5098 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
5102 * include/bits/hashtable_policy.h (_Hashtable_ebo_helper):
5103 Value-initialize subobject.
5104 * testsuite/23_containers/unordered_map/allocator/default_init.cc:
5106 * testsuite/23_containers/unordered_set/allocator/default_init.cc:
5109 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
5112 * testsuite/23_containers/unordered_map/96088.cc: Adjust
5113 expected number of allocations.
5114 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
5116 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
5118 * doc/xml/manual/status_cxxis29124.xml: Improve punctuation.
5119 * doc/xml/manual/status_cxxtr1.xml: Likewise.
5120 * doc/xml/manual/status_cxxtr24733.xml: Likewise.
5121 * doc/html/*: Regenerate.
5123 2021-06-01 Patrick Palka <ppalka@redhat.com>
5126 * testsuite/23_containers/deque/allocator/default_init.cc,
5127 testsuite/23_containers/forward_list/allocator/default_init.cc,
5128 testsuite/23_containers/list/allocator/default_init.cc,
5129 testsuite/23_containers/map/allocator/default_init.cc,
5130 testsuite/23_containers/set/allocator/default_init.cc,
5131 testsuite/23_containers/vector/allocator/default_init.cc,
5132 testsuite/23_containers/vector/bool/allocator/default_init.cc:
5135 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
5137 * testsuite/23_containers/unordered_map/96088.cc: Change
5138 effective target to c++17.
5139 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
5141 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
5143 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Only test
5144 isblank for C++11 and later.
5146 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
5149 * include/bits/ranges_base.h (ranges::advance(iter, n, sentinel)):
5150 Fix return value for no-op case.
5151 * testsuite/24_iterators/range_operations/advance.cc: Test
5152 return values of three-argument overload.
5154 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
5157 * python/Makefile.am: Use archive name for printer hook if no
5158 dynamic library name is available.
5159 * python/Makefile.in: Regenerate.
5161 2021-05-30 Gerald Pfeifer <gerald@pfeifer.com>
5163 * doc/xml/manual/abi.xml: Remove dead reference to "Intel
5164 Compilers for Linux: Compatibility with GNU Compilers" article.
5165 * doc/html/manual/abi.html: Regenerate.
5167 2021-05-26 François Dumont <fdumont@gcc.gnu.org>
5169 * include/debug/formatter.h
5170 (_Error_formatter::_Parameter::_Named): New.
5171 (_Error_formatter::_Parameter::_Type): Inherit latter.
5172 (_Error_formatter::_Parameter::_M_integer): Likewise.
5173 (_Error_formatter::_Parameter::_M_string): Likewise.
5174 * src/c++11/debug.cc: Include <cstring>.
5175 (_Print_func_t): New.
5176 (print_raw(PrintContext&, const char*, ptrdiff_t)): New.
5177 (print_word): Use '%.*s' format in fprintf to render only expected number of chars.
5178 (pretty_print(PrintContext&, const char*, _Print_func_t)): New.
5179 (print_type): Rename in...
5180 (print_type_info): ...this. Use pretty_print.
5181 (print_address, print_integer): New.
5182 (print_named_name, print_iterator_constness, print_iterator_state): New.
5183 (print_iterator_seq_type): New.
5184 (print_named_field, print_type_field, print_instance_field, print_iterator_field): New.
5185 (print_field): Use latters.
5186 (print_quoted_named_name, print_type_type, print_type, print_instance): New.
5187 (print_string(PrintContext&, const char*, const _Parameter*, size_t)):
5188 Change signature to...
5189 (print_string(PrintContext&, const char*, ptrdiff_t, const _Parameter*, size_t)):
5190 ...this and adapt. Remove intermediate buffer to render input string.
5191 (print_string(PrintContext&, const char*, ptrdiff_t)): New.
5193 2021-05-26 Jonathan Wakely <jwakely@redhat.com>
5196 * include/bits/ranges_base.h (advance, distance, next, prev):
5197 Replace function templates with function objects.
5198 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
5199 Adjust for changes to function objects.
5200 * testsuite/std/ranges/adaptors/elements.cc: Add using
5201 declarations for names from namespace ranges.
5202 * testsuite/std/ranges/adaptors/transform.cc: Likewise.
5203 * testsuite/24_iterators/range_operations/100768.cc: New test.
5205 2021-05-24 François Dumont <fdumont@gcc.gnu.org>
5208 * include/bits/hashtable_policy.h (_Select2nd): New.
5209 (_NodeBuilder<>): New.
5210 (_ReuseOrAllocNode<>::operator()): Use variadic template args.
5211 (_AllocNode<>::operator()): Likewise.
5212 * include/bits/hashtable.h
5213 (_Hashtable<>::__node_builder_t): New.
5214 (_Hashtable<>::_M_insert_unique<>(_Kt&&, _Arg&&, const _NodeGenerator&)):
5216 (_Hashtable<>::_S_forward_key): New.
5217 (_Hashtable<>::_M_insert): Use latter.
5218 (_Hashtable<>::_M_insert(const_iterator, _Arg&&, const _NodeGenerator&, false_type)):
5219 Instantiate node first, compute hash code second.
5220 * testsuite/23_containers/unordered_map/96088.cc: New test.
5221 * testsuite/23_containers/unordered_multimap/96088.cc: New test.
5222 * testsuite/23_containers/unordered_multiset/96088.cc: New test.
5223 * testsuite/23_containers/unordered_set/96088.cc: New test.
5224 * testsuite/util/replacement_memory_operators.h
5225 (counter::_M_increment): New.
5226 (counter::_M_decrement): New.
5227 (counter::reset()): New.
5229 2021-05-24 Patrick Palka <ppalka@redhat.com>
5232 * include/std/ranges (__detail::__non_propagating_cache): Move
5233 definition up to before that of _CachedPosition. Make base
5234 class _Optional_base protected instead of private. Add const
5235 overload for operator*.
5236 (__detail::_CachedPosition): Rewrite the partial specialization
5237 for forward ranges as a derived class of __non_propagating_cache.
5238 Remove the size constraint on the partial specialization for
5239 random access ranges. Add copy/move/copy-assignment/move-assignment
5240 members to the offset partial specialization for random
5241 access ranges that propagate the cached value but additionally
5242 invalidate it in the source object on move.
5243 * testsuite/std/ranges/adaptors/100479.cc: New test.
5245 2021-05-24 Jonathan Wakely <jwakely@redhat.com>
5247 * testsuite/25_algorithms/inplace_merge/constrained.cc: Qualify
5248 call to ranges::next.
5249 * testsuite/25_algorithms/is_sorted/constrained.cc: Likewise.
5250 * testsuite/25_algorithms/is_sorted_until/constrained.cc:
5252 * testsuite/25_algorithms/swap_ranges/1.cc: Qualify call to
5255 2021-05-21 Patrick Palka <ppalka@redhat.com>
5258 * include/std/ranges (drop_while_view::begin): Assert the
5259 precondition added by LWG 3490.
5261 2021-05-21 Patrick Palka <ppalka@redhat.com>
5264 * include/std/ranges (iota_view::_Sentinel::_M_distance_from):
5265 Split out this member function from ...
5266 (iota_view::_Sentinel::operator-): ... here, for sake of access
5268 * testsuite/std/ranges/iota/iota_view.cc (test05): New test.
5270 2021-05-20 Jonathan Wakely <jwakely@redhat.com>
5272 * include/bits/random.tcc (__representable_as_double)
5273 (__p1_representable_as_double): Add "" to static asserts.
5275 2021-05-20 Jonathan Wakely <jwakely@redhat.com>
5278 * include/bits/c++config (__glibcxx_assert_1): Rename to ...
5279 (__glibcxx_constexpr_assert): ... this.
5280 (__glibcxx_assert_impl): Use __glibcxx_constexpr_assert.
5281 (__glibcxx_assert): Define as either __glibcxx_constexpr_assert
5282 or __glibcxx_assert_impl.
5283 (__glibcxx_assert_2): Remove
5284 * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): Use
5285 __glibcxx_constexpr_assert instead of __glibcxx_assert_1.
5286 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
5287 Adjust expected error.
5288 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
5290 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
5293 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
5295 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
5297 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
5299 * testsuite/23_containers/span/back_neg.cc: Likewise.
5300 * testsuite/23_containers/span/front_neg.cc: Likewise.
5301 * testsuite/23_containers/span/index_op_neg.cc: Likewise.
5303 2021-05-20 Patrick Palka <ppalka@redhat.com>
5306 * include/bits/stl_iterator.h (reverse_iterator::difference_type):
5307 In C++20 mode, define in terms of iter_difference_t as per P0896R4.
5308 (reverse_iterator::reference): Likewise, but with iter_reference_t.
5309 (reverse_iterator::value_type): Likewise, but with iter_value_t.
5310 * testsuite/std/ranges/adaptors/reverse.cc (test08): New test.
5311 * testsuite/24_iterators/reverse_iterator/100639.cc: New test.
5313 2021-05-20 Joern Rennecke <joern.rennecke@riscy-ip.com>
5316 * include/std/charconv (to_chars): Hide the overloads for
5317 floating-point types for 16 bit targets.
5318 * src/c++17/floating_to_chars.cc: Don't compile for 16 bit targets.
5319 * testsuite/20_util/to_chars/double.cc: Run this test only on
5321 * testsuite/20_util/to_chars/float.cc: Likewise.
5322 * testsuite/20_util/to_chars/long_double.cc: Likewise.
5324 2021-05-18 Patrick Palka <ppalka@redhat.com>
5327 * include/std/ranges (elements_view::_Sentinel::operator-): Use
5328 _M_distance_from in the other operator- overload too.
5329 * testsuite/std/ranges/adaptors/elements.cc (test06): Augment test.
5331 2021-05-18 Thomas Schwinge <thomas@codesourcery.com>
5333 * testsuite/lib/prune.exp: Add note about 'dg-note'.
5335 2021-05-18 Patrick Palka <ppalka@redhat.com>
5338 * include/std/ranges (__box::__box): Use non-list-initialization
5339 in member initializer list of in-place constructor of the
5340 partial specialization for semiregular types.
5341 (__box::operator->): Use std::__addressof.
5342 * testsuite/std/ranges/adaptors/detail/semiregular_box.cc
5344 * testsuite/std/ranges/single_view.cc (test04): New test.
5346 2021-05-18 Patrick Palka <ppalka@redhat.com>
5349 * include/std/ranges (reverse_view::_S_needs_cached_begin):
5350 Set to true if the underlying non-common random-access range
5351 doesn't have a sized sentinel.
5353 2021-05-18 Patrick Palka <ppalka@redhat.com>
5356 * include/std/ranges (elements_view::_Iterator): Also befriend
5358 (elements_view::_Sentinel::_M_equal): Templatize.
5359 (elements_view::_Sentinel::_M_distance_from): Split out from ...
5360 (elements_view::_Sentinel::operator-): ... here. Depend on
5361 _Base2 instead of _Base in the return type.
5362 * testsuite/std/ranges/adaptors/elements.cc (test06, test07):
5365 2021-05-17 Thomas Rodgers <rodgert@twrodgers.com>
5367 * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): loop
5368 until value change observed.
5369 (__waiter_base::_M_laundered): New member.
5370 (__waiter_base::_M_notify): Check _M_laundered to determine
5371 whether to wake one or all.
5372 (__detail::__atomic_compare): Return true if call to
5373 __builtin_memcmp() == 0.
5374 (__waiter_base::_S_do_spin_v): Adjust predicate.
5375 * testsuite/29_atomics/atomic/wait_notify/100334.cc: New
5378 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
5381 * include/experimental/bits/fs_path.h (__is_constructible_from):
5382 Test construction from a const lvalue, not an rvalue.
5383 * testsuite/27_io/filesystem/path/construct/100630.cc: New test.
5384 * testsuite/experimental/filesystem/path/construct/100630.cc:
5387 2021-05-17 Antony Polukhin <antoshkka@gmail.com>
5390 * include/bits/locale_facets.h (ctype<basic_string<C,T,A>>):
5391 Declare (but do not define) partial specialization.
5392 * testsuite/22_locale/ctype/is/string/89728_neg.cc: New test.
5394 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
5396 * include/std/thread (jthread::_S_create): Fix static assert
5398 * testsuite/30_threads/jthread/95989.cc: Re-enable test.
5399 * testsuite/30_threads/jthread/jthread.cc: Do not require
5400 pthread effective target.
5401 * testsuite/30_threads/jthread/2.cc: Moved to...
5402 * testsuite/30_threads/jthread/version.cc: ...here.
5404 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
5406 * doc/Makefile.am: Simplify doxygen recipes and use --latex_cmd.
5407 * doc/Makefile.in: Regenerate.
5408 * doc/doxygen/user.cfg.in (LATEX_CMD_NAME): Add placeholder
5410 * scripts/run_doxygen (print_usage): Always print to stdout and
5412 (fail): New function for exiting on error.
5413 (parse_options): Handle --latex_cmd. Do not treat --help the
5414 same as errors. Simplify handling of required arguments.
5416 2021-05-12 Jonathan Wakely <jwakely@redhat.com>
5418 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
5419 Increase dg-timeout-factor to 4. Fix -Wunused-parameter
5420 warnings. Replace bitwise AND with logical AND in loop
5422 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
5423 Replace bitwise AND with logical AND in loop condition.
5424 * testsuite/util/pstl/test_utils.h: Remove unused parameter
5427 2021-05-11 Patrick Palka <ppalka@redhat.com>
5429 * src/c++17/ryu/LOCAL_PATCHES: Update.
5430 * src/c++17/ryu/ryu_generic_128.h: Remove extern "C".
5431 Remove declarations for never-defined functions.
5432 * testsuite/20_util/to_chars/4.cc: New test.
5434 2021-05-11 Jonathan Wakely <jwakely@redhat.com>
5436 * testsuite/20_util/headers/memory/synopsis.cc: Define C++98
5437 alternative for macro.
5438 * testsuite/20_util/shared_ptr/creation/99006.cc: Add effective
5440 * testsuite/25_algorithms/copy/debug/99402.cc: Avoid C++11
5443 2021-05-11 Jonathan Wakely <jwakely@redhat.com>
5445 * include/bits/allocator.h (allocator<void>) [C++20]: Add
5446 missing noexcept to constructor. Restore missing POCMA and
5447 is_always_equal_traits.
5448 [C++17]: Make construct and destroy members private and
5449 declare allocator_traits as a friend.
5450 * include/bits/memoryfwd.h (allocator_traits): Declare.
5451 * include/ext/malloc_allocator.h (malloc_allocator::allocate):
5452 Add nodiscard attribute. Add static assertion for LWG 3307.
5453 * include/ext/new_allocator.h (new_allocator::allocate): Add
5454 static assertion for LWG 3307.
5455 * testsuite/20_util/allocator/void.cc: Check that converting
5456 constructor is noexcept. Check for propagation traits and
5457 size_type and difference_type. Check that pointer and
5458 const_pointer are gone in C++20.
5460 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
5462 * include/std/stop_token: Remove TODO comment.
5464 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
5466 * include/bits/shared_ptr_base.h (__shared_count(unique_ptr&&)):
5467 Initialize a non-reference deleter from an rvalue, as per LWG
5469 (__shared_ptr::_UniqCompatible): Add missing constraint.
5470 * testsuite/20_util/shared_ptr/cons/lwg3548.cc: New test.
5471 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc: Check
5474 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
5476 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Remove
5477 -std=gnu++17 from dg-options directive.
5478 * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc:
5480 * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc:
5482 * testsuite/17_intro/headers/c++2017/operator_names.cc:
5484 * testsuite/17_intro/headers/c++2017/parallel_mode.cc: Likewise.
5485 * testsuite/17_intro/headers/c++2017/stdc++.cc: Likewise.
5486 * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
5488 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Likewise.
5489 * testsuite/18_support/byte/81076.cc: Likewise.
5490 * testsuite/18_support/byte/global_neg.cc: Likewise.
5491 * testsuite/18_support/byte/ops.cc: Likewise.
5492 * testsuite/18_support/byte/requirements.cc: Likewise.
5493 * testsuite/18_support/headers/cfloat/values_c++17.cc: Likewise.
5494 * testsuite/18_support/launder/1.cc: Likewise.
5495 * testsuite/18_support/launder/nodiscard.cc: Likewise.
5496 * testsuite/18_support/launder/requirements.cc: Likewise.
5497 * testsuite/18_support/launder/requirements_neg.cc: Likewise.
5498 * testsuite/18_support/new_aligned.cc: Likewise.
5499 * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
5501 * testsuite/19_diagnostics/error_code/is_error_code_v.cc:
5503 * testsuite/19_diagnostics/error_condition/hash.cc: Likewise.
5504 * testsuite/20_util/addressof/requirements/constexpr.cc:
5506 * testsuite/20_util/as_const/1.cc: Likewise.
5507 * testsuite/20_util/as_const/rvalue_neg.cc: Likewise.
5508 * testsuite/20_util/bind/83427.cc: Likewise.
5509 * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
5510 * testsuite/20_util/bool_constant/requirements.cc: Likewise.
5511 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
5513 * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
5515 * testsuite/20_util/duration_cast/rounding.cc: Likewise.
5516 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
5518 * testsuite/20_util/from_chars/1_neg.cc: Likewise.
5519 * testsuite/20_util/from_chars/requirements.cc: Likewise.
5520 * testsuite/20_util/function/91456.cc: Likewise.
5521 * testsuite/20_util/function/cons/deduction.cc: Likewise.
5522 * testsuite/20_util/function_objects/83607.cc: Likewise.
5523 * testsuite/20_util/function_objects/invoke/59768.cc: Likewise.
5524 * testsuite/20_util/function_objects/mem_fn/80478.cc: Likewise.
5525 * testsuite/20_util/function_objects/not_fn/1.cc: Likewise.
5526 * testsuite/20_util/function_objects/not_fn/87538.cc: Likewise.
5527 * testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc:
5529 * testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc:
5531 * testsuite/20_util/has_unique_object_representations/value.cc:
5533 * testsuite/20_util/hash/nullptr.cc: Likewise.
5534 * testsuite/20_util/in_place/requirements.cc: Likewise.
5535 * testsuite/20_util/is_aggregate/incomplete_neg.cc: Likewise.
5536 * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
5538 * testsuite/20_util/is_aggregate/requirements/typedefs.cc:
5540 * testsuite/20_util/is_aggregate/value.cc: Likewise.
5541 * testsuite/20_util/is_invocable/83395.cc: Likewise.
5542 * testsuite/20_util/is_invocable/91456.cc: Likewise.
5543 * testsuite/20_util/is_invocable/requirements/explicit_instantiation.cc:
5545 * testsuite/20_util/is_invocable/requirements/typedefs.cc:
5547 * testsuite/20_util/is_invocable/value.cc: Likewise.
5548 * testsuite/20_util/is_literal_type/deprecated-1z.cc: Likewise.
5549 * testsuite/20_util/is_nothrow_constructible/94003.cc: Likewise.
5550 * testsuite/20_util/is_nothrow_invocable/83395.cc: Likewise.
5551 * testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation.cc:
5553 * testsuite/20_util/is_nothrow_invocable/requirements/typedefs.cc: Likewise.
5554 * testsuite/20_util/is_nothrow_invocable/value.cc: Likewise.
5555 * testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc:
5557 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
5559 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
5560 * testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc:
5562 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
5564 * testsuite/20_util/is_nothrow_swappable_with/value.cc:
5566 * testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc:
5568 * testsuite/20_util/is_swappable/requirements/typedefs.cc:
5570 * testsuite/20_util/is_swappable/value.cc: Likewise.
5571 * testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc:
5573 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc:
5575 * testsuite/20_util/is_swappable_with/value.cc: Likewise.
5576 * testsuite/20_util/logical_traits/83134.cc: Likewise.
5577 * testsuite/20_util/logical_traits/requirements/explicit_instantiation.cc:
5579 * testsuite/20_util/logical_traits/requirements/typedefs.cc:
5581 * testsuite/20_util/logical_traits/value.cc: Likewise.
5582 * testsuite/20_util/pair/cons/deduction.cc: Likewise.
5583 * testsuite/20_util/pair/swap_cxx17.cc: Likewise.
5584 * testsuite/20_util/ratio/requirements/ratio_equal_v.cc:
5586 * testsuite/20_util/reference_wrapper/83427.cc: Likewise.
5587 * testsuite/20_util/reference_wrapper/deduction.cc: Likewise.
5588 * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
5589 * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
5590 * testsuite/20_util/shared_ptr/requirements/weak_type.cc:
5592 * testsuite/20_util/time_point/arithmetic/constexpr.cc:
5594 * testsuite/20_util/time_point_cast/rounding.cc: Likewise.
5595 * testsuite/20_util/to_chars/3.cc: Likewise.
5596 * testsuite/20_util/to_chars/chars_format.cc: Likewise.
5597 * testsuite/20_util/to_chars/lwg3266.cc: Likewise.
5598 * testsuite/20_util/to_chars/requirements.cc: Likewise.
5599 * testsuite/20_util/tuple/78939.cc: Likewise.
5600 * testsuite/20_util/tuple/apply/1.cc: Likewise.
5601 * testsuite/20_util/tuple/apply/2.cc: Likewise.
5602 * testsuite/20_util/tuple/cons/deduction.cc: Likewise.
5603 * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
5604 * testsuite/20_util/tuple/make_from_tuple/2.cc: Likewise.
5605 * testsuite/20_util/tuple/swap_cxx17.cc: Likewise.
5606 * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
5607 * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: Likewise.
5608 * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
5610 * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
5611 * testsuite/20_util/void_t/1.cc: Likewise.
5612 * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
5613 * testsuite/24_iterators/container_access.cc: Likewise.
5614 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc:
5616 * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc:
5618 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
5620 * testsuite/24_iterators/range_access/range_access_cpp17_neg.cc:
5622 * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
5623 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc:
5625 * testsuite/26_numerics/headers/cmath/hypot.cc: Likewise.
5626 * testsuite/26_numerics/headers/cmath/special_functions_global.cc:
5628 * testsuite/26_numerics/lcm/1.cc: Likewise.
5629 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
5630 * testsuite/26_numerics/valarray/deduction.cc: Likewise.
5631 * testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc:
5633 * testsuite/27_io/manipulators/standard/char/quoted_sv.cc:
5635 * testsuite/27_io/manipulators/standard/wchar_t/quoted_sv.cc:
5637 * testsuite/27_io/types/4.cc: Likewise.
5638 * testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise.
5639 * testsuite/libstdc++-prettyprinters/91997.cc: Likewise.
5640 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
5642 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
5644 * testsuite/20_util/function_objects/searchers.cc: Remove
5645 -std=gnu++17 from dg-options directive.
5646 * testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc:
5648 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
5650 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc:
5652 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94831.cc:
5654 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc:
5656 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
5658 * testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc:
5660 * testsuite/25_algorithms/clamp/1.cc: Likewise.
5661 * testsuite/25_algorithms/clamp/2.cc: Likewise.
5662 * testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
5663 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc:
5665 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/pod.cc:
5667 * testsuite/25_algorithms/for_each/for_each_n.cc: Likewise.
5668 * testsuite/25_algorithms/for_each/for_each_n_debug.cc:
5670 * testsuite/25_algorithms/sample/1.cc: Likewise.
5671 * testsuite/25_algorithms/sample/2.cc: Likewise.
5672 * testsuite/25_algorithms/sample/3.cc: Likewise.
5673 * testsuite/25_algorithms/sample/81221.cc: Likewise.
5674 * testsuite/25_algorithms/search/searcher.cc: Likewise.
5675 * testsuite/26_numerics/exclusive_scan/1.cc: Likewise.
5676 * testsuite/26_numerics/inclusive_scan/1.cc: Likewise.
5677 * testsuite/26_numerics/reduce/1.cc: Likewise.
5678 * testsuite/26_numerics/reduce/2.cc: Likewise.
5679 * testsuite/26_numerics/transform_exclusive_scan/1.cc: Likewise.
5680 * testsuite/26_numerics/transform_inclusive_scan/1.cc: Likewise.
5681 * testsuite/26_numerics/transform_reduce/1.cc: Likewise.
5683 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
5685 * testsuite/23_containers/array/cons/deduction.cc: Remove
5686 -std=gnu++17 from dg-options directive.
5687 * testsuite/23_containers/array/cons/deduction_neg.cc: Likewise.
5688 * testsuite/23_containers/array/element_access/constexpr_c++17.cc:
5690 * testsuite/23_containers/array/requirements/constexpr_iter.cc:
5692 * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
5694 * testsuite/23_containers/deque/cons/deduction.cc: Likewise.
5695 * testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc:
5697 * testsuite/23_containers/forward_list/cons/deduction.cc:
5699 * testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc:
5701 * testsuite/23_containers/list/cons/deduction.cc: Likewise.
5702 * testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc:
5704 * testsuite/23_containers/map/cons/deduction.cc: Likewise.
5705 * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
5706 * testsuite/23_containers/map/modifiers/insert/83226.cc:
5708 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
5710 * testsuite/23_containers/map/modifiers/merge.cc: Likewise.
5711 * testsuite/23_containers/map/modifiers/try_emplace/1.cc:
5713 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
5714 * testsuite/23_containers/multimap/modifiers/extract.cc:
5716 * testsuite/23_containers/multimap/modifiers/merge.cc: Likewise.
5717 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
5718 * testsuite/23_containers/multiset/modifiers/extract.cc:
5720 * testsuite/23_containers/multiset/modifiers/merge.cc: Likewise.
5721 * testsuite/23_containers/priority_queue/deduction.cc: Likewise.
5722 * testsuite/23_containers/queue/deduction.cc: Likewise.
5723 * testsuite/23_containers/queue/members/emplace_cxx17_return.cc:
5725 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
5726 * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
5727 * testsuite/23_containers/set/modifiers/merge.cc: Likewise.
5728 * testsuite/23_containers/set/modifiers/node_swap.cc: Likewise.
5729 * testsuite/23_containers/stack/deduction.cc: Likewise.
5730 * testsuite/23_containers/stack/members/emplace_cxx17_return.cc:
5732 * testsuite/23_containers/unordered_map/cons/deduction.cc:
5734 * testsuite/23_containers/unordered_map/modifiers/extract.cc:
5736 * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
5738 * testsuite/23_containers/unordered_map/modifiers/merge.cc:
5740 * testsuite/23_containers/unordered_map/modifiers/try_emplace.cc:
5742 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
5744 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
5746 * testsuite/23_containers/unordered_multimap/modifiers/merge.cc:
5748 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
5750 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
5752 * testsuite/23_containers/unordered_multiset/modifiers/merge.cc:
5754 * testsuite/23_containers/unordered_set/cons/deduction.cc:
5756 * testsuite/23_containers/unordered_set/modifiers/extract.cc:
5758 * testsuite/23_containers/unordered_set/modifiers/merge.cc:
5760 * testsuite/23_containers/vector/bool/emplace_cxx17_return.cc:
5762 * testsuite/23_containers/vector/cons/89164_c++17.cc: Likewise.
5763 * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
5764 * testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc:
5767 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
5769 * testsuite/21_strings/basic_string/79162.cc: Remove
5770 -std=gnu++17 from dg-options directive.
5771 * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
5772 * testsuite/21_strings/basic_string/cons/char/79162.cc:
5774 * testsuite/21_strings/basic_string/cons/char/86138.cc:
5776 * testsuite/21_strings/basic_string/cons/char/9.cc: Likewise.
5777 * testsuite/21_strings/basic_string/cons/char/deduction.cc:
5779 * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc:
5781 * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
5782 * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc:
5784 * testsuite/21_strings/basic_string/cons/wchar_t/86138.cc:
5786 * testsuite/21_strings/basic_string/cons/wchar_t/9.cc: Likewise.
5787 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
5789 * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
5791 * testsuite/21_strings/basic_string/hash/hash.cc: Likewise.
5792 * testsuite/21_strings/basic_string/lwg2758.cc: Likewise.
5793 * testsuite/21_strings/basic_string/lwg2946.cc: Likewise.
5794 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
5796 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
5798 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
5800 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
5802 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
5804 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
5806 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
5808 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
5810 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
5812 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
5814 * testsuite/21_strings/basic_string/operations/data/char/2.cc:
5816 * testsuite/21_strings/basic_string/operations/data/char/86169.cc:
5818 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc:
5820 * testsuite/21_strings/basic_string/operations/find/char/5.cc:
5822 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
5824 * testsuite/21_strings/basic_string/operators/char/5.cc:
5826 * testsuite/21_strings/basic_string/operators/wchar_t/5.cc:
5828 * testsuite/21_strings/basic_string_view/capacity/1.cc:
5830 * testsuite/21_strings/basic_string_view/capacity/empty_neg.cc:
5832 * testsuite/21_strings/basic_string_view/cons/char/1.cc:
5834 * testsuite/21_strings/basic_string_view/cons/char/2.cc:
5836 * testsuite/21_strings/basic_string_view/cons/char/3.cc:
5838 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
5840 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
5842 * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc:
5844 * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc:
5846 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
5848 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
5850 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
5852 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
5854 * testsuite/21_strings/basic_string_view/element_access/char/constexpr.cc:
5856 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
5858 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
5860 * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
5862 * testsuite/21_strings/basic_string_view/element_access/char/front_back_constexpr.cc:
5864 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
5866 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
5868 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
5870 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
5872 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr.cc:
5874 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
5876 * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
5878 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
5880 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
5882 * testsuite/21_strings/basic_string_view/include.cc: Likewise.
5883 * testsuite/21_strings/basic_string_view/inserters/94051.cc:
5885 * testsuite/21_strings/basic_string_view/inserters/char/1.cc:
5887 * testsuite/21_strings/basic_string_view/inserters/char/2.cc:
5889 * testsuite/21_strings/basic_string_view/inserters/char/3.cc:
5891 * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
5893 * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
5895 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
5897 * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
5899 * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
5901 * testsuite/21_strings/basic_string_view/literals/types.cc:
5903 * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
5905 * testsuite/21_strings/basic_string_view/literals/values.cc:
5907 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
5909 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
5911 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
5913 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
5915 * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
5917 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
5919 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
5921 * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
5923 * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
5925 * testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc:
5927 * testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc:
5929 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
5931 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
5933 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc:
5935 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
5937 * testsuite/21_strings/basic_string_view/operations/copy/char/2.cc:
5939 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
5941 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc:
5943 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
5945 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
5947 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
5949 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
5951 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
5953 * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
5955 * testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc:
5957 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
5959 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
5961 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
5963 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
5965 * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
5967 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
5969 * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
5971 * testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc:
5973 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
5975 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
5977 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
5979 * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
5981 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
5983 * testsuite/21_strings/basic_string_view/operations/substr/char/83511.cc:
5985 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
5987 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/83511.cc:
5989 * testsuite/21_strings/basic_string_view/operators/char/2.cc:
5991 * testsuite/21_strings/basic_string_view/operators/char/89446.cc:
5993 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
5995 * testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc:
5997 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
5999 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
6001 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
6003 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
6005 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
6007 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
6009 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc:
6011 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
6013 * testsuite/21_strings/basic_string_view/requirements/traits_neg.cc:
6015 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
6017 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
6018 * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
6019 * testsuite/21_strings/char_traits/requirements/char/99181.cc:
6021 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
6023 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
6025 * testsuite/20_util/memory_resource/1.cc: Remove -std=gnu++17
6026 from dg-options directive.
6027 * testsuite/20_util/memory_resource/2.cc: Likewise.
6028 * testsuite/20_util/monotonic_buffer_resource/1.cc: Likewise.
6029 * testsuite/20_util/monotonic_buffer_resource/93208.cc:
6031 * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
6033 * testsuite/20_util/monotonic_buffer_resource/deallocate.cc:
6035 * testsuite/20_util/monotonic_buffer_resource/release.cc:
6037 * testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc:
6039 * testsuite/20_util/polymorphic_allocator/1.cc: Likewise.
6040 * testsuite/20_util/polymorphic_allocator/construct_pair.cc:
6042 * testsuite/20_util/polymorphic_allocator/resource.cc: Likewise.
6043 * testsuite/20_util/polymorphic_allocator/select.cc: Likewise.
6044 * testsuite/20_util/synchronized_pool_resource/allocate.cc:
6046 * testsuite/20_util/synchronized_pool_resource/allocate_single.cc:
6048 * testsuite/20_util/synchronized_pool_resource/cons.cc:
6050 * testsuite/20_util/synchronized_pool_resource/cons_single.cc:
6052 * testsuite/20_util/synchronized_pool_resource/is_equal.cc:
6054 * testsuite/20_util/synchronized_pool_resource/multithreaded.cc:
6056 * testsuite/20_util/synchronized_pool_resource/options.cc:
6058 * testsuite/20_util/synchronized_pool_resource/release.cc:
6060 * testsuite/20_util/synchronized_pool_resource/release_single.cc:
6062 * testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc:
6064 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
6066 * testsuite/20_util/unsynchronized_pool_resource/cons.cc:
6068 * testsuite/20_util/unsynchronized_pool_resource/is_equal.cc:
6070 * testsuite/20_util/unsynchronized_pool_resource/options.cc:
6072 * testsuite/20_util/unsynchronized_pool_resource/release.cc:
6074 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
6076 * testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise.
6077 * testsuite/23_containers/deque/types/pmr_typedefs_debug.cc:
6079 * testsuite/23_containers/forward_list/pmr_typedefs.cc:
6081 * testsuite/23_containers/forward_list/pmr_typedefs_debug.cc:
6083 * testsuite/23_containers/list/pmr_typedefs.cc: Likewise.
6084 * testsuite/23_containers/list/pmr_typedefs_debug.cc: Likewise.
6085 * testsuite/23_containers/map/pmr_typedefs.cc: Likewise.
6086 * testsuite/23_containers/map/pmr_typedefs_debug.cc: Likewise.
6087 * testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise.
6088 * testsuite/23_containers/multimap/pmr_typedefs_debug.cc:
6090 * testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise.
6091 * testsuite/23_containers/multiset/pmr_typedefs_debug.cc:
6093 * testsuite/23_containers/set/pmr_typedefs.cc: Likewise.
6094 * testsuite/23_containers/set/pmr_typedefs_debug.cc: Likewise.
6095 * testsuite/23_containers/unordered_map/pmr_typedefs.cc:
6097 * testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc:
6099 * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc:
6101 * testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc:
6103 * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc:
6105 * testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc:
6107 * testsuite/23_containers/unordered_set/pmr_typedefs.cc:
6109 * testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc:
6111 * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise.
6112 * testsuite/23_containers/vector/types/pmr_typedefs_debug.cc:
6114 * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
6116 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
6118 * testsuite/29_atomics/atomic/69769.cc: Remove -std=gnu++17 from
6120 * testsuite/29_atomics/atomic/is_always_lock_free.cc:
6121 * testsuite/29_atomics/atomic/requirements/typedefs.cc:
6122 * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc:
6123 * testsuite/29_atomics/atomic_integral/requirements/typedefs.cc:
6124 * testsuite/30_threads/lock_guard/cons/deduction.cc: Likewise.
6125 * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
6126 * testsuite/30_threads/scoped_lock/cons/deduction.cc: Likewise.
6127 * testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc:
6129 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc:
6131 * testsuite/30_threads/shared_lock/70766.cc: Likewise.
6132 * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
6133 * testsuite/30_threads/shared_mutex/cons/assign_neg.cc:
6135 * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise.
6136 * testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
6138 * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
6139 * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
6140 * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
6141 * testsuite/30_threads/unique_lock/cons/deduction.cc: Likewise.
6143 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
6145 * testsuite/20_util/any/assign/1.cc: Remove -std=gnu++17 from
6146 dg-options directive.
6147 * testsuite/20_util/any/assign/2.cc: Likewise.
6148 * testsuite/20_util/any/assign/emplace.cc: Likewise.
6149 * testsuite/20_util/any/assign/exception.cc: Likewise.
6150 * testsuite/20_util/any/assign/self.cc: Likewise.
6151 * testsuite/20_util/any/cons/1.cc: Likewise.
6152 * testsuite/20_util/any/cons/2.cc: Likewise.
6153 * testsuite/20_util/any/cons/90415.cc: Likewise.
6154 * testsuite/20_util/any/cons/92156.cc: Likewise.
6155 * testsuite/20_util/any/cons/aligned.cc: Likewise.
6156 * testsuite/20_util/any/cons/explicit.cc: Likewise.
6157 * testsuite/20_util/any/cons/in_place.cc: Likewise.
6158 * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
6159 * testsuite/20_util/any/make_any.cc: Likewise.
6160 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
6161 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
6162 * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
6163 * testsuite/20_util/any/misc/swap.cc: Likewise.
6164 * testsuite/20_util/any/modifiers/1.cc: Likewise.
6165 * testsuite/20_util/any/modifiers/83658.cc: Likewise.
6166 * testsuite/20_util/any/modifiers/92156.cc: Likewise.
6167 * testsuite/20_util/any/observers/type.cc: Likewise.
6168 * testsuite/20_util/any/requirements.cc: Likewise.
6169 * testsuite/20_util/any/typedefs.cc: Likewise.
6170 * testsuite/20_util/optional/77288.cc: Likewise.
6171 * testsuite/20_util/optional/84601.cc: Likewise.
6172 * testsuite/20_util/optional/assignment/1.cc: Likewise.
6173 * testsuite/20_util/optional/assignment/2.cc: Likewise.
6174 * testsuite/20_util/optional/assignment/3.cc: Likewise.
6175 * testsuite/20_util/optional/assignment/4.cc: Likewise.
6176 * testsuite/20_util/optional/assignment/5.cc: Likewise.
6177 * testsuite/20_util/optional/assignment/6.cc: Likewise.
6178 * testsuite/20_util/optional/assignment/7.cc: Likewise.
6179 * testsuite/20_util/optional/assignment/8.cc: Likewise.
6180 * testsuite/20_util/optional/assignment/9.cc: Likewise.
6181 * testsuite/20_util/optional/bad_access.cc: Likewise.
6182 * testsuite/20_util/optional/cons/77727.cc: Likewise.
6183 * testsuite/20_util/optional/cons/85642.cc: Likewise.
6184 * testsuite/20_util/optional/cons/copy.cc: Likewise.
6185 * testsuite/20_util/optional/cons/deduction.cc: Likewise.
6186 * testsuite/20_util/optional/cons/default.cc: Likewise.
6187 * testsuite/20_util/optional/cons/move.cc: Likewise.
6188 * testsuite/20_util/optional/cons/trivial.cc: Likewise.
6189 * testsuite/20_util/optional/cons/value.cc: Likewise.
6190 * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
6191 * testsuite/20_util/optional/constexpr/cons/default.cc:
6193 * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
6194 * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
6195 * testsuite/20_util/optional/constexpr/make_optional.cc:
6197 * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
6198 * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
6199 * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
6200 * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
6201 * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
6202 * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
6203 * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
6204 * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
6205 * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
6206 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
6207 * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
6208 * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
6209 * testsuite/20_util/optional/hash.cc: Likewise.
6210 * testsuite/20_util/optional/in_place.cc: Likewise.
6211 * testsuite/20_util/optional/make_optional.cc: Likewise.
6212 * testsuite/20_util/optional/nullopt.cc: Likewise.
6213 * testsuite/20_util/optional/observers/1.cc: Likewise.
6214 * testsuite/20_util/optional/observers/2.cc: Likewise.
6215 * testsuite/20_util/optional/observers/3.cc: Likewise.
6216 * testsuite/20_util/optional/observers/4.cc: Likewise.
6217 * testsuite/20_util/optional/observers/5.cc: Likewise.
6218 * testsuite/20_util/optional/observers/6.cc: Likewise.
6219 * testsuite/20_util/optional/relops/1.cc: Likewise.
6220 * testsuite/20_util/optional/relops/2.cc: Likewise.
6221 * testsuite/20_util/optional/relops/3.cc: Likewise.
6222 * testsuite/20_util/optional/relops/4.cc: Likewise.
6223 * testsuite/20_util/optional/relops/5.cc: Likewise.
6224 * testsuite/20_util/optional/relops/6.cc: Likewise.
6225 * testsuite/20_util/optional/relops/7.cc: Likewise.
6226 * testsuite/20_util/optional/requirements.cc: Likewise.
6227 * testsuite/20_util/optional/swap/1.cc: Likewise.
6228 * testsuite/20_util/optional/swap/2.cc: Likewise.
6229 * testsuite/20_util/optional/typedefs.cc: Likewise.
6230 * testsuite/20_util/variant/80165.cc: Likewise.
6231 * testsuite/20_util/variant/85183.cc: Likewise.
6232 * testsuite/20_util/variant/86874.cc: Likewise.
6233 * testsuite/20_util/variant/87431.cc: Likewise.
6234 * testsuite/20_util/variant/87619.cc: Likewise.
6235 * testsuite/20_util/variant/91807.cc: Likewise.
6236 * testsuite/20_util/variant/any.cc: Likewise.
6237 * testsuite/20_util/variant/compile.cc: Likewise.
6238 * testsuite/20_util/variant/deduction.cc: Likewise.
6239 * testsuite/20_util/variant/exception_safety.cc: Likewise.
6240 * testsuite/20_util/variant/hash.cc: Likewise.
6241 * testsuite/20_util/variant/index_type.cc: Likewise.
6242 * testsuite/20_util/variant/relops/89851.cc: Likewise.
6243 * testsuite/20_util/variant/relops/90008.cc: Likewise.
6244 * testsuite/20_util/variant/run.cc: Likewise.
6245 * testsuite/20_util/variant/visit.cc: Likewise.
6247 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
6249 * testsuite/27_io/basic_filebuf/open/char/path.cc: Remove
6250 -std=gnu++17 from dg-options directive.
6251 * testsuite/27_io/basic_fstream/cons/char/path.cc: Likewise.
6252 * testsuite/27_io/basic_fstream/open/char/path.cc: Likewise.
6253 * testsuite/27_io/basic_ifstream/cons/char/path.cc: Likewise.
6254 * testsuite/27_io/basic_ifstream/open/char/path.cc: Likewise.
6255 * testsuite/27_io/basic_ofstream/cons/char/path.cc: Likewise.
6256 * testsuite/27_io/basic_ofstream/open/char/path.cc: Likewise.
6257 * testsuite/27_io/filesystem/directory_entry/86597.cc: Likewise.
6258 * testsuite/27_io/filesystem/directory_entry/lwg3171.cc:
6260 * testsuite/27_io/filesystem/file_status/1.cc: Likewise.
6261 * testsuite/27_io/filesystem/filesystem_error/cons.cc: Likewise.
6262 * testsuite/27_io/filesystem/filesystem_error/copy.cc: Likewise.
6263 * testsuite/27_io/filesystem/iterators/91067.cc: Likewise.
6264 * testsuite/27_io/filesystem/iterators/caching.cc: Likewise.
6265 * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
6267 * testsuite/27_io/filesystem/iterators/pop.cc: Likewise.
6268 * testsuite/27_io/filesystem/iterators/recursion_pending.cc:
6270 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
6272 * testsuite/27_io/filesystem/operations/absolute.cc: Likewise.
6273 * testsuite/27_io/filesystem/operations/all.cc: Likewise.
6274 * testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
6275 * testsuite/27_io/filesystem/operations/copy.cc: Likewise.
6276 * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
6277 * testsuite/27_io/filesystem/operations/create_directories.cc:
6279 * testsuite/27_io/filesystem/operations/create_directory.cc:
6281 * testsuite/27_io/filesystem/operations/create_symlink.cc:
6283 * testsuite/27_io/filesystem/operations/current_path.cc:
6285 * testsuite/27_io/filesystem/operations/equivalent.cc: Likewise.
6286 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
6287 * testsuite/27_io/filesystem/operations/file_size.cc: Likewise.
6288 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
6289 * testsuite/27_io/filesystem/operations/last_write_time.cc:
6291 * testsuite/27_io/filesystem/operations/permissions.cc:
6293 * testsuite/27_io/filesystem/operations/proximate.cc: Likewise.
6294 * testsuite/27_io/filesystem/operations/read_symlink.cc:
6296 * testsuite/27_io/filesystem/operations/relative.cc: Likewise.
6297 * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
6298 * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
6299 * testsuite/27_io/filesystem/operations/rename.cc: Likewise.
6300 * testsuite/27_io/filesystem/operations/resize_file.cc:
6302 * testsuite/27_io/filesystem/operations/space.cc: Likewise.
6303 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
6304 * testsuite/27_io/filesystem/operations/symlink_status.cc:
6306 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
6308 * testsuite/27_io/filesystem/operations/weakly_canonical.cc:
6310 * testsuite/27_io/filesystem/path/append/path.cc: Likewise.
6311 * testsuite/27_io/filesystem/path/append/source.cc: Likewise.
6312 * testsuite/27_io/filesystem/path/assign/assign.cc: Likewise.
6313 * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
6314 * testsuite/27_io/filesystem/path/compare/compare.cc: Likewise.
6315 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
6316 * testsuite/27_io/filesystem/path/compare/path.cc: Likewise.
6317 * testsuite/27_io/filesystem/path/compare/strings.cc: Likewise.
6318 * testsuite/27_io/filesystem/path/concat/92853.cc: Likewise.
6319 * testsuite/27_io/filesystem/path/concat/94063.cc: Likewise.
6320 * testsuite/27_io/filesystem/path/concat/path.cc: Likewise.
6321 * testsuite/27_io/filesystem/path/concat/strings.cc: Likewise.
6322 * testsuite/27_io/filesystem/path/construct/80762.cc: Likewise.
6323 * testsuite/27_io/filesystem/path/construct/90281.cc: Likewise.
6324 * testsuite/27_io/filesystem/path/construct/90634.cc: Likewise.
6325 * testsuite/27_io/filesystem/path/construct/copy.cc: Likewise.
6326 * testsuite/27_io/filesystem/path/construct/default.cc:
6328 * testsuite/27_io/filesystem/path/construct/format.cc: Likewise.
6329 * testsuite/27_io/filesystem/path/construct/locale.cc: Likewise.
6330 * testsuite/27_io/filesystem/path/construct/range.cc: Likewise.
6331 * testsuite/27_io/filesystem/path/construct/string_view.cc:
6333 * testsuite/27_io/filesystem/path/decompose/extension.cc:
6335 * testsuite/27_io/filesystem/path/decompose/filename.cc:
6337 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
6339 * testsuite/27_io/filesystem/path/decompose/relative_path.cc:
6341 * testsuite/27_io/filesystem/path/decompose/root_directory.cc:
6343 * testsuite/27_io/filesystem/path/decompose/root_name.cc:
6345 * testsuite/27_io/filesystem/path/decompose/root_path.cc:
6347 * testsuite/27_io/filesystem/path/decompose/stem.cc: Likewise.
6348 * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc:
6350 * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise.
6351 * testsuite/27_io/filesystem/path/generation/normal.cc:
6353 * testsuite/27_io/filesystem/path/generation/normal2.cc:
6355 * testsuite/27_io/filesystem/path/generation/proximate.cc:
6357 * testsuite/27_io/filesystem/path/generation/relative.cc:
6359 * testsuite/27_io/filesystem/path/generic/94242.cc: Likewise.
6360 * testsuite/27_io/filesystem/path/generic/generic_string.cc:
6362 * testsuite/27_io/filesystem/path/generic/utf.cc: Likewise.
6363 * testsuite/27_io/filesystem/path/generic/wchar_t.cc: Likewise.
6364 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
6365 * testsuite/27_io/filesystem/path/itr/components.cc: Likewise.
6366 * testsuite/27_io/filesystem/path/itr/traversal.cc: Likewise.
6367 * testsuite/27_io/filesystem/path/modifiers/clear.cc: Likewise.
6368 * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
6370 * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc:
6372 * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
6374 * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
6376 * testsuite/27_io/filesystem/path/modifiers/swap.cc: Likewise.
6377 * testsuite/27_io/filesystem/path/native/alloc.cc: Likewise.
6378 * testsuite/27_io/filesystem/path/native/string-char8_t.cc:
6380 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
6381 * testsuite/27_io/filesystem/path/nonmember/append.cc: Likewise.
6382 * testsuite/27_io/filesystem/path/nonmember/cmp.cc: Likewise.
6383 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
6385 * testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
6386 * testsuite/27_io/filesystem/path/query/empty_neg.cc:
6387 * testsuite/27_io/filesystem/path/query/has_extension.cc:
6389 * testsuite/27_io/filesystem/path/query/has_filename.cc:
6391 * testsuite/27_io/filesystem/path/query/has_parent_path.cc:
6393 * testsuite/27_io/filesystem/path/query/has_relative_path.cc:
6395 * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
6397 * testsuite/27_io/filesystem/path/query/has_root_name.cc:
6399 * testsuite/27_io/filesystem/path/query/has_root_path.cc:
6401 * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
6402 * testsuite/27_io/filesystem/path/query/is_absolute.cc:
6404 * testsuite/27_io/filesystem/path/query/is_relative.cc:
6406 * testsuite/experimental/filesystem/path/construct/string_view.cc:
6409 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
6411 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc:
6412 Remove -std=gnu++17 from dg-options.
6413 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
6415 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc:
6417 * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc:
6419 * testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise.
6420 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
6422 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
6424 * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc:
6426 * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc:
6428 * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
6430 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
6432 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
6434 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
6436 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc:
6438 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc:
6440 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc:
6442 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
6444 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
6446 * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc:
6448 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
6450 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc:
6452 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
6454 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
6456 * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc:
6458 * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc:
6460 * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc:
6462 * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc:
6464 * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc:
6466 * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc:
6468 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
6470 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
6472 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc:
6474 * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc:
6476 * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
6478 * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc:
6480 * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
6482 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc:
6484 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
6486 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
6488 * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
6490 * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: Likewise.
6491 * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc:
6493 * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
6495 * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
6497 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc:
6499 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
6501 * testsuite/25_algorithms/pstl/alg_sorting/set.cc: Likewise.
6502 * testsuite/25_algorithms/pstl/alg_sorting/sort.cc: Likewise.
6503 * testsuite/25_algorithms/pstl/feature_test-2.cc: Likewise.
6504 * testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise.
6505 * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise.
6506 * testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise.
6507 * testsuite/25_algorithms/pstl/feature_test.cc: Likewise.
6508 * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc:
6510 * testsuite/26_numerics/pstl/numeric_ops/reduce.cc: Likewise.
6511 * testsuite/26_numerics/pstl/numeric_ops/scan.cc: Likewise.
6512 * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
6514 * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc:
6517 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
6519 * testsuite/20_util/scoped_allocator/69293_neg.cc: Add dg-error
6520 for additional errors in C++20.
6521 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
6523 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
6524 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
6526 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
6528 * testsuite/20_util/variant/compile.cc: Rename 'any' to avoid
6529 clash with std::any.
6531 2021-05-07 Jonathan Wakely <jwakely@redhat.com>
6533 * include/std/istream (__rvalue_stream_extraction_t): Replace
6534 use of __rval_streamable.
6535 * include/std/ostream (__rvalue_stream_insertion_t): Likewise.
6536 (__rval_streamable): Remove.
6537 (_Require_derived_from_ios_base, __derived_from_ios_base): New
6538 helper for checking constraints.
6539 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Fix
6540 reference to the wrong subclause of the standard.
6541 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
6543 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
6545 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
6547 * testsuite/27_io/basic_ostream/inserters_other/char/99692.cc:
6549 * testsuite/27_io/filesystem/path/io/dr2989.cc: Adjust pruned
6552 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
6554 * include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
6555 Improve static_assert messages.
6556 * testsuite/25_algorithms/copy/58982.cc: Adjust expected output.
6557 * testsuite/25_algorithms/copy_n/58982.cc: Likewise.
6559 2021-05-06 Patrick Palka <ppalka@redhat.com>
6561 * include/std/ranges (filter_view::_Iterator::base): Make the
6562 const& overload unconstrained and return a const reference as
6563 per LWG 3533. Make unconditionally noexcept.
6564 (transform_view::_Iterator::base): Likewise.
6565 (elements_view::_Iterator::base): Likewise.
6567 2021-05-06 Patrick Palka <ppalka@redhat.com>
6569 * include/bits/stl_iterator.h (move_iterator::base): Make the
6570 const& overload unconstrained and return a const reference as
6571 per LWG 3391. Make unconditionally noexcept.
6572 (counted_iterator::base): Likewise.
6573 * testsuite/24_iterators/move_iterator/lwg3391.cc: New test.
6574 * testsuite/24_iterators/move_iterator/move_only.cc: Adjust
6575 has_member_base concept to decay-copy the result of base().
6577 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
6579 * include/std/type_traits (remove_cvref_t): Define in terms of
6581 * testsuite/20_util/remove_cvref/value.cc: Check alias.
6583 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
6586 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
6588 * include/std/charconv (__from_chars_alnum): Pass unsigned
6589 char to std::isdigit.
6591 2021-05-05 Patrick Palka <ppalka@redhat.com>
6593 * include/bits/ranges_util.h (enable_borrowed_range<subrange>):
6594 Remove constraints on this partial specialization.
6595 * include/std/ranges (enable_borrowed_range<iota_view>):
6598 2021-05-05 Patrick Palka <ppalka@redhat.com>
6600 * include/std/ranges (transform_view::_Iterator::iter_swap):
6601 Remove as per LWG 3520.
6602 (join_view::_Iterator::iter_swap): Add indirectly_swappable
6603 constraint as per LWG 3517.
6605 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
6607 * testsuite/20_util/function_objects/invoke/3.cc: Check feature
6609 * testsuite/20_util/function_objects/invoke/version.cc: New test.
6611 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
6613 * include/std/charconv (__from_chars_alnum): Pass unsigned
6614 char to std::isdigit.
6616 2021-05-05 Corentin Gay <gay@adacore.com>
6618 * acinclude.m4: Add VxWorks-specific case for the
6619 configuration of ctypes.
6620 * configure: Regenerate.
6621 * config/locale/vxworks/ctype_members.cc: Add VxWorks-specific
6623 * config/os/vxworks/ctype_base.h: Adjust for VxWorks7+.
6624 * config/os/vxworks/ctype_configure_char.cc: Likewise.
6625 * config/os/vxworks/ctype_inline.h: Likewise.
6626 * testsuite/28_regex/traits/char/isctype.cc: Defines
6627 NEWLINE_IN_CLASS_BLANK if the target is VxWorks.
6628 * testsuite/28_regex/traits/wchar_t/isctype.cc: Likewise.
6630 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
6632 * include/std/future (promise::set_value): Check for existence
6633 of shared state before dereferncing it.
6634 (promise::set_exception, promise::set_value_at_thread_exit)
6635 (promise::set_exception_at_thread_exit): Likewise.
6636 (promise<R&>::set_value, promise<R&>::set_exception)
6637 (promise<R&>::set_value_at_thread_exit)
6638 (promise<R&>::set_exception_at_thread_exit): Likewise.
6639 (promise<void>::set_value, promise<void>::set_exception)
6640 (promise<void>::set_value_at_thread_exit)
6641 (promise<void>::set_exception_at_thread_exit): Likewise.
6642 * testsuite/30_threads/promise/members/at_thread_exit2.cc:
6643 Remove unused variable.
6645 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
6647 * include/bits/basic_string.h (basic_string(const CharT*, const A&)):
6648 Do not do arithmetic on null pointer.
6650 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
6652 * include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
6653 (find_key_pointer(key_const_reference, false_type))
6654 (find_key_pointer(key_const_reference, true_type)): Do not
6655 dereference null pointer.
6657 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
6659 * testsuite/20_util/from_chars/3.cc: Use unsigned type to avoid
6661 * testsuite/24_iterators/reverse_iterator/2.cc: Do not add
6662 non-zero value to null pointer.
6663 * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc:
6664 Use past-the-end iterator for result.
6665 * testsuite/25_algorithms/move_backward/69478.cc: Likewise.
6666 * testsuite/25_algorithms/move_backward/93872.cc: Likewise.
6668 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
6671 * include/std/variant (__get_t): New alias template yielding the
6672 return type of std::get<N> on a variant.
6673 (__visit_result_t): New alias template yielding the result of
6675 (__same_types): Move into namespace __detail::__variant.
6676 (__check_visitor_results): Likewise. Use __invoke_result_t and
6678 (__check_visitor_result): Remove.
6679 (visit): Use __visit_result_t for return type.
6680 * testsuite/20_util/variant/100384.cc: New test.
6682 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
6684 * acinclude.m4 (GLIBCXX_ENABLE_INT128_FLOAT128): Remove
6685 checks for __int128 and rename to GLIBCXX_ENABLE_FLOAT128.
6686 * config.h.in: Regenerate.
6687 * configure: Regenerate.
6688 * configure.ac: Adjust to use GLIBCXX_ENABLE_FLOAT128.
6689 * include/bits/random.h (_Select_uint_least_t<s, 1>):
6690 Use __SIZEOF_INT128__ to decide whether to use __int128.
6691 * include/std/charconv (__to_chars_unsigned_type): Likewise.
6693 2021-05-03 Gerald Pfeifer <gerald@pfeifer.com>
6695 * doc/xml/manual/ctype.xml: Move unix.org reference to https.
6696 * doc/html/manual/facets.html: Regenerate.
6698 2021-04-30 Patrick Palka <ppalka@redhat.com>
6700 * include/std/ranges (__detail::__non_propating_cache): Define
6702 (join_view): Remove constraints on the value and reference types
6703 of the wrapped iterator type as per P2328.
6704 (join_view::_Iterator::_M_satisfy): Adjust as per P2328.
6705 (join_view::_Iterator::operator++): Likewise.
6706 (join_view::_M_inner): Use __non_propating_cache as per P2328.
6707 Remove now-redundant use of __maybe_present_t.
6708 * testsuite/std/ranges/adaptors/join.cc: Include <array>.
6711 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
6713 * include/bits/basic_string.h (__cpp_lib_constexpr_string):
6714 Only define for C++17 and later.
6715 * include/std/version (__cpp_lib_semaphore): Fix condition
6716 to match the one in <semaphore>.
6718 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
6720 * acinclude.m4 (GLIBCXX_CHECK_INT64_T): Delete.
6721 * config.h.in: Regenerate.
6722 * configure: Regenerate.
6723 * configure.ac: Do not use GLIBCXX_CHECK_INT64_T.
6724 * include/bits/postypes.h: Remove include of <stdint.h> and
6725 definition/undefinition of the __STDC_LIMIT_MACROS and
6726 __STDC_CONSTANT_MACROS macros.
6727 (streamoff): Use __INT64_TYPE__ if defined.
6729 2021-04-30 Patrick Palka <ppalka@redhat.com>
6731 * include/std/ranges (split_view::_InnerIter::operator++):
6732 Depend on _Base instead of _Vp directly, as per LWG 3532.
6734 2021-04-30 Patrick Palka <ppalka@redhat.com>
6736 * include/bits/ranges_util.h (subrange::subrange): Avoid
6737 list-initialization in delegating constructor.
6738 * include/std/ranges (single_view): Replace implicit guide
6739 with explicit deduction guide that decays its argument.
6740 (_Single::operator()): Avoid CTAD when constructing the
6742 (_Iota::operator()): Avoid list-initialization.
6743 (__detail::__can_filter_view, _Filter::operator()): Likewise.
6744 (__detail::__can_transform_view, _Transform::operator()): Likewise.
6745 (take_view::begin): Likewise.
6746 (__detail::__can_take_view, _Take::operator()): Likewise.
6747 (__detail::__can_take_while_view, _TakeWhile::operator()): Likewise.
6748 (__detail::__can_drop_view, _Drop::operator()): Likewise.
6749 (__detail::__can_drop_while_view, _DropWhile::operator()): Likewise.
6750 (split_view::split_view): Use views::single when initializing
6752 (__detail::__can_split_view, _Split::operator()): Avoid
6753 list-initialization.
6754 (_Counted::operator()): Likewise.
6755 * testsuite/std/ranges/p2367.cc: New test.
6757 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
6760 * include/bits/basic_ios.tcc (basic_ios::copyfmt): use
6762 * include/bits/basic_string.tcc (basic_string::swap)
6763 (basic_string::assign): Likewise.
6764 * include/bits/deque.tcc (deque::operator=(const deque&)):
6766 * include/bits/stl_tree.h (_Rb_tree::operator=(const * _Rb_tree&)):
6768 * include/bits/vector.tcc (vector::operator=(const vector&)):
6771 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
6773 * include/std/istream (operator>>(Istream&&, x&)): Simplify, as
6775 * include/std/ostream (operator<<(Ostream&&, const x&)):
6777 * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc:
6778 Adjust dg-error pattern.
6779 * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc:
6781 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Define
6782 is_extractable trait to replace std::__is_extractable. Make it
6783 work with rvalue streams as well as lvalues, to replace f() and
6784 g() helper functions.
6785 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
6787 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
6788 Define is_insertable trait to replace std::__is_insertable. Make
6789 it work with rvalue streams as well as lvalues, to replace f()
6790 and g() helper functions.
6791 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
6793 * testsuite/27_io/filesystem/path/io/dr2989.cc: Prune additional
6794 errors from new constraints.
6795 * testsuite/27_io/rvalue_streams-2.cc: Remove PR 80675 checks,
6796 which are no longer expected to compile.
6797 * testsuite/27_io/rvalue_streams.cc: Adjust existing test.
6798 Verify LWG 1203 changes.
6800 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
6803 * include/experimental/socket (__basic_socket_impl::set_option)
6804 (__basic_socket_impl::get_option) [!_GLIBCXX_HAVE_SYS_SOCKET_H]:
6805 Just set error code.
6806 * testsuite/experimental/net/socket/socket_base.cc: CHeck
6807 for <sys/socket.h> not <socket.h>.
6809 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
6814 * testsuite/experimental/net/internet/address/v4/comparisons.cc:
6815 Use new effective-target keyword.
6816 * testsuite/experimental/net/internet/address/v4/cons.cc:
6818 * testsuite/experimental/net/internet/address/v4/creation.cc:
6820 * testsuite/experimental/net/internet/address/v4/members.cc:
6822 * testsuite/experimental/net/internet/address/v6/members.cc:
6824 * testsuite/experimental/net/internet/resolver/base.cc:
6826 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
6828 * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
6830 * testsuite/experimental/net/internet/socket/opt.cc:
6832 * testsuite/experimental/net/internet/tcp.cc:
6834 * testsuite/experimental/net/internet/udp.cc:
6836 * testsuite/lib/libstdc++.exp (check_effective_target_net_ts_ip):
6837 New proc to check net_ts_ip et.
6839 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
6842 * testsuite/20_util/pair/requirements/structural.cc: New test.
6844 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
6846 * include/bits/stl_pair.h (pair) [__cplusplus > 202002]: Add
6847 new definitions for constructors and assignment operators using
6848 concepts for constraints.
6849 * testsuite/20_util/pair/cons/99957.cc: Disable for C++20 and
6851 * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust
6852 expected error messages to also match C++20 errors.
6854 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
6857 * include/bits/stl_pair.h (_PCC::_MoveCopyPair, _PCC::_CopyMovePair):
6858 Combine and replace with ...
6859 (_PCC::_DeprConsPair): New SFINAE helper function.
6860 (pair): Merge preprocessor blocks so that all C++03 members
6861 are defined together at the end.
6862 (pair::pair(const _T1&, _U2&&), pair::pair(_U1&&, const _T2&)):
6863 Replace _T1 and _T2 parameters with __null_ptr_constant and
6865 * testsuite/20_util/pair/40925.cc: Use nullptr instead of 0.
6866 * testsuite/20_util/pair/cons/explicit_construct.cc: Likewise.
6867 * testsuite/20_util/pair/cons/99957.cc: New test.
6869 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
6871 * include/bits/basic_string.h (__cpp_lib_constexpr_string): Define.
6872 * include/std/version (__cpp_lib_constexpr_string): Define.
6873 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
6874 Check for __cpp_lib_constexpr_string.
6875 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
6877 * testsuite/21_strings/char_traits/requirements/version.cc: New test.
6879 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
6881 * doc/Makefile.am (stamp-pdf-doxygen): Improve comment about
6882 dealing with errors. Use '@' to prevent shell command being
6884 * doc/Makefile.in: Regenerate.
6886 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
6889 * include/bits/std_thread.h (thread::hardware_concurrency): Add
6890 missing noexcept to inline definition for non-gthreads targets.
6892 2021-04-28 Patrick Palka <ppalka@redhat.com>
6898 * include/bits/ranges_algo.h (__search_n_fn::operator()): Give
6899 the __value_comp lambda an explicit bool return type.
6900 (__is_permutation_fn::operator()): Give the __proj_scan local
6901 variable auto&& return type. Give the __comp_scan lambda an
6902 explicit bool return type.
6903 (__remove_fn::operator()): Give the __pred lambda an explicit
6905 (__partition_fn::operator()): Don't std::move __first twice
6906 when returning an empty subrange.
6907 (__min_fn::operator()): Don't std::move __comp.
6908 (__max_fn::operator()): Likewise.
6909 (__minmax_fn::operator()): Likewise.
6911 2021-04-27 Patrick Palka <ppalka@redhat.com>
6914 * include/std/ranges (join_view::_Iterator::operator++): Correct
6915 the return type of the lambda to avoid returning a copy of
6916 _M_parent->_M_inner.
6917 * testsuite/std/ranges/adaptors/join.cc (test10): New test.
6919 2021-04-27 Jakub Jelinek <jakub@redhat.com>
6922 2021-04-22 Jakub Jelinek <jakub@redhat.com>
6925 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
6927 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
6930 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
6932 * include/experimental/internet (address_v6::bytes_type): Adjust
6934 (basic_endpoint): Define _M_is_v6() to put all checks for
6935 AF_INET6 in one place.
6936 (basic_endpoint::resize): Simplify.
6937 (operator==(const tcp&, const tcp&)): Add constexpr and noexcept.
6938 (operator!=(const tcp&, const tcp&)): Likewise.
6939 (operator==(const udp&, const udp&)): Likewise.
6940 (operator!=(const udp&, const udp&)): Likewise.
6941 * testsuite/experimental/net/internet/tcp.cc: New test.
6942 * testsuite/experimental/net/internet/udp.cc: New test.
6944 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
6947 * include/experimental/internet (resolver_errc, resolver_category())
6948 (make_error_code, make_error_condition): Define unconditionally,
6949 only make enumerators and use of gai_strerror depend on the
6950 availability of <netdb.h>.
6951 (address_v4::to_string): Use correct constant for string length.
6952 (address_v4::to_string, address_v6::to_string): Define
6953 unconditionally, throw if unsupported.
6954 (make_address_v4, make_address_v6): Define unconditionally.
6955 Return an error if unsupported.
6956 (tcp, udp, v6_only, unicast::hops, multicast::*): Define
6958 * testsuite/experimental/net/internet/socket/opt.cc: Check for
6959 <netinet/in.h> and <netinet/tcp.h> before using types from
6962 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
6965 * include/experimental/internet (resolver_base::flags):
6966 Define overloaded operators as hidden friends.
6967 * include/experimental/socket (socket_base::message_flags):
6970 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
6972 * include/experimental/internet (tcp::no_delay, v6_only)
6973 (unicast::hops, multicast::hops, multicast::enable_loopback):
6974 Change access of base class and static data members. Add
6975 using-declaration for __socket_crtp::operator=(_Tp).
6976 (multicast::__mcastopt): New type.
6977 (multicast::join_group, multicast::leave_group): Derive from
6978 __mcastopt for common implementation.
6979 * include/experimental/socket: Add comment.
6980 * testsuite/experimental/net/internet/socket/opt.cc: New test.
6981 * testsuite/experimental/net/socket/socket_base.cc: Check for
6982 protected constructor/destructor of socket_base. Check for
6983 explicit constructors of socket option classes.
6985 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
6987 * include/experimental/bits/net.h (__socket_base): Add
6988 bool template parameter to allow BooleanSocketOption and
6989 IntegerSocketOption to have different __socket_base<int>
6991 (__socket_base<bool>): Adjust base class.
6992 (__socket_base<int>): Add partial specialization.
6993 (__socket_crtp::operator=(_Tp)): Add noexcept-specifier.
6994 * include/experimental/socket (socket_base::broadcast)
6995 (socket_base::debug, socket_base::do_not_route)
6996 (socket_base::keep_alive, socket_base::linger)
6997 (socket_base::out_of_band_inline)
6998 (socket_base::receive_buffer_size)
6999 (socket_base::receive_low_watermark)
7000 (socket_base::reuse_address, socket_base::send_buffer_size)
7001 (socket_base::send_low_watermark): Add using-declaration for
7002 __socket_crtp::operator=(_Tp).
7003 * testsuite/experimental/net/socket/socket_base.cc: Check
7004 properties of socket option types.
7006 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
7008 * include/experimental/internet (resolver_base::flags): Remove
7009 enumerators. Initialize constants directly with desired values.
7010 Make all operators constexpr and noexcept.
7011 * testsuite/experimental/net/internet/resolver/base.cc: Use
7012 __gnu_test::test_bitmask_values for bitmask type. Check
7013 construction and destruction is protected.
7015 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
7017 * include/bits/semaphore_base.h: Include <exception> and <errno.h>.
7019 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
7022 * include/experimental/internet (net::ip::make_error_code)
7023 (net::ip::make_error_condition, net::ip::make_network_v4)
7024 (net::ip::operator==(const udp&, const udp&)): Add 'inline'.
7026 2021-04-24 David Edelsohn <dje.gcc@gmail.com>
7028 * testsuite/lib/dg-options.exp (atomic_link_flags): New.
7029 (add_options_for_libatomic): Use atomic_link_flags.
7031 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
7034 * include/experimental/io_context (io_context): Define
7035 dummy_pollfd type so that most member functions still compile
7036 without <poll.h> and struct pollfd.
7038 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
7040 * include/experimental/io_context (io_context::async_wait): Add
7042 * include/experimental/socket (basic_socket::async_connect):
7043 Cast wait_type constant to int.
7044 (basic_datagram_socket::async_receive): Likewise.
7045 (basic_datagram_socket::async_receive_from): Likewise.
7046 (basic_datagram_socket::async_send): Likewise.
7047 (basic_datagram_socket::async_send_to): Likewise.
7048 (basic_stream_socket::async_receive): Likewise.
7049 (basic_stream_socket::async_send): Likewise. Use io_context
7050 parameter directly, instead of via an executor.
7051 (basic_socket_acceptor::async_accept): Likewise.
7053 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
7055 * include/experimental/socket (socket_base::shutdown_type):
7056 (socket_base::wait_type, socket_base::message_flags):
7057 Remove enumerators. Initialize constants directly with desired
7059 (socket_base::message_flags): Make all operators constexpr and
7061 * testsuite/util/testsuite_common_types.h (test_bitmask_values):
7063 * testsuite/experimental/net/socket/socket_base.cc: New test.
7065 2021-04-22 David Edelsohn <dje.gcc@gmail.com>
7067 * config/os/aix/atomicity.h: Delete.
7069 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
7071 * include/bits/atomic_timed_wait.h (__cond_wait_until_impl):
7072 Handle system_clock as well as steady_clock.
7073 * testsuite/30_threads/semaphore/try_acquire_for.cc: Re-enable.
7074 * testsuite/30_threads/semaphore/try_acquire_until.cc:
7077 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
7079 * testsuite/30_threads/semaphore/try_acquire_posix.cc: Add
7080 options for libatomic.
7082 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
7084 * config/os/gnu-linux/os_defines.h: Fix type in comment.
7086 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
7089 * include/bits/shared_ptr.h (allocate_shared): Assert that _Tp
7090 is not an array type.
7091 * include/bits/shared_ptr_base.h (__allocate_shared): Likewise.
7092 * testsuite/20_util/shared_ptr/creation/99006.cc: New test.
7094 2021-04-22 Thomas Rodgers <rodgert@twrodgers.com>
7096 * include/bits/atomic_wait.h: Always notify waiters in the
7097 case of 'bare' address notification.
7099 2021-04-22 Jakub Jelinek <jakub@redhat.com>
7102 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
7104 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
7107 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
7110 * include/bits/semaphore_base.h: Remove #error.
7111 * include/std/semaphore: Do not define anything unless one of
7112 the implementations is available.
7114 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
7116 * include/bits/semaphore_base.h: Always reload __old in
7117 __atomic_semaphore::_S_do_try_acquire().
7118 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
7121 2021-04-21 Philippe Blain <levraiphilippeblain@gmail.com>
7122 Jonathan Wakely <jwakely@redhat.com>
7125 * python/Makefile.am: Install libstdc++*-gdb.py more robustly.
7126 * python/Makefile.in: Regenerate.
7128 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
7130 * include/bits/semaphore_base.h: Add missing _M_try_acquire()
7131 member to __platform_wait.
7133 2021-04-21 Jonathan Wakely <jwakely@redhat.com>
7135 * include/std/latch: Replace tab characters in license text.
7136 * include/std/semaphore: Likewise.
7138 2021-04-21 Jakub Jelinek <jakub@redhat.com>
7141 * acinclude.m4: For POSIX semaphores AC_DEFINE HAVE_POSIX_SEMAPHORE
7142 rather than _GLIBCXX_HAVE_POSIX_SEMAPHORE.
7143 * configure: Regenerated.
7144 * config.h.in: Regenerated.
7146 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
7148 * testsuite/30_threads/semaphore/try_acquire_for.cc: Disable
7149 test for targets not using futexes for semaphores.
7150 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
7151 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
7152 Disable for all targets.
7154 2021-04-20 Thomas Rodgers <trodgers@redhat.com>
7156 * include/Makefile.am: Add new <bits/this_thread_sleep.h> header.
7157 * include/Makefile.in: Regenerate.
7158 * include/bits/this_thread_sleep.h: New file.
7159 * include/bits/atomic_base.h: Adjust all calls
7160 to __atomic_wait/__atomic_notify for new call signatures.
7161 * include/bits/atomic_timed_wait.h: Extensive rewrite.
7162 * include/bits/atomic_wait.h: Likewise.
7163 * include/bits/semaphore_base.h: Adjust all calls
7164 to __atomic_wait/__atomic_notify for new call signatures.
7165 * include/std/atomic: Likewise.
7166 * include/std/barrier: Likewise.
7167 * include/std/latch: Likewise.
7168 * include/std/semaphore: Likewise.
7169 * include/std/thread (this_thread::sleep_for)
7170 (this_thread::sleep_until): Move to new header.
7171 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Simplify
7173 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
7174 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
7175 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
7176 * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
7177 * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
7178 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Likewise.
7180 2021-04-20 Patrick Palka <ppalka@redhat.com>
7183 * include/bits/stl_iterator.h (__detail::__move_iter_cat):
7185 (move_iterator): Derive from the above in C++20 in order to
7186 conditionally define iterator_category as per P2259.
7187 (move_iterator::__base_cat): No longer used, so remove.
7188 (move_iterator::iterator_category): Remove in C++20.
7189 (__detail::__common_iter_use_postfix_proxy): Define.
7190 (common_iterator::_Proxy): Rename to ...
7191 (common_iterator:__arrow_proxy): ... this.
7192 (common_iterator::__postfix_proxy): Define as per P2259.
7193 (common_iterator::operator->): Adjust.
7194 (common_iterator::operator++): Adjust as per P2259.
7195 (iterator_traits<common_iterator>::_S_iter_cat): Define.
7196 (iterator_traits<common_iterator>::iterator_category): Change as
7198 (__detail::__counted_iter_value_type): Define.
7199 (__detail::__counted_iter_concept): Define.
7200 (__detail::__counted_iter_cat): Define.
7201 (counted_iterator): Derive from the above three classes in order
7202 to conditionally define value_type, iterator_concept and
7203 iterator category respectively as per P2259.
7204 (counted_iterator::operator->): Define as per P2259.
7205 (incrementable_traits<counted_iterator>): Remove as per P2259.
7206 (iterator_traits<counted_iterator>): Adjust as per P2259.
7207 * include/std/ranges (__detail::__iota_view_iter_cat): Define.
7208 (iota_view::_Iterator): Derive from the above in order to
7209 conditionally define iterator_category as per P2259.
7210 (iota_view::_S_iter_cat): Rename to ...
7211 (iota_view::_S_iter_concept): ... this.
7212 (iota_view::iterator_concept): Use it to apply LWG 3291 changes.
7213 (iota_view::iterator_category): Remove.
7214 (__detail::__filter_view_iter_cat): Define.
7215 (filter_view::_Iterator): Derive from the above in order to
7216 conditionally define iterator_category as per P2259.
7217 (filter_view::_Iterator): Move to struct __filter_view_iter_cat.
7218 (filter_view::_Iterator::iterator_category): Remove.
7219 (transform_view::_Base): Define.
7220 (transform_view::__iter_cat): Define.
7221 (transform_view::_Iterator): Derive from the above in order to
7222 conditionally define iterator_category as per P2259.
7223 (transform_view::_Iterator::_Base): Just alias
7224 transform_view::_Base.
7225 (transform_view::_Iterator::_S_iter_cat): Move to struct
7226 transform_view::__iter_cat.
7227 (transform_view::_Iterator::iterator_category): Remove.
7228 (transform_view::_Sentinel::_Base): Just alias
7229 transform_view::_Base.
7230 (join_view::_Base): Define.
7231 (join_view::_Outer_iter): Define.
7232 (join_view::_Inner_iter): Define.
7233 (join_view::_S_ref_is_glvalue): Define.
7234 (join_view::__iter_cat): Define.
7235 (join_view::_Iterator): Derive from it in order to conditionally
7236 define iterator_category as per P2259.
7237 (join_view::_Iterator::_Base): Just alias join_view::_Base.
7238 (join_view::_Iterator::_S_ref_is_glvalue): Just alias
7239 join_view::_S_ref_is_glvalue.
7240 (join_view::_Iterator::_S_iter_cat): Move to struct
7241 transform_view::__iter_cat.
7242 (join_view::_Iterator::_Outer_iter): Just alias
7243 join_view::_Outer_iter.
7244 (join_view::_Iterator::_Inner_iter): Just alias
7245 join_view::_Inner_iter.
7246 (join_view::_Iterator::iterator_category): Remove.
7247 (join_view::_Sentinel::_Base): Just alias join_view::_Base.
7248 (__detail::__split_view_outer_iter_cat): Define.
7249 (__detail::__split_view_inner_iter_cat): Define.
7250 (split_view::_Base): Define.
7251 (split_view::_Outer_iter): Derive from __split_view_outer_iter_cat
7252 in order to conditionally define iterator_category as per P2259.
7253 (split_view::_Outer_iter::iterator_category): Remove.
7254 (split_view::_Inner_iter): Derive from __split_view_inner_iter_cat
7255 in order to conditionally define iterator_category as per P2259.
7256 (split_view::_Inner_iter::_S_iter_cat): Move to
7257 __split_view_inner_iter_cat.
7258 (split_view::_Inner_iter::iterator_category): Remove.
7259 (elements_view::_Base): Define.
7260 (elements_view::__iter_cat): Define.
7261 (elements_view::_Iterator): Derive from the above in order to
7262 conditionall define iterator_category as per P2259.
7263 (elements_view::_Iterator::_Base): Just alias
7264 elements_view::_Base.
7265 (elements_view::_Iterator::_S_iter_concept)
7266 (elements_view::_Iterator::iterator_concept): Define as per
7268 (elements_view::_Iterator::iterator_category): Remove.
7269 (elements_view::_Sentinel::_Base): Just alias
7270 elements_view::_Base.
7271 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
7272 Adjust constraints on iterator_traits<counted_iterator>.
7273 * testsuite/std/ranges/p2259.cc: New test.
7275 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
7278 * include/std/charconv (__cpp_lib_to_chars): Define
7280 * include/std/version (__cpp_lib_to_chars): Likewise..
7281 * testsuite/20_util/from_chars/4.cc: Only check feature test
7282 macro, not _GLIBCXX_HAVE_USELOCALE.
7283 * testsuite/20_util/from_chars/5.cc: Likewise.
7284 * testsuite/20_util/from_chars/6.cc: Likewise.
7285 * testsuite/20_util/to_chars/long_double.cc: Likewise.
7287 2021-04-20 Jakub Jelinek <jakub@redhat.com>
7289 * testsuite/util/testsuite_abi.cc (compare_symbols): If any symbol
7290 versions with _IEEE128_ substring are found, set ieee_version_found
7291 to true. Ignore missing symbols with _IEEE128_ in version name if
7292 !ieee_version_found. Use i->first as version_name instead of
7293 i->second.version_name if the latter is empty.
7294 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
7296 2021-04-19 H.J. Lu <hjl.tools@gmail.com>
7298 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
7301 2021-04-17 Jakub Jelinek <jakub@redhat.com>
7303 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
7304 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
7306 2021-04-17 Jakub Jelinek <jakub@redhat.com>
7308 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
7309 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
7310 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
7311 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
7312 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
7313 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
7315 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
7317 * testsuite/lib/dg-options.exp (add_options_for_libatomic): Also
7318 add libatomic options for 32-bit sparc*-*-linux-gnu.
7320 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
7323 * libsupc++/Makefile.am: Add atomicity.cc here.
7324 * src/c++98/Makefile.am: Remove it from here.
7325 * libsupc++/Makefile.in: Regenerate.
7326 * src/c++98/Makefile.in: Regenerate.
7327 * testsuite/18_support/exception_ptr/96657.cc: New test.
7329 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
7332 * include/std/bit: Only include <ext/numeric_traits.h> for
7333 hosted build, use <limits> otherwise.
7335 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
7337 * doc/xml/manual/backwards_compatibility.xml: Remove porting
7338 notes for libg++ and libstdc++-v2, and bibliography.
7339 * doc/html/*: Regenerated.
7341 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
7344 * include/bits/ranges_util.h (__detail::__iterator_sentinel_pair):
7345 Remove helper concept.
7346 (subrange(_Pr), subrange(Pr, __make_unsigned_like<...>)): Remove
7347 deduction guides, as per LWG 3404.
7348 * testsuite/std/ranges/subrange/lwg3282_neg.cc: Check that class
7349 template argument deduction fails.
7351 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
7353 * testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc:
7354 Adjust expected error for C++20 mode.
7355 * testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc:
7358 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
7361 * testsuite/17_intro/headers/c++1998/49745.cc: Include all
7362 standard headers and XFAIL for effective-target c++20.
7364 2021-04-09 François Dumont <fdumont@gcc.gnu.org>
7367 * include/debug/helper_functions.h (__can_advance(_InputIterator,
7368 const std::pair<_Diff, _Distance_precision>&, int)): New.
7369 (__can_advance(const _Safe_iterator<>&,
7370 const std::pair<_Diff, _Distance_precision>&, int)): New.
7371 * include/debug/macros.h (__glibcxx_check_can_increment_dist): New,
7373 (__glibcxx_check_can_increment_range): Adapt to use latter.
7374 (__glibcxx_check_can_decrement_range): Likewise.
7375 * include/debug/safe_iterator.h
7376 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
7378 (__can_advance(const _Safe_iterator<>&,
7379 const std::pair<_Diff, _Distance_precision>&, int)): New.
7380 * include/debug/safe_iterator.tcc
7381 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
7383 (_Safe_iterator<>::_M_valid_range(const _Safe_iterator<>&,
7384 std::pair<difference_type, _Distance_precision>&, bool)): Adapt for
7386 (__copy_move_a): Adapt to use __glibcxx_check_can_increment_dist.
7387 (__copy_move_backward_a): Likewise.
7388 (__equal_aux): Likewise.
7389 * include/debug/stl_iterator.h (__can_advance(const std::reverse_iterator<>&,
7390 const std::pair<_Diff, _Distance_precision>&, int)): New.
7391 (__can_advance(const std::move_iterator<>&,
7392 const std::pair<_Diff, _Distance_precision>&, int)): New.
7393 * testsuite/25_algorithms/copy/debug/99402.cc: New test.
7395 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
7398 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()): Fix
7399 to be a valid constexpr function in C++11.
7400 * testsuite/23_containers/unordered_set/cons/99985.cc: New test.
7402 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
7404 * include/bits/fs_fwd.h: Fix doxygen group command.
7405 * include/bits/streambuf_iterator.h: Likewise.
7406 * include/bits/uses_allocator_args.h: Likewise.
7407 * include/std/memory: Likewise.
7408 * include/tr1/complex: Likewise.
7410 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
7412 * include/bits/basic_string.h: Tweak doxygen comment.
7414 2021-04-08 Patrick Palka <ppalka@redhat.com>
7416 * include/std/ranges (__detail::find): Define.
7417 (split_view::_OuterIter::operator++): Apply proposed resolution
7419 * testsuite/std/ranges/adaptors/split.cc (test10): New test.
7421 2021-04-08 Patrick Palka <ppalka@redhat.com>
7423 * include/std/ranges (__detail::find_if): Simplify.
7424 (__detail::find_if_not): Likewise.
7425 (__detail::min): Remove.
7426 (__detail::mismatch): Simplify.
7427 (take_view::size): Use std::min instead of __detail::min.
7429 2021-04-08 Patrick Palka <ppalka@redhat.com>
7431 * include/std/ranges (__detail::__returnable_element): New
7433 (elements_view): Use this concept in its constraints. Add
7434 missing private access specifier.
7435 (elements_view::_S_get_element): Define as per LWG 3502.
7436 (elements_view::operator*, elements_view::operator[]): Use
7438 (elements_view::operator++): Remove unnecessary constraint
7440 * testsuite/std/ranges/adaptors/elements.cc (test05): New test.
7442 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
7444 * doc/Makefile.am (stamp-pdf-doxygen): Also grep for
7445 out-of-memory error in log file.
7446 * doc/Makefile.in: Regenerate.
7448 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
7450 * configure: Regenerate.
7452 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
7454 * include/bits/random.h: Fix doxygen group commands.
7455 * include/bits/regex_constants.h: Likewise.
7456 * include/tr1/random.h: Likewise.
7458 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
7460 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()):
7461 New function to determine noexcept-specifier for move
7463 (_Hashtable): Use _S_nothrow_move() on move constructors.
7464 * testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc:
7465 Correct static assertion message.
7466 * testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc:
7468 * testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc:
7470 * testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc:
7473 2021-04-08 Patrick Palka <ppalka@redhat.com>
7476 * testsuite/20_util/to_chars/long_double.cc: Don't run the test
7477 on targets without a large long double. XFAIL the execution on
7478 targets with a non-conforming printf.
7480 2021-04-08 Patrick Palka <ppalka@redhat.com>
7483 * include/std/ranges (__adaptor::__maybe_refwrap): Remove.
7484 (__adaptor::__adaptor_invocable): New concept.
7485 (__adaptor::__adaptor_partial_app_viable): New concept.
7486 (__adaptor::_RangeAdaptorClosure): Rewrite, turning it into a
7487 non-template base class.
7488 (__adaptor::_RangeAdaptor): Rewrite, turning it into a CRTP base
7490 (__adaptor::_Partial): New class template that represents
7491 partial application of a range adaptor non-closure.
7492 (__adaptor::__pipe_invocable): New concept.
7493 (__adaptor::_Pipe): New class template.
7494 (__detail::__can_ref_view): New concept.
7495 (__detail::__can_subrange): New concept.
7496 (all): Replace the lambda here with ...
7497 (_All): ... this functor. Add appropriate constraints.
7498 (__detail::__can_filter_view): New concept.
7499 (filter, _Filter): As in all/_All.
7500 (__detail::__can_transform): New concept.
7501 (transform, _Transform): As in all/_All.
7502 (__detail::__can_take_view): New concept.
7503 (take, _Take): As in all/_All.
7504 (__detail::__can_take_while_view): New concept.
7505 (take_while, _TakeWhile): As in all/_All.
7506 (__detail::__can_drop_view): New concept.
7507 (drop, _Drop): As in all/_All.
7508 (__detail::__can_drop_while_view): New concept.
7509 (drop_while, _DropWhile): As in all/_All.
7510 (__detail::__can_join_view): New concept.
7511 (join, _Join): As in all/_All.
7512 (__detail::__can_split_view): New concept.
7513 (split, _Split): As in all/_All. Rename template parameter
7515 (__detail::__already_common): New concept.
7516 (__detail::__can_common_view): New concept.
7517 (common, _Common): As in all/_All.
7518 (__detail::__can_reverse_view): New concept.
7519 (reverse, _Reverse): As in all/_All.
7520 (__detail::__can_elements_view): New concept.
7521 (elements, _Elements): As in all/_All.
7522 (keys, values): Adjust.
7523 * testsuite/std/ranges/adaptors/99433.cc: New test.
7524 * testsuite/std/ranges/adaptors/all.cc: No longer expect that
7525 adding empty range adaptor closure objects to a pipeline doesn't
7526 increase the size of the pipeline.
7528 * testsuite/std/ranges/adaptors/common.cc (test03): New test.
7529 * testsuite/std/ranges/adaptors/drop.cc (test09): New test.
7530 * testsuite/std/ranges/adaptors/drop_while.cc (test04): New test.
7531 * testsuite/std/ranges/adaptors/elements.cc (test04): New test.
7532 * testsuite/std/ranges/adaptors/filter.cc (test06): New test.
7533 * testsuite/std/ranges/adaptors/join.cc (test09): New test.
7534 * testsuite/std/ranges/adaptors/p2281.cc: New test.
7535 * testsuite/std/ranges/adaptors/reverse.cc (test07): New test.
7536 * testsuite/std/ranges/adaptors/split.cc (test01, test04):
7539 * testsuite/std/ranges/adaptors/split_neg.cc (test01): Adjust
7540 expected error message.
7541 (test02): Likewise. Extend test.
7542 * testsuite/std/ranges/adaptors/take.cc (test06): New test.
7543 * testsuite/std/ranges/adaptors/take_while.cc (test05): New test.
7544 * testsuite/std/ranges/adaptors/transform.cc (test07, test08):
7547 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
7549 * include/std/string_view: Adjust Doxygen @file comment.
7551 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
7553 * include/std/type_traits (is_scoped_enum<T>): Constrain partial
7554 specialization to not match incomplete enum types. Use a
7555 requires-expression instead of instantiating is_convertible.
7556 (is_scoped_enum<const T>): Add as workaround for PR c++/99968.
7557 * testsuite/20_util/is_scoped_enum/value.cc: Check with
7558 incomplete types and opaque-enum-declarations.
7560 2021-04-07 Jonathan Wakely <jwakely@redhat.com>
7563 * src/c++17/fs_path.cc (path::_M_split_cmpts): Do not call
7564 non-const member on _M_pathname, to avoid copy-on-write.
7565 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
7566 Check construction from strings that might be shared.
7568 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
7570 * include/bits/move.h (forward, move, move_if_noexcept)
7571 (addressof): Add _GLIBCXX_NODISCARD.
7572 * include/bits/ranges_cmp.h (identity::operator()): Add
7573 nodiscard attribute.
7574 * include/c_global/cstddef (to_integer): Likewise.
7575 * include/std/bit (bit_cast): Likewise.
7576 * include/std/utility (as_const, to_underlying): Likewise.
7578 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
7580 * include/bits/move.h (forward): Change static_assert message
7581 to be unambiguous about what must be true.
7582 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
7583 * testsuite/20_util/forward/f_neg.cc: Likewise.
7585 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
7587 * include/bits/alloc_traits.h: Use markdown for code font.
7588 * include/bits/basic_string.h: Fix @param names.
7589 * include/bits/max_size_type.h: Remove period after @file.
7590 * include/bits/regex.h: Fix duplicate @retval names, and rename.
7591 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp: Add
7592 group open to match existing group close.
7593 * include/ext/pb_ds/priority_queue.hpp: Add blank line before group
7596 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
7598 * include/bits/atomic_base.h: Fix doxygen group close.
7599 * include/bits/basic_ios.h: Likewise.
7600 * include/bits/forward_list.h: Likewise.
7601 * include/bits/fs_dir.h: Likewise.
7602 * include/bits/fs_ops.h: Likewise.
7603 * include/bits/fs_path.h: Likewise.
7604 * include/bits/functional_hash.h: Likewise.
7605 * include/bits/gslice.h: Likewise.
7606 * include/bits/gslice_array.h: Likewise.
7607 * include/bits/hashtable_policy.h: Likewise.
7608 * include/bits/indirect_array.h: Likewise.
7609 * include/bits/locale_classes.h: Likewise.
7610 * include/bits/locale_facets.h: Likewise.
7611 * include/bits/locale_facets_nonio.h: Likewise.
7612 * include/bits/mask_array.h: Likewise.
7613 * include/bits/refwrap.h: Likewise.
7614 * include/bits/regex.h: Likewise.
7615 * include/bits/regex_automaton.h: Likewise.
7616 * include/bits/regex_compiler.h: Likewise.
7617 * include/bits/regex_constants.h: Likewise.
7618 * include/bits/regex_error.h: Likewise.
7619 * include/bits/regex_executor.h: Likewise.
7620 * include/bits/regex_scanner.h: Likewise.
7621 * include/bits/shared_ptr.h: Likewise.
7622 * include/bits/shared_ptr_atomic.h: Likewise.
7623 * include/bits/shared_ptr_base.h: Likewise.
7624 * include/bits/slice_array.h: Likewise.
7625 * include/bits/specfun.h: Likewise.
7626 * include/bits/std_function.h: Likewise.
7627 * include/bits/std_mutex.h: Likewise.
7628 * include/bits/stl_deque.h: Likewise.
7629 * include/bits/stl_iterator.h: Likewise.
7630 * include/bits/stl_iterator_base_types.h: Likewise.
7631 * include/bits/stl_map.h: Likewise.
7632 * include/bits/stl_multimap.h: Likewise.
7633 * include/bits/stl_multiset.h: Likewise.
7634 * include/bits/stl_numeric.h: Likewise.
7635 * include/bits/stl_pair.h: Likewise.
7636 * include/bits/stl_set.h: Likewise.
7637 * include/bits/stl_uninitialized.h: Likewise.
7638 * include/bits/stream_iterator.h: Likewise.
7639 * include/bits/streambuf_iterator.h: Likewise.
7640 * include/bits/unique_ptr.h: Likewise.
7641 * include/bits/unordered_map.h: Likewise.
7642 * include/bits/unordered_set.h: Likewise.
7643 * include/decimal/decimal: Likewise.
7644 * include/experimental/any: Likewise.
7645 * include/experimental/array: Likewise.
7646 * include/experimental/bits/fs_dir.h: Likewise.
7647 * include/experimental/bits/fs_fwd.h: Likewise.
7648 * include/experimental/bits/fs_ops.h: Likewise.
7649 * include/experimental/bits/fs_path.h: Likewise.
7650 * include/experimental/buffer: Likewise.
7651 * include/experimental/internet: Likewise.
7652 * include/experimental/optional: Likewise.
7653 * include/experimental/propagate_const: Likewise.
7654 * include/experimental/socket: Likewise.
7655 * include/ext/pb_ds/assoc_container.hpp: Likewise.
7656 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp:
7658 * include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp: Likewise.
7659 * include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp: Likewise.
7660 * include/ext/pb_ds/detail/types_traits.hpp: Likewise.
7661 * include/ext/pb_ds/exception.hpp: Likewise.
7662 * include/ext/pb_ds/priority_queue.hpp: Likewise.
7663 * include/ext/pb_ds/tag_and_trait.hpp: Likewise.
7664 * include/ext/random: Likewise.
7665 * include/std/any: Likewise.
7666 * include/std/atomic: Likewise.
7667 * include/std/bitset: Likewise.
7668 * include/std/chrono: Likewise.
7669 * include/std/complex: Likewise.
7670 * include/std/condition_variable: Likewise.
7671 * include/std/fstream: Likewise.
7672 * include/std/future: Likewise.
7673 * include/std/iostream: Likewise.
7674 * include/std/istream: Likewise.
7675 * include/std/mutex: Likewise.
7676 * include/std/numeric: Likewise.
7677 * include/std/ostream: Likewise.
7678 * include/std/ratio: Likewise.
7679 * include/std/shared_mutex: Likewise.
7680 * include/std/stdexcept: Likewise.
7681 * include/std/streambuf: Likewise.
7682 * include/std/system_error: Likewise.
7683 * include/std/thread: Likewise.
7684 * include/std/valarray: Likewise.
7685 * include/std/variant: Likewise.
7686 * include/tr1/cmath: Likewise.
7687 * include/tr1/regex: Likewise.
7688 * include/tr2/dynamic_bitset: Likewise.
7689 * libsupc++/atomic_lockfree_defines.h: Likewise.
7690 * libsupc++/exception: Likewise.
7691 * libsupc++/exception.h: Likewise.
7692 * libsupc++/exception_ptr.h: Likewise.
7693 * libsupc++/nested_exception.h: Likewise.
7695 2021-03-31 Alexandre Oliva <oliva@adacore.com>
7697 * testsuite/30_threads/future/members/poll.cc: Use faster
7698 after-ready call in the calibration loop.
7700 2021-03-29 Jonathan Wakely <jwakely@redhat.com>
7702 * doc/xml/manual/status_cxx2017.xml: Adjust link for PSTL.
7703 * doc/html/manual/status.html: Regenerate.
7705 2021-03-28 François Dumont <fdumont@gcc.gnu.org>
7707 * include/debug/forward_list
7708 (forward_list(forward_list&&, const allocator_type&)): Add noexcept qualification.
7709 * include/debug/list (list(list&&, const allocator_type&)): Likewise and add
7710 call to safe container allocator aware move constructor.
7711 * include/debug/vector (vector(vector&&, const allocator_type&)):
7712 Fix noexcept qualification.
7713 * testsuite/23_containers/forward_list/cons/noexcept_move_construct.cc:
7714 Add allocator-extended move constructor noexceot qualification check.
7715 * testsuite/23_containers/list/cons/noexcept_move_construct.cc: Likewise.
7717 2021-03-26 Jonathan Wakely <jwakely@redhat.com>
7719 * src/c++11/random.cc (USE_LCG): Define when a pseudo-random
7721 [USE_LCG] (bad_seed, construct_lcg_at, destroy_lcg_at, __lcg):
7722 New helper functions and callback.
7723 (random_device::_M_init): Add 'prng' and 'all' enumerators.
7724 Replace switch with fallthrough with a series of 'if' statements.
7725 [USE_LCG]: Construct an lcg_type engine and use __lcg when cpuid
7727 (random_device::_M_init_pretr1) [USE_MT19937]: Accept "prng"
7729 (random_device::_M_getval): Check for callback unconditionally
7730 and always pass _M_file pointer.
7731 * testsuite/26_numerics/random/random_device/85494.cc: Remove
7732 effective-target check. Use new random_device_available helper.
7733 * testsuite/26_numerics/random/random_device/94087.cc: Likewise.
7734 * testsuite/26_numerics/random/random_device/cons/default-cow.cc:
7735 Remove effective-target check.
7736 * testsuite/26_numerics/random/random_device/cons/default.cc:
7738 * testsuite/26_numerics/random/random_device/cons/token.cc: Use
7739 new random_device_available helper. Test "prng" token.
7740 * testsuite/util/testsuite_random.h (random_device_available):
7741 New helper function.
7743 2021-03-25 François Dumont <fdumont@gcc.gnu.org>
7745 * include/debug/string
7746 (basic_string(const basic_string&, const _Alloc&)): Define even if !_GLIBCXX_USE_CXX11_ABI.
7747 (basic_string(basic_string&&, const _Alloc&)): Likewise and add noexcept qualification.
7748 (basic_string<>::erase): Adapt to take __const_iterator.
7749 (basic_string(const _CharT*, const _Allocator&)): Remove assign call.
7750 (basic_string<>::insert(const_iterator, _InputIte, _InputIte)): Try to
7751 remove iterator debug layer even if !_GLIBCXX_USE_CXX11_ABI.
7752 [_GLIBCXX_USE_CHAR8_T] (__gnu_debug::u8string): New.
7753 (__gnu_debug::u16string, __gnu_debug::u32string): New.
7754 (std::hash<__gnu_debug::basic_string<>>): New partial specialization.
7755 (std::__is_fast_hash<__gnu_debug::basic_string<>>): Likewise.
7756 * testsuite/util/exception/safety.h
7757 (erase_base<__gnu_debug::basic_string<>>): New partial specialization.
7758 (insert_base<__gnu_debug::basic_string<>>): Likewise.
7759 * testsuite/util/testsuite_container_traits.h (traits<__gnu_debug::basic_string<>>):
7760 New partial specialization.
7761 * testsuite/21_strings/basic_string/hash/debug.cc: New test.
7762 * testsuite/21_strings/basic_string/requirements/citerators.cc:
7763 Add test on __gnu_debug::string.
7764 * testsuite/21_strings/basic_string/requirements/dr438/constructor.cc: Likewise.
7765 * testsuite/21_strings/basic_string/requirements/exception/basic.cc: Likewise.
7766 * testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc:
7768 * testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc:
7770 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
7772 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
7774 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
7776 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
7778 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
7780 * testsuite/21_strings/basic_string/requirements/typedefs.cc: Likewise.
7782 2021-03-25 Jakub Jelinek <jakub@redhat.com>
7785 * testsuite/18_support/source_location/consteval.cc (main): Adjust
7786 expected column numbers.
7787 * testsuite/18_support/source_location/1.cc (main): Likewise.
7789 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
7791 * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare malloc.
7793 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
7795 * testsuite/util/exception/safety.h (setup_base::generate):
7796 Support seeding random engine.
7797 (erase_point, erase_range): Adjust range of random numbers to
7798 ensure dereferenceable iterators are used where required.
7799 (generation_prohibited::run): Do not try to erase from empty
7801 * testsuite/util/testsuite_containergen.h (test_containers):
7802 Support seeding random engine.
7804 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
7806 * testsuite/std/ranges/adaptors/reverse.cc: Replace duplicated
7807 line with a check that uses the const being/end overloads.
7809 2021-03-23 Moritz Sichert <sichert@in.tum.de>
7811 * include/std/ranges (reverse_view::begin, reverse_view::end):
7812 Qualify make_reverse_iterator calls to avoid ADL.
7813 * testsuite/std/ranges/adaptors/reverse.cc: Test that
7814 views::reverse works when make_reverse_iterator is defined
7815 in an associated namespace.
7817 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
7819 * include/bits/c++config (_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT):
7820 Do not define when compiling with Clang.
7822 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
7824 * include/std/string_view (basic_string_view(Range&&)): Define new
7825 constructor and deduction guide.
7826 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: New test.
7827 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: New test.
7829 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
7831 * include/bits/range_access.h (begin(T (&)[N]), end(T (&)[N])):
7832 Add missing 'noexcept' as per LWG 2280.
7833 (rbegin(T (&)[N]), rend(T (&)[N]), rbegin(initializer_list<T>))
7834 (rend(initializer_list<T>)): Add 'noexcept' as per LWG 3537.
7835 * testsuite/24_iterators/range_access/range_access.cc: Check for
7836 expected noexcept specifiers. Check result types of generic
7837 std::begin and std::end overloads.
7838 * testsuite/24_iterators/range_access/range_access_cpp14.cc:
7839 Check for expected noexcept specifiers.
7840 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
7843 2021-03-19 Jonathan Wakely <jwakely@redhat.com>
7845 * include/std/type_traits (is_scoped_enum): Define.
7846 * include/std/version (__cpp_lib_is_scoped_enum): Define.
7847 * testsuite/20_util/is_scoped_enum/value.cc: New test.
7848 * testsuite/20_util/is_scoped_enum/version.cc: New test.
7850 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
7853 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Remove
7854 std::once_flag symbols.
7855 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Likewise.
7856 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
7857 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
7859 * config/abi/pre/gnu.ver: Likewise.
7860 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
7861 (struct __once_flag_compat): Remove.
7862 (_ZNSt9once_flag11_M_activateEv): Remove.
7863 (_ZNSt9once_flag9_M_finishEb): Remove.
7865 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
7868 * include/std/mutex [_GLIBCXX_HAVE_LINUX_FUTEX] (once_flag):
7869 Revert to pthread_once_t implementation.
7870 [_GLIBCXX_HAVE_LINUX_FUTEX] (call_once): Likewise.
7871 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
7872 (struct __once_flag_compat): New type matching the reverted
7873 implementation of once_flag using futexes.
7874 (once_flag::_M_activate): Remove, replace with ...
7875 (_ZNSt9once_flag11_M_activateEv): ... alias symbol.
7876 (once_flag::_M_finish): Remove, replace with ...
7877 (_ZNSt9once_flag9_M_finishEb): ... alias symbol.
7878 * testsuite/30_threads/call_once/66146.cc: Removed.
7880 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
7882 * testsuite/17_intro/names.cc: Exclude j from the list
7883 of test symbols for Darwin.
7885 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
7887 * config/os/bsd/darwin/ppc-extra.ver: Add matching for
7888 to_chars and from_chars for long double.
7890 2021-03-15 Patrick Palka <ppalka@redhat.com>
7892 * include/bits/max_size_type.h (__max_size_type::operator _Tp):
7894 (__max_size_type::operator++): Define.
7895 (__max_size_type::operator--): Likewise.
7896 (__max_size_type::operator<=>): Conditionally define (in place
7897 of the other comparison operators).
7898 (__max_diff_type::operator _Tp): Fix formatting.
7899 (__max_diff_type::operator++): Define.
7900 (__max_diff_type::operator--): Likewise.
7901 (__max_diff_type::operator<=>): Conditionally define (in place
7902 of the other comparison operators).
7903 * testsuite/std/ranges/iota/max_size_type.cc (test01): Test
7904 these operator overloads.
7906 2021-03-15 Caroline Tice <cmtice@google.com>
7909 * src/Makefile.am (AM_CXXFLAGS_PRE, AM_CXXFLAGS): Add
7910 AM_CXXFLAGS_PRE with the old definition of AM_CXXFLAGS; make
7911 AM_CXXFLAGS to be AM_CXXFLAGS_PRE with '-fvtable-verify=std'
7913 * src/Makefile.in: Regenerate.
7915 2021-03-11 Patrick Palka <ppalka@redhat.com>
7917 * src/c++17/floating_to_chars.cc: Simplify the file as if
7918 __SIZEOF_INT128__ is always defined.
7919 [!defined __SIZEOF_INT128__]: Include "uint128_t.h". Define
7920 a base-10 to_chars overload for the uint128_t class type.
7921 * src/c++17/uint128_t.h: New file.
7922 * testsuite/20_util/to_chars/long_double.cc: No longer expect an
7923 execution FAIL on targets that have a large long double type
7926 2021-03-11 Patrick Palka <ppalka@redhat.com>
7928 * src/c++17/ryu/LOCAL_PATCHES: Update.
7929 * src/c++17/ryu/d2s_intrinsics.h: Don't define uint128_t.
7930 * src/c++17/ryu/generic_128.h: Likewise.
7931 * src/c++17/ryu/ryu_generic_128.h (struct floating_decimal_128):
7932 Use uint128_t instead of __uint128_t.
7933 (generic_binary_to_decimal): Likewise.
7935 2021-03-11 Patrick Palka <ppalka@redhat.com>
7937 * src/c++17/ryu/LOCAL_PATCHES: New file.
7939 2021-03-11 Patrick Palka <ppalka@redhat.com>
7941 * src/c++17/floating_to_chars.cc (uint128_t): New conditionally
7942 defined alias of unsigned __int128.
7943 (floating_type_traits_binary128::mantissa_t): Use uint128_t
7944 instead of unsigned __int128.
7945 (floating_type_traits<long double>::mantissa_t)
7946 [LONG_DOUBLE_KIND == LDK_IBM128]: Likewise.
7947 (get_ieee_repr): Likewise. Make casts from uint_t to mantissa_t
7948 and uint32_t explicit. Simplify the extraction of mantissa,
7949 exponent and sign bit.
7951 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
7953 * include/std/barrier (barrier::arrival_token): New move-only
7954 class that encapsulates the underlying token value.
7956 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
7958 * python/libstdcxx/v6/printers.py (find_type): Use tag attribute
7959 instead of unqualified() method.
7961 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
7964 * include/std/stop_token (_Stop_state_t::_M_release_ownership):
7965 Use acq_rel memory ordering.
7967 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
7970 * src/c++17/fs_dir.cc (recursive_directory_iterator): Use new
7971 helper function to check for permission denied errors.
7972 * src/filesystem/dir.cc (recursive_directory_iterator):
7974 * src/filesystem/dir-common.h (is_permission_denied_error): New
7977 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
7980 * include/bits/random.h (normal_distribution): Use
7981 default-initializer for _M_saved and _M_saved_available.
7983 2021-03-10 John David Anglin <danglin@gcc.gnu.org>
7985 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Add options to
7986 link with libatomic.
7987 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
7988 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
7989 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
7990 * testsuite/30_threads/barrier/arrive.cc: Likewise.
7991 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
7992 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
7993 * testsuite/30_threads/barrier/completion.cc: Likewise.
7994 * testsuite/30_threads/latch/3.cc: Likewise.
7995 * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
7996 * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
7997 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
7999 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
8002 * include/bits/align.h: Include debug/assertions.h.
8003 * include/bits/codecvt.h: Include bits/c++config.h.
8004 * include/bits/enable_special_members.h: Likewise.
8005 * include/bits/erase_if.h: Likewise.
8006 * include/bits/functional_hash.h: Include <type_traits>.
8007 * include/bits/invoke.h: Include bits/move.h.
8008 * include/bits/ostream_insert.h: Include bits/exception_defines.h.
8009 * include/bits/parse_numbers.h: Include <type_traits>.
8010 * include/bits/predefined_ops.h: Include bits/c++config.h.
8011 * include/bits/range_access.h: Include bits/stl_iterator.h.
8012 * include/bits/stl_bvector.h: Do not include bits/stl_vector.h.
8013 * include/bits/stl_iterator.h: Include bits/stl_iterator_base_types.h.
8014 * include/bits/stl_uninitialized.h: Include bits/stl_algobase.h.
8015 * include/bits/uniform_int_dist.h: Include bits/concept_check.h.
8016 * include/bits/unique_lock.h: Include bits/std_mutex.h.
8017 * include/debug/assertions.h: Include bits/c++config.h.
8019 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
8021 * include/bits/ranges_cmp.h (__eq_builtin_ptr_cmp): Remove.
8022 (ranges::equal_to, ranges::not_equal_to): Do not constrain
8023 with __eq_builtin_ptr_cmp.
8024 (ranges::less, ranges::greater, ranges::less_equal)
8025 (ranges::greater_equal): Do not constrain with
8026 __less_builtin_ptr_cmp.
8027 * libsupc++/compare (compare_three_way): Do not constrain with
8028 __3way_builtin_ptr_cmp.
8029 * testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc: Moved to...
8030 * testsuite/18_support/comparisons/object/lwg3530.cc: ...here.
8031 * testsuite/20_util/function_objects/range.cmp/lwg3530.cc: New test.
8033 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
8035 * testsuite/std/time/syn_c++20.cc: Enable synopsis checks for
8036 C++20 calendar types.
8038 2021-03-06 Jakub Jelinek <jakub@redhat.com>
8041 * include/std/bit (__rotl, __rotr): Add optimized variants for power of
8042 two _Nd which the compiler can pattern match the rotates.
8044 2021-03-04 Jonathan Wakely <jwakely@redhat.com>
8047 * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
8048 Make storage larger than required. Verify no write to the last
8050 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
8053 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8055 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
8056 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
8058 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
8059 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
8062 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8064 * include/experimental/bits/simd.h: Replace reserved _X, _B by
8066 * include/experimental/bits/simd_builtin.h: Likewise.
8067 * include/experimental/bits/simd_x86.h: Likewise.
8069 2021-02-27 Jonathan Wakely <jwakely@redhat.com>
8072 * include/std/chrono (year_month_day::_M_days_since_epoch()):
8073 Convert chrono::month and chrono::day to unsigned before
8074 converting to uint32_t.
8076 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
8078 * include/std/chrono (year_month_day::_S_from_days): Perform
8079 all calculations with type uint32_t.
8081 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
8083 * doc/xml/manual/abi.xml: Document versioning for GCC 11.
8084 * doc/html/manual/abi.html: Regenerate.
8086 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
8089 * testsuite/27_io/headers/cstdio/types_std.cc: Use pointer to
8090 FILE instead of FILE.
8092 2021-02-25 Andreas Schwab <schwab@suse.de>
8094 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
8095 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
8096 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
8097 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
8099 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
8102 * include/std/chrono (year_month_day::_S_from_days): Cast long
8105 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
8107 * include/std/utility (to_underlying): Define.
8108 * include/std/version (__cpp_lib_to_underlying): Define.
8109 * testsuite/20_util/to_underlying/1.cc: New test.
8110 * testsuite/20_util/to_underlying/version.cc: New test.
8112 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
8115 * src/c++17/floating_to_chars.cc (sprintf_ld): Add extra args
8116 before value to be printed.
8118 2021-02-24 Patrick Palka <ppalka@redhat.com>
8120 * src/c++17/floating_to_chars.cc (__floating_to_chars_precision):
8121 Relax the condition that guards the printf code path to accept
8122 F128_type as well as long double.
8124 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
8126 * include/std/chrono (year_month_day_last:day): New
8129 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
8131 * include/std/chrono (year::is_leap): New implementation.
8132 * testsuite/std/time/year/2.cc: New test.
8134 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
8136 * include/std/chrono (year_month_day::_M_days_since_epoch):
8138 * testsuite/std/time/year_month_day/4.cc: New test.
8140 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
8142 * include/std/chrono (year_month_day::_S_from_days): New
8144 * testsuite/std/time/year_month_day/3.cc: New test.
8146 2021-02-24 Patrick Palka <ppalka@redhat.com>
8149 * testsuite/20_util/to_chars/long_double.cc: Include <optional>.
8150 (test01): Simplify verifying the nearby values by using a
8151 2-iteration loop and a dedicated output buffer to check that the
8152 nearby values are different. Factor out the printf-based
8153 verification into a local function, and check that the leading
8154 hex digits agree before comparing to the output of printf. Also
8155 verify the output by round-tripping it through from_chars.
8157 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
8160 * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Do not match to_chars
8161 symbols for long double arguments mangled as 'g'.
8162 * config/os/gnu-linux/ldbl-extra.ver: Likewise.
8163 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Likewise.
8164 * src/c++17/Makefile.am [GLIBCXX_LDBL_ALT128_COMPAT_TRUE]:
8165 Use -mabi=ibmlongdouble for floating_to_chars.cc.
8166 * src/c++17/Makefile.in: Regenerate.
8167 * src/c++17/floating_to_chars.cc (floating_type_traits_binary128):
8168 New type defining type traits of IEEE binary128 format.
8169 (floating_type_traits<__float128>): Define specialization.
8170 (floating_type_traits<long double>): Define in terms of
8171 floating_type_traits_binary128 when appropriate.
8172 (floating_to_shortest_scientific): Handle __float128.
8173 (sprintf_ld): New function template for printing a long double
8174 or __ieee128 value using sprintf.
8175 (__floating_to_chars_shortest, __floating_to_chars_precision):
8177 (to_chars): Define overloads for __float128.
8179 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
8181 * testsuite/17_intro/names.cc: Undefine 'u' on powerpc*-linux*.
8183 2021-02-23 Martin Sebor <msebor@redhat.com>
8186 * libsupc++/dyncast.cc (__dynamic_cast): Return null when
8187 first argument is null.
8189 2021-02-23 Jakub Jelinek <jakub@redhat.com>
8192 * testsuite/21_strings/char_traits/requirements/char/99181.cc: New
8195 2021-02-23 Jakub Jelinek <jakub@redhat.com>
8198 * include/bits/char_traits.h (char_traits<char>::compare): For
8199 constexpr evaluation don't call
8200 __gnu_cxx::char_traits<char_type>::compare but do the comparison loop
8203 2021-02-23 Jakub Jelinek <jakub@redhat.com>
8206 * include/pstl/parallel_backend_serial.h: Remove __pstl::__par_backend.
8208 2021-02-23 Patrick Palka <ppalka@redhat.com>
8211 * src/c++17/floating_to_chars.cc (get_ieee_repr): Extract
8212 the high- and low-order parts from an IBM long double value
8213 in an endian-agnostic way.
8215 2021-02-19 Jonathan Wakely <jwakely@redhat.com>
8217 * include/bits/atomic_wait.h (__thread_relax()): Call
8218 __thread_yield() not __gthread_yield().
8220 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
8222 * include/bits/atomic_wait.h (__thread_yield()): Check
8223 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
8224 (__thread_relax()): Use __thread_yield() instead of repeating
8225 the preprocessor checks for __gthread_yield.
8227 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
8229 * include/std/mutex (once_flag::_M_activate()): Add explicit
8230 return statement for passive case.
8231 (once_flag::_M_finish(bool)): Use reserved name for parameter.
8233 2021-02-14 Jonathan Wakely <jwakely@redhat.com>
8236 * testsuite/util/testsuite_fs.h: Always include <unistd.h>.
8238 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
8241 * src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround.
8243 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
8245 * doc/xml/manual/status_cxx2014.xml: Document implementation
8246 specific properties of std::experimental::filesystem::rename.
8247 * doc/xml/manual/status_cxx2017.xml: Document implementation
8248 specific properties of std::filesystem::rename.
8249 * doc/html/*: Regenerate.
8250 * src/c++17/fs_ops.cc (fs::rename): Implement correct behaviour
8251 for directories on Windows.
8252 * src/filesystem/ops-common.h (__gnu_posix::rename): Use
8253 MoveFileExW on Windows.
8254 * testsuite/27_io/filesystem/operations/rename.cc: New test.
8255 * testsuite/experimental/filesystem/operations/rename.cc: New test.
8257 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
8259 * testsuite/util/testsuite_fs.h (nonexistent_path): Add
8260 random number to the path.
8262 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
8264 * include/experimental/internet (address_v6::to_string): Include
8266 * testsuite/experimental/net/internet/address/v6/members.cc:
8267 Test to_string() results.
8269 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
8271 * include/experimental/internet (address_v6::any): Avoid using
8272 memcpy in constexpr function.
8273 (address_v6::loopback): Likewise.
8274 (make_address_v6): Fix missing return statements on error paths.
8275 * include/experimental/io_context: Avoid -Wdangling-else
8277 * testsuite/experimental/net/internet/address/v4/members.cc:
8278 Remove unused variables.
8279 * testsuite/experimental/net/internet/address/v6/members.cc:
8282 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
8284 * include/bits/shared_ptr_base.h (__shared_ptr::_M_get_deleter):
8285 Add unused attribute to parameter.
8286 * src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq):
8289 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
8291 * testsuite/27_io/basic_ostream/emit/1.cc: Expect test to fail
8292 if -fno-rtti is used.
8293 * testsuite/30_threads/async/forced_unwind.cc: Expect test
8294 to abort if -fno-rtti is used.
8296 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
8298 * testsuite/util/testsuite_allocator.h (memory_resource):
8299 Remove requirement for RTTI and exceptions to be enabled.
8301 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
8303 * testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Use
8304 static_cast when RTTI is disabled.
8305 * testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc:
8307 * testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc:
8309 * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc:
8311 * testsuite/27_io/basic_stringstream/str/char/2.cc:
8313 * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc:
8316 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
8318 * include/std/ostream (__syncbuf_base::_S_get): Mark parameter
8319 as unused and only use dynamic_cast when RTTI is enabled.
8321 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
8324 * src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)):
8325 Change int parameter to error_code, to match std::ios_failure.
8326 (__throw_ios_failure(const char*, int)): Construct error_code
8329 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
8331 * libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define
8333 * libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new
8334 macro instead of _GLIBCXX_EH_PTR_COMPAT.
8335 (operator==): Likewise.
8337 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
8340 * doc/xml/manual/status_cxx2011.xml: Document when support
8342 * doc/xml/manual/status_cxx2014.xml: Likewise.
8343 * doc/xml/manual/status_cxx2017.xml: Likewise.
8344 * doc/html/manual/status.html: Regenerate.
8346 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
8349 * src/c++17/fs_ops.cc (fs::status): Re-enable workaround.
8351 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
8353 * src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent)
8354 (fs::remove): Use std::system_category() for error codes from
8356 * src/filesystem/ops.cc (fs::create_hard_link, fs::remove):
8359 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
8361 * testsuite/27_io/filesystem/operations/proximate.cc: Fix typo
8362 in __MINGW32__ macro name.
8363 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
8364 * testsuite/27_io/filesystem/path/generation/proximate.cc:
8366 * testsuite/27_io/filesystem/path/generation/relative.cc:
8368 * testsuite/util/testsuite_fs.h: Likewise.
8370 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
8372 * include/bits/stl_tree.h
8373 (__has_is_transparent, __has_is_transparent_t): Move...
8374 * include/bits/stl_function.h: ...here.
8375 * include/bits/hashtable_policy.h (_Hash_code_base<>::_M_hash_code_tr): New..
8376 (_Hashtable_base<>::_M_equals_tr): New.
8377 * include/bits/hashtable.h (_Hashtable<>::_M_find_tr, _Hashtable<>::_M_count_tr,
8378 _Hashtable<>::_M_equal_range_tr): New member function templates to perform
8379 heterogeneous lookup.
8380 (_Hashtable<>::_M_find_before_node_tr): New.
8381 (_Hashtable<>::_M_find_node_tr): New.
8382 * include/bits/unordered_map.h (unordered_map::find<>, unordered_map::count<>,
8383 unordered_map::contains<>, unordered_map::equal_range<>): New member function
8384 templates to perform heterogeneous lookup.
8385 (unordered_multimap::find<>, unordered_multimap::count<>,
8386 unordered_multimap::contains<>, unordered_multimap::equal_range<>): Likewise.
8387 * include/bits/unordered_set.h (unordered_set::find<>, unordered_set::count<>,
8388 unordered_set::contains<>, unordered_set::equal_range<>): Likewise.
8389 (unordered_multiset::find<>, unordered_multiset::count<>,
8390 unordered_multiset::contains<>, unordered_multiset::equal_range<>): Likewise.
8391 * include/debug/unordered_map
8392 (unordered_map::find<>, unordered_map::equal_range<>): Likewise.
8393 (unordered_multimap::find<>, unordered_multimap::equal_range<>): Likewise.
8394 * include/debug/unordered_set
8395 (unordered_set::find<>, unordered_set::equal_range<>): Likewise.
8396 (unordered_multiset::find<>, unordered_multiset::equal_range<>): Likewise.
8397 * testsuite/23_containers/unordered_map/operations/1.cc: New test.
8398 * testsuite/23_containers/unordered_multimap/operations/1.cc: New test.
8399 * testsuite/23_containers/unordered_multiset/operations/1.cc: New test.
8400 * testsuite/23_containers/unordered_set/operations/1.cc: New test.
8402 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
8404 * include/bits/stl_deque.h
8405 (std::operator-(deque::iterator, deque::iterator)): Replace if/then with
8406 a null pointer test.
8408 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
8410 * testsuite/27_io/filesystem/operations/remove_all.cc: Remove
8411 test directory after making it writable again.
8412 * testsuite/experimental/filesystem/operations/remove_all.cc:
8415 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
8418 * include/std/coroutine (coroutine_handle<P>::from_address): Add
8421 2021-02-09 Vladimir Vishnevsky <vv.os.swe@gmail.com>
8423 * include/ext/stdio_sync_filebuf.h: Remove unused <unistd.h>.
8424 * src/c++17/fs_ops.cc (fs::permissions): Qualify mode_t.
8426 2021-02-09 Jakub Jelinek <jakub@redhat.com>
8429 * include/bits/basic_string.tcc (basic_string::_M_replace): When __s
8430 points to the characters moved by earlier _S_move, compute the source
8431 address using expression based on the __p pointer rather than __s
8434 2021-02-03 Jonathan Wakely <jwakely@redhat.com>
8436 * testsuite/19_diagnostics/error_code/operators/not_equal.cc:
8437 Add comparison with same category and different values.
8438 * testsuite/19_diagnostics/error_code/operators/less.cc:
8439 Likewise. Fix comparison involving different categories.
8440 * testsuite/19_diagnostics/error_code/operators/three_way.cc:
8442 * testsuite/19_diagnostics/error_condition/operators/less.cc:
8444 * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
8447 2021-02-03 yaozhongxiao <yaozhongxiao@linux.alibaba.com>
8449 * include/experimental/bits/simd_neon.h: Replace repeated vpadd
8450 calls with a single vaddv for aarch64.
8452 2021-02-03 Matthias Kretz <kretz@kde.org>
8454 * testsuite/Makefile.am: Warn about the workaround. Add
8455 -fno-tree-vrp to CXXFLAGS passed to the check_simd script.
8456 Improve initial user feedback from make check-simd.
8457 * testsuite/Makefile.in: Regenerated.
8459 2021-02-03 Matthias Kretz <kretz@kde.org>
8461 * include/experimental/bits/simd.h: Add __detail::_Minimum and
8462 __detail::_Maximum to use them as _BinaryOperation to _S_reduce.
8463 Add hmin and hmax overloads for simd and const_where_expression.
8464 * include/experimental/bits/simd_scalar.h
8465 (_SimdImplScalar::_S_reduce): Make unused _BinaryOperation
8466 parameter const-ref to allow calling _S_reduce with an rvalue.
8467 * testsuite/experimental/simd/tests/reductions.cc: Add tests for
8468 hmin and hmax. Since the compiler statically determined that all
8469 tests pass, repeat the test after a call to make_value_unknown.
8471 2021-02-03 Matthias Kretz <kretz@kde.org>
8473 * testsuite/experimental/simd/tests/bits/verify.h (verify): Add
8474 instruction pointer data member. Ensure that the `if (m_failed)`
8475 branch is always inlined into the calling code. The body of the
8476 conditional can still be a function call. Move the get_ip call
8477 into the verify ctor to simplify the ctor calls.
8478 (COMPARE): Don't mention the use of all_of for reduction of a
8479 simd_mask. It only distracts from the real issue.
8481 2021-02-03 Matthias Kretz <kretz@kde.org>
8483 * testsuite/experimental/simd/driver.sh: Abstract reading test
8484 options into read_src_option function. Read skip, only,
8485 expensive, and xfail via read_src_option. Add timeout and
8486 timeout-factor options and adjust timeout variable accordingly.
8487 * testsuite/experimental/simd/tests/loadstore.cc: Set
8490 2021-02-03 Matthias Kretz <kretz@kde.org>
8492 * testsuite/experimental/simd/driver.sh: When handling the pipe
8493 to log (and on verbose to stdout) count the lines. If it exceeds
8494 1000 log the issue and exit 125, which is then handled as a
8497 2021-02-03 Matthias Kretz <kretz@kde.org>
8499 * testsuite/experimental/simd/tests/hypot3_fma.cc: Add skip:
8500 markup for long double on powerpc64*.
8502 2021-02-03 Matthias Kretz <kretz@kde.org>
8504 * include/experimental/bits/simd.h: Add __have_power10vec
8505 conditional on _ARCH_PWR10.
8506 * include/experimental/bits/simd_builtin.h: Forward declare
8507 _MaskImplPpc and use it as _MaskImpl when __ALTIVEC__ is
8509 (_MaskImplBuiltin::_S_some_of): Call _S_popcount from the
8510 _SuperImpl for optimizations and correctness.
8511 * include/experimental/bits/simd_ppc.h: Add _MaskImplPpc.
8512 (_MaskImplPpc::_S_popcount): Implement via vec_cntm for POWER10.
8513 Otherwise, for >=int use -vec_sums divided by a sizeof factor.
8514 For <int use -vec_sums(vec_sum4s(...)) to sum all mask entries.
8516 2021-02-03 Matthias Kretz <kretz@kde.org>
8518 * testsuite/experimental/simd/driver.sh: Remove executable on
8519 SIGINT. Process compiler and test executable output: In verbose
8520 mode print messages immediately, limited to 1000 lines and
8521 breaking long lines to below $COLUMNS (or 1024 if not set).
8522 Communicating the exit status of the compiler / test with the
8523 necessary pipe is done via a message through stdout/-in.
8525 2021-02-03 Matthias Kretz <kretz@kde.org>
8527 * testsuite/Makefile.am: Ensure .simd.summary is empty before
8528 collecting a new summary.
8529 * testsuite/Makefile.in: Regenerate.
8531 2021-02-03 Matthias Kretz <kretz@kde.org>
8533 * testsuite/experimental/simd/generate_makefile.sh: Use
8534 different variables internally than documented for user
8535 overrides. This makes internal append/prepend work as intended.
8537 2021-02-03 Matthias Kretz <kretz@kde.org>
8539 * testsuite/experimental/simd/driver.sh (verify_test): Print
8540 test output on run xfail. Do not repeat lines from the log that
8541 were already printed on stdout.
8542 (test_selector): Make the compiler flags pattern usable as a
8544 (toplevel): Trap on SIGINT and remove the log and sum files.
8545 Call timout with --foreground to quickly terminate on SIGINT.
8546 * testsuite/experimental/simd/generate_makefile.sh: Simplify run
8547 targets via target patterns. Default DRIVEROPTS to -v for run
8548 targets. Remove log and sum files after completion of the run
8549 target (so that it's always recompiled).
8550 Place help text into text file for reasonable 'make help'
8553 2021-02-03 Matthias Kretz <kretz@kde.org>
8555 * include/experimental/bits/simd.h: Remove unnecessary static
8556 assertion. Allow sizeof(8) integer __intrinsic_type to enable
8557 the necessary mask type.
8559 2021-02-03 Matthias Kretz <kretz@kde.org>
8561 * include/experimental/bits/simd.h: Let __intrinsic_type<long
8562 double, N> be valid if sizeof(long double) == sizeof(double) and
8563 use a __vector double as member type.
8565 2021-02-03 Matthias Kretz <kretz@kde.org>
8567 * include/experimental/bits/simd.h (__is_intrinsic_type): New
8568 internal type trait. Alias for __is_vector_type on x86.
8569 (_VectorTraitsImpl): Enable for __intrinsic_type in addition for
8571 (__intrin_bitcast): Allow casting to & from vector & intrinsic
8573 (__intrinsic_type): Explicitly specialize for NEON intrinsic
8576 2021-02-03 Matthias Kretz <kretz@kde.org>
8578 * testsuite/experimental/simd/driver.sh: Implement skip, only,
8579 expensive, and xfail markers. They can select on type, ABI tag
8580 subset number, target-triplet, and compiler flags.
8581 * testsuite/experimental/simd/generate_makefile.sh: The summary
8582 now includes lines for unexpected passes and expected failures.
8583 If the skip or only markers are only conditional on the type, do
8584 not generate rules for those types.
8585 * testsuite/experimental/simd/tests/abs.cc: Mark test expensive
8586 for ABI tag subsets 1-9.
8587 * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
8588 * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
8589 * testsuite/experimental/simd/tests/casts.cc: Ditto.
8590 * testsuite/experimental/simd/tests/generator.cc: Ditto.
8591 * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
8592 * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
8593 * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
8594 * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
8595 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
8596 * testsuite/experimental/simd/tests/mask_loadstore.cc: Ditto.
8597 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
8598 * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
8599 * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
8600 * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
8601 * testsuite/experimental/simd/tests/operators.cc: Ditto.
8602 * testsuite/experimental/simd/tests/reductions.cc: Ditto.
8603 * testsuite/experimental/simd/tests/simd.cc: Ditto.
8604 * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
8605 * testsuite/experimental/simd/tests/splits.cc: Ditto.
8606 * testsuite/experimental/simd/tests/where.cc: Ditto.
8607 * testsuite/experimental/simd/tests/fpclassify.cc: Ditto. In
8608 addition replace "test only floattypes" marker by unconditional
8609 "float|double|ldouble" only marker.
8610 * testsuite/experimental/simd/tests/frexp.cc: Ditto.
8611 * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
8612 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
8614 * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
8615 * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
8616 * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
8617 * testsuite/experimental/simd/tests/remqo.cc: Ditto.
8618 * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
8619 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
8620 * testsuite/experimental/simd/tests/sincos.cc: Ditto. In
8621 addition, xfail on run because the reference data is missing.
8623 2021-02-02 Jonathan Wakely <jwakely@redhat.com>
8625 * doc/xml/manual/status_cxx2011.xml: Remove stray table cell.
8626 * doc/xml/manual/status_cxx2014.xml: Likewise.
8627 * doc/xml/manual/status_cxx2017.xml: Likewise.
8628 * doc/html/manual/status.html: Regenerate.
8630 2021-02-01 François Dumont <fdumont@gcc.gnu.org>
8633 * include/bits/stl_deque.h (std::deque<>::operator-(iterator, iterator)):
8634 Return 0 if both iterators are value-initialized.
8635 * testsuite/23_containers/deque/70303.cc: New test.
8636 * testsuite/23_containers/vector/70303.cc: New test.
8638 2021-02-01 Jonathan Wakely <jwakely@redhat.com>
8640 * doc/xml/manual/status_cxx2011.xml: Update std::call_once
8642 * doc/xml/manual/status_cxx2014.xml: Likewise.
8643 * doc/xml/manual/status_cxx2017.xml: Likewise. Update
8644 std::from_chars and std::to_chars status. Fix formatting.
8645 * doc/html/manual/status.html: Regenerate.
8647 2021-01-28 Jonathan Wakely <jwakely@redhat.com>
8649 * include/experimental/bits/numeric_traits.h: Update copyright
8651 * include/experimental/bits/simd.h: Likewise.
8652 * include/experimental/bits/simd_builtin.h: Likewise.
8653 * include/experimental/bits/simd_converter.h: Likewise.
8654 * include/experimental/bits/simd_detail.h: Likewise.
8655 * include/experimental/bits/simd_fixed_size.h: Likewise.
8656 * include/experimental/bits/simd_math.h: Likewise.
8657 * include/experimental/bits/simd_neon.h: Likewise.
8658 * include/experimental/bits/simd_ppc.h: Likewise.
8659 * include/experimental/bits/simd_scalar.h: Likewise.
8660 * include/experimental/bits/simd_x86.h: Likewise.
8661 * include/experimental/bits/simd_x86_conversions.h: Likewise.
8662 * include/experimental/simd: Likewise.
8663 * testsuite/experimental/simd/*: Likewise.
8665 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
8667 * doc/xml/manual/status_cxx2017.xml: Replace invalid entity.
8668 * doc/html/*: Regenerate.
8670 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
8672 * testsuite/experimental/simd/generate_makefile.sh: Use printf
8673 instead of echo when printing escape characters.
8675 2021-01-27 Matthias Kretz <kretz@kde.org>
8677 * scripts/check_simd: New file. This script is called from the
8678 the check-simd target. It determines a set of compiler flags and
8679 simulator setups for calling generate_makefile.sh and passes the
8680 information back to the check-simd target, which recurses to the
8681 generated Makefiles.
8682 * scripts/create_testsuite_files: Remove files below simd/tests/
8683 from testsuite_files and place them in testsuite_files_simd.
8684 * testsuite/Makefile.am: Add testsuite_files_simd. Add
8686 * testsuite/Makefile.in: Regenerate.
8687 * testsuite/experimental/simd/driver.sh: New file. This script
8688 compiles and runs a given simd test, logging its output and
8689 status. It uses the timeout command to implement compile and
8691 * testsuite/experimental/simd/generate_makefile.sh: New file.
8692 This script generates a Makefile which uses driver.sh to compile
8693 and run the tests and collect the logs into a single log file.
8694 * testsuite/experimental/simd/tests/abs.cc: New file. Tests
8696 * testsuite/experimental/simd/tests/algorithms.cc: New file.
8697 Tests min/max(simd, simd).
8698 * testsuite/experimental/simd/tests/bits/conversions.h: New
8699 file. Contains functions to support tests involving conversions.
8700 * testsuite/experimental/simd/tests/bits/make_vec.h: New file.
8701 Support functions make_mask and make_vec.
8702 * testsuite/experimental/simd/tests/bits/mathreference.h: New
8703 file. Support functions to supply precomputed math function
8705 * testsuite/experimental/simd/tests/bits/metahelpers.h: New
8706 file. Support code for SFINAE testing.
8707 * testsuite/experimental/simd/tests/bits/simd_view.h: New file.
8708 * testsuite/experimental/simd/tests/bits/test_values.h: New
8709 file. Test functions to easily drive a test with simd objects
8710 initialized from a given list of values and a range of random
8712 * testsuite/experimental/simd/tests/bits/ulp.h: New file.
8713 Support code to determine the ULP distance of simd objects.
8714 * testsuite/experimental/simd/tests/bits/verify.h: New file.
8715 Test framework for COMPARE'ing simd objects and instantiating
8716 the test templates with value_type and ABI tag.
8717 * testsuite/experimental/simd/tests/broadcast.cc: New file. Test
8719 * testsuite/experimental/simd/tests/casts.cc: New file. Test
8721 * testsuite/experimental/simd/tests/fpclassify.cc: New file.
8722 Test floating-point classification functions.
8723 * testsuite/experimental/simd/tests/frexp.cc: New file. Test
8725 * testsuite/experimental/simd/tests/generator.cc: New file. Test
8726 simd generator constructor.
8727 * testsuite/experimental/simd/tests/hypot3_fma.cc: New file.
8728 Test 3-arg hypot(simd,simd,simd) and fma(simd,simd,sim).
8729 * testsuite/experimental/simd/tests/integer_operators.cc: New
8730 file. Test integer operators.
8731 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
8732 New file. Test ldexp(simd), scalbn(simd), scalbln(simd), and
8734 * testsuite/experimental/simd/tests/loadstore.cc: New file. Test
8735 (converting) simd loads and stores.
8736 * testsuite/experimental/simd/tests/logarithm.cc: New file. Test
8738 * testsuite/experimental/simd/tests/mask_broadcast.cc: New file.
8739 Test simd_mask broadcasts.
8740 * testsuite/experimental/simd/tests/mask_conversions.cc: New
8741 file. Test simd_mask conversions.
8742 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: New
8743 file. Test simd_mask implicit conversions.
8744 * testsuite/experimental/simd/tests/mask_loadstore.cc: New file.
8745 Test simd_mask loads and stores.
8746 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: New
8747 file. Test simd_mask operators convert as specified.
8748 * testsuite/experimental/simd/tests/mask_operators.cc: New file.
8749 Test simd_mask compares, subscripts, and negation.
8750 * testsuite/experimental/simd/tests/mask_reductions.cc: New
8751 file. Test simd_mask reductions.
8752 * testsuite/experimental/simd/tests/math_1arg.cc: New file. Test
8753 1-arg math functions on simd.
8754 * testsuite/experimental/simd/tests/math_2arg.cc: New file. Test
8755 2-arg math functions on simd.
8756 * testsuite/experimental/simd/tests/operator_cvt.cc: New file.
8757 Test implicit conversions on simd binary operators behave as
8759 * testsuite/experimental/simd/tests/operators.cc: New file. Test
8760 simd compares, subscripts, not, unary minus, plus, minus,
8761 multiplies, divides, increment, and decrement.
8762 * testsuite/experimental/simd/tests/reductions.cc: New file.
8764 * testsuite/experimental/simd/tests/remqo.cc: New file. Test
8766 * testsuite/experimental/simd/tests/simd.cc: New file. Basic
8767 sanity checks of simd types.
8768 * testsuite/experimental/simd/tests/sincos.cc: New file. Test
8769 sin(simd) and cos(simd).
8770 * testsuite/experimental/simd/tests/split_concat.cc: New file.
8771 Test split(simd) and concat(simd, simd).
8772 * testsuite/experimental/simd/tests/splits.cc: New file. Test
8774 * testsuite/experimental/simd/tests/trigonometric.cc: New file.
8775 Test remaining trigonometric functions on simd.
8776 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: New
8777 file. Test trunc(simd), ceil(simd), and floor(simd).
8778 * testsuite/experimental/simd/tests/where.cc: New file. Test
8779 masked operations using where.
8781 2021-01-27 Matthias Kretz <kretz@kde.org>
8783 * doc/xml/manual/status_cxx2017.xml: Add implementation status
8784 of the Parallelism TS 2. Document implementation-defined types
8786 * include/Makefile.am: Add new headers.
8787 * include/Makefile.in: Regenerate.
8788 * include/experimental/simd: New file. New header for
8790 * include/experimental/bits/numeric_traits.h: New file.
8791 Implementation of P1841R1 using internal naming. Addition of
8792 missing IEC559 functionality query.
8793 * include/experimental/bits/simd.h: New file. Definition of the
8794 public simd interfaces and general implementation helpers.
8795 * include/experimental/bits/simd_builtin.h: New file.
8796 Implementation of the _VecBuiltin simd_abi.
8797 * include/experimental/bits/simd_converter.h: New file. Generic
8799 * include/experimental/bits/simd_detail.h: New file. Internal
8800 macros for the simd implementation.
8801 * include/experimental/bits/simd_fixed_size.h: New file. Simd
8802 fixed_size ABI specific implementations.
8803 * include/experimental/bits/simd_math.h: New file. Math
8805 * include/experimental/bits/simd_neon.h: New file. Simd NEON
8806 specific implementations.
8807 * include/experimental/bits/simd_ppc.h: New file. Implement bit
8808 shifts to avoid invalid results for integral types smaller than
8810 * include/experimental/bits/simd_scalar.h: New file. Simd scalar
8811 ABI specific implementations.
8812 * include/experimental/bits/simd_x86.h: New file. Simd x86
8813 specific implementations.
8814 * include/experimental/bits/simd_x86_conversions.h: New file.
8815 x86 specific conversion optimizations. The conversion patterns
8816 work around missing conversion patterns in the compiler and
8817 should be removed as soon as PR85048 is resolved.
8818 * testsuite/experimental/simd/standard_abi_usable.cc: New file.
8819 Test that all (not all fixed_size<N>, though) standard simd and
8820 simd_mask types are usable.
8821 * testsuite/experimental/simd/standard_abi_usable_2.cc: New
8822 file. As above but with -ffast-math.
8823 * testsuite/libstdc++-dg/conformance.exp: Don't build simd tests
8824 from the standard test loop. Instead use
8825 check_vect_support_and_set_flags to build simd tests with the
8826 relevant machine flags.
8828 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
8831 * include/bits/string_view.tcc
8832 (basic_string_view::find(const CharT*, size_type, size_type)):
8835 2021-01-27 Paul Fee <paul.f.fee@gmail.com>
8837 * include/bits/basic_string.h (basic_string::contains): New
8839 * include/std/string_view (basic_string_view::contains):
8841 * include/std/version (__cpp_lib_string_contains): Define.
8842 * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
8843 Remove trailing whitespace.
8844 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
8846 * testsuite/21_strings/basic_string/operations/contains/char/1.cc: New test.
8847 * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc: New test.
8848 * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc: New test.
8849 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: New test.
8850 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc: New test.
8852 2021-01-21 Jonathan Wakely <jwakely@redhat.com>
8854 * src/c++17/Makefile.in: Regenerate.
8856 2021-01-20 David Edelsohn <dje.gcc@gmail.com>
8858 * config/os/aix/ctype_inline.h (bool ctype<char>:: is): Cast
8859 _OBJ_DATA subscript to unsigned char. Add _THREAD_SAFE access to
8861 (const char* ctype<char>:: is): Same.
8863 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
8866 * testsuite/20_util/unique_ptr/io/lwg2948.cc: Do not try to
8867 write to a wide character stream if wide character support is
8868 disabled in the library.
8870 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
8872 * testsuite/27_io/basic_stringstream/cons/char/1.cc: Use
8873 stringbuf not wstringbuf.
8875 2021-01-18 Jakub Jelinek <jakub@redhat.com>
8878 * src/c++11/Makefile.am (cxx11-ios_failure-lt.s, cxx11-ios_failure.s):
8879 Compile with -gno-as-loc-support.
8880 * src/c++11/Makefile.in: Regenerated.
8882 2021-01-16 H.J. Lu <hjl.tools@gmail.com>
8884 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
8885 Add -fcf-protection=none to -march=i486.
8887 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
8889 * testsuite/23_containers/deque/debug/98466.cc: Make it pre-C++11
8892 2021-01-14 Alexandre Oliva <oliva@adacore.com>
8894 * testsuite/30_threads/future/members/poll.cc: Calibrate
8897 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
8900 * include/bits/hashtable_policy.h (_Node_iterator_base()): Set _M_cur to nullptr.
8901 (_Node_iterator()): Make default.
8902 (_Node_const_iterator()): Make default.
8903 * include/debug/macros.h (__glibcxx_check_erae_range_after): Add _M_singular
8905 * include/debug/safe_iterator.h
8906 (_GLIBCXX_DEBUG_VERIFY_OPERANDS): Accept if both iterator are value initialized.
8907 * include/debug/safe_local_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
8909 * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range): Add
8910 _M_singular checks on input iterators.
8911 * src/c++11/debug.cc (_Safe_iterator_base::_M_can_compare): Remove _M_singular
8913 * testsuite/23_containers/deque/debug/98466.cc: New test.
8914 * testsuite/23_containers/unordered_map/debug/98466.cc: New test.
8916 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
8919 * include/bits/fs_path.h (__throw_conversion_error): New
8920 function to throw or abort on character conversion errors.
8921 (__wstr_from_utf8): Move definition after filesystem_error has
8922 been defined. Use __throw_conversion_error.
8923 (path::_S_convert<_EcharT>): Use __throw_conversion_error.
8924 (path::_S_str_convert<_CharT, _Traits, _Allocator>): Likewise.
8925 (path::u8string): Likewise.
8927 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
8929 * include/std/barrier: Update copyright years. Fix whitespace.
8930 * include/std/version: Fix whitespace.
8931 * testsuite/30_threads/barrier/1.cc: Update copyright years.
8932 * testsuite/30_threads/barrier/2.cc: Likewise.
8933 * testsuite/30_threads/barrier/arrive.cc: Likewise.
8934 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
8935 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
8936 * testsuite/30_threads/barrier/completion.cc: Likewise.
8938 2021-01-13 Jonathan Wakely <jwakely@redhat.com>
8940 * doc/doxygen/user.cfg.in (INPUT): Remove include/debug/array.
8942 2021-01-10 David Edelsohn <dje.gcc@gmail.com>
8945 * testsuite/ext/vstring/cons/moveable.cc: Suppress false positive
8947 * testsuite/ext/vstring/modifiers/assign/move_assign.cc: Same.
8949 2021-01-08 Olivier Hainque <hainque@adacore.com>
8951 * testsuite/20_util/bind/ref_neg.cc: Tweak the
8952 dg-prune-output regex for out-of-build-tree contexts.
8954 2021-01-07 Thomas Rodgers <trodgers@redhat.com>
8956 * doc/doxygen/user.cfg.in: Add new header.
8957 * include/Makefile.am (std_headers): likewise.
8958 * include/Makefile.in: Regenerate.
8959 * include/precompiled/stdc++.h: Add new header.
8960 * include/std/barrier: New file.
8961 * include/std/version: Add __cpp_lib_barrier feature test macro.
8962 * testsuite/30_threads/barrier/1.cc: New test.
8963 * testsuite/30_threads/barrier/2.cc: Likewise.
8964 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
8965 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
8966 * testsuite/30_threads/barrier/arrive.cc: Likewise.
8967 * testsuite/30_threads/barrier/completion.cc: Likewise.
8969 2021-01-07 Patrick Palka <ppalka@redhat.com>
8972 * testsuite/20_util/to_chars/long_double.cc: Use nexttowardl
8973 instead of the non-standard nextupl and nextdownl.
8975 2021-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
8977 * configure: Re-generate.
8979 2021-01-05 Ed Smith-Rowland <3dw4rd@verizon.net>
8981 * include/precompiled/stdc++.h: Add <source_location> to C++20 section.
8983 2021-01-01 Jakub Jelinek <jakub@redhat.com>
8985 * ChangeLog-2020: Rotate ChangeLog. New file.
8988 Copyright (C) 2021 Free Software Foundation, Inc.
8990 Copying and distribution of this file, with or without modification,
8991 are permitted in any medium without royalty provided the copyright
8992 notice and this notice are preserved.