1 2021-07-15 Jonathan Wakely <jwakely@redhat.com>
4 * include/std/tuple (tuple_element): Improve static_assert text.
5 (__get_helper): Add deleted overload.
6 (get<i>(tuple<T...>&&), get<i>(const tuple<T...>&&)): Use
8 (__get_helper2): Remove.
9 (__find_uniq_type_in_pack): New constexpr helper function.
10 (get<T>): Use __find_uniq_type_in_pack and __get_helper instead
12 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
14 * testsuite/20_util/tuple/element_access/101427.cc: New test.
16 2021-07-15 Jonathan Wakely <jwakely@redhat.com>
19 * include/bits/c++config (__replacement_assert): Add noexcept.
20 [!_GLIBCXX_VERBOSE] (__glibcxx_assert_impl): Use __builtin_abort
21 instead of __replacement_assert.
23 2021-07-14 Jonathan Wakely <jwakely@redhat.com>
25 * include/std/string_view (basic_string_view(It, End)): Add
27 * testsuite/21_strings/basic_string_view/cons/char/range.cc:
28 Check noexcept-specifier. Also check construction without CTAD.
30 2021-07-13 Jonathan Wakely <jwakely@redhat.com>
33 * include/std/string_view (ends_with): Use traits_type::compare
36 2021-07-13 Jonathan Wakely <jwakely@redhat.com>
38 * include/std/string_view: Only include <bits/ranges_base.h>
39 once, and only for C++20 and later.
41 2021-07-12 Jonathan Wakely <jwakely@redhat.com>
44 * include/std/span (as_writable_bytes): Add requires-clause.
45 * testsuite/23_containers/span/101411.cc: New test.
47 2021-07-09 Matheus Castanho <msc@linux.ibm.com>
49 * include/std/mutex (__lock_impl): Check
50 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
52 2021-07-02 Jonathan Wakely <jwakely@redhat.com>
55 * include/bits/unique_ptr.h (unique_ptr<T[],D>::operator[]):
56 Remove noexcept-specifier.
57 (unique_ptr<T[],D>::_S_nothrow_deref): Remove.
58 * testsuite/20_util/unique_ptr/lwg2762.cc: Remove checks for
61 2021-07-01 Jonathan Wakely <jwakely@redhat.com>
63 * doc/doxygen/doxygroups.cc: Fix docs for std::literals.
64 * doc/doxygen/user.cfg.in: Exclude the Networking TS header.
65 Add some more predefined macros.
66 * include/bits/fs_fwd.h: Move @addtogroup commands inside
67 namespaces. Add better documentation.
68 * include/bits/fs_path.h: Likewise.
69 * include/experimental/bits/fs_fwd.h: Likewise.
70 * include/experimental/bits/fs_path.h: Likewise.
71 * include/ext/throw_allocator.h: Fix typo and improve docs.
72 * include/std/chrono: Move @addtogroup commands.
73 * include/std/system_error: Move @addtogroup commands.
74 * libsupc++/exception: Improve documentation.
75 * libsupc++/exception.h: Add @since documentation.
77 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
80 * doc/doxygen/user.cfg.in (INPUT): Add <experimental/simd>.
81 (COLS_IN_ALPHA_INDEX): Remove obsolete tag.
82 (PREDEFINED): Add/fix some more macros that need to be expanded.
83 * include/bits/random.h: Stop Doxygen from documenting internal
84 implementation details.
85 * include/bits/random.tcc: Likewise.
86 * include/bits/this_thread_sleep.h: Fix @file name.
87 * include/experimental/bits/simd.h: Add to Doxygen group. Do not
88 document internal implementation details.
89 * include/experimental/bits/simd_detail.h: Do not document
90 internal implementation details.
91 * include/experimental/simd: Define Doxygen groups.
92 * include/experimental/type_traits: Improve documentation for
93 the header file. Define groups. Use @since commands.
94 * include/std/scoped_allocator (scoped_allocator_adaptor): Move
95 declaration before undocumented region.
96 * include/std/type_traits (true_type, false_type): Use using
97 declaration instead of typedef.
98 (is_invocable_v, is_nothrow_invocable_v, is_invocable_r_v)
99 (is_nothrow_invocable_r_v): Move definitions next to other C++17
101 Do not document internal implementation details. Move misplaced
102 group-end command. Define group for variable templates.
103 * include/std/variant: Do not document internal implementation
105 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
108 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
110 * include/experimental/simd: Do not define anything pre-C++17.
112 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
114 * include/bits/random.tcc [__cpp_inline_variables]: Remove
115 redundant definitions of static constexpr member variables.
116 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
119 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
121 * include/bits/streambuf.tcc (__copy_streambufs_eof): Remove
122 explicit instantiation declarations.
123 * src/c++11/streambuf-inst.cc (__copy_streambufs_eof): Remove
124 explicit instantiation definitions.
126 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
129 * testsuite/17_intro/names.cc: Fix #if condition for names used
132 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
135 * include/bits/unique_ptr.h (unique_ptr<T[], D>::operator[]):
136 Fail gracefully if element_type is incomplete.
137 * testsuite/20_util/unique_ptr/cons/incomplete.cc: Clarify that
138 the standard doesn't require this test to work for array types.
139 * testsuite/20_util/unique_ptr/lwg2762.cc: Check that incomplete
140 types can be used with array specialization.
141 * testsuite/20_util/unique_ptr/101236.cc: New test.
143 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
145 * doc/xml/manual/intro.xml: Document LWG 415 change.
146 * doc/html/manual/bugs.html: Regenerate.
147 * include/bits/istream.tcc (ws): Create sentry and catch
149 * testsuite/27_io/basic_istream/ws/char/lwg415.cc: New test.
150 * testsuite/27_io/basic_istream/ws/wchar_t/lwg415.cc: New test.
152 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
154 * include/bits/ostream.tcc (basic_ostream::write): Call sputn
155 directly instead of using _M_write. Do setstate(__err) all
156 outside the try-catch block.
157 * include/std/ostream (basic_ostream::_M_write): Declare
158 private. Use __ostream_insert. Do not define for the versioned
161 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
163 * doc/xml/manual/intro.xml: Document LWG 581 change.
164 * doc/html/manual/bugs.html: Regenerate.
165 * include/bits/basic_ios.tcc: Whitespace.
166 * include/bits/ostream.tcc (basic_ostream::flush()): Construct
168 * testsuite/27_io/basic_ostream/flush/char/2.cc: Check
170 * testsuite/27_io/basic_ostream/flush/char/exceptions_badbit_throw.cc:
172 * testsuite/27_io/basic_ostream/flush/wchar_t/2.cc: Likewise.
173 * testsuite/27_io/basic_ostream/flush/wchar_t/exceptions_badbit_throw.cc:
176 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
178 * include/bits/ostream.tcc (sentry): Only set failbit if badbit
179 is set, not if eofbit is set.
180 (tellp, seekp, seekp): Create sentry object. Do not set badbit
182 * testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc:
183 Adjust expected behaviour.
184 * testsuite/27_io/basic_ostream/seekp/wchar_t/exceptions_badbit_throw.cc:
186 * testsuite/27_io/basic_ostream/tellp/char/exceptions_badbit_throw.cc:
188 * testsuite/27_io/basic_ostream/tellp/wchar_t/exceptions_badbit_throw.cc:
190 * testsuite/27_io/basic_ostream/seekp/char/n3168.cc: New test.
191 * testsuite/27_io/basic_ostream/seekp/wchar_t/n3168.cc: New test.
192 * testsuite/27_io/basic_ostream/tellp/char/n3168.cc: New test.
193 * testsuite/27_io/basic_ostream/tellp/wchar_t/n3168.cc: New test.
195 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
197 * include/std/syncstream (basic_syncbuf::swap()): Remove
198 noexcept, as per LWG 3498.
200 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
203 * testsuite/17_intro/names.cc: Undef more names for newlib and
204 also for arm-none-linux-gnueabi.
205 * testsuite/experimental/names.cc: Disable PCH.
207 2021-06-25 Matthias Kretz <m.kretz@gsi.de>
209 * include/experimental/bits/simd.h (__bit_cast): Implement via
210 __builtin_bit_cast #if available.
211 (__proposed::simd_bit_cast): Add overloads for simd and
212 simd_mask, which use __builtin_bit_cast (or __bit_cast #if not
213 available), which return an object of the requested type with
214 the same bits as the argument.
215 * include/experimental/bits/simd_math.h: Use simd_bit_cast
216 instead of __bit_cast to allow casts to fixed_size_simd.
217 (copysign): Remove branch that was only required if __bit_cast
219 * testsuite/experimental/simd/tests/bits/test_values.h: Switch
220 from __bit_cast to __proposed::simd_bit_cast since the former
221 will not cast fixed_size objects anymore.
223 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
225 * include/experimental/bits/simd_math.h
226 (_GLIBCXX_SIMD_MATH_CALL2_): Rename arg2_ to __arg2.
227 (_GLIBCXX_SIMD_MATH_CALL3_): Rename arg2_ to __arg2 and arg3_ to
230 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
232 * include/experimental/bits/simd.h (__execute_on_index_sequence)
233 (__execute_on_index_sequence_with_return)
234 (__call_with_n_evaluations, __call_with_subscripts): Add flatten
237 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
239 * include/experimental/bits/simd_x86.h (_S_trunc, _S_floor)
240 (_S_ceil): Set bit 8 (_MM_FROUND_NO_EXC) on AVX and SSE4.1
243 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
245 * include/experimental/bits/simd_x86.h (_S_ldexp): The AVX512F
246 implementation doesn't require a _VecBltnBtmsk ABI tag, it
247 requires either a 64-Byte input (in which case AVX512F must be
248 available) or AVX512VL.
250 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
252 * include/experimental/bits/simd_math.h: Undefine internal
254 (frexp): Move #if to a more sensible position and reformat
256 (logb): Call _SimdImpl::_S_logb for fixed_size instead of
257 duplicating the code here.
258 (modf): Simplify condition.
260 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
262 * include/experimental/bits/simd_math.h (fabs): Remove
263 fabs(simd<integral>) overload.
265 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
267 * include/experimental/bits/simd_converter.h
268 (_SimdConverter::operator()): Pass _SimdTuple by const-ref.
269 * include/experimental/bits/simd_fixed_size.h
270 (_GLIBCXX_SIMD_FIXED_OP): Pass binary operator _SimdTuple
271 arguments by const-ref.
272 (_S_masked_unary): Pass _SimdTuple by const-ref.
274 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
276 * include/experimental/bits/simd_fixed_size.h
277 (_AbisInSimdTuple): Removed.
279 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
281 * include/experimental/bits/simd.h: Add missing operator~
282 overload for simd<floating-point> to __float_bitwise_operators.
283 * include/experimental/bits/simd_builtin.h
284 (_SimdImplBuiltin::_S_complement): Bitcast to int (and back) to
285 implement complement for floating-point vectors.
286 * include/experimental/bits/simd_fixed_size.h
287 (_SimdImplFixedSize::_S_copysign): New function, forwarding to
288 copysign implementation of _SimdTuple members.
289 * include/experimental/bits/simd_math.h (copysign): Call
290 _SimdImpl::_S_copysign for fixed_size arguments. Simplify
291 generic copysign implementation using the new ~ operator.
293 2021-06-24 Jonathan Wakely <jwakely@redhat.com>
295 * testsuite/experimental/simd/README.md: Fix typos.
297 2021-06-24 Jonathan Wakely <jwakely@redhat.com>
299 * include/bits/shared_ptr_base.h (__shared_ptr_access::operator[]):
301 * include/bits/unique_ptr.h (unique_ptr::operator*): Add
302 conditional noexcept as per LWG 2762.
303 * testsuite/20_util/shared_ptr/observers/array.cc: Check that
304 dereferencing cannot throw.
305 * testsuite/20_util/shared_ptr/observers/get.cc: Likewise.
306 * testsuite/20_util/optional/observers/lwg2762.cc: New test.
307 * testsuite/20_util/unique_ptr/lwg2762.cc: New test.
309 2021-06-23 Patrick Palka <ppalka@redhat.com>
312 * testsuite/23_containers/multiset/cons/deduction.cc:
313 Uncomment CTAD example that was rejected by this bug.
314 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
316 2021-06-23 Jonathan Wakely <jwakely@redhat.com>
318 * include/std/chrono (chrono::year::is_leap()): Fix incorrect
321 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
323 * testsuite/experimental/simd/README.md: New file.
325 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
327 * testsuite/experimental/simd/driver.sh: Rewrite output
328 verbosity logic. Add -p/--percentage option. Allow -v/--verbose
329 to be used twice. Add -x and -o short options. Parse long
330 options with = instead of separating space generically. Parce
331 contracted short options. Make unrecognized options an error.
332 If same-line output is active, trap on EXIT to increment the
333 progress (only with --percentage), erase the line and print the
335 * testsuite/experimental/simd/generate_makefile.sh: Initialize
336 helper files for progress account keeping. Update help target
337 for changes to DRIVEROPTS.
339 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
341 * testsuite/Makefile.am (check-simd): Remove -fno-tree-vrp flag
342 and associated warning.
343 * testsuite/Makefile.in: Regenerate.
345 2021-06-23 Cassio Neri <cassio.neri@gmail.com>
346 Jonathan Wakely <jwakely@redhat.com>
347 Ulrich Drepper <drepper@redhat.com>
349 * include/std/chrono (chrono::year::is_leap()): Optimize.
351 2021-06-23 Patrick Palka <ppalka@redhat.com>
354 * testsuite/23_containers/map/cons/deduction.cc: Replace ambiguous
356 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
357 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
358 Mention one of the replaced examples is broken due to PR101174.
359 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
360 * testsuite/23_containers/unordered_map/cons/deduction.cc: Replace
361 ambiguous CTAD examples.
362 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
364 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
366 * testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise.
368 2021-06-23 Jonathan Wakely <jwakely@redhat.com>
370 * include/std/mutex (__detail::__try_lock_impl): Rename
371 parameter to avoid clashing with newlib's __lockable macro.
372 (try_lock): Add 'inline' specifier.
373 * testsuite/17_intro/names.cc: Add check for __lockable.
374 * testsuite/30_threads/try_lock/5.cc: Add options for pthreads.
376 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
377 Matthias Kretz <m.kretz@gsi.de>
379 * include/std/mutex (lock): Replace recursion with iteration
380 when lockables all have the same type.
381 (__detail::__try_lock_impl): Likewise. Pass lockables as
382 parameters, instead of a tuple. Always lock the first one, and
383 recurse for the rest.
384 (__detail::__lock_impl): Adjust call to __try_lock_impl.
385 (__detail::__try_to_lock): Remove.
386 * testsuite/30_threads/lock/3.cc: Check that mutexes are locked.
387 * testsuite/30_threads/lock/4.cc: Also test non-heterogeneous
389 * testsuite/30_threads/unique_lock/cons/60497.cc: Also check
391 * testsuite/30_threads/try_lock/5.cc: New test.
393 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
395 * include/std/memory (declare_reachable, undeclare_reachable)
396 (declare_no_pointers, undeclare_no_pointers, get_pointer_safety)
397 (pointer_safety): Only define for C++11 to C++20 inclusive.
398 * testsuite/20_util/pointer_safety/1.cc: Do not run for C++23.
400 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
402 * include/bits/random.h (seed_seq): Constrain initializer-list
404 * include/bits/random.tcc (seed_seq): Add template parameter.
405 * testsuite/26_numerics/random/seed_seq/cons/default.cc: Check
407 * testsuite/26_numerics/random/seed_seq/cons/initlist.cc: Check
410 2021-06-22 Thomas Rodgers <rodgert@appliantology.com>
413 * include/bits/semaphore_base.h (__atomic_semaphore::_M_release):
414 Force _M_release() to wake all waiting threads.
415 * testsuite/30_threads/semaphore/100806.cc: New test.
417 2021-06-21 Jonathan Wakely <jwakely@redhat.com>
419 * include/std/mutex (__try_to_lock): Move to __detail namespace.
420 (struct __try_lock_impl): Replace with ...
421 (__detail::__try_lock_impl<Idx>(tuple<Lockables...>&)): New
422 function templates to implement std::try_lock.
423 (try_lock): Use new __try_lock_impl.
424 (__detail::__lock_impl(int, int&, L0&, L1&...)): New function
425 template to implement std::lock.
426 (lock): Use __lock_impl.
428 2021-06-21 Patrick Palka <ppalka@redhat.com>
430 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
432 2021-06-20 Patrick Palka <ppalka@redhat.com>
434 * include/std/ranges (__non_propagating_cache::operator bool):
435 Define for split_view::begin().
436 (split_view): Define as per P2210.
437 (views::__detail::__can_split_view): Define.
438 (views::_Split, views::split): Define.
439 * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
441 * testsuite/std/ranges/adaptors/split.cc: New test.
442 * testsuite/std/ranges/p2325.cc (test08a): New test.
443 * testsuite/std/ranges/p2367.cc (test01): Test views::split.
445 2021-06-20 Patrick Palka <ppalka@redhat.com>
447 * include/std/ranges: Rename views::split to views::lazy_split,
448 split_view to lazy_split_view, etc. throughout.
449 * testsuite/std/ranges/*: Likewise.
450 * testsuite/std/ranges/adaptors/lazy_split.cc: New file.
451 * testsuite/std/ranges/adaptors/lazy_split_neg.cc: New file.
453 2021-06-20 Patrick Palka <ppalka@redhat.com>
455 * include/std/ranges (split_view::_OuterIter::__at_end):
456 Check _M_trailing_empty.
457 (split_view::_OuterIter::_M_trailing_empty): Define this
459 (split_view::_OuterIter::operator++): Set _M_trailing_empty
461 (split_view::_OuterIter::operator==): Compare
463 * testsuite/std/ranges/adaptors/100479.cc (test03): Expect two
464 split parts instead of one.
465 * testsuite/std/ranges/adaptors/split.cc (test11): New test.
467 2021-06-20 Patrick Palka <ppalka@redhat.com>
469 * include/std/ranges (split_view::_InnerIter::base): Define as
472 2021-06-19 Patrick Palka <ppalka@redhat.com>
474 * include/std/ranges (transform_view::_Iterator::_S_iter_concept):
475 Consider _Base instead of _Vp as per LWG 3555.
476 (elements_view::_Iterator::_S_iter_concept): Likewise.
478 2021-06-19 Patrick Palka <ppalka@redhat.com>
480 * include/std/ranges (split_view::_OuterIter::value_type::begin):
481 Remove the non-const overload, and remove the copyable constraint
482 on the const overload as per LWG 3553.
484 2021-06-19 Patrick Palka <ppalka@redhat.com>
486 * include/bits/stl_iterator.h
487 (__detail::__common_iter_use_postfix_proxy): Add
488 move_constructible constraint as per LWG 3546.
489 (common_iterator::__postfix_proxy): Adjust initializer of
490 _M_keep as per LWG 3546.
492 2021-06-18 Patrick Palka <ppalka@redhat.com>
495 * include/bits/ranges_algo.h (__minmax_fn::operator()): Rewrite
496 to limit comparison complexity to 3*N/2.
497 (__minmax_element_fn::operator()): Likewise.
498 (shift_right): Avoid premature std::move of __result.
499 * testsuite/25_algorithms/minmax/constrained.cc (test04, test05):
501 * testsuite/25_algorithms/minmax_element/constrained.cc (test02):
504 2021-06-18 Patrick Palka <ppalka@redhat.com>
506 * include/std/concepts (convertible_to): Just use declval as per
509 2021-06-18 Jonathan Wakely <jwakely@redhat.com>
512 * include/std/numeric (reduce(Iter, Iter, T, BinaryOp)): Replace
513 incorrect static_assert with ones matching the 'Mandates'
514 conditions in the standard.
515 * testsuite/26_numerics/reduce/95833.cc: New test.
517 2021-06-18 Jonathan Wakely <jwakely@redhat.com>
519 * testsuite/21_strings/basic_string/cons/char/1.cc: Use
520 diagnostic pragma to suppress -Wstringop-overread error.
522 2021-06-18 Patrick Palka <ppalka@redhat.com>
524 * include/bits/ranges_algo.h (__find_fn, find, __find_if_fn)
525 (find_if, __find_if_not_fn, find_if_not, _in_in_result)
526 (__mismatch_fn, mismatch, __search_fn, search): Move to ...
527 * include/bits/ranges_util.h: ... here.
528 * include/std/ranges (__detail::find, __detail::find_if)
529 (__detail::find_if_not, __detail::mismatch): Remove.
530 (filter_view): Use ranges::find_if instead.
531 (drop_while_view): Use ranges::find_if_not instead.
532 (split_view): Use ranges::find and ranges::mismatch instead.
534 2021-06-18 Patrick Palka <ppalka@redhat.com>
536 * include/bits/iterator_concepts.h (weakly_incrementable): Remove
537 default_initializable requirement.
538 * include/bits/ranges_base.h (ranges::view): Likewise.
539 * include/bits/ranges_util.h (subrange): Constrain the default
541 * include/bits/stl_iterator.h (back_insert_iterator): Remove the
543 (front_insert_iterator): Likewise.
544 (insert_iterator): Likewise. Remove NSDMIs.
545 (common_iterator): Constrain the default ctor.
546 (counted_iterator): Likewise.
547 * include/bits/stream_iterator.h (ostream_iterator): Remove the
549 * include/std/ranges (__detail::__box::operator=): Handle
550 self-assignment in the primary template.
551 (__detail::__box): In the partial specialization: adjust
552 constraints as per P2325. Add specialized operator= for the
553 case when the wrapped type is not copyable. Constrain the
554 default ctor. Avoid list-initialization.
555 (single_view): Constraint the default ctor.
556 (iota_view): Relax semiregular constraint to copyable.
557 Constrain the default ctor.
558 (iota_view::_Iterator): Constraint the default ctor.
559 (basic_istream_view): Remove the default ctor. Remove NSDMIs.
560 Remove redundant checks for empty _M_stream.
561 (basic_istream_view::_Iterator): Likewise.
562 (ref_view): Remove the default ctor. Remove NSDMIs.
563 (ref_view::_Iterator): Constrain the default ctor.
564 (__detail::__non_propagating_cache::operator=): Define overload
565 for assigning from a value of the underlying type.
566 (filter_view): Likewise.
567 (filter_view::_Iterator): Likewise.
568 (transform_view): Likewise.
569 (transform_view::_Iterator): Likewise.
570 (take_view): Likewise.
571 (take_view::_Iterator): Likewise.
572 (take_while_view): Likewise.
573 (take_while_view::_Iterator): Likewise.
574 (drop_while_view): Likewise.
575 (drop_while_view::_Iterator): Likewise.
576 (join_view): Likewise.
577 (split_view::_OuterIter::__current): Adjust after changing the
579 (split_view::_M_current): Wrap it in a __non_propagating_cache.
580 (split_view::split_view): Constrain the default ctor.
581 (common_view): Constrain the default ctor.
582 (reverse_view): Likewise.
583 (elements_view): Likewise.
584 * include/std/span (enable_view<span<_ElementType, _Extent>>):
585 Define this partial specialization to true unconditionally.
586 * include/std/version (__cpp_lib_ranges): Adjust value.
587 * testsuite/24_iterators/back_insert_iterator/constexpr.cc:
588 Don't attempt to default construct a back_insert_iterator.
589 * testsuite/24_iterators/front_insert_iterator/constexpr.cc:
590 Don't attempt to default construct a front_insert_iterator.
591 * testsuite/24_iterators/insert_iterator/constexpr.cc:
592 Don't attempt to default construct an insert_iterator.
593 * testsuite/24_iterators/ostream_iterator/requirements/constexpr.cc:
594 Remove this test for default constructibility of ostream_iterator.
595 * testsuite/std/ranges/97600.cc: Don't attempt to default
596 construct a basic_istream_view.
597 * testsuite/std/ranges/adaptors/detail/semiregular_box.cc:
599 * testsuite/std/ranges/adaptors/detail/copyable_box.cc: ... this.
600 (test02): Adjust now that __box is copyable-box not
603 * testsuite/std/ranges/p2325.cc: New test.
604 * testsuite/std/ranges/single_view.cc (test06): New test.
605 * testsuite/std/ranges/view.cc: Adjust now that view doesn't
606 require default_initializable.
608 2021-06-17 Jonathan Wakely <jwakely@redhat.com>
611 * include/bits/basic_string.h (__cpp_lib_constexpr_string): Only
612 define when is_constant_evaluated is available.
613 * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits):
615 (__constant_string_p, __constant_array_p): Remove.
616 (char_traits): Use is_constant_evaluated directly.
617 * include/std/version (__cpp_lib_constexpr_char_traits)
618 (__cpp_lib_constexpr_string): Only define when
619 is_constant_evaluated is available.
621 2021-06-17 Patrick Palka <ppalka@redhat.com>
624 * include/std/ranges (__adaptor::_Partial): For the "simple"
625 forwarding partial specializations, also require that
626 the extra arguments are trivially copyable.
627 * testsuite/std/ranges/adaptors/100577.cc (test04): New test.
629 2021-06-17 Patrick Palka <ppalka@redhat.com>
632 * include/std/ranges (__adaptor::_RangeAdaptor): Document the
633 template form of _S_has_simple_extra_args.
634 (__adaptor::__adaptor_has_simple_extra_args): Add _Args template
635 parameter pack. Try to treat _S_has_simple_extra_args as a
636 variable template parameterized by _Args.
637 (__adaptor::_Partial): Pass _Arg/_Args to the constraint
638 __adaptor_has_simple_extra_args.
639 (views::_Take::_S_has_simple_extra_args): Templatize according
640 to the type of the extra argument.
641 (views::_Drop::_S_has_simple_extra_args): Likewise.
642 (views::_Split::_S_has_simple_extra_args): Define.
643 * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
644 Adjust after changes to _S_has_simple_extra_args mechanism.
647 2021-06-16 Jonathan Wakely <jwakely@redhat.com>
649 * include/bits/iterator_concepts.h (__decay_copy): Name type.
651 2021-06-16 Jonathan Wakely <jwakely@redhat.com>
653 * include/bits/ranges_base.h (ranges::begin, ranges::end)
654 (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
655 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
656 (ranges::empty, ranges::data, ranges::cdata): Remove final
657 keywords and deleted operator& overloads.
658 * testsuite/24_iterators/customization_points/iter_move.cc: Use
659 new is_customization_point_object function.
660 * testsuite/24_iterators/customization_points/iter_swap.cc:
662 * testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc:
664 * testsuite/std/ranges/access/begin.cc: Likewise.
665 * testsuite/std/ranges/access/cbegin.cc: Likewise.
666 * testsuite/std/ranges/access/cdata.cc: Likewise.
667 * testsuite/std/ranges/access/cend.cc: Likewise.
668 * testsuite/std/ranges/access/crbegin.cc: Likewise.
669 * testsuite/std/ranges/access/crend.cc: Likewise.
670 * testsuite/std/ranges/access/data.cc: Likewise.
671 * testsuite/std/ranges/access/empty.cc: Likewise.
672 * testsuite/std/ranges/access/end.cc: Likewise.
673 * testsuite/std/ranges/access/rbegin.cc: Likewise.
674 * testsuite/std/ranges/access/rend.cc: Likewise.
675 * testsuite/std/ranges/access/size.cc: Likewise.
676 * testsuite/std/ranges/access/ssize.cc: Likewise.
677 * testsuite/util/testsuite_iterators.h
678 (is_customization_point_object): New function.
680 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
682 * include/bits/ranges_base.h (ranges::begin, ranges::end)
683 (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
684 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
685 (ranges::empty, ranges::data, ranges::cdata): Make types final.
686 Add deleted operator& overloads.
687 (ranges::advance, ranges::distance, ranges::next, ranges::prev):
689 * testsuite/std/ranges/headers/ranges/synopsis.cc: Replace
690 ill-formed & expressions with using-declarations. Add checks for
691 other function objects.
693 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
695 * include/bits/ranges_util.h (view_interface): Add noexcept to
696 empty, operator bool, data and size members.
697 (subrange): Add noexcept to constructors.
698 * include/std/ranges (single_view, ref_view): Add noexcept to
700 (views::single, views::all): Add noexcept.
701 * testsuite/std/ranges/adaptors/all.cc: Check noexcept.
702 * testsuite/std/ranges/single_view.cc: Likewise.
704 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
706 * include/bits/ranges_util.h (subrange): Add __size_type typedef
707 and use it to simplify declarations.
708 (subrange(i, s, n)): Remove assertion.
709 * testsuite/std/ranges/subrange/constexpr.cc: New test.
711 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
713 * include/bits/iterator_concepts.h (__cust_access::__decay_copy):
714 Replace with function object.
715 (__cust_access::__member_begin, ___cust_access::_adl_begin): Use
716 __decay_copy unqualified.
717 * include/bits/ranges_base.h (__member_end, __adl_end):
718 Likewise. Use __range_iter_t for type of ranges::begin.
719 (__member_rend): Use correct value category for rbegin argument.
720 (__member_data): Use __decay_copy unqualified.
721 (__begin_data): Use __range_iter_t for type of ranges::begin.
723 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
725 * include/bits/ranges_base.h (ranges::empty): Check whether
726 conversion to bool can throw.
727 * testsuite/std/ranges/access/empty.cc: Check for correct
730 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
733 * include/std/type_traits (__common_ref_impl<X&, Y&>): Only
734 use the type if it's a reference.
735 * testsuite/20_util/common_reference/100894.cc: New test.
737 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
739 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
740 Add dg-require-filesystem-ts directive.
742 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
745 * include/std/any (any(in_place_t<T>, initializer_list<U>, A&&...))
746 (any::emplace<T>(initializer_list<U>, A&&...)): Fix constraint
748 * testsuite/20_util/any/cons/101034.cc: New test.
750 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
752 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Add
755 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
758 * libsupc++/compare (compare_partial_order_fallback): Add
759 constraint using reversed parameter order, as per LWG 3465.
760 * testsuite/18_support/comparisons/algorithms/fallback.cc:
761 Adjust expected result.
763 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
765 * libsupc++/compare (__decayed_same_as): New helper concept.
766 (strong_order, weak_order, partial_order): Constrain with new
767 concept instead of using static_assert.
768 (compare_strong_order_fallback, compare_weak_order_fallback)
769 (compare_partial_order_fallback): Likewise. Do not deduce return
770 types. Remove redundant if-constexpr checks.
771 * testsuite/18_support/comparisons/algorithms/fallback.cc: New test.
773 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
776 * include/std/tuple: Use reserved form of attribute name.
777 * testsuite/17_intro/headers/c++2011/all_attributes.cc: Add
778 check for no_unique_address.
779 * testsuite/17_intro/headers/c++2014/all_attributes.cc:
781 * testsuite/17_intro/headers/c++2017/all_attributes.cc:
784 2021-06-11 Jonathan Wakely <jwakely@redhat.com>
786 * include/bits/fs_path.h (operator==, operator<=>): Use new
788 (path::_S_compare): New function to call path::compare in a
789 context where path::iterator is complete.
790 * include/experimental/bits/fs_path.h (operator<, operator==):
791 Define after path::iterator is complete.
792 * testsuite/27_io/filesystem/path/native/conv_c++23.cc: New
794 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
797 2021-06-09 Thomas Rodgers <rodgert@appliantology.com>
799 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Guard
800 test logic with constexpr check for is_always_lock_free.
802 2021-06-09 Jonathan Wakely <jwakely@redhat.com>
805 * include/std/optional (optional::operator=(const optional<U>&)):
806 Fix value category used in is_assignable check.
807 * testsuite/20_util/optional/assignment/100982.cc: New test.
809 2021-06-09 Jonathan Wakely <jwakely@redhat.com>
811 * include/bits/allocator.h (allocator::is_always_equal): Deprecate.
812 * include/bits/iterator_concepts.h (indirectly_readable_traits):
813 Add LWG issue number to comment.
814 * include/std/memory_resource (polymorphic_allocator::release):
816 * testsuite/20_util/allocator/requirements/typedefs.cc: Add
817 dg-warning for deprecation. Also check std::allocator<void>.
819 2021-06-08 Thomas Rodgers <rodgert@appliantology.com>
822 * include/bits/atomic_base.h (atomic_ref<_Tp*>::wait):
823 Change parameter type from _Tp to _Tp*.
824 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Extend
825 coverage of types tested.
827 2021-06-08 Thomas Rodgers <rodgert@appliantology.com>
829 * include/std/barrier (__tree_barrier::_M_arrive): Remove
830 unnecessary hasher instantiation.
832 2021-06-08 Jonathan Wakely <jwakely@redhat.com>
834 * include/experimental/propagate_const (swap): Constrain.
835 * testsuite/experimental/propagate_const/swap/lwg3413.cc: New test.
837 2021-06-07 Avi Kivity <avi@scylladb.com>
840 * include/std/ranges (elements_view::__iter_cat::_S_iter_cat):
841 Add missing typename.
843 2021-06-07 Jonathan Wakely <jwakely@redhat.com>
846 * include/std/optional (operator<=>(const optional<T>& const U&)):
847 Add missing constraint and add workaround for template
849 * testsuite/20_util/optional/relops/three_way.cc: Check that
850 type without equality comparison cannot be compared when wrapped
853 2021-06-05 Jonathan Wakely <jwakely@redhat.com>
856 * include/bits/ranges_base.h (_SSize): Return signed type.
857 * testsuite/std/ranges/access/ssize.cc: Check with __int128.
859 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
861 * include/bits/ranges_base.h (_SSize): Return the result of
862 ranges::size converted to the wider of make-signed-like-t<S> and
863 ptrdiff_t, rather than the ranges different type.
864 * testsuite/std/ranges/access/ssize.cc: Adjust expected result
865 for an iota_view that uses an integer class type for its
868 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
871 * include/bits/ranges_base.h (__member_data): Use __decay_copy.
872 * testsuite/std/ranges/access/data.cc: Add testcase from PR.
874 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
877 * include/bits/iterator_concepts.h (__detail::__decay_copy)
878 (__detail::__member_begin, __detail::__adl_begin): Move to
879 namespace ranges::__cust_access.
880 (__detail::__ranges_begin): Likewise, and rename to __begin.
881 Remove redundant static assertion.
882 * include/bits/ranges_base.h (_Begin, _End, _RBegin, _REnd):
883 Use lvalue in noexcept specifier.
884 (__as_const): Add non-deduced parameter for value category.
885 (_CBegin, _CEnd, _CRBegin, _CREnd, _CData): Adjust uses of
887 (__member_size, __adl_size, __member_empty, __size0_empty):
888 (__eq_iter_empty, __adl_data): Use lvalue objects in
890 (__sentinel_size): Likewise. Add check for conversion to
892 (__member_data): Allow non-lvalue types to satisfy the concept,
893 but use lvalue object in requirements.
894 (_Size, _SSize): Remove forwarding to always use an lvalue.
895 (_Data): Likewise. Add static assertion for arrays.
896 * testsuite/std/ranges/access/cdata.cc: Adjust expected
897 behaviour for rvalues. Add negative tests for ill-formed
899 * testsuite/std/ranges/access/data.cc: Likewise.
900 * testsuite/std/ranges/access/empty.cc: Adjust expected
901 behaviour for rvalues.
902 * testsuite/std/ranges/access/size.cc: Likewise.
904 2021-06-04 Tim Adye <Tim.Adye@cern.ch>
906 * include/std/any (any::_Manager::_S_access): New static
907 function to access the contained value.
908 (any::emplace, __any_caster): Use _S_access member of the
911 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
913 * doc/xml/manual/status_cxx2020.xml:
914 * doc/html/*: Regenerate.
915 * include/bits/hashtable.h (__cpp_lib_generic_unordered_lookup):
917 * include/std/version (__cpp_lib_generic_unordered_lookup):
919 * testsuite/23_containers/unordered_map/operations/1.cc: Check
921 * testsuite/23_containers/unordered_set/operations/1.cc:
924 2021-06-03 Patrick Palka <ppalka@redhat.com>
926 * include/bits/ranges_algo.h (__detail::__can_reread_output):
927 Factor out this concept from ...
928 (__unique_copy_fn::operator()): ... here. Use the concept
930 * testsuite/std/ranges/range.cc: Remove now ill-formed use
931 of range_value_t on an output_range.
932 * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
933 Define value_type, pointer and reference member types to void.
935 2021-06-03 Patrick Palka <ppalka@redhat.com>
938 * include/std/ranges (_RangeAdaptorClosure): Document
939 _S_has_simple_call_op mechanism.
940 (_RangeAdaptor): Document _S_has_simple_extra_args mechanism.
941 (__closure_has_simple_call_op): New concept.
942 (__adaptor_has_simple_extra_args): Likewise.
943 (_Partial<_Adaptor, _Args...>): New partial specialization.
944 (_Partial<_Adaptor, _Arg>): Likewise.
945 (_Pipe<_Lhs, _Rhs>): Likewise.
946 (views::_All::_S_has_simple_call_op): Define to true.
947 (views::_Filter::_S_has_simple_extra_args): Likewise.
948 (views::_Transform::_S_has_simple_extra_args): Likewise.
949 (views::_Take::_S_has_simple_extra_args): Likewise.
950 (views::_TakeWhile::_S_has_simple_extra_args): Likewise.
951 (views::_Drop::_S_has_simple_extra_args): Likewise.
952 (views::_DropWhile::_S_has_simple_extra_args): Likewise.
953 (views::_Join::_S_has_simple_call_op): Likewise.
954 (views::_Split): Document why we don't define
955 _S_has_simple_extra_args to true for this adaptor.
956 (views::_Common::_S_has_simple_call_op): Define to true.
957 (views::_Reverse::_S_has_simple_call_op): Likewise.
958 (views::_Elements::_S_has_simple_call_op): Likewise.
959 * testsuite/std/ranges/adaptors/100577.cc: New test.
961 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
965 * include/bits/hashtable_policy.h (_Hashtable_ebo_helper):
966 Value-initialize subobject.
967 * testsuite/23_containers/unordered_map/allocator/default_init.cc:
969 * testsuite/23_containers/unordered_set/allocator/default_init.cc:
972 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
975 * testsuite/23_containers/unordered_map/96088.cc: Adjust
976 expected number of allocations.
977 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
979 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
981 * doc/xml/manual/status_cxxis29124.xml: Improve punctuation.
982 * doc/xml/manual/status_cxxtr1.xml: Likewise.
983 * doc/xml/manual/status_cxxtr24733.xml: Likewise.
984 * doc/html/*: Regenerate.
986 2021-06-01 Patrick Palka <ppalka@redhat.com>
989 * testsuite/23_containers/deque/allocator/default_init.cc,
990 testsuite/23_containers/forward_list/allocator/default_init.cc,
991 testsuite/23_containers/list/allocator/default_init.cc,
992 testsuite/23_containers/map/allocator/default_init.cc,
993 testsuite/23_containers/set/allocator/default_init.cc,
994 testsuite/23_containers/vector/allocator/default_init.cc,
995 testsuite/23_containers/vector/bool/allocator/default_init.cc:
998 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
1000 * testsuite/23_containers/unordered_map/96088.cc: Change
1001 effective target to c++17.
1002 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
1004 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
1006 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Only test
1007 isblank for C++11 and later.
1009 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
1012 * include/bits/ranges_base.h (ranges::advance(iter, n, sentinel)):
1013 Fix return value for no-op case.
1014 * testsuite/24_iterators/range_operations/advance.cc: Test
1015 return values of three-argument overload.
1017 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
1020 * python/Makefile.am: Use archive name for printer hook if no
1021 dynamic library name is available.
1022 * python/Makefile.in: Regenerate.
1024 2021-05-30 Gerald Pfeifer <gerald@pfeifer.com>
1026 * doc/xml/manual/abi.xml: Remove dead reference to "Intel
1027 Compilers for Linux: Compatibility with GNU Compilers" article.
1028 * doc/html/manual/abi.html: Regenerate.
1030 2021-05-26 François Dumont <fdumont@gcc.gnu.org>
1032 * include/debug/formatter.h
1033 (_Error_formatter::_Parameter::_Named): New.
1034 (_Error_formatter::_Parameter::_Type): Inherit latter.
1035 (_Error_formatter::_Parameter::_M_integer): Likewise.
1036 (_Error_formatter::_Parameter::_M_string): Likewise.
1037 * src/c++11/debug.cc: Include <cstring>.
1038 (_Print_func_t): New.
1039 (print_raw(PrintContext&, const char*, ptrdiff_t)): New.
1040 (print_word): Use '%.*s' format in fprintf to render only expected number of chars.
1041 (pretty_print(PrintContext&, const char*, _Print_func_t)): New.
1042 (print_type): Rename in...
1043 (print_type_info): ...this. Use pretty_print.
1044 (print_address, print_integer): New.
1045 (print_named_name, print_iterator_constness, print_iterator_state): New.
1046 (print_iterator_seq_type): New.
1047 (print_named_field, print_type_field, print_instance_field, print_iterator_field): New.
1048 (print_field): Use latters.
1049 (print_quoted_named_name, print_type_type, print_type, print_instance): New.
1050 (print_string(PrintContext&, const char*, const _Parameter*, size_t)):
1051 Change signature to...
1052 (print_string(PrintContext&, const char*, ptrdiff_t, const _Parameter*, size_t)):
1053 ...this and adapt. Remove intermediate buffer to render input string.
1054 (print_string(PrintContext&, const char*, ptrdiff_t)): New.
1056 2021-05-26 Jonathan Wakely <jwakely@redhat.com>
1059 * include/bits/ranges_base.h (advance, distance, next, prev):
1060 Replace function templates with function objects.
1061 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
1062 Adjust for changes to function objects.
1063 * testsuite/std/ranges/adaptors/elements.cc: Add using
1064 declarations for names from namespace ranges.
1065 * testsuite/std/ranges/adaptors/transform.cc: Likewise.
1066 * testsuite/24_iterators/range_operations/100768.cc: New test.
1068 2021-05-24 François Dumont <fdumont@gcc.gnu.org>
1071 * include/bits/hashtable_policy.h (_Select2nd): New.
1072 (_NodeBuilder<>): New.
1073 (_ReuseOrAllocNode<>::operator()): Use variadic template args.
1074 (_AllocNode<>::operator()): Likewise.
1075 * include/bits/hashtable.h
1076 (_Hashtable<>::__node_builder_t): New.
1077 (_Hashtable<>::_M_insert_unique<>(_Kt&&, _Arg&&, const _NodeGenerator&)):
1079 (_Hashtable<>::_S_forward_key): New.
1080 (_Hashtable<>::_M_insert): Use latter.
1081 (_Hashtable<>::_M_insert(const_iterator, _Arg&&, const _NodeGenerator&, false_type)):
1082 Instantiate node first, compute hash code second.
1083 * testsuite/23_containers/unordered_map/96088.cc: New test.
1084 * testsuite/23_containers/unordered_multimap/96088.cc: New test.
1085 * testsuite/23_containers/unordered_multiset/96088.cc: New test.
1086 * testsuite/23_containers/unordered_set/96088.cc: New test.
1087 * testsuite/util/replacement_memory_operators.h
1088 (counter::_M_increment): New.
1089 (counter::_M_decrement): New.
1090 (counter::reset()): New.
1092 2021-05-24 Patrick Palka <ppalka@redhat.com>
1095 * include/std/ranges (__detail::__non_propagating_cache): Move
1096 definition up to before that of _CachedPosition. Make base
1097 class _Optional_base protected instead of private. Add const
1098 overload for operator*.
1099 (__detail::_CachedPosition): Rewrite the partial specialization
1100 for forward ranges as a derived class of __non_propagating_cache.
1101 Remove the size constraint on the partial specialization for
1102 random access ranges. Add copy/move/copy-assignment/move-assignment
1103 members to the offset partial specialization for random
1104 access ranges that propagate the cached value but additionally
1105 invalidate it in the source object on move.
1106 * testsuite/std/ranges/adaptors/100479.cc: New test.
1108 2021-05-24 Jonathan Wakely <jwakely@redhat.com>
1110 * testsuite/25_algorithms/inplace_merge/constrained.cc: Qualify
1111 call to ranges::next.
1112 * testsuite/25_algorithms/is_sorted/constrained.cc: Likewise.
1113 * testsuite/25_algorithms/is_sorted_until/constrained.cc:
1115 * testsuite/25_algorithms/swap_ranges/1.cc: Qualify call to
1118 2021-05-21 Patrick Palka <ppalka@redhat.com>
1121 * include/std/ranges (drop_while_view::begin): Assert the
1122 precondition added by LWG 3490.
1124 2021-05-21 Patrick Palka <ppalka@redhat.com>
1127 * include/std/ranges (iota_view::_Sentinel::_M_distance_from):
1128 Split out this member function from ...
1129 (iota_view::_Sentinel::operator-): ... here, for sake of access
1131 * testsuite/std/ranges/iota/iota_view.cc (test05): New test.
1133 2021-05-20 Jonathan Wakely <jwakely@redhat.com>
1135 * include/bits/random.tcc (__representable_as_double)
1136 (__p1_representable_as_double): Add "" to static asserts.
1138 2021-05-20 Jonathan Wakely <jwakely@redhat.com>
1141 * include/bits/c++config (__glibcxx_assert_1): Rename to ...
1142 (__glibcxx_constexpr_assert): ... this.
1143 (__glibcxx_assert_impl): Use __glibcxx_constexpr_assert.
1144 (__glibcxx_assert): Define as either __glibcxx_constexpr_assert
1145 or __glibcxx_assert_impl.
1146 (__glibcxx_assert_2): Remove
1147 * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): Use
1148 __glibcxx_constexpr_assert instead of __glibcxx_assert_1.
1149 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
1150 Adjust expected error.
1151 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
1153 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
1156 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
1158 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
1160 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
1162 * testsuite/23_containers/span/back_neg.cc: Likewise.
1163 * testsuite/23_containers/span/front_neg.cc: Likewise.
1164 * testsuite/23_containers/span/index_op_neg.cc: Likewise.
1166 2021-05-20 Patrick Palka <ppalka@redhat.com>
1169 * include/bits/stl_iterator.h (reverse_iterator::difference_type):
1170 In C++20 mode, define in terms of iter_difference_t as per P0896R4.
1171 (reverse_iterator::reference): Likewise, but with iter_reference_t.
1172 (reverse_iterator::value_type): Likewise, but with iter_value_t.
1173 * testsuite/std/ranges/adaptors/reverse.cc (test08): New test.
1174 * testsuite/24_iterators/reverse_iterator/100639.cc: New test.
1176 2021-05-20 Joern Rennecke <joern.rennecke@riscy-ip.com>
1179 * include/std/charconv (to_chars): Hide the overloads for
1180 floating-point types for 16 bit targets.
1181 * src/c++17/floating_to_chars.cc: Don't compile for 16 bit targets.
1182 * testsuite/20_util/to_chars/double.cc: Run this test only on
1184 * testsuite/20_util/to_chars/float.cc: Likewise.
1185 * testsuite/20_util/to_chars/long_double.cc: Likewise.
1187 2021-05-18 Patrick Palka <ppalka@redhat.com>
1190 * include/std/ranges (elements_view::_Sentinel::operator-): Use
1191 _M_distance_from in the other operator- overload too.
1192 * testsuite/std/ranges/adaptors/elements.cc (test06): Augment test.
1194 2021-05-18 Thomas Schwinge <thomas@codesourcery.com>
1196 * testsuite/lib/prune.exp: Add note about 'dg-note'.
1198 2021-05-18 Patrick Palka <ppalka@redhat.com>
1201 * include/std/ranges (__box::__box): Use non-list-initialization
1202 in member initializer list of in-place constructor of the
1203 partial specialization for semiregular types.
1204 (__box::operator->): Use std::__addressof.
1205 * testsuite/std/ranges/adaptors/detail/semiregular_box.cc
1207 * testsuite/std/ranges/single_view.cc (test04): New test.
1209 2021-05-18 Patrick Palka <ppalka@redhat.com>
1212 * include/std/ranges (reverse_view::_S_needs_cached_begin):
1213 Set to true if the underlying non-common random-access range
1214 doesn't have a sized sentinel.
1216 2021-05-18 Patrick Palka <ppalka@redhat.com>
1219 * include/std/ranges (elements_view::_Iterator): Also befriend
1221 (elements_view::_Sentinel::_M_equal): Templatize.
1222 (elements_view::_Sentinel::_M_distance_from): Split out from ...
1223 (elements_view::_Sentinel::operator-): ... here. Depend on
1224 _Base2 instead of _Base in the return type.
1225 * testsuite/std/ranges/adaptors/elements.cc (test06, test07):
1228 2021-05-17 Thomas Rodgers <rodgert@twrodgers.com>
1230 * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): loop
1231 until value change observed.
1232 (__waiter_base::_M_laundered): New member.
1233 (__waiter_base::_M_notify): Check _M_laundered to determine
1234 whether to wake one or all.
1235 (__detail::__atomic_compare): Return true if call to
1236 __builtin_memcmp() == 0.
1237 (__waiter_base::_S_do_spin_v): Adjust predicate.
1238 * testsuite/29_atomics/atomic/wait_notify/100334.cc: New
1241 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
1244 * include/experimental/bits/fs_path.h (__is_constructible_from):
1245 Test construction from a const lvalue, not an rvalue.
1246 * testsuite/27_io/filesystem/path/construct/100630.cc: New test.
1247 * testsuite/experimental/filesystem/path/construct/100630.cc:
1250 2021-05-17 Antony Polukhin <antoshkka@gmail.com>
1253 * include/bits/locale_facets.h (ctype<basic_string<C,T,A>>):
1254 Declare (but do not define) partial specialization.
1255 * testsuite/22_locale/ctype/is/string/89728_neg.cc: New test.
1257 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
1259 * include/std/thread (jthread::_S_create): Fix static assert
1261 * testsuite/30_threads/jthread/95989.cc: Re-enable test.
1262 * testsuite/30_threads/jthread/jthread.cc: Do not require
1263 pthread effective target.
1264 * testsuite/30_threads/jthread/2.cc: Moved to...
1265 * testsuite/30_threads/jthread/version.cc: ...here.
1267 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
1269 * doc/Makefile.am: Simplify doxygen recipes and use --latex_cmd.
1270 * doc/Makefile.in: Regenerate.
1271 * doc/doxygen/user.cfg.in (LATEX_CMD_NAME): Add placeholder
1273 * scripts/run_doxygen (print_usage): Always print to stdout and
1275 (fail): New function for exiting on error.
1276 (parse_options): Handle --latex_cmd. Do not treat --help the
1277 same as errors. Simplify handling of required arguments.
1279 2021-05-12 Jonathan Wakely <jwakely@redhat.com>
1281 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
1282 Increase dg-timeout-factor to 4. Fix -Wunused-parameter
1283 warnings. Replace bitwise AND with logical AND in loop
1285 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
1286 Replace bitwise AND with logical AND in loop condition.
1287 * testsuite/util/pstl/test_utils.h: Remove unused parameter
1290 2021-05-11 Patrick Palka <ppalka@redhat.com>
1292 * src/c++17/ryu/LOCAL_PATCHES: Update.
1293 * src/c++17/ryu/ryu_generic_128.h: Remove extern "C".
1294 Remove declarations for never-defined functions.
1295 * testsuite/20_util/to_chars/4.cc: New test.
1297 2021-05-11 Jonathan Wakely <jwakely@redhat.com>
1299 * testsuite/20_util/headers/memory/synopsis.cc: Define C++98
1300 alternative for macro.
1301 * testsuite/20_util/shared_ptr/creation/99006.cc: Add effective
1303 * testsuite/25_algorithms/copy/debug/99402.cc: Avoid C++11
1306 2021-05-11 Jonathan Wakely <jwakely@redhat.com>
1308 * include/bits/allocator.h (allocator<void>) [C++20]: Add
1309 missing noexcept to constructor. Restore missing POCMA and
1310 is_always_equal_traits.
1311 [C++17]: Make construct and destroy members private and
1312 declare allocator_traits as a friend.
1313 * include/bits/memoryfwd.h (allocator_traits): Declare.
1314 * include/ext/malloc_allocator.h (malloc_allocator::allocate):
1315 Add nodiscard attribute. Add static assertion for LWG 3307.
1316 * include/ext/new_allocator.h (new_allocator::allocate): Add
1317 static assertion for LWG 3307.
1318 * testsuite/20_util/allocator/void.cc: Check that converting
1319 constructor is noexcept. Check for propagation traits and
1320 size_type and difference_type. Check that pointer and
1321 const_pointer are gone in C++20.
1323 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
1325 * include/std/stop_token: Remove TODO comment.
1327 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
1329 * include/bits/shared_ptr_base.h (__shared_count(unique_ptr&&)):
1330 Initialize a non-reference deleter from an rvalue, as per LWG
1332 (__shared_ptr::_UniqCompatible): Add missing constraint.
1333 * testsuite/20_util/shared_ptr/cons/lwg3548.cc: New test.
1334 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc: Check
1337 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
1339 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Remove
1340 -std=gnu++17 from dg-options directive.
1341 * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc:
1343 * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc:
1345 * testsuite/17_intro/headers/c++2017/operator_names.cc:
1347 * testsuite/17_intro/headers/c++2017/parallel_mode.cc: Likewise.
1348 * testsuite/17_intro/headers/c++2017/stdc++.cc: Likewise.
1349 * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
1351 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Likewise.
1352 * testsuite/18_support/byte/81076.cc: Likewise.
1353 * testsuite/18_support/byte/global_neg.cc: Likewise.
1354 * testsuite/18_support/byte/ops.cc: Likewise.
1355 * testsuite/18_support/byte/requirements.cc: Likewise.
1356 * testsuite/18_support/headers/cfloat/values_c++17.cc: Likewise.
1357 * testsuite/18_support/launder/1.cc: Likewise.
1358 * testsuite/18_support/launder/nodiscard.cc: Likewise.
1359 * testsuite/18_support/launder/requirements.cc: Likewise.
1360 * testsuite/18_support/launder/requirements_neg.cc: Likewise.
1361 * testsuite/18_support/new_aligned.cc: Likewise.
1362 * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
1364 * testsuite/19_diagnostics/error_code/is_error_code_v.cc:
1366 * testsuite/19_diagnostics/error_condition/hash.cc: Likewise.
1367 * testsuite/20_util/addressof/requirements/constexpr.cc:
1369 * testsuite/20_util/as_const/1.cc: Likewise.
1370 * testsuite/20_util/as_const/rvalue_neg.cc: Likewise.
1371 * testsuite/20_util/bind/83427.cc: Likewise.
1372 * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
1373 * testsuite/20_util/bool_constant/requirements.cc: Likewise.
1374 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
1376 * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
1378 * testsuite/20_util/duration_cast/rounding.cc: Likewise.
1379 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
1381 * testsuite/20_util/from_chars/1_neg.cc: Likewise.
1382 * testsuite/20_util/from_chars/requirements.cc: Likewise.
1383 * testsuite/20_util/function/91456.cc: Likewise.
1384 * testsuite/20_util/function/cons/deduction.cc: Likewise.
1385 * testsuite/20_util/function_objects/83607.cc: Likewise.
1386 * testsuite/20_util/function_objects/invoke/59768.cc: Likewise.
1387 * testsuite/20_util/function_objects/mem_fn/80478.cc: Likewise.
1388 * testsuite/20_util/function_objects/not_fn/1.cc: Likewise.
1389 * testsuite/20_util/function_objects/not_fn/87538.cc: Likewise.
1390 * testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc:
1392 * testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc:
1394 * testsuite/20_util/has_unique_object_representations/value.cc:
1396 * testsuite/20_util/hash/nullptr.cc: Likewise.
1397 * testsuite/20_util/in_place/requirements.cc: Likewise.
1398 * testsuite/20_util/is_aggregate/incomplete_neg.cc: Likewise.
1399 * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
1401 * testsuite/20_util/is_aggregate/requirements/typedefs.cc:
1403 * testsuite/20_util/is_aggregate/value.cc: Likewise.
1404 * testsuite/20_util/is_invocable/83395.cc: Likewise.
1405 * testsuite/20_util/is_invocable/91456.cc: Likewise.
1406 * testsuite/20_util/is_invocable/requirements/explicit_instantiation.cc:
1408 * testsuite/20_util/is_invocable/requirements/typedefs.cc:
1410 * testsuite/20_util/is_invocable/value.cc: Likewise.
1411 * testsuite/20_util/is_literal_type/deprecated-1z.cc: Likewise.
1412 * testsuite/20_util/is_nothrow_constructible/94003.cc: Likewise.
1413 * testsuite/20_util/is_nothrow_invocable/83395.cc: Likewise.
1414 * testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation.cc:
1416 * testsuite/20_util/is_nothrow_invocable/requirements/typedefs.cc: Likewise.
1417 * testsuite/20_util/is_nothrow_invocable/value.cc: Likewise.
1418 * testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc:
1420 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
1422 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
1423 * testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc:
1425 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
1427 * testsuite/20_util/is_nothrow_swappable_with/value.cc:
1429 * testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc:
1431 * testsuite/20_util/is_swappable/requirements/typedefs.cc:
1433 * testsuite/20_util/is_swappable/value.cc: Likewise.
1434 * testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc:
1436 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc:
1438 * testsuite/20_util/is_swappable_with/value.cc: Likewise.
1439 * testsuite/20_util/logical_traits/83134.cc: Likewise.
1440 * testsuite/20_util/logical_traits/requirements/explicit_instantiation.cc:
1442 * testsuite/20_util/logical_traits/requirements/typedefs.cc:
1444 * testsuite/20_util/logical_traits/value.cc: Likewise.
1445 * testsuite/20_util/pair/cons/deduction.cc: Likewise.
1446 * testsuite/20_util/pair/swap_cxx17.cc: Likewise.
1447 * testsuite/20_util/ratio/requirements/ratio_equal_v.cc:
1449 * testsuite/20_util/reference_wrapper/83427.cc: Likewise.
1450 * testsuite/20_util/reference_wrapper/deduction.cc: Likewise.
1451 * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
1452 * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
1453 * testsuite/20_util/shared_ptr/requirements/weak_type.cc:
1455 * testsuite/20_util/time_point/arithmetic/constexpr.cc:
1457 * testsuite/20_util/time_point_cast/rounding.cc: Likewise.
1458 * testsuite/20_util/to_chars/3.cc: Likewise.
1459 * testsuite/20_util/to_chars/chars_format.cc: Likewise.
1460 * testsuite/20_util/to_chars/lwg3266.cc: Likewise.
1461 * testsuite/20_util/to_chars/requirements.cc: Likewise.
1462 * testsuite/20_util/tuple/78939.cc: Likewise.
1463 * testsuite/20_util/tuple/apply/1.cc: Likewise.
1464 * testsuite/20_util/tuple/apply/2.cc: Likewise.
1465 * testsuite/20_util/tuple/cons/deduction.cc: Likewise.
1466 * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
1467 * testsuite/20_util/tuple/make_from_tuple/2.cc: Likewise.
1468 * testsuite/20_util/tuple/swap_cxx17.cc: Likewise.
1469 * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
1470 * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: Likewise.
1471 * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
1473 * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
1474 * testsuite/20_util/void_t/1.cc: Likewise.
1475 * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
1476 * testsuite/24_iterators/container_access.cc: Likewise.
1477 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc:
1479 * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc:
1481 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
1483 * testsuite/24_iterators/range_access/range_access_cpp17_neg.cc:
1485 * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
1486 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc:
1488 * testsuite/26_numerics/headers/cmath/hypot.cc: Likewise.
1489 * testsuite/26_numerics/headers/cmath/special_functions_global.cc:
1491 * testsuite/26_numerics/lcm/1.cc: Likewise.
1492 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
1493 * testsuite/26_numerics/valarray/deduction.cc: Likewise.
1494 * testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc:
1496 * testsuite/27_io/manipulators/standard/char/quoted_sv.cc:
1498 * testsuite/27_io/manipulators/standard/wchar_t/quoted_sv.cc:
1500 * testsuite/27_io/types/4.cc: Likewise.
1501 * testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise.
1502 * testsuite/libstdc++-prettyprinters/91997.cc: Likewise.
1503 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
1505 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
1507 * testsuite/20_util/function_objects/searchers.cc: Remove
1508 -std=gnu++17 from dg-options directive.
1509 * testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc:
1511 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
1513 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc:
1515 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94831.cc:
1517 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc:
1519 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
1521 * testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc:
1523 * testsuite/25_algorithms/clamp/1.cc: Likewise.
1524 * testsuite/25_algorithms/clamp/2.cc: Likewise.
1525 * testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
1526 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc:
1528 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/pod.cc:
1530 * testsuite/25_algorithms/for_each/for_each_n.cc: Likewise.
1531 * testsuite/25_algorithms/for_each/for_each_n_debug.cc:
1533 * testsuite/25_algorithms/sample/1.cc: Likewise.
1534 * testsuite/25_algorithms/sample/2.cc: Likewise.
1535 * testsuite/25_algorithms/sample/3.cc: Likewise.
1536 * testsuite/25_algorithms/sample/81221.cc: Likewise.
1537 * testsuite/25_algorithms/search/searcher.cc: Likewise.
1538 * testsuite/26_numerics/exclusive_scan/1.cc: Likewise.
1539 * testsuite/26_numerics/inclusive_scan/1.cc: Likewise.
1540 * testsuite/26_numerics/reduce/1.cc: Likewise.
1541 * testsuite/26_numerics/reduce/2.cc: Likewise.
1542 * testsuite/26_numerics/transform_exclusive_scan/1.cc: Likewise.
1543 * testsuite/26_numerics/transform_inclusive_scan/1.cc: Likewise.
1544 * testsuite/26_numerics/transform_reduce/1.cc: Likewise.
1546 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
1548 * testsuite/23_containers/array/cons/deduction.cc: Remove
1549 -std=gnu++17 from dg-options directive.
1550 * testsuite/23_containers/array/cons/deduction_neg.cc: Likewise.
1551 * testsuite/23_containers/array/element_access/constexpr_c++17.cc:
1553 * testsuite/23_containers/array/requirements/constexpr_iter.cc:
1555 * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
1557 * testsuite/23_containers/deque/cons/deduction.cc: Likewise.
1558 * testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc:
1560 * testsuite/23_containers/forward_list/cons/deduction.cc:
1562 * testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc:
1564 * testsuite/23_containers/list/cons/deduction.cc: Likewise.
1565 * testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc:
1567 * testsuite/23_containers/map/cons/deduction.cc: Likewise.
1568 * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
1569 * testsuite/23_containers/map/modifiers/insert/83226.cc:
1571 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
1573 * testsuite/23_containers/map/modifiers/merge.cc: Likewise.
1574 * testsuite/23_containers/map/modifiers/try_emplace/1.cc:
1576 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
1577 * testsuite/23_containers/multimap/modifiers/extract.cc:
1579 * testsuite/23_containers/multimap/modifiers/merge.cc: Likewise.
1580 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
1581 * testsuite/23_containers/multiset/modifiers/extract.cc:
1583 * testsuite/23_containers/multiset/modifiers/merge.cc: Likewise.
1584 * testsuite/23_containers/priority_queue/deduction.cc: Likewise.
1585 * testsuite/23_containers/queue/deduction.cc: Likewise.
1586 * testsuite/23_containers/queue/members/emplace_cxx17_return.cc:
1588 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
1589 * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
1590 * testsuite/23_containers/set/modifiers/merge.cc: Likewise.
1591 * testsuite/23_containers/set/modifiers/node_swap.cc: Likewise.
1592 * testsuite/23_containers/stack/deduction.cc: Likewise.
1593 * testsuite/23_containers/stack/members/emplace_cxx17_return.cc:
1595 * testsuite/23_containers/unordered_map/cons/deduction.cc:
1597 * testsuite/23_containers/unordered_map/modifiers/extract.cc:
1599 * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
1601 * testsuite/23_containers/unordered_map/modifiers/merge.cc:
1603 * testsuite/23_containers/unordered_map/modifiers/try_emplace.cc:
1605 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
1607 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
1609 * testsuite/23_containers/unordered_multimap/modifiers/merge.cc:
1611 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
1613 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
1615 * testsuite/23_containers/unordered_multiset/modifiers/merge.cc:
1617 * testsuite/23_containers/unordered_set/cons/deduction.cc:
1619 * testsuite/23_containers/unordered_set/modifiers/extract.cc:
1621 * testsuite/23_containers/unordered_set/modifiers/merge.cc:
1623 * testsuite/23_containers/vector/bool/emplace_cxx17_return.cc:
1625 * testsuite/23_containers/vector/cons/89164_c++17.cc: Likewise.
1626 * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
1627 * testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc:
1630 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
1632 * testsuite/21_strings/basic_string/79162.cc: Remove
1633 -std=gnu++17 from dg-options directive.
1634 * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
1635 * testsuite/21_strings/basic_string/cons/char/79162.cc:
1637 * testsuite/21_strings/basic_string/cons/char/86138.cc:
1639 * testsuite/21_strings/basic_string/cons/char/9.cc: Likewise.
1640 * testsuite/21_strings/basic_string/cons/char/deduction.cc:
1642 * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc:
1644 * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
1645 * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc:
1647 * testsuite/21_strings/basic_string/cons/wchar_t/86138.cc:
1649 * testsuite/21_strings/basic_string/cons/wchar_t/9.cc: Likewise.
1650 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
1652 * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
1654 * testsuite/21_strings/basic_string/hash/hash.cc: Likewise.
1655 * testsuite/21_strings/basic_string/lwg2758.cc: Likewise.
1656 * testsuite/21_strings/basic_string/lwg2946.cc: Likewise.
1657 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
1659 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
1661 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
1663 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
1665 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
1667 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
1669 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1671 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
1673 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
1675 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
1677 * testsuite/21_strings/basic_string/operations/data/char/2.cc:
1679 * testsuite/21_strings/basic_string/operations/data/char/86169.cc:
1681 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc:
1683 * testsuite/21_strings/basic_string/operations/find/char/5.cc:
1685 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
1687 * testsuite/21_strings/basic_string/operators/char/5.cc:
1689 * testsuite/21_strings/basic_string/operators/wchar_t/5.cc:
1691 * testsuite/21_strings/basic_string_view/capacity/1.cc:
1693 * testsuite/21_strings/basic_string_view/capacity/empty_neg.cc:
1695 * testsuite/21_strings/basic_string_view/cons/char/1.cc:
1697 * testsuite/21_strings/basic_string_view/cons/char/2.cc:
1699 * testsuite/21_strings/basic_string_view/cons/char/3.cc:
1701 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
1703 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
1705 * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc:
1707 * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc:
1709 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
1711 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
1713 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
1715 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
1717 * testsuite/21_strings/basic_string_view/element_access/char/constexpr.cc:
1719 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
1721 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
1723 * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
1725 * testsuite/21_strings/basic_string_view/element_access/char/front_back_constexpr.cc:
1727 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
1729 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
1731 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
1733 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
1735 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr.cc:
1737 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
1739 * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
1741 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
1743 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
1745 * testsuite/21_strings/basic_string_view/include.cc: Likewise.
1746 * testsuite/21_strings/basic_string_view/inserters/94051.cc:
1748 * testsuite/21_strings/basic_string_view/inserters/char/1.cc:
1750 * testsuite/21_strings/basic_string_view/inserters/char/2.cc:
1752 * testsuite/21_strings/basic_string_view/inserters/char/3.cc:
1754 * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
1756 * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
1758 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
1760 * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
1762 * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
1764 * testsuite/21_strings/basic_string_view/literals/types.cc:
1766 * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
1768 * testsuite/21_strings/basic_string_view/literals/values.cc:
1770 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
1772 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
1774 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
1776 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
1778 * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
1780 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
1782 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
1784 * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
1786 * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
1788 * testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc:
1790 * testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc:
1792 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
1794 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
1796 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc:
1798 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
1800 * testsuite/21_strings/basic_string_view/operations/copy/char/2.cc:
1802 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
1804 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc:
1806 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
1808 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
1810 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
1812 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
1814 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
1816 * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
1818 * testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc:
1820 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
1822 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
1824 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
1826 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
1828 * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
1830 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
1832 * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
1834 * testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc:
1836 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
1838 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
1840 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
1842 * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
1844 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
1846 * testsuite/21_strings/basic_string_view/operations/substr/char/83511.cc:
1848 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
1850 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/83511.cc:
1852 * testsuite/21_strings/basic_string_view/operators/char/2.cc:
1854 * testsuite/21_strings/basic_string_view/operators/char/89446.cc:
1856 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
1858 * testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc:
1860 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
1862 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
1864 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
1866 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
1868 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
1870 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
1872 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc:
1874 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
1876 * testsuite/21_strings/basic_string_view/requirements/traits_neg.cc:
1878 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
1880 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
1881 * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
1882 * testsuite/21_strings/char_traits/requirements/char/99181.cc:
1884 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
1886 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
1888 * testsuite/20_util/memory_resource/1.cc: Remove -std=gnu++17
1889 from dg-options directive.
1890 * testsuite/20_util/memory_resource/2.cc: Likewise.
1891 * testsuite/20_util/monotonic_buffer_resource/1.cc: Likewise.
1892 * testsuite/20_util/monotonic_buffer_resource/93208.cc:
1894 * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
1896 * testsuite/20_util/monotonic_buffer_resource/deallocate.cc:
1898 * testsuite/20_util/monotonic_buffer_resource/release.cc:
1900 * testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc:
1902 * testsuite/20_util/polymorphic_allocator/1.cc: Likewise.
1903 * testsuite/20_util/polymorphic_allocator/construct_pair.cc:
1905 * testsuite/20_util/polymorphic_allocator/resource.cc: Likewise.
1906 * testsuite/20_util/polymorphic_allocator/select.cc: Likewise.
1907 * testsuite/20_util/synchronized_pool_resource/allocate.cc:
1909 * testsuite/20_util/synchronized_pool_resource/allocate_single.cc:
1911 * testsuite/20_util/synchronized_pool_resource/cons.cc:
1913 * testsuite/20_util/synchronized_pool_resource/cons_single.cc:
1915 * testsuite/20_util/synchronized_pool_resource/is_equal.cc:
1917 * testsuite/20_util/synchronized_pool_resource/multithreaded.cc:
1919 * testsuite/20_util/synchronized_pool_resource/options.cc:
1921 * testsuite/20_util/synchronized_pool_resource/release.cc:
1923 * testsuite/20_util/synchronized_pool_resource/release_single.cc:
1925 * testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc:
1927 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
1929 * testsuite/20_util/unsynchronized_pool_resource/cons.cc:
1931 * testsuite/20_util/unsynchronized_pool_resource/is_equal.cc:
1933 * testsuite/20_util/unsynchronized_pool_resource/options.cc:
1935 * testsuite/20_util/unsynchronized_pool_resource/release.cc:
1937 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
1939 * testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise.
1940 * testsuite/23_containers/deque/types/pmr_typedefs_debug.cc:
1942 * testsuite/23_containers/forward_list/pmr_typedefs.cc:
1944 * testsuite/23_containers/forward_list/pmr_typedefs_debug.cc:
1946 * testsuite/23_containers/list/pmr_typedefs.cc: Likewise.
1947 * testsuite/23_containers/list/pmr_typedefs_debug.cc: Likewise.
1948 * testsuite/23_containers/map/pmr_typedefs.cc: Likewise.
1949 * testsuite/23_containers/map/pmr_typedefs_debug.cc: Likewise.
1950 * testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise.
1951 * testsuite/23_containers/multimap/pmr_typedefs_debug.cc:
1953 * testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise.
1954 * testsuite/23_containers/multiset/pmr_typedefs_debug.cc:
1956 * testsuite/23_containers/set/pmr_typedefs.cc: Likewise.
1957 * testsuite/23_containers/set/pmr_typedefs_debug.cc: Likewise.
1958 * testsuite/23_containers/unordered_map/pmr_typedefs.cc:
1960 * testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc:
1962 * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc:
1964 * testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc:
1966 * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc:
1968 * testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc:
1970 * testsuite/23_containers/unordered_set/pmr_typedefs.cc:
1972 * testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc:
1974 * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise.
1975 * testsuite/23_containers/vector/types/pmr_typedefs_debug.cc:
1977 * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
1979 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
1981 * testsuite/29_atomics/atomic/69769.cc: Remove -std=gnu++17 from
1983 * testsuite/29_atomics/atomic/is_always_lock_free.cc:
1984 * testsuite/29_atomics/atomic/requirements/typedefs.cc:
1985 * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc:
1986 * testsuite/29_atomics/atomic_integral/requirements/typedefs.cc:
1987 * testsuite/30_threads/lock_guard/cons/deduction.cc: Likewise.
1988 * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
1989 * testsuite/30_threads/scoped_lock/cons/deduction.cc: Likewise.
1990 * testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc:
1992 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc:
1994 * testsuite/30_threads/shared_lock/70766.cc: Likewise.
1995 * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
1996 * testsuite/30_threads/shared_mutex/cons/assign_neg.cc:
1998 * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise.
1999 * testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
2001 * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
2002 * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
2003 * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
2004 * testsuite/30_threads/unique_lock/cons/deduction.cc: Likewise.
2006 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
2008 * testsuite/20_util/any/assign/1.cc: Remove -std=gnu++17 from
2009 dg-options directive.
2010 * testsuite/20_util/any/assign/2.cc: Likewise.
2011 * testsuite/20_util/any/assign/emplace.cc: Likewise.
2012 * testsuite/20_util/any/assign/exception.cc: Likewise.
2013 * testsuite/20_util/any/assign/self.cc: Likewise.
2014 * testsuite/20_util/any/cons/1.cc: Likewise.
2015 * testsuite/20_util/any/cons/2.cc: Likewise.
2016 * testsuite/20_util/any/cons/90415.cc: Likewise.
2017 * testsuite/20_util/any/cons/92156.cc: Likewise.
2018 * testsuite/20_util/any/cons/aligned.cc: Likewise.
2019 * testsuite/20_util/any/cons/explicit.cc: Likewise.
2020 * testsuite/20_util/any/cons/in_place.cc: Likewise.
2021 * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
2022 * testsuite/20_util/any/make_any.cc: Likewise.
2023 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
2024 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
2025 * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
2026 * testsuite/20_util/any/misc/swap.cc: Likewise.
2027 * testsuite/20_util/any/modifiers/1.cc: Likewise.
2028 * testsuite/20_util/any/modifiers/83658.cc: Likewise.
2029 * testsuite/20_util/any/modifiers/92156.cc: Likewise.
2030 * testsuite/20_util/any/observers/type.cc: Likewise.
2031 * testsuite/20_util/any/requirements.cc: Likewise.
2032 * testsuite/20_util/any/typedefs.cc: Likewise.
2033 * testsuite/20_util/optional/77288.cc: Likewise.
2034 * testsuite/20_util/optional/84601.cc: Likewise.
2035 * testsuite/20_util/optional/assignment/1.cc: Likewise.
2036 * testsuite/20_util/optional/assignment/2.cc: Likewise.
2037 * testsuite/20_util/optional/assignment/3.cc: Likewise.
2038 * testsuite/20_util/optional/assignment/4.cc: Likewise.
2039 * testsuite/20_util/optional/assignment/5.cc: Likewise.
2040 * testsuite/20_util/optional/assignment/6.cc: Likewise.
2041 * testsuite/20_util/optional/assignment/7.cc: Likewise.
2042 * testsuite/20_util/optional/assignment/8.cc: Likewise.
2043 * testsuite/20_util/optional/assignment/9.cc: Likewise.
2044 * testsuite/20_util/optional/bad_access.cc: Likewise.
2045 * testsuite/20_util/optional/cons/77727.cc: Likewise.
2046 * testsuite/20_util/optional/cons/85642.cc: Likewise.
2047 * testsuite/20_util/optional/cons/copy.cc: Likewise.
2048 * testsuite/20_util/optional/cons/deduction.cc: Likewise.
2049 * testsuite/20_util/optional/cons/default.cc: Likewise.
2050 * testsuite/20_util/optional/cons/move.cc: Likewise.
2051 * testsuite/20_util/optional/cons/trivial.cc: Likewise.
2052 * testsuite/20_util/optional/cons/value.cc: Likewise.
2053 * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
2054 * testsuite/20_util/optional/constexpr/cons/default.cc:
2056 * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
2057 * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
2058 * testsuite/20_util/optional/constexpr/make_optional.cc:
2060 * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
2061 * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
2062 * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
2063 * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
2064 * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
2065 * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
2066 * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
2067 * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
2068 * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
2069 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2070 * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
2071 * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
2072 * testsuite/20_util/optional/hash.cc: Likewise.
2073 * testsuite/20_util/optional/in_place.cc: Likewise.
2074 * testsuite/20_util/optional/make_optional.cc: Likewise.
2075 * testsuite/20_util/optional/nullopt.cc: Likewise.
2076 * testsuite/20_util/optional/observers/1.cc: Likewise.
2077 * testsuite/20_util/optional/observers/2.cc: Likewise.
2078 * testsuite/20_util/optional/observers/3.cc: Likewise.
2079 * testsuite/20_util/optional/observers/4.cc: Likewise.
2080 * testsuite/20_util/optional/observers/5.cc: Likewise.
2081 * testsuite/20_util/optional/observers/6.cc: Likewise.
2082 * testsuite/20_util/optional/relops/1.cc: Likewise.
2083 * testsuite/20_util/optional/relops/2.cc: Likewise.
2084 * testsuite/20_util/optional/relops/3.cc: Likewise.
2085 * testsuite/20_util/optional/relops/4.cc: Likewise.
2086 * testsuite/20_util/optional/relops/5.cc: Likewise.
2087 * testsuite/20_util/optional/relops/6.cc: Likewise.
2088 * testsuite/20_util/optional/relops/7.cc: Likewise.
2089 * testsuite/20_util/optional/requirements.cc: Likewise.
2090 * testsuite/20_util/optional/swap/1.cc: Likewise.
2091 * testsuite/20_util/optional/swap/2.cc: Likewise.
2092 * testsuite/20_util/optional/typedefs.cc: Likewise.
2093 * testsuite/20_util/variant/80165.cc: Likewise.
2094 * testsuite/20_util/variant/85183.cc: Likewise.
2095 * testsuite/20_util/variant/86874.cc: Likewise.
2096 * testsuite/20_util/variant/87431.cc: Likewise.
2097 * testsuite/20_util/variant/87619.cc: Likewise.
2098 * testsuite/20_util/variant/91807.cc: Likewise.
2099 * testsuite/20_util/variant/any.cc: Likewise.
2100 * testsuite/20_util/variant/compile.cc: Likewise.
2101 * testsuite/20_util/variant/deduction.cc: Likewise.
2102 * testsuite/20_util/variant/exception_safety.cc: Likewise.
2103 * testsuite/20_util/variant/hash.cc: Likewise.
2104 * testsuite/20_util/variant/index_type.cc: Likewise.
2105 * testsuite/20_util/variant/relops/89851.cc: Likewise.
2106 * testsuite/20_util/variant/relops/90008.cc: Likewise.
2107 * testsuite/20_util/variant/run.cc: Likewise.
2108 * testsuite/20_util/variant/visit.cc: Likewise.
2110 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
2112 * testsuite/27_io/basic_filebuf/open/char/path.cc: Remove
2113 -std=gnu++17 from dg-options directive.
2114 * testsuite/27_io/basic_fstream/cons/char/path.cc: Likewise.
2115 * testsuite/27_io/basic_fstream/open/char/path.cc: Likewise.
2116 * testsuite/27_io/basic_ifstream/cons/char/path.cc: Likewise.
2117 * testsuite/27_io/basic_ifstream/open/char/path.cc: Likewise.
2118 * testsuite/27_io/basic_ofstream/cons/char/path.cc: Likewise.
2119 * testsuite/27_io/basic_ofstream/open/char/path.cc: Likewise.
2120 * testsuite/27_io/filesystem/directory_entry/86597.cc: Likewise.
2121 * testsuite/27_io/filesystem/directory_entry/lwg3171.cc:
2123 * testsuite/27_io/filesystem/file_status/1.cc: Likewise.
2124 * testsuite/27_io/filesystem/filesystem_error/cons.cc: Likewise.
2125 * testsuite/27_io/filesystem/filesystem_error/copy.cc: Likewise.
2126 * testsuite/27_io/filesystem/iterators/91067.cc: Likewise.
2127 * testsuite/27_io/filesystem/iterators/caching.cc: Likewise.
2128 * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
2130 * testsuite/27_io/filesystem/iterators/pop.cc: Likewise.
2131 * testsuite/27_io/filesystem/iterators/recursion_pending.cc:
2133 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
2135 * testsuite/27_io/filesystem/operations/absolute.cc: Likewise.
2136 * testsuite/27_io/filesystem/operations/all.cc: Likewise.
2137 * testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
2138 * testsuite/27_io/filesystem/operations/copy.cc: Likewise.
2139 * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
2140 * testsuite/27_io/filesystem/operations/create_directories.cc:
2142 * testsuite/27_io/filesystem/operations/create_directory.cc:
2144 * testsuite/27_io/filesystem/operations/create_symlink.cc:
2146 * testsuite/27_io/filesystem/operations/current_path.cc:
2148 * testsuite/27_io/filesystem/operations/equivalent.cc: Likewise.
2149 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
2150 * testsuite/27_io/filesystem/operations/file_size.cc: Likewise.
2151 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
2152 * testsuite/27_io/filesystem/operations/last_write_time.cc:
2154 * testsuite/27_io/filesystem/operations/permissions.cc:
2156 * testsuite/27_io/filesystem/operations/proximate.cc: Likewise.
2157 * testsuite/27_io/filesystem/operations/read_symlink.cc:
2159 * testsuite/27_io/filesystem/operations/relative.cc: Likewise.
2160 * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
2161 * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
2162 * testsuite/27_io/filesystem/operations/rename.cc: Likewise.
2163 * testsuite/27_io/filesystem/operations/resize_file.cc:
2165 * testsuite/27_io/filesystem/operations/space.cc: Likewise.
2166 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
2167 * testsuite/27_io/filesystem/operations/symlink_status.cc:
2169 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
2171 * testsuite/27_io/filesystem/operations/weakly_canonical.cc:
2173 * testsuite/27_io/filesystem/path/append/path.cc: Likewise.
2174 * testsuite/27_io/filesystem/path/append/source.cc: Likewise.
2175 * testsuite/27_io/filesystem/path/assign/assign.cc: Likewise.
2176 * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
2177 * testsuite/27_io/filesystem/path/compare/compare.cc: Likewise.
2178 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
2179 * testsuite/27_io/filesystem/path/compare/path.cc: Likewise.
2180 * testsuite/27_io/filesystem/path/compare/strings.cc: Likewise.
2181 * testsuite/27_io/filesystem/path/concat/92853.cc: Likewise.
2182 * testsuite/27_io/filesystem/path/concat/94063.cc: Likewise.
2183 * testsuite/27_io/filesystem/path/concat/path.cc: Likewise.
2184 * testsuite/27_io/filesystem/path/concat/strings.cc: Likewise.
2185 * testsuite/27_io/filesystem/path/construct/80762.cc: Likewise.
2186 * testsuite/27_io/filesystem/path/construct/90281.cc: Likewise.
2187 * testsuite/27_io/filesystem/path/construct/90634.cc: Likewise.
2188 * testsuite/27_io/filesystem/path/construct/copy.cc: Likewise.
2189 * testsuite/27_io/filesystem/path/construct/default.cc:
2191 * testsuite/27_io/filesystem/path/construct/format.cc: Likewise.
2192 * testsuite/27_io/filesystem/path/construct/locale.cc: Likewise.
2193 * testsuite/27_io/filesystem/path/construct/range.cc: Likewise.
2194 * testsuite/27_io/filesystem/path/construct/string_view.cc:
2196 * testsuite/27_io/filesystem/path/decompose/extension.cc:
2198 * testsuite/27_io/filesystem/path/decompose/filename.cc:
2200 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
2202 * testsuite/27_io/filesystem/path/decompose/relative_path.cc:
2204 * testsuite/27_io/filesystem/path/decompose/root_directory.cc:
2206 * testsuite/27_io/filesystem/path/decompose/root_name.cc:
2208 * testsuite/27_io/filesystem/path/decompose/root_path.cc:
2210 * testsuite/27_io/filesystem/path/decompose/stem.cc: Likewise.
2211 * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc:
2213 * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise.
2214 * testsuite/27_io/filesystem/path/generation/normal.cc:
2216 * testsuite/27_io/filesystem/path/generation/normal2.cc:
2218 * testsuite/27_io/filesystem/path/generation/proximate.cc:
2220 * testsuite/27_io/filesystem/path/generation/relative.cc:
2222 * testsuite/27_io/filesystem/path/generic/94242.cc: Likewise.
2223 * testsuite/27_io/filesystem/path/generic/generic_string.cc:
2225 * testsuite/27_io/filesystem/path/generic/utf.cc: Likewise.
2226 * testsuite/27_io/filesystem/path/generic/wchar_t.cc: Likewise.
2227 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
2228 * testsuite/27_io/filesystem/path/itr/components.cc: Likewise.
2229 * testsuite/27_io/filesystem/path/itr/traversal.cc: Likewise.
2230 * testsuite/27_io/filesystem/path/modifiers/clear.cc: Likewise.
2231 * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
2233 * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc:
2235 * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
2237 * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
2239 * testsuite/27_io/filesystem/path/modifiers/swap.cc: Likewise.
2240 * testsuite/27_io/filesystem/path/native/alloc.cc: Likewise.
2241 * testsuite/27_io/filesystem/path/native/string-char8_t.cc:
2243 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
2244 * testsuite/27_io/filesystem/path/nonmember/append.cc: Likewise.
2245 * testsuite/27_io/filesystem/path/nonmember/cmp.cc: Likewise.
2246 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
2248 * testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
2249 * testsuite/27_io/filesystem/path/query/empty_neg.cc:
2250 * testsuite/27_io/filesystem/path/query/has_extension.cc:
2252 * testsuite/27_io/filesystem/path/query/has_filename.cc:
2254 * testsuite/27_io/filesystem/path/query/has_parent_path.cc:
2256 * testsuite/27_io/filesystem/path/query/has_relative_path.cc:
2258 * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
2260 * testsuite/27_io/filesystem/path/query/has_root_name.cc:
2262 * testsuite/27_io/filesystem/path/query/has_root_path.cc:
2264 * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
2265 * testsuite/27_io/filesystem/path/query/is_absolute.cc:
2267 * testsuite/27_io/filesystem/path/query/is_relative.cc:
2269 * testsuite/experimental/filesystem/path/construct/string_view.cc:
2272 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
2274 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc:
2275 Remove -std=gnu++17 from dg-options.
2276 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
2278 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc:
2280 * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc:
2282 * testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise.
2283 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
2285 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
2287 * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc:
2289 * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc:
2291 * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
2293 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
2295 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
2297 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
2299 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc:
2301 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc:
2303 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc:
2305 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
2307 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
2309 * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc:
2311 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
2313 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc:
2315 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
2317 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
2319 * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc:
2321 * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc:
2323 * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc:
2325 * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc:
2327 * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc:
2329 * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc:
2331 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
2333 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
2335 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc:
2337 * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc:
2339 * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
2341 * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc:
2343 * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
2345 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc:
2347 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
2349 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
2351 * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
2353 * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: Likewise.
2354 * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc:
2356 * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
2358 * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
2360 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc:
2362 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
2364 * testsuite/25_algorithms/pstl/alg_sorting/set.cc: Likewise.
2365 * testsuite/25_algorithms/pstl/alg_sorting/sort.cc: Likewise.
2366 * testsuite/25_algorithms/pstl/feature_test-2.cc: Likewise.
2367 * testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise.
2368 * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise.
2369 * testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise.
2370 * testsuite/25_algorithms/pstl/feature_test.cc: Likewise.
2371 * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc:
2373 * testsuite/26_numerics/pstl/numeric_ops/reduce.cc: Likewise.
2374 * testsuite/26_numerics/pstl/numeric_ops/scan.cc: Likewise.
2375 * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
2377 * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc:
2380 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
2382 * testsuite/20_util/scoped_allocator/69293_neg.cc: Add dg-error
2383 for additional errors in C++20.
2384 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
2386 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
2387 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
2389 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
2391 * testsuite/20_util/variant/compile.cc: Rename 'any' to avoid
2392 clash with std::any.
2394 2021-05-07 Jonathan Wakely <jwakely@redhat.com>
2396 * include/std/istream (__rvalue_stream_extraction_t): Replace
2397 use of __rval_streamable.
2398 * include/std/ostream (__rvalue_stream_insertion_t): Likewise.
2399 (__rval_streamable): Remove.
2400 (_Require_derived_from_ios_base, __derived_from_ios_base): New
2401 helper for checking constraints.
2402 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Fix
2403 reference to the wrong subclause of the standard.
2404 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
2406 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
2408 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
2410 * testsuite/27_io/basic_ostream/inserters_other/char/99692.cc:
2412 * testsuite/27_io/filesystem/path/io/dr2989.cc: Adjust pruned
2415 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
2417 * include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
2418 Improve static_assert messages.
2419 * testsuite/25_algorithms/copy/58982.cc: Adjust expected output.
2420 * testsuite/25_algorithms/copy_n/58982.cc: Likewise.
2422 2021-05-06 Patrick Palka <ppalka@redhat.com>
2424 * include/std/ranges (filter_view::_Iterator::base): Make the
2425 const& overload unconstrained and return a const reference as
2426 per LWG 3533. Make unconditionally noexcept.
2427 (transform_view::_Iterator::base): Likewise.
2428 (elements_view::_Iterator::base): Likewise.
2430 2021-05-06 Patrick Palka <ppalka@redhat.com>
2432 * include/bits/stl_iterator.h (move_iterator::base): Make the
2433 const& overload unconstrained and return a const reference as
2434 per LWG 3391. Make unconditionally noexcept.
2435 (counted_iterator::base): Likewise.
2436 * testsuite/24_iterators/move_iterator/lwg3391.cc: New test.
2437 * testsuite/24_iterators/move_iterator/move_only.cc: Adjust
2438 has_member_base concept to decay-copy the result of base().
2440 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
2442 * include/std/type_traits (remove_cvref_t): Define in terms of
2444 * testsuite/20_util/remove_cvref/value.cc: Check alias.
2446 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
2449 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
2451 * include/std/charconv (__from_chars_alnum): Pass unsigned
2452 char to std::isdigit.
2454 2021-05-05 Patrick Palka <ppalka@redhat.com>
2456 * include/bits/ranges_util.h (enable_borrowed_range<subrange>):
2457 Remove constraints on this partial specialization.
2458 * include/std/ranges (enable_borrowed_range<iota_view>):
2461 2021-05-05 Patrick Palka <ppalka@redhat.com>
2463 * include/std/ranges (transform_view::_Iterator::iter_swap):
2464 Remove as per LWG 3520.
2465 (join_view::_Iterator::iter_swap): Add indirectly_swappable
2466 constraint as per LWG 3517.
2468 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
2470 * testsuite/20_util/function_objects/invoke/3.cc: Check feature
2472 * testsuite/20_util/function_objects/invoke/version.cc: New test.
2474 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
2476 * include/std/charconv (__from_chars_alnum): Pass unsigned
2477 char to std::isdigit.
2479 2021-05-05 Corentin Gay <gay@adacore.com>
2481 * acinclude.m4: Add VxWorks-specific case for the
2482 configuration of ctypes.
2483 * configure: Regenerate.
2484 * config/locale/vxworks/ctype_members.cc: Add VxWorks-specific
2486 * config/os/vxworks/ctype_base.h: Adjust for VxWorks7+.
2487 * config/os/vxworks/ctype_configure_char.cc: Likewise.
2488 * config/os/vxworks/ctype_inline.h: Likewise.
2489 * testsuite/28_regex/traits/char/isctype.cc: Defines
2490 NEWLINE_IN_CLASS_BLANK if the target is VxWorks.
2491 * testsuite/28_regex/traits/wchar_t/isctype.cc: Likewise.
2493 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
2495 * include/std/future (promise::set_value): Check for existence
2496 of shared state before dereferncing it.
2497 (promise::set_exception, promise::set_value_at_thread_exit)
2498 (promise::set_exception_at_thread_exit): Likewise.
2499 (promise<R&>::set_value, promise<R&>::set_exception)
2500 (promise<R&>::set_value_at_thread_exit)
2501 (promise<R&>::set_exception_at_thread_exit): Likewise.
2502 (promise<void>::set_value, promise<void>::set_exception)
2503 (promise<void>::set_value_at_thread_exit)
2504 (promise<void>::set_exception_at_thread_exit): Likewise.
2505 * testsuite/30_threads/promise/members/at_thread_exit2.cc:
2506 Remove unused variable.
2508 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
2510 * include/bits/basic_string.h (basic_string(const CharT*, const A&)):
2511 Do not do arithmetic on null pointer.
2513 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
2515 * include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
2516 (find_key_pointer(key_const_reference, false_type))
2517 (find_key_pointer(key_const_reference, true_type)): Do not
2518 dereference null pointer.
2520 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
2522 * testsuite/20_util/from_chars/3.cc: Use unsigned type to avoid
2524 * testsuite/24_iterators/reverse_iterator/2.cc: Do not add
2525 non-zero value to null pointer.
2526 * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc:
2527 Use past-the-end iterator for result.
2528 * testsuite/25_algorithms/move_backward/69478.cc: Likewise.
2529 * testsuite/25_algorithms/move_backward/93872.cc: Likewise.
2531 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
2534 * include/std/variant (__get_t): New alias template yielding the
2535 return type of std::get<N> on a variant.
2536 (__visit_result_t): New alias template yielding the result of
2538 (__same_types): Move into namespace __detail::__variant.
2539 (__check_visitor_results): Likewise. Use __invoke_result_t and
2541 (__check_visitor_result): Remove.
2542 (visit): Use __visit_result_t for return type.
2543 * testsuite/20_util/variant/100384.cc: New test.
2545 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
2547 * acinclude.m4 (GLIBCXX_ENABLE_INT128_FLOAT128): Remove
2548 checks for __int128 and rename to GLIBCXX_ENABLE_FLOAT128.
2549 * config.h.in: Regenerate.
2550 * configure: Regenerate.
2551 * configure.ac: Adjust to use GLIBCXX_ENABLE_FLOAT128.
2552 * include/bits/random.h (_Select_uint_least_t<s, 1>):
2553 Use __SIZEOF_INT128__ to decide whether to use __int128.
2554 * include/std/charconv (__to_chars_unsigned_type): Likewise.
2556 2021-05-03 Gerald Pfeifer <gerald@pfeifer.com>
2558 * doc/xml/manual/ctype.xml: Move unix.org reference to https.
2559 * doc/html/manual/facets.html: Regenerate.
2561 2021-04-30 Patrick Palka <ppalka@redhat.com>
2563 * include/std/ranges (__detail::__non_propating_cache): Define
2565 (join_view): Remove constraints on the value and reference types
2566 of the wrapped iterator type as per P2328.
2567 (join_view::_Iterator::_M_satisfy): Adjust as per P2328.
2568 (join_view::_Iterator::operator++): Likewise.
2569 (join_view::_M_inner): Use __non_propating_cache as per P2328.
2570 Remove now-redundant use of __maybe_present_t.
2571 * testsuite/std/ranges/adaptors/join.cc: Include <array>.
2574 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
2576 * include/bits/basic_string.h (__cpp_lib_constexpr_string):
2577 Only define for C++17 and later.
2578 * include/std/version (__cpp_lib_semaphore): Fix condition
2579 to match the one in <semaphore>.
2581 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
2583 * acinclude.m4 (GLIBCXX_CHECK_INT64_T): Delete.
2584 * config.h.in: Regenerate.
2585 * configure: Regenerate.
2586 * configure.ac: Do not use GLIBCXX_CHECK_INT64_T.
2587 * include/bits/postypes.h: Remove include of <stdint.h> and
2588 definition/undefinition of the __STDC_LIMIT_MACROS and
2589 __STDC_CONSTANT_MACROS macros.
2590 (streamoff): Use __INT64_TYPE__ if defined.
2592 2021-04-30 Patrick Palka <ppalka@redhat.com>
2594 * include/std/ranges (split_view::_InnerIter::operator++):
2595 Depend on _Base instead of _Vp directly, as per LWG 3532.
2597 2021-04-30 Patrick Palka <ppalka@redhat.com>
2599 * include/bits/ranges_util.h (subrange::subrange): Avoid
2600 list-initialization in delegating constructor.
2601 * include/std/ranges (single_view): Replace implicit guide
2602 with explicit deduction guide that decays its argument.
2603 (_Single::operator()): Avoid CTAD when constructing the
2605 (_Iota::operator()): Avoid list-initialization.
2606 (__detail::__can_filter_view, _Filter::operator()): Likewise.
2607 (__detail::__can_transform_view, _Transform::operator()): Likewise.
2608 (take_view::begin): Likewise.
2609 (__detail::__can_take_view, _Take::operator()): Likewise.
2610 (__detail::__can_take_while_view, _TakeWhile::operator()): Likewise.
2611 (__detail::__can_drop_view, _Drop::operator()): Likewise.
2612 (__detail::__can_drop_while_view, _DropWhile::operator()): Likewise.
2613 (split_view::split_view): Use views::single when initializing
2615 (__detail::__can_split_view, _Split::operator()): Avoid
2616 list-initialization.
2617 (_Counted::operator()): Likewise.
2618 * testsuite/std/ranges/p2367.cc: New test.
2620 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
2623 * include/bits/basic_ios.tcc (basic_ios::copyfmt): use
2625 * include/bits/basic_string.tcc (basic_string::swap)
2626 (basic_string::assign): Likewise.
2627 * include/bits/deque.tcc (deque::operator=(const deque&)):
2629 * include/bits/stl_tree.h (_Rb_tree::operator=(const * _Rb_tree&)):
2631 * include/bits/vector.tcc (vector::operator=(const vector&)):
2634 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
2636 * include/std/istream (operator>>(Istream&&, x&)): Simplify, as
2638 * include/std/ostream (operator<<(Ostream&&, const x&)):
2640 * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc:
2641 Adjust dg-error pattern.
2642 * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc:
2644 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Define
2645 is_extractable trait to replace std::__is_extractable. Make it
2646 work with rvalue streams as well as lvalues, to replace f() and
2647 g() helper functions.
2648 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
2650 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
2651 Define is_insertable trait to replace std::__is_insertable. Make
2652 it work with rvalue streams as well as lvalues, to replace f()
2653 and g() helper functions.
2654 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
2656 * testsuite/27_io/filesystem/path/io/dr2989.cc: Prune additional
2657 errors from new constraints.
2658 * testsuite/27_io/rvalue_streams-2.cc: Remove PR 80675 checks,
2659 which are no longer expected to compile.
2660 * testsuite/27_io/rvalue_streams.cc: Adjust existing test.
2661 Verify LWG 1203 changes.
2663 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
2666 * include/experimental/socket (__basic_socket_impl::set_option)
2667 (__basic_socket_impl::get_option) [!_GLIBCXX_HAVE_SYS_SOCKET_H]:
2668 Just set error code.
2669 * testsuite/experimental/net/socket/socket_base.cc: CHeck
2670 for <sys/socket.h> not <socket.h>.
2672 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
2677 * testsuite/experimental/net/internet/address/v4/comparisons.cc:
2678 Use new effective-target keyword.
2679 * testsuite/experimental/net/internet/address/v4/cons.cc:
2681 * testsuite/experimental/net/internet/address/v4/creation.cc:
2683 * testsuite/experimental/net/internet/address/v4/members.cc:
2685 * testsuite/experimental/net/internet/address/v6/members.cc:
2687 * testsuite/experimental/net/internet/resolver/base.cc:
2689 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
2691 * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
2693 * testsuite/experimental/net/internet/socket/opt.cc:
2695 * testsuite/experimental/net/internet/tcp.cc:
2697 * testsuite/experimental/net/internet/udp.cc:
2699 * testsuite/lib/libstdc++.exp (check_effective_target_net_ts_ip):
2700 New proc to check net_ts_ip et.
2702 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
2705 * testsuite/20_util/pair/requirements/structural.cc: New test.
2707 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
2709 * include/bits/stl_pair.h (pair) [__cplusplus > 202002]: Add
2710 new definitions for constructors and assignment operators using
2711 concepts for constraints.
2712 * testsuite/20_util/pair/cons/99957.cc: Disable for C++20 and
2714 * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust
2715 expected error messages to also match C++20 errors.
2717 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
2720 * include/bits/stl_pair.h (_PCC::_MoveCopyPair, _PCC::_CopyMovePair):
2721 Combine and replace with ...
2722 (_PCC::_DeprConsPair): New SFINAE helper function.
2723 (pair): Merge preprocessor blocks so that all C++03 members
2724 are defined together at the end.
2725 (pair::pair(const _T1&, _U2&&), pair::pair(_U1&&, const _T2&)):
2726 Replace _T1 and _T2 parameters with __null_ptr_constant and
2728 * testsuite/20_util/pair/40925.cc: Use nullptr instead of 0.
2729 * testsuite/20_util/pair/cons/explicit_construct.cc: Likewise.
2730 * testsuite/20_util/pair/cons/99957.cc: New test.
2732 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
2734 * include/bits/basic_string.h (__cpp_lib_constexpr_string): Define.
2735 * include/std/version (__cpp_lib_constexpr_string): Define.
2736 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
2737 Check for __cpp_lib_constexpr_string.
2738 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
2740 * testsuite/21_strings/char_traits/requirements/version.cc: New test.
2742 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
2744 * doc/Makefile.am (stamp-pdf-doxygen): Improve comment about
2745 dealing with errors. Use '@' to prevent shell command being
2747 * doc/Makefile.in: Regenerate.
2749 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
2752 * include/bits/std_thread.h (thread::hardware_concurrency): Add
2753 missing noexcept to inline definition for non-gthreads targets.
2755 2021-04-28 Patrick Palka <ppalka@redhat.com>
2761 * include/bits/ranges_algo.h (__search_n_fn::operator()): Give
2762 the __value_comp lambda an explicit bool return type.
2763 (__is_permutation_fn::operator()): Give the __proj_scan local
2764 variable auto&& return type. Give the __comp_scan lambda an
2765 explicit bool return type.
2766 (__remove_fn::operator()): Give the __pred lambda an explicit
2768 (__partition_fn::operator()): Don't std::move __first twice
2769 when returning an empty subrange.
2770 (__min_fn::operator()): Don't std::move __comp.
2771 (__max_fn::operator()): Likewise.
2772 (__minmax_fn::operator()): Likewise.
2774 2021-04-27 Patrick Palka <ppalka@redhat.com>
2777 * include/std/ranges (join_view::_Iterator::operator++): Correct
2778 the return type of the lambda to avoid returning a copy of
2779 _M_parent->_M_inner.
2780 * testsuite/std/ranges/adaptors/join.cc (test10): New test.
2782 2021-04-27 Jakub Jelinek <jakub@redhat.com>
2785 2021-04-22 Jakub Jelinek <jakub@redhat.com>
2788 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
2790 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
2793 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
2795 * include/experimental/internet (address_v6::bytes_type): Adjust
2797 (basic_endpoint): Define _M_is_v6() to put all checks for
2798 AF_INET6 in one place.
2799 (basic_endpoint::resize): Simplify.
2800 (operator==(const tcp&, const tcp&)): Add constexpr and noexcept.
2801 (operator!=(const tcp&, const tcp&)): Likewise.
2802 (operator==(const udp&, const udp&)): Likewise.
2803 (operator!=(const udp&, const udp&)): Likewise.
2804 * testsuite/experimental/net/internet/tcp.cc: New test.
2805 * testsuite/experimental/net/internet/udp.cc: New test.
2807 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
2810 * include/experimental/internet (resolver_errc, resolver_category())
2811 (make_error_code, make_error_condition): Define unconditionally,
2812 only make enumerators and use of gai_strerror depend on the
2813 availability of <netdb.h>.
2814 (address_v4::to_string): Use correct constant for string length.
2815 (address_v4::to_string, address_v6::to_string): Define
2816 unconditionally, throw if unsupported.
2817 (make_address_v4, make_address_v6): Define unconditionally.
2818 Return an error if unsupported.
2819 (tcp, udp, v6_only, unicast::hops, multicast::*): Define
2821 * testsuite/experimental/net/internet/socket/opt.cc: Check for
2822 <netinet/in.h> and <netinet/tcp.h> before using types from
2825 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
2828 * include/experimental/internet (resolver_base::flags):
2829 Define overloaded operators as hidden friends.
2830 * include/experimental/socket (socket_base::message_flags):
2833 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
2835 * include/experimental/internet (tcp::no_delay, v6_only)
2836 (unicast::hops, multicast::hops, multicast::enable_loopback):
2837 Change access of base class and static data members. Add
2838 using-declaration for __socket_crtp::operator=(_Tp).
2839 (multicast::__mcastopt): New type.
2840 (multicast::join_group, multicast::leave_group): Derive from
2841 __mcastopt for common implementation.
2842 * include/experimental/socket: Add comment.
2843 * testsuite/experimental/net/internet/socket/opt.cc: New test.
2844 * testsuite/experimental/net/socket/socket_base.cc: Check for
2845 protected constructor/destructor of socket_base. Check for
2846 explicit constructors of socket option classes.
2848 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
2850 * include/experimental/bits/net.h (__socket_base): Add
2851 bool template parameter to allow BooleanSocketOption and
2852 IntegerSocketOption to have different __socket_base<int>
2854 (__socket_base<bool>): Adjust base class.
2855 (__socket_base<int>): Add partial specialization.
2856 (__socket_crtp::operator=(_Tp)): Add noexcept-specifier.
2857 * include/experimental/socket (socket_base::broadcast)
2858 (socket_base::debug, socket_base::do_not_route)
2859 (socket_base::keep_alive, socket_base::linger)
2860 (socket_base::out_of_band_inline)
2861 (socket_base::receive_buffer_size)
2862 (socket_base::receive_low_watermark)
2863 (socket_base::reuse_address, socket_base::send_buffer_size)
2864 (socket_base::send_low_watermark): Add using-declaration for
2865 __socket_crtp::operator=(_Tp).
2866 * testsuite/experimental/net/socket/socket_base.cc: Check
2867 properties of socket option types.
2869 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
2871 * include/experimental/internet (resolver_base::flags): Remove
2872 enumerators. Initialize constants directly with desired values.
2873 Make all operators constexpr and noexcept.
2874 * testsuite/experimental/net/internet/resolver/base.cc: Use
2875 __gnu_test::test_bitmask_values for bitmask type. Check
2876 construction and destruction is protected.
2878 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
2880 * include/bits/semaphore_base.h: Include <exception> and <errno.h>.
2882 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
2885 * include/experimental/internet (net::ip::make_error_code)
2886 (net::ip::make_error_condition, net::ip::make_network_v4)
2887 (net::ip::operator==(const udp&, const udp&)): Add 'inline'.
2889 2021-04-24 David Edelsohn <dje.gcc@gmail.com>
2891 * testsuite/lib/dg-options.exp (atomic_link_flags): New.
2892 (add_options_for_libatomic): Use atomic_link_flags.
2894 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
2897 * include/experimental/io_context (io_context): Define
2898 dummy_pollfd type so that most member functions still compile
2899 without <poll.h> and struct pollfd.
2901 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
2903 * include/experimental/io_context (io_context::async_wait): Add
2905 * include/experimental/socket (basic_socket::async_connect):
2906 Cast wait_type constant to int.
2907 (basic_datagram_socket::async_receive): Likewise.
2908 (basic_datagram_socket::async_receive_from): Likewise.
2909 (basic_datagram_socket::async_send): Likewise.
2910 (basic_datagram_socket::async_send_to): Likewise.
2911 (basic_stream_socket::async_receive): Likewise.
2912 (basic_stream_socket::async_send): Likewise. Use io_context
2913 parameter directly, instead of via an executor.
2914 (basic_socket_acceptor::async_accept): Likewise.
2916 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
2918 * include/experimental/socket (socket_base::shutdown_type):
2919 (socket_base::wait_type, socket_base::message_flags):
2920 Remove enumerators. Initialize constants directly with desired
2922 (socket_base::message_flags): Make all operators constexpr and
2924 * testsuite/util/testsuite_common_types.h (test_bitmask_values):
2926 * testsuite/experimental/net/socket/socket_base.cc: New test.
2928 2021-04-22 David Edelsohn <dje.gcc@gmail.com>
2930 * config/os/aix/atomicity.h: Delete.
2932 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
2934 * include/bits/atomic_timed_wait.h (__cond_wait_until_impl):
2935 Handle system_clock as well as steady_clock.
2936 * testsuite/30_threads/semaphore/try_acquire_for.cc: Re-enable.
2937 * testsuite/30_threads/semaphore/try_acquire_until.cc:
2940 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
2942 * testsuite/30_threads/semaphore/try_acquire_posix.cc: Add
2943 options for libatomic.
2945 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
2947 * config/os/gnu-linux/os_defines.h: Fix type in comment.
2949 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
2952 * include/bits/shared_ptr.h (allocate_shared): Assert that _Tp
2953 is not an array type.
2954 * include/bits/shared_ptr_base.h (__allocate_shared): Likewise.
2955 * testsuite/20_util/shared_ptr/creation/99006.cc: New test.
2957 2021-04-22 Thomas Rodgers <rodgert@twrodgers.com>
2959 * include/bits/atomic_wait.h: Always notify waiters in the
2960 case of 'bare' address notification.
2962 2021-04-22 Jakub Jelinek <jakub@redhat.com>
2965 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
2967 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
2970 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
2973 * include/bits/semaphore_base.h: Remove #error.
2974 * include/std/semaphore: Do not define anything unless one of
2975 the implementations is available.
2977 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
2979 * include/bits/semaphore_base.h: Always reload __old in
2980 __atomic_semaphore::_S_do_try_acquire().
2981 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
2984 2021-04-21 Philippe Blain <levraiphilippeblain@gmail.com>
2985 Jonathan Wakely <jwakely@redhat.com>
2988 * python/Makefile.am: Install libstdc++*-gdb.py more robustly.
2989 * python/Makefile.in: Regenerate.
2991 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
2993 * include/bits/semaphore_base.h: Add missing _M_try_acquire()
2994 member to __platform_wait.
2996 2021-04-21 Jonathan Wakely <jwakely@redhat.com>
2998 * include/std/latch: Replace tab characters in license text.
2999 * include/std/semaphore: Likewise.
3001 2021-04-21 Jakub Jelinek <jakub@redhat.com>
3004 * acinclude.m4: For POSIX semaphores AC_DEFINE HAVE_POSIX_SEMAPHORE
3005 rather than _GLIBCXX_HAVE_POSIX_SEMAPHORE.
3006 * configure: Regenerated.
3007 * config.h.in: Regenerated.
3009 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
3011 * testsuite/30_threads/semaphore/try_acquire_for.cc: Disable
3012 test for targets not using futexes for semaphores.
3013 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
3014 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
3015 Disable for all targets.
3017 2021-04-20 Thomas Rodgers <trodgers@redhat.com>
3019 * include/Makefile.am: Add new <bits/this_thread_sleep.h> header.
3020 * include/Makefile.in: Regenerate.
3021 * include/bits/this_thread_sleep.h: New file.
3022 * include/bits/atomic_base.h: Adjust all calls
3023 to __atomic_wait/__atomic_notify for new call signatures.
3024 * include/bits/atomic_timed_wait.h: Extensive rewrite.
3025 * include/bits/atomic_wait.h: Likewise.
3026 * include/bits/semaphore_base.h: Adjust all calls
3027 to __atomic_wait/__atomic_notify for new call signatures.
3028 * include/std/atomic: Likewise.
3029 * include/std/barrier: Likewise.
3030 * include/std/latch: Likewise.
3031 * include/std/semaphore: Likewise.
3032 * include/std/thread (this_thread::sleep_for)
3033 (this_thread::sleep_until): Move to new header.
3034 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Simplify
3036 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
3037 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
3038 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
3039 * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
3040 * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
3041 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Likewise.
3043 2021-04-20 Patrick Palka <ppalka@redhat.com>
3046 * include/bits/stl_iterator.h (__detail::__move_iter_cat):
3048 (move_iterator): Derive from the above in C++20 in order to
3049 conditionally define iterator_category as per P2259.
3050 (move_iterator::__base_cat): No longer used, so remove.
3051 (move_iterator::iterator_category): Remove in C++20.
3052 (__detail::__common_iter_use_postfix_proxy): Define.
3053 (common_iterator::_Proxy): Rename to ...
3054 (common_iterator:__arrow_proxy): ... this.
3055 (common_iterator::__postfix_proxy): Define as per P2259.
3056 (common_iterator::operator->): Adjust.
3057 (common_iterator::operator++): Adjust as per P2259.
3058 (iterator_traits<common_iterator>::_S_iter_cat): Define.
3059 (iterator_traits<common_iterator>::iterator_category): Change as
3061 (__detail::__counted_iter_value_type): Define.
3062 (__detail::__counted_iter_concept): Define.
3063 (__detail::__counted_iter_cat): Define.
3064 (counted_iterator): Derive from the above three classes in order
3065 to conditionally define value_type, iterator_concept and
3066 iterator category respectively as per P2259.
3067 (counted_iterator::operator->): Define as per P2259.
3068 (incrementable_traits<counted_iterator>): Remove as per P2259.
3069 (iterator_traits<counted_iterator>): Adjust as per P2259.
3070 * include/std/ranges (__detail::__iota_view_iter_cat): Define.
3071 (iota_view::_Iterator): Derive from the above in order to
3072 conditionally define iterator_category as per P2259.
3073 (iota_view::_S_iter_cat): Rename to ...
3074 (iota_view::_S_iter_concept): ... this.
3075 (iota_view::iterator_concept): Use it to apply LWG 3291 changes.
3076 (iota_view::iterator_category): Remove.
3077 (__detail::__filter_view_iter_cat): Define.
3078 (filter_view::_Iterator): Derive from the above in order to
3079 conditionally define iterator_category as per P2259.
3080 (filter_view::_Iterator): Move to struct __filter_view_iter_cat.
3081 (filter_view::_Iterator::iterator_category): Remove.
3082 (transform_view::_Base): Define.
3083 (transform_view::__iter_cat): Define.
3084 (transform_view::_Iterator): Derive from the above in order to
3085 conditionally define iterator_category as per P2259.
3086 (transform_view::_Iterator::_Base): Just alias
3087 transform_view::_Base.
3088 (transform_view::_Iterator::_S_iter_cat): Move to struct
3089 transform_view::__iter_cat.
3090 (transform_view::_Iterator::iterator_category): Remove.
3091 (transform_view::_Sentinel::_Base): Just alias
3092 transform_view::_Base.
3093 (join_view::_Base): Define.
3094 (join_view::_Outer_iter): Define.
3095 (join_view::_Inner_iter): Define.
3096 (join_view::_S_ref_is_glvalue): Define.
3097 (join_view::__iter_cat): Define.
3098 (join_view::_Iterator): Derive from it in order to conditionally
3099 define iterator_category as per P2259.
3100 (join_view::_Iterator::_Base): Just alias join_view::_Base.
3101 (join_view::_Iterator::_S_ref_is_glvalue): Just alias
3102 join_view::_S_ref_is_glvalue.
3103 (join_view::_Iterator::_S_iter_cat): Move to struct
3104 transform_view::__iter_cat.
3105 (join_view::_Iterator::_Outer_iter): Just alias
3106 join_view::_Outer_iter.
3107 (join_view::_Iterator::_Inner_iter): Just alias
3108 join_view::_Inner_iter.
3109 (join_view::_Iterator::iterator_category): Remove.
3110 (join_view::_Sentinel::_Base): Just alias join_view::_Base.
3111 (__detail::__split_view_outer_iter_cat): Define.
3112 (__detail::__split_view_inner_iter_cat): Define.
3113 (split_view::_Base): Define.
3114 (split_view::_Outer_iter): Derive from __split_view_outer_iter_cat
3115 in order to conditionally define iterator_category as per P2259.
3116 (split_view::_Outer_iter::iterator_category): Remove.
3117 (split_view::_Inner_iter): Derive from __split_view_inner_iter_cat
3118 in order to conditionally define iterator_category as per P2259.
3119 (split_view::_Inner_iter::_S_iter_cat): Move to
3120 __split_view_inner_iter_cat.
3121 (split_view::_Inner_iter::iterator_category): Remove.
3122 (elements_view::_Base): Define.
3123 (elements_view::__iter_cat): Define.
3124 (elements_view::_Iterator): Derive from the above in order to
3125 conditionall define iterator_category as per P2259.
3126 (elements_view::_Iterator::_Base): Just alias
3127 elements_view::_Base.
3128 (elements_view::_Iterator::_S_iter_concept)
3129 (elements_view::_Iterator::iterator_concept): Define as per
3131 (elements_view::_Iterator::iterator_category): Remove.
3132 (elements_view::_Sentinel::_Base): Just alias
3133 elements_view::_Base.
3134 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
3135 Adjust constraints on iterator_traits<counted_iterator>.
3136 * testsuite/std/ranges/p2259.cc: New test.
3138 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
3141 * include/std/charconv (__cpp_lib_to_chars): Define
3143 * include/std/version (__cpp_lib_to_chars): Likewise..
3144 * testsuite/20_util/from_chars/4.cc: Only check feature test
3145 macro, not _GLIBCXX_HAVE_USELOCALE.
3146 * testsuite/20_util/from_chars/5.cc: Likewise.
3147 * testsuite/20_util/from_chars/6.cc: Likewise.
3148 * testsuite/20_util/to_chars/long_double.cc: Likewise.
3150 2021-04-20 Jakub Jelinek <jakub@redhat.com>
3152 * testsuite/util/testsuite_abi.cc (compare_symbols): If any symbol
3153 versions with _IEEE128_ substring are found, set ieee_version_found
3154 to true. Ignore missing symbols with _IEEE128_ in version name if
3155 !ieee_version_found. Use i->first as version_name instead of
3156 i->second.version_name if the latter is empty.
3157 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
3159 2021-04-19 H.J. Lu <hjl.tools@gmail.com>
3161 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
3164 2021-04-17 Jakub Jelinek <jakub@redhat.com>
3166 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
3167 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
3169 2021-04-17 Jakub Jelinek <jakub@redhat.com>
3171 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
3172 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
3173 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
3174 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
3175 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
3176 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
3178 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
3180 * testsuite/lib/dg-options.exp (add_options_for_libatomic): Also
3181 add libatomic options for 32-bit sparc*-*-linux-gnu.
3183 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
3186 * libsupc++/Makefile.am: Add atomicity.cc here.
3187 * src/c++98/Makefile.am: Remove it from here.
3188 * libsupc++/Makefile.in: Regenerate.
3189 * src/c++98/Makefile.in: Regenerate.
3190 * testsuite/18_support/exception_ptr/96657.cc: New test.
3192 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
3195 * include/std/bit: Only include <ext/numeric_traits.h> for
3196 hosted build, use <limits> otherwise.
3198 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
3200 * doc/xml/manual/backwards_compatibility.xml: Remove porting
3201 notes for libg++ and libstdc++-v2, and bibliography.
3202 * doc/html/*: Regenerated.
3204 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
3207 * include/bits/ranges_util.h (__detail::__iterator_sentinel_pair):
3208 Remove helper concept.
3209 (subrange(_Pr), subrange(Pr, __make_unsigned_like<...>)): Remove
3210 deduction guides, as per LWG 3404.
3211 * testsuite/std/ranges/subrange/lwg3282_neg.cc: Check that class
3212 template argument deduction fails.
3214 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
3216 * testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc:
3217 Adjust expected error for C++20 mode.
3218 * testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc:
3221 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
3224 * testsuite/17_intro/headers/c++1998/49745.cc: Include all
3225 standard headers and XFAIL for effective-target c++20.
3227 2021-04-09 François Dumont <fdumont@gcc.gnu.org>
3230 * include/debug/helper_functions.h (__can_advance(_InputIterator,
3231 const std::pair<_Diff, _Distance_precision>&, int)): New.
3232 (__can_advance(const _Safe_iterator<>&,
3233 const std::pair<_Diff, _Distance_precision>&, int)): New.
3234 * include/debug/macros.h (__glibcxx_check_can_increment_dist): New,
3236 (__glibcxx_check_can_increment_range): Adapt to use latter.
3237 (__glibcxx_check_can_decrement_range): Likewise.
3238 * include/debug/safe_iterator.h
3239 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
3241 (__can_advance(const _Safe_iterator<>&,
3242 const std::pair<_Diff, _Distance_precision>&, int)): New.
3243 * include/debug/safe_iterator.tcc
3244 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
3246 (_Safe_iterator<>::_M_valid_range(const _Safe_iterator<>&,
3247 std::pair<difference_type, _Distance_precision>&, bool)): Adapt for
3249 (__copy_move_a): Adapt to use __glibcxx_check_can_increment_dist.
3250 (__copy_move_backward_a): Likewise.
3251 (__equal_aux): Likewise.
3252 * include/debug/stl_iterator.h (__can_advance(const std::reverse_iterator<>&,
3253 const std::pair<_Diff, _Distance_precision>&, int)): New.
3254 (__can_advance(const std::move_iterator<>&,
3255 const std::pair<_Diff, _Distance_precision>&, int)): New.
3256 * testsuite/25_algorithms/copy/debug/99402.cc: New test.
3258 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
3261 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()): Fix
3262 to be a valid constexpr function in C++11.
3263 * testsuite/23_containers/unordered_set/cons/99985.cc: New test.
3265 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
3267 * include/bits/fs_fwd.h: Fix doxygen group command.
3268 * include/bits/streambuf_iterator.h: Likewise.
3269 * include/bits/uses_allocator_args.h: Likewise.
3270 * include/std/memory: Likewise.
3271 * include/tr1/complex: Likewise.
3273 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
3275 * include/bits/basic_string.h: Tweak doxygen comment.
3277 2021-04-08 Patrick Palka <ppalka@redhat.com>
3279 * include/std/ranges (__detail::find): Define.
3280 (split_view::_OuterIter::operator++): Apply proposed resolution
3282 * testsuite/std/ranges/adaptors/split.cc (test10): New test.
3284 2021-04-08 Patrick Palka <ppalka@redhat.com>
3286 * include/std/ranges (__detail::find_if): Simplify.
3287 (__detail::find_if_not): Likewise.
3288 (__detail::min): Remove.
3289 (__detail::mismatch): Simplify.
3290 (take_view::size): Use std::min instead of __detail::min.
3292 2021-04-08 Patrick Palka <ppalka@redhat.com>
3294 * include/std/ranges (__detail::__returnable_element): New
3296 (elements_view): Use this concept in its constraints. Add
3297 missing private access specifier.
3298 (elements_view::_S_get_element): Define as per LWG 3502.
3299 (elements_view::operator*, elements_view::operator[]): Use
3301 (elements_view::operator++): Remove unnecessary constraint
3303 * testsuite/std/ranges/adaptors/elements.cc (test05): New test.
3305 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
3307 * doc/Makefile.am (stamp-pdf-doxygen): Also grep for
3308 out-of-memory error in log file.
3309 * doc/Makefile.in: Regenerate.
3311 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
3313 * configure: Regenerate.
3315 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
3317 * include/bits/random.h: Fix doxygen group commands.
3318 * include/bits/regex_constants.h: Likewise.
3319 * include/tr1/random.h: Likewise.
3321 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
3323 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()):
3324 New function to determine noexcept-specifier for move
3326 (_Hashtable): Use _S_nothrow_move() on move constructors.
3327 * testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc:
3328 Correct static assertion message.
3329 * testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc:
3331 * testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc:
3333 * testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc:
3336 2021-04-08 Patrick Palka <ppalka@redhat.com>
3339 * testsuite/20_util/to_chars/long_double.cc: Don't run the test
3340 on targets without a large long double. XFAIL the execution on
3341 targets with a non-conforming printf.
3343 2021-04-08 Patrick Palka <ppalka@redhat.com>
3346 * include/std/ranges (__adaptor::__maybe_refwrap): Remove.
3347 (__adaptor::__adaptor_invocable): New concept.
3348 (__adaptor::__adaptor_partial_app_viable): New concept.
3349 (__adaptor::_RangeAdaptorClosure): Rewrite, turning it into a
3350 non-template base class.
3351 (__adaptor::_RangeAdaptor): Rewrite, turning it into a CRTP base
3353 (__adaptor::_Partial): New class template that represents
3354 partial application of a range adaptor non-closure.
3355 (__adaptor::__pipe_invocable): New concept.
3356 (__adaptor::_Pipe): New class template.
3357 (__detail::__can_ref_view): New concept.
3358 (__detail::__can_subrange): New concept.
3359 (all): Replace the lambda here with ...
3360 (_All): ... this functor. Add appropriate constraints.
3361 (__detail::__can_filter_view): New concept.
3362 (filter, _Filter): As in all/_All.
3363 (__detail::__can_transform): New concept.
3364 (transform, _Transform): As in all/_All.
3365 (__detail::__can_take_view): New concept.
3366 (take, _Take): As in all/_All.
3367 (__detail::__can_take_while_view): New concept.
3368 (take_while, _TakeWhile): As in all/_All.
3369 (__detail::__can_drop_view): New concept.
3370 (drop, _Drop): As in all/_All.
3371 (__detail::__can_drop_while_view): New concept.
3372 (drop_while, _DropWhile): As in all/_All.
3373 (__detail::__can_join_view): New concept.
3374 (join, _Join): As in all/_All.
3375 (__detail::__can_split_view): New concept.
3376 (split, _Split): As in all/_All. Rename template parameter
3378 (__detail::__already_common): New concept.
3379 (__detail::__can_common_view): New concept.
3380 (common, _Common): As in all/_All.
3381 (__detail::__can_reverse_view): New concept.
3382 (reverse, _Reverse): As in all/_All.
3383 (__detail::__can_elements_view): New concept.
3384 (elements, _Elements): As in all/_All.
3385 (keys, values): Adjust.
3386 * testsuite/std/ranges/adaptors/99433.cc: New test.
3387 * testsuite/std/ranges/adaptors/all.cc: No longer expect that
3388 adding empty range adaptor closure objects to a pipeline doesn't
3389 increase the size of the pipeline.
3391 * testsuite/std/ranges/adaptors/common.cc (test03): New test.
3392 * testsuite/std/ranges/adaptors/drop.cc (test09): New test.
3393 * testsuite/std/ranges/adaptors/drop_while.cc (test04): New test.
3394 * testsuite/std/ranges/adaptors/elements.cc (test04): New test.
3395 * testsuite/std/ranges/adaptors/filter.cc (test06): New test.
3396 * testsuite/std/ranges/adaptors/join.cc (test09): New test.
3397 * testsuite/std/ranges/adaptors/p2281.cc: New test.
3398 * testsuite/std/ranges/adaptors/reverse.cc (test07): New test.
3399 * testsuite/std/ranges/adaptors/split.cc (test01, test04):
3402 * testsuite/std/ranges/adaptors/split_neg.cc (test01): Adjust
3403 expected error message.
3404 (test02): Likewise. Extend test.
3405 * testsuite/std/ranges/adaptors/take.cc (test06): New test.
3406 * testsuite/std/ranges/adaptors/take_while.cc (test05): New test.
3407 * testsuite/std/ranges/adaptors/transform.cc (test07, test08):
3410 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
3412 * include/std/string_view: Adjust Doxygen @file comment.
3414 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
3416 * include/std/type_traits (is_scoped_enum<T>): Constrain partial
3417 specialization to not match incomplete enum types. Use a
3418 requires-expression instead of instantiating is_convertible.
3419 (is_scoped_enum<const T>): Add as workaround for PR c++/99968.
3420 * testsuite/20_util/is_scoped_enum/value.cc: Check with
3421 incomplete types and opaque-enum-declarations.
3423 2021-04-07 Jonathan Wakely <jwakely@redhat.com>
3426 * src/c++17/fs_path.cc (path::_M_split_cmpts): Do not call
3427 non-const member on _M_pathname, to avoid copy-on-write.
3428 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
3429 Check construction from strings that might be shared.
3431 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
3433 * include/bits/move.h (forward, move, move_if_noexcept)
3434 (addressof): Add _GLIBCXX_NODISCARD.
3435 * include/bits/ranges_cmp.h (identity::operator()): Add
3436 nodiscard attribute.
3437 * include/c_global/cstddef (to_integer): Likewise.
3438 * include/std/bit (bit_cast): Likewise.
3439 * include/std/utility (as_const, to_underlying): Likewise.
3441 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
3443 * include/bits/move.h (forward): Change static_assert message
3444 to be unambiguous about what must be true.
3445 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
3446 * testsuite/20_util/forward/f_neg.cc: Likewise.
3448 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
3450 * include/bits/alloc_traits.h: Use markdown for code font.
3451 * include/bits/basic_string.h: Fix @param names.
3452 * include/bits/max_size_type.h: Remove period after @file.
3453 * include/bits/regex.h: Fix duplicate @retval names, and rename.
3454 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp: Add
3455 group open to match existing group close.
3456 * include/ext/pb_ds/priority_queue.hpp: Add blank line before group
3459 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
3461 * include/bits/atomic_base.h: Fix doxygen group close.
3462 * include/bits/basic_ios.h: Likewise.
3463 * include/bits/forward_list.h: Likewise.
3464 * include/bits/fs_dir.h: Likewise.
3465 * include/bits/fs_ops.h: Likewise.
3466 * include/bits/fs_path.h: Likewise.
3467 * include/bits/functional_hash.h: Likewise.
3468 * include/bits/gslice.h: Likewise.
3469 * include/bits/gslice_array.h: Likewise.
3470 * include/bits/hashtable_policy.h: Likewise.
3471 * include/bits/indirect_array.h: Likewise.
3472 * include/bits/locale_classes.h: Likewise.
3473 * include/bits/locale_facets.h: Likewise.
3474 * include/bits/locale_facets_nonio.h: Likewise.
3475 * include/bits/mask_array.h: Likewise.
3476 * include/bits/refwrap.h: Likewise.
3477 * include/bits/regex.h: Likewise.
3478 * include/bits/regex_automaton.h: Likewise.
3479 * include/bits/regex_compiler.h: Likewise.
3480 * include/bits/regex_constants.h: Likewise.
3481 * include/bits/regex_error.h: Likewise.
3482 * include/bits/regex_executor.h: Likewise.
3483 * include/bits/regex_scanner.h: Likewise.
3484 * include/bits/shared_ptr.h: Likewise.
3485 * include/bits/shared_ptr_atomic.h: Likewise.
3486 * include/bits/shared_ptr_base.h: Likewise.
3487 * include/bits/slice_array.h: Likewise.
3488 * include/bits/specfun.h: Likewise.
3489 * include/bits/std_function.h: Likewise.
3490 * include/bits/std_mutex.h: Likewise.
3491 * include/bits/stl_deque.h: Likewise.
3492 * include/bits/stl_iterator.h: Likewise.
3493 * include/bits/stl_iterator_base_types.h: Likewise.
3494 * include/bits/stl_map.h: Likewise.
3495 * include/bits/stl_multimap.h: Likewise.
3496 * include/bits/stl_multiset.h: Likewise.
3497 * include/bits/stl_numeric.h: Likewise.
3498 * include/bits/stl_pair.h: Likewise.
3499 * include/bits/stl_set.h: Likewise.
3500 * include/bits/stl_uninitialized.h: Likewise.
3501 * include/bits/stream_iterator.h: Likewise.
3502 * include/bits/streambuf_iterator.h: Likewise.
3503 * include/bits/unique_ptr.h: Likewise.
3504 * include/bits/unordered_map.h: Likewise.
3505 * include/bits/unordered_set.h: Likewise.
3506 * include/decimal/decimal: Likewise.
3507 * include/experimental/any: Likewise.
3508 * include/experimental/array: Likewise.
3509 * include/experimental/bits/fs_dir.h: Likewise.
3510 * include/experimental/bits/fs_fwd.h: Likewise.
3511 * include/experimental/bits/fs_ops.h: Likewise.
3512 * include/experimental/bits/fs_path.h: Likewise.
3513 * include/experimental/buffer: Likewise.
3514 * include/experimental/internet: Likewise.
3515 * include/experimental/optional: Likewise.
3516 * include/experimental/propagate_const: Likewise.
3517 * include/experimental/socket: Likewise.
3518 * include/ext/pb_ds/assoc_container.hpp: Likewise.
3519 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp:
3521 * include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp: Likewise.
3522 * include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp: Likewise.
3523 * include/ext/pb_ds/detail/types_traits.hpp: Likewise.
3524 * include/ext/pb_ds/exception.hpp: Likewise.
3525 * include/ext/pb_ds/priority_queue.hpp: Likewise.
3526 * include/ext/pb_ds/tag_and_trait.hpp: Likewise.
3527 * include/ext/random: Likewise.
3528 * include/std/any: Likewise.
3529 * include/std/atomic: Likewise.
3530 * include/std/bitset: Likewise.
3531 * include/std/chrono: Likewise.
3532 * include/std/complex: Likewise.
3533 * include/std/condition_variable: Likewise.
3534 * include/std/fstream: Likewise.
3535 * include/std/future: Likewise.
3536 * include/std/iostream: Likewise.
3537 * include/std/istream: Likewise.
3538 * include/std/mutex: Likewise.
3539 * include/std/numeric: Likewise.
3540 * include/std/ostream: Likewise.
3541 * include/std/ratio: Likewise.
3542 * include/std/shared_mutex: Likewise.
3543 * include/std/stdexcept: Likewise.
3544 * include/std/streambuf: Likewise.
3545 * include/std/system_error: Likewise.
3546 * include/std/thread: Likewise.
3547 * include/std/valarray: Likewise.
3548 * include/std/variant: Likewise.
3549 * include/tr1/cmath: Likewise.
3550 * include/tr1/regex: Likewise.
3551 * include/tr2/dynamic_bitset: Likewise.
3552 * libsupc++/atomic_lockfree_defines.h: Likewise.
3553 * libsupc++/exception: Likewise.
3554 * libsupc++/exception.h: Likewise.
3555 * libsupc++/exception_ptr.h: Likewise.
3556 * libsupc++/nested_exception.h: Likewise.
3558 2021-03-31 Alexandre Oliva <oliva@adacore.com>
3560 * testsuite/30_threads/future/members/poll.cc: Use faster
3561 after-ready call in the calibration loop.
3563 2021-03-29 Jonathan Wakely <jwakely@redhat.com>
3565 * doc/xml/manual/status_cxx2017.xml: Adjust link for PSTL.
3566 * doc/html/manual/status.html: Regenerate.
3568 2021-03-28 François Dumont <fdumont@gcc.gnu.org>
3570 * include/debug/forward_list
3571 (forward_list(forward_list&&, const allocator_type&)): Add noexcept qualification.
3572 * include/debug/list (list(list&&, const allocator_type&)): Likewise and add
3573 call to safe container allocator aware move constructor.
3574 * include/debug/vector (vector(vector&&, const allocator_type&)):
3575 Fix noexcept qualification.
3576 * testsuite/23_containers/forward_list/cons/noexcept_move_construct.cc:
3577 Add allocator-extended move constructor noexceot qualification check.
3578 * testsuite/23_containers/list/cons/noexcept_move_construct.cc: Likewise.
3580 2021-03-26 Jonathan Wakely <jwakely@redhat.com>
3582 * src/c++11/random.cc (USE_LCG): Define when a pseudo-random
3584 [USE_LCG] (bad_seed, construct_lcg_at, destroy_lcg_at, __lcg):
3585 New helper functions and callback.
3586 (random_device::_M_init): Add 'prng' and 'all' enumerators.
3587 Replace switch with fallthrough with a series of 'if' statements.
3588 [USE_LCG]: Construct an lcg_type engine and use __lcg when cpuid
3590 (random_device::_M_init_pretr1) [USE_MT19937]: Accept "prng"
3592 (random_device::_M_getval): Check for callback unconditionally
3593 and always pass _M_file pointer.
3594 * testsuite/26_numerics/random/random_device/85494.cc: Remove
3595 effective-target check. Use new random_device_available helper.
3596 * testsuite/26_numerics/random/random_device/94087.cc: Likewise.
3597 * testsuite/26_numerics/random/random_device/cons/default-cow.cc:
3598 Remove effective-target check.
3599 * testsuite/26_numerics/random/random_device/cons/default.cc:
3601 * testsuite/26_numerics/random/random_device/cons/token.cc: Use
3602 new random_device_available helper. Test "prng" token.
3603 * testsuite/util/testsuite_random.h (random_device_available):
3604 New helper function.
3606 2021-03-25 François Dumont <fdumont@gcc.gnu.org>
3608 * include/debug/string
3609 (basic_string(const basic_string&, const _Alloc&)): Define even if !_GLIBCXX_USE_CXX11_ABI.
3610 (basic_string(basic_string&&, const _Alloc&)): Likewise and add noexcept qualification.
3611 (basic_string<>::erase): Adapt to take __const_iterator.
3612 (basic_string(const _CharT*, const _Allocator&)): Remove assign call.
3613 (basic_string<>::insert(const_iterator, _InputIte, _InputIte)): Try to
3614 remove iterator debug layer even if !_GLIBCXX_USE_CXX11_ABI.
3615 [_GLIBCXX_USE_CHAR8_T] (__gnu_debug::u8string): New.
3616 (__gnu_debug::u16string, __gnu_debug::u32string): New.
3617 (std::hash<__gnu_debug::basic_string<>>): New partial specialization.
3618 (std::__is_fast_hash<__gnu_debug::basic_string<>>): Likewise.
3619 * testsuite/util/exception/safety.h
3620 (erase_base<__gnu_debug::basic_string<>>): New partial specialization.
3621 (insert_base<__gnu_debug::basic_string<>>): Likewise.
3622 * testsuite/util/testsuite_container_traits.h (traits<__gnu_debug::basic_string<>>):
3623 New partial specialization.
3624 * testsuite/21_strings/basic_string/hash/debug.cc: New test.
3625 * testsuite/21_strings/basic_string/requirements/citerators.cc:
3626 Add test on __gnu_debug::string.
3627 * testsuite/21_strings/basic_string/requirements/dr438/constructor.cc: Likewise.
3628 * testsuite/21_strings/basic_string/requirements/exception/basic.cc: Likewise.
3629 * testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc:
3631 * testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc:
3633 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
3635 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
3637 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
3639 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
3641 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
3643 * testsuite/21_strings/basic_string/requirements/typedefs.cc: Likewise.
3645 2021-03-25 Jakub Jelinek <jakub@redhat.com>
3648 * testsuite/18_support/source_location/consteval.cc (main): Adjust
3649 expected column numbers.
3650 * testsuite/18_support/source_location/1.cc (main): Likewise.
3652 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
3654 * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare malloc.
3656 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
3658 * testsuite/util/exception/safety.h (setup_base::generate):
3659 Support seeding random engine.
3660 (erase_point, erase_range): Adjust range of random numbers to
3661 ensure dereferenceable iterators are used where required.
3662 (generation_prohibited::run): Do not try to erase from empty
3664 * testsuite/util/testsuite_containergen.h (test_containers):
3665 Support seeding random engine.
3667 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
3669 * testsuite/std/ranges/adaptors/reverse.cc: Replace duplicated
3670 line with a check that uses the const being/end overloads.
3672 2021-03-23 Moritz Sichert <sichert@in.tum.de>
3674 * include/std/ranges (reverse_view::begin, reverse_view::end):
3675 Qualify make_reverse_iterator calls to avoid ADL.
3676 * testsuite/std/ranges/adaptors/reverse.cc: Test that
3677 views::reverse works when make_reverse_iterator is defined
3678 in an associated namespace.
3680 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
3682 * include/bits/c++config (_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT):
3683 Do not define when compiling with Clang.
3685 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
3687 * include/std/string_view (basic_string_view(Range&&)): Define new
3688 constructor and deduction guide.
3689 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: New test.
3690 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: New test.
3692 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
3694 * include/bits/range_access.h (begin(T (&)[N]), end(T (&)[N])):
3695 Add missing 'noexcept' as per LWG 2280.
3696 (rbegin(T (&)[N]), rend(T (&)[N]), rbegin(initializer_list<T>))
3697 (rend(initializer_list<T>)): Add 'noexcept' as per LWG 3537.
3698 * testsuite/24_iterators/range_access/range_access.cc: Check for
3699 expected noexcept specifiers. Check result types of generic
3700 std::begin and std::end overloads.
3701 * testsuite/24_iterators/range_access/range_access_cpp14.cc:
3702 Check for expected noexcept specifiers.
3703 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
3706 2021-03-19 Jonathan Wakely <jwakely@redhat.com>
3708 * include/std/type_traits (is_scoped_enum): Define.
3709 * include/std/version (__cpp_lib_is_scoped_enum): Define.
3710 * testsuite/20_util/is_scoped_enum/value.cc: New test.
3711 * testsuite/20_util/is_scoped_enum/version.cc: New test.
3713 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
3716 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Remove
3717 std::once_flag symbols.
3718 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Likewise.
3719 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
3720 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
3722 * config/abi/pre/gnu.ver: Likewise.
3723 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
3724 (struct __once_flag_compat): Remove.
3725 (_ZNSt9once_flag11_M_activateEv): Remove.
3726 (_ZNSt9once_flag9_M_finishEb): Remove.
3728 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
3731 * include/std/mutex [_GLIBCXX_HAVE_LINUX_FUTEX] (once_flag):
3732 Revert to pthread_once_t implementation.
3733 [_GLIBCXX_HAVE_LINUX_FUTEX] (call_once): Likewise.
3734 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
3735 (struct __once_flag_compat): New type matching the reverted
3736 implementation of once_flag using futexes.
3737 (once_flag::_M_activate): Remove, replace with ...
3738 (_ZNSt9once_flag11_M_activateEv): ... alias symbol.
3739 (once_flag::_M_finish): Remove, replace with ...
3740 (_ZNSt9once_flag9_M_finishEb): ... alias symbol.
3741 * testsuite/30_threads/call_once/66146.cc: Removed.
3743 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
3745 * testsuite/17_intro/names.cc: Exclude j from the list
3746 of test symbols for Darwin.
3748 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
3750 * config/os/bsd/darwin/ppc-extra.ver: Add matching for
3751 to_chars and from_chars for long double.
3753 2021-03-15 Patrick Palka <ppalka@redhat.com>
3755 * include/bits/max_size_type.h (__max_size_type::operator _Tp):
3757 (__max_size_type::operator++): Define.
3758 (__max_size_type::operator--): Likewise.
3759 (__max_size_type::operator<=>): Conditionally define (in place
3760 of the other comparison operators).
3761 (__max_diff_type::operator _Tp): Fix formatting.
3762 (__max_diff_type::operator++): Define.
3763 (__max_diff_type::operator--): Likewise.
3764 (__max_diff_type::operator<=>): Conditionally define (in place
3765 of the other comparison operators).
3766 * testsuite/std/ranges/iota/max_size_type.cc (test01): Test
3767 these operator overloads.
3769 2021-03-15 Caroline Tice <cmtice@google.com>
3772 * src/Makefile.am (AM_CXXFLAGS_PRE, AM_CXXFLAGS): Add
3773 AM_CXXFLAGS_PRE with the old definition of AM_CXXFLAGS; make
3774 AM_CXXFLAGS to be AM_CXXFLAGS_PRE with '-fvtable-verify=std'
3776 * src/Makefile.in: Regenerate.
3778 2021-03-11 Patrick Palka <ppalka@redhat.com>
3780 * src/c++17/floating_to_chars.cc: Simplify the file as if
3781 __SIZEOF_INT128__ is always defined.
3782 [!defined __SIZEOF_INT128__]: Include "uint128_t.h". Define
3783 a base-10 to_chars overload for the uint128_t class type.
3784 * src/c++17/uint128_t.h: New file.
3785 * testsuite/20_util/to_chars/long_double.cc: No longer expect an
3786 execution FAIL on targets that have a large long double type
3789 2021-03-11 Patrick Palka <ppalka@redhat.com>
3791 * src/c++17/ryu/LOCAL_PATCHES: Update.
3792 * src/c++17/ryu/d2s_intrinsics.h: Don't define uint128_t.
3793 * src/c++17/ryu/generic_128.h: Likewise.
3794 * src/c++17/ryu/ryu_generic_128.h (struct floating_decimal_128):
3795 Use uint128_t instead of __uint128_t.
3796 (generic_binary_to_decimal): Likewise.
3798 2021-03-11 Patrick Palka <ppalka@redhat.com>
3800 * src/c++17/ryu/LOCAL_PATCHES: New file.
3802 2021-03-11 Patrick Palka <ppalka@redhat.com>
3804 * src/c++17/floating_to_chars.cc (uint128_t): New conditionally
3805 defined alias of unsigned __int128.
3806 (floating_type_traits_binary128::mantissa_t): Use uint128_t
3807 instead of unsigned __int128.
3808 (floating_type_traits<long double>::mantissa_t)
3809 [LONG_DOUBLE_KIND == LDK_IBM128]: Likewise.
3810 (get_ieee_repr): Likewise. Make casts from uint_t to mantissa_t
3811 and uint32_t explicit. Simplify the extraction of mantissa,
3812 exponent and sign bit.
3814 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
3816 * include/std/barrier (barrier::arrival_token): New move-only
3817 class that encapsulates the underlying token value.
3819 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
3821 * python/libstdcxx/v6/printers.py (find_type): Use tag attribute
3822 instead of unqualified() method.
3824 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
3827 * include/std/stop_token (_Stop_state_t::_M_release_ownership):
3828 Use acq_rel memory ordering.
3830 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
3833 * src/c++17/fs_dir.cc (recursive_directory_iterator): Use new
3834 helper function to check for permission denied errors.
3835 * src/filesystem/dir.cc (recursive_directory_iterator):
3837 * src/filesystem/dir-common.h (is_permission_denied_error): New
3840 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
3843 * include/bits/random.h (normal_distribution): Use
3844 default-initializer for _M_saved and _M_saved_available.
3846 2021-03-10 John David Anglin <danglin@gcc.gnu.org>
3848 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Add options to
3849 link with libatomic.
3850 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
3851 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
3852 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
3853 * testsuite/30_threads/barrier/arrive.cc: Likewise.
3854 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
3855 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
3856 * testsuite/30_threads/barrier/completion.cc: Likewise.
3857 * testsuite/30_threads/latch/3.cc: Likewise.
3858 * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
3859 * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
3860 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
3862 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
3865 * include/bits/align.h: Include debug/assertions.h.
3866 * include/bits/codecvt.h: Include bits/c++config.h.
3867 * include/bits/enable_special_members.h: Likewise.
3868 * include/bits/erase_if.h: Likewise.
3869 * include/bits/functional_hash.h: Include <type_traits>.
3870 * include/bits/invoke.h: Include bits/move.h.
3871 * include/bits/ostream_insert.h: Include bits/exception_defines.h.
3872 * include/bits/parse_numbers.h: Include <type_traits>.
3873 * include/bits/predefined_ops.h: Include bits/c++config.h.
3874 * include/bits/range_access.h: Include bits/stl_iterator.h.
3875 * include/bits/stl_bvector.h: Do not include bits/stl_vector.h.
3876 * include/bits/stl_iterator.h: Include bits/stl_iterator_base_types.h.
3877 * include/bits/stl_uninitialized.h: Include bits/stl_algobase.h.
3878 * include/bits/uniform_int_dist.h: Include bits/concept_check.h.
3879 * include/bits/unique_lock.h: Include bits/std_mutex.h.
3880 * include/debug/assertions.h: Include bits/c++config.h.
3882 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
3884 * include/bits/ranges_cmp.h (__eq_builtin_ptr_cmp): Remove.
3885 (ranges::equal_to, ranges::not_equal_to): Do not constrain
3886 with __eq_builtin_ptr_cmp.
3887 (ranges::less, ranges::greater, ranges::less_equal)
3888 (ranges::greater_equal): Do not constrain with
3889 __less_builtin_ptr_cmp.
3890 * libsupc++/compare (compare_three_way): Do not constrain with
3891 __3way_builtin_ptr_cmp.
3892 * testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc: Moved to...
3893 * testsuite/18_support/comparisons/object/lwg3530.cc: ...here.
3894 * testsuite/20_util/function_objects/range.cmp/lwg3530.cc: New test.
3896 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
3898 * testsuite/std/time/syn_c++20.cc: Enable synopsis checks for
3899 C++20 calendar types.
3901 2021-03-06 Jakub Jelinek <jakub@redhat.com>
3904 * include/std/bit (__rotl, __rotr): Add optimized variants for power of
3905 two _Nd which the compiler can pattern match the rotates.
3907 2021-03-04 Jonathan Wakely <jwakely@redhat.com>
3910 * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
3911 Make storage larger than required. Verify no write to the last
3913 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
3916 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3918 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
3919 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
3921 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
3922 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
3925 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3927 * include/experimental/bits/simd.h: Replace reserved _X, _B by
3929 * include/experimental/bits/simd_builtin.h: Likewise.
3930 * include/experimental/bits/simd_x86.h: Likewise.
3932 2021-02-27 Jonathan Wakely <jwakely@redhat.com>
3935 * include/std/chrono (year_month_day::_M_days_since_epoch()):
3936 Convert chrono::month and chrono::day to unsigned before
3937 converting to uint32_t.
3939 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
3941 * include/std/chrono (year_month_day::_S_from_days): Perform
3942 all calculations with type uint32_t.
3944 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
3946 * doc/xml/manual/abi.xml: Document versioning for GCC 11.
3947 * doc/html/manual/abi.html: Regenerate.
3949 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
3952 * testsuite/27_io/headers/cstdio/types_std.cc: Use pointer to
3953 FILE instead of FILE.
3955 2021-02-25 Andreas Schwab <schwab@suse.de>
3957 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
3958 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
3959 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
3960 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
3962 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
3965 * include/std/chrono (year_month_day::_S_from_days): Cast long
3968 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
3970 * include/std/utility (to_underlying): Define.
3971 * include/std/version (__cpp_lib_to_underlying): Define.
3972 * testsuite/20_util/to_underlying/1.cc: New test.
3973 * testsuite/20_util/to_underlying/version.cc: New test.
3975 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
3978 * src/c++17/floating_to_chars.cc (sprintf_ld): Add extra args
3979 before value to be printed.
3981 2021-02-24 Patrick Palka <ppalka@redhat.com>
3983 * src/c++17/floating_to_chars.cc (__floating_to_chars_precision):
3984 Relax the condition that guards the printf code path to accept
3985 F128_type as well as long double.
3987 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
3989 * include/std/chrono (year_month_day_last:day): New
3992 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
3994 * include/std/chrono (year::is_leap): New implementation.
3995 * testsuite/std/time/year/2.cc: New test.
3997 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
3999 * include/std/chrono (year_month_day::_M_days_since_epoch):
4001 * testsuite/std/time/year_month_day/4.cc: New test.
4003 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
4005 * include/std/chrono (year_month_day::_S_from_days): New
4007 * testsuite/std/time/year_month_day/3.cc: New test.
4009 2021-02-24 Patrick Palka <ppalka@redhat.com>
4012 * testsuite/20_util/to_chars/long_double.cc: Include <optional>.
4013 (test01): Simplify verifying the nearby values by using a
4014 2-iteration loop and a dedicated output buffer to check that the
4015 nearby values are different. Factor out the printf-based
4016 verification into a local function, and check that the leading
4017 hex digits agree before comparing to the output of printf. Also
4018 verify the output by round-tripping it through from_chars.
4020 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
4023 * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Do not match to_chars
4024 symbols for long double arguments mangled as 'g'.
4025 * config/os/gnu-linux/ldbl-extra.ver: Likewise.
4026 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Likewise.
4027 * src/c++17/Makefile.am [GLIBCXX_LDBL_ALT128_COMPAT_TRUE]:
4028 Use -mabi=ibmlongdouble for floating_to_chars.cc.
4029 * src/c++17/Makefile.in: Regenerate.
4030 * src/c++17/floating_to_chars.cc (floating_type_traits_binary128):
4031 New type defining type traits of IEEE binary128 format.
4032 (floating_type_traits<__float128>): Define specialization.
4033 (floating_type_traits<long double>): Define in terms of
4034 floating_type_traits_binary128 when appropriate.
4035 (floating_to_shortest_scientific): Handle __float128.
4036 (sprintf_ld): New function template for printing a long double
4037 or __ieee128 value using sprintf.
4038 (__floating_to_chars_shortest, __floating_to_chars_precision):
4040 (to_chars): Define overloads for __float128.
4042 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
4044 * testsuite/17_intro/names.cc: Undefine 'u' on powerpc*-linux*.
4046 2021-02-23 Martin Sebor <msebor@redhat.com>
4049 * libsupc++/dyncast.cc (__dynamic_cast): Return null when
4050 first argument is null.
4052 2021-02-23 Jakub Jelinek <jakub@redhat.com>
4055 * testsuite/21_strings/char_traits/requirements/char/99181.cc: New
4058 2021-02-23 Jakub Jelinek <jakub@redhat.com>
4061 * include/bits/char_traits.h (char_traits<char>::compare): For
4062 constexpr evaluation don't call
4063 __gnu_cxx::char_traits<char_type>::compare but do the comparison loop
4066 2021-02-23 Jakub Jelinek <jakub@redhat.com>
4069 * include/pstl/parallel_backend_serial.h: Remove __pstl::__par_backend.
4071 2021-02-23 Patrick Palka <ppalka@redhat.com>
4074 * src/c++17/floating_to_chars.cc (get_ieee_repr): Extract
4075 the high- and low-order parts from an IBM long double value
4076 in an endian-agnostic way.
4078 2021-02-19 Jonathan Wakely <jwakely@redhat.com>
4080 * include/bits/atomic_wait.h (__thread_relax()): Call
4081 __thread_yield() not __gthread_yield().
4083 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
4085 * include/bits/atomic_wait.h (__thread_yield()): Check
4086 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
4087 (__thread_relax()): Use __thread_yield() instead of repeating
4088 the preprocessor checks for __gthread_yield.
4090 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
4092 * include/std/mutex (once_flag::_M_activate()): Add explicit
4093 return statement for passive case.
4094 (once_flag::_M_finish(bool)): Use reserved name for parameter.
4096 2021-02-14 Jonathan Wakely <jwakely@redhat.com>
4099 * testsuite/util/testsuite_fs.h: Always include <unistd.h>.
4101 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
4104 * src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround.
4106 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
4108 * doc/xml/manual/status_cxx2014.xml: Document implementation
4109 specific properties of std::experimental::filesystem::rename.
4110 * doc/xml/manual/status_cxx2017.xml: Document implementation
4111 specific properties of std::filesystem::rename.
4112 * doc/html/*: Regenerate.
4113 * src/c++17/fs_ops.cc (fs::rename): Implement correct behaviour
4114 for directories on Windows.
4115 * src/filesystem/ops-common.h (__gnu_posix::rename): Use
4116 MoveFileExW on Windows.
4117 * testsuite/27_io/filesystem/operations/rename.cc: New test.
4118 * testsuite/experimental/filesystem/operations/rename.cc: New test.
4120 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
4122 * testsuite/util/testsuite_fs.h (nonexistent_path): Add
4123 random number to the path.
4125 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
4127 * include/experimental/internet (address_v6::to_string): Include
4129 * testsuite/experimental/net/internet/address/v6/members.cc:
4130 Test to_string() results.
4132 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
4134 * include/experimental/internet (address_v6::any): Avoid using
4135 memcpy in constexpr function.
4136 (address_v6::loopback): Likewise.
4137 (make_address_v6): Fix missing return statements on error paths.
4138 * include/experimental/io_context: Avoid -Wdangling-else
4140 * testsuite/experimental/net/internet/address/v4/members.cc:
4141 Remove unused variables.
4142 * testsuite/experimental/net/internet/address/v6/members.cc:
4145 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
4147 * include/bits/shared_ptr_base.h (__shared_ptr::_M_get_deleter):
4148 Add unused attribute to parameter.
4149 * src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq):
4152 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
4154 * testsuite/27_io/basic_ostream/emit/1.cc: Expect test to fail
4155 if -fno-rtti is used.
4156 * testsuite/30_threads/async/forced_unwind.cc: Expect test
4157 to abort if -fno-rtti is used.
4159 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
4161 * testsuite/util/testsuite_allocator.h (memory_resource):
4162 Remove requirement for RTTI and exceptions to be enabled.
4164 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
4166 * testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Use
4167 static_cast when RTTI is disabled.
4168 * testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc:
4170 * testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc:
4172 * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc:
4174 * testsuite/27_io/basic_stringstream/str/char/2.cc:
4176 * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc:
4179 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
4181 * include/std/ostream (__syncbuf_base::_S_get): Mark parameter
4182 as unused and only use dynamic_cast when RTTI is enabled.
4184 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
4187 * src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)):
4188 Change int parameter to error_code, to match std::ios_failure.
4189 (__throw_ios_failure(const char*, int)): Construct error_code
4192 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
4194 * libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define
4196 * libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new
4197 macro instead of _GLIBCXX_EH_PTR_COMPAT.
4198 (operator==): Likewise.
4200 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
4203 * doc/xml/manual/status_cxx2011.xml: Document when support
4205 * doc/xml/manual/status_cxx2014.xml: Likewise.
4206 * doc/xml/manual/status_cxx2017.xml: Likewise.
4207 * doc/html/manual/status.html: Regenerate.
4209 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
4212 * src/c++17/fs_ops.cc (fs::status): Re-enable workaround.
4214 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
4216 * src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent)
4217 (fs::remove): Use std::system_category() for error codes from
4219 * src/filesystem/ops.cc (fs::create_hard_link, fs::remove):
4222 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
4224 * testsuite/27_io/filesystem/operations/proximate.cc: Fix typo
4225 in __MINGW32__ macro name.
4226 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
4227 * testsuite/27_io/filesystem/path/generation/proximate.cc:
4229 * testsuite/27_io/filesystem/path/generation/relative.cc:
4231 * testsuite/util/testsuite_fs.h: Likewise.
4233 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
4235 * include/bits/stl_tree.h
4236 (__has_is_transparent, __has_is_transparent_t): Move...
4237 * include/bits/stl_function.h: ...here.
4238 * include/bits/hashtable_policy.h (_Hash_code_base<>::_M_hash_code_tr): New..
4239 (_Hashtable_base<>::_M_equals_tr): New.
4240 * include/bits/hashtable.h (_Hashtable<>::_M_find_tr, _Hashtable<>::_M_count_tr,
4241 _Hashtable<>::_M_equal_range_tr): New member function templates to perform
4242 heterogeneous lookup.
4243 (_Hashtable<>::_M_find_before_node_tr): New.
4244 (_Hashtable<>::_M_find_node_tr): New.
4245 * include/bits/unordered_map.h (unordered_map::find<>, unordered_map::count<>,
4246 unordered_map::contains<>, unordered_map::equal_range<>): New member function
4247 templates to perform heterogeneous lookup.
4248 (unordered_multimap::find<>, unordered_multimap::count<>,
4249 unordered_multimap::contains<>, unordered_multimap::equal_range<>): Likewise.
4250 * include/bits/unordered_set.h (unordered_set::find<>, unordered_set::count<>,
4251 unordered_set::contains<>, unordered_set::equal_range<>): Likewise.
4252 (unordered_multiset::find<>, unordered_multiset::count<>,
4253 unordered_multiset::contains<>, unordered_multiset::equal_range<>): Likewise.
4254 * include/debug/unordered_map
4255 (unordered_map::find<>, unordered_map::equal_range<>): Likewise.
4256 (unordered_multimap::find<>, unordered_multimap::equal_range<>): Likewise.
4257 * include/debug/unordered_set
4258 (unordered_set::find<>, unordered_set::equal_range<>): Likewise.
4259 (unordered_multiset::find<>, unordered_multiset::equal_range<>): Likewise.
4260 * testsuite/23_containers/unordered_map/operations/1.cc: New test.
4261 * testsuite/23_containers/unordered_multimap/operations/1.cc: New test.
4262 * testsuite/23_containers/unordered_multiset/operations/1.cc: New test.
4263 * testsuite/23_containers/unordered_set/operations/1.cc: New test.
4265 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
4267 * include/bits/stl_deque.h
4268 (std::operator-(deque::iterator, deque::iterator)): Replace if/then with
4269 a null pointer test.
4271 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
4273 * testsuite/27_io/filesystem/operations/remove_all.cc: Remove
4274 test directory after making it writable again.
4275 * testsuite/experimental/filesystem/operations/remove_all.cc:
4278 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
4281 * include/std/coroutine (coroutine_handle<P>::from_address): Add
4284 2021-02-09 Vladimir Vishnevsky <vv.os.swe@gmail.com>
4286 * include/ext/stdio_sync_filebuf.h: Remove unused <unistd.h>.
4287 * src/c++17/fs_ops.cc (fs::permissions): Qualify mode_t.
4289 2021-02-09 Jakub Jelinek <jakub@redhat.com>
4292 * include/bits/basic_string.tcc (basic_string::_M_replace): When __s
4293 points to the characters moved by earlier _S_move, compute the source
4294 address using expression based on the __p pointer rather than __s
4297 2021-02-03 Jonathan Wakely <jwakely@redhat.com>
4299 * testsuite/19_diagnostics/error_code/operators/not_equal.cc:
4300 Add comparison with same category and different values.
4301 * testsuite/19_diagnostics/error_code/operators/less.cc:
4302 Likewise. Fix comparison involving different categories.
4303 * testsuite/19_diagnostics/error_code/operators/three_way.cc:
4305 * testsuite/19_diagnostics/error_condition/operators/less.cc:
4307 * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
4310 2021-02-03 yaozhongxiao <yaozhongxiao@linux.alibaba.com>
4312 * include/experimental/bits/simd_neon.h: Replace repeated vpadd
4313 calls with a single vaddv for aarch64.
4315 2021-02-03 Matthias Kretz <kretz@kde.org>
4317 * testsuite/Makefile.am: Warn about the workaround. Add
4318 -fno-tree-vrp to CXXFLAGS passed to the check_simd script.
4319 Improve initial user feedback from make check-simd.
4320 * testsuite/Makefile.in: Regenerated.
4322 2021-02-03 Matthias Kretz <kretz@kde.org>
4324 * include/experimental/bits/simd.h: Add __detail::_Minimum and
4325 __detail::_Maximum to use them as _BinaryOperation to _S_reduce.
4326 Add hmin and hmax overloads for simd and const_where_expression.
4327 * include/experimental/bits/simd_scalar.h
4328 (_SimdImplScalar::_S_reduce): Make unused _BinaryOperation
4329 parameter const-ref to allow calling _S_reduce with an rvalue.
4330 * testsuite/experimental/simd/tests/reductions.cc: Add tests for
4331 hmin and hmax. Since the compiler statically determined that all
4332 tests pass, repeat the test after a call to make_value_unknown.
4334 2021-02-03 Matthias Kretz <kretz@kde.org>
4336 * testsuite/experimental/simd/tests/bits/verify.h (verify): Add
4337 instruction pointer data member. Ensure that the `if (m_failed)`
4338 branch is always inlined into the calling code. The body of the
4339 conditional can still be a function call. Move the get_ip call
4340 into the verify ctor to simplify the ctor calls.
4341 (COMPARE): Don't mention the use of all_of for reduction of a
4342 simd_mask. It only distracts from the real issue.
4344 2021-02-03 Matthias Kretz <kretz@kde.org>
4346 * testsuite/experimental/simd/driver.sh: Abstract reading test
4347 options into read_src_option function. Read skip, only,
4348 expensive, and xfail via read_src_option. Add timeout and
4349 timeout-factor options and adjust timeout variable accordingly.
4350 * testsuite/experimental/simd/tests/loadstore.cc: Set
4353 2021-02-03 Matthias Kretz <kretz@kde.org>
4355 * testsuite/experimental/simd/driver.sh: When handling the pipe
4356 to log (and on verbose to stdout) count the lines. If it exceeds
4357 1000 log the issue and exit 125, which is then handled as a
4360 2021-02-03 Matthias Kretz <kretz@kde.org>
4362 * testsuite/experimental/simd/tests/hypot3_fma.cc: Add skip:
4363 markup for long double on powerpc64*.
4365 2021-02-03 Matthias Kretz <kretz@kde.org>
4367 * include/experimental/bits/simd.h: Add __have_power10vec
4368 conditional on _ARCH_PWR10.
4369 * include/experimental/bits/simd_builtin.h: Forward declare
4370 _MaskImplPpc and use it as _MaskImpl when __ALTIVEC__ is
4372 (_MaskImplBuiltin::_S_some_of): Call _S_popcount from the
4373 _SuperImpl for optimizations and correctness.
4374 * include/experimental/bits/simd_ppc.h: Add _MaskImplPpc.
4375 (_MaskImplPpc::_S_popcount): Implement via vec_cntm for POWER10.
4376 Otherwise, for >=int use -vec_sums divided by a sizeof factor.
4377 For <int use -vec_sums(vec_sum4s(...)) to sum all mask entries.
4379 2021-02-03 Matthias Kretz <kretz@kde.org>
4381 * testsuite/experimental/simd/driver.sh: Remove executable on
4382 SIGINT. Process compiler and test executable output: In verbose
4383 mode print messages immediately, limited to 1000 lines and
4384 breaking long lines to below $COLUMNS (or 1024 if not set).
4385 Communicating the exit status of the compiler / test with the
4386 necessary pipe is done via a message through stdout/-in.
4388 2021-02-03 Matthias Kretz <kretz@kde.org>
4390 * testsuite/Makefile.am: Ensure .simd.summary is empty before
4391 collecting a new summary.
4392 * testsuite/Makefile.in: Regenerate.
4394 2021-02-03 Matthias Kretz <kretz@kde.org>
4396 * testsuite/experimental/simd/generate_makefile.sh: Use
4397 different variables internally than documented for user
4398 overrides. This makes internal append/prepend work as intended.
4400 2021-02-03 Matthias Kretz <kretz@kde.org>
4402 * testsuite/experimental/simd/driver.sh (verify_test): Print
4403 test output on run xfail. Do not repeat lines from the log that
4404 were already printed on stdout.
4405 (test_selector): Make the compiler flags pattern usable as a
4407 (toplevel): Trap on SIGINT and remove the log and sum files.
4408 Call timout with --foreground to quickly terminate on SIGINT.
4409 * testsuite/experimental/simd/generate_makefile.sh: Simplify run
4410 targets via target patterns. Default DRIVEROPTS to -v for run
4411 targets. Remove log and sum files after completion of the run
4412 target (so that it's always recompiled).
4413 Place help text into text file for reasonable 'make help'
4416 2021-02-03 Matthias Kretz <kretz@kde.org>
4418 * include/experimental/bits/simd.h: Remove unnecessary static
4419 assertion. Allow sizeof(8) integer __intrinsic_type to enable
4420 the necessary mask type.
4422 2021-02-03 Matthias Kretz <kretz@kde.org>
4424 * include/experimental/bits/simd.h: Let __intrinsic_type<long
4425 double, N> be valid if sizeof(long double) == sizeof(double) and
4426 use a __vector double as member type.
4428 2021-02-03 Matthias Kretz <kretz@kde.org>
4430 * include/experimental/bits/simd.h (__is_intrinsic_type): New
4431 internal type trait. Alias for __is_vector_type on x86.
4432 (_VectorTraitsImpl): Enable for __intrinsic_type in addition for
4434 (__intrin_bitcast): Allow casting to & from vector & intrinsic
4436 (__intrinsic_type): Explicitly specialize for NEON intrinsic
4439 2021-02-03 Matthias Kretz <kretz@kde.org>
4441 * testsuite/experimental/simd/driver.sh: Implement skip, only,
4442 expensive, and xfail markers. They can select on type, ABI tag
4443 subset number, target-triplet, and compiler flags.
4444 * testsuite/experimental/simd/generate_makefile.sh: The summary
4445 now includes lines for unexpected passes and expected failures.
4446 If the skip or only markers are only conditional on the type, do
4447 not generate rules for those types.
4448 * testsuite/experimental/simd/tests/abs.cc: Mark test expensive
4449 for ABI tag subsets 1-9.
4450 * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
4451 * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
4452 * testsuite/experimental/simd/tests/casts.cc: Ditto.
4453 * testsuite/experimental/simd/tests/generator.cc: Ditto.
4454 * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
4455 * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
4456 * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
4457 * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
4458 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
4459 * testsuite/experimental/simd/tests/mask_loadstore.cc: Ditto.
4460 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
4461 * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
4462 * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
4463 * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
4464 * testsuite/experimental/simd/tests/operators.cc: Ditto.
4465 * testsuite/experimental/simd/tests/reductions.cc: Ditto.
4466 * testsuite/experimental/simd/tests/simd.cc: Ditto.
4467 * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
4468 * testsuite/experimental/simd/tests/splits.cc: Ditto.
4469 * testsuite/experimental/simd/tests/where.cc: Ditto.
4470 * testsuite/experimental/simd/tests/fpclassify.cc: Ditto. In
4471 addition replace "test only floattypes" marker by unconditional
4472 "float|double|ldouble" only marker.
4473 * testsuite/experimental/simd/tests/frexp.cc: Ditto.
4474 * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
4475 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
4477 * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
4478 * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
4479 * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
4480 * testsuite/experimental/simd/tests/remqo.cc: Ditto.
4481 * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
4482 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
4483 * testsuite/experimental/simd/tests/sincos.cc: Ditto. In
4484 addition, xfail on run because the reference data is missing.
4486 2021-02-02 Jonathan Wakely <jwakely@redhat.com>
4488 * doc/xml/manual/status_cxx2011.xml: Remove stray table cell.
4489 * doc/xml/manual/status_cxx2014.xml: Likewise.
4490 * doc/xml/manual/status_cxx2017.xml: Likewise.
4491 * doc/html/manual/status.html: Regenerate.
4493 2021-02-01 François Dumont <fdumont@gcc.gnu.org>
4496 * include/bits/stl_deque.h (std::deque<>::operator-(iterator, iterator)):
4497 Return 0 if both iterators are value-initialized.
4498 * testsuite/23_containers/deque/70303.cc: New test.
4499 * testsuite/23_containers/vector/70303.cc: New test.
4501 2021-02-01 Jonathan Wakely <jwakely@redhat.com>
4503 * doc/xml/manual/status_cxx2011.xml: Update std::call_once
4505 * doc/xml/manual/status_cxx2014.xml: Likewise.
4506 * doc/xml/manual/status_cxx2017.xml: Likewise. Update
4507 std::from_chars and std::to_chars status. Fix formatting.
4508 * doc/html/manual/status.html: Regenerate.
4510 2021-01-28 Jonathan Wakely <jwakely@redhat.com>
4512 * include/experimental/bits/numeric_traits.h: Update copyright
4514 * include/experimental/bits/simd.h: Likewise.
4515 * include/experimental/bits/simd_builtin.h: Likewise.
4516 * include/experimental/bits/simd_converter.h: Likewise.
4517 * include/experimental/bits/simd_detail.h: Likewise.
4518 * include/experimental/bits/simd_fixed_size.h: Likewise.
4519 * include/experimental/bits/simd_math.h: Likewise.
4520 * include/experimental/bits/simd_neon.h: Likewise.
4521 * include/experimental/bits/simd_ppc.h: Likewise.
4522 * include/experimental/bits/simd_scalar.h: Likewise.
4523 * include/experimental/bits/simd_x86.h: Likewise.
4524 * include/experimental/bits/simd_x86_conversions.h: Likewise.
4525 * include/experimental/simd: Likewise.
4526 * testsuite/experimental/simd/*: Likewise.
4528 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
4530 * doc/xml/manual/status_cxx2017.xml: Replace invalid entity.
4531 * doc/html/*: Regenerate.
4533 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
4535 * testsuite/experimental/simd/generate_makefile.sh: Use printf
4536 instead of echo when printing escape characters.
4538 2021-01-27 Matthias Kretz <kretz@kde.org>
4540 * scripts/check_simd: New file. This script is called from the
4541 the check-simd target. It determines a set of compiler flags and
4542 simulator setups for calling generate_makefile.sh and passes the
4543 information back to the check-simd target, which recurses to the
4544 generated Makefiles.
4545 * scripts/create_testsuite_files: Remove files below simd/tests/
4546 from testsuite_files and place them in testsuite_files_simd.
4547 * testsuite/Makefile.am: Add testsuite_files_simd. Add
4549 * testsuite/Makefile.in: Regenerate.
4550 * testsuite/experimental/simd/driver.sh: New file. This script
4551 compiles and runs a given simd test, logging its output and
4552 status. It uses the timeout command to implement compile and
4554 * testsuite/experimental/simd/generate_makefile.sh: New file.
4555 This script generates a Makefile which uses driver.sh to compile
4556 and run the tests and collect the logs into a single log file.
4557 * testsuite/experimental/simd/tests/abs.cc: New file. Tests
4559 * testsuite/experimental/simd/tests/algorithms.cc: New file.
4560 Tests min/max(simd, simd).
4561 * testsuite/experimental/simd/tests/bits/conversions.h: New
4562 file. Contains functions to support tests involving conversions.
4563 * testsuite/experimental/simd/tests/bits/make_vec.h: New file.
4564 Support functions make_mask and make_vec.
4565 * testsuite/experimental/simd/tests/bits/mathreference.h: New
4566 file. Support functions to supply precomputed math function
4568 * testsuite/experimental/simd/tests/bits/metahelpers.h: New
4569 file. Support code for SFINAE testing.
4570 * testsuite/experimental/simd/tests/bits/simd_view.h: New file.
4571 * testsuite/experimental/simd/tests/bits/test_values.h: New
4572 file. Test functions to easily drive a test with simd objects
4573 initialized from a given list of values and a range of random
4575 * testsuite/experimental/simd/tests/bits/ulp.h: New file.
4576 Support code to determine the ULP distance of simd objects.
4577 * testsuite/experimental/simd/tests/bits/verify.h: New file.
4578 Test framework for COMPARE'ing simd objects and instantiating
4579 the test templates with value_type and ABI tag.
4580 * testsuite/experimental/simd/tests/broadcast.cc: New file. Test
4582 * testsuite/experimental/simd/tests/casts.cc: New file. Test
4584 * testsuite/experimental/simd/tests/fpclassify.cc: New file.
4585 Test floating-point classification functions.
4586 * testsuite/experimental/simd/tests/frexp.cc: New file. Test
4588 * testsuite/experimental/simd/tests/generator.cc: New file. Test
4589 simd generator constructor.
4590 * testsuite/experimental/simd/tests/hypot3_fma.cc: New file.
4591 Test 3-arg hypot(simd,simd,simd) and fma(simd,simd,sim).
4592 * testsuite/experimental/simd/tests/integer_operators.cc: New
4593 file. Test integer operators.
4594 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
4595 New file. Test ldexp(simd), scalbn(simd), scalbln(simd), and
4597 * testsuite/experimental/simd/tests/loadstore.cc: New file. Test
4598 (converting) simd loads and stores.
4599 * testsuite/experimental/simd/tests/logarithm.cc: New file. Test
4601 * testsuite/experimental/simd/tests/mask_broadcast.cc: New file.
4602 Test simd_mask broadcasts.
4603 * testsuite/experimental/simd/tests/mask_conversions.cc: New
4604 file. Test simd_mask conversions.
4605 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: New
4606 file. Test simd_mask implicit conversions.
4607 * testsuite/experimental/simd/tests/mask_loadstore.cc: New file.
4608 Test simd_mask loads and stores.
4609 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: New
4610 file. Test simd_mask operators convert as specified.
4611 * testsuite/experimental/simd/tests/mask_operators.cc: New file.
4612 Test simd_mask compares, subscripts, and negation.
4613 * testsuite/experimental/simd/tests/mask_reductions.cc: New
4614 file. Test simd_mask reductions.
4615 * testsuite/experimental/simd/tests/math_1arg.cc: New file. Test
4616 1-arg math functions on simd.
4617 * testsuite/experimental/simd/tests/math_2arg.cc: New file. Test
4618 2-arg math functions on simd.
4619 * testsuite/experimental/simd/tests/operator_cvt.cc: New file.
4620 Test implicit conversions on simd binary operators behave as
4622 * testsuite/experimental/simd/tests/operators.cc: New file. Test
4623 simd compares, subscripts, not, unary minus, plus, minus,
4624 multiplies, divides, increment, and decrement.
4625 * testsuite/experimental/simd/tests/reductions.cc: New file.
4627 * testsuite/experimental/simd/tests/remqo.cc: New file. Test
4629 * testsuite/experimental/simd/tests/simd.cc: New file. Basic
4630 sanity checks of simd types.
4631 * testsuite/experimental/simd/tests/sincos.cc: New file. Test
4632 sin(simd) and cos(simd).
4633 * testsuite/experimental/simd/tests/split_concat.cc: New file.
4634 Test split(simd) and concat(simd, simd).
4635 * testsuite/experimental/simd/tests/splits.cc: New file. Test
4637 * testsuite/experimental/simd/tests/trigonometric.cc: New file.
4638 Test remaining trigonometric functions on simd.
4639 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: New
4640 file. Test trunc(simd), ceil(simd), and floor(simd).
4641 * testsuite/experimental/simd/tests/where.cc: New file. Test
4642 masked operations using where.
4644 2021-01-27 Matthias Kretz <kretz@kde.org>
4646 * doc/xml/manual/status_cxx2017.xml: Add implementation status
4647 of the Parallelism TS 2. Document implementation-defined types
4649 * include/Makefile.am: Add new headers.
4650 * include/Makefile.in: Regenerate.
4651 * include/experimental/simd: New file. New header for
4653 * include/experimental/bits/numeric_traits.h: New file.
4654 Implementation of P1841R1 using internal naming. Addition of
4655 missing IEC559 functionality query.
4656 * include/experimental/bits/simd.h: New file. Definition of the
4657 public simd interfaces and general implementation helpers.
4658 * include/experimental/bits/simd_builtin.h: New file.
4659 Implementation of the _VecBuiltin simd_abi.
4660 * include/experimental/bits/simd_converter.h: New file. Generic
4662 * include/experimental/bits/simd_detail.h: New file. Internal
4663 macros for the simd implementation.
4664 * include/experimental/bits/simd_fixed_size.h: New file. Simd
4665 fixed_size ABI specific implementations.
4666 * include/experimental/bits/simd_math.h: New file. Math
4668 * include/experimental/bits/simd_neon.h: New file. Simd NEON
4669 specific implementations.
4670 * include/experimental/bits/simd_ppc.h: New file. Implement bit
4671 shifts to avoid invalid results for integral types smaller than
4673 * include/experimental/bits/simd_scalar.h: New file. Simd scalar
4674 ABI specific implementations.
4675 * include/experimental/bits/simd_x86.h: New file. Simd x86
4676 specific implementations.
4677 * include/experimental/bits/simd_x86_conversions.h: New file.
4678 x86 specific conversion optimizations. The conversion patterns
4679 work around missing conversion patterns in the compiler and
4680 should be removed as soon as PR85048 is resolved.
4681 * testsuite/experimental/simd/standard_abi_usable.cc: New file.
4682 Test that all (not all fixed_size<N>, though) standard simd and
4683 simd_mask types are usable.
4684 * testsuite/experimental/simd/standard_abi_usable_2.cc: New
4685 file. As above but with -ffast-math.
4686 * testsuite/libstdc++-dg/conformance.exp: Don't build simd tests
4687 from the standard test loop. Instead use
4688 check_vect_support_and_set_flags to build simd tests with the
4689 relevant machine flags.
4691 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
4694 * include/bits/string_view.tcc
4695 (basic_string_view::find(const CharT*, size_type, size_type)):
4698 2021-01-27 Paul Fee <paul.f.fee@gmail.com>
4700 * include/bits/basic_string.h (basic_string::contains): New
4702 * include/std/string_view (basic_string_view::contains):
4704 * include/std/version (__cpp_lib_string_contains): Define.
4705 * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
4706 Remove trailing whitespace.
4707 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
4709 * testsuite/21_strings/basic_string/operations/contains/char/1.cc: New test.
4710 * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc: New test.
4711 * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc: New test.
4712 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: New test.
4713 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc: New test.
4715 2021-01-21 Jonathan Wakely <jwakely@redhat.com>
4717 * src/c++17/Makefile.in: Regenerate.
4719 2021-01-20 David Edelsohn <dje.gcc@gmail.com>
4721 * config/os/aix/ctype_inline.h (bool ctype<char>:: is): Cast
4722 _OBJ_DATA subscript to unsigned char. Add _THREAD_SAFE access to
4724 (const char* ctype<char>:: is): Same.
4726 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
4729 * testsuite/20_util/unique_ptr/io/lwg2948.cc: Do not try to
4730 write to a wide character stream if wide character support is
4731 disabled in the library.
4733 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
4735 * testsuite/27_io/basic_stringstream/cons/char/1.cc: Use
4736 stringbuf not wstringbuf.
4738 2021-01-18 Jakub Jelinek <jakub@redhat.com>
4741 * src/c++11/Makefile.am (cxx11-ios_failure-lt.s, cxx11-ios_failure.s):
4742 Compile with -gno-as-loc-support.
4743 * src/c++11/Makefile.in: Regenerated.
4745 2021-01-16 H.J. Lu <hjl.tools@gmail.com>
4747 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
4748 Add -fcf-protection=none to -march=i486.
4750 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
4752 * testsuite/23_containers/deque/debug/98466.cc: Make it pre-C++11
4755 2021-01-14 Alexandre Oliva <oliva@adacore.com>
4757 * testsuite/30_threads/future/members/poll.cc: Calibrate
4760 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
4763 * include/bits/hashtable_policy.h (_Node_iterator_base()): Set _M_cur to nullptr.
4764 (_Node_iterator()): Make default.
4765 (_Node_const_iterator()): Make default.
4766 * include/debug/macros.h (__glibcxx_check_erae_range_after): Add _M_singular
4768 * include/debug/safe_iterator.h
4769 (_GLIBCXX_DEBUG_VERIFY_OPERANDS): Accept if both iterator are value initialized.
4770 * include/debug/safe_local_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
4772 * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range): Add
4773 _M_singular checks on input iterators.
4774 * src/c++11/debug.cc (_Safe_iterator_base::_M_can_compare): Remove _M_singular
4776 * testsuite/23_containers/deque/debug/98466.cc: New test.
4777 * testsuite/23_containers/unordered_map/debug/98466.cc: New test.
4779 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
4782 * include/bits/fs_path.h (__throw_conversion_error): New
4783 function to throw or abort on character conversion errors.
4784 (__wstr_from_utf8): Move definition after filesystem_error has
4785 been defined. Use __throw_conversion_error.
4786 (path::_S_convert<_EcharT>): Use __throw_conversion_error.
4787 (path::_S_str_convert<_CharT, _Traits, _Allocator>): Likewise.
4788 (path::u8string): Likewise.
4790 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
4792 * include/std/barrier: Update copyright years. Fix whitespace.
4793 * include/std/version: Fix whitespace.
4794 * testsuite/30_threads/barrier/1.cc: Update copyright years.
4795 * testsuite/30_threads/barrier/2.cc: Likewise.
4796 * testsuite/30_threads/barrier/arrive.cc: Likewise.
4797 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
4798 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
4799 * testsuite/30_threads/barrier/completion.cc: Likewise.
4801 2021-01-13 Jonathan Wakely <jwakely@redhat.com>
4803 * doc/doxygen/user.cfg.in (INPUT): Remove include/debug/array.
4805 2021-01-10 David Edelsohn <dje.gcc@gmail.com>
4808 * testsuite/ext/vstring/cons/moveable.cc: Suppress false positive
4810 * testsuite/ext/vstring/modifiers/assign/move_assign.cc: Same.
4812 2021-01-08 Olivier Hainque <hainque@adacore.com>
4814 * testsuite/20_util/bind/ref_neg.cc: Tweak the
4815 dg-prune-output regex for out-of-build-tree contexts.
4817 2021-01-07 Thomas Rodgers <trodgers@redhat.com>
4819 * doc/doxygen/user.cfg.in: Add new header.
4820 * include/Makefile.am (std_headers): likewise.
4821 * include/Makefile.in: Regenerate.
4822 * include/precompiled/stdc++.h: Add new header.
4823 * include/std/barrier: New file.
4824 * include/std/version: Add __cpp_lib_barrier feature test macro.
4825 * testsuite/30_threads/barrier/1.cc: New test.
4826 * testsuite/30_threads/barrier/2.cc: Likewise.
4827 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
4828 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
4829 * testsuite/30_threads/barrier/arrive.cc: Likewise.
4830 * testsuite/30_threads/barrier/completion.cc: Likewise.
4832 2021-01-07 Patrick Palka <ppalka@redhat.com>
4835 * testsuite/20_util/to_chars/long_double.cc: Use nexttowardl
4836 instead of the non-standard nextupl and nextdownl.
4838 2021-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
4840 * configure: Re-generate.
4842 2021-01-05 Ed Smith-Rowland <3dw4rd@verizon.net>
4844 * include/precompiled/stdc++.h: Add <source_location> to C++20 section.
4846 2021-01-01 Jakub Jelinek <jakub@redhat.com>
4848 * ChangeLog-2020: Rotate ChangeLog. New file.
4851 Copyright (C) 2021 Free Software Foundation, Inc.
4853 Copying and distribution of this file, with or without modification,
4854 are permitted in any medium without royalty provided the copyright
4855 notice and this notice are preserved.