1 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
4 * testsuite/18_support/numeric_limits/lowest.cc: Remove use of
6 * testsuite/18_support/numeric_limits/min_max.cc: Replace use of
7 _GLIBCXX_USE_WCHAR_T with checks for WCHAR_MIN and WCHAR_MAX.
8 * testsuite/20_util/from_chars/1_neg.cc: Remove use of
10 * testsuite/20_util/function_objects/searchers.cc: Likewise. Use
11 char_traits<wchar_t>::length instead of wcslen.
12 * testsuite/20_util/hash/requirements/explicit_instantiation.cc:
14 * testsuite/20_util/is_arithmetic/value.cc: Likewise.
15 * testsuite/20_util/is_compound/value.cc: Likewise.
16 * testsuite/20_util/is_floating_point/value.cc: Likewise.
17 * testsuite/20_util/is_fundamental/value.cc: Likewise.
18 * testsuite/20_util/is_integral/value.cc: Likewise.
19 * testsuite/20_util/is_signed/value.cc: Likewise.
20 * testsuite/20_util/is_unsigned/value.cc: Likewise.
21 * testsuite/20_util/is_void/value.cc: Likewise.
22 * testsuite/20_util/make_signed/requirements/typedefs-1.cc:
24 * testsuite/20_util/make_signed/requirements/typedefs-2.cc:
26 * testsuite/20_util/make_signed/requirements/typedefs-3.cc:
28 * testsuite/20_util/make_signed/requirements/typedefs-4.cc:
30 * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
32 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
34 * testsuite/20_util/make_unsigned/requirements/typedefs-3.cc:
36 * testsuite/20_util/to_chars/3.cc: Likewise.
37 * testsuite/20_util/type_identity/requirements/typedefs.cc:
39 * testsuite/21_strings/basic_string/hash/debug.cc: Likewise.
40 * testsuite/21_strings/basic_string/hash/hash.cc: Likewise.
41 * testsuite/21_strings/basic_string/literals/types-char8_t.cc:
43 * testsuite/21_strings/basic_string/literals/types.cc: Likewise.
44 * testsuite/21_strings/basic_string/literals/values-char8_t.cc:
46 * testsuite/21_strings/basic_string/literals/values.cc:
48 * testsuite/21_strings/basic_string/modifiers/64422.cc:
50 * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
52 * testsuite/21_strings/basic_string/requirements/citerators.cc:
54 * testsuite/21_strings/basic_string/requirements/typedefs.cc:
56 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
58 * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
60 * testsuite/21_strings/basic_string_view/literals/types.cc:
62 * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
64 * testsuite/21_strings/basic_string_view/literals/values.cc:
66 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
68 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
69 * testsuite/21_strings/char_traits/requirements/constexpr_functions.cc:
71 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
73 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
75 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Likewise.
76 * testsuite/25_algorithms/fill/4.cc: Likewise.
77 * testsuite/25_algorithms/fill_n/1.cc: Likewise.
78 * testsuite/experimental/functional/searchers.cc: Likewise. Use
79 char_traits<wchar_t>::length instead of wcslen.
80 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc:
82 * testsuite/experimental/string_view/literals/types-char8_t.cc:
84 * testsuite/experimental/string_view/literals/types.cc:
86 * testsuite/experimental/string_view/literals/values-char8_t.cc:
88 * testsuite/experimental/string_view/literals/values.cc:
90 * testsuite/experimental/string_view/range_access/wchar_t/1.cc:
92 * testsuite/experimental/string_view/requirements/typedefs.cc:
94 * testsuite/experimental/string_view/typedefs.cc: Likewise.
95 * testsuite/ext/vstring/range_access.cc: Likewise.
96 * testsuite/std/concepts/concepts.lang/concept.arithmetic/integral.cc:
98 * testsuite/std/concepts/concepts.lang/concept.arithmetic/signed_integral.cc:
100 * testsuite/std/concepts/concepts.lang/concept.arithmetic/unsigned_integral.cc:
102 * testsuite/tr1/4_metaprogramming/is_arithmetic/value.cc:
104 * testsuite/tr1/4_metaprogramming/is_compound/value.cc:
106 * testsuite/tr1/4_metaprogramming/is_floating_point/value.cc:
108 * testsuite/tr1/4_metaprogramming/is_fundamental/value.cc:
110 * testsuite/tr1/4_metaprogramming/is_integral/value.cc:
112 * testsuite/tr1/4_metaprogramming/is_signed/value.cc: Likewise.
113 * testsuite/tr1/4_metaprogramming/is_unsigned/value.cc:
115 * testsuite/tr1/4_metaprogramming/is_void/value.cc: Likewise.
116 * testsuite/tr1/6_containers/hash/24799.cc: Likewise.
118 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
121 * include/std/ostream (operator<<(basic_ostream<char, Tr>&, wchar_t))
122 (operator<<(basic_ostream<char, Tr>&, const wchar_t*)): Always
123 define as deleted. Do not check _GLIBCXX_USE_WCHAR_T.
125 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
128 * include/bits/locale_conv.h (wstring_convert, wbuffer_convert):
129 Define unconditionally. Do not check _GLIBCXX_USE_WCHAR_T.
131 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
134 * include/c_global/cstddef [!_GLIBCXX_USE_WCHAR_T]
135 (__byte_operand<wchar_t>): Define specialization.
136 * include/std/type_traits (__make_signed<wchar_t>)
137 (__make_unsigned<wchar_t>): Remove redundant check for
138 __WCHAR_TYPE__ being defined.
139 * include/tr1/type_traits [!_GLIBCXX_USE_WCHAR_T]
140 (__is_integral_helper<wchar_t>): Likewise.
142 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
145 * include/ext/rc_string_base.h [!_GLIBCXX_USE_WCHAR_T]
146 (__rc_string_base<wchar_t>): Define member function.
147 * include/ext/vstring.h [!_GLIBCXX_USE_WCHAR_T]
148 (hash<__gnu_cxx::__wvstring>): Define specialization.
149 * include/ext/vstring_fwd.h [!_GLIBCXX_USE_WCHAR_T] (__wvstring)
150 (__wsso_string, __wrc_string): Declare typedefs.
152 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
155 * include/bits/char_traits.h (char_traits<wchar_t>): Define
156 explicit specialization unconditionally.
157 * include/bits/basic_string.h (hash<wstring>): Define
158 unconditionally. Do not check _GLIBCXX_USE_WCHAR_T.
159 * include/bits/stringfwd.h (wstring): Likewise.
160 * include/debug/string (wstring): Likewise.
161 * include/experimental/string_view (experimental::wstring_view)
162 (hash<experimental::wstring_view>): Likewise.
163 * include/std/string (pmr::wstring, hash<pmr::wstring>):
165 * include/std/string_view (wstring_view, hash<wstring_view>):
168 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
170 * testsuite/27_io/basic_filebuf/close/81256.cc: Moved to...
171 * testsuite/27_io/basic_filebuf/close/wchar_t/81256.cc: ...here.
173 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
175 * testsuite/22_locale/conversions/buffer/1.cc: Check
176 _GLIBCXX_USE_WCHAR_T.
177 * testsuite/22_locale/conversions/buffer/3.cc: Likewise. Add
179 * testsuite/22_locale/conversions/string/1.cc: Check
180 _GLIBCXX_USE_WCHAR_T.
181 * testsuite/27_io/filesystem/path/generic/generic_string.cc:
183 * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
185 * testsuite/27_io/filesystem/path/native/alloc.cc: Likewise.
186 * testsuite/27_io/filesystem/path/native/string-char8_t.cc:
188 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
189 * testsuite/28_regex/algorithms/regex_match/extended/wstring_locale.cc:
191 * testsuite/experimental/filesystem/path/generic/generic_string.cc:
193 * testsuite/experimental/filesystem/path/native/alloc.cc:
195 * testsuite/experimental/filesystem/path/native/string-char8_t.cc:
197 * testsuite/experimental/filesystem/path/native/string.cc:
200 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
202 * testsuite/26_numerics/bit/bit.rotate/rotr.cc:
203 * testsuite/util/testsuite_common_types.h:
205 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
207 * testsuite/18_support/numeric_limits/40856.cc: Replace use of
209 * testsuite/18_support/numeric_limits/dr559.cc: Likewise.
210 * testsuite/18_support/numeric_limits/lowest.cc: Likewise.
211 * testsuite/18_support/numeric_limits/max_digits10.cc: Likewise.
212 * testsuite/20_util/is_floating_point/value.cc: Likewise.
213 * testsuite/20_util/is_integral/value.cc: Likewise.
214 * testsuite/20_util/is_signed/value.cc: Likewise.
215 * testsuite/20_util/is_unsigned/value.cc: Likewise.
216 * testsuite/20_util/make_signed/requirements/typedefs-1.cc:
218 * testsuite/20_util/make_signed/requirements/typedefs-2.cc:
220 * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
222 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
224 * testsuite/20_util/type_identity/requirements/typedefs.cc:
226 * testsuite/26_numerics/bit/bit.count/countl_one.cc: Likewise.
227 * testsuite/26_numerics/bit/bit.count/countl_zero.cc: Likewise.
228 * testsuite/26_numerics/bit/bit.count/countr_one.cc: Likewise.
229 * testsuite/26_numerics/bit/bit.count/countr_zero.cc: Likewise.
230 * testsuite/26_numerics/bit/bit.count/popcount.cc: Likewise.
231 * testsuite/26_numerics/bit/bit.pow.two/bit_ceil.cc: Likewise.
232 * testsuite/26_numerics/bit/bit.pow.two/bit_floor.cc: Likewise.
233 * testsuite/26_numerics/bit/bit.pow.two/bit_width.cc: Likewise.
234 * testsuite/26_numerics/bit/bit.pow.two/has_single_bit.cc:
236 * testsuite/26_numerics/bit/bit.rotate/rotl.cc: Likewise.
238 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
240 * include/bits/hashtable_policy.h (_Select1st): Replace use of
242 (_Select2nd): Remove.
243 (_NodeBuilder::_S_build): Use _NodeGenerator::__node_type
244 typedef instead of deducing it. Remove unnecessary piecewise
246 (_ReuseOrAllocNode): Make __node_type public.
247 (_Map_base): Adjust partial specialization to be able to extract
248 the mapped_type without using tuple_element.
249 (_Map_base::at): Define inline
250 * testsuite/23_containers/unordered_map/requirements/53339.cc:
252 * testsuite/23_containers/unordered_multimap/requirements/53339.cc:
255 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
257 * include/bits/hashtable.h: Move static assertion to destructor.
258 * include/bits/hashtable_policy.h: Deduce value type from node
259 type without instantiating it.
261 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
264 * src/c++11/limits.cc: Fail if __cpp_inline_variables is
267 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
270 * include/bits/ranges_algobase.h: Replace <iterator> with a
271 subset of the headers it includes.
273 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
275 * include/experimental/deque (erase, erase_if): Revert changes
276 to avoid debug mode overhead.
277 * include/experimental/map (erase, erase_if): Likewise.
278 * include/experimental/set (erase, erase_if): Likewise.
279 * include/experimental/unordered_map (erase, erase_if):
281 * include/experimental/unordered_set (erase, erase_if):
283 * include/experimental/vector (erase, erase_if): Likewise.
284 * include/std/deque (erase, erase_if): Likewise.
285 * include/std/map (erase, erase_if): Likewise.
286 * include/std/set (erase, erase_if): Likewise.
287 * include/std/unordered_map (erase, erase_if): Likewise.
288 * include/std/unordered_set (erase, erase_if): Likewise.
289 * include/std/vector (erase, erase_if): Likewise.
291 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
293 * include/std/chrono (__detail::__units_suffix_misc): New
295 (__detail::__units_suffix): Likewise.
296 (chrono::operator<<(basic_ostream&, const duration&)): Define.
297 * testsuite/20_util/duration/io.cc: New test.
299 2021-10-07 Jonathan Wakely <jwakely@redhat.com>
301 * include/Makefile.am: Add new header.
302 * include/Makefile.in: Regenerate.
303 * include/std/chrono (duration, time_point, system_clock)
304 (steady_clock, high_resolution_clock, chrono_literals, sys_time)
305 (file_clock, file_time): Move to ...
306 * include/bits/chrono.h: New file.
307 * include/bits/atomic_futex.h: Include new header instead of
309 * include/bits/atomic_timed_wait.h: Likewise.
310 * include/bits/fs_fwd.h: Likewise.
311 * include/bits/semaphore_base.h: Likewise.
312 * include/bits/this_thread_sleep.h: Likewise.
313 * include/bits/unique_lock.h: Likewise.
314 * include/experimental/bits/fs_fwd.h: Likewise.
315 * include/experimental/chrono: Likewise.
316 * include/experimental/io_context: Likewise.
317 * include/experimental/netfwd: Likewise.
318 * include/experimental/timer: Likewise.
319 * include/std/condition_variable: Likewise.
320 * include/std/mutex: Likewise.
321 * include/std/shared_mutex: Likewise.
323 2021-10-07 Jonathan Wakely <jwakely@redhat.com>
326 * include/bits/atomic_wait.h (__waiter_pool_base:_S_align):
327 Hardcode to 64 instead of using non-constant constant.
329 2021-10-07 Jonathan Wakely <jwakely@redhat.com>
331 * include/bits/erase_if.h (__erase_nodes_if): Remove redundant
333 * include/std/string (erase, erase_if): Likewise.
334 * include/std/deque (erase, erase_if): Access non-debug
336 * include/std/map (erase, erase_if): Likewise.
337 * include/std/set (erase, erase_if): Likewise.
338 * include/std/unordered_map (erase, erase_if): Likewise.
339 * include/std/unordered_set (erase, erase_if): Likewise.
340 * include/std/vector (erase, erase_if): Likewise.
341 * include/experimental/deque (erase, erase_if): Likewise.
342 * include/experimental/map (erase, erase_if): Likewise.
343 * include/experimental/set (erase, erase_if): Likewise.
344 * include/experimental/unordered_map (erase, erase_if):
346 * include/experimental/unordered_set (erase, erase_if):
348 * include/experimental/vector (erase, erase_if): Likewise.
350 2021-10-06 Jonathan Wakely <jwakely@redhat.com>
352 * include/Makefile.am: Add new headers.
353 * include/Makefile.in: Regenerate.
354 * include/std/functional: Include <bits/move_only_function.h>.
355 * include/std/version (__cpp_lib_move_only_function): Define.
356 * include/bits/mofunc_impl.h: New file.
357 * include/bits/move_only_function.h: New file.
358 * testsuite/20_util/move_only_function/call.cc: New test.
359 * testsuite/20_util/move_only_function/cons.cc: New test.
360 * testsuite/20_util/move_only_function/move.cc: New test.
361 * testsuite/20_util/move_only_function/version.cc: New test.
363 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
365 * testsuite/21_strings/basic_string_view/requirements/trivially_copyable.cc:
367 * testsuite/23_containers/span/trivially_copyable.cc: New test.
369 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
371 * include/bits/utility.h (__is_in_place_type_v): Define
372 variable template to detect in_place_type_t specializations.
373 (__is_in_place_type): Replace class template with alias
374 template using __is_in_place_type_v.
375 * include/std/any (any(T&&)): Check __is_in_place_type first and
376 avoid instantiating is_copy_constructible unnecessarily.
378 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
380 * testsuite/20_util/integer_comparisons/greater.cc: New test.
382 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
384 * testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc:
385 Check result matches non-volatile pointer.
387 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
390 * testsuite/20_util/is_trivially_constructible/value.cc: Adjust
391 expected value for C++20.
393 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
395 * include/bits/std_function.h (_Any_data::_M_access): Add
397 (_Function_base::_Base_manager::_M_get_pointer): Likewise.
398 (_Function_base::_Base_manager::_M_not_empty_function):
401 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
403 * include/std/ostream (operator<<(const volatile void*)):
404 Add new overload, as per P1147R1.
405 * testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc:
408 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
410 * include/bits/stl_queue.h
411 (__cpp_lib_adaptor_iterator_pair_constructor): Set to correct
413 * include/bits/stl_stack.h
414 (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
415 * include/std/version
416 (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
417 * testsuite/23_containers/queue/cons_from_iters.cc: Update
419 * testsuite/23_containers/stack/cons_from_iters.cc: Likewise.
421 2021-10-04 Jonathan Wakely <jwakely@redhat.com>
423 * include/bits/forward_list.h (forward_list): Use non-deduced
424 context for allocator parameter of allocator-extended copy and
426 * include/bits/stl_bvector.h (vector<bool>): Likewise.
427 * include/bits/stl_deque.h (deque): Likewise.
428 * include/bits/stl_list.h (list): Likewise.
429 * include/bits/stl_map.h (map): Likewise.
430 * include/bits/stl_multimap.h (multimap): Likewise.
431 * include/bits/stl_multiset.h (multiset): Likewise.
432 * include/bits/stl_set.h (set): Likewise.
433 * include/bits/stl_vector.h (vector): Likewise.
434 * include/bits/stl_queue.h (queue, priority_queue): Do not
435 constrain Allocator template parameter of deduction guides that
436 have a Container parameter.
437 * include/bits/stl_stack.h (stack): Likewise.
438 * include/debug/deque (__gnu_debug::deque): Use non-deduced
439 context for allocator parameter of allocator-extended copy and
441 * include/debug/list (__gnu_debug::list): Likewise.
442 * include/debug/map.h (__gnu_debug::map): Likewise.
443 * include/debug/multimap.h (__gnu_debug::multimap): Likewise.
444 * include/debug/multiset.h (__gnu_debug::multiset): Likewise.
445 * include/debug/set.h (__gnu_debug::set): Likewise.
446 * include/debug/vector (__gnu_debug::vector): Likewise.
447 * testsuite/23_containers/deque/cons/deduction.cc: Test class
448 template argument deduction with non-deduced allocator
450 * testsuite/23_containers/forward_list/cons/deduction.cc:
452 * testsuite/23_containers/list/cons/deduction.cc: Likewise.
453 * testsuite/23_containers/map/cons/deduction.cc: Likewise.
454 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
455 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
456 * testsuite/23_containers/priority_queue/deduction.cc: Likewise.
457 * testsuite/23_containers/queue/deduction.cc: Likewise.
458 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
459 * testsuite/23_containers/stack/deduction.cc: Likewise.
460 * testsuite/23_containers/unordered_map/cons/deduction.cc:
462 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
464 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
466 * testsuite/23_containers/unordered_set/cons/deduction.cc:
468 * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
470 2021-10-04 Jonathan Wakely <jwakely@redhat.com>
472 * include/std/variant (__detail::__variant::__as): Add missing
473 noexcept to first overload.
475 2021-10-04 Jonathan Wakely <jwakely@redhat.com>
477 * include/bits/basic_string.h (basic_string(nullptr_t)): Define
479 (operator=(nullptr_t)): Likewise.
480 * include/bits/cow_string.h (basic_string(nullptr_t)): Likewise.
481 (operator=(nullptr_t)): Likewise.
482 * include/std/string_view (basic_string_view(nullptr_t)):
484 * testsuite/21_strings/basic_string/cons/char/nullptr.cc: New test.
485 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
486 Change dg-warning to dg-error.
487 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
490 2021-10-02 Jonathan Wakely <jwakely@redhat.com>
492 * src/c++17/fs_ops.cc (create_directory): Fix typo in enum name.
493 * src/filesystem/ops-common.h (__last_system_error): Add
494 explicit cast to avoid narrowing conversion.
495 (do_space): Fix type in function name.
497 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
500 * include/Makefile.am (c++config.h): Define
501 _GLIBCXX_VERBOSE_ASSERT based on configure output.
502 * include/Makefile.in: Regenerate.
503 * include/bits/c++config: Fix condition for verbose assertions.
505 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
508 * include/bits/erase_if.h (__erase_nodes_if): Use __niter_base to
509 unwrap debug iterators.
510 * include/bits/refwrap.h: Do not error if included in C++03.
511 * include/bits/stl_algo.h (__remove_if): Move to ...
512 * include/bits/stl_algobase.h (__remove_if): ... here.
513 * include/std/deque (erase, erase_if): Use __remove_if instead of
514 remove and remove_if.
515 * include/std/string (erase, erase_if): Likewise.
516 * include/std/vector (erase, erase_if): Likewise.
518 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
521 * include/bits/list.tcc (list::sort()): Use _Scratch_list
522 objects for splicing and merging.
523 (list::sort(StrictWeakOrdering)): Likewise.
524 * include/bits/stl_list.h (__detail::_Scratch_list): New type.
525 * src/c++98/list.cc (_List_node_base::_M_transfer): Add
526 assertion for --enable-libstdcxx-debug library.
527 * testsuite/23_containers/list/operations/66742.cc: New test.
529 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
532 * include/std/thread (__pmf_expects_stop_token): New variable
533 template to detect a pointer to member function that needs a
534 stop_token to be added to the arguments.
535 (jthread::__S_create): Use __pmf_expects_stop_token.
536 (jthread::__S_create_pmf): New function.
537 * testsuite/30_threads/jthread/100612.cc: New test.
539 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
541 * include/bits/stl_queue.h
542 (__cpp_lib_adaptor_iterator_pair_constructor): Define for C++23, as
544 (queue(InputIterator, InputIterator)): Likewise.
545 (queue(InputIterator, InputIterator, const Alloc&)): Likewise.
546 * include/bits/stl_stack.h
547 (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
548 (stack(InputIterator, InputIterator)): Likewise.
549 (stack(InputIterator, InputIterator, const Alloc&)): Likewise.
550 * include/std/version (__cpp_lib_adaptor_iterator_pair_constructor):
552 * testsuite/23_containers/queue/cons_from_iters.cc: New test.
553 * testsuite/23_containers/stack/cons_from_iters.cc: New test.
555 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
557 * include/bits/stl_queue.h (priority_queue): Add
558 allocator-extended overloads for constructors taking iterator.
559 * testsuite/23_containers/priority_queue/lwg3506.cc: New test.
561 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
563 * include/bits/stl_queue.h (priority_queue): Construct sequence
564 from iterators when no sequence argument is present (LWG 3529).
565 * testsuite/23_containers/priority_queue/lwg3529.cc: New test.
567 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
569 * include/bits/stl_queue.h (priority_queue): Constrain
570 constructors with InputIterator parameters (LWG 3522).
571 * testsuite/23_containers/priority_queue/lwg3522.cc: New test.
573 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
575 * include/bits/ranges_base.h (ranges::distance): Split overload
577 * testsuite/24_iterators/range_operations/lwg3392.cc: New test.
579 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
581 * testsuite/30_threads/thread/cons/3.cc: Remove derivation from
583 * testsuite/30_threads/thread/cons/4.cc: Likewise.
584 * testsuite/30_threads/thread/cons/5.cc: Likewise.
586 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
588 * testsuite/ext/pb_ds/example/basic_multimap.cc: Remove
589 unnecesary derivation from std::unary_function.
590 * testsuite/ext/pb_ds/example/erase_if.cc: Likewise.
591 * testsuite/ext/pb_ds/example/hash_illegal_resize.cc: Likewise.
592 * testsuite/ext/pb_ds/example/hash_initial_size.cc: Likewise.
593 * testsuite/ext/pb_ds/example/hash_load_set_change.cc: Likewise.
594 * testsuite/ext/pb_ds/example/hash_mod.cc: Likewise.
595 * testsuite/ext/pb_ds/example/hash_resize.cc: Likewise.
596 * testsuite/ext/pb_ds/example/hash_shift_mask.cc: Likewise.
597 * testsuite/ext/pb_ds/example/priority_queue_dijkstra.cc:
599 * testsuite/ext/pb_ds/example/ranged_hash.cc: Likewise.
600 * testsuite/ext/pb_ds/example/store_hash.cc: Likewise.
602 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
604 * src/c++11/functexcept.cc (__throw_out_of_range_fmt): Do not
605 expand the format string for freestanding, or non-vebose, or if
606 we're just going to abort anyway.
607 * src/c++11/snprintf_lite.cc: Remove unused header and
610 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
612 * include/std/variant (__do_visit): Use variant_npos instead of
613 literal -1 that requires a narrowing conversion.
615 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
618 * src/filesystem/ops-common.h (__unsupported): New function to
619 return a suitable error code for missing functionality.
620 (posix::off_t): New typedef.
621 (posix::*): Set errno to ENOSYS instead of ENOTSUP for no-op
622 fallback implementations.
623 (do_copy_file): Replace uses of errc::not_supported.
624 * src/c++17/fs_ops.cc (fs::copy, fs::copy_file, create_dir)
625 (fs::create_directory, fs::create_directory_symlink)
626 (fs::create_hard_link, fs::create_symlink, fs::current_path)
627 (fs::equivalent, do_stat, fs::file_size, fs::hard_link_count)
628 (fs::last_write_time, fs::permissions, fs::read_symlink):
629 Replace uses of errc::not_supported.
630 (fs::resize_file): Qualify off_t.
631 * src/filesystem/ops.cc (fs::copy, fs::copy_file, create_dir)
632 (fs::create_directory, fs::create_directory_symlink)
633 (fs::create_hard_link, fs::create_symlink, fs::current_path)
634 (fs::equivalent, do_stat, fs::file_size, fs::last_write_time)
635 (fs::permissions, fs::read_symlink, fs::system_complete):
636 Replace uses of errc::not_supported.
637 (fs::resize_file): Qualify off_t and enable unconditionally.
638 * testsuite/19_diagnostics/system_error/cons-1.cc: Likewise.
640 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
642 * src/filesystem/ops-common.h (last_error): New helper function.
643 (filesystem::do_space): Use last_error().
644 * src/c++17/fs_ops.cc (fs::absolute, fs::create_hard_link)
645 (fs::equivalent, fs::remove, fs::temp_directory_path): Use
647 * src/filesystem/ops.cc (fs::create_hard_link)
648 (fs::remove, fs::temp_directory_path): Likewise.
650 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
652 * include/std/type_traits (__conditional): New class template
653 for internal uses of std::conditional.
654 (__conditional_t): New alias template to replace conditional_t.
655 (__and_, __or_, __result_of_memfun, __result_of_memobj): Use
656 __conditional_t instead of conditional::type.
657 * include/bits/atomic_base.h (__atomic_impl::_Diff): Likewise.
658 * include/bits/hashtable.h (_Hashtable): Likewise.
659 * include/bits/hashtable_policy.h (_Node_iterator, _Insert_base)
660 (_Local_iterator): Likewise. Replace typedefs with
662 * include/bits/move.h (move_if_noexcept): Use __conditional_t.
663 * include/bits/parse_numbers.h (_Select_int_base): Likewise.
664 * include/bits/ptr_traits.h (__make_not_void): Likewise.
665 * include/bits/ranges_algobase.h (__copy_or_move_backward)
666 (__copy_or_move): Likewise.
667 * include/bits/ranges_base.h (borrowed_iterator_t): Likewise.
668 * include/bits/ranges_util.h (borrowed_subrange_t): Likewise.
669 * include/bits/regex_compiler.h (_BracketMatcher): Use
670 __conditional_t. Replace typedefs with using-declarations.
671 * include/bits/shared_ptr_base.h (__shared_count): Use
673 * include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
675 * include/bits/stl_iterator.h (__detail::__clamp_iter_cat)
676 (reverse_iterator::iterator_concept)
677 (__make_move_if_noexcept_iterator)
678 (iterator_traits<common_iterator<_It, _Sent>>)
679 (iterator_traits<counted_iterator<_It>>): Likewise.
680 * include/bits/stl_pair.h (_PCC, pair::operator=): Likewise.
681 * include/bits/stl_tree.h (_Rb_tree::insert_return_type)
682 (_Rb_tree::_M_clone_node): Likewise.
683 * include/bits/unique_ptr.h (unique_ptr(unique_ptr<U,E>&&)):
685 * include/bits/uses_allocator.h (__uses_alloc): Likewise.
686 (__is_uses_allocator_predicate): Likewise.
687 * include/debug/functions.h (__foreign_iterator_aux2): Likewise.
688 * include/experimental/any (any::_Manager, __any_caster):
690 * include/experimental/executor (async_completion): Likewise.
691 * include/experimental/functional (__boyer_moore_base_t):
693 * include/std/any (any::_Manager): Likewise.
694 * include/std/functional (__boyer_moore_base_t): Likewise.
695 * include/std/ranges (borrowed_iterator_t)
696 (borrowed_subrange_t, __detail::__maybe_present_t)
697 (__detail::__maybe_const_t, split_view): Likewise.
698 * include/std/tuple (__empty_not_final, tuple::operator=):
700 * include/std/variant (__detail::__variant::__get_t): Likewise.
702 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
705 * include/std/variant (__do_visit): Use a switch when we have a
706 single variant with a small number of alternatives.
708 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
711 * include/std/variant (__cpp_lib_variant): Update value.
712 (__detail::__variant::__as): New helpers implementing the
713 as-variant exposition-only function templates.
714 (visit, visit<R>): Use __as to upcast the variant parameters.
715 * include/std/version (__cpp_lib_variant): Update value.
716 * testsuite/20_util/variant/visit_inherited.cc: New test.
718 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
720 * include/bits/stl_iterator.h (__normal_iterator): Simplify
721 converting constructor and do not require _Container::pointer.
723 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
725 * include/bits/cow_string.h [_GLIBCXX_FULLY_DYNAMIC_STRING]
726 (basic_string(basic_string&&)): Add noexcept and avoid
727 allocation, by sharing rep with the rvalue string.
729 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
731 * include/bits/stl_iterator.h (common_iterator::__arrow_proxy)
732 (common_iterator::__postfix_proxy): Add noexcept.
734 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
737 * include/bits/stl_iterator.h (reverse_iterator): Use
738 conditional noexcept on constructors and assignment operators.
739 * testsuite/24_iterators/reverse_iterator/noexcept.cc: New test.
741 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
744 * include/bits/vector.tcc (vector<bool>::_M_shrink_to_fit()):
745 When size() is zero just deallocate and reset.
747 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
750 * include/bits/stl_algo.h (clamp): Use std::min and std::max.
752 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
754 * include/bits/regex.h (basic_regex::multiline): Define for
755 non-strict C++11 and C++14 modes.
756 * include/bits/regex_constants.h (regex_constants::multiline):
757 Add _GLIBCXX_RESOLVE_LIB_DEFECTS comment.
759 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
761 * testsuite/25_algorithms/is_permutation/2.cc: Include <iterator>.
763 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
765 * include/bits/stream_iterator.h (istream_iterator): Add
766 noexcept to constructors and non-throwing member functions and
768 (ostream_iterator): Likewise.
770 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
772 * include/bits/boost_concept_check.h (_Is_vector_bool_iterator):
773 New trait to identify vector<bool> iterators, including debug
775 (_ForwardIteratorReferenceConcept): Add default template
776 argument using _Is_vector_bool_iterator and use it in partial
777 specialization for the vector<bool> cases.
778 (_Mutable_ForwardIteratorReferenceConcept): Likewise.
779 * testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error
782 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
784 * include/bits/list.tcc (list::merge): Remove call to size() and
785 try-catch block. Use _Finalize_merge instead.
786 * include/bits/stl_list.h (list::_Finalize_merge): New
787 scope guard type to update _M_size members after a merge.
789 2021-09-30 Jonathan Wakely <jwakely@redhat.com>
791 * include/bits/regex.h (basic_regex::multiline): Fix #if
794 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
796 * include/bits/regex.h (basic_regex::multiline): Define constant
798 * include/bits/regex_constants.h (regex_constants::multiline):
799 Define constant for C++17.
800 (regex_constants::__multiline): Define duplicate constant for
801 internal use in C++11 and C++14.
802 * include/bits/regex_executor.h (_Executor::_M_match_multiline()):
804 (_Executor::_M_is_line_terminator(_CharT)): New member function.
805 (_Executor::_M_at_begin(), _Executor::_M_at_end()): Use new
806 member functions to support multiline matches.
807 * testsuite/28_regex/algorithms/regex_match/multiline.cc: New test.
809 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
811 * include/bits/regex_compiler.h (_Compiler::_S_validate): New
813 * include/bits/regex_compiler.tcc (_Compiler::_Compiler): Use
814 _S_validate to check flags.
815 * include/bits/regex_error.h (_S_grammar): New error code for
817 * testsuite/28_regex/basic_regex/ctors/grammar.cc: New test.
819 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
822 * include/bits/regex_error.h (regex_constants::_S_null): New
823 error code for internal use.
824 * include/bits/regex_scanner.tcc (_Scanner::_M_scan_normal()):
825 Check for null character.
826 * testsuite/28_regex/basic_regex/84110.cc: New test.
828 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
830 * include/bits/regex.h (__detail::__is_contiguous_iter): Move
831 here from <bits/regex_compiler.h>.
832 (basic_regex::_M_compile): New function to compile an NFA from
833 a regular expression string.
834 (basic_regex::basic_regex): Use _M_compile instead of delegating
835 to other constructors.
836 (basic_regex::operator=(const basic_regex&)): Define as
838 (basic_regex::operator=(initializer_list<C>)): Use _M_compile.
839 (basic_regex::assign(const basic_regex&)): Use copy assignment.
840 (basic_regex::assign(basic_regex&&)): Use move assignment.
841 (basic_regex::assign(const C*, flag_type)): Use _M_compile
842 instead of constructing a temporary string.
843 (basic_regex::assign(const C*, size_t, flag_type)): Likewise.
844 (basic_regex::assign(const basic_string<C,T,A>&, flag_type)):
845 Use _M_compile instead of constructing a temporary basic_regex.
846 (basic_regex::assign(InputIter, InputIter, flag_type)): Avoid
847 constructing a temporary string for contiguous iterators of the
849 * include/bits/regex_compiler.h (__is_contiguous_iter): Move to
851 (__enable_if_contiguous_iter, __disable_if_contiguous_iter)
852 (__compile_nfa): Remove.
853 * testsuite/28_regex/basic_regex/assign/exception_safety.cc: New
855 * testsuite/28_regex/basic_regex/ctors/char/other.cc: New test.
857 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
859 * include/bits/atomic_timed_wait.h (__platform_wait_until_impl):
860 Return false for ETIMEDOUT and true otherwise.
862 2021-09-28 François Dumont <fdumont@gcc.gnu.org>
864 * testsuite/20_util/default_delete/48631_neg.cc: Adapt dg-prune-output message
865 to also match message with '__8' in it.
867 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
869 * include/bits/regex_automaton.h (_NFA_base::_SizeT): Remove.
870 * include/bits/regex_compiler.h (_Compiler::_IterT): Remove.
871 * include/bits/regex_compiler.tcc: Likewise.
872 * include/bits/regex_scanner.h (_Scanner::_IterT): Remove.
873 * include/bits/regex_scanner.tcc: Likewise.
875 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
877 * include/bits/regex_compiler.tcc: Add line break in empty while
879 * include/bits/regex_executor.tcc: Avoid unused parameter
882 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
884 * include/bits/regex.h (basic_regex, swap): Add noexcept to
885 non-throwing functions.
886 * include/bits/regex_automaton.h (_State_base, _State)
887 (_NFA_base): Likewise.
888 * include/bits/regex_compiler.h (_Compiler): Likewise.
889 * include/bits/regex_error.h (regex_error::code()): Likewise.
890 * include/bits/regex_scanner.h (_Scanner): Likewise.
892 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
894 * include/bits/atomic_wait.h (_GLIBCXX_HAVE_PLATFORM_WAIT):
895 Define before first attempt to check it.
897 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
899 * testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1.cc:
900 Do not check non-default constructible sequences when
901 _GLIBCXX_CONCEPT_CHECKS is defined.
902 * testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1_c++98.cc:
904 * testsuite/23_containers/queue/requirements/explicit_instantiation/1.cc:
906 * testsuite/23_containers/queue/requirements/explicit_instantiation/1_c++98.cc:
908 * testsuite/23_containers/stack/requirements/explicit_instantiation/1.cc:
910 * testsuite/23_containers/stack/requirements/explicit_instantiation/1_c++98.cc:
913 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
915 * testsuite/23_containers/deque/requirements/explicit_instantiation/3.cc:
916 Do not test implicit allocator rebinding when _GLIBCXX_CONCEPT_CHECKS
918 * testsuite/23_containers/forward_list/requirements/explicit_instantiation/3.cc:
920 * testsuite/23_containers/list/requirements/explicit_instantiation/3.cc:
922 * testsuite/23_containers/list/requirements/explicit_instantiation/5.cc:
924 * testsuite/23_containers/map/requirements/explicit_instantiation/3.cc:
926 * testsuite/23_containers/map/requirements/explicit_instantiation/5.cc:
928 * testsuite/23_containers/multimap/requirements/explicit_instantiation/3.cc:
930 * testsuite/23_containers/multimap/requirements/explicit_instantiation/5.cc:
932 * testsuite/23_containers/multiset/requirements/explicit_instantiation/3.cc:
934 * testsuite/23_containers/multiset/requirements/explicit_instantiation/5.cc:
936 * testsuite/23_containers/set/requirements/explicit_instantiation/3.cc:
938 * testsuite/23_containers/set/requirements/explicit_instantiation/5.cc:
940 * testsuite/23_containers/unordered_map/requirements/explicit_instantiation/3.cc:
942 * testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/3.cc:
944 * testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/3.cc:
946 * testsuite/23_containers/unordered_set/requirements/explicit_instantiation/3.cc:
948 * testsuite/23_containers/vector/ext_pointer/explicit_instantiation/3.cc:
950 * testsuite/23_containers/vector/requirements/explicit_instantiation/3.cc:
953 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
955 * include/bits/boost_concept_check.h (_ForwardIteratorConcept)
956 (_BidirectionalIteratorConcept, _RandomAccessIteratorConcept):
957 Check result types of iterator operations.
958 (_Mutable_ForwardIteratorConcept): Check that iterator's
959 reference type is a reference to its value type.
960 (_Mutable_BidirectionalIteratorConcept): Do not require the
961 value type to be assignable.
962 (_Mutable_RandomAccessIteratorConcept): Likewise.
963 * testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error
966 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
968 * testsuite/25_algorithms/copy/34595.cc: Add missing operation
969 for type used as an iterator.
970 * testsuite/25_algorithms/unique_copy/check_type.cc: Likewise.
972 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
974 * testsuite/20_util/is_nothrow_swappable/value.h: Use custom
975 comparison function for priority_queue of type with no
976 relational operators.
977 * testsuite/20_util/is_swappable/value.h: Likewise.
978 * testsuite/24_iterators/output/concept.cc: Add operator< to
981 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
983 * include/bits/boost_concept_check.h (_OutputIteratorConcept):
984 Use a function to preserve value category of the type.
985 * include/bits/stl_algobase.h (copy, move, fill_n): Use a
986 reference as the second argument for _OutputIteratorConcept.
987 (copy_backward, move_backward): Use _OutputIteratorConcept
988 instead of _ConvertibleConcept.
990 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
992 * include/bits/stl_iterator.h (pointer_traits): Define partial
993 specialization for __normal_iterator.
994 * testsuite/24_iterators/normal_iterator/to_address.cc: New test.
996 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
998 * include/bits/move.h (forward(remove_reference_t<T>&&)):
999 Improve text of static_assert.
1000 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
1001 * testsuite/20_util/forward/f_neg.cc: Likewise.
1003 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1006 * include/bits/fs_path.h (path::begin, path::end): Add noexcept
1007 to declarations, to match definitions.
1009 2021-09-24 Jonathan Wakely <jwakely@redhat.com>
1011 * include/bits/range_access.h (cbegin, cend): Remove redundant
1014 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
1016 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
1017 Remove dg-error lines for C++20-only errors.
1019 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
1021 * testsuite/19_diagnostics/headers/system_error/93151.cc:
1024 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
1026 * src/c++11/system_error.cc (system_error_category) [_WIN32]:
1027 Map Windows error codes to generic POSIX error numbers. Use
1028 FormatMessage instead of strerror.
1029 * testsuite/19_diagnostics/error_category/system_category.cc:
1030 Adjust for new behaviour on Windows.
1032 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
1034 * src/c++11/system_error.cc (generic_error_category): Define
1035 class and virtual functions as 'final'.
1036 (generic_error_category::equivalent(int, const error_condition&)):
1038 (system_error_category): Define class and virtual functions as
1040 (system_error_category::equivalent(int, const error_condition&)):
1042 (generic_category_instance, system_category_instance): Use
1043 constinit union to make the objects immortal.
1045 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
1048 * src/c++11/system_error.cc
1049 (system_error_category::default_error_condition): Add 0 to
1051 * testsuite/19_diagnostics/error_category/102425.cc: New test.
1053 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
1055 * include/bits/fs_path.h (path::iterator): Add noexcept to all
1056 member functions and friend functions.
1057 (distance): Add noexcept.
1058 (advance): Add noexcept and inline.
1059 * include/experimental/bits/fs_path.h (path::iterator):
1060 Add noexcept to all member functions.
1062 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
1065 * include/std/tuple (_Tuple_impl): Add constexpr to constructor
1066 missed in previous patch.
1067 * testsuite/20_util/tuple/cons/102270.C: Moved to...
1068 * testsuite/20_util/tuple/cons/102270.cc: ...here.
1069 * testsuite/util/testsuite_allocator.h (SimpleAllocator): Add
1070 constexpr to constructor so it can be used for C++20 tests.
1072 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
1074 * testsuite/26_numerics/valarray/dr630-3.C: Moved to...
1075 * testsuite/26_numerics/valarray/dr630-3.cc: ...here.
1076 * testsuite/27_io/basic_iostream/cons/16251.C: Moved to...
1077 * testsuite/27_io/basic_iostream/cons/16251.cc: ...here.
1079 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1081 * src/Makefile.am (stamp-debug): Add all Makefiles as
1083 * src/Makefile.in: Regenerate.
1085 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1087 * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Increase
1088 timeout factor to 3.
1089 * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
1091 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1093 * doc/xml/manual/using.xml: Generalize to apply to more than
1095 * doc/html/manual/using_macros.html: Regenerate.
1097 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1099 * include/std/optional (nullptr_t): Make constructor noexcept.
1101 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1103 * include/bits/fs_path.h (advance): Remove non-deducible
1106 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1109 * include/std/tuple (_Head_base, _Tuple_impl): Add
1110 _GLIBCXX20_CONSTEXPR to allocator-extended constructors.
1111 (tuple<>::swap(tuple&)): Add _GLIBCXX20_CONSTEXPR.
1112 * testsuite/20_util/tuple/cons/102270.C: New test.
1114 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1117 * include/std/span (span(Range&&)): Add constraint to deduction
1120 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1122 * src/c++98/Makefile.am: Use CXXCOMPILE not LTCXXCOMPILE.
1123 * src/c++98/Makefile.in: Regenerate.
1125 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1127 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
1128 (to_string): Add noexcept if the type width is 32 bits or less.
1130 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1132 * include/bits/unique_ptr.h (__uniq_ptr_impl::_M_ptr)
1133 (__uniq_ptr_impl::_M_deleter): Add noexcept.
1135 2021-09-16 Thomas Rodgers <rodgert@twrodgers.com>
1138 * testsuite/29_atomics/atomic_ref/wait_notify.cc (test): Use
1139 va and vb as arguments to wait/notify, remove unused bb local.
1141 2021-09-15 Hugo Beauzée-Luyssen <hugo@beauzee.fr>
1143 * crossconfig.m4: Check for TLS support on mingw.
1144 * configure: Regenerate.
1146 2021-09-13 Jason Merrill <jason@redhat.com>
1148 * include/std/version: Define __cpp_lib_hardware_interference_size.
1149 * libsupc++/new: Define hardware interference size variables.
1151 2021-09-10 Jonathan Wakely <jwakely@redhat.com>
1153 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
1154 Fix invalid hostname to only match the .invalid TLD.
1156 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
1158 * include/bits/atomic_base.h (__atomic_base<P*>::compare_exchange_weak):
1160 * include/std/atomic (atomic<T*>::compare_exchange_weak): Use
1163 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
1165 * include/std/atomic: Tweak whitespace.
1167 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
1170 * include/bits/atomic_base.h (__is_valid_cmpexch_failure_order):
1171 New function to check if a memory order is valid for the failure
1172 case of compare exchange operations.
1173 (__atomic_base<I>::compare_exchange_weak): Simplify assertions
1174 by using __is_valid_cmpexch_failure_order.
1175 (__atomic_base<I>::compare_exchange_strong): Likewise.
1176 (__atomic_base<P*>::compare_exchange_weak): Likewise.
1177 (__atomic_base<P*>::compare_exchange_strong): Likewise.
1178 (__atomic_impl::compare_exchange_weak): Add assertion.
1179 (__atomic_impl::compare_exchange_strong): Likewise.
1180 * include/std/atomic (atomic::compare_exchange_weak): Likewise.
1181 (atomic::compare_exchange_strong): Likewise.
1183 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
1185 * include/std/functional (invoke_r): Define.
1186 * include/std/version (__cpp_lib_invoke_r): Define.
1187 * testsuite/20_util/function_objects/invoke/version.cc: Check
1188 for __cpp_lib_invoke_r as well as __cpp_lib_invoke.
1189 * testsuite/20_util/function_objects/invoke/4.cc: New test.
1191 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
1194 * include/std/span (span(Iter, size_type), span(Iter, Iter)):
1195 Add valid range checks.
1196 * testsuite/23_containers/span/cons_1_assert_neg.cc: New test.
1197 * testsuite/23_containers/span/cons_2_assert_neg.cc: New test.
1199 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
1201 * configure.ac: Fix checks for F_GETFL, F_SETFL and O_NONBLOCK.
1202 * configure: Regenerate.
1204 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
1206 * src/c++11/system_error.cc (error_category::~error_category()):
1207 Remove noexcept-specifier.
1208 (system_error::~system_error()): Likewise.
1209 * testsuite/19_diagnostics/error_category/noexcept.cc: New test.
1210 * testsuite/19_diagnostics/system_error/noexcept.cc: New test.
1212 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
1215 * include/bits/atomic_timed_wait.h (__timed_waiter_pool)
1216 [!_GLIBCXX_HAVE_PLATFORM_TIMED_WAIT]: Add missing return.
1218 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
1220 * include/experimental/internet (__make_resolver_error_code):
1221 Handle EAI_SYSTEM errors.
1222 (basic_resolver_results): Use __make_resolver_error_code. Use
1223 Glibc NI_MAXHOST and NI_MAXSERV values for buffer sizes.
1225 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
1227 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
1228 Try other service if "http" fails.
1230 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
1232 * testsuite/17_intro/names.cc: Undefine some more names used
1233 by Solaris system headers.
1235 2021-08-30 Jason Merrill <jason@redhat.com>
1238 * testsuite/30_threads/promise/requirements/lwg3466.cc:
1239 Remove dg-prune-outputs.
1241 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
1243 * include/bits/alloc_traits.h (allocator_traits): Add explicit
1244 specialization for allocator<void>. Improve doxygen comments.
1245 * include/bits/allocator.h (allocator<void>): Restore for the
1246 versioned namespace.
1247 (allocator<void>::construct, allocator<void>::destroy): Remove.
1248 * include/ext/extptr_allocator.h (_Extptr_allocator<void>):
1249 Add default constructor and converting constructor.
1251 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
1253 * include/bits/stl_uninitialized.h: Fix typo in comment.
1255 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
1258 * src/c++17/fs_ops.cc (fs::absolute): Call non-throwing form,
1259 to avoid unnecessary current_path() call.
1261 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
1263 * include/bits/std_function.h (function::function(F&&)): Give
1264 name to defaulted template parameter, to improve diagnostics.
1265 Use markdown for more doxygen comments.
1267 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
1269 * include/bits/std_function.h (function): Adjust doxygen
1271 * include/bits/unique_ptr.h (make_unique_for_overwrite):
1272 Change parameter name to match doxygen comment.
1274 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
1276 * include/bits/std_function.h (_function_base::_Base_manager):
1277 Replace _M_init_functor with a function template using a
1278 forwarding reference, and a pair of _M_create function
1279 templates. Reuse _M_create for the clone operation.
1280 (function::_Decay_t): New alias template.
1281 (function::_Callable): Simplify by using _Decay.
1282 (function::function(F)): Change parameter to forwarding
1283 reference, as per LWG 2447. Add noexcept-specifier. Simplify
1285 (function::operator=(F&&)): Add noexcept-specifier.
1286 * testsuite/20_util/function/cons/lwg2774.cc: New test.
1287 * testsuite/20_util/function/cons/noexcept.cc: New test.
1289 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
1291 * include/bits/std_function.h (function::function(F)): Add
1292 static assertions to check constructibility requirements.
1294 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
1297 * configure.ac: Check for O_NONBLOCK.
1298 * configure: Regenerate.
1299 * include/experimental/internet: Include <ws2tcpip.h> for
1300 Windows. Use preprocessor conditions around more constants.
1301 * include/experimental/socket: Use preprocessor conditions
1302 around more constants.
1303 * testsuite/experimental/net/internet/resolver/base.cc: Only use
1304 constants when the corresponding C macro is defined.
1305 * testsuite/experimental/net/socket/basic_socket.cc: Likewise.
1306 * testsuite/experimental/net/socket/socket_base.cc: Likewise.
1307 Make preprocessor checks more fine-grained.
1309 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
1311 * testsuite/17_intro/names.cc: Check 'sz'.
1313 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
1315 * testsuite/17_intro/names.cc: Adjust for Windows.
1317 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
1319 * include/std/valarray: Uglify 'func' parameters.
1320 * testsuite/17_intro/names.cc: Add 'func' to checks.
1322 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
1325 * include/bits/stl_uninitialized.h (_GLIBCXX_USE_ASSIGN_FOR_INIT):
1326 Define macro to check conditions for optimizing trivial cases.
1327 (__check_constructible): New function to do static assert.
1328 (uninitialized_copy, uninitialized_fill, uninitialized_fill_n):
1330 * testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc:
1331 Adjust dg-error pattern.
1332 * testsuite/23_containers/vector/cons/89164.cc: Likewise. Add
1333 C++17-specific checks from 89164_c++17.cc.
1334 * testsuite/23_containers/vector/cons/89164_c++17.cc: Removed.
1335 * testsuite/20_util/specialized_algorithms/uninitialized_copy/102064.cc:
1337 * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/102064.cc:
1339 * testsuite/20_util/specialized_algorithms/uninitialized_fill/102064.cc:
1341 * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/102064.cc:
1344 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
1347 * include/ext/rope (rope::erase(size_type)): Remove broken
1350 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
1352 * doc/xml/manual/status_cxx2020.xml: Update table.
1353 * doc/html/manual/status.html: Regenerate.
1355 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
1357 * include/std/type_traits (is_layout_compatible): Define.
1358 (is_corresponding_member): Define.
1359 * include/std/version (__cpp_lib_is_layout_compatible): Define.
1360 * testsuite/20_util/is_layout_compatible/is_corresponding_member.cc:
1362 * testsuite/20_util/is_layout_compatible/value.cc: New test.
1363 * testsuite/20_util/is_layout_compatible/version.cc: New test.
1364 * testsuite/20_util/is_pointer_interconvertible/with_class.cc:
1366 * testsuite/23_containers/span/layout_compat.cc: Do not use real
1367 std::is_layout_compatible trait if available.
1369 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
1371 * src/c++11/cxx11-shim_facets.cc: Fix mismatched class-key in
1372 explicit instantiation definitions.
1374 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
1376 * include/std/ranges (basic_istream_view): Add default template
1378 * testsuite/std/ranges/istream_view.cc: Check it.
1380 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
1382 * libsupc++/dyncast.cc (__dynamic_cast): Add __builtin_expect to
1385 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
1388 * testsuite/util/testsuite_fs.h (permissions_are_testable):
1391 2021-08-20 Jonathan Wakely <jwakely@redhat.com>
1394 * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
1395 Use new __gnu_test::permissions_are_testable() function.
1396 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
1398 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
1399 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
1400 * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
1401 * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
1402 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
1403 * testsuite/27_io/filesystem/operations/symlink_status.cc:
1405 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
1407 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
1409 * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc:
1411 * testsuite/experimental/filesystem/operations/exists.cc:
1413 * testsuite/experimental/filesystem/operations/is_empty.cc:
1415 * testsuite/experimental/filesystem/operations/remove.cc:
1417 * testsuite/experimental/filesystem/operations/remove_all.cc:
1419 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
1421 * testsuite/util/testsuite_fs.h (__gnu_test::permissions_are_testable):
1422 New function to guess whether testing permissions will work.
1424 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1426 * doc/xml/manual/status_cxx2020.xml: Move row earlier in table.
1427 * doc/html/manual/status.html: Regenerate.
1429 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1431 * doc/doxygen/user.cfg.in: Update to Doxygen 1.9.2
1433 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1436 * include/std/charconv (__to_chars_i): Remove redundant check.
1438 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1441 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)): Use base
1442 class' move constructor. Define as defaulted for versioned
1444 * testsuite/20_util/tuple/cons/101960.cc: New test.
1446 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1449 * doc/xml/manual/status_cxx2020.xml: Add P1739R4 to status table.
1450 * doc/html/manual/status.html: Regenerate.
1452 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1454 * include/bits/shared_ptr.h: Add @since and @headerfile tags.
1455 * include/bits/unique_ptr.h: Add @headerfile tags.
1457 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1459 * src/filesystem/ops-common.h (filesystem::file_time): Improve
1460 overflow check by using system_clock::duration::max().
1462 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1464 * include/bits/stl_tree.h: Tweak whitespace.
1466 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
1468 * include/bits/unique_ptr.h (default_delete): Add @since tag.
1469 (unique_ptr, unique_ptr<T[]>): Likewise. Improve @brief.
1470 (make_unique, make_unique_for_overwrite): Likewise. Add @tparam,
1471 @param, and @returns.
1472 (_MakeUniq): Move to __detail namespace. Add alias template
1475 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
1477 * include/bits/stl_function.h: Improve doxygen comments.
1479 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
1481 * doc/doxygen/user.cfg.in (PREDEFINED): Enable doxygen
1482 processing for C++20 components and components that depend on
1484 * include/bits/stl_algo.h (random_shuffle): Use @deprecated.
1485 * include/std/type_traits: Improve doxygen comments for C++20
1488 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
1490 * include/ext/type_traits.h (__promote_2, __promote_3)
1491 (__promote_4): Redfine as alias templates using __promoted_t.
1492 * include/std/complex (__promote_2): Remove partial
1493 specializations for std::complex.
1495 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
1497 * include/bits/stl_algo.h (min(initializer_list<T>))
1498 (min(initializer_list<T>, Compare)): Call __min_element directly to
1499 avoid redundant debug checks for valid ranges.
1500 (max(initializer_list<T>), max(initializer_list<T>, Compare)):
1501 Likewise, for __max_element.
1502 (minmax(initializer_list<T>), minmax(initializer_list<T>, Compare)):
1503 Likewise, for __minmax_element.
1505 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
1507 * include/debug/deque (deque(size_type, const T&, const A&)):
1508 Prevent class template argument deduction and replace with a
1510 * include/debug/forward_list (forward_list(size_type, const T&, const A&)):
1512 * include/debug/list (list(size_type, const T&, const A&)):
1514 * include/debug/vector (vector(size_type, const T&, const A&)):
1517 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
1519 * python/libstdcxx/v6/printers.py (StdBitReferencePrinter): Use
1520 'std::vector<bool>::reference' as type name, not _Bit_reference.
1521 (build_libstdcxx_dictionary): Register printers for vector<bool>
1522 types in debug mode too.
1523 * testsuite/libstdc++-prettyprinters/simple.cc: Adjust expected
1524 output for invalid _Bit_reference. Use vector<bool>::reference
1525 instead of _Bit_reference.
1526 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
1528 2021-08-17 Thomas Schwinge <thomas@codesourcery.com>
1530 * testsuite/lib/libstdc++.exp: Avoid illegal argument to verbose,
1533 2021-08-17 Luc Michel <lmichel@kalray.eu>
1534 Marc Poulhies <mpoulhies@kalrayinc.com>
1536 * testsuite/lib/gdb-test.exp (gdb_version_check)
1537 (gdb_version_check_xmethods): Only check the GDB version for
1538 local native targets.
1540 2021-08-17 Antony Polukhin <antoshkka@gmail.com>
1541 Jonathan Wakely <jwakely@redhat.com>
1543 * include/bits/random.tcc (seed_seq::seed_seq): Reserve capacity
1544 if distance is O(1).
1545 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1548 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
1550 * testsuite/26_numerics/random/seed_seq/cons/range.cc: Check
1551 construction from input iterators.
1553 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
1555 * python/libstdcxx/v6/printers.py (StdErrorCatPrinter): Remove.
1557 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
1560 * include/bits/std_function.h (function(function&&)): Check for
1561 non-empty parameter before doing any work.
1563 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
1565 * include/bits/cow_string.h (basic_string::contains): Do not
1566 define for -std=gnu++20.
1568 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
1570 * include/bits/ranges_util.h (__not_same_as): Rename to
1572 * include/std/ranges (__not_same_as): Likewise.
1574 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
1576 * include/std/utility (exchange): Add noexcept-specifier.
1577 * testsuite/20_util/exchange/noexcept.cc: New test.
1579 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
1581 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Define.
1582 (build_libstdcxx_dictionary): Register printer for
1583 std::error_code and std::error_condition.
1584 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test it.
1586 2021-08-16 Jonathan Wakely <jwakely@redhat.com>
1589 * src/c++11/debug.cc (PrintContext::_M_indent): Replace with a
1591 (print_word): Use qualified-id to access it.
1593 2021-08-16 Jonathan Wakely <jwakely@redhat.com>
1595 * python/Makefile.am [GLIBCXX_BUILD_DEBUG] (install-data-local):
1596 Install another copy of the GDB hook.
1597 * python/Makefile.in: Regenerate.
1599 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
1602 * include/c_global/cmath (hypot): Use __promoted_t.
1603 (lerp): Add new overload accepting any arithmetic types.
1604 * include/ext/type_traits.h (__promoted_t): New alias template.
1605 * testsuite/26_numerics/lerp.cc: Moved to...
1606 * testsuite/26_numerics/lerp/1.cc: ...here.
1607 * testsuite/26_numerics/lerp/constexpr.cc: New test.
1608 * testsuite/26_numerics/lerp/version.cc: New test.
1610 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
1612 * testsuite/26_numerics/lerp.cc: Add header name to #error.
1613 * testsuite/26_numerics/midpoint/integral.cc: Likewise.
1614 * testsuite/26_numerics/midpoint/version.cc: New test.
1616 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
1618 * include/experimental/random (experimental::randint): Add
1619 nodiscard attribute.
1621 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
1623 * src/c++98/locale_init.cc: Require C++11.
1624 * src/c++98/localename.cc: Likewise.
1625 * src/c++98/misc-inst.cc: Require C++98.
1627 2021-08-11 Jonathan Wakely <jwakely@redhat.com>
1630 * testsuite/experimental/random/randint.cc: Loop and retry if
1631 reseed() produces the same sequence.
1633 2021-08-11 Jonathan Wakely <jwakely@redhat.com>
1635 * include/std/type_traits (__cpp_lib_is_pointer_interconvertible)
1636 (is_pointer_interconvertible_base_of_v)
1637 (is_pointer_interconvertible_base_of): Define for C++20.
1638 * include/std/version (__cpp_lib_is_pointer_interconvertible):
1640 * testsuite/23_containers/span/layout_compat.cc: Use correct
1641 feature test macro for std::is_layout_compatible_v.
1642 * testsuite/20_util/is_pointer_interconvertible/value.cc: New test.
1643 * testsuite/20_util/is_pointer_interconvertible/version.cc: New test.
1645 2021-08-09 Jonathan Wakely <jwakely@redhat.com>
1647 * include/bits/regex.h (basic_regex::transform_primary): Use
1648 _GLIBCXX_STD_C::vector for local variable.
1649 * include/bits/regex.tcc (__regex_algo_impl): Use reference to
1650 _GLIBCXX_STD_C::vector base class of match_results.
1651 * include/bits/regex_automaton.tcc (_StateSeq:_M_clone): Use
1652 _GLIBCXX_STD_C::map and _GLIBCXX_STD_C::deque for local
1654 * include/bits/regex_compiler.h (_BracketMatcher): Use
1655 _GLIBCXX_STD_C::vector for data members.
1656 * include/bits/regex_executor.h (_Executor): Likewise.
1657 * include/std/regex [_GLIBCXX_DEBUG]: Include <debug/vector>.
1659 2021-08-09 François Dumont <fdumont@gcc.gnu.org>
1661 * include/debug/safe_container.h
1662 (_Safe_container(_Safe_container&&, const _Alloc&, std::true_type)): New.
1663 (_Safe_container(_Safe_container&&, const _Alloc&, std::false_type)): New.
1664 (_Safe_container(_Safe_container&&, const _Alloc&)): Use latters.
1666 2021-08-09 Jonathan Wakely <jwakely@redhat.com>
1668 * testsuite/23_containers/unordered_map/cons/default.cc: Add
1669 equality comparison operators to allocator.
1670 * testsuite/23_containers/unordered_set/cons/default.cc:
1673 2021-08-08 François Dumont <fdumont@gcc.gnu.org>
1675 * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Replace 'failed_assertion'
1676 dg-prune-output reason with 'builtin_unreachable'.
1677 * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc: Likewise.
1678 * testsuite/25_algorithms/equal/debug/constexpr_neg.cc: Likewise.
1679 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc: Likewise.
1680 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
1681 * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc: Likewise.
1682 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc: Likewise.
1683 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
1684 * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc: Likewise.
1686 2021-08-08 Hans-Peter Nilsson <hp@bitrange.com>
1688 * testsuite/std/ranges/iota/max_size_type.cc: Set
1689 dg-timeout-factor to 4.
1691 2021-08-06 Jonathan Wakely <jwakely@redhat.com>
1693 * libsupc++/compare (compare_three_way, strong_order)
1694 (weak_order, partial_order, compare_strong_order_fallback)
1695 (compare_weak_order_fallback, compare_partial_order_fallback):
1696 Move nodiscard attributes to correct location.
1698 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
1701 * include/bits/ranges_base.h (ranges::begin, ranges::end)
1702 (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
1703 (ranges::empty, ranges::data): Move attribute after the
1704 declarator-id instead of at the end of the declarator.
1705 * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator):
1706 Move attributes back to the start of the function declarator,
1707 but move the requires-clause to the end.
1708 (common_iterator): Move attribute after the declarator-id.
1709 * include/bits/stl_queue.h (queue): Remove ill-formed attributes
1710 from friend declaration that are not definitions.
1711 * include/std/ranges (views::all, views::filter)
1712 (views::transform, views::take, views::take_while,
1713 views::drop) (views::drop_while, views::join,
1714 views::lazy_split) (views::split, views::counted,
1715 views::common, views::reverse) (views::elements): Move
1716 attributes after the declarator-id.
1718 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
1720 * libsupc++/compare (partial_ordering, weak_ordering)
1721 (strong_ordering, is_eq, is_neq, is_lt, is_lteq, is_gt, is_gteq)
1722 (compare_three_way, strong_order, weak_order, partial_order)
1723 (compare_strong_order_fallback, compare_weak_order_fallback)
1724 (compare_partial_order_fallback, __detail::__synth3way): Add
1725 nodiscard attribute.
1726 * testsuite/18_support/comparisons/categories/zero_neg.cc: Add
1727 -Wno-unused-result to options.
1729 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
1732 * include/bits/ranges_base.h (ranges::begin, ranges::end)
1733 (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
1734 (ranges::empty, ranges::data): Move attribute to the end of
1736 * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator)
1737 (common_iterator): Likewise for non-member operator functions.
1738 * include/std/ranges (views::all, views::filter)
1739 (views::transform, views::take, views::take_while, views::drop)
1740 (views::drop_while, views::join, views::lazy_split)
1741 (views::split, views::counted, views::common, views::reverse)
1742 (views::elements): Likewise.
1743 * testsuite/std/ranges/access/101782.cc: New test.
1745 2021-08-04 Jonathan Wakely <jwakely@redhat.com>
1747 * include/bits/forward_list.h: Add [[nodiscard]] to functions
1748 with no side-effects.
1749 * include/bits/stl_bvector.h: Likewise.
1750 * include/bits/stl_deque.h: Likewise.
1751 * include/bits/stl_list.h: Likewise.
1752 * include/bits/stl_queue.h: Likewise.
1753 * include/bits/stl_stack.h: Likewise.
1754 * include/bits/stl_vector.h: Likewise.
1755 * include/debug/deque: Likewise.
1756 * include/debug/forward_list: Likewise.
1757 * include/debug/list: Likewise.
1758 * include/debug/safe_iterator.h: Likewise.
1759 * include/debug/vector: Likewise.
1760 * include/std/array: Likewise.
1761 * testsuite/23_containers/array/creation/3_neg.cc: Use
1763 * testsuite/23_containers/array/debug/back1_neg.cc: Cast result
1765 * testsuite/23_containers/array/debug/back2_neg.cc: Likewise.
1766 * testsuite/23_containers/array/debug/front1_neg.cc: Likewise.
1767 * testsuite/23_containers/array/debug/front2_neg.cc: Likewise.
1768 * testsuite/23_containers/array/debug/square_brackets_operator1_neg.cc:
1770 * testsuite/23_containers/array/debug/square_brackets_operator2_neg.cc:
1772 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
1773 Adjust dg-error line numbers.
1774 * testsuite/23_containers/deque/cons/clear_allocator.cc: Cast
1776 * testsuite/23_containers/deque/debug/invalidation/4.cc:
1778 * testsuite/23_containers/deque/types/1.cc: Use
1780 * testsuite/23_containers/list/types/1.cc: Cast result to void.
1781 * testsuite/23_containers/priority_queue/members/7161.cc:
1783 * testsuite/23_containers/queue/members/7157.cc: Likewise.
1784 * testsuite/23_containers/vector/59829.cc: Likewise.
1785 * testsuite/23_containers/vector/ext_pointer/types/1.cc:
1787 * testsuite/23_containers/vector/ext_pointer/types/2.cc:
1789 * testsuite/23_containers/vector/types/1.cc: Use
1792 2021-08-04 Jonathan Wakely <jwakely@redhat.com>
1794 * include/bits/iterator_concepts.h (iter_move): Add
1796 * include/bits/range_access.h (begin, end, cbegin, cend)
1797 (rbegin, rend, crbegin, crend, size, data, ssize): Likewise.
1798 * include/bits/ranges_base.h (ranges::begin, ranges::end)
1799 (ranges::cbegin, ranges::cend, ranges::rbegin, ranges::rend)
1800 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
1801 (ranges::empty, ranges::data, ranges::cdata): Likewise.
1802 * include/bits/stl_iterator.h (reverse_iterator, __normal_iterator)
1803 (back_insert_iterator, front_insert_iterator, insert_iterator)
1804 (move_iterator, move_sentinel, common_iterator)
1805 (counted_iterator): Likewise.
1806 * include/bits/stl_iterator_base_funcs.h (distance, next, prev):
1808 * include/bits/stream_iterator.h (istream_iterator)
1809 (ostream_iterartor): Likewise.
1810 * include/bits/streambuf_iterator.h (istreambuf_iterator)
1811 (ostreambuf_iterator): Likewise.
1812 * include/std/ranges (views::single, views::iota, views::all)
1813 (views::filter, views::transform, views::take, views::take_while)
1814 (views::drop, views::drop_while, views::join, views::lazy_split)
1815 (views::split, views::counted, views::common, views::reverse)
1816 (views::elements): Likewise.
1817 * testsuite/20_util/rel_ops.cc: Use -Wno-unused-result.
1818 * testsuite/24_iterators/move_iterator/greedy_ops.cc: Likewise.
1819 * testsuite/24_iterators/normal_iterator/greedy_ops.cc:
1821 * testsuite/24_iterators/reverse_iterator/2.cc: Likewise.
1822 * testsuite/24_iterators/reverse_iterator/greedy_ops.cc:
1824 * testsuite/21_strings/basic_string/range_access/char/1.cc:
1825 Cast result to void.
1826 * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
1828 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
1830 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
1832 * testsuite/23_containers/array/range_access.cc: Likewise.
1833 * testsuite/23_containers/deque/range_access.cc: Likewise.
1834 * testsuite/23_containers/forward_list/range_access.cc:
1836 * testsuite/23_containers/list/range_access.cc: Likewise.
1837 * testsuite/23_containers/map/range_access.cc: Likewise.
1838 * testsuite/23_containers/multimap/range_access.cc: Likewise.
1839 * testsuite/23_containers/multiset/range_access.cc: Likewise.
1840 * testsuite/23_containers/set/range_access.cc: Likewise.
1841 * testsuite/23_containers/unordered_map/range_access.cc:
1843 * testsuite/23_containers/unordered_multimap/range_access.cc:
1845 * testsuite/23_containers/unordered_multiset/range_access.cc:
1847 * testsuite/23_containers/unordered_set/range_access.cc:
1849 * testsuite/23_containers/vector/range_access.cc: Likewise.
1850 * testsuite/24_iterators/customization_points/iter_move.cc:
1852 * testsuite/24_iterators/istream_iterator/sentinel.cc:
1854 * testsuite/24_iterators/istreambuf_iterator/sentinel.cc:
1856 * testsuite/24_iterators/move_iterator/dr2061.cc: Likewise.
1857 * testsuite/24_iterators/operations/prev_neg.cc: Likewise.
1858 * testsuite/24_iterators/ostreambuf_iterator/2.cc: Likewise.
1859 * testsuite/24_iterators/range_access/range_access.cc:
1861 * testsuite/24_iterators/range_operations/100768.cc: Likewise.
1862 * testsuite/26_numerics/valarray/range_access2.cc: Likewise.
1863 * testsuite/28_regex/range_access.cc: Likewise.
1864 * testsuite/experimental/string_view/range_access/char/1.cc:
1866 * testsuite/experimental/string_view/range_access/wchar_t/1.cc:
1868 * testsuite/ext/vstring/range_access.cc: Likewise.
1869 * testsuite/std/ranges/adaptors/take.cc: Likewise.
1870 * testsuite/std/ranges/p2259.cc: Likewise.
1872 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
1874 * include/bits/random.tcc (linear_congruential_engine): Do not
1875 define static constexpr members when they are implicitly inline.
1876 * include/std/ratio (ratio, __ratio_multiply, __ratio_divide)
1877 (__ratio_add, __ratio_subtract): Likewise.
1878 * include/std/type_traits (integral_constant): Likewise.
1879 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1882 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
1884 * testsuite/util/testsuite_common_types.h: Replace uses of
1885 tr1::unordered_map and tr1::unordered_set with their C++11
1887 * testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust
1888 dg-error line number.
1889 * testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
1890 * testsuite/29_atomics/atomic_integral/cons/assign_neg.cc:
1892 * testsuite/29_atomics/atomic_integral/cons/copy_neg.cc:
1894 * testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc:
1896 * testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc:
1898 * testsuite/29_atomics/atomic_integral/operators/increment_neg.cc:
1901 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
1903 * include/std/memory_resource (polymorphic_allocator::delete_object):
1904 Call destructor directly instead of using destroy.
1905 (allocator_traits<polymorphic_allocator<T>>): Define partial
1908 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
1910 * testsuite/20_util/function_objects/binders/3113.cc: Remove
1911 trailing whitespace.
1912 * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
1913 * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
1914 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
1916 * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
1917 * testsuite/25_algorithms/headers/algorithm/synopsis.cc:
1919 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
1921 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
1924 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
1926 * doc/xml/manual/evolution.xml: Document deprecation.
1927 * doc/html/*: Regenerate.
1928 * include/bits/c++config (_GLIBCXX14_DEPRECATED): Define.
1929 (_GLIBCXX14_DEPRECATED_SUGGEST): Define.
1930 * include/bits/stl_algo.h (random_shuffle): Deprecate for C++14
1932 * testsuite/25_algorithms/headers/algorithm/synopsis.cc: Adjust
1933 for C++11 and C++14 changes to std::random_shuffle and
1935 * testsuite/25_algorithms/random_shuffle/1.cc: Add options to
1936 use deprecated algorithms.
1937 * testsuite/25_algorithms/random_shuffle/59603.cc: Likewise.
1938 * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise.
1939 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
1941 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
1944 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
1946 * testsuite/23_containers/forward_list/operations/3.cc:
1947 Use lambda instead of std::bind2nd.
1948 * testsuite/20_util/function_objects/binders/3113.cc: Add
1949 options for testing deprecated features.
1950 * testsuite/20_util/pair/cons/99957.cc: Likewise.
1951 * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
1952 * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
1953 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
1955 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
1956 * testsuite/20_util/shared_ptr/cons/auto_ptr.cc: Likewise.
1957 * testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc: Likewise.
1958 * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
1959 * testsuite/20_util/unique_ptr/cons/auto_ptr.cc: Likewise.
1960 * testsuite/20_util/unique_ptr/cons/auto_ptr_neg.cc: Likewise.
1961 * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
1963 * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
1965 * testsuite/lib/dg-options.exp (dg_add_options_using-deprecated):
1968 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
1970 * include/bits/regex_executor.h (_State_info): Replace
1971 unique_ptr<bool[]> with array of bool.
1972 * include/bits/regex_executor.tcc: Likewise.
1973 * include/bits/regex_scanner.tcc: Replace std::strchr with
1975 * include/std/regex: Replace standard headers with smaller
1977 * testsuite/28_regex/traits/char/lookup_classname.cc: Include
1978 <string.h> for strlen.
1979 * testsuite/28_regex/traits/char/lookup_collatename.cc:
1982 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
1984 * include/bits/locale_conv.h (__detail::_Scoped_ptr): Define new
1985 RAII class template.
1986 (wstring_convert, wbuffer_convert): Use __detail::_Scoped_ptr
1987 instead of unique_ptr.
1989 2021-08-02 Patrick Palka <ppalka@redhat.com>
1992 * include/bits/ranges_algo.h (__reverse_copy_fn::operator()):
1993 Add missing std::move in return statement.
1994 (__partition_copy_fn::operator()): Rename templtae parameter
1995 _O2 to _Out2. Uglify function parameters out_true and out_false.
1996 * include/bits/ranges_algobase.h (__copy_or_move): Add missing
1997 std::move to recursive call that unwraps a __normal_iterator
1999 * testsuite/25_algorithms/copy/constrained.cc (test06): New test.
2000 * testsuite/25_algorithms/move/constrained.cc (test05): New test.
2002 2021-08-02 Patrick Palka <ppalka@redhat.com>
2005 * include/std/ranges (lazy_split_view::_InnerIter::base): Make
2006 the const& overload unconstrained and return a const reference
2007 as per LWG 3533. Make unconditionally noexcept.
2008 (elements_view::base): Revert accidental r12-569 change.
2009 (elements_view::_Iterator::base): Make the const& overload
2010 unconstrained and return a const reference as per LWG 3533.
2011 Make unconditionally noexcept.
2013 2021-08-02 Patrick Palka <ppalka@redhat.com>
2016 * include/std/ranges (join_view::_Iterator::_Iterator): Add
2019 2021-08-02 Jonathan Wakely <jwakely@redhat.com>
2022 * src/filesystem/ops-common.h (get_temp_directory_from_env):
2023 Add error_code parameter.
2024 * src/c++17/fs_ops.cc (fs::temp_directory_path): Pass error_code
2025 argument to get_temp_directory_from_env and check it.
2026 * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
2028 2021-08-02 Jonathan Wakely <jwakely@redhat.com>
2030 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
2031 Add dg-error for c++11_only target.
2033 2021-07-30 Jonathan Wakely <jwakely@redhat.com>
2036 * configure.ac: Check for secure_getenv.
2037 * config.h.in: Regenerate.
2038 * configure: Regenerate.
2039 * src/filesystem/ops-common.h (get_temp_directory_from_env): New
2040 helper function to obtain path from the environment.
2041 * src/c++17/fs_ops.cc (fs::temp_directory_path): Use new helper.
2042 * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
2043 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
2044 Print messages if test cannot be run.
2045 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
2046 Likewise. Fix incorrect condition. Use "TMP" to work with
2047 Windows as well as POSIX.
2049 2021-07-29 Hans-Peter Nilsson <hp@bitrange.com>
2051 * src/c++17/memory_resource.cc: Use __exchange instead
2054 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
2056 * include/experimental/optional (__throw_bad_optional_access):
2057 Replace GNU attribute with C++11 attribute.
2058 (optional::value, optional::value_or): Use if statements
2059 instead of conditional expressions.
2060 * include/std/optional (__throw_bad_optional_access)
2061 (optional::value, optional::value_or): Likewise.
2063 2021-07-27 Marek Polacek <polacek@redhat.com>
2067 * testsuite/20_util/tuple/comparison_operators/overloaded.cc:
2069 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
2072 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
2074 * include/bits/cow_string.h: Consistently use tab for
2077 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
2079 * include/Makefile.am: Add new header.
2080 * include/Makefile.in: Regenerate.
2081 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
2082 (basic_string): Move definition of Copy-on-Write string to
2084 * include/bits/basic_string.tcc: Likewise.
2085 * include/bits/cow_string.h: New file.
2087 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
2089 * include/std/algorithm: Do not include <utility>.
2090 * include/std/functional: Likewise.
2091 * include/std/regex: Include <bits/stl_pair.h> instead of
2093 * include/debug/map.h: Likewise.
2094 * include/debug/multimap.h: Likewise.
2095 * include/debug/multiset.h: Likewise.
2096 * include/debug/set.h: Likewise.
2097 * include/debug/vector: Likewise.
2098 * include/bits/fs_path.h: Likewise.
2099 * include/bits/unique_ptr.h: Do not include <utility>.
2100 * include/experimental/any: Likewise.
2101 * include/experimental/executor: Likewise.
2102 * include/experimental/memory: Likewise.
2103 * include/experimental/optional: Likewise.
2104 * include/experimental/socket: Use __exchange instead
2106 * src/filesystem/ops-common.h: Likewise.
2107 * testsuite/20_util/default_delete/48631_neg.cc: Adjust expected
2108 errors to not use a hardcoded line number.
2109 * testsuite/20_util/default_delete/void_neg.cc: Likewise.
2110 * testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc:
2111 Include <utility> for std::as_const.
2112 * testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constrained.cc:
2114 * testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc:
2116 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constrained.cc:
2118 * testsuite/23_containers/vector/cons/destructible_debug_neg.cc:
2119 Adjust dg-error line number.
2121 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
2123 * include/Makefile.am: Add bits/utility.h header.
2124 * include/Makefile.in: Regenerate.
2125 * include/bits/utility.h: New file.
2126 * include/std/utility (tuple_size, tuple_element): Move
2128 * include/std/type_traits (__is_tuple_like_impl<tuple<T...>>):
2130 (_Index_tuple, _Build_index_tuple, integer_sequence): Likewise.
2131 (in_place_t, in_place_index_t, in_place_type_t): Likewise.
2132 * include/bits/ranges_util.h: Include new header instead of
2134 * include/bits/stl_pair.h (tuple_size, tuple_element): Move
2135 partial specializations for std::pair here.
2136 (get): Move overloads for std::pair here.
2137 * include/std/any: Include new header instead of <utility>.
2138 * include/std/array: Likewise.
2139 * include/std/memory_resource: Likewise.
2140 * include/std/optional: Likewise.
2141 * include/std/variant: Likewise.
2142 * include/std/tuple: Likewise.
2143 (__is_tuple_like_impl<tuple<T...>>): Move here.
2144 (get) Declare overloads for std::array.
2145 * include/std/version (__cpp_lib_tuples_by_type): Change type
2147 * testsuite/20_util/optional/84601.cc: Include <utility>.
2148 * testsuite/20_util/specialized_algorithms/uninitialized_fill/constrained.cc:
2150 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
2151 Adjust dg-error line numbers.
2152 * testsuite/std/ranges/access/cbegin.cc: Include <utility>.
2153 * testsuite/std/ranges/access/cend.cc: Likewise.
2154 * testsuite/std/ranges/access/end.cc: Likewise.
2155 * testsuite/std/ranges/single_view.cc: Likewise.
2157 2021-07-23 Jonathan Wakely <jwakely@redhat.com>
2159 * include/std/future: Include <bits/atomic_base.h> instead of
2162 2021-07-23 Jonathan Wakely <jwakely@redhat.com>
2164 * include/bits/stl_relops.h: Update documentation comments.
2166 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
2169 * include/bits/hashtable.h (_Hashtable): Replace mixin with
2170 _Enable_default_ctor. Construct it explicitly in all
2171 non-forwarding, non-defaulted constructors.
2172 * testsuite/23_containers/unordered_map/cons/default.cc: Check
2173 non-default constructors can be used.
2174 * testsuite/23_containers/unordered_set/cons/default.cc:
2177 2021-07-22 David Edelsohn <dje.gcc@gmail.com>
2179 * config/os/aix/os_defines.h (__LIBC_NO_CPP_MATH_OVERLOADS__): Define.
2181 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
2184 * include/ext/new_allocator.h (_GLIBCXX_OPERATOR_NEW)
2185 (_GLIBCXX_OPERATOR_DELETE, _GLIBCXX_SIZED_DEALLOC): Define.
2186 (allocator::allocate, allocator::deallocate): Use new macros.
2188 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
2191 * include/bits/ranges_uninitialized.h (_DestroyGuard): Change
2192 constructor parameter to reference and use addressof.
2193 * testsuite/util/testsuite_iterators.h: Define deleted operator&
2194 overloads for test iterators.
2196 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
2198 * include/bits/std_function.h (_Function_base): Add
2199 default member initializers and define constructor as defaulted.
2200 (function::_M_invoker): Add default member initializer.
2202 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
2205 * doc/xml/manual/debug_mode.xml: Update documentation about
2206 debug capability of std::array.
2207 * doc/html/*: Regenerate.
2208 * include/debug/array: New file.
2210 2021-07-21 Jonathan Wakely <jwakely@redhat.com>
2213 * include/ext/rope (sequence_buffer): Add move constructor and
2214 move assignment operator.
2215 * testsuite/ext/rope/101542.cc: New test.
2217 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
2220 * src/c++17/fs_ops.cc (fs::create_directories): Use status
2221 instead of symlink_status.
2222 * src/filesystem/ops.cc (fs::create_directories): Likewise.
2223 * testsuite/27_io/filesystem/operations/create_directories.cc:
2224 Check symlink to existing directory.
2225 * testsuite/27_io/filesystem/operations/create_directory.cc: Do
2226 not test with symlinks on Windows.
2227 * testsuite/experimental/filesystem/operations/create_directories.cc:
2228 Check symlink to existing directory.
2229 * testsuite/experimental/filesystem/operations/create_directory.cc:
2230 Do not test with symlinks on Windows.
2232 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
2235 * include/bits/hashtable.h (_Hashtable): Conditionally delete
2236 default constructor by deriving from _Enable_special_members.
2237 * testsuite/23_containers/unordered_map/cons/default.cc: New test.
2238 * testsuite/23_containers/unordered_set/cons/default.cc: New test.
2240 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
2243 * src/c++17/fs_ops.cc (create_dir): Adjust whitespace.
2244 * testsuite/27_io/filesystem/operations/create_directory.cc:
2245 Test creating directory with name of existing symlink to
2247 * testsuite/experimental/filesystem/operations/create_directory.cc:
2250 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2252 * include/std/tuple (get<I>): Add deleted overload for bad
2254 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
2257 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2259 * include/bits/max_size_type.h (numeric_limits<__max_size_type>):
2260 Use __int_traits unconditionally.
2262 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2264 * include/bits/random.h (_Shift::__value): Use constexpr.
2265 (_Select_uint_least_t::type): Use using-declaration.
2267 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2270 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2272 * include/bits/cpp_type_traits.h (__INT_N): Use __extension__
2273 instead of diagnostic pragmas.
2274 * include/bits/functional_hash.h: Likewise.
2275 * include/bits/iterator_concepts.h (__is_signed_int128)
2276 (__is_unsigned_int128): Likewise.
2277 * include/bits/max_size_type.h (__max_size_type): Likewise.
2278 (numeric_limits<__max_size_type>): Likewise.
2279 * include/bits/std_abs.h (abs): Likewise.
2280 * include/bits/stl_algobase.h (__size_to_integer): Likewise.
2281 * include/bits/uniform_int_dist.h (uniform_int_distribution):
2283 * include/ext/numeric_traits.h (_GLIBCXX_INT_N_TRAITS):
2285 * include/std/type_traits (__is_integral_helper<INT_N>)
2286 (__is_signed_integer, __is_unsigned_integer)
2287 (__make_unsigned<INT_N>, __make_signed<INT_N>): Likewise.
2288 * include/std/limits (__INT_N): Add __extension__ keyword.
2289 * include/bits/random.h (_Select_uint_least_t)
2290 (random_device): Likewise.
2292 2021-07-16 Patrick Palka <ppalka@redhat.com>
2295 * include/std/ranges (_CachedPosition::_M_get): For non-forward
2296 ranges, just call __builtin_unreachable.
2297 * testsuite/std/ranges/istream_view.cc (test05): New test.
2299 2021-07-16 Patrick Palka <ppalka@redhat.com>
2302 * include/std/ranges (split_view::split_view): Use std::move.
2303 (split_view::_Iterator::_Iterator): Remove redundant
2304 default_initializable constraint.
2305 (split_view::_Sentinel::_Sentinel): Declare.
2306 * testsuite/std/ranges/adaptors/split.cc (test02): New test.
2308 2021-07-16 Marek Polacek <polacek@redhat.com>
2310 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Add
2313 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2315 * include/bits/unique_ptr.h: Adjust doxygen markup.
2317 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2320 * include/std/type_traits: Adjust doxygen markup.
2322 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2324 * include/bits/cpp_type_traits.h: Add diagnostic pragmas around
2325 uses of non-standard integer types.
2326 * include/bits/functional_hash.h: Likewise.
2327 * include/bits/iterator_concepts.h: Likewise.
2328 * include/bits/max_size_type.h: Likewise.
2329 * include/bits/std_abs.h: Likewise.
2330 * include/bits/stl_algobase.h: Likewise.
2331 * include/bits/uniform_int_dist.h: Likewise.
2332 * include/ext/numeric_traits.h: Likewise.
2333 * include/std/type_traits: Likewise.
2335 2021-07-15 Jonathan Wakely <jwakely@redhat.com>
2338 * include/std/tuple (tuple_element): Improve static_assert text.
2339 (__get_helper): Add deleted overload.
2340 (get<i>(tuple<T...>&&), get<i>(const tuple<T...>&&)): Use
2341 __get_helper directly.
2342 (__get_helper2): Remove.
2343 (__find_uniq_type_in_pack): New constexpr helper function.
2344 (get<T>): Use __find_uniq_type_in_pack and __get_helper instead
2346 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
2348 * testsuite/20_util/tuple/element_access/101427.cc: New test.
2350 2021-07-15 Jonathan Wakely <jwakely@redhat.com>
2353 * include/bits/c++config (__replacement_assert): Add noexcept.
2354 [!_GLIBCXX_VERBOSE] (__glibcxx_assert_impl): Use __builtin_abort
2355 instead of __replacement_assert.
2357 2021-07-14 Jonathan Wakely <jwakely@redhat.com>
2359 * include/std/string_view (basic_string_view(It, End)): Add
2361 * testsuite/21_strings/basic_string_view/cons/char/range.cc:
2362 Check noexcept-specifier. Also check construction without CTAD.
2364 2021-07-13 Jonathan Wakely <jwakely@redhat.com>
2367 * include/std/string_view (ends_with): Use traits_type::compare
2370 2021-07-13 Jonathan Wakely <jwakely@redhat.com>
2372 * include/std/string_view: Only include <bits/ranges_base.h>
2373 once, and only for C++20 and later.
2375 2021-07-12 Jonathan Wakely <jwakely@redhat.com>
2378 * include/std/span (as_writable_bytes): Add requires-clause.
2379 * testsuite/23_containers/span/101411.cc: New test.
2381 2021-07-09 Matheus Castanho <msc@linux.ibm.com>
2383 * include/std/mutex (__lock_impl): Check
2384 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
2386 2021-07-02 Jonathan Wakely <jwakely@redhat.com>
2389 * include/bits/unique_ptr.h (unique_ptr<T[],D>::operator[]):
2390 Remove noexcept-specifier.
2391 (unique_ptr<T[],D>::_S_nothrow_deref): Remove.
2392 * testsuite/20_util/unique_ptr/lwg2762.cc: Remove checks for
2395 2021-07-01 Jonathan Wakely <jwakely@redhat.com>
2397 * doc/doxygen/doxygroups.cc: Fix docs for std::literals.
2398 * doc/doxygen/user.cfg.in: Exclude the Networking TS header.
2399 Add some more predefined macros.
2400 * include/bits/fs_fwd.h: Move @addtogroup commands inside
2401 namespaces. Add better documentation.
2402 * include/bits/fs_path.h: Likewise.
2403 * include/experimental/bits/fs_fwd.h: Likewise.
2404 * include/experimental/bits/fs_path.h: Likewise.
2405 * include/ext/throw_allocator.h: Fix typo and improve docs.
2406 * include/std/chrono: Move @addtogroup commands.
2407 * include/std/system_error: Move @addtogroup commands.
2408 * libsupc++/exception: Improve documentation.
2409 * libsupc++/exception.h: Add @since documentation.
2411 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
2414 * doc/doxygen/user.cfg.in (INPUT): Add <experimental/simd>.
2415 (COLS_IN_ALPHA_INDEX): Remove obsolete tag.
2416 (PREDEFINED): Add/fix some more macros that need to be expanded.
2417 * include/bits/random.h: Stop Doxygen from documenting internal
2418 implementation details.
2419 * include/bits/random.tcc: Likewise.
2420 * include/bits/this_thread_sleep.h: Fix @file name.
2421 * include/experimental/bits/simd.h: Add to Doxygen group. Do not
2422 document internal implementation details.
2423 * include/experimental/bits/simd_detail.h: Do not document
2424 internal implementation details.
2425 * include/experimental/simd: Define Doxygen groups.
2426 * include/experimental/type_traits: Improve documentation for
2427 the header file. Define groups. Use @since commands.
2428 * include/std/scoped_allocator (scoped_allocator_adaptor): Move
2429 declaration before undocumented region.
2430 * include/std/type_traits (true_type, false_type): Use using
2431 declaration instead of typedef.
2432 (is_invocable_v, is_nothrow_invocable_v, is_invocable_r_v)
2433 (is_nothrow_invocable_r_v): Move definitions next to other C++17
2435 Do not document internal implementation details. Move misplaced
2436 group-end command. Define group for variable templates.
2437 * include/std/variant: Do not document internal implementation
2439 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2442 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
2444 * include/experimental/simd: Do not define anything pre-C++17.
2446 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
2448 * include/bits/random.tcc [__cpp_inline_variables]: Remove
2449 redundant definitions of static constexpr member variables.
2450 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2453 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
2455 * include/bits/streambuf.tcc (__copy_streambufs_eof): Remove
2456 explicit instantiation declarations.
2457 * src/c++11/streambuf-inst.cc (__copy_streambufs_eof): Remove
2458 explicit instantiation definitions.
2460 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
2463 * testsuite/17_intro/names.cc: Fix #if condition for names used
2466 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
2469 * include/bits/unique_ptr.h (unique_ptr<T[], D>::operator[]):
2470 Fail gracefully if element_type is incomplete.
2471 * testsuite/20_util/unique_ptr/cons/incomplete.cc: Clarify that
2472 the standard doesn't require this test to work for array types.
2473 * testsuite/20_util/unique_ptr/lwg2762.cc: Check that incomplete
2474 types can be used with array specialization.
2475 * testsuite/20_util/unique_ptr/101236.cc: New test.
2477 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
2479 * doc/xml/manual/intro.xml: Document LWG 415 change.
2480 * doc/html/manual/bugs.html: Regenerate.
2481 * include/bits/istream.tcc (ws): Create sentry and catch
2483 * testsuite/27_io/basic_istream/ws/char/lwg415.cc: New test.
2484 * testsuite/27_io/basic_istream/ws/wchar_t/lwg415.cc: New test.
2486 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
2488 * include/bits/ostream.tcc (basic_ostream::write): Call sputn
2489 directly instead of using _M_write. Do setstate(__err) all
2490 outside the try-catch block.
2491 * include/std/ostream (basic_ostream::_M_write): Declare
2492 private. Use __ostream_insert. Do not define for the versioned
2495 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
2497 * doc/xml/manual/intro.xml: Document LWG 581 change.
2498 * doc/html/manual/bugs.html: Regenerate.
2499 * include/bits/basic_ios.tcc: Whitespace.
2500 * include/bits/ostream.tcc (basic_ostream::flush()): Construct
2502 * testsuite/27_io/basic_ostream/flush/char/2.cc: Check
2504 * testsuite/27_io/basic_ostream/flush/char/exceptions_badbit_throw.cc:
2506 * testsuite/27_io/basic_ostream/flush/wchar_t/2.cc: Likewise.
2507 * testsuite/27_io/basic_ostream/flush/wchar_t/exceptions_badbit_throw.cc:
2510 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
2512 * include/bits/ostream.tcc (sentry): Only set failbit if badbit
2513 is set, not if eofbit is set.
2514 (tellp, seekp, seekp): Create sentry object. Do not set badbit
2516 * testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc:
2517 Adjust expected behaviour.
2518 * testsuite/27_io/basic_ostream/seekp/wchar_t/exceptions_badbit_throw.cc:
2520 * testsuite/27_io/basic_ostream/tellp/char/exceptions_badbit_throw.cc:
2522 * testsuite/27_io/basic_ostream/tellp/wchar_t/exceptions_badbit_throw.cc:
2524 * testsuite/27_io/basic_ostream/seekp/char/n3168.cc: New test.
2525 * testsuite/27_io/basic_ostream/seekp/wchar_t/n3168.cc: New test.
2526 * testsuite/27_io/basic_ostream/tellp/char/n3168.cc: New test.
2527 * testsuite/27_io/basic_ostream/tellp/wchar_t/n3168.cc: New test.
2529 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
2531 * include/std/syncstream (basic_syncbuf::swap()): Remove
2532 noexcept, as per LWG 3498.
2534 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
2537 * testsuite/17_intro/names.cc: Undef more names for newlib and
2538 also for arm-none-linux-gnueabi.
2539 * testsuite/experimental/names.cc: Disable PCH.
2541 2021-06-25 Matthias Kretz <m.kretz@gsi.de>
2543 * include/experimental/bits/simd.h (__bit_cast): Implement via
2544 __builtin_bit_cast #if available.
2545 (__proposed::simd_bit_cast): Add overloads for simd and
2546 simd_mask, which use __builtin_bit_cast (or __bit_cast #if not
2547 available), which return an object of the requested type with
2548 the same bits as the argument.
2549 * include/experimental/bits/simd_math.h: Use simd_bit_cast
2550 instead of __bit_cast to allow casts to fixed_size_simd.
2551 (copysign): Remove branch that was only required if __bit_cast
2552 cannot be constexpr.
2553 * testsuite/experimental/simd/tests/bits/test_values.h: Switch
2554 from __bit_cast to __proposed::simd_bit_cast since the former
2555 will not cast fixed_size objects anymore.
2557 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2559 * include/experimental/bits/simd_math.h
2560 (_GLIBCXX_SIMD_MATH_CALL2_): Rename arg2_ to __arg2.
2561 (_GLIBCXX_SIMD_MATH_CALL3_): Rename arg2_ to __arg2 and arg3_ to
2564 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2566 * include/experimental/bits/simd.h (__execute_on_index_sequence)
2567 (__execute_on_index_sequence_with_return)
2568 (__call_with_n_evaluations, __call_with_subscripts): Add flatten
2571 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2573 * include/experimental/bits/simd_x86.h (_S_trunc, _S_floor)
2574 (_S_ceil): Set bit 8 (_MM_FROUND_NO_EXC) on AVX and SSE4.1
2577 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2579 * include/experimental/bits/simd_x86.h (_S_ldexp): The AVX512F
2580 implementation doesn't require a _VecBltnBtmsk ABI tag, it
2581 requires either a 64-Byte input (in which case AVX512F must be
2582 available) or AVX512VL.
2584 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2586 * include/experimental/bits/simd_math.h: Undefine internal
2588 (frexp): Move #if to a more sensible position and reformat
2590 (logb): Call _SimdImpl::_S_logb for fixed_size instead of
2591 duplicating the code here.
2592 (modf): Simplify condition.
2594 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2596 * include/experimental/bits/simd_math.h (fabs): Remove
2597 fabs(simd<integral>) overload.
2599 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2601 * include/experimental/bits/simd_converter.h
2602 (_SimdConverter::operator()): Pass _SimdTuple by const-ref.
2603 * include/experimental/bits/simd_fixed_size.h
2604 (_GLIBCXX_SIMD_FIXED_OP): Pass binary operator _SimdTuple
2605 arguments by const-ref.
2606 (_S_masked_unary): Pass _SimdTuple by const-ref.
2608 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2610 * include/experimental/bits/simd_fixed_size.h
2611 (_AbisInSimdTuple): Removed.
2613 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2615 * include/experimental/bits/simd.h: Add missing operator~
2616 overload for simd<floating-point> to __float_bitwise_operators.
2617 * include/experimental/bits/simd_builtin.h
2618 (_SimdImplBuiltin::_S_complement): Bitcast to int (and back) to
2619 implement complement for floating-point vectors.
2620 * include/experimental/bits/simd_fixed_size.h
2621 (_SimdImplFixedSize::_S_copysign): New function, forwarding to
2622 copysign implementation of _SimdTuple members.
2623 * include/experimental/bits/simd_math.h (copysign): Call
2624 _SimdImpl::_S_copysign for fixed_size arguments. Simplify
2625 generic copysign implementation using the new ~ operator.
2627 2021-06-24 Jonathan Wakely <jwakely@redhat.com>
2629 * testsuite/experimental/simd/README.md: Fix typos.
2631 2021-06-24 Jonathan Wakely <jwakely@redhat.com>
2633 * include/bits/shared_ptr_base.h (__shared_ptr_access::operator[]):
2635 * include/bits/unique_ptr.h (unique_ptr::operator*): Add
2636 conditional noexcept as per LWG 2762.
2637 * testsuite/20_util/shared_ptr/observers/array.cc: Check that
2638 dereferencing cannot throw.
2639 * testsuite/20_util/shared_ptr/observers/get.cc: Likewise.
2640 * testsuite/20_util/optional/observers/lwg2762.cc: New test.
2641 * testsuite/20_util/unique_ptr/lwg2762.cc: New test.
2643 2021-06-23 Patrick Palka <ppalka@redhat.com>
2646 * testsuite/23_containers/multiset/cons/deduction.cc:
2647 Uncomment CTAD example that was rejected by this bug.
2648 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
2650 2021-06-23 Jonathan Wakely <jwakely@redhat.com>
2652 * include/std/chrono (chrono::year::is_leap()): Fix incorrect
2655 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
2657 * testsuite/experimental/simd/README.md: New file.
2659 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
2661 * testsuite/experimental/simd/driver.sh: Rewrite output
2662 verbosity logic. Add -p/--percentage option. Allow -v/--verbose
2663 to be used twice. Add -x and -o short options. Parse long
2664 options with = instead of separating space generically. Parce
2665 contracted short options. Make unrecognized options an error.
2666 If same-line output is active, trap on EXIT to increment the
2667 progress (only with --percentage), erase the line and print the
2669 * testsuite/experimental/simd/generate_makefile.sh: Initialize
2670 helper files for progress account keeping. Update help target
2671 for changes to DRIVEROPTS.
2673 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
2675 * testsuite/Makefile.am (check-simd): Remove -fno-tree-vrp flag
2676 and associated warning.
2677 * testsuite/Makefile.in: Regenerate.
2679 2021-06-23 Cassio Neri <cassio.neri@gmail.com>
2680 Jonathan Wakely <jwakely@redhat.com>
2681 Ulrich Drepper <drepper@redhat.com>
2683 * include/std/chrono (chrono::year::is_leap()): Optimize.
2685 2021-06-23 Patrick Palka <ppalka@redhat.com>
2688 * testsuite/23_containers/map/cons/deduction.cc: Replace ambiguous
2690 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
2691 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
2692 Mention one of the replaced examples is broken due to PR101174.
2693 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
2694 * testsuite/23_containers/unordered_map/cons/deduction.cc: Replace
2695 ambiguous CTAD examples.
2696 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
2698 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
2700 * testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise.
2702 2021-06-23 Jonathan Wakely <jwakely@redhat.com>
2704 * include/std/mutex (__detail::__try_lock_impl): Rename
2705 parameter to avoid clashing with newlib's __lockable macro.
2706 (try_lock): Add 'inline' specifier.
2707 * testsuite/17_intro/names.cc: Add check for __lockable.
2708 * testsuite/30_threads/try_lock/5.cc: Add options for pthreads.
2710 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
2711 Matthias Kretz <m.kretz@gsi.de>
2713 * include/std/mutex (lock): Replace recursion with iteration
2714 when lockables all have the same type.
2715 (__detail::__try_lock_impl): Likewise. Pass lockables as
2716 parameters, instead of a tuple. Always lock the first one, and
2717 recurse for the rest.
2718 (__detail::__lock_impl): Adjust call to __try_lock_impl.
2719 (__detail::__try_to_lock): Remove.
2720 * testsuite/30_threads/lock/3.cc: Check that mutexes are locked.
2721 * testsuite/30_threads/lock/4.cc: Also test non-heterogeneous
2723 * testsuite/30_threads/unique_lock/cons/60497.cc: Also check
2725 * testsuite/30_threads/try_lock/5.cc: New test.
2727 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
2729 * include/std/memory (declare_reachable, undeclare_reachable)
2730 (declare_no_pointers, undeclare_no_pointers, get_pointer_safety)
2731 (pointer_safety): Only define for C++11 to C++20 inclusive.
2732 * testsuite/20_util/pointer_safety/1.cc: Do not run for C++23.
2734 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
2736 * include/bits/random.h (seed_seq): Constrain initializer-list
2738 * include/bits/random.tcc (seed_seq): Add template parameter.
2739 * testsuite/26_numerics/random/seed_seq/cons/default.cc: Check
2741 * testsuite/26_numerics/random/seed_seq/cons/initlist.cc: Check
2744 2021-06-22 Thomas Rodgers <rodgert@appliantology.com>
2747 * include/bits/semaphore_base.h (__atomic_semaphore::_M_release):
2748 Force _M_release() to wake all waiting threads.
2749 * testsuite/30_threads/semaphore/100806.cc: New test.
2751 2021-06-21 Jonathan Wakely <jwakely@redhat.com>
2753 * include/std/mutex (__try_to_lock): Move to __detail namespace.
2754 (struct __try_lock_impl): Replace with ...
2755 (__detail::__try_lock_impl<Idx>(tuple<Lockables...>&)): New
2756 function templates to implement std::try_lock.
2757 (try_lock): Use new __try_lock_impl.
2758 (__detail::__lock_impl(int, int&, L0&, L1&...)): New function
2759 template to implement std::lock.
2760 (lock): Use __lock_impl.
2762 2021-06-21 Patrick Palka <ppalka@redhat.com>
2764 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
2766 2021-06-20 Patrick Palka <ppalka@redhat.com>
2768 * include/std/ranges (__non_propagating_cache::operator bool):
2769 Define for split_view::begin().
2770 (split_view): Define as per P2210.
2771 (views::__detail::__can_split_view): Define.
2772 (views::_Split, views::split): Define.
2773 * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
2775 * testsuite/std/ranges/adaptors/split.cc: New test.
2776 * testsuite/std/ranges/p2325.cc (test08a): New test.
2777 * testsuite/std/ranges/p2367.cc (test01): Test views::split.
2779 2021-06-20 Patrick Palka <ppalka@redhat.com>
2781 * include/std/ranges: Rename views::split to views::lazy_split,
2782 split_view to lazy_split_view, etc. throughout.
2783 * testsuite/std/ranges/*: Likewise.
2784 * testsuite/std/ranges/adaptors/lazy_split.cc: New file.
2785 * testsuite/std/ranges/adaptors/lazy_split_neg.cc: New file.
2787 2021-06-20 Patrick Palka <ppalka@redhat.com>
2789 * include/std/ranges (split_view::_OuterIter::__at_end):
2790 Check _M_trailing_empty.
2791 (split_view::_OuterIter::_M_trailing_empty): Define this
2793 (split_view::_OuterIter::operator++): Set _M_trailing_empty
2795 (split_view::_OuterIter::operator==): Compare
2797 * testsuite/std/ranges/adaptors/100479.cc (test03): Expect two
2798 split parts instead of one.
2799 * testsuite/std/ranges/adaptors/split.cc (test11): New test.
2801 2021-06-20 Patrick Palka <ppalka@redhat.com>
2803 * include/std/ranges (split_view::_InnerIter::base): Define as
2806 2021-06-19 Patrick Palka <ppalka@redhat.com>
2808 * include/std/ranges (transform_view::_Iterator::_S_iter_concept):
2809 Consider _Base instead of _Vp as per LWG 3555.
2810 (elements_view::_Iterator::_S_iter_concept): Likewise.
2812 2021-06-19 Patrick Palka <ppalka@redhat.com>
2814 * include/std/ranges (split_view::_OuterIter::value_type::begin):
2815 Remove the non-const overload, and remove the copyable constraint
2816 on the const overload as per LWG 3553.
2818 2021-06-19 Patrick Palka <ppalka@redhat.com>
2820 * include/bits/stl_iterator.h
2821 (__detail::__common_iter_use_postfix_proxy): Add
2822 move_constructible constraint as per LWG 3546.
2823 (common_iterator::__postfix_proxy): Adjust initializer of
2824 _M_keep as per LWG 3546.
2826 2021-06-18 Patrick Palka <ppalka@redhat.com>
2829 * include/bits/ranges_algo.h (__minmax_fn::operator()): Rewrite
2830 to limit comparison complexity to 3*N/2.
2831 (__minmax_element_fn::operator()): Likewise.
2832 (shift_right): Avoid premature std::move of __result.
2833 * testsuite/25_algorithms/minmax/constrained.cc (test04, test05):
2835 * testsuite/25_algorithms/minmax_element/constrained.cc (test02):
2838 2021-06-18 Patrick Palka <ppalka@redhat.com>
2840 * include/std/concepts (convertible_to): Just use declval as per
2843 2021-06-18 Jonathan Wakely <jwakely@redhat.com>
2846 * include/std/numeric (reduce(Iter, Iter, T, BinaryOp)): Replace
2847 incorrect static_assert with ones matching the 'Mandates'
2848 conditions in the standard.
2849 * testsuite/26_numerics/reduce/95833.cc: New test.
2851 2021-06-18 Jonathan Wakely <jwakely@redhat.com>
2853 * testsuite/21_strings/basic_string/cons/char/1.cc: Use
2854 diagnostic pragma to suppress -Wstringop-overread error.
2856 2021-06-18 Patrick Palka <ppalka@redhat.com>
2858 * include/bits/ranges_algo.h (__find_fn, find, __find_if_fn)
2859 (find_if, __find_if_not_fn, find_if_not, _in_in_result)
2860 (__mismatch_fn, mismatch, __search_fn, search): Move to ...
2861 * include/bits/ranges_util.h: ... here.
2862 * include/std/ranges (__detail::find, __detail::find_if)
2863 (__detail::find_if_not, __detail::mismatch): Remove.
2864 (filter_view): Use ranges::find_if instead.
2865 (drop_while_view): Use ranges::find_if_not instead.
2866 (split_view): Use ranges::find and ranges::mismatch instead.
2868 2021-06-18 Patrick Palka <ppalka@redhat.com>
2870 * include/bits/iterator_concepts.h (weakly_incrementable): Remove
2871 default_initializable requirement.
2872 * include/bits/ranges_base.h (ranges::view): Likewise.
2873 * include/bits/ranges_util.h (subrange): Constrain the default
2875 * include/bits/stl_iterator.h (back_insert_iterator): Remove the
2877 (front_insert_iterator): Likewise.
2878 (insert_iterator): Likewise. Remove NSDMIs.
2879 (common_iterator): Constrain the default ctor.
2880 (counted_iterator): Likewise.
2881 * include/bits/stream_iterator.h (ostream_iterator): Remove the
2883 * include/std/ranges (__detail::__box::operator=): Handle
2884 self-assignment in the primary template.
2885 (__detail::__box): In the partial specialization: adjust
2886 constraints as per P2325. Add specialized operator= for the
2887 case when the wrapped type is not copyable. Constrain the
2888 default ctor. Avoid list-initialization.
2889 (single_view): Constraint the default ctor.
2890 (iota_view): Relax semiregular constraint to copyable.
2891 Constrain the default ctor.
2892 (iota_view::_Iterator): Constraint the default ctor.
2893 (basic_istream_view): Remove the default ctor. Remove NSDMIs.
2894 Remove redundant checks for empty _M_stream.
2895 (basic_istream_view::_Iterator): Likewise.
2896 (ref_view): Remove the default ctor. Remove NSDMIs.
2897 (ref_view::_Iterator): Constrain the default ctor.
2898 (__detail::__non_propagating_cache::operator=): Define overload
2899 for assigning from a value of the underlying type.
2900 (filter_view): Likewise.
2901 (filter_view::_Iterator): Likewise.
2902 (transform_view): Likewise.
2903 (transform_view::_Iterator): Likewise.
2904 (take_view): Likewise.
2905 (take_view::_Iterator): Likewise.
2906 (take_while_view): Likewise.
2907 (take_while_view::_Iterator): Likewise.
2908 (drop_while_view): Likewise.
2909 (drop_while_view::_Iterator): Likewise.
2910 (join_view): Likewise.
2911 (split_view::_OuterIter::__current): Adjust after changing the
2913 (split_view::_M_current): Wrap it in a __non_propagating_cache.
2914 (split_view::split_view): Constrain the default ctor.
2915 (common_view): Constrain the default ctor.
2916 (reverse_view): Likewise.
2917 (elements_view): Likewise.
2918 * include/std/span (enable_view<span<_ElementType, _Extent>>):
2919 Define this partial specialization to true unconditionally.
2920 * include/std/version (__cpp_lib_ranges): Adjust value.
2921 * testsuite/24_iterators/back_insert_iterator/constexpr.cc:
2922 Don't attempt to default construct a back_insert_iterator.
2923 * testsuite/24_iterators/front_insert_iterator/constexpr.cc:
2924 Don't attempt to default construct a front_insert_iterator.
2925 * testsuite/24_iterators/insert_iterator/constexpr.cc:
2926 Don't attempt to default construct an insert_iterator.
2927 * testsuite/24_iterators/ostream_iterator/requirements/constexpr.cc:
2928 Remove this test for default constructibility of ostream_iterator.
2929 * testsuite/std/ranges/97600.cc: Don't attempt to default
2930 construct a basic_istream_view.
2931 * testsuite/std/ranges/adaptors/detail/semiregular_box.cc:
2933 * testsuite/std/ranges/adaptors/detail/copyable_box.cc: ... this.
2934 (test02): Adjust now that __box is copyable-box not
2937 * testsuite/std/ranges/p2325.cc: New test.
2938 * testsuite/std/ranges/single_view.cc (test06): New test.
2939 * testsuite/std/ranges/view.cc: Adjust now that view doesn't
2940 require default_initializable.
2942 2021-06-17 Jonathan Wakely <jwakely@redhat.com>
2945 * include/bits/basic_string.h (__cpp_lib_constexpr_string): Only
2946 define when is_constant_evaluated is available.
2947 * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits):
2949 (__constant_string_p, __constant_array_p): Remove.
2950 (char_traits): Use is_constant_evaluated directly.
2951 * include/std/version (__cpp_lib_constexpr_char_traits)
2952 (__cpp_lib_constexpr_string): Only define when
2953 is_constant_evaluated is available.
2955 2021-06-17 Patrick Palka <ppalka@redhat.com>
2958 * include/std/ranges (__adaptor::_Partial): For the "simple"
2959 forwarding partial specializations, also require that
2960 the extra arguments are trivially copyable.
2961 * testsuite/std/ranges/adaptors/100577.cc (test04): New test.
2963 2021-06-17 Patrick Palka <ppalka@redhat.com>
2966 * include/std/ranges (__adaptor::_RangeAdaptor): Document the
2967 template form of _S_has_simple_extra_args.
2968 (__adaptor::__adaptor_has_simple_extra_args): Add _Args template
2969 parameter pack. Try to treat _S_has_simple_extra_args as a
2970 variable template parameterized by _Args.
2971 (__adaptor::_Partial): Pass _Arg/_Args to the constraint
2972 __adaptor_has_simple_extra_args.
2973 (views::_Take::_S_has_simple_extra_args): Templatize according
2974 to the type of the extra argument.
2975 (views::_Drop::_S_has_simple_extra_args): Likewise.
2976 (views::_Split::_S_has_simple_extra_args): Define.
2977 * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
2978 Adjust after changes to _S_has_simple_extra_args mechanism.
2981 2021-06-16 Jonathan Wakely <jwakely@redhat.com>
2983 * include/bits/iterator_concepts.h (__decay_copy): Name type.
2985 2021-06-16 Jonathan Wakely <jwakely@redhat.com>
2987 * include/bits/ranges_base.h (ranges::begin, ranges::end)
2988 (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
2989 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
2990 (ranges::empty, ranges::data, ranges::cdata): Remove final
2991 keywords and deleted operator& overloads.
2992 * testsuite/24_iterators/customization_points/iter_move.cc: Use
2993 new is_customization_point_object function.
2994 * testsuite/24_iterators/customization_points/iter_swap.cc:
2996 * testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc:
2998 * testsuite/std/ranges/access/begin.cc: Likewise.
2999 * testsuite/std/ranges/access/cbegin.cc: Likewise.
3000 * testsuite/std/ranges/access/cdata.cc: Likewise.
3001 * testsuite/std/ranges/access/cend.cc: Likewise.
3002 * testsuite/std/ranges/access/crbegin.cc: Likewise.
3003 * testsuite/std/ranges/access/crend.cc: Likewise.
3004 * testsuite/std/ranges/access/data.cc: Likewise.
3005 * testsuite/std/ranges/access/empty.cc: Likewise.
3006 * testsuite/std/ranges/access/end.cc: Likewise.
3007 * testsuite/std/ranges/access/rbegin.cc: Likewise.
3008 * testsuite/std/ranges/access/rend.cc: Likewise.
3009 * testsuite/std/ranges/access/size.cc: Likewise.
3010 * testsuite/std/ranges/access/ssize.cc: Likewise.
3011 * testsuite/util/testsuite_iterators.h
3012 (is_customization_point_object): New function.
3014 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
3016 * include/bits/ranges_base.h (ranges::begin, ranges::end)
3017 (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
3018 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
3019 (ranges::empty, ranges::data, ranges::cdata): Make types final.
3020 Add deleted operator& overloads.
3021 (ranges::advance, ranges::distance, ranges::next, ranges::prev):
3023 * testsuite/std/ranges/headers/ranges/synopsis.cc: Replace
3024 ill-formed & expressions with using-declarations. Add checks for
3025 other function objects.
3027 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
3029 * include/bits/ranges_util.h (view_interface): Add noexcept to
3030 empty, operator bool, data and size members.
3031 (subrange): Add noexcept to constructors.
3032 * include/std/ranges (single_view, ref_view): Add noexcept to
3034 (views::single, views::all): Add noexcept.
3035 * testsuite/std/ranges/adaptors/all.cc: Check noexcept.
3036 * testsuite/std/ranges/single_view.cc: Likewise.
3038 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
3040 * include/bits/ranges_util.h (subrange): Add __size_type typedef
3041 and use it to simplify declarations.
3042 (subrange(i, s, n)): Remove assertion.
3043 * testsuite/std/ranges/subrange/constexpr.cc: New test.
3045 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
3047 * include/bits/iterator_concepts.h (__cust_access::__decay_copy):
3048 Replace with function object.
3049 (__cust_access::__member_begin, ___cust_access::_adl_begin): Use
3050 __decay_copy unqualified.
3051 * include/bits/ranges_base.h (__member_end, __adl_end):
3052 Likewise. Use __range_iter_t for type of ranges::begin.
3053 (__member_rend): Use correct value category for rbegin argument.
3054 (__member_data): Use __decay_copy unqualified.
3055 (__begin_data): Use __range_iter_t for type of ranges::begin.
3057 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3059 * include/bits/ranges_base.h (ranges::empty): Check whether
3060 conversion to bool can throw.
3061 * testsuite/std/ranges/access/empty.cc: Check for correct
3064 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3067 * include/std/type_traits (__common_ref_impl<X&, Y&>): Only
3068 use the type if it's a reference.
3069 * testsuite/20_util/common_reference/100894.cc: New test.
3071 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3073 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
3074 Add dg-require-filesystem-ts directive.
3076 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3079 * include/std/any (any(in_place_t<T>, initializer_list<U>, A&&...))
3080 (any::emplace<T>(initializer_list<U>, A&&...)): Fix constraint
3082 * testsuite/20_util/any/cons/101034.cc: New test.
3084 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3086 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Add
3087 -std=gnu++17 option.
3089 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3092 * libsupc++/compare (compare_partial_order_fallback): Add
3093 constraint using reversed parameter order, as per LWG 3465.
3094 * testsuite/18_support/comparisons/algorithms/fallback.cc:
3095 Adjust expected result.
3097 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3099 * libsupc++/compare (__decayed_same_as): New helper concept.
3100 (strong_order, weak_order, partial_order): Constrain with new
3101 concept instead of using static_assert.
3102 (compare_strong_order_fallback, compare_weak_order_fallback)
3103 (compare_partial_order_fallback): Likewise. Do not deduce return
3104 types. Remove redundant if-constexpr checks.
3105 * testsuite/18_support/comparisons/algorithms/fallback.cc: New test.
3107 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3110 * include/std/tuple: Use reserved form of attribute name.
3111 * testsuite/17_intro/headers/c++2011/all_attributes.cc: Add
3112 check for no_unique_address.
3113 * testsuite/17_intro/headers/c++2014/all_attributes.cc:
3115 * testsuite/17_intro/headers/c++2017/all_attributes.cc:
3118 2021-06-11 Jonathan Wakely <jwakely@redhat.com>
3120 * include/bits/fs_path.h (operator==, operator<=>): Use new
3121 _S_compare function.
3122 (path::_S_compare): New function to call path::compare in a
3123 context where path::iterator is complete.
3124 * include/experimental/bits/fs_path.h (operator<, operator==):
3125 Define after path::iterator is complete.
3126 * testsuite/27_io/filesystem/path/native/conv_c++23.cc: New
3128 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
3131 2021-06-09 Thomas Rodgers <rodgert@appliantology.com>
3133 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Guard
3134 test logic with constexpr check for is_always_lock_free.
3136 2021-06-09 Jonathan Wakely <jwakely@redhat.com>
3139 * include/std/optional (optional::operator=(const optional<U>&)):
3140 Fix value category used in is_assignable check.
3141 * testsuite/20_util/optional/assignment/100982.cc: New test.
3143 2021-06-09 Jonathan Wakely <jwakely@redhat.com>
3145 * include/bits/allocator.h (allocator::is_always_equal): Deprecate.
3146 * include/bits/iterator_concepts.h (indirectly_readable_traits):
3147 Add LWG issue number to comment.
3148 * include/std/memory_resource (polymorphic_allocator::release):
3150 * testsuite/20_util/allocator/requirements/typedefs.cc: Add
3151 dg-warning for deprecation. Also check std::allocator<void>.
3153 2021-06-08 Thomas Rodgers <rodgert@appliantology.com>
3156 * include/bits/atomic_base.h (atomic_ref<_Tp*>::wait):
3157 Change parameter type from _Tp to _Tp*.
3158 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Extend
3159 coverage of types tested.
3161 2021-06-08 Thomas Rodgers <rodgert@appliantology.com>
3163 * include/std/barrier (__tree_barrier::_M_arrive): Remove
3164 unnecessary hasher instantiation.
3166 2021-06-08 Jonathan Wakely <jwakely@redhat.com>
3168 * include/experimental/propagate_const (swap): Constrain.
3169 * testsuite/experimental/propagate_const/swap/lwg3413.cc: New test.
3171 2021-06-07 Avi Kivity <avi@scylladb.com>
3174 * include/std/ranges (elements_view::__iter_cat::_S_iter_cat):
3175 Add missing typename.
3177 2021-06-07 Jonathan Wakely <jwakely@redhat.com>
3180 * include/std/optional (operator<=>(const optional<T>& const U&)):
3181 Add missing constraint and add workaround for template
3183 * testsuite/20_util/optional/relops/three_way.cc: Check that
3184 type without equality comparison cannot be compared when wrapped
3187 2021-06-05 Jonathan Wakely <jwakely@redhat.com>
3190 * include/bits/ranges_base.h (_SSize): Return signed type.
3191 * testsuite/std/ranges/access/ssize.cc: Check with __int128.
3193 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
3195 * include/bits/ranges_base.h (_SSize): Return the result of
3196 ranges::size converted to the wider of make-signed-like-t<S> and
3197 ptrdiff_t, rather than the ranges different type.
3198 * testsuite/std/ranges/access/ssize.cc: Adjust expected result
3199 for an iota_view that uses an integer class type for its
3202 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
3205 * include/bits/ranges_base.h (__member_data): Use __decay_copy.
3206 * testsuite/std/ranges/access/data.cc: Add testcase from PR.
3208 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
3211 * include/bits/iterator_concepts.h (__detail::__decay_copy)
3212 (__detail::__member_begin, __detail::__adl_begin): Move to
3213 namespace ranges::__cust_access.
3214 (__detail::__ranges_begin): Likewise, and rename to __begin.
3215 Remove redundant static assertion.
3216 * include/bits/ranges_base.h (_Begin, _End, _RBegin, _REnd):
3217 Use lvalue in noexcept specifier.
3218 (__as_const): Add non-deduced parameter for value category.
3219 (_CBegin, _CEnd, _CRBegin, _CREnd, _CData): Adjust uses of
3221 (__member_size, __adl_size, __member_empty, __size0_empty):
3222 (__eq_iter_empty, __adl_data): Use lvalue objects in
3224 (__sentinel_size): Likewise. Add check for conversion to
3226 (__member_data): Allow non-lvalue types to satisfy the concept,
3227 but use lvalue object in requirements.
3228 (_Size, _SSize): Remove forwarding to always use an lvalue.
3229 (_Data): Likewise. Add static assertion for arrays.
3230 * testsuite/std/ranges/access/cdata.cc: Adjust expected
3231 behaviour for rvalues. Add negative tests for ill-formed
3233 * testsuite/std/ranges/access/data.cc: Likewise.
3234 * testsuite/std/ranges/access/empty.cc: Adjust expected
3235 behaviour for rvalues.
3236 * testsuite/std/ranges/access/size.cc: Likewise.
3238 2021-06-04 Tim Adye <Tim.Adye@cern.ch>
3240 * include/std/any (any::_Manager::_S_access): New static
3241 function to access the contained value.
3242 (any::emplace, __any_caster): Use _S_access member of the
3245 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
3247 * doc/xml/manual/status_cxx2020.xml:
3248 * doc/html/*: Regenerate.
3249 * include/bits/hashtable.h (__cpp_lib_generic_unordered_lookup):
3251 * include/std/version (__cpp_lib_generic_unordered_lookup):
3253 * testsuite/23_containers/unordered_map/operations/1.cc: Check
3255 * testsuite/23_containers/unordered_set/operations/1.cc:
3258 2021-06-03 Patrick Palka <ppalka@redhat.com>
3260 * include/bits/ranges_algo.h (__detail::__can_reread_output):
3261 Factor out this concept from ...
3262 (__unique_copy_fn::operator()): ... here. Use the concept
3264 * testsuite/std/ranges/range.cc: Remove now ill-formed use
3265 of range_value_t on an output_range.
3266 * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
3267 Define value_type, pointer and reference member types to void.
3269 2021-06-03 Patrick Palka <ppalka@redhat.com>
3272 * include/std/ranges (_RangeAdaptorClosure): Document
3273 _S_has_simple_call_op mechanism.
3274 (_RangeAdaptor): Document _S_has_simple_extra_args mechanism.
3275 (__closure_has_simple_call_op): New concept.
3276 (__adaptor_has_simple_extra_args): Likewise.
3277 (_Partial<_Adaptor, _Args...>): New partial specialization.
3278 (_Partial<_Adaptor, _Arg>): Likewise.
3279 (_Pipe<_Lhs, _Rhs>): Likewise.
3280 (views::_All::_S_has_simple_call_op): Define to true.
3281 (views::_Filter::_S_has_simple_extra_args): Likewise.
3282 (views::_Transform::_S_has_simple_extra_args): Likewise.
3283 (views::_Take::_S_has_simple_extra_args): Likewise.
3284 (views::_TakeWhile::_S_has_simple_extra_args): Likewise.
3285 (views::_Drop::_S_has_simple_extra_args): Likewise.
3286 (views::_DropWhile::_S_has_simple_extra_args): Likewise.
3287 (views::_Join::_S_has_simple_call_op): Likewise.
3288 (views::_Split): Document why we don't define
3289 _S_has_simple_extra_args to true for this adaptor.
3290 (views::_Common::_S_has_simple_call_op): Define to true.
3291 (views::_Reverse::_S_has_simple_call_op): Likewise.
3292 (views::_Elements::_S_has_simple_call_op): Likewise.
3293 * testsuite/std/ranges/adaptors/100577.cc: New test.
3295 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
3299 * include/bits/hashtable_policy.h (_Hashtable_ebo_helper):
3300 Value-initialize subobject.
3301 * testsuite/23_containers/unordered_map/allocator/default_init.cc:
3303 * testsuite/23_containers/unordered_set/allocator/default_init.cc:
3306 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
3309 * testsuite/23_containers/unordered_map/96088.cc: Adjust
3310 expected number of allocations.
3311 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
3313 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
3315 * doc/xml/manual/status_cxxis29124.xml: Improve punctuation.
3316 * doc/xml/manual/status_cxxtr1.xml: Likewise.
3317 * doc/xml/manual/status_cxxtr24733.xml: Likewise.
3318 * doc/html/*: Regenerate.
3320 2021-06-01 Patrick Palka <ppalka@redhat.com>
3323 * testsuite/23_containers/deque/allocator/default_init.cc,
3324 testsuite/23_containers/forward_list/allocator/default_init.cc,
3325 testsuite/23_containers/list/allocator/default_init.cc,
3326 testsuite/23_containers/map/allocator/default_init.cc,
3327 testsuite/23_containers/set/allocator/default_init.cc,
3328 testsuite/23_containers/vector/allocator/default_init.cc,
3329 testsuite/23_containers/vector/bool/allocator/default_init.cc:
3332 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
3334 * testsuite/23_containers/unordered_map/96088.cc: Change
3335 effective target to c++17.
3336 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
3338 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
3340 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Only test
3341 isblank for C++11 and later.
3343 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
3346 * include/bits/ranges_base.h (ranges::advance(iter, n, sentinel)):
3347 Fix return value for no-op case.
3348 * testsuite/24_iterators/range_operations/advance.cc: Test
3349 return values of three-argument overload.
3351 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
3354 * python/Makefile.am: Use archive name for printer hook if no
3355 dynamic library name is available.
3356 * python/Makefile.in: Regenerate.
3358 2021-05-30 Gerald Pfeifer <gerald@pfeifer.com>
3360 * doc/xml/manual/abi.xml: Remove dead reference to "Intel
3361 Compilers for Linux: Compatibility with GNU Compilers" article.
3362 * doc/html/manual/abi.html: Regenerate.
3364 2021-05-26 François Dumont <fdumont@gcc.gnu.org>
3366 * include/debug/formatter.h
3367 (_Error_formatter::_Parameter::_Named): New.
3368 (_Error_formatter::_Parameter::_Type): Inherit latter.
3369 (_Error_formatter::_Parameter::_M_integer): Likewise.
3370 (_Error_formatter::_Parameter::_M_string): Likewise.
3371 * src/c++11/debug.cc: Include <cstring>.
3372 (_Print_func_t): New.
3373 (print_raw(PrintContext&, const char*, ptrdiff_t)): New.
3374 (print_word): Use '%.*s' format in fprintf to render only expected number of chars.
3375 (pretty_print(PrintContext&, const char*, _Print_func_t)): New.
3376 (print_type): Rename in...
3377 (print_type_info): ...this. Use pretty_print.
3378 (print_address, print_integer): New.
3379 (print_named_name, print_iterator_constness, print_iterator_state): New.
3380 (print_iterator_seq_type): New.
3381 (print_named_field, print_type_field, print_instance_field, print_iterator_field): New.
3382 (print_field): Use latters.
3383 (print_quoted_named_name, print_type_type, print_type, print_instance): New.
3384 (print_string(PrintContext&, const char*, const _Parameter*, size_t)):
3385 Change signature to...
3386 (print_string(PrintContext&, const char*, ptrdiff_t, const _Parameter*, size_t)):
3387 ...this and adapt. Remove intermediate buffer to render input string.
3388 (print_string(PrintContext&, const char*, ptrdiff_t)): New.
3390 2021-05-26 Jonathan Wakely <jwakely@redhat.com>
3393 * include/bits/ranges_base.h (advance, distance, next, prev):
3394 Replace function templates with function objects.
3395 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
3396 Adjust for changes to function objects.
3397 * testsuite/std/ranges/adaptors/elements.cc: Add using
3398 declarations for names from namespace ranges.
3399 * testsuite/std/ranges/adaptors/transform.cc: Likewise.
3400 * testsuite/24_iterators/range_operations/100768.cc: New test.
3402 2021-05-24 François Dumont <fdumont@gcc.gnu.org>
3405 * include/bits/hashtable_policy.h (_Select2nd): New.
3406 (_NodeBuilder<>): New.
3407 (_ReuseOrAllocNode<>::operator()): Use variadic template args.
3408 (_AllocNode<>::operator()): Likewise.
3409 * include/bits/hashtable.h
3410 (_Hashtable<>::__node_builder_t): New.
3411 (_Hashtable<>::_M_insert_unique<>(_Kt&&, _Arg&&, const _NodeGenerator&)):
3413 (_Hashtable<>::_S_forward_key): New.
3414 (_Hashtable<>::_M_insert): Use latter.
3415 (_Hashtable<>::_M_insert(const_iterator, _Arg&&, const _NodeGenerator&, false_type)):
3416 Instantiate node first, compute hash code second.
3417 * testsuite/23_containers/unordered_map/96088.cc: New test.
3418 * testsuite/23_containers/unordered_multimap/96088.cc: New test.
3419 * testsuite/23_containers/unordered_multiset/96088.cc: New test.
3420 * testsuite/23_containers/unordered_set/96088.cc: New test.
3421 * testsuite/util/replacement_memory_operators.h
3422 (counter::_M_increment): New.
3423 (counter::_M_decrement): New.
3424 (counter::reset()): New.
3426 2021-05-24 Patrick Palka <ppalka@redhat.com>
3429 * include/std/ranges (__detail::__non_propagating_cache): Move
3430 definition up to before that of _CachedPosition. Make base
3431 class _Optional_base protected instead of private. Add const
3432 overload for operator*.
3433 (__detail::_CachedPosition): Rewrite the partial specialization
3434 for forward ranges as a derived class of __non_propagating_cache.
3435 Remove the size constraint on the partial specialization for
3436 random access ranges. Add copy/move/copy-assignment/move-assignment
3437 members to the offset partial specialization for random
3438 access ranges that propagate the cached value but additionally
3439 invalidate it in the source object on move.
3440 * testsuite/std/ranges/adaptors/100479.cc: New test.
3442 2021-05-24 Jonathan Wakely <jwakely@redhat.com>
3444 * testsuite/25_algorithms/inplace_merge/constrained.cc: Qualify
3445 call to ranges::next.
3446 * testsuite/25_algorithms/is_sorted/constrained.cc: Likewise.
3447 * testsuite/25_algorithms/is_sorted_until/constrained.cc:
3449 * testsuite/25_algorithms/swap_ranges/1.cc: Qualify call to
3452 2021-05-21 Patrick Palka <ppalka@redhat.com>
3455 * include/std/ranges (drop_while_view::begin): Assert the
3456 precondition added by LWG 3490.
3458 2021-05-21 Patrick Palka <ppalka@redhat.com>
3461 * include/std/ranges (iota_view::_Sentinel::_M_distance_from):
3462 Split out this member function from ...
3463 (iota_view::_Sentinel::operator-): ... here, for sake of access
3465 * testsuite/std/ranges/iota/iota_view.cc (test05): New test.
3467 2021-05-20 Jonathan Wakely <jwakely@redhat.com>
3469 * include/bits/random.tcc (__representable_as_double)
3470 (__p1_representable_as_double): Add "" to static asserts.
3472 2021-05-20 Jonathan Wakely <jwakely@redhat.com>
3475 * include/bits/c++config (__glibcxx_assert_1): Rename to ...
3476 (__glibcxx_constexpr_assert): ... this.
3477 (__glibcxx_assert_impl): Use __glibcxx_constexpr_assert.
3478 (__glibcxx_assert): Define as either __glibcxx_constexpr_assert
3479 or __glibcxx_assert_impl.
3480 (__glibcxx_assert_2): Remove
3481 * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): Use
3482 __glibcxx_constexpr_assert instead of __glibcxx_assert_1.
3483 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
3484 Adjust expected error.
3485 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
3487 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
3490 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
3492 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
3494 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
3496 * testsuite/23_containers/span/back_neg.cc: Likewise.
3497 * testsuite/23_containers/span/front_neg.cc: Likewise.
3498 * testsuite/23_containers/span/index_op_neg.cc: Likewise.
3500 2021-05-20 Patrick Palka <ppalka@redhat.com>
3503 * include/bits/stl_iterator.h (reverse_iterator::difference_type):
3504 In C++20 mode, define in terms of iter_difference_t as per P0896R4.
3505 (reverse_iterator::reference): Likewise, but with iter_reference_t.
3506 (reverse_iterator::value_type): Likewise, but with iter_value_t.
3507 * testsuite/std/ranges/adaptors/reverse.cc (test08): New test.
3508 * testsuite/24_iterators/reverse_iterator/100639.cc: New test.
3510 2021-05-20 Joern Rennecke <joern.rennecke@riscy-ip.com>
3513 * include/std/charconv (to_chars): Hide the overloads for
3514 floating-point types for 16 bit targets.
3515 * src/c++17/floating_to_chars.cc: Don't compile for 16 bit targets.
3516 * testsuite/20_util/to_chars/double.cc: Run this test only on
3518 * testsuite/20_util/to_chars/float.cc: Likewise.
3519 * testsuite/20_util/to_chars/long_double.cc: Likewise.
3521 2021-05-18 Patrick Palka <ppalka@redhat.com>
3524 * include/std/ranges (elements_view::_Sentinel::operator-): Use
3525 _M_distance_from in the other operator- overload too.
3526 * testsuite/std/ranges/adaptors/elements.cc (test06): Augment test.
3528 2021-05-18 Thomas Schwinge <thomas@codesourcery.com>
3530 * testsuite/lib/prune.exp: Add note about 'dg-note'.
3532 2021-05-18 Patrick Palka <ppalka@redhat.com>
3535 * include/std/ranges (__box::__box): Use non-list-initialization
3536 in member initializer list of in-place constructor of the
3537 partial specialization for semiregular types.
3538 (__box::operator->): Use std::__addressof.
3539 * testsuite/std/ranges/adaptors/detail/semiregular_box.cc
3541 * testsuite/std/ranges/single_view.cc (test04): New test.
3543 2021-05-18 Patrick Palka <ppalka@redhat.com>
3546 * include/std/ranges (reverse_view::_S_needs_cached_begin):
3547 Set to true if the underlying non-common random-access range
3548 doesn't have a sized sentinel.
3550 2021-05-18 Patrick Palka <ppalka@redhat.com>
3553 * include/std/ranges (elements_view::_Iterator): Also befriend
3555 (elements_view::_Sentinel::_M_equal): Templatize.
3556 (elements_view::_Sentinel::_M_distance_from): Split out from ...
3557 (elements_view::_Sentinel::operator-): ... here. Depend on
3558 _Base2 instead of _Base in the return type.
3559 * testsuite/std/ranges/adaptors/elements.cc (test06, test07):
3562 2021-05-17 Thomas Rodgers <rodgert@twrodgers.com>
3564 * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): loop
3565 until value change observed.
3566 (__waiter_base::_M_laundered): New member.
3567 (__waiter_base::_M_notify): Check _M_laundered to determine
3568 whether to wake one or all.
3569 (__detail::__atomic_compare): Return true if call to
3570 __builtin_memcmp() == 0.
3571 (__waiter_base::_S_do_spin_v): Adjust predicate.
3572 * testsuite/29_atomics/atomic/wait_notify/100334.cc: New
3575 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
3578 * include/experimental/bits/fs_path.h (__is_constructible_from):
3579 Test construction from a const lvalue, not an rvalue.
3580 * testsuite/27_io/filesystem/path/construct/100630.cc: New test.
3581 * testsuite/experimental/filesystem/path/construct/100630.cc:
3584 2021-05-17 Antony Polukhin <antoshkka@gmail.com>
3587 * include/bits/locale_facets.h (ctype<basic_string<C,T,A>>):
3588 Declare (but do not define) partial specialization.
3589 * testsuite/22_locale/ctype/is/string/89728_neg.cc: New test.
3591 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
3593 * include/std/thread (jthread::_S_create): Fix static assert
3595 * testsuite/30_threads/jthread/95989.cc: Re-enable test.
3596 * testsuite/30_threads/jthread/jthread.cc: Do not require
3597 pthread effective target.
3598 * testsuite/30_threads/jthread/2.cc: Moved to...
3599 * testsuite/30_threads/jthread/version.cc: ...here.
3601 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
3603 * doc/Makefile.am: Simplify doxygen recipes and use --latex_cmd.
3604 * doc/Makefile.in: Regenerate.
3605 * doc/doxygen/user.cfg.in (LATEX_CMD_NAME): Add placeholder
3607 * scripts/run_doxygen (print_usage): Always print to stdout and
3609 (fail): New function for exiting on error.
3610 (parse_options): Handle --latex_cmd. Do not treat --help the
3611 same as errors. Simplify handling of required arguments.
3613 2021-05-12 Jonathan Wakely <jwakely@redhat.com>
3615 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
3616 Increase dg-timeout-factor to 4. Fix -Wunused-parameter
3617 warnings. Replace bitwise AND with logical AND in loop
3619 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
3620 Replace bitwise AND with logical AND in loop condition.
3621 * testsuite/util/pstl/test_utils.h: Remove unused parameter
3624 2021-05-11 Patrick Palka <ppalka@redhat.com>
3626 * src/c++17/ryu/LOCAL_PATCHES: Update.
3627 * src/c++17/ryu/ryu_generic_128.h: Remove extern "C".
3628 Remove declarations for never-defined functions.
3629 * testsuite/20_util/to_chars/4.cc: New test.
3631 2021-05-11 Jonathan Wakely <jwakely@redhat.com>
3633 * testsuite/20_util/headers/memory/synopsis.cc: Define C++98
3634 alternative for macro.
3635 * testsuite/20_util/shared_ptr/creation/99006.cc: Add effective
3637 * testsuite/25_algorithms/copy/debug/99402.cc: Avoid C++11
3640 2021-05-11 Jonathan Wakely <jwakely@redhat.com>
3642 * include/bits/allocator.h (allocator<void>) [C++20]: Add
3643 missing noexcept to constructor. Restore missing POCMA and
3644 is_always_equal_traits.
3645 [C++17]: Make construct and destroy members private and
3646 declare allocator_traits as a friend.
3647 * include/bits/memoryfwd.h (allocator_traits): Declare.
3648 * include/ext/malloc_allocator.h (malloc_allocator::allocate):
3649 Add nodiscard attribute. Add static assertion for LWG 3307.
3650 * include/ext/new_allocator.h (new_allocator::allocate): Add
3651 static assertion for LWG 3307.
3652 * testsuite/20_util/allocator/void.cc: Check that converting
3653 constructor is noexcept. Check for propagation traits and
3654 size_type and difference_type. Check that pointer and
3655 const_pointer are gone in C++20.
3657 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3659 * include/std/stop_token: Remove TODO comment.
3661 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3663 * include/bits/shared_ptr_base.h (__shared_count(unique_ptr&&)):
3664 Initialize a non-reference deleter from an rvalue, as per LWG
3666 (__shared_ptr::_UniqCompatible): Add missing constraint.
3667 * testsuite/20_util/shared_ptr/cons/lwg3548.cc: New test.
3668 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc: Check
3671 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3673 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Remove
3674 -std=gnu++17 from dg-options directive.
3675 * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc:
3677 * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc:
3679 * testsuite/17_intro/headers/c++2017/operator_names.cc:
3681 * testsuite/17_intro/headers/c++2017/parallel_mode.cc: Likewise.
3682 * testsuite/17_intro/headers/c++2017/stdc++.cc: Likewise.
3683 * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
3685 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Likewise.
3686 * testsuite/18_support/byte/81076.cc: Likewise.
3687 * testsuite/18_support/byte/global_neg.cc: Likewise.
3688 * testsuite/18_support/byte/ops.cc: Likewise.
3689 * testsuite/18_support/byte/requirements.cc: Likewise.
3690 * testsuite/18_support/headers/cfloat/values_c++17.cc: Likewise.
3691 * testsuite/18_support/launder/1.cc: Likewise.
3692 * testsuite/18_support/launder/nodiscard.cc: Likewise.
3693 * testsuite/18_support/launder/requirements.cc: Likewise.
3694 * testsuite/18_support/launder/requirements_neg.cc: Likewise.
3695 * testsuite/18_support/new_aligned.cc: Likewise.
3696 * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
3698 * testsuite/19_diagnostics/error_code/is_error_code_v.cc:
3700 * testsuite/19_diagnostics/error_condition/hash.cc: Likewise.
3701 * testsuite/20_util/addressof/requirements/constexpr.cc:
3703 * testsuite/20_util/as_const/1.cc: Likewise.
3704 * testsuite/20_util/as_const/rvalue_neg.cc: Likewise.
3705 * testsuite/20_util/bind/83427.cc: Likewise.
3706 * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
3707 * testsuite/20_util/bool_constant/requirements.cc: Likewise.
3708 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
3710 * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
3712 * testsuite/20_util/duration_cast/rounding.cc: Likewise.
3713 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
3715 * testsuite/20_util/from_chars/1_neg.cc: Likewise.
3716 * testsuite/20_util/from_chars/requirements.cc: Likewise.
3717 * testsuite/20_util/function/91456.cc: Likewise.
3718 * testsuite/20_util/function/cons/deduction.cc: Likewise.
3719 * testsuite/20_util/function_objects/83607.cc: Likewise.
3720 * testsuite/20_util/function_objects/invoke/59768.cc: Likewise.
3721 * testsuite/20_util/function_objects/mem_fn/80478.cc: Likewise.
3722 * testsuite/20_util/function_objects/not_fn/1.cc: Likewise.
3723 * testsuite/20_util/function_objects/not_fn/87538.cc: Likewise.
3724 * testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc:
3726 * testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc:
3728 * testsuite/20_util/has_unique_object_representations/value.cc:
3730 * testsuite/20_util/hash/nullptr.cc: Likewise.
3731 * testsuite/20_util/in_place/requirements.cc: Likewise.
3732 * testsuite/20_util/is_aggregate/incomplete_neg.cc: Likewise.
3733 * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
3735 * testsuite/20_util/is_aggregate/requirements/typedefs.cc:
3737 * testsuite/20_util/is_aggregate/value.cc: Likewise.
3738 * testsuite/20_util/is_invocable/83395.cc: Likewise.
3739 * testsuite/20_util/is_invocable/91456.cc: Likewise.
3740 * testsuite/20_util/is_invocable/requirements/explicit_instantiation.cc:
3742 * testsuite/20_util/is_invocable/requirements/typedefs.cc:
3744 * testsuite/20_util/is_invocable/value.cc: Likewise.
3745 * testsuite/20_util/is_literal_type/deprecated-1z.cc: Likewise.
3746 * testsuite/20_util/is_nothrow_constructible/94003.cc: Likewise.
3747 * testsuite/20_util/is_nothrow_invocable/83395.cc: Likewise.
3748 * testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation.cc:
3750 * testsuite/20_util/is_nothrow_invocable/requirements/typedefs.cc: Likewise.
3751 * testsuite/20_util/is_nothrow_invocable/value.cc: Likewise.
3752 * testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc:
3754 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
3756 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
3757 * testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc:
3759 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
3761 * testsuite/20_util/is_nothrow_swappable_with/value.cc:
3763 * testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc:
3765 * testsuite/20_util/is_swappable/requirements/typedefs.cc:
3767 * testsuite/20_util/is_swappable/value.cc: Likewise.
3768 * testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc:
3770 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc:
3772 * testsuite/20_util/is_swappable_with/value.cc: Likewise.
3773 * testsuite/20_util/logical_traits/83134.cc: Likewise.
3774 * testsuite/20_util/logical_traits/requirements/explicit_instantiation.cc:
3776 * testsuite/20_util/logical_traits/requirements/typedefs.cc:
3778 * testsuite/20_util/logical_traits/value.cc: Likewise.
3779 * testsuite/20_util/pair/cons/deduction.cc: Likewise.
3780 * testsuite/20_util/pair/swap_cxx17.cc: Likewise.
3781 * testsuite/20_util/ratio/requirements/ratio_equal_v.cc:
3783 * testsuite/20_util/reference_wrapper/83427.cc: Likewise.
3784 * testsuite/20_util/reference_wrapper/deduction.cc: Likewise.
3785 * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
3786 * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
3787 * testsuite/20_util/shared_ptr/requirements/weak_type.cc:
3789 * testsuite/20_util/time_point/arithmetic/constexpr.cc:
3791 * testsuite/20_util/time_point_cast/rounding.cc: Likewise.
3792 * testsuite/20_util/to_chars/3.cc: Likewise.
3793 * testsuite/20_util/to_chars/chars_format.cc: Likewise.
3794 * testsuite/20_util/to_chars/lwg3266.cc: Likewise.
3795 * testsuite/20_util/to_chars/requirements.cc: Likewise.
3796 * testsuite/20_util/tuple/78939.cc: Likewise.
3797 * testsuite/20_util/tuple/apply/1.cc: Likewise.
3798 * testsuite/20_util/tuple/apply/2.cc: Likewise.
3799 * testsuite/20_util/tuple/cons/deduction.cc: Likewise.
3800 * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
3801 * testsuite/20_util/tuple/make_from_tuple/2.cc: Likewise.
3802 * testsuite/20_util/tuple/swap_cxx17.cc: Likewise.
3803 * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
3804 * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: Likewise.
3805 * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
3807 * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
3808 * testsuite/20_util/void_t/1.cc: Likewise.
3809 * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
3810 * testsuite/24_iterators/container_access.cc: Likewise.
3811 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc:
3813 * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc:
3815 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
3817 * testsuite/24_iterators/range_access/range_access_cpp17_neg.cc:
3819 * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
3820 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc:
3822 * testsuite/26_numerics/headers/cmath/hypot.cc: Likewise.
3823 * testsuite/26_numerics/headers/cmath/special_functions_global.cc:
3825 * testsuite/26_numerics/lcm/1.cc: Likewise.
3826 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
3827 * testsuite/26_numerics/valarray/deduction.cc: Likewise.
3828 * testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc:
3830 * testsuite/27_io/manipulators/standard/char/quoted_sv.cc:
3832 * testsuite/27_io/manipulators/standard/wchar_t/quoted_sv.cc:
3834 * testsuite/27_io/types/4.cc: Likewise.
3835 * testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise.
3836 * testsuite/libstdc++-prettyprinters/91997.cc: Likewise.
3837 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
3839 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3841 * testsuite/20_util/function_objects/searchers.cc: Remove
3842 -std=gnu++17 from dg-options directive.
3843 * testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc:
3845 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
3847 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc:
3849 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94831.cc:
3851 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc:
3853 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
3855 * testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc:
3857 * testsuite/25_algorithms/clamp/1.cc: Likewise.
3858 * testsuite/25_algorithms/clamp/2.cc: Likewise.
3859 * testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
3860 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc:
3862 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/pod.cc:
3864 * testsuite/25_algorithms/for_each/for_each_n.cc: Likewise.
3865 * testsuite/25_algorithms/for_each/for_each_n_debug.cc:
3867 * testsuite/25_algorithms/sample/1.cc: Likewise.
3868 * testsuite/25_algorithms/sample/2.cc: Likewise.
3869 * testsuite/25_algorithms/sample/3.cc: Likewise.
3870 * testsuite/25_algorithms/sample/81221.cc: Likewise.
3871 * testsuite/25_algorithms/search/searcher.cc: Likewise.
3872 * testsuite/26_numerics/exclusive_scan/1.cc: Likewise.
3873 * testsuite/26_numerics/inclusive_scan/1.cc: Likewise.
3874 * testsuite/26_numerics/reduce/1.cc: Likewise.
3875 * testsuite/26_numerics/reduce/2.cc: Likewise.
3876 * testsuite/26_numerics/transform_exclusive_scan/1.cc: Likewise.
3877 * testsuite/26_numerics/transform_inclusive_scan/1.cc: Likewise.
3878 * testsuite/26_numerics/transform_reduce/1.cc: Likewise.
3880 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3882 * testsuite/23_containers/array/cons/deduction.cc: Remove
3883 -std=gnu++17 from dg-options directive.
3884 * testsuite/23_containers/array/cons/deduction_neg.cc: Likewise.
3885 * testsuite/23_containers/array/element_access/constexpr_c++17.cc:
3887 * testsuite/23_containers/array/requirements/constexpr_iter.cc:
3889 * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
3891 * testsuite/23_containers/deque/cons/deduction.cc: Likewise.
3892 * testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc:
3894 * testsuite/23_containers/forward_list/cons/deduction.cc:
3896 * testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc:
3898 * testsuite/23_containers/list/cons/deduction.cc: Likewise.
3899 * testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc:
3901 * testsuite/23_containers/map/cons/deduction.cc: Likewise.
3902 * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
3903 * testsuite/23_containers/map/modifiers/insert/83226.cc:
3905 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
3907 * testsuite/23_containers/map/modifiers/merge.cc: Likewise.
3908 * testsuite/23_containers/map/modifiers/try_emplace/1.cc:
3910 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
3911 * testsuite/23_containers/multimap/modifiers/extract.cc:
3913 * testsuite/23_containers/multimap/modifiers/merge.cc: Likewise.
3914 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
3915 * testsuite/23_containers/multiset/modifiers/extract.cc:
3917 * testsuite/23_containers/multiset/modifiers/merge.cc: Likewise.
3918 * testsuite/23_containers/priority_queue/deduction.cc: Likewise.
3919 * testsuite/23_containers/queue/deduction.cc: Likewise.
3920 * testsuite/23_containers/queue/members/emplace_cxx17_return.cc:
3922 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
3923 * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
3924 * testsuite/23_containers/set/modifiers/merge.cc: Likewise.
3925 * testsuite/23_containers/set/modifiers/node_swap.cc: Likewise.
3926 * testsuite/23_containers/stack/deduction.cc: Likewise.
3927 * testsuite/23_containers/stack/members/emplace_cxx17_return.cc:
3929 * testsuite/23_containers/unordered_map/cons/deduction.cc:
3931 * testsuite/23_containers/unordered_map/modifiers/extract.cc:
3933 * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
3935 * testsuite/23_containers/unordered_map/modifiers/merge.cc:
3937 * testsuite/23_containers/unordered_map/modifiers/try_emplace.cc:
3939 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
3941 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
3943 * testsuite/23_containers/unordered_multimap/modifiers/merge.cc:
3945 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
3947 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
3949 * testsuite/23_containers/unordered_multiset/modifiers/merge.cc:
3951 * testsuite/23_containers/unordered_set/cons/deduction.cc:
3953 * testsuite/23_containers/unordered_set/modifiers/extract.cc:
3955 * testsuite/23_containers/unordered_set/modifiers/merge.cc:
3957 * testsuite/23_containers/vector/bool/emplace_cxx17_return.cc:
3959 * testsuite/23_containers/vector/cons/89164_c++17.cc: Likewise.
3960 * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
3961 * testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc:
3964 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3966 * testsuite/21_strings/basic_string/79162.cc: Remove
3967 -std=gnu++17 from dg-options directive.
3968 * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
3969 * testsuite/21_strings/basic_string/cons/char/79162.cc:
3971 * testsuite/21_strings/basic_string/cons/char/86138.cc:
3973 * testsuite/21_strings/basic_string/cons/char/9.cc: Likewise.
3974 * testsuite/21_strings/basic_string/cons/char/deduction.cc:
3976 * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc:
3978 * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
3979 * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc:
3981 * testsuite/21_strings/basic_string/cons/wchar_t/86138.cc:
3983 * testsuite/21_strings/basic_string/cons/wchar_t/9.cc: Likewise.
3984 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
3986 * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
3988 * testsuite/21_strings/basic_string/hash/hash.cc: Likewise.
3989 * testsuite/21_strings/basic_string/lwg2758.cc: Likewise.
3990 * testsuite/21_strings/basic_string/lwg2946.cc: Likewise.
3991 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
3993 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
3995 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
3997 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
3999 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
4001 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
4003 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
4005 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
4007 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
4009 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
4011 * testsuite/21_strings/basic_string/operations/data/char/2.cc:
4013 * testsuite/21_strings/basic_string/operations/data/char/86169.cc:
4015 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc:
4017 * testsuite/21_strings/basic_string/operations/find/char/5.cc:
4019 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
4021 * testsuite/21_strings/basic_string/operators/char/5.cc:
4023 * testsuite/21_strings/basic_string/operators/wchar_t/5.cc:
4025 * testsuite/21_strings/basic_string_view/capacity/1.cc:
4027 * testsuite/21_strings/basic_string_view/capacity/empty_neg.cc:
4029 * testsuite/21_strings/basic_string_view/cons/char/1.cc:
4031 * testsuite/21_strings/basic_string_view/cons/char/2.cc:
4033 * testsuite/21_strings/basic_string_view/cons/char/3.cc:
4035 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
4037 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
4039 * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc:
4041 * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc:
4043 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
4045 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
4047 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
4049 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
4051 * testsuite/21_strings/basic_string_view/element_access/char/constexpr.cc:
4053 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
4055 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
4057 * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
4059 * testsuite/21_strings/basic_string_view/element_access/char/front_back_constexpr.cc:
4061 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
4063 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
4065 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
4067 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
4069 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr.cc:
4071 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
4073 * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
4075 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
4077 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
4079 * testsuite/21_strings/basic_string_view/include.cc: Likewise.
4080 * testsuite/21_strings/basic_string_view/inserters/94051.cc:
4082 * testsuite/21_strings/basic_string_view/inserters/char/1.cc:
4084 * testsuite/21_strings/basic_string_view/inserters/char/2.cc:
4086 * testsuite/21_strings/basic_string_view/inserters/char/3.cc:
4088 * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
4090 * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
4092 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
4094 * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
4096 * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
4098 * testsuite/21_strings/basic_string_view/literals/types.cc:
4100 * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
4102 * testsuite/21_strings/basic_string_view/literals/values.cc:
4104 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
4106 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
4108 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
4110 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
4112 * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
4114 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
4116 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
4118 * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
4120 * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
4122 * testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc:
4124 * testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc:
4126 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
4128 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
4130 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc:
4132 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
4134 * testsuite/21_strings/basic_string_view/operations/copy/char/2.cc:
4136 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
4138 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc:
4140 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
4142 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
4144 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
4146 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
4148 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
4150 * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
4152 * testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc:
4154 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
4156 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
4158 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
4160 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
4162 * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
4164 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
4166 * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
4168 * testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc:
4170 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
4172 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
4174 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
4176 * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
4178 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
4180 * testsuite/21_strings/basic_string_view/operations/substr/char/83511.cc:
4182 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
4184 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/83511.cc:
4186 * testsuite/21_strings/basic_string_view/operators/char/2.cc:
4188 * testsuite/21_strings/basic_string_view/operators/char/89446.cc:
4190 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
4192 * testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc:
4194 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
4196 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
4198 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
4200 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
4202 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
4204 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
4206 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc:
4208 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
4210 * testsuite/21_strings/basic_string_view/requirements/traits_neg.cc:
4212 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
4214 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
4215 * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
4216 * testsuite/21_strings/char_traits/requirements/char/99181.cc:
4218 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
4220 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4222 * testsuite/20_util/memory_resource/1.cc: Remove -std=gnu++17
4223 from dg-options directive.
4224 * testsuite/20_util/memory_resource/2.cc: Likewise.
4225 * testsuite/20_util/monotonic_buffer_resource/1.cc: Likewise.
4226 * testsuite/20_util/monotonic_buffer_resource/93208.cc:
4228 * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
4230 * testsuite/20_util/monotonic_buffer_resource/deallocate.cc:
4232 * testsuite/20_util/monotonic_buffer_resource/release.cc:
4234 * testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc:
4236 * testsuite/20_util/polymorphic_allocator/1.cc: Likewise.
4237 * testsuite/20_util/polymorphic_allocator/construct_pair.cc:
4239 * testsuite/20_util/polymorphic_allocator/resource.cc: Likewise.
4240 * testsuite/20_util/polymorphic_allocator/select.cc: Likewise.
4241 * testsuite/20_util/synchronized_pool_resource/allocate.cc:
4243 * testsuite/20_util/synchronized_pool_resource/allocate_single.cc:
4245 * testsuite/20_util/synchronized_pool_resource/cons.cc:
4247 * testsuite/20_util/synchronized_pool_resource/cons_single.cc:
4249 * testsuite/20_util/synchronized_pool_resource/is_equal.cc:
4251 * testsuite/20_util/synchronized_pool_resource/multithreaded.cc:
4253 * testsuite/20_util/synchronized_pool_resource/options.cc:
4255 * testsuite/20_util/synchronized_pool_resource/release.cc:
4257 * testsuite/20_util/synchronized_pool_resource/release_single.cc:
4259 * testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc:
4261 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
4263 * testsuite/20_util/unsynchronized_pool_resource/cons.cc:
4265 * testsuite/20_util/unsynchronized_pool_resource/is_equal.cc:
4267 * testsuite/20_util/unsynchronized_pool_resource/options.cc:
4269 * testsuite/20_util/unsynchronized_pool_resource/release.cc:
4271 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
4273 * testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise.
4274 * testsuite/23_containers/deque/types/pmr_typedefs_debug.cc:
4276 * testsuite/23_containers/forward_list/pmr_typedefs.cc:
4278 * testsuite/23_containers/forward_list/pmr_typedefs_debug.cc:
4280 * testsuite/23_containers/list/pmr_typedefs.cc: Likewise.
4281 * testsuite/23_containers/list/pmr_typedefs_debug.cc: Likewise.
4282 * testsuite/23_containers/map/pmr_typedefs.cc: Likewise.
4283 * testsuite/23_containers/map/pmr_typedefs_debug.cc: Likewise.
4284 * testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise.
4285 * testsuite/23_containers/multimap/pmr_typedefs_debug.cc:
4287 * testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise.
4288 * testsuite/23_containers/multiset/pmr_typedefs_debug.cc:
4290 * testsuite/23_containers/set/pmr_typedefs.cc: Likewise.
4291 * testsuite/23_containers/set/pmr_typedefs_debug.cc: Likewise.
4292 * testsuite/23_containers/unordered_map/pmr_typedefs.cc:
4294 * testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc:
4296 * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc:
4298 * testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc:
4300 * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc:
4302 * testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc:
4304 * testsuite/23_containers/unordered_set/pmr_typedefs.cc:
4306 * testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc:
4308 * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise.
4309 * testsuite/23_containers/vector/types/pmr_typedefs_debug.cc:
4311 * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
4313 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4315 * testsuite/29_atomics/atomic/69769.cc: Remove -std=gnu++17 from
4317 * testsuite/29_atomics/atomic/is_always_lock_free.cc:
4318 * testsuite/29_atomics/atomic/requirements/typedefs.cc:
4319 * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc:
4320 * testsuite/29_atomics/atomic_integral/requirements/typedefs.cc:
4321 * testsuite/30_threads/lock_guard/cons/deduction.cc: Likewise.
4322 * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
4323 * testsuite/30_threads/scoped_lock/cons/deduction.cc: Likewise.
4324 * testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc:
4326 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc:
4328 * testsuite/30_threads/shared_lock/70766.cc: Likewise.
4329 * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
4330 * testsuite/30_threads/shared_mutex/cons/assign_neg.cc:
4332 * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise.
4333 * testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
4335 * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
4336 * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
4337 * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
4338 * testsuite/30_threads/unique_lock/cons/deduction.cc: Likewise.
4340 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4342 * testsuite/20_util/any/assign/1.cc: Remove -std=gnu++17 from
4343 dg-options directive.
4344 * testsuite/20_util/any/assign/2.cc: Likewise.
4345 * testsuite/20_util/any/assign/emplace.cc: Likewise.
4346 * testsuite/20_util/any/assign/exception.cc: Likewise.
4347 * testsuite/20_util/any/assign/self.cc: Likewise.
4348 * testsuite/20_util/any/cons/1.cc: Likewise.
4349 * testsuite/20_util/any/cons/2.cc: Likewise.
4350 * testsuite/20_util/any/cons/90415.cc: Likewise.
4351 * testsuite/20_util/any/cons/92156.cc: Likewise.
4352 * testsuite/20_util/any/cons/aligned.cc: Likewise.
4353 * testsuite/20_util/any/cons/explicit.cc: Likewise.
4354 * testsuite/20_util/any/cons/in_place.cc: Likewise.
4355 * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
4356 * testsuite/20_util/any/make_any.cc: Likewise.
4357 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
4358 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
4359 * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
4360 * testsuite/20_util/any/misc/swap.cc: Likewise.
4361 * testsuite/20_util/any/modifiers/1.cc: Likewise.
4362 * testsuite/20_util/any/modifiers/83658.cc: Likewise.
4363 * testsuite/20_util/any/modifiers/92156.cc: Likewise.
4364 * testsuite/20_util/any/observers/type.cc: Likewise.
4365 * testsuite/20_util/any/requirements.cc: Likewise.
4366 * testsuite/20_util/any/typedefs.cc: Likewise.
4367 * testsuite/20_util/optional/77288.cc: Likewise.
4368 * testsuite/20_util/optional/84601.cc: Likewise.
4369 * testsuite/20_util/optional/assignment/1.cc: Likewise.
4370 * testsuite/20_util/optional/assignment/2.cc: Likewise.
4371 * testsuite/20_util/optional/assignment/3.cc: Likewise.
4372 * testsuite/20_util/optional/assignment/4.cc: Likewise.
4373 * testsuite/20_util/optional/assignment/5.cc: Likewise.
4374 * testsuite/20_util/optional/assignment/6.cc: Likewise.
4375 * testsuite/20_util/optional/assignment/7.cc: Likewise.
4376 * testsuite/20_util/optional/assignment/8.cc: Likewise.
4377 * testsuite/20_util/optional/assignment/9.cc: Likewise.
4378 * testsuite/20_util/optional/bad_access.cc: Likewise.
4379 * testsuite/20_util/optional/cons/77727.cc: Likewise.
4380 * testsuite/20_util/optional/cons/85642.cc: Likewise.
4381 * testsuite/20_util/optional/cons/copy.cc: Likewise.
4382 * testsuite/20_util/optional/cons/deduction.cc: Likewise.
4383 * testsuite/20_util/optional/cons/default.cc: Likewise.
4384 * testsuite/20_util/optional/cons/move.cc: Likewise.
4385 * testsuite/20_util/optional/cons/trivial.cc: Likewise.
4386 * testsuite/20_util/optional/cons/value.cc: Likewise.
4387 * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
4388 * testsuite/20_util/optional/constexpr/cons/default.cc:
4390 * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
4391 * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
4392 * testsuite/20_util/optional/constexpr/make_optional.cc:
4394 * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
4395 * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
4396 * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
4397 * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
4398 * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
4399 * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
4400 * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
4401 * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
4402 * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
4403 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
4404 * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
4405 * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
4406 * testsuite/20_util/optional/hash.cc: Likewise.
4407 * testsuite/20_util/optional/in_place.cc: Likewise.
4408 * testsuite/20_util/optional/make_optional.cc: Likewise.
4409 * testsuite/20_util/optional/nullopt.cc: Likewise.
4410 * testsuite/20_util/optional/observers/1.cc: Likewise.
4411 * testsuite/20_util/optional/observers/2.cc: Likewise.
4412 * testsuite/20_util/optional/observers/3.cc: Likewise.
4413 * testsuite/20_util/optional/observers/4.cc: Likewise.
4414 * testsuite/20_util/optional/observers/5.cc: Likewise.
4415 * testsuite/20_util/optional/observers/6.cc: Likewise.
4416 * testsuite/20_util/optional/relops/1.cc: Likewise.
4417 * testsuite/20_util/optional/relops/2.cc: Likewise.
4418 * testsuite/20_util/optional/relops/3.cc: Likewise.
4419 * testsuite/20_util/optional/relops/4.cc: Likewise.
4420 * testsuite/20_util/optional/relops/5.cc: Likewise.
4421 * testsuite/20_util/optional/relops/6.cc: Likewise.
4422 * testsuite/20_util/optional/relops/7.cc: Likewise.
4423 * testsuite/20_util/optional/requirements.cc: Likewise.
4424 * testsuite/20_util/optional/swap/1.cc: Likewise.
4425 * testsuite/20_util/optional/swap/2.cc: Likewise.
4426 * testsuite/20_util/optional/typedefs.cc: Likewise.
4427 * testsuite/20_util/variant/80165.cc: Likewise.
4428 * testsuite/20_util/variant/85183.cc: Likewise.
4429 * testsuite/20_util/variant/86874.cc: Likewise.
4430 * testsuite/20_util/variant/87431.cc: Likewise.
4431 * testsuite/20_util/variant/87619.cc: Likewise.
4432 * testsuite/20_util/variant/91807.cc: Likewise.
4433 * testsuite/20_util/variant/any.cc: Likewise.
4434 * testsuite/20_util/variant/compile.cc: Likewise.
4435 * testsuite/20_util/variant/deduction.cc: Likewise.
4436 * testsuite/20_util/variant/exception_safety.cc: Likewise.
4437 * testsuite/20_util/variant/hash.cc: Likewise.
4438 * testsuite/20_util/variant/index_type.cc: Likewise.
4439 * testsuite/20_util/variant/relops/89851.cc: Likewise.
4440 * testsuite/20_util/variant/relops/90008.cc: Likewise.
4441 * testsuite/20_util/variant/run.cc: Likewise.
4442 * testsuite/20_util/variant/visit.cc: Likewise.
4444 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4446 * testsuite/27_io/basic_filebuf/open/char/path.cc: Remove
4447 -std=gnu++17 from dg-options directive.
4448 * testsuite/27_io/basic_fstream/cons/char/path.cc: Likewise.
4449 * testsuite/27_io/basic_fstream/open/char/path.cc: Likewise.
4450 * testsuite/27_io/basic_ifstream/cons/char/path.cc: Likewise.
4451 * testsuite/27_io/basic_ifstream/open/char/path.cc: Likewise.
4452 * testsuite/27_io/basic_ofstream/cons/char/path.cc: Likewise.
4453 * testsuite/27_io/basic_ofstream/open/char/path.cc: Likewise.
4454 * testsuite/27_io/filesystem/directory_entry/86597.cc: Likewise.
4455 * testsuite/27_io/filesystem/directory_entry/lwg3171.cc:
4457 * testsuite/27_io/filesystem/file_status/1.cc: Likewise.
4458 * testsuite/27_io/filesystem/filesystem_error/cons.cc: Likewise.
4459 * testsuite/27_io/filesystem/filesystem_error/copy.cc: Likewise.
4460 * testsuite/27_io/filesystem/iterators/91067.cc: Likewise.
4461 * testsuite/27_io/filesystem/iterators/caching.cc: Likewise.
4462 * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
4464 * testsuite/27_io/filesystem/iterators/pop.cc: Likewise.
4465 * testsuite/27_io/filesystem/iterators/recursion_pending.cc:
4467 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
4469 * testsuite/27_io/filesystem/operations/absolute.cc: Likewise.
4470 * testsuite/27_io/filesystem/operations/all.cc: Likewise.
4471 * testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
4472 * testsuite/27_io/filesystem/operations/copy.cc: Likewise.
4473 * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
4474 * testsuite/27_io/filesystem/operations/create_directories.cc:
4476 * testsuite/27_io/filesystem/operations/create_directory.cc:
4478 * testsuite/27_io/filesystem/operations/create_symlink.cc:
4480 * testsuite/27_io/filesystem/operations/current_path.cc:
4482 * testsuite/27_io/filesystem/operations/equivalent.cc: Likewise.
4483 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
4484 * testsuite/27_io/filesystem/operations/file_size.cc: Likewise.
4485 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
4486 * testsuite/27_io/filesystem/operations/last_write_time.cc:
4488 * testsuite/27_io/filesystem/operations/permissions.cc:
4490 * testsuite/27_io/filesystem/operations/proximate.cc: Likewise.
4491 * testsuite/27_io/filesystem/operations/read_symlink.cc:
4493 * testsuite/27_io/filesystem/operations/relative.cc: Likewise.
4494 * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
4495 * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
4496 * testsuite/27_io/filesystem/operations/rename.cc: Likewise.
4497 * testsuite/27_io/filesystem/operations/resize_file.cc:
4499 * testsuite/27_io/filesystem/operations/space.cc: Likewise.
4500 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
4501 * testsuite/27_io/filesystem/operations/symlink_status.cc:
4503 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
4505 * testsuite/27_io/filesystem/operations/weakly_canonical.cc:
4507 * testsuite/27_io/filesystem/path/append/path.cc: Likewise.
4508 * testsuite/27_io/filesystem/path/append/source.cc: Likewise.
4509 * testsuite/27_io/filesystem/path/assign/assign.cc: Likewise.
4510 * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
4511 * testsuite/27_io/filesystem/path/compare/compare.cc: Likewise.
4512 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
4513 * testsuite/27_io/filesystem/path/compare/path.cc: Likewise.
4514 * testsuite/27_io/filesystem/path/compare/strings.cc: Likewise.
4515 * testsuite/27_io/filesystem/path/concat/92853.cc: Likewise.
4516 * testsuite/27_io/filesystem/path/concat/94063.cc: Likewise.
4517 * testsuite/27_io/filesystem/path/concat/path.cc: Likewise.
4518 * testsuite/27_io/filesystem/path/concat/strings.cc: Likewise.
4519 * testsuite/27_io/filesystem/path/construct/80762.cc: Likewise.
4520 * testsuite/27_io/filesystem/path/construct/90281.cc: Likewise.
4521 * testsuite/27_io/filesystem/path/construct/90634.cc: Likewise.
4522 * testsuite/27_io/filesystem/path/construct/copy.cc: Likewise.
4523 * testsuite/27_io/filesystem/path/construct/default.cc:
4525 * testsuite/27_io/filesystem/path/construct/format.cc: Likewise.
4526 * testsuite/27_io/filesystem/path/construct/locale.cc: Likewise.
4527 * testsuite/27_io/filesystem/path/construct/range.cc: Likewise.
4528 * testsuite/27_io/filesystem/path/construct/string_view.cc:
4530 * testsuite/27_io/filesystem/path/decompose/extension.cc:
4532 * testsuite/27_io/filesystem/path/decompose/filename.cc:
4534 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
4536 * testsuite/27_io/filesystem/path/decompose/relative_path.cc:
4538 * testsuite/27_io/filesystem/path/decompose/root_directory.cc:
4540 * testsuite/27_io/filesystem/path/decompose/root_name.cc:
4542 * testsuite/27_io/filesystem/path/decompose/root_path.cc:
4544 * testsuite/27_io/filesystem/path/decompose/stem.cc: Likewise.
4545 * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc:
4547 * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise.
4548 * testsuite/27_io/filesystem/path/generation/normal.cc:
4550 * testsuite/27_io/filesystem/path/generation/normal2.cc:
4552 * testsuite/27_io/filesystem/path/generation/proximate.cc:
4554 * testsuite/27_io/filesystem/path/generation/relative.cc:
4556 * testsuite/27_io/filesystem/path/generic/94242.cc: Likewise.
4557 * testsuite/27_io/filesystem/path/generic/generic_string.cc:
4559 * testsuite/27_io/filesystem/path/generic/utf.cc: Likewise.
4560 * testsuite/27_io/filesystem/path/generic/wchar_t.cc: Likewise.
4561 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
4562 * testsuite/27_io/filesystem/path/itr/components.cc: Likewise.
4563 * testsuite/27_io/filesystem/path/itr/traversal.cc: Likewise.
4564 * testsuite/27_io/filesystem/path/modifiers/clear.cc: Likewise.
4565 * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
4567 * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc:
4569 * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
4571 * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
4573 * testsuite/27_io/filesystem/path/modifiers/swap.cc: Likewise.
4574 * testsuite/27_io/filesystem/path/native/alloc.cc: Likewise.
4575 * testsuite/27_io/filesystem/path/native/string-char8_t.cc:
4577 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
4578 * testsuite/27_io/filesystem/path/nonmember/append.cc: Likewise.
4579 * testsuite/27_io/filesystem/path/nonmember/cmp.cc: Likewise.
4580 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
4582 * testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
4583 * testsuite/27_io/filesystem/path/query/empty_neg.cc:
4584 * testsuite/27_io/filesystem/path/query/has_extension.cc:
4586 * testsuite/27_io/filesystem/path/query/has_filename.cc:
4588 * testsuite/27_io/filesystem/path/query/has_parent_path.cc:
4590 * testsuite/27_io/filesystem/path/query/has_relative_path.cc:
4592 * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
4594 * testsuite/27_io/filesystem/path/query/has_root_name.cc:
4596 * testsuite/27_io/filesystem/path/query/has_root_path.cc:
4598 * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
4599 * testsuite/27_io/filesystem/path/query/is_absolute.cc:
4601 * testsuite/27_io/filesystem/path/query/is_relative.cc:
4603 * testsuite/experimental/filesystem/path/construct/string_view.cc:
4606 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4608 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc:
4609 Remove -std=gnu++17 from dg-options.
4610 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
4612 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc:
4614 * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc:
4616 * testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise.
4617 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
4619 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
4621 * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc:
4623 * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc:
4625 * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
4627 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
4629 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
4631 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
4633 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc:
4635 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc:
4637 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc:
4639 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
4641 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
4643 * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc:
4645 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
4647 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc:
4649 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
4651 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
4653 * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc:
4655 * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc:
4657 * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc:
4659 * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc:
4661 * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc:
4663 * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc:
4665 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
4667 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
4669 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc:
4671 * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc:
4673 * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
4675 * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc:
4677 * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
4679 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc:
4681 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
4683 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
4685 * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
4687 * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: Likewise.
4688 * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc:
4690 * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
4692 * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
4694 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc:
4696 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
4698 * testsuite/25_algorithms/pstl/alg_sorting/set.cc: Likewise.
4699 * testsuite/25_algorithms/pstl/alg_sorting/sort.cc: Likewise.
4700 * testsuite/25_algorithms/pstl/feature_test-2.cc: Likewise.
4701 * testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise.
4702 * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise.
4703 * testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise.
4704 * testsuite/25_algorithms/pstl/feature_test.cc: Likewise.
4705 * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc:
4707 * testsuite/26_numerics/pstl/numeric_ops/reduce.cc: Likewise.
4708 * testsuite/26_numerics/pstl/numeric_ops/scan.cc: Likewise.
4709 * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
4711 * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc:
4714 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4716 * testsuite/20_util/scoped_allocator/69293_neg.cc: Add dg-error
4717 for additional errors in C++20.
4718 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
4720 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
4721 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
4723 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4725 * testsuite/20_util/variant/compile.cc: Rename 'any' to avoid
4726 clash with std::any.
4728 2021-05-07 Jonathan Wakely <jwakely@redhat.com>
4730 * include/std/istream (__rvalue_stream_extraction_t): Replace
4731 use of __rval_streamable.
4732 * include/std/ostream (__rvalue_stream_insertion_t): Likewise.
4733 (__rval_streamable): Remove.
4734 (_Require_derived_from_ios_base, __derived_from_ios_base): New
4735 helper for checking constraints.
4736 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Fix
4737 reference to the wrong subclause of the standard.
4738 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
4740 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
4742 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
4744 * testsuite/27_io/basic_ostream/inserters_other/char/99692.cc:
4746 * testsuite/27_io/filesystem/path/io/dr2989.cc: Adjust pruned
4749 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
4751 * include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
4752 Improve static_assert messages.
4753 * testsuite/25_algorithms/copy/58982.cc: Adjust expected output.
4754 * testsuite/25_algorithms/copy_n/58982.cc: Likewise.
4756 2021-05-06 Patrick Palka <ppalka@redhat.com>
4758 * include/std/ranges (filter_view::_Iterator::base): Make the
4759 const& overload unconstrained and return a const reference as
4760 per LWG 3533. Make unconditionally noexcept.
4761 (transform_view::_Iterator::base): Likewise.
4762 (elements_view::_Iterator::base): Likewise.
4764 2021-05-06 Patrick Palka <ppalka@redhat.com>
4766 * include/bits/stl_iterator.h (move_iterator::base): Make the
4767 const& overload unconstrained and return a const reference as
4768 per LWG 3391. Make unconditionally noexcept.
4769 (counted_iterator::base): Likewise.
4770 * testsuite/24_iterators/move_iterator/lwg3391.cc: New test.
4771 * testsuite/24_iterators/move_iterator/move_only.cc: Adjust
4772 has_member_base concept to decay-copy the result of base().
4774 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
4776 * include/std/type_traits (remove_cvref_t): Define in terms of
4778 * testsuite/20_util/remove_cvref/value.cc: Check alias.
4780 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
4783 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
4785 * include/std/charconv (__from_chars_alnum): Pass unsigned
4786 char to std::isdigit.
4788 2021-05-05 Patrick Palka <ppalka@redhat.com>
4790 * include/bits/ranges_util.h (enable_borrowed_range<subrange>):
4791 Remove constraints on this partial specialization.
4792 * include/std/ranges (enable_borrowed_range<iota_view>):
4795 2021-05-05 Patrick Palka <ppalka@redhat.com>
4797 * include/std/ranges (transform_view::_Iterator::iter_swap):
4798 Remove as per LWG 3520.
4799 (join_view::_Iterator::iter_swap): Add indirectly_swappable
4800 constraint as per LWG 3517.
4802 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
4804 * testsuite/20_util/function_objects/invoke/3.cc: Check feature
4806 * testsuite/20_util/function_objects/invoke/version.cc: New test.
4808 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
4810 * include/std/charconv (__from_chars_alnum): Pass unsigned
4811 char to std::isdigit.
4813 2021-05-05 Corentin Gay <gay@adacore.com>
4815 * acinclude.m4: Add VxWorks-specific case for the
4816 configuration of ctypes.
4817 * configure: Regenerate.
4818 * config/locale/vxworks/ctype_members.cc: Add VxWorks-specific
4820 * config/os/vxworks/ctype_base.h: Adjust for VxWorks7+.
4821 * config/os/vxworks/ctype_configure_char.cc: Likewise.
4822 * config/os/vxworks/ctype_inline.h: Likewise.
4823 * testsuite/28_regex/traits/char/isctype.cc: Defines
4824 NEWLINE_IN_CLASS_BLANK if the target is VxWorks.
4825 * testsuite/28_regex/traits/wchar_t/isctype.cc: Likewise.
4827 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
4829 * include/std/future (promise::set_value): Check for existence
4830 of shared state before dereferncing it.
4831 (promise::set_exception, promise::set_value_at_thread_exit)
4832 (promise::set_exception_at_thread_exit): Likewise.
4833 (promise<R&>::set_value, promise<R&>::set_exception)
4834 (promise<R&>::set_value_at_thread_exit)
4835 (promise<R&>::set_exception_at_thread_exit): Likewise.
4836 (promise<void>::set_value, promise<void>::set_exception)
4837 (promise<void>::set_value_at_thread_exit)
4838 (promise<void>::set_exception_at_thread_exit): Likewise.
4839 * testsuite/30_threads/promise/members/at_thread_exit2.cc:
4840 Remove unused variable.
4842 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
4844 * include/bits/basic_string.h (basic_string(const CharT*, const A&)):
4845 Do not do arithmetic on null pointer.
4847 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
4849 * include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
4850 (find_key_pointer(key_const_reference, false_type))
4851 (find_key_pointer(key_const_reference, true_type)): Do not
4852 dereference null pointer.
4854 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
4856 * testsuite/20_util/from_chars/3.cc: Use unsigned type to avoid
4858 * testsuite/24_iterators/reverse_iterator/2.cc: Do not add
4859 non-zero value to null pointer.
4860 * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc:
4861 Use past-the-end iterator for result.
4862 * testsuite/25_algorithms/move_backward/69478.cc: Likewise.
4863 * testsuite/25_algorithms/move_backward/93872.cc: Likewise.
4865 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
4868 * include/std/variant (__get_t): New alias template yielding the
4869 return type of std::get<N> on a variant.
4870 (__visit_result_t): New alias template yielding the result of
4872 (__same_types): Move into namespace __detail::__variant.
4873 (__check_visitor_results): Likewise. Use __invoke_result_t and
4875 (__check_visitor_result): Remove.
4876 (visit): Use __visit_result_t for return type.
4877 * testsuite/20_util/variant/100384.cc: New test.
4879 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
4881 * acinclude.m4 (GLIBCXX_ENABLE_INT128_FLOAT128): Remove
4882 checks for __int128 and rename to GLIBCXX_ENABLE_FLOAT128.
4883 * config.h.in: Regenerate.
4884 * configure: Regenerate.
4885 * configure.ac: Adjust to use GLIBCXX_ENABLE_FLOAT128.
4886 * include/bits/random.h (_Select_uint_least_t<s, 1>):
4887 Use __SIZEOF_INT128__ to decide whether to use __int128.
4888 * include/std/charconv (__to_chars_unsigned_type): Likewise.
4890 2021-05-03 Gerald Pfeifer <gerald@pfeifer.com>
4892 * doc/xml/manual/ctype.xml: Move unix.org reference to https.
4893 * doc/html/manual/facets.html: Regenerate.
4895 2021-04-30 Patrick Palka <ppalka@redhat.com>
4897 * include/std/ranges (__detail::__non_propating_cache): Define
4899 (join_view): Remove constraints on the value and reference types
4900 of the wrapped iterator type as per P2328.
4901 (join_view::_Iterator::_M_satisfy): Adjust as per P2328.
4902 (join_view::_Iterator::operator++): Likewise.
4903 (join_view::_M_inner): Use __non_propating_cache as per P2328.
4904 Remove now-redundant use of __maybe_present_t.
4905 * testsuite/std/ranges/adaptors/join.cc: Include <array>.
4908 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
4910 * include/bits/basic_string.h (__cpp_lib_constexpr_string):
4911 Only define for C++17 and later.
4912 * include/std/version (__cpp_lib_semaphore): Fix condition
4913 to match the one in <semaphore>.
4915 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
4917 * acinclude.m4 (GLIBCXX_CHECK_INT64_T): Delete.
4918 * config.h.in: Regenerate.
4919 * configure: Regenerate.
4920 * configure.ac: Do not use GLIBCXX_CHECK_INT64_T.
4921 * include/bits/postypes.h: Remove include of <stdint.h> and
4922 definition/undefinition of the __STDC_LIMIT_MACROS and
4923 __STDC_CONSTANT_MACROS macros.
4924 (streamoff): Use __INT64_TYPE__ if defined.
4926 2021-04-30 Patrick Palka <ppalka@redhat.com>
4928 * include/std/ranges (split_view::_InnerIter::operator++):
4929 Depend on _Base instead of _Vp directly, as per LWG 3532.
4931 2021-04-30 Patrick Palka <ppalka@redhat.com>
4933 * include/bits/ranges_util.h (subrange::subrange): Avoid
4934 list-initialization in delegating constructor.
4935 * include/std/ranges (single_view): Replace implicit guide
4936 with explicit deduction guide that decays its argument.
4937 (_Single::operator()): Avoid CTAD when constructing the
4939 (_Iota::operator()): Avoid list-initialization.
4940 (__detail::__can_filter_view, _Filter::operator()): Likewise.
4941 (__detail::__can_transform_view, _Transform::operator()): Likewise.
4942 (take_view::begin): Likewise.
4943 (__detail::__can_take_view, _Take::operator()): Likewise.
4944 (__detail::__can_take_while_view, _TakeWhile::operator()): Likewise.
4945 (__detail::__can_drop_view, _Drop::operator()): Likewise.
4946 (__detail::__can_drop_while_view, _DropWhile::operator()): Likewise.
4947 (split_view::split_view): Use views::single when initializing
4949 (__detail::__can_split_view, _Split::operator()): Avoid
4950 list-initialization.
4951 (_Counted::operator()): Likewise.
4952 * testsuite/std/ranges/p2367.cc: New test.
4954 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
4957 * include/bits/basic_ios.tcc (basic_ios::copyfmt): use
4959 * include/bits/basic_string.tcc (basic_string::swap)
4960 (basic_string::assign): Likewise.
4961 * include/bits/deque.tcc (deque::operator=(const deque&)):
4963 * include/bits/stl_tree.h (_Rb_tree::operator=(const * _Rb_tree&)):
4965 * include/bits/vector.tcc (vector::operator=(const vector&)):
4968 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
4970 * include/std/istream (operator>>(Istream&&, x&)): Simplify, as
4972 * include/std/ostream (operator<<(Ostream&&, const x&)):
4974 * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc:
4975 Adjust dg-error pattern.
4976 * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc:
4978 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Define
4979 is_extractable trait to replace std::__is_extractable. Make it
4980 work with rvalue streams as well as lvalues, to replace f() and
4981 g() helper functions.
4982 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
4984 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
4985 Define is_insertable trait to replace std::__is_insertable. Make
4986 it work with rvalue streams as well as lvalues, to replace f()
4987 and g() helper functions.
4988 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
4990 * testsuite/27_io/filesystem/path/io/dr2989.cc: Prune additional
4991 errors from new constraints.
4992 * testsuite/27_io/rvalue_streams-2.cc: Remove PR 80675 checks,
4993 which are no longer expected to compile.
4994 * testsuite/27_io/rvalue_streams.cc: Adjust existing test.
4995 Verify LWG 1203 changes.
4997 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
5000 * include/experimental/socket (__basic_socket_impl::set_option)
5001 (__basic_socket_impl::get_option) [!_GLIBCXX_HAVE_SYS_SOCKET_H]:
5002 Just set error code.
5003 * testsuite/experimental/net/socket/socket_base.cc: CHeck
5004 for <sys/socket.h> not <socket.h>.
5006 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
5011 * testsuite/experimental/net/internet/address/v4/comparisons.cc:
5012 Use new effective-target keyword.
5013 * testsuite/experimental/net/internet/address/v4/cons.cc:
5015 * testsuite/experimental/net/internet/address/v4/creation.cc:
5017 * testsuite/experimental/net/internet/address/v4/members.cc:
5019 * testsuite/experimental/net/internet/address/v6/members.cc:
5021 * testsuite/experimental/net/internet/resolver/base.cc:
5023 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
5025 * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
5027 * testsuite/experimental/net/internet/socket/opt.cc:
5029 * testsuite/experimental/net/internet/tcp.cc:
5031 * testsuite/experimental/net/internet/udp.cc:
5033 * testsuite/lib/libstdc++.exp (check_effective_target_net_ts_ip):
5034 New proc to check net_ts_ip et.
5036 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5039 * testsuite/20_util/pair/requirements/structural.cc: New test.
5041 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5043 * include/bits/stl_pair.h (pair) [__cplusplus > 202002]: Add
5044 new definitions for constructors and assignment operators using
5045 concepts for constraints.
5046 * testsuite/20_util/pair/cons/99957.cc: Disable for C++20 and
5048 * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust
5049 expected error messages to also match C++20 errors.
5051 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5054 * include/bits/stl_pair.h (_PCC::_MoveCopyPair, _PCC::_CopyMovePair):
5055 Combine and replace with ...
5056 (_PCC::_DeprConsPair): New SFINAE helper function.
5057 (pair): Merge preprocessor blocks so that all C++03 members
5058 are defined together at the end.
5059 (pair::pair(const _T1&, _U2&&), pair::pair(_U1&&, const _T2&)):
5060 Replace _T1 and _T2 parameters with __null_ptr_constant and
5062 * testsuite/20_util/pair/40925.cc: Use nullptr instead of 0.
5063 * testsuite/20_util/pair/cons/explicit_construct.cc: Likewise.
5064 * testsuite/20_util/pair/cons/99957.cc: New test.
5066 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5068 * include/bits/basic_string.h (__cpp_lib_constexpr_string): Define.
5069 * include/std/version (__cpp_lib_constexpr_string): Define.
5070 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
5071 Check for __cpp_lib_constexpr_string.
5072 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
5074 * testsuite/21_strings/char_traits/requirements/version.cc: New test.
5076 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5078 * doc/Makefile.am (stamp-pdf-doxygen): Improve comment about
5079 dealing with errors. Use '@' to prevent shell command being
5081 * doc/Makefile.in: Regenerate.
5083 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5086 * include/bits/std_thread.h (thread::hardware_concurrency): Add
5087 missing noexcept to inline definition for non-gthreads targets.
5089 2021-04-28 Patrick Palka <ppalka@redhat.com>
5095 * include/bits/ranges_algo.h (__search_n_fn::operator()): Give
5096 the __value_comp lambda an explicit bool return type.
5097 (__is_permutation_fn::operator()): Give the __proj_scan local
5098 variable auto&& return type. Give the __comp_scan lambda an
5099 explicit bool return type.
5100 (__remove_fn::operator()): Give the __pred lambda an explicit
5102 (__partition_fn::operator()): Don't std::move __first twice
5103 when returning an empty subrange.
5104 (__min_fn::operator()): Don't std::move __comp.
5105 (__max_fn::operator()): Likewise.
5106 (__minmax_fn::operator()): Likewise.
5108 2021-04-27 Patrick Palka <ppalka@redhat.com>
5111 * include/std/ranges (join_view::_Iterator::operator++): Correct
5112 the return type of the lambda to avoid returning a copy of
5113 _M_parent->_M_inner.
5114 * testsuite/std/ranges/adaptors/join.cc (test10): New test.
5116 2021-04-27 Jakub Jelinek <jakub@redhat.com>
5119 2021-04-22 Jakub Jelinek <jakub@redhat.com>
5122 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
5124 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
5127 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
5129 * include/experimental/internet (address_v6::bytes_type): Adjust
5131 (basic_endpoint): Define _M_is_v6() to put all checks for
5132 AF_INET6 in one place.
5133 (basic_endpoint::resize): Simplify.
5134 (operator==(const tcp&, const tcp&)): Add constexpr and noexcept.
5135 (operator!=(const tcp&, const tcp&)): Likewise.
5136 (operator==(const udp&, const udp&)): Likewise.
5137 (operator!=(const udp&, const udp&)): Likewise.
5138 * testsuite/experimental/net/internet/tcp.cc: New test.
5139 * testsuite/experimental/net/internet/udp.cc: New test.
5141 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
5144 * include/experimental/internet (resolver_errc, resolver_category())
5145 (make_error_code, make_error_condition): Define unconditionally,
5146 only make enumerators and use of gai_strerror depend on the
5147 availability of <netdb.h>.
5148 (address_v4::to_string): Use correct constant for string length.
5149 (address_v4::to_string, address_v6::to_string): Define
5150 unconditionally, throw if unsupported.
5151 (make_address_v4, make_address_v6): Define unconditionally.
5152 Return an error if unsupported.
5153 (tcp, udp, v6_only, unicast::hops, multicast::*): Define
5155 * testsuite/experimental/net/internet/socket/opt.cc: Check for
5156 <netinet/in.h> and <netinet/tcp.h> before using types from
5159 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
5162 * include/experimental/internet (resolver_base::flags):
5163 Define overloaded operators as hidden friends.
5164 * include/experimental/socket (socket_base::message_flags):
5167 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
5169 * include/experimental/internet (tcp::no_delay, v6_only)
5170 (unicast::hops, multicast::hops, multicast::enable_loopback):
5171 Change access of base class and static data members. Add
5172 using-declaration for __socket_crtp::operator=(_Tp).
5173 (multicast::__mcastopt): New type.
5174 (multicast::join_group, multicast::leave_group): Derive from
5175 __mcastopt for common implementation.
5176 * include/experimental/socket: Add comment.
5177 * testsuite/experimental/net/internet/socket/opt.cc: New test.
5178 * testsuite/experimental/net/socket/socket_base.cc: Check for
5179 protected constructor/destructor of socket_base. Check for
5180 explicit constructors of socket option classes.
5182 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
5184 * include/experimental/bits/net.h (__socket_base): Add
5185 bool template parameter to allow BooleanSocketOption and
5186 IntegerSocketOption to have different __socket_base<int>
5188 (__socket_base<bool>): Adjust base class.
5189 (__socket_base<int>): Add partial specialization.
5190 (__socket_crtp::operator=(_Tp)): Add noexcept-specifier.
5191 * include/experimental/socket (socket_base::broadcast)
5192 (socket_base::debug, socket_base::do_not_route)
5193 (socket_base::keep_alive, socket_base::linger)
5194 (socket_base::out_of_band_inline)
5195 (socket_base::receive_buffer_size)
5196 (socket_base::receive_low_watermark)
5197 (socket_base::reuse_address, socket_base::send_buffer_size)
5198 (socket_base::send_low_watermark): Add using-declaration for
5199 __socket_crtp::operator=(_Tp).
5200 * testsuite/experimental/net/socket/socket_base.cc: Check
5201 properties of socket option types.
5203 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
5205 * include/experimental/internet (resolver_base::flags): Remove
5206 enumerators. Initialize constants directly with desired values.
5207 Make all operators constexpr and noexcept.
5208 * testsuite/experimental/net/internet/resolver/base.cc: Use
5209 __gnu_test::test_bitmask_values for bitmask type. Check
5210 construction and destruction is protected.
5212 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
5214 * include/bits/semaphore_base.h: Include <exception> and <errno.h>.
5216 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
5219 * include/experimental/internet (net::ip::make_error_code)
5220 (net::ip::make_error_condition, net::ip::make_network_v4)
5221 (net::ip::operator==(const udp&, const udp&)): Add 'inline'.
5223 2021-04-24 David Edelsohn <dje.gcc@gmail.com>
5225 * testsuite/lib/dg-options.exp (atomic_link_flags): New.
5226 (add_options_for_libatomic): Use atomic_link_flags.
5228 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
5231 * include/experimental/io_context (io_context): Define
5232 dummy_pollfd type so that most member functions still compile
5233 without <poll.h> and struct pollfd.
5235 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
5237 * include/experimental/io_context (io_context::async_wait): Add
5239 * include/experimental/socket (basic_socket::async_connect):
5240 Cast wait_type constant to int.
5241 (basic_datagram_socket::async_receive): Likewise.
5242 (basic_datagram_socket::async_receive_from): Likewise.
5243 (basic_datagram_socket::async_send): Likewise.
5244 (basic_datagram_socket::async_send_to): Likewise.
5245 (basic_stream_socket::async_receive): Likewise.
5246 (basic_stream_socket::async_send): Likewise. Use io_context
5247 parameter directly, instead of via an executor.
5248 (basic_socket_acceptor::async_accept): Likewise.
5250 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
5252 * include/experimental/socket (socket_base::shutdown_type):
5253 (socket_base::wait_type, socket_base::message_flags):
5254 Remove enumerators. Initialize constants directly with desired
5256 (socket_base::message_flags): Make all operators constexpr and
5258 * testsuite/util/testsuite_common_types.h (test_bitmask_values):
5260 * testsuite/experimental/net/socket/socket_base.cc: New test.
5262 2021-04-22 David Edelsohn <dje.gcc@gmail.com>
5264 * config/os/aix/atomicity.h: Delete.
5266 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
5268 * include/bits/atomic_timed_wait.h (__cond_wait_until_impl):
5269 Handle system_clock as well as steady_clock.
5270 * testsuite/30_threads/semaphore/try_acquire_for.cc: Re-enable.
5271 * testsuite/30_threads/semaphore/try_acquire_until.cc:
5274 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
5276 * testsuite/30_threads/semaphore/try_acquire_posix.cc: Add
5277 options for libatomic.
5279 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
5281 * config/os/gnu-linux/os_defines.h: Fix type in comment.
5283 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
5286 * include/bits/shared_ptr.h (allocate_shared): Assert that _Tp
5287 is not an array type.
5288 * include/bits/shared_ptr_base.h (__allocate_shared): Likewise.
5289 * testsuite/20_util/shared_ptr/creation/99006.cc: New test.
5291 2021-04-22 Thomas Rodgers <rodgert@twrodgers.com>
5293 * include/bits/atomic_wait.h: Always notify waiters in the
5294 case of 'bare' address notification.
5296 2021-04-22 Jakub Jelinek <jakub@redhat.com>
5299 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
5301 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
5304 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
5307 * include/bits/semaphore_base.h: Remove #error.
5308 * include/std/semaphore: Do not define anything unless one of
5309 the implementations is available.
5311 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
5313 * include/bits/semaphore_base.h: Always reload __old in
5314 __atomic_semaphore::_S_do_try_acquire().
5315 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
5318 2021-04-21 Philippe Blain <levraiphilippeblain@gmail.com>
5319 Jonathan Wakely <jwakely@redhat.com>
5322 * python/Makefile.am: Install libstdc++*-gdb.py more robustly.
5323 * python/Makefile.in: Regenerate.
5325 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
5327 * include/bits/semaphore_base.h: Add missing _M_try_acquire()
5328 member to __platform_wait.
5330 2021-04-21 Jonathan Wakely <jwakely@redhat.com>
5332 * include/std/latch: Replace tab characters in license text.
5333 * include/std/semaphore: Likewise.
5335 2021-04-21 Jakub Jelinek <jakub@redhat.com>
5338 * acinclude.m4: For POSIX semaphores AC_DEFINE HAVE_POSIX_SEMAPHORE
5339 rather than _GLIBCXX_HAVE_POSIX_SEMAPHORE.
5340 * configure: Regenerated.
5341 * config.h.in: Regenerated.
5343 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
5345 * testsuite/30_threads/semaphore/try_acquire_for.cc: Disable
5346 test for targets not using futexes for semaphores.
5347 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
5348 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
5349 Disable for all targets.
5351 2021-04-20 Thomas Rodgers <trodgers@redhat.com>
5353 * include/Makefile.am: Add new <bits/this_thread_sleep.h> header.
5354 * include/Makefile.in: Regenerate.
5355 * include/bits/this_thread_sleep.h: New file.
5356 * include/bits/atomic_base.h: Adjust all calls
5357 to __atomic_wait/__atomic_notify for new call signatures.
5358 * include/bits/atomic_timed_wait.h: Extensive rewrite.
5359 * include/bits/atomic_wait.h: Likewise.
5360 * include/bits/semaphore_base.h: Adjust all calls
5361 to __atomic_wait/__atomic_notify for new call signatures.
5362 * include/std/atomic: Likewise.
5363 * include/std/barrier: Likewise.
5364 * include/std/latch: Likewise.
5365 * include/std/semaphore: Likewise.
5366 * include/std/thread (this_thread::sleep_for)
5367 (this_thread::sleep_until): Move to new header.
5368 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Simplify
5370 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
5371 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
5372 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
5373 * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
5374 * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
5375 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Likewise.
5377 2021-04-20 Patrick Palka <ppalka@redhat.com>
5380 * include/bits/stl_iterator.h (__detail::__move_iter_cat):
5382 (move_iterator): Derive from the above in C++20 in order to
5383 conditionally define iterator_category as per P2259.
5384 (move_iterator::__base_cat): No longer used, so remove.
5385 (move_iterator::iterator_category): Remove in C++20.
5386 (__detail::__common_iter_use_postfix_proxy): Define.
5387 (common_iterator::_Proxy): Rename to ...
5388 (common_iterator:__arrow_proxy): ... this.
5389 (common_iterator::__postfix_proxy): Define as per P2259.
5390 (common_iterator::operator->): Adjust.
5391 (common_iterator::operator++): Adjust as per P2259.
5392 (iterator_traits<common_iterator>::_S_iter_cat): Define.
5393 (iterator_traits<common_iterator>::iterator_category): Change as
5395 (__detail::__counted_iter_value_type): Define.
5396 (__detail::__counted_iter_concept): Define.
5397 (__detail::__counted_iter_cat): Define.
5398 (counted_iterator): Derive from the above three classes in order
5399 to conditionally define value_type, iterator_concept and
5400 iterator category respectively as per P2259.
5401 (counted_iterator::operator->): Define as per P2259.
5402 (incrementable_traits<counted_iterator>): Remove as per P2259.
5403 (iterator_traits<counted_iterator>): Adjust as per P2259.
5404 * include/std/ranges (__detail::__iota_view_iter_cat): Define.
5405 (iota_view::_Iterator): Derive from the above in order to
5406 conditionally define iterator_category as per P2259.
5407 (iota_view::_S_iter_cat): Rename to ...
5408 (iota_view::_S_iter_concept): ... this.
5409 (iota_view::iterator_concept): Use it to apply LWG 3291 changes.
5410 (iota_view::iterator_category): Remove.
5411 (__detail::__filter_view_iter_cat): Define.
5412 (filter_view::_Iterator): Derive from the above in order to
5413 conditionally define iterator_category as per P2259.
5414 (filter_view::_Iterator): Move to struct __filter_view_iter_cat.
5415 (filter_view::_Iterator::iterator_category): Remove.
5416 (transform_view::_Base): Define.
5417 (transform_view::__iter_cat): Define.
5418 (transform_view::_Iterator): Derive from the above in order to
5419 conditionally define iterator_category as per P2259.
5420 (transform_view::_Iterator::_Base): Just alias
5421 transform_view::_Base.
5422 (transform_view::_Iterator::_S_iter_cat): Move to struct
5423 transform_view::__iter_cat.
5424 (transform_view::_Iterator::iterator_category): Remove.
5425 (transform_view::_Sentinel::_Base): Just alias
5426 transform_view::_Base.
5427 (join_view::_Base): Define.
5428 (join_view::_Outer_iter): Define.
5429 (join_view::_Inner_iter): Define.
5430 (join_view::_S_ref_is_glvalue): Define.
5431 (join_view::__iter_cat): Define.
5432 (join_view::_Iterator): Derive from it in order to conditionally
5433 define iterator_category as per P2259.
5434 (join_view::_Iterator::_Base): Just alias join_view::_Base.
5435 (join_view::_Iterator::_S_ref_is_glvalue): Just alias
5436 join_view::_S_ref_is_glvalue.
5437 (join_view::_Iterator::_S_iter_cat): Move to struct
5438 transform_view::__iter_cat.
5439 (join_view::_Iterator::_Outer_iter): Just alias
5440 join_view::_Outer_iter.
5441 (join_view::_Iterator::_Inner_iter): Just alias
5442 join_view::_Inner_iter.
5443 (join_view::_Iterator::iterator_category): Remove.
5444 (join_view::_Sentinel::_Base): Just alias join_view::_Base.
5445 (__detail::__split_view_outer_iter_cat): Define.
5446 (__detail::__split_view_inner_iter_cat): Define.
5447 (split_view::_Base): Define.
5448 (split_view::_Outer_iter): Derive from __split_view_outer_iter_cat
5449 in order to conditionally define iterator_category as per P2259.
5450 (split_view::_Outer_iter::iterator_category): Remove.
5451 (split_view::_Inner_iter): Derive from __split_view_inner_iter_cat
5452 in order to conditionally define iterator_category as per P2259.
5453 (split_view::_Inner_iter::_S_iter_cat): Move to
5454 __split_view_inner_iter_cat.
5455 (split_view::_Inner_iter::iterator_category): Remove.
5456 (elements_view::_Base): Define.
5457 (elements_view::__iter_cat): Define.
5458 (elements_view::_Iterator): Derive from the above in order to
5459 conditionall define iterator_category as per P2259.
5460 (elements_view::_Iterator::_Base): Just alias
5461 elements_view::_Base.
5462 (elements_view::_Iterator::_S_iter_concept)
5463 (elements_view::_Iterator::iterator_concept): Define as per
5465 (elements_view::_Iterator::iterator_category): Remove.
5466 (elements_view::_Sentinel::_Base): Just alias
5467 elements_view::_Base.
5468 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
5469 Adjust constraints on iterator_traits<counted_iterator>.
5470 * testsuite/std/ranges/p2259.cc: New test.
5472 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
5475 * include/std/charconv (__cpp_lib_to_chars): Define
5477 * include/std/version (__cpp_lib_to_chars): Likewise..
5478 * testsuite/20_util/from_chars/4.cc: Only check feature test
5479 macro, not _GLIBCXX_HAVE_USELOCALE.
5480 * testsuite/20_util/from_chars/5.cc: Likewise.
5481 * testsuite/20_util/from_chars/6.cc: Likewise.
5482 * testsuite/20_util/to_chars/long_double.cc: Likewise.
5484 2021-04-20 Jakub Jelinek <jakub@redhat.com>
5486 * testsuite/util/testsuite_abi.cc (compare_symbols): If any symbol
5487 versions with _IEEE128_ substring are found, set ieee_version_found
5488 to true. Ignore missing symbols with _IEEE128_ in version name if
5489 !ieee_version_found. Use i->first as version_name instead of
5490 i->second.version_name if the latter is empty.
5491 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
5493 2021-04-19 H.J. Lu <hjl.tools@gmail.com>
5495 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
5498 2021-04-17 Jakub Jelinek <jakub@redhat.com>
5500 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
5501 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
5503 2021-04-17 Jakub Jelinek <jakub@redhat.com>
5505 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
5506 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
5507 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
5508 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
5509 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
5510 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
5512 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
5514 * testsuite/lib/dg-options.exp (add_options_for_libatomic): Also
5515 add libatomic options for 32-bit sparc*-*-linux-gnu.
5517 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
5520 * libsupc++/Makefile.am: Add atomicity.cc here.
5521 * src/c++98/Makefile.am: Remove it from here.
5522 * libsupc++/Makefile.in: Regenerate.
5523 * src/c++98/Makefile.in: Regenerate.
5524 * testsuite/18_support/exception_ptr/96657.cc: New test.
5526 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
5529 * include/std/bit: Only include <ext/numeric_traits.h> for
5530 hosted build, use <limits> otherwise.
5532 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
5534 * doc/xml/manual/backwards_compatibility.xml: Remove porting
5535 notes for libg++ and libstdc++-v2, and bibliography.
5536 * doc/html/*: Regenerated.
5538 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
5541 * include/bits/ranges_util.h (__detail::__iterator_sentinel_pair):
5542 Remove helper concept.
5543 (subrange(_Pr), subrange(Pr, __make_unsigned_like<...>)): Remove
5544 deduction guides, as per LWG 3404.
5545 * testsuite/std/ranges/subrange/lwg3282_neg.cc: Check that class
5546 template argument deduction fails.
5548 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
5550 * testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc:
5551 Adjust expected error for C++20 mode.
5552 * testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc:
5555 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
5558 * testsuite/17_intro/headers/c++1998/49745.cc: Include all
5559 standard headers and XFAIL for effective-target c++20.
5561 2021-04-09 François Dumont <fdumont@gcc.gnu.org>
5564 * include/debug/helper_functions.h (__can_advance(_InputIterator,
5565 const std::pair<_Diff, _Distance_precision>&, int)): New.
5566 (__can_advance(const _Safe_iterator<>&,
5567 const std::pair<_Diff, _Distance_precision>&, int)): New.
5568 * include/debug/macros.h (__glibcxx_check_can_increment_dist): New,
5570 (__glibcxx_check_can_increment_range): Adapt to use latter.
5571 (__glibcxx_check_can_decrement_range): Likewise.
5572 * include/debug/safe_iterator.h
5573 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
5575 (__can_advance(const _Safe_iterator<>&,
5576 const std::pair<_Diff, _Distance_precision>&, int)): New.
5577 * include/debug/safe_iterator.tcc
5578 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
5580 (_Safe_iterator<>::_M_valid_range(const _Safe_iterator<>&,
5581 std::pair<difference_type, _Distance_precision>&, bool)): Adapt for
5583 (__copy_move_a): Adapt to use __glibcxx_check_can_increment_dist.
5584 (__copy_move_backward_a): Likewise.
5585 (__equal_aux): Likewise.
5586 * include/debug/stl_iterator.h (__can_advance(const std::reverse_iterator<>&,
5587 const std::pair<_Diff, _Distance_precision>&, int)): New.
5588 (__can_advance(const std::move_iterator<>&,
5589 const std::pair<_Diff, _Distance_precision>&, int)): New.
5590 * testsuite/25_algorithms/copy/debug/99402.cc: New test.
5592 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
5595 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()): Fix
5596 to be a valid constexpr function in C++11.
5597 * testsuite/23_containers/unordered_set/cons/99985.cc: New test.
5599 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
5601 * include/bits/fs_fwd.h: Fix doxygen group command.
5602 * include/bits/streambuf_iterator.h: Likewise.
5603 * include/bits/uses_allocator_args.h: Likewise.
5604 * include/std/memory: Likewise.
5605 * include/tr1/complex: Likewise.
5607 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
5609 * include/bits/basic_string.h: Tweak doxygen comment.
5611 2021-04-08 Patrick Palka <ppalka@redhat.com>
5613 * include/std/ranges (__detail::find): Define.
5614 (split_view::_OuterIter::operator++): Apply proposed resolution
5616 * testsuite/std/ranges/adaptors/split.cc (test10): New test.
5618 2021-04-08 Patrick Palka <ppalka@redhat.com>
5620 * include/std/ranges (__detail::find_if): Simplify.
5621 (__detail::find_if_not): Likewise.
5622 (__detail::min): Remove.
5623 (__detail::mismatch): Simplify.
5624 (take_view::size): Use std::min instead of __detail::min.
5626 2021-04-08 Patrick Palka <ppalka@redhat.com>
5628 * include/std/ranges (__detail::__returnable_element): New
5630 (elements_view): Use this concept in its constraints. Add
5631 missing private access specifier.
5632 (elements_view::_S_get_element): Define as per LWG 3502.
5633 (elements_view::operator*, elements_view::operator[]): Use
5635 (elements_view::operator++): Remove unnecessary constraint
5637 * testsuite/std/ranges/adaptors/elements.cc (test05): New test.
5639 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
5641 * doc/Makefile.am (stamp-pdf-doxygen): Also grep for
5642 out-of-memory error in log file.
5643 * doc/Makefile.in: Regenerate.
5645 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
5647 * configure: Regenerate.
5649 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
5651 * include/bits/random.h: Fix doxygen group commands.
5652 * include/bits/regex_constants.h: Likewise.
5653 * include/tr1/random.h: Likewise.
5655 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
5657 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()):
5658 New function to determine noexcept-specifier for move
5660 (_Hashtable): Use _S_nothrow_move() on move constructors.
5661 * testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc:
5662 Correct static assertion message.
5663 * testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc:
5665 * testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc:
5667 * testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc:
5670 2021-04-08 Patrick Palka <ppalka@redhat.com>
5673 * testsuite/20_util/to_chars/long_double.cc: Don't run the test
5674 on targets without a large long double. XFAIL the execution on
5675 targets with a non-conforming printf.
5677 2021-04-08 Patrick Palka <ppalka@redhat.com>
5680 * include/std/ranges (__adaptor::__maybe_refwrap): Remove.
5681 (__adaptor::__adaptor_invocable): New concept.
5682 (__adaptor::__adaptor_partial_app_viable): New concept.
5683 (__adaptor::_RangeAdaptorClosure): Rewrite, turning it into a
5684 non-template base class.
5685 (__adaptor::_RangeAdaptor): Rewrite, turning it into a CRTP base
5687 (__adaptor::_Partial): New class template that represents
5688 partial application of a range adaptor non-closure.
5689 (__adaptor::__pipe_invocable): New concept.
5690 (__adaptor::_Pipe): New class template.
5691 (__detail::__can_ref_view): New concept.
5692 (__detail::__can_subrange): New concept.
5693 (all): Replace the lambda here with ...
5694 (_All): ... this functor. Add appropriate constraints.
5695 (__detail::__can_filter_view): New concept.
5696 (filter, _Filter): As in all/_All.
5697 (__detail::__can_transform): New concept.
5698 (transform, _Transform): As in all/_All.
5699 (__detail::__can_take_view): New concept.
5700 (take, _Take): As in all/_All.
5701 (__detail::__can_take_while_view): New concept.
5702 (take_while, _TakeWhile): As in all/_All.
5703 (__detail::__can_drop_view): New concept.
5704 (drop, _Drop): As in all/_All.
5705 (__detail::__can_drop_while_view): New concept.
5706 (drop_while, _DropWhile): As in all/_All.
5707 (__detail::__can_join_view): New concept.
5708 (join, _Join): As in all/_All.
5709 (__detail::__can_split_view): New concept.
5710 (split, _Split): As in all/_All. Rename template parameter
5712 (__detail::__already_common): New concept.
5713 (__detail::__can_common_view): New concept.
5714 (common, _Common): As in all/_All.
5715 (__detail::__can_reverse_view): New concept.
5716 (reverse, _Reverse): As in all/_All.
5717 (__detail::__can_elements_view): New concept.
5718 (elements, _Elements): As in all/_All.
5719 (keys, values): Adjust.
5720 * testsuite/std/ranges/adaptors/99433.cc: New test.
5721 * testsuite/std/ranges/adaptors/all.cc: No longer expect that
5722 adding empty range adaptor closure objects to a pipeline doesn't
5723 increase the size of the pipeline.
5725 * testsuite/std/ranges/adaptors/common.cc (test03): New test.
5726 * testsuite/std/ranges/adaptors/drop.cc (test09): New test.
5727 * testsuite/std/ranges/adaptors/drop_while.cc (test04): New test.
5728 * testsuite/std/ranges/adaptors/elements.cc (test04): New test.
5729 * testsuite/std/ranges/adaptors/filter.cc (test06): New test.
5730 * testsuite/std/ranges/adaptors/join.cc (test09): New test.
5731 * testsuite/std/ranges/adaptors/p2281.cc: New test.
5732 * testsuite/std/ranges/adaptors/reverse.cc (test07): New test.
5733 * testsuite/std/ranges/adaptors/split.cc (test01, test04):
5736 * testsuite/std/ranges/adaptors/split_neg.cc (test01): Adjust
5737 expected error message.
5738 (test02): Likewise. Extend test.
5739 * testsuite/std/ranges/adaptors/take.cc (test06): New test.
5740 * testsuite/std/ranges/adaptors/take_while.cc (test05): New test.
5741 * testsuite/std/ranges/adaptors/transform.cc (test07, test08):
5744 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
5746 * include/std/string_view: Adjust Doxygen @file comment.
5748 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
5750 * include/std/type_traits (is_scoped_enum<T>): Constrain partial
5751 specialization to not match incomplete enum types. Use a
5752 requires-expression instead of instantiating is_convertible.
5753 (is_scoped_enum<const T>): Add as workaround for PR c++/99968.
5754 * testsuite/20_util/is_scoped_enum/value.cc: Check with
5755 incomplete types and opaque-enum-declarations.
5757 2021-04-07 Jonathan Wakely <jwakely@redhat.com>
5760 * src/c++17/fs_path.cc (path::_M_split_cmpts): Do not call
5761 non-const member on _M_pathname, to avoid copy-on-write.
5762 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
5763 Check construction from strings that might be shared.
5765 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
5767 * include/bits/move.h (forward, move, move_if_noexcept)
5768 (addressof): Add _GLIBCXX_NODISCARD.
5769 * include/bits/ranges_cmp.h (identity::operator()): Add
5770 nodiscard attribute.
5771 * include/c_global/cstddef (to_integer): Likewise.
5772 * include/std/bit (bit_cast): Likewise.
5773 * include/std/utility (as_const, to_underlying): Likewise.
5775 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
5777 * include/bits/move.h (forward): Change static_assert message
5778 to be unambiguous about what must be true.
5779 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
5780 * testsuite/20_util/forward/f_neg.cc: Likewise.
5782 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
5784 * include/bits/alloc_traits.h: Use markdown for code font.
5785 * include/bits/basic_string.h: Fix @param names.
5786 * include/bits/max_size_type.h: Remove period after @file.
5787 * include/bits/regex.h: Fix duplicate @retval names, and rename.
5788 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp: Add
5789 group open to match existing group close.
5790 * include/ext/pb_ds/priority_queue.hpp: Add blank line before group
5793 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
5795 * include/bits/atomic_base.h: Fix doxygen group close.
5796 * include/bits/basic_ios.h: Likewise.
5797 * include/bits/forward_list.h: Likewise.
5798 * include/bits/fs_dir.h: Likewise.
5799 * include/bits/fs_ops.h: Likewise.
5800 * include/bits/fs_path.h: Likewise.
5801 * include/bits/functional_hash.h: Likewise.
5802 * include/bits/gslice.h: Likewise.
5803 * include/bits/gslice_array.h: Likewise.
5804 * include/bits/hashtable_policy.h: Likewise.
5805 * include/bits/indirect_array.h: Likewise.
5806 * include/bits/locale_classes.h: Likewise.
5807 * include/bits/locale_facets.h: Likewise.
5808 * include/bits/locale_facets_nonio.h: Likewise.
5809 * include/bits/mask_array.h: Likewise.
5810 * include/bits/refwrap.h: Likewise.
5811 * include/bits/regex.h: Likewise.
5812 * include/bits/regex_automaton.h: Likewise.
5813 * include/bits/regex_compiler.h: Likewise.
5814 * include/bits/regex_constants.h: Likewise.
5815 * include/bits/regex_error.h: Likewise.
5816 * include/bits/regex_executor.h: Likewise.
5817 * include/bits/regex_scanner.h: Likewise.
5818 * include/bits/shared_ptr.h: Likewise.
5819 * include/bits/shared_ptr_atomic.h: Likewise.
5820 * include/bits/shared_ptr_base.h: Likewise.
5821 * include/bits/slice_array.h: Likewise.
5822 * include/bits/specfun.h: Likewise.
5823 * include/bits/std_function.h: Likewise.
5824 * include/bits/std_mutex.h: Likewise.
5825 * include/bits/stl_deque.h: Likewise.
5826 * include/bits/stl_iterator.h: Likewise.
5827 * include/bits/stl_iterator_base_types.h: Likewise.
5828 * include/bits/stl_map.h: Likewise.
5829 * include/bits/stl_multimap.h: Likewise.
5830 * include/bits/stl_multiset.h: Likewise.
5831 * include/bits/stl_numeric.h: Likewise.
5832 * include/bits/stl_pair.h: Likewise.
5833 * include/bits/stl_set.h: Likewise.
5834 * include/bits/stl_uninitialized.h: Likewise.
5835 * include/bits/stream_iterator.h: Likewise.
5836 * include/bits/streambuf_iterator.h: Likewise.
5837 * include/bits/unique_ptr.h: Likewise.
5838 * include/bits/unordered_map.h: Likewise.
5839 * include/bits/unordered_set.h: Likewise.
5840 * include/decimal/decimal: Likewise.
5841 * include/experimental/any: Likewise.
5842 * include/experimental/array: Likewise.
5843 * include/experimental/bits/fs_dir.h: Likewise.
5844 * include/experimental/bits/fs_fwd.h: Likewise.
5845 * include/experimental/bits/fs_ops.h: Likewise.
5846 * include/experimental/bits/fs_path.h: Likewise.
5847 * include/experimental/buffer: Likewise.
5848 * include/experimental/internet: Likewise.
5849 * include/experimental/optional: Likewise.
5850 * include/experimental/propagate_const: Likewise.
5851 * include/experimental/socket: Likewise.
5852 * include/ext/pb_ds/assoc_container.hpp: Likewise.
5853 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp:
5855 * include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp: Likewise.
5856 * include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp: Likewise.
5857 * include/ext/pb_ds/detail/types_traits.hpp: Likewise.
5858 * include/ext/pb_ds/exception.hpp: Likewise.
5859 * include/ext/pb_ds/priority_queue.hpp: Likewise.
5860 * include/ext/pb_ds/tag_and_trait.hpp: Likewise.
5861 * include/ext/random: Likewise.
5862 * include/std/any: Likewise.
5863 * include/std/atomic: Likewise.
5864 * include/std/bitset: Likewise.
5865 * include/std/chrono: Likewise.
5866 * include/std/complex: Likewise.
5867 * include/std/condition_variable: Likewise.
5868 * include/std/fstream: Likewise.
5869 * include/std/future: Likewise.
5870 * include/std/iostream: Likewise.
5871 * include/std/istream: Likewise.
5872 * include/std/mutex: Likewise.
5873 * include/std/numeric: Likewise.
5874 * include/std/ostream: Likewise.
5875 * include/std/ratio: Likewise.
5876 * include/std/shared_mutex: Likewise.
5877 * include/std/stdexcept: Likewise.
5878 * include/std/streambuf: Likewise.
5879 * include/std/system_error: Likewise.
5880 * include/std/thread: Likewise.
5881 * include/std/valarray: Likewise.
5882 * include/std/variant: Likewise.
5883 * include/tr1/cmath: Likewise.
5884 * include/tr1/regex: Likewise.
5885 * include/tr2/dynamic_bitset: Likewise.
5886 * libsupc++/atomic_lockfree_defines.h: Likewise.
5887 * libsupc++/exception: Likewise.
5888 * libsupc++/exception.h: Likewise.
5889 * libsupc++/exception_ptr.h: Likewise.
5890 * libsupc++/nested_exception.h: Likewise.
5892 2021-03-31 Alexandre Oliva <oliva@adacore.com>
5894 * testsuite/30_threads/future/members/poll.cc: Use faster
5895 after-ready call in the calibration loop.
5897 2021-03-29 Jonathan Wakely <jwakely@redhat.com>
5899 * doc/xml/manual/status_cxx2017.xml: Adjust link for PSTL.
5900 * doc/html/manual/status.html: Regenerate.
5902 2021-03-28 François Dumont <fdumont@gcc.gnu.org>
5904 * include/debug/forward_list
5905 (forward_list(forward_list&&, const allocator_type&)): Add noexcept qualification.
5906 * include/debug/list (list(list&&, const allocator_type&)): Likewise and add
5907 call to safe container allocator aware move constructor.
5908 * include/debug/vector (vector(vector&&, const allocator_type&)):
5909 Fix noexcept qualification.
5910 * testsuite/23_containers/forward_list/cons/noexcept_move_construct.cc:
5911 Add allocator-extended move constructor noexceot qualification check.
5912 * testsuite/23_containers/list/cons/noexcept_move_construct.cc: Likewise.
5914 2021-03-26 Jonathan Wakely <jwakely@redhat.com>
5916 * src/c++11/random.cc (USE_LCG): Define when a pseudo-random
5918 [USE_LCG] (bad_seed, construct_lcg_at, destroy_lcg_at, __lcg):
5919 New helper functions and callback.
5920 (random_device::_M_init): Add 'prng' and 'all' enumerators.
5921 Replace switch with fallthrough with a series of 'if' statements.
5922 [USE_LCG]: Construct an lcg_type engine and use __lcg when cpuid
5924 (random_device::_M_init_pretr1) [USE_MT19937]: Accept "prng"
5926 (random_device::_M_getval): Check for callback unconditionally
5927 and always pass _M_file pointer.
5928 * testsuite/26_numerics/random/random_device/85494.cc: Remove
5929 effective-target check. Use new random_device_available helper.
5930 * testsuite/26_numerics/random/random_device/94087.cc: Likewise.
5931 * testsuite/26_numerics/random/random_device/cons/default-cow.cc:
5932 Remove effective-target check.
5933 * testsuite/26_numerics/random/random_device/cons/default.cc:
5935 * testsuite/26_numerics/random/random_device/cons/token.cc: Use
5936 new random_device_available helper. Test "prng" token.
5937 * testsuite/util/testsuite_random.h (random_device_available):
5938 New helper function.
5940 2021-03-25 François Dumont <fdumont@gcc.gnu.org>
5942 * include/debug/string
5943 (basic_string(const basic_string&, const _Alloc&)): Define even if !_GLIBCXX_USE_CXX11_ABI.
5944 (basic_string(basic_string&&, const _Alloc&)): Likewise and add noexcept qualification.
5945 (basic_string<>::erase): Adapt to take __const_iterator.
5946 (basic_string(const _CharT*, const _Allocator&)): Remove assign call.
5947 (basic_string<>::insert(const_iterator, _InputIte, _InputIte)): Try to
5948 remove iterator debug layer even if !_GLIBCXX_USE_CXX11_ABI.
5949 [_GLIBCXX_USE_CHAR8_T] (__gnu_debug::u8string): New.
5950 (__gnu_debug::u16string, __gnu_debug::u32string): New.
5951 (std::hash<__gnu_debug::basic_string<>>): New partial specialization.
5952 (std::__is_fast_hash<__gnu_debug::basic_string<>>): Likewise.
5953 * testsuite/util/exception/safety.h
5954 (erase_base<__gnu_debug::basic_string<>>): New partial specialization.
5955 (insert_base<__gnu_debug::basic_string<>>): Likewise.
5956 * testsuite/util/testsuite_container_traits.h (traits<__gnu_debug::basic_string<>>):
5957 New partial specialization.
5958 * testsuite/21_strings/basic_string/hash/debug.cc: New test.
5959 * testsuite/21_strings/basic_string/requirements/citerators.cc:
5960 Add test on __gnu_debug::string.
5961 * testsuite/21_strings/basic_string/requirements/dr438/constructor.cc: Likewise.
5962 * testsuite/21_strings/basic_string/requirements/exception/basic.cc: Likewise.
5963 * testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc:
5965 * testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc:
5967 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
5969 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
5971 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
5973 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
5975 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
5977 * testsuite/21_strings/basic_string/requirements/typedefs.cc: Likewise.
5979 2021-03-25 Jakub Jelinek <jakub@redhat.com>
5982 * testsuite/18_support/source_location/consteval.cc (main): Adjust
5983 expected column numbers.
5984 * testsuite/18_support/source_location/1.cc (main): Likewise.
5986 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
5988 * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare malloc.
5990 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
5992 * testsuite/util/exception/safety.h (setup_base::generate):
5993 Support seeding random engine.
5994 (erase_point, erase_range): Adjust range of random numbers to
5995 ensure dereferenceable iterators are used where required.
5996 (generation_prohibited::run): Do not try to erase from empty
5998 * testsuite/util/testsuite_containergen.h (test_containers):
5999 Support seeding random engine.
6001 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
6003 * testsuite/std/ranges/adaptors/reverse.cc: Replace duplicated
6004 line with a check that uses the const being/end overloads.
6006 2021-03-23 Moritz Sichert <sichert@in.tum.de>
6008 * include/std/ranges (reverse_view::begin, reverse_view::end):
6009 Qualify make_reverse_iterator calls to avoid ADL.
6010 * testsuite/std/ranges/adaptors/reverse.cc: Test that
6011 views::reverse works when make_reverse_iterator is defined
6012 in an associated namespace.
6014 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
6016 * include/bits/c++config (_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT):
6017 Do not define when compiling with Clang.
6019 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
6021 * include/std/string_view (basic_string_view(Range&&)): Define new
6022 constructor and deduction guide.
6023 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: New test.
6024 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: New test.
6026 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
6028 * include/bits/range_access.h (begin(T (&)[N]), end(T (&)[N])):
6029 Add missing 'noexcept' as per LWG 2280.
6030 (rbegin(T (&)[N]), rend(T (&)[N]), rbegin(initializer_list<T>))
6031 (rend(initializer_list<T>)): Add 'noexcept' as per LWG 3537.
6032 * testsuite/24_iterators/range_access/range_access.cc: Check for
6033 expected noexcept specifiers. Check result types of generic
6034 std::begin and std::end overloads.
6035 * testsuite/24_iterators/range_access/range_access_cpp14.cc:
6036 Check for expected noexcept specifiers.
6037 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
6040 2021-03-19 Jonathan Wakely <jwakely@redhat.com>
6042 * include/std/type_traits (is_scoped_enum): Define.
6043 * include/std/version (__cpp_lib_is_scoped_enum): Define.
6044 * testsuite/20_util/is_scoped_enum/value.cc: New test.
6045 * testsuite/20_util/is_scoped_enum/version.cc: New test.
6047 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
6050 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Remove
6051 std::once_flag symbols.
6052 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Likewise.
6053 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
6054 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
6056 * config/abi/pre/gnu.ver: Likewise.
6057 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
6058 (struct __once_flag_compat): Remove.
6059 (_ZNSt9once_flag11_M_activateEv): Remove.
6060 (_ZNSt9once_flag9_M_finishEb): Remove.
6062 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
6065 * include/std/mutex [_GLIBCXX_HAVE_LINUX_FUTEX] (once_flag):
6066 Revert to pthread_once_t implementation.
6067 [_GLIBCXX_HAVE_LINUX_FUTEX] (call_once): Likewise.
6068 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
6069 (struct __once_flag_compat): New type matching the reverted
6070 implementation of once_flag using futexes.
6071 (once_flag::_M_activate): Remove, replace with ...
6072 (_ZNSt9once_flag11_M_activateEv): ... alias symbol.
6073 (once_flag::_M_finish): Remove, replace with ...
6074 (_ZNSt9once_flag9_M_finishEb): ... alias symbol.
6075 * testsuite/30_threads/call_once/66146.cc: Removed.
6077 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
6079 * testsuite/17_intro/names.cc: Exclude j from the list
6080 of test symbols for Darwin.
6082 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
6084 * config/os/bsd/darwin/ppc-extra.ver: Add matching for
6085 to_chars and from_chars for long double.
6087 2021-03-15 Patrick Palka <ppalka@redhat.com>
6089 * include/bits/max_size_type.h (__max_size_type::operator _Tp):
6091 (__max_size_type::operator++): Define.
6092 (__max_size_type::operator--): Likewise.
6093 (__max_size_type::operator<=>): Conditionally define (in place
6094 of the other comparison operators).
6095 (__max_diff_type::operator _Tp): Fix formatting.
6096 (__max_diff_type::operator++): Define.
6097 (__max_diff_type::operator--): Likewise.
6098 (__max_diff_type::operator<=>): Conditionally define (in place
6099 of the other comparison operators).
6100 * testsuite/std/ranges/iota/max_size_type.cc (test01): Test
6101 these operator overloads.
6103 2021-03-15 Caroline Tice <cmtice@google.com>
6106 * src/Makefile.am (AM_CXXFLAGS_PRE, AM_CXXFLAGS): Add
6107 AM_CXXFLAGS_PRE with the old definition of AM_CXXFLAGS; make
6108 AM_CXXFLAGS to be AM_CXXFLAGS_PRE with '-fvtable-verify=std'
6110 * src/Makefile.in: Regenerate.
6112 2021-03-11 Patrick Palka <ppalka@redhat.com>
6114 * src/c++17/floating_to_chars.cc: Simplify the file as if
6115 __SIZEOF_INT128__ is always defined.
6116 [!defined __SIZEOF_INT128__]: Include "uint128_t.h". Define
6117 a base-10 to_chars overload for the uint128_t class type.
6118 * src/c++17/uint128_t.h: New file.
6119 * testsuite/20_util/to_chars/long_double.cc: No longer expect an
6120 execution FAIL on targets that have a large long double type
6123 2021-03-11 Patrick Palka <ppalka@redhat.com>
6125 * src/c++17/ryu/LOCAL_PATCHES: Update.
6126 * src/c++17/ryu/d2s_intrinsics.h: Don't define uint128_t.
6127 * src/c++17/ryu/generic_128.h: Likewise.
6128 * src/c++17/ryu/ryu_generic_128.h (struct floating_decimal_128):
6129 Use uint128_t instead of __uint128_t.
6130 (generic_binary_to_decimal): Likewise.
6132 2021-03-11 Patrick Palka <ppalka@redhat.com>
6134 * src/c++17/ryu/LOCAL_PATCHES: New file.
6136 2021-03-11 Patrick Palka <ppalka@redhat.com>
6138 * src/c++17/floating_to_chars.cc (uint128_t): New conditionally
6139 defined alias of unsigned __int128.
6140 (floating_type_traits_binary128::mantissa_t): Use uint128_t
6141 instead of unsigned __int128.
6142 (floating_type_traits<long double>::mantissa_t)
6143 [LONG_DOUBLE_KIND == LDK_IBM128]: Likewise.
6144 (get_ieee_repr): Likewise. Make casts from uint_t to mantissa_t
6145 and uint32_t explicit. Simplify the extraction of mantissa,
6146 exponent and sign bit.
6148 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
6150 * include/std/barrier (barrier::arrival_token): New move-only
6151 class that encapsulates the underlying token value.
6153 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
6155 * python/libstdcxx/v6/printers.py (find_type): Use tag attribute
6156 instead of unqualified() method.
6158 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
6161 * include/std/stop_token (_Stop_state_t::_M_release_ownership):
6162 Use acq_rel memory ordering.
6164 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
6167 * src/c++17/fs_dir.cc (recursive_directory_iterator): Use new
6168 helper function to check for permission denied errors.
6169 * src/filesystem/dir.cc (recursive_directory_iterator):
6171 * src/filesystem/dir-common.h (is_permission_denied_error): New
6174 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
6177 * include/bits/random.h (normal_distribution): Use
6178 default-initializer for _M_saved and _M_saved_available.
6180 2021-03-10 John David Anglin <danglin@gcc.gnu.org>
6182 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Add options to
6183 link with libatomic.
6184 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
6185 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
6186 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
6187 * testsuite/30_threads/barrier/arrive.cc: Likewise.
6188 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
6189 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
6190 * testsuite/30_threads/barrier/completion.cc: Likewise.
6191 * testsuite/30_threads/latch/3.cc: Likewise.
6192 * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
6193 * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
6194 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
6196 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
6199 * include/bits/align.h: Include debug/assertions.h.
6200 * include/bits/codecvt.h: Include bits/c++config.h.
6201 * include/bits/enable_special_members.h: Likewise.
6202 * include/bits/erase_if.h: Likewise.
6203 * include/bits/functional_hash.h: Include <type_traits>.
6204 * include/bits/invoke.h: Include bits/move.h.
6205 * include/bits/ostream_insert.h: Include bits/exception_defines.h.
6206 * include/bits/parse_numbers.h: Include <type_traits>.
6207 * include/bits/predefined_ops.h: Include bits/c++config.h.
6208 * include/bits/range_access.h: Include bits/stl_iterator.h.
6209 * include/bits/stl_bvector.h: Do not include bits/stl_vector.h.
6210 * include/bits/stl_iterator.h: Include bits/stl_iterator_base_types.h.
6211 * include/bits/stl_uninitialized.h: Include bits/stl_algobase.h.
6212 * include/bits/uniform_int_dist.h: Include bits/concept_check.h.
6213 * include/bits/unique_lock.h: Include bits/std_mutex.h.
6214 * include/debug/assertions.h: Include bits/c++config.h.
6216 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
6218 * include/bits/ranges_cmp.h (__eq_builtin_ptr_cmp): Remove.
6219 (ranges::equal_to, ranges::not_equal_to): Do not constrain
6220 with __eq_builtin_ptr_cmp.
6221 (ranges::less, ranges::greater, ranges::less_equal)
6222 (ranges::greater_equal): Do not constrain with
6223 __less_builtin_ptr_cmp.
6224 * libsupc++/compare (compare_three_way): Do not constrain with
6225 __3way_builtin_ptr_cmp.
6226 * testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc: Moved to...
6227 * testsuite/18_support/comparisons/object/lwg3530.cc: ...here.
6228 * testsuite/20_util/function_objects/range.cmp/lwg3530.cc: New test.
6230 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
6232 * testsuite/std/time/syn_c++20.cc: Enable synopsis checks for
6233 C++20 calendar types.
6235 2021-03-06 Jakub Jelinek <jakub@redhat.com>
6238 * include/std/bit (__rotl, __rotr): Add optimized variants for power of
6239 two _Nd which the compiler can pattern match the rotates.
6241 2021-03-04 Jonathan Wakely <jwakely@redhat.com>
6244 * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
6245 Make storage larger than required. Verify no write to the last
6247 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
6250 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6252 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
6253 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
6255 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
6256 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
6259 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6261 * include/experimental/bits/simd.h: Replace reserved _X, _B by
6263 * include/experimental/bits/simd_builtin.h: Likewise.
6264 * include/experimental/bits/simd_x86.h: Likewise.
6266 2021-02-27 Jonathan Wakely <jwakely@redhat.com>
6269 * include/std/chrono (year_month_day::_M_days_since_epoch()):
6270 Convert chrono::month and chrono::day to unsigned before
6271 converting to uint32_t.
6273 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
6275 * include/std/chrono (year_month_day::_S_from_days): Perform
6276 all calculations with type uint32_t.
6278 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
6280 * doc/xml/manual/abi.xml: Document versioning for GCC 11.
6281 * doc/html/manual/abi.html: Regenerate.
6283 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
6286 * testsuite/27_io/headers/cstdio/types_std.cc: Use pointer to
6287 FILE instead of FILE.
6289 2021-02-25 Andreas Schwab <schwab@suse.de>
6291 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
6292 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
6293 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
6294 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
6296 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
6299 * include/std/chrono (year_month_day::_S_from_days): Cast long
6302 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
6304 * include/std/utility (to_underlying): Define.
6305 * include/std/version (__cpp_lib_to_underlying): Define.
6306 * testsuite/20_util/to_underlying/1.cc: New test.
6307 * testsuite/20_util/to_underlying/version.cc: New test.
6309 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
6312 * src/c++17/floating_to_chars.cc (sprintf_ld): Add extra args
6313 before value to be printed.
6315 2021-02-24 Patrick Palka <ppalka@redhat.com>
6317 * src/c++17/floating_to_chars.cc (__floating_to_chars_precision):
6318 Relax the condition that guards the printf code path to accept
6319 F128_type as well as long double.
6321 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
6323 * include/std/chrono (year_month_day_last:day): New
6326 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
6328 * include/std/chrono (year::is_leap): New implementation.
6329 * testsuite/std/time/year/2.cc: New test.
6331 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
6333 * include/std/chrono (year_month_day::_M_days_since_epoch):
6335 * testsuite/std/time/year_month_day/4.cc: New test.
6337 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
6339 * include/std/chrono (year_month_day::_S_from_days): New
6341 * testsuite/std/time/year_month_day/3.cc: New test.
6343 2021-02-24 Patrick Palka <ppalka@redhat.com>
6346 * testsuite/20_util/to_chars/long_double.cc: Include <optional>.
6347 (test01): Simplify verifying the nearby values by using a
6348 2-iteration loop and a dedicated output buffer to check that the
6349 nearby values are different. Factor out the printf-based
6350 verification into a local function, and check that the leading
6351 hex digits agree before comparing to the output of printf. Also
6352 verify the output by round-tripping it through from_chars.
6354 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
6357 * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Do not match to_chars
6358 symbols for long double arguments mangled as 'g'.
6359 * config/os/gnu-linux/ldbl-extra.ver: Likewise.
6360 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Likewise.
6361 * src/c++17/Makefile.am [GLIBCXX_LDBL_ALT128_COMPAT_TRUE]:
6362 Use -mabi=ibmlongdouble for floating_to_chars.cc.
6363 * src/c++17/Makefile.in: Regenerate.
6364 * src/c++17/floating_to_chars.cc (floating_type_traits_binary128):
6365 New type defining type traits of IEEE binary128 format.
6366 (floating_type_traits<__float128>): Define specialization.
6367 (floating_type_traits<long double>): Define in terms of
6368 floating_type_traits_binary128 when appropriate.
6369 (floating_to_shortest_scientific): Handle __float128.
6370 (sprintf_ld): New function template for printing a long double
6371 or __ieee128 value using sprintf.
6372 (__floating_to_chars_shortest, __floating_to_chars_precision):
6374 (to_chars): Define overloads for __float128.
6376 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
6378 * testsuite/17_intro/names.cc: Undefine 'u' on powerpc*-linux*.
6380 2021-02-23 Martin Sebor <msebor@redhat.com>
6383 * libsupc++/dyncast.cc (__dynamic_cast): Return null when
6384 first argument is null.
6386 2021-02-23 Jakub Jelinek <jakub@redhat.com>
6389 * testsuite/21_strings/char_traits/requirements/char/99181.cc: New
6392 2021-02-23 Jakub Jelinek <jakub@redhat.com>
6395 * include/bits/char_traits.h (char_traits<char>::compare): For
6396 constexpr evaluation don't call
6397 __gnu_cxx::char_traits<char_type>::compare but do the comparison loop
6400 2021-02-23 Jakub Jelinek <jakub@redhat.com>
6403 * include/pstl/parallel_backend_serial.h: Remove __pstl::__par_backend.
6405 2021-02-23 Patrick Palka <ppalka@redhat.com>
6408 * src/c++17/floating_to_chars.cc (get_ieee_repr): Extract
6409 the high- and low-order parts from an IBM long double value
6410 in an endian-agnostic way.
6412 2021-02-19 Jonathan Wakely <jwakely@redhat.com>
6414 * include/bits/atomic_wait.h (__thread_relax()): Call
6415 __thread_yield() not __gthread_yield().
6417 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
6419 * include/bits/atomic_wait.h (__thread_yield()): Check
6420 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
6421 (__thread_relax()): Use __thread_yield() instead of repeating
6422 the preprocessor checks for __gthread_yield.
6424 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
6426 * include/std/mutex (once_flag::_M_activate()): Add explicit
6427 return statement for passive case.
6428 (once_flag::_M_finish(bool)): Use reserved name for parameter.
6430 2021-02-14 Jonathan Wakely <jwakely@redhat.com>
6433 * testsuite/util/testsuite_fs.h: Always include <unistd.h>.
6435 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6438 * src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround.
6440 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6442 * doc/xml/manual/status_cxx2014.xml: Document implementation
6443 specific properties of std::experimental::filesystem::rename.
6444 * doc/xml/manual/status_cxx2017.xml: Document implementation
6445 specific properties of std::filesystem::rename.
6446 * doc/html/*: Regenerate.
6447 * src/c++17/fs_ops.cc (fs::rename): Implement correct behaviour
6448 for directories on Windows.
6449 * src/filesystem/ops-common.h (__gnu_posix::rename): Use
6450 MoveFileExW on Windows.
6451 * testsuite/27_io/filesystem/operations/rename.cc: New test.
6452 * testsuite/experimental/filesystem/operations/rename.cc: New test.
6454 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6456 * testsuite/util/testsuite_fs.h (nonexistent_path): Add
6457 random number to the path.
6459 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6461 * include/experimental/internet (address_v6::to_string): Include
6463 * testsuite/experimental/net/internet/address/v6/members.cc:
6464 Test to_string() results.
6466 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6468 * include/experimental/internet (address_v6::any): Avoid using
6469 memcpy in constexpr function.
6470 (address_v6::loopback): Likewise.
6471 (make_address_v6): Fix missing return statements on error paths.
6472 * include/experimental/io_context: Avoid -Wdangling-else
6474 * testsuite/experimental/net/internet/address/v4/members.cc:
6475 Remove unused variables.
6476 * testsuite/experimental/net/internet/address/v6/members.cc:
6479 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6481 * include/bits/shared_ptr_base.h (__shared_ptr::_M_get_deleter):
6482 Add unused attribute to parameter.
6483 * src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq):
6486 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6488 * testsuite/27_io/basic_ostream/emit/1.cc: Expect test to fail
6489 if -fno-rtti is used.
6490 * testsuite/30_threads/async/forced_unwind.cc: Expect test
6491 to abort if -fno-rtti is used.
6493 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6495 * testsuite/util/testsuite_allocator.h (memory_resource):
6496 Remove requirement for RTTI and exceptions to be enabled.
6498 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6500 * testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Use
6501 static_cast when RTTI is disabled.
6502 * testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc:
6504 * testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc:
6506 * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc:
6508 * testsuite/27_io/basic_stringstream/str/char/2.cc:
6510 * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc:
6513 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6515 * include/std/ostream (__syncbuf_base::_S_get): Mark parameter
6516 as unused and only use dynamic_cast when RTTI is enabled.
6518 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6521 * src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)):
6522 Change int parameter to error_code, to match std::ios_failure.
6523 (__throw_ios_failure(const char*, int)): Construct error_code
6526 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
6528 * libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define
6530 * libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new
6531 macro instead of _GLIBCXX_EH_PTR_COMPAT.
6532 (operator==): Likewise.
6534 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
6537 * doc/xml/manual/status_cxx2011.xml: Document when support
6539 * doc/xml/manual/status_cxx2014.xml: Likewise.
6540 * doc/xml/manual/status_cxx2017.xml: Likewise.
6541 * doc/html/manual/status.html: Regenerate.
6543 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
6546 * src/c++17/fs_ops.cc (fs::status): Re-enable workaround.
6548 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
6550 * src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent)
6551 (fs::remove): Use std::system_category() for error codes from
6553 * src/filesystem/ops.cc (fs::create_hard_link, fs::remove):
6556 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
6558 * testsuite/27_io/filesystem/operations/proximate.cc: Fix typo
6559 in __MINGW32__ macro name.
6560 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
6561 * testsuite/27_io/filesystem/path/generation/proximate.cc:
6563 * testsuite/27_io/filesystem/path/generation/relative.cc:
6565 * testsuite/util/testsuite_fs.h: Likewise.
6567 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
6569 * include/bits/stl_tree.h
6570 (__has_is_transparent, __has_is_transparent_t): Move...
6571 * include/bits/stl_function.h: ...here.
6572 * include/bits/hashtable_policy.h (_Hash_code_base<>::_M_hash_code_tr): New..
6573 (_Hashtable_base<>::_M_equals_tr): New.
6574 * include/bits/hashtable.h (_Hashtable<>::_M_find_tr, _Hashtable<>::_M_count_tr,
6575 _Hashtable<>::_M_equal_range_tr): New member function templates to perform
6576 heterogeneous lookup.
6577 (_Hashtable<>::_M_find_before_node_tr): New.
6578 (_Hashtable<>::_M_find_node_tr): New.
6579 * include/bits/unordered_map.h (unordered_map::find<>, unordered_map::count<>,
6580 unordered_map::contains<>, unordered_map::equal_range<>): New member function
6581 templates to perform heterogeneous lookup.
6582 (unordered_multimap::find<>, unordered_multimap::count<>,
6583 unordered_multimap::contains<>, unordered_multimap::equal_range<>): Likewise.
6584 * include/bits/unordered_set.h (unordered_set::find<>, unordered_set::count<>,
6585 unordered_set::contains<>, unordered_set::equal_range<>): Likewise.
6586 (unordered_multiset::find<>, unordered_multiset::count<>,
6587 unordered_multiset::contains<>, unordered_multiset::equal_range<>): Likewise.
6588 * include/debug/unordered_map
6589 (unordered_map::find<>, unordered_map::equal_range<>): Likewise.
6590 (unordered_multimap::find<>, unordered_multimap::equal_range<>): Likewise.
6591 * include/debug/unordered_set
6592 (unordered_set::find<>, unordered_set::equal_range<>): Likewise.
6593 (unordered_multiset::find<>, unordered_multiset::equal_range<>): Likewise.
6594 * testsuite/23_containers/unordered_map/operations/1.cc: New test.
6595 * testsuite/23_containers/unordered_multimap/operations/1.cc: New test.
6596 * testsuite/23_containers/unordered_multiset/operations/1.cc: New test.
6597 * testsuite/23_containers/unordered_set/operations/1.cc: New test.
6599 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
6601 * include/bits/stl_deque.h
6602 (std::operator-(deque::iterator, deque::iterator)): Replace if/then with
6603 a null pointer test.
6605 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
6607 * testsuite/27_io/filesystem/operations/remove_all.cc: Remove
6608 test directory after making it writable again.
6609 * testsuite/experimental/filesystem/operations/remove_all.cc:
6612 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
6615 * include/std/coroutine (coroutine_handle<P>::from_address): Add
6618 2021-02-09 Vladimir Vishnevsky <vv.os.swe@gmail.com>
6620 * include/ext/stdio_sync_filebuf.h: Remove unused <unistd.h>.
6621 * src/c++17/fs_ops.cc (fs::permissions): Qualify mode_t.
6623 2021-02-09 Jakub Jelinek <jakub@redhat.com>
6626 * include/bits/basic_string.tcc (basic_string::_M_replace): When __s
6627 points to the characters moved by earlier _S_move, compute the source
6628 address using expression based on the __p pointer rather than __s
6631 2021-02-03 Jonathan Wakely <jwakely@redhat.com>
6633 * testsuite/19_diagnostics/error_code/operators/not_equal.cc:
6634 Add comparison with same category and different values.
6635 * testsuite/19_diagnostics/error_code/operators/less.cc:
6636 Likewise. Fix comparison involving different categories.
6637 * testsuite/19_diagnostics/error_code/operators/three_way.cc:
6639 * testsuite/19_diagnostics/error_condition/operators/less.cc:
6641 * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
6644 2021-02-03 yaozhongxiao <yaozhongxiao@linux.alibaba.com>
6646 * include/experimental/bits/simd_neon.h: Replace repeated vpadd
6647 calls with a single vaddv for aarch64.
6649 2021-02-03 Matthias Kretz <kretz@kde.org>
6651 * testsuite/Makefile.am: Warn about the workaround. Add
6652 -fno-tree-vrp to CXXFLAGS passed to the check_simd script.
6653 Improve initial user feedback from make check-simd.
6654 * testsuite/Makefile.in: Regenerated.
6656 2021-02-03 Matthias Kretz <kretz@kde.org>
6658 * include/experimental/bits/simd.h: Add __detail::_Minimum and
6659 __detail::_Maximum to use them as _BinaryOperation to _S_reduce.
6660 Add hmin and hmax overloads for simd and const_where_expression.
6661 * include/experimental/bits/simd_scalar.h
6662 (_SimdImplScalar::_S_reduce): Make unused _BinaryOperation
6663 parameter const-ref to allow calling _S_reduce with an rvalue.
6664 * testsuite/experimental/simd/tests/reductions.cc: Add tests for
6665 hmin and hmax. Since the compiler statically determined that all
6666 tests pass, repeat the test after a call to make_value_unknown.
6668 2021-02-03 Matthias Kretz <kretz@kde.org>
6670 * testsuite/experimental/simd/tests/bits/verify.h (verify): Add
6671 instruction pointer data member. Ensure that the `if (m_failed)`
6672 branch is always inlined into the calling code. The body of the
6673 conditional can still be a function call. Move the get_ip call
6674 into the verify ctor to simplify the ctor calls.
6675 (COMPARE): Don't mention the use of all_of for reduction of a
6676 simd_mask. It only distracts from the real issue.
6678 2021-02-03 Matthias Kretz <kretz@kde.org>
6680 * testsuite/experimental/simd/driver.sh: Abstract reading test
6681 options into read_src_option function. Read skip, only,
6682 expensive, and xfail via read_src_option. Add timeout and
6683 timeout-factor options and adjust timeout variable accordingly.
6684 * testsuite/experimental/simd/tests/loadstore.cc: Set
6687 2021-02-03 Matthias Kretz <kretz@kde.org>
6689 * testsuite/experimental/simd/driver.sh: When handling the pipe
6690 to log (and on verbose to stdout) count the lines. If it exceeds
6691 1000 log the issue and exit 125, which is then handled as a
6694 2021-02-03 Matthias Kretz <kretz@kde.org>
6696 * testsuite/experimental/simd/tests/hypot3_fma.cc: Add skip:
6697 markup for long double on powerpc64*.
6699 2021-02-03 Matthias Kretz <kretz@kde.org>
6701 * include/experimental/bits/simd.h: Add __have_power10vec
6702 conditional on _ARCH_PWR10.
6703 * include/experimental/bits/simd_builtin.h: Forward declare
6704 _MaskImplPpc and use it as _MaskImpl when __ALTIVEC__ is
6706 (_MaskImplBuiltin::_S_some_of): Call _S_popcount from the
6707 _SuperImpl for optimizations and correctness.
6708 * include/experimental/bits/simd_ppc.h: Add _MaskImplPpc.
6709 (_MaskImplPpc::_S_popcount): Implement via vec_cntm for POWER10.
6710 Otherwise, for >=int use -vec_sums divided by a sizeof factor.
6711 For <int use -vec_sums(vec_sum4s(...)) to sum all mask entries.
6713 2021-02-03 Matthias Kretz <kretz@kde.org>
6715 * testsuite/experimental/simd/driver.sh: Remove executable on
6716 SIGINT. Process compiler and test executable output: In verbose
6717 mode print messages immediately, limited to 1000 lines and
6718 breaking long lines to below $COLUMNS (or 1024 if not set).
6719 Communicating the exit status of the compiler / test with the
6720 necessary pipe is done via a message through stdout/-in.
6722 2021-02-03 Matthias Kretz <kretz@kde.org>
6724 * testsuite/Makefile.am: Ensure .simd.summary is empty before
6725 collecting a new summary.
6726 * testsuite/Makefile.in: Regenerate.
6728 2021-02-03 Matthias Kretz <kretz@kde.org>
6730 * testsuite/experimental/simd/generate_makefile.sh: Use
6731 different variables internally than documented for user
6732 overrides. This makes internal append/prepend work as intended.
6734 2021-02-03 Matthias Kretz <kretz@kde.org>
6736 * testsuite/experimental/simd/driver.sh (verify_test): Print
6737 test output on run xfail. Do not repeat lines from the log that
6738 were already printed on stdout.
6739 (test_selector): Make the compiler flags pattern usable as a
6741 (toplevel): Trap on SIGINT and remove the log and sum files.
6742 Call timout with --foreground to quickly terminate on SIGINT.
6743 * testsuite/experimental/simd/generate_makefile.sh: Simplify run
6744 targets via target patterns. Default DRIVEROPTS to -v for run
6745 targets. Remove log and sum files after completion of the run
6746 target (so that it's always recompiled).
6747 Place help text into text file for reasonable 'make help'
6750 2021-02-03 Matthias Kretz <kretz@kde.org>
6752 * include/experimental/bits/simd.h: Remove unnecessary static
6753 assertion. Allow sizeof(8) integer __intrinsic_type to enable
6754 the necessary mask type.
6756 2021-02-03 Matthias Kretz <kretz@kde.org>
6758 * include/experimental/bits/simd.h: Let __intrinsic_type<long
6759 double, N> be valid if sizeof(long double) == sizeof(double) and
6760 use a __vector double as member type.
6762 2021-02-03 Matthias Kretz <kretz@kde.org>
6764 * include/experimental/bits/simd.h (__is_intrinsic_type): New
6765 internal type trait. Alias for __is_vector_type on x86.
6766 (_VectorTraitsImpl): Enable for __intrinsic_type in addition for
6768 (__intrin_bitcast): Allow casting to & from vector & intrinsic
6770 (__intrinsic_type): Explicitly specialize for NEON intrinsic
6773 2021-02-03 Matthias Kretz <kretz@kde.org>
6775 * testsuite/experimental/simd/driver.sh: Implement skip, only,
6776 expensive, and xfail markers. They can select on type, ABI tag
6777 subset number, target-triplet, and compiler flags.
6778 * testsuite/experimental/simd/generate_makefile.sh: The summary
6779 now includes lines for unexpected passes and expected failures.
6780 If the skip or only markers are only conditional on the type, do
6781 not generate rules for those types.
6782 * testsuite/experimental/simd/tests/abs.cc: Mark test expensive
6783 for ABI tag subsets 1-9.
6784 * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
6785 * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
6786 * testsuite/experimental/simd/tests/casts.cc: Ditto.
6787 * testsuite/experimental/simd/tests/generator.cc: Ditto.
6788 * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
6789 * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
6790 * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
6791 * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
6792 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
6793 * testsuite/experimental/simd/tests/mask_loadstore.cc: Ditto.
6794 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
6795 * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
6796 * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
6797 * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
6798 * testsuite/experimental/simd/tests/operators.cc: Ditto.
6799 * testsuite/experimental/simd/tests/reductions.cc: Ditto.
6800 * testsuite/experimental/simd/tests/simd.cc: Ditto.
6801 * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
6802 * testsuite/experimental/simd/tests/splits.cc: Ditto.
6803 * testsuite/experimental/simd/tests/where.cc: Ditto.
6804 * testsuite/experimental/simd/tests/fpclassify.cc: Ditto. In
6805 addition replace "test only floattypes" marker by unconditional
6806 "float|double|ldouble" only marker.
6807 * testsuite/experimental/simd/tests/frexp.cc: Ditto.
6808 * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
6809 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
6811 * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
6812 * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
6813 * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
6814 * testsuite/experimental/simd/tests/remqo.cc: Ditto.
6815 * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
6816 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
6817 * testsuite/experimental/simd/tests/sincos.cc: Ditto. In
6818 addition, xfail on run because the reference data is missing.
6820 2021-02-02 Jonathan Wakely <jwakely@redhat.com>
6822 * doc/xml/manual/status_cxx2011.xml: Remove stray table cell.
6823 * doc/xml/manual/status_cxx2014.xml: Likewise.
6824 * doc/xml/manual/status_cxx2017.xml: Likewise.
6825 * doc/html/manual/status.html: Regenerate.
6827 2021-02-01 François Dumont <fdumont@gcc.gnu.org>
6830 * include/bits/stl_deque.h (std::deque<>::operator-(iterator, iterator)):
6831 Return 0 if both iterators are value-initialized.
6832 * testsuite/23_containers/deque/70303.cc: New test.
6833 * testsuite/23_containers/vector/70303.cc: New test.
6835 2021-02-01 Jonathan Wakely <jwakely@redhat.com>
6837 * doc/xml/manual/status_cxx2011.xml: Update std::call_once
6839 * doc/xml/manual/status_cxx2014.xml: Likewise.
6840 * doc/xml/manual/status_cxx2017.xml: Likewise. Update
6841 std::from_chars and std::to_chars status. Fix formatting.
6842 * doc/html/manual/status.html: Regenerate.
6844 2021-01-28 Jonathan Wakely <jwakely@redhat.com>
6846 * include/experimental/bits/numeric_traits.h: Update copyright
6848 * include/experimental/bits/simd.h: Likewise.
6849 * include/experimental/bits/simd_builtin.h: Likewise.
6850 * include/experimental/bits/simd_converter.h: Likewise.
6851 * include/experimental/bits/simd_detail.h: Likewise.
6852 * include/experimental/bits/simd_fixed_size.h: Likewise.
6853 * include/experimental/bits/simd_math.h: Likewise.
6854 * include/experimental/bits/simd_neon.h: Likewise.
6855 * include/experimental/bits/simd_ppc.h: Likewise.
6856 * include/experimental/bits/simd_scalar.h: Likewise.
6857 * include/experimental/bits/simd_x86.h: Likewise.
6858 * include/experimental/bits/simd_x86_conversions.h: Likewise.
6859 * include/experimental/simd: Likewise.
6860 * testsuite/experimental/simd/*: Likewise.
6862 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
6864 * doc/xml/manual/status_cxx2017.xml: Replace invalid entity.
6865 * doc/html/*: Regenerate.
6867 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
6869 * testsuite/experimental/simd/generate_makefile.sh: Use printf
6870 instead of echo when printing escape characters.
6872 2021-01-27 Matthias Kretz <kretz@kde.org>
6874 * scripts/check_simd: New file. This script is called from the
6875 the check-simd target. It determines a set of compiler flags and
6876 simulator setups for calling generate_makefile.sh and passes the
6877 information back to the check-simd target, which recurses to the
6878 generated Makefiles.
6879 * scripts/create_testsuite_files: Remove files below simd/tests/
6880 from testsuite_files and place them in testsuite_files_simd.
6881 * testsuite/Makefile.am: Add testsuite_files_simd. Add
6883 * testsuite/Makefile.in: Regenerate.
6884 * testsuite/experimental/simd/driver.sh: New file. This script
6885 compiles and runs a given simd test, logging its output and
6886 status. It uses the timeout command to implement compile and
6888 * testsuite/experimental/simd/generate_makefile.sh: New file.
6889 This script generates a Makefile which uses driver.sh to compile
6890 and run the tests and collect the logs into a single log file.
6891 * testsuite/experimental/simd/tests/abs.cc: New file. Tests
6893 * testsuite/experimental/simd/tests/algorithms.cc: New file.
6894 Tests min/max(simd, simd).
6895 * testsuite/experimental/simd/tests/bits/conversions.h: New
6896 file. Contains functions to support tests involving conversions.
6897 * testsuite/experimental/simd/tests/bits/make_vec.h: New file.
6898 Support functions make_mask and make_vec.
6899 * testsuite/experimental/simd/tests/bits/mathreference.h: New
6900 file. Support functions to supply precomputed math function
6902 * testsuite/experimental/simd/tests/bits/metahelpers.h: New
6903 file. Support code for SFINAE testing.
6904 * testsuite/experimental/simd/tests/bits/simd_view.h: New file.
6905 * testsuite/experimental/simd/tests/bits/test_values.h: New
6906 file. Test functions to easily drive a test with simd objects
6907 initialized from a given list of values and a range of random
6909 * testsuite/experimental/simd/tests/bits/ulp.h: New file.
6910 Support code to determine the ULP distance of simd objects.
6911 * testsuite/experimental/simd/tests/bits/verify.h: New file.
6912 Test framework for COMPARE'ing simd objects and instantiating
6913 the test templates with value_type and ABI tag.
6914 * testsuite/experimental/simd/tests/broadcast.cc: New file. Test
6916 * testsuite/experimental/simd/tests/casts.cc: New file. Test
6918 * testsuite/experimental/simd/tests/fpclassify.cc: New file.
6919 Test floating-point classification functions.
6920 * testsuite/experimental/simd/tests/frexp.cc: New file. Test
6922 * testsuite/experimental/simd/tests/generator.cc: New file. Test
6923 simd generator constructor.
6924 * testsuite/experimental/simd/tests/hypot3_fma.cc: New file.
6925 Test 3-arg hypot(simd,simd,simd) and fma(simd,simd,sim).
6926 * testsuite/experimental/simd/tests/integer_operators.cc: New
6927 file. Test integer operators.
6928 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
6929 New file. Test ldexp(simd), scalbn(simd), scalbln(simd), and
6931 * testsuite/experimental/simd/tests/loadstore.cc: New file. Test
6932 (converting) simd loads and stores.
6933 * testsuite/experimental/simd/tests/logarithm.cc: New file. Test
6935 * testsuite/experimental/simd/tests/mask_broadcast.cc: New file.
6936 Test simd_mask broadcasts.
6937 * testsuite/experimental/simd/tests/mask_conversions.cc: New
6938 file. Test simd_mask conversions.
6939 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: New
6940 file. Test simd_mask implicit conversions.
6941 * testsuite/experimental/simd/tests/mask_loadstore.cc: New file.
6942 Test simd_mask loads and stores.
6943 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: New
6944 file. Test simd_mask operators convert as specified.
6945 * testsuite/experimental/simd/tests/mask_operators.cc: New file.
6946 Test simd_mask compares, subscripts, and negation.
6947 * testsuite/experimental/simd/tests/mask_reductions.cc: New
6948 file. Test simd_mask reductions.
6949 * testsuite/experimental/simd/tests/math_1arg.cc: New file. Test
6950 1-arg math functions on simd.
6951 * testsuite/experimental/simd/tests/math_2arg.cc: New file. Test
6952 2-arg math functions on simd.
6953 * testsuite/experimental/simd/tests/operator_cvt.cc: New file.
6954 Test implicit conversions on simd binary operators behave as
6956 * testsuite/experimental/simd/tests/operators.cc: New file. Test
6957 simd compares, subscripts, not, unary minus, plus, minus,
6958 multiplies, divides, increment, and decrement.
6959 * testsuite/experimental/simd/tests/reductions.cc: New file.
6961 * testsuite/experimental/simd/tests/remqo.cc: New file. Test
6963 * testsuite/experimental/simd/tests/simd.cc: New file. Basic
6964 sanity checks of simd types.
6965 * testsuite/experimental/simd/tests/sincos.cc: New file. Test
6966 sin(simd) and cos(simd).
6967 * testsuite/experimental/simd/tests/split_concat.cc: New file.
6968 Test split(simd) and concat(simd, simd).
6969 * testsuite/experimental/simd/tests/splits.cc: New file. Test
6971 * testsuite/experimental/simd/tests/trigonometric.cc: New file.
6972 Test remaining trigonometric functions on simd.
6973 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: New
6974 file. Test trunc(simd), ceil(simd), and floor(simd).
6975 * testsuite/experimental/simd/tests/where.cc: New file. Test
6976 masked operations using where.
6978 2021-01-27 Matthias Kretz <kretz@kde.org>
6980 * doc/xml/manual/status_cxx2017.xml: Add implementation status
6981 of the Parallelism TS 2. Document implementation-defined types
6983 * include/Makefile.am: Add new headers.
6984 * include/Makefile.in: Regenerate.
6985 * include/experimental/simd: New file. New header for
6987 * include/experimental/bits/numeric_traits.h: New file.
6988 Implementation of P1841R1 using internal naming. Addition of
6989 missing IEC559 functionality query.
6990 * include/experimental/bits/simd.h: New file. Definition of the
6991 public simd interfaces and general implementation helpers.
6992 * include/experimental/bits/simd_builtin.h: New file.
6993 Implementation of the _VecBuiltin simd_abi.
6994 * include/experimental/bits/simd_converter.h: New file. Generic
6996 * include/experimental/bits/simd_detail.h: New file. Internal
6997 macros for the simd implementation.
6998 * include/experimental/bits/simd_fixed_size.h: New file. Simd
6999 fixed_size ABI specific implementations.
7000 * include/experimental/bits/simd_math.h: New file. Math
7002 * include/experimental/bits/simd_neon.h: New file. Simd NEON
7003 specific implementations.
7004 * include/experimental/bits/simd_ppc.h: New file. Implement bit
7005 shifts to avoid invalid results for integral types smaller than
7007 * include/experimental/bits/simd_scalar.h: New file. Simd scalar
7008 ABI specific implementations.
7009 * include/experimental/bits/simd_x86.h: New file. Simd x86
7010 specific implementations.
7011 * include/experimental/bits/simd_x86_conversions.h: New file.
7012 x86 specific conversion optimizations. The conversion patterns
7013 work around missing conversion patterns in the compiler and
7014 should be removed as soon as PR85048 is resolved.
7015 * testsuite/experimental/simd/standard_abi_usable.cc: New file.
7016 Test that all (not all fixed_size<N>, though) standard simd and
7017 simd_mask types are usable.
7018 * testsuite/experimental/simd/standard_abi_usable_2.cc: New
7019 file. As above but with -ffast-math.
7020 * testsuite/libstdc++-dg/conformance.exp: Don't build simd tests
7021 from the standard test loop. Instead use
7022 check_vect_support_and_set_flags to build simd tests with the
7023 relevant machine flags.
7025 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
7028 * include/bits/string_view.tcc
7029 (basic_string_view::find(const CharT*, size_type, size_type)):
7032 2021-01-27 Paul Fee <paul.f.fee@gmail.com>
7034 * include/bits/basic_string.h (basic_string::contains): New
7036 * include/std/string_view (basic_string_view::contains):
7038 * include/std/version (__cpp_lib_string_contains): Define.
7039 * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
7040 Remove trailing whitespace.
7041 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
7043 * testsuite/21_strings/basic_string/operations/contains/char/1.cc: New test.
7044 * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc: New test.
7045 * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc: New test.
7046 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: New test.
7047 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc: New test.
7049 2021-01-21 Jonathan Wakely <jwakely@redhat.com>
7051 * src/c++17/Makefile.in: Regenerate.
7053 2021-01-20 David Edelsohn <dje.gcc@gmail.com>
7055 * config/os/aix/ctype_inline.h (bool ctype<char>:: is): Cast
7056 _OBJ_DATA subscript to unsigned char. Add _THREAD_SAFE access to
7058 (const char* ctype<char>:: is): Same.
7060 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
7063 * testsuite/20_util/unique_ptr/io/lwg2948.cc: Do not try to
7064 write to a wide character stream if wide character support is
7065 disabled in the library.
7067 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
7069 * testsuite/27_io/basic_stringstream/cons/char/1.cc: Use
7070 stringbuf not wstringbuf.
7072 2021-01-18 Jakub Jelinek <jakub@redhat.com>
7075 * src/c++11/Makefile.am (cxx11-ios_failure-lt.s, cxx11-ios_failure.s):
7076 Compile with -gno-as-loc-support.
7077 * src/c++11/Makefile.in: Regenerated.
7079 2021-01-16 H.J. Lu <hjl.tools@gmail.com>
7081 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
7082 Add -fcf-protection=none to -march=i486.
7084 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
7086 * testsuite/23_containers/deque/debug/98466.cc: Make it pre-C++11
7089 2021-01-14 Alexandre Oliva <oliva@adacore.com>
7091 * testsuite/30_threads/future/members/poll.cc: Calibrate
7094 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
7097 * include/bits/hashtable_policy.h (_Node_iterator_base()): Set _M_cur to nullptr.
7098 (_Node_iterator()): Make default.
7099 (_Node_const_iterator()): Make default.
7100 * include/debug/macros.h (__glibcxx_check_erae_range_after): Add _M_singular
7102 * include/debug/safe_iterator.h
7103 (_GLIBCXX_DEBUG_VERIFY_OPERANDS): Accept if both iterator are value initialized.
7104 * include/debug/safe_local_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
7106 * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range): Add
7107 _M_singular checks on input iterators.
7108 * src/c++11/debug.cc (_Safe_iterator_base::_M_can_compare): Remove _M_singular
7110 * testsuite/23_containers/deque/debug/98466.cc: New test.
7111 * testsuite/23_containers/unordered_map/debug/98466.cc: New test.
7113 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
7116 * include/bits/fs_path.h (__throw_conversion_error): New
7117 function to throw or abort on character conversion errors.
7118 (__wstr_from_utf8): Move definition after filesystem_error has
7119 been defined. Use __throw_conversion_error.
7120 (path::_S_convert<_EcharT>): Use __throw_conversion_error.
7121 (path::_S_str_convert<_CharT, _Traits, _Allocator>): Likewise.
7122 (path::u8string): Likewise.
7124 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
7126 * include/std/barrier: Update copyright years. Fix whitespace.
7127 * include/std/version: Fix whitespace.
7128 * testsuite/30_threads/barrier/1.cc: Update copyright years.
7129 * testsuite/30_threads/barrier/2.cc: Likewise.
7130 * testsuite/30_threads/barrier/arrive.cc: Likewise.
7131 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
7132 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
7133 * testsuite/30_threads/barrier/completion.cc: Likewise.
7135 2021-01-13 Jonathan Wakely <jwakely@redhat.com>
7137 * doc/doxygen/user.cfg.in (INPUT): Remove include/debug/array.
7139 2021-01-10 David Edelsohn <dje.gcc@gmail.com>
7142 * testsuite/ext/vstring/cons/moveable.cc: Suppress false positive
7144 * testsuite/ext/vstring/modifiers/assign/move_assign.cc: Same.
7146 2021-01-08 Olivier Hainque <hainque@adacore.com>
7148 * testsuite/20_util/bind/ref_neg.cc: Tweak the
7149 dg-prune-output regex for out-of-build-tree contexts.
7151 2021-01-07 Thomas Rodgers <trodgers@redhat.com>
7153 * doc/doxygen/user.cfg.in: Add new header.
7154 * include/Makefile.am (std_headers): likewise.
7155 * include/Makefile.in: Regenerate.
7156 * include/precompiled/stdc++.h: Add new header.
7157 * include/std/barrier: New file.
7158 * include/std/version: Add __cpp_lib_barrier feature test macro.
7159 * testsuite/30_threads/barrier/1.cc: New test.
7160 * testsuite/30_threads/barrier/2.cc: Likewise.
7161 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
7162 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
7163 * testsuite/30_threads/barrier/arrive.cc: Likewise.
7164 * testsuite/30_threads/barrier/completion.cc: Likewise.
7166 2021-01-07 Patrick Palka <ppalka@redhat.com>
7169 * testsuite/20_util/to_chars/long_double.cc: Use nexttowardl
7170 instead of the non-standard nextupl and nextdownl.
7172 2021-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
7174 * configure: Re-generate.
7176 2021-01-05 Ed Smith-Rowland <3dw4rd@verizon.net>
7178 * include/precompiled/stdc++.h: Add <source_location> to C++20 section.
7180 2021-01-01 Jakub Jelinek <jakub@redhat.com>
7182 * ChangeLog-2020: Rotate ChangeLog. New file.
7185 Copyright (C) 2021 Free Software Foundation, Inc.
7187 Copying and distribution of this file, with or without modification,
7188 are permitted in any medium without royalty provided the copyright
7189 notice and this notice are preserved.