1 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
3 * include/bits/ostream.tcc (basic_ostream::write): Call sputn
4 directly instead of using _M_write. Do setstate(__err) all
5 outside the try-catch block.
6 * include/std/ostream (basic_ostream::_M_write): Declare
7 private. Use __ostream_insert. Do not define for the versioned
10 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
12 * doc/xml/manual/intro.xml: Document LWG 581 change.
13 * doc/html/manual/bugs.html: Regenerate.
14 * include/bits/basic_ios.tcc: Whitespace.
15 * include/bits/ostream.tcc (basic_ostream::flush()): Construct
17 * testsuite/27_io/basic_ostream/flush/char/2.cc: Check
19 * testsuite/27_io/basic_ostream/flush/char/exceptions_badbit_throw.cc:
21 * testsuite/27_io/basic_ostream/flush/wchar_t/2.cc: Likewise.
22 * testsuite/27_io/basic_ostream/flush/wchar_t/exceptions_badbit_throw.cc:
25 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
27 * include/bits/ostream.tcc (sentry): Only set failbit if badbit
28 is set, not if eofbit is set.
29 (tellp, seekp, seekp): Create sentry object. Do not set badbit
31 * testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc:
32 Adjust expected behaviour.
33 * testsuite/27_io/basic_ostream/seekp/wchar_t/exceptions_badbit_throw.cc:
35 * testsuite/27_io/basic_ostream/tellp/char/exceptions_badbit_throw.cc:
37 * testsuite/27_io/basic_ostream/tellp/wchar_t/exceptions_badbit_throw.cc:
39 * testsuite/27_io/basic_ostream/seekp/char/n3168.cc: New test.
40 * testsuite/27_io/basic_ostream/seekp/wchar_t/n3168.cc: New test.
41 * testsuite/27_io/basic_ostream/tellp/char/n3168.cc: New test.
42 * testsuite/27_io/basic_ostream/tellp/wchar_t/n3168.cc: New test.
44 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
46 * include/std/syncstream (basic_syncbuf::swap()): Remove
47 noexcept, as per LWG 3498.
49 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
52 * testsuite/17_intro/names.cc: Undef more names for newlib and
53 also for arm-none-linux-gnueabi.
54 * testsuite/experimental/names.cc: Disable PCH.
56 2021-06-25 Matthias Kretz <m.kretz@gsi.de>
58 * include/experimental/bits/simd.h (__bit_cast): Implement via
59 __builtin_bit_cast #if available.
60 (__proposed::simd_bit_cast): Add overloads for simd and
61 simd_mask, which use __builtin_bit_cast (or __bit_cast #if not
62 available), which return an object of the requested type with
63 the same bits as the argument.
64 * include/experimental/bits/simd_math.h: Use simd_bit_cast
65 instead of __bit_cast to allow casts to fixed_size_simd.
66 (copysign): Remove branch that was only required if __bit_cast
68 * testsuite/experimental/simd/tests/bits/test_values.h: Switch
69 from __bit_cast to __proposed::simd_bit_cast since the former
70 will not cast fixed_size objects anymore.
72 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
74 * include/experimental/bits/simd_math.h
75 (_GLIBCXX_SIMD_MATH_CALL2_): Rename arg2_ to __arg2.
76 (_GLIBCXX_SIMD_MATH_CALL3_): Rename arg2_ to __arg2 and arg3_ to
79 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
81 * include/experimental/bits/simd.h (__execute_on_index_sequence)
82 (__execute_on_index_sequence_with_return)
83 (__call_with_n_evaluations, __call_with_subscripts): Add flatten
86 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
88 * include/experimental/bits/simd_x86.h (_S_trunc, _S_floor)
89 (_S_ceil): Set bit 8 (_MM_FROUND_NO_EXC) on AVX and SSE4.1
92 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
94 * include/experimental/bits/simd_x86.h (_S_ldexp): The AVX512F
95 implementation doesn't require a _VecBltnBtmsk ABI tag, it
96 requires either a 64-Byte input (in which case AVX512F must be
97 available) or AVX512VL.
99 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
101 * include/experimental/bits/simd_math.h: Undefine internal
103 (frexp): Move #if to a more sensible position and reformat
105 (logb): Call _SimdImpl::_S_logb for fixed_size instead of
106 duplicating the code here.
107 (modf): Simplify condition.
109 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
111 * include/experimental/bits/simd_math.h (fabs): Remove
112 fabs(simd<integral>) overload.
114 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
116 * include/experimental/bits/simd_converter.h
117 (_SimdConverter::operator()): Pass _SimdTuple by const-ref.
118 * include/experimental/bits/simd_fixed_size.h
119 (_GLIBCXX_SIMD_FIXED_OP): Pass binary operator _SimdTuple
120 arguments by const-ref.
121 (_S_masked_unary): Pass _SimdTuple by const-ref.
123 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
125 * include/experimental/bits/simd_fixed_size.h
126 (_AbisInSimdTuple): Removed.
128 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
130 * include/experimental/bits/simd.h: Add missing operator~
131 overload for simd<floating-point> to __float_bitwise_operators.
132 * include/experimental/bits/simd_builtin.h
133 (_SimdImplBuiltin::_S_complement): Bitcast to int (and back) to
134 implement complement for floating-point vectors.
135 * include/experimental/bits/simd_fixed_size.h
136 (_SimdImplFixedSize::_S_copysign): New function, forwarding to
137 copysign implementation of _SimdTuple members.
138 * include/experimental/bits/simd_math.h (copysign): Call
139 _SimdImpl::_S_copysign for fixed_size arguments. Simplify
140 generic copysign implementation using the new ~ operator.
142 2021-06-24 Jonathan Wakely <jwakely@redhat.com>
144 * testsuite/experimental/simd/README.md: Fix typos.
146 2021-06-24 Jonathan Wakely <jwakely@redhat.com>
148 * include/bits/shared_ptr_base.h (__shared_ptr_access::operator[]):
150 * include/bits/unique_ptr.h (unique_ptr::operator*): Add
151 conditional noexcept as per LWG 2762.
152 * testsuite/20_util/shared_ptr/observers/array.cc: Check that
153 dereferencing cannot throw.
154 * testsuite/20_util/shared_ptr/observers/get.cc: Likewise.
155 * testsuite/20_util/optional/observers/lwg2762.cc: New test.
156 * testsuite/20_util/unique_ptr/lwg2762.cc: New test.
158 2021-06-23 Patrick Palka <ppalka@redhat.com>
161 * testsuite/23_containers/multiset/cons/deduction.cc:
162 Uncomment CTAD example that was rejected by this bug.
163 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
165 2021-06-23 Jonathan Wakely <jwakely@redhat.com>
167 * include/std/chrono (chrono::year::is_leap()): Fix incorrect
170 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
172 * testsuite/experimental/simd/README.md: New file.
174 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
176 * testsuite/experimental/simd/driver.sh: Rewrite output
177 verbosity logic. Add -p/--percentage option. Allow -v/--verbose
178 to be used twice. Add -x and -o short options. Parse long
179 options with = instead of separating space generically. Parce
180 contracted short options. Make unrecognized options an error.
181 If same-line output is active, trap on EXIT to increment the
182 progress (only with --percentage), erase the line and print the
184 * testsuite/experimental/simd/generate_makefile.sh: Initialize
185 helper files for progress account keeping. Update help target
186 for changes to DRIVEROPTS.
188 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
190 * testsuite/Makefile.am (check-simd): Remove -fno-tree-vrp flag
191 and associated warning.
192 * testsuite/Makefile.in: Regenerate.
194 2021-06-23 Cassio Neri <cassio.neri@gmail.com>
195 Jonathan Wakely <jwakely@redhat.com>
196 Ulrich Drepper <drepper@redhat.com>
198 * include/std/chrono (chrono::year::is_leap()): Optimize.
200 2021-06-23 Patrick Palka <ppalka@redhat.com>
203 * testsuite/23_containers/map/cons/deduction.cc: Replace ambiguous
205 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
206 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
207 Mention one of the replaced examples is broken due to PR101174.
208 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
209 * testsuite/23_containers/unordered_map/cons/deduction.cc: Replace
210 ambiguous CTAD examples.
211 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
213 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
215 * testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise.
217 2021-06-23 Jonathan Wakely <jwakely@redhat.com>
219 * include/std/mutex (__detail::__try_lock_impl): Rename
220 parameter to avoid clashing with newlib's __lockable macro.
221 (try_lock): Add 'inline' specifier.
222 * testsuite/17_intro/names.cc: Add check for __lockable.
223 * testsuite/30_threads/try_lock/5.cc: Add options for pthreads.
225 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
226 Matthias Kretz <m.kretz@gsi.de>
228 * include/std/mutex (lock): Replace recursion with iteration
229 when lockables all have the same type.
230 (__detail::__try_lock_impl): Likewise. Pass lockables as
231 parameters, instead of a tuple. Always lock the first one, and
232 recurse for the rest.
233 (__detail::__lock_impl): Adjust call to __try_lock_impl.
234 (__detail::__try_to_lock): Remove.
235 * testsuite/30_threads/lock/3.cc: Check that mutexes are locked.
236 * testsuite/30_threads/lock/4.cc: Also test non-heterogeneous
238 * testsuite/30_threads/unique_lock/cons/60497.cc: Also check
240 * testsuite/30_threads/try_lock/5.cc: New test.
242 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
244 * include/std/memory (declare_reachable, undeclare_reachable)
245 (declare_no_pointers, undeclare_no_pointers, get_pointer_safety)
246 (pointer_safety): Only define for C++11 to C++20 inclusive.
247 * testsuite/20_util/pointer_safety/1.cc: Do not run for C++23.
249 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
251 * include/bits/random.h (seed_seq): Constrain initializer-list
253 * include/bits/random.tcc (seed_seq): Add template parameter.
254 * testsuite/26_numerics/random/seed_seq/cons/default.cc: Check
256 * testsuite/26_numerics/random/seed_seq/cons/initlist.cc: Check
259 2021-06-22 Thomas Rodgers <rodgert@appliantology.com>
262 * include/bits/semaphore_base.h (__atomic_semaphore::_M_release):
263 Force _M_release() to wake all waiting threads.
264 * testsuite/30_threads/semaphore/100806.cc: New test.
266 2021-06-21 Jonathan Wakely <jwakely@redhat.com>
268 * include/std/mutex (__try_to_lock): Move to __detail namespace.
269 (struct __try_lock_impl): Replace with ...
270 (__detail::__try_lock_impl<Idx>(tuple<Lockables...>&)): New
271 function templates to implement std::try_lock.
272 (try_lock): Use new __try_lock_impl.
273 (__detail::__lock_impl(int, int&, L0&, L1&...)): New function
274 template to implement std::lock.
275 (lock): Use __lock_impl.
277 2021-06-21 Patrick Palka <ppalka@redhat.com>
279 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
281 2021-06-20 Patrick Palka <ppalka@redhat.com>
283 * include/std/ranges (__non_propagating_cache::operator bool):
284 Define for split_view::begin().
285 (split_view): Define as per P2210.
286 (views::__detail::__can_split_view): Define.
287 (views::_Split, views::split): Define.
288 * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
290 * testsuite/std/ranges/adaptors/split.cc: New test.
291 * testsuite/std/ranges/p2325.cc (test08a): New test.
292 * testsuite/std/ranges/p2367.cc (test01): Test views::split.
294 2021-06-20 Patrick Palka <ppalka@redhat.com>
296 * include/std/ranges: Rename views::split to views::lazy_split,
297 split_view to lazy_split_view, etc. throughout.
298 * testsuite/std/ranges/*: Likewise.
299 * testsuite/std/ranges/adaptors/lazy_split.cc: New file.
300 * testsuite/std/ranges/adaptors/lazy_split_neg.cc: New file.
302 2021-06-20 Patrick Palka <ppalka@redhat.com>
304 * include/std/ranges (split_view::_OuterIter::__at_end):
305 Check _M_trailing_empty.
306 (split_view::_OuterIter::_M_trailing_empty): Define this
308 (split_view::_OuterIter::operator++): Set _M_trailing_empty
310 (split_view::_OuterIter::operator==): Compare
312 * testsuite/std/ranges/adaptors/100479.cc (test03): Expect two
313 split parts instead of one.
314 * testsuite/std/ranges/adaptors/split.cc (test11): New test.
316 2021-06-20 Patrick Palka <ppalka@redhat.com>
318 * include/std/ranges (split_view::_InnerIter::base): Define as
321 2021-06-19 Patrick Palka <ppalka@redhat.com>
323 * include/std/ranges (transform_view::_Iterator::_S_iter_concept):
324 Consider _Base instead of _Vp as per LWG 3555.
325 (elements_view::_Iterator::_S_iter_concept): Likewise.
327 2021-06-19 Patrick Palka <ppalka@redhat.com>
329 * include/std/ranges (split_view::_OuterIter::value_type::begin):
330 Remove the non-const overload, and remove the copyable constraint
331 on the const overload as per LWG 3553.
333 2021-06-19 Patrick Palka <ppalka@redhat.com>
335 * include/bits/stl_iterator.h
336 (__detail::__common_iter_use_postfix_proxy): Add
337 move_constructible constraint as per LWG 3546.
338 (common_iterator::__postfix_proxy): Adjust initializer of
339 _M_keep as per LWG 3546.
341 2021-06-18 Patrick Palka <ppalka@redhat.com>
344 * include/bits/ranges_algo.h (__minmax_fn::operator()): Rewrite
345 to limit comparison complexity to 3*N/2.
346 (__minmax_element_fn::operator()): Likewise.
347 (shift_right): Avoid premature std::move of __result.
348 * testsuite/25_algorithms/minmax/constrained.cc (test04, test05):
350 * testsuite/25_algorithms/minmax_element/constrained.cc (test02):
353 2021-06-18 Patrick Palka <ppalka@redhat.com>
355 * include/std/concepts (convertible_to): Just use declval as per
358 2021-06-18 Jonathan Wakely <jwakely@redhat.com>
361 * include/std/numeric (reduce(Iter, Iter, T, BinaryOp)): Replace
362 incorrect static_assert with ones matching the 'Mandates'
363 conditions in the standard.
364 * testsuite/26_numerics/reduce/95833.cc: New test.
366 2021-06-18 Jonathan Wakely <jwakely@redhat.com>
368 * testsuite/21_strings/basic_string/cons/char/1.cc: Use
369 diagnostic pragma to suppress -Wstringop-overread error.
371 2021-06-18 Patrick Palka <ppalka@redhat.com>
373 * include/bits/ranges_algo.h (__find_fn, find, __find_if_fn)
374 (find_if, __find_if_not_fn, find_if_not, _in_in_result)
375 (__mismatch_fn, mismatch, __search_fn, search): Move to ...
376 * include/bits/ranges_util.h: ... here.
377 * include/std/ranges (__detail::find, __detail::find_if)
378 (__detail::find_if_not, __detail::mismatch): Remove.
379 (filter_view): Use ranges::find_if instead.
380 (drop_while_view): Use ranges::find_if_not instead.
381 (split_view): Use ranges::find and ranges::mismatch instead.
383 2021-06-18 Patrick Palka <ppalka@redhat.com>
385 * include/bits/iterator_concepts.h (weakly_incrementable): Remove
386 default_initializable requirement.
387 * include/bits/ranges_base.h (ranges::view): Likewise.
388 * include/bits/ranges_util.h (subrange): Constrain the default
390 * include/bits/stl_iterator.h (back_insert_iterator): Remove the
392 (front_insert_iterator): Likewise.
393 (insert_iterator): Likewise. Remove NSDMIs.
394 (common_iterator): Constrain the default ctor.
395 (counted_iterator): Likewise.
396 * include/bits/stream_iterator.h (ostream_iterator): Remove the
398 * include/std/ranges (__detail::__box::operator=): Handle
399 self-assignment in the primary template.
400 (__detail::__box): In the partial specialization: adjust
401 constraints as per P2325. Add specialized operator= for the
402 case when the wrapped type is not copyable. Constrain the
403 default ctor. Avoid list-initialization.
404 (single_view): Constraint the default ctor.
405 (iota_view): Relax semiregular constraint to copyable.
406 Constrain the default ctor.
407 (iota_view::_Iterator): Constraint the default ctor.
408 (basic_istream_view): Remove the default ctor. Remove NSDMIs.
409 Remove redundant checks for empty _M_stream.
410 (basic_istream_view::_Iterator): Likewise.
411 (ref_view): Remove the default ctor. Remove NSDMIs.
412 (ref_view::_Iterator): Constrain the default ctor.
413 (__detail::__non_propagating_cache::operator=): Define overload
414 for assigning from a value of the underlying type.
415 (filter_view): Likewise.
416 (filter_view::_Iterator): Likewise.
417 (transform_view): Likewise.
418 (transform_view::_Iterator): Likewise.
419 (take_view): Likewise.
420 (take_view::_Iterator): Likewise.
421 (take_while_view): Likewise.
422 (take_while_view::_Iterator): Likewise.
423 (drop_while_view): Likewise.
424 (drop_while_view::_Iterator): Likewise.
425 (join_view): Likewise.
426 (split_view::_OuterIter::__current): Adjust after changing the
428 (split_view::_M_current): Wrap it in a __non_propagating_cache.
429 (split_view::split_view): Constrain the default ctor.
430 (common_view): Constrain the default ctor.
431 (reverse_view): Likewise.
432 (elements_view): Likewise.
433 * include/std/span (enable_view<span<_ElementType, _Extent>>):
434 Define this partial specialization to true unconditionally.
435 * include/std/version (__cpp_lib_ranges): Adjust value.
436 * testsuite/24_iterators/back_insert_iterator/constexpr.cc:
437 Don't attempt to default construct a back_insert_iterator.
438 * testsuite/24_iterators/front_insert_iterator/constexpr.cc:
439 Don't attempt to default construct a front_insert_iterator.
440 * testsuite/24_iterators/insert_iterator/constexpr.cc:
441 Don't attempt to default construct an insert_iterator.
442 * testsuite/24_iterators/ostream_iterator/requirements/constexpr.cc:
443 Remove this test for default constructibility of ostream_iterator.
444 * testsuite/std/ranges/97600.cc: Don't attempt to default
445 construct a basic_istream_view.
446 * testsuite/std/ranges/adaptors/detail/semiregular_box.cc:
448 * testsuite/std/ranges/adaptors/detail/copyable_box.cc: ... this.
449 (test02): Adjust now that __box is copyable-box not
452 * testsuite/std/ranges/p2325.cc: New test.
453 * testsuite/std/ranges/single_view.cc (test06): New test.
454 * testsuite/std/ranges/view.cc: Adjust now that view doesn't
455 require default_initializable.
457 2021-06-17 Jonathan Wakely <jwakely@redhat.com>
460 * include/bits/basic_string.h (__cpp_lib_constexpr_string): Only
461 define when is_constant_evaluated is available.
462 * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits):
464 (__constant_string_p, __constant_array_p): Remove.
465 (char_traits): Use is_constant_evaluated directly.
466 * include/std/version (__cpp_lib_constexpr_char_traits)
467 (__cpp_lib_constexpr_string): Only define when
468 is_constant_evaluated is available.
470 2021-06-17 Patrick Palka <ppalka@redhat.com>
473 * include/std/ranges (__adaptor::_Partial): For the "simple"
474 forwarding partial specializations, also require that
475 the extra arguments are trivially copyable.
476 * testsuite/std/ranges/adaptors/100577.cc (test04): New test.
478 2021-06-17 Patrick Palka <ppalka@redhat.com>
481 * include/std/ranges (__adaptor::_RangeAdaptor): Document the
482 template form of _S_has_simple_extra_args.
483 (__adaptor::__adaptor_has_simple_extra_args): Add _Args template
484 parameter pack. Try to treat _S_has_simple_extra_args as a
485 variable template parameterized by _Args.
486 (__adaptor::_Partial): Pass _Arg/_Args to the constraint
487 __adaptor_has_simple_extra_args.
488 (views::_Take::_S_has_simple_extra_args): Templatize according
489 to the type of the extra argument.
490 (views::_Drop::_S_has_simple_extra_args): Likewise.
491 (views::_Split::_S_has_simple_extra_args): Define.
492 * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
493 Adjust after changes to _S_has_simple_extra_args mechanism.
496 2021-06-16 Jonathan Wakely <jwakely@redhat.com>
498 * include/bits/iterator_concepts.h (__decay_copy): Name type.
500 2021-06-16 Jonathan Wakely <jwakely@redhat.com>
502 * include/bits/ranges_base.h (ranges::begin, ranges::end)
503 (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
504 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
505 (ranges::empty, ranges::data, ranges::cdata): Remove final
506 keywords and deleted operator& overloads.
507 * testsuite/24_iterators/customization_points/iter_move.cc: Use
508 new is_customization_point_object function.
509 * testsuite/24_iterators/customization_points/iter_swap.cc:
511 * testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc:
513 * testsuite/std/ranges/access/begin.cc: Likewise.
514 * testsuite/std/ranges/access/cbegin.cc: Likewise.
515 * testsuite/std/ranges/access/cdata.cc: Likewise.
516 * testsuite/std/ranges/access/cend.cc: Likewise.
517 * testsuite/std/ranges/access/crbegin.cc: Likewise.
518 * testsuite/std/ranges/access/crend.cc: Likewise.
519 * testsuite/std/ranges/access/data.cc: Likewise.
520 * testsuite/std/ranges/access/empty.cc: Likewise.
521 * testsuite/std/ranges/access/end.cc: Likewise.
522 * testsuite/std/ranges/access/rbegin.cc: Likewise.
523 * testsuite/std/ranges/access/rend.cc: Likewise.
524 * testsuite/std/ranges/access/size.cc: Likewise.
525 * testsuite/std/ranges/access/ssize.cc: Likewise.
526 * testsuite/util/testsuite_iterators.h
527 (is_customization_point_object): New function.
529 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
531 * include/bits/ranges_base.h (ranges::begin, ranges::end)
532 (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
533 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
534 (ranges::empty, ranges::data, ranges::cdata): Make types final.
535 Add deleted operator& overloads.
536 (ranges::advance, ranges::distance, ranges::next, ranges::prev):
538 * testsuite/std/ranges/headers/ranges/synopsis.cc: Replace
539 ill-formed & expressions with using-declarations. Add checks for
540 other function objects.
542 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
544 * include/bits/ranges_util.h (view_interface): Add noexcept to
545 empty, operator bool, data and size members.
546 (subrange): Add noexcept to constructors.
547 * include/std/ranges (single_view, ref_view): Add noexcept to
549 (views::single, views::all): Add noexcept.
550 * testsuite/std/ranges/adaptors/all.cc: Check noexcept.
551 * testsuite/std/ranges/single_view.cc: Likewise.
553 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
555 * include/bits/ranges_util.h (subrange): Add __size_type typedef
556 and use it to simplify declarations.
557 (subrange(i, s, n)): Remove assertion.
558 * testsuite/std/ranges/subrange/constexpr.cc: New test.
560 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
562 * include/bits/iterator_concepts.h (__cust_access::__decay_copy):
563 Replace with function object.
564 (__cust_access::__member_begin, ___cust_access::_adl_begin): Use
565 __decay_copy unqualified.
566 * include/bits/ranges_base.h (__member_end, __adl_end):
567 Likewise. Use __range_iter_t for type of ranges::begin.
568 (__member_rend): Use correct value category for rbegin argument.
569 (__member_data): Use __decay_copy unqualified.
570 (__begin_data): Use __range_iter_t for type of ranges::begin.
572 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
574 * include/bits/ranges_base.h (ranges::empty): Check whether
575 conversion to bool can throw.
576 * testsuite/std/ranges/access/empty.cc: Check for correct
579 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
582 * include/std/type_traits (__common_ref_impl<X&, Y&>): Only
583 use the type if it's a reference.
584 * testsuite/20_util/common_reference/100894.cc: New test.
586 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
588 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
589 Add dg-require-filesystem-ts directive.
591 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
594 * include/std/any (any(in_place_t<T>, initializer_list<U>, A&&...))
595 (any::emplace<T>(initializer_list<U>, A&&...)): Fix constraint
597 * testsuite/20_util/any/cons/101034.cc: New test.
599 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
601 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Add
604 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
607 * libsupc++/compare (compare_partial_order_fallback): Add
608 constraint using reversed parameter order, as per LWG 3465.
609 * testsuite/18_support/comparisons/algorithms/fallback.cc:
610 Adjust expected result.
612 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
614 * libsupc++/compare (__decayed_same_as): New helper concept.
615 (strong_order, weak_order, partial_order): Constrain with new
616 concept instead of using static_assert.
617 (compare_strong_order_fallback, compare_weak_order_fallback)
618 (compare_partial_order_fallback): Likewise. Do not deduce return
619 types. Remove redundant if-constexpr checks.
620 * testsuite/18_support/comparisons/algorithms/fallback.cc: New test.
622 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
625 * include/std/tuple: Use reserved form of attribute name.
626 * testsuite/17_intro/headers/c++2011/all_attributes.cc: Add
627 check for no_unique_address.
628 * testsuite/17_intro/headers/c++2014/all_attributes.cc:
630 * testsuite/17_intro/headers/c++2017/all_attributes.cc:
633 2021-06-11 Jonathan Wakely <jwakely@redhat.com>
635 * include/bits/fs_path.h (operator==, operator<=>): Use new
637 (path::_S_compare): New function to call path::compare in a
638 context where path::iterator is complete.
639 * include/experimental/bits/fs_path.h (operator<, operator==):
640 Define after path::iterator is complete.
641 * testsuite/27_io/filesystem/path/native/conv_c++23.cc: New
643 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
646 2021-06-09 Thomas Rodgers <rodgert@appliantology.com>
648 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Guard
649 test logic with constexpr check for is_always_lock_free.
651 2021-06-09 Jonathan Wakely <jwakely@redhat.com>
654 * include/std/optional (optional::operator=(const optional<U>&)):
655 Fix value category used in is_assignable check.
656 * testsuite/20_util/optional/assignment/100982.cc: New test.
658 2021-06-09 Jonathan Wakely <jwakely@redhat.com>
660 * include/bits/allocator.h (allocator::is_always_equal): Deprecate.
661 * include/bits/iterator_concepts.h (indirectly_readable_traits):
662 Add LWG issue number to comment.
663 * include/std/memory_resource (polymorphic_allocator::release):
665 * testsuite/20_util/allocator/requirements/typedefs.cc: Add
666 dg-warning for deprecation. Also check std::allocator<void>.
668 2021-06-08 Thomas Rodgers <rodgert@appliantology.com>
671 * include/bits/atomic_base.h (atomic_ref<_Tp*>::wait):
672 Change parameter type from _Tp to _Tp*.
673 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Extend
674 coverage of types tested.
676 2021-06-08 Thomas Rodgers <rodgert@appliantology.com>
678 * include/std/barrier (__tree_barrier::_M_arrive): Remove
679 unnecessary hasher instantiation.
681 2021-06-08 Jonathan Wakely <jwakely@redhat.com>
683 * include/experimental/propagate_const (swap): Constrain.
684 * testsuite/experimental/propagate_const/swap/lwg3413.cc: New test.
686 2021-06-07 Avi Kivity <avi@scylladb.com>
689 * include/std/ranges (elements_view::__iter_cat::_S_iter_cat):
690 Add missing typename.
692 2021-06-07 Jonathan Wakely <jwakely@redhat.com>
695 * include/std/optional (operator<=>(const optional<T>& const U&)):
696 Add missing constraint and add workaround for template
698 * testsuite/20_util/optional/relops/three_way.cc: Check that
699 type without equality comparison cannot be compared when wrapped
702 2021-06-05 Jonathan Wakely <jwakely@redhat.com>
705 * include/bits/ranges_base.h (_SSize): Return signed type.
706 * testsuite/std/ranges/access/ssize.cc: Check with __int128.
708 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
710 * include/bits/ranges_base.h (_SSize): Return the result of
711 ranges::size converted to the wider of make-signed-like-t<S> and
712 ptrdiff_t, rather than the ranges different type.
713 * testsuite/std/ranges/access/ssize.cc: Adjust expected result
714 for an iota_view that uses an integer class type for its
717 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
720 * include/bits/ranges_base.h (__member_data): Use __decay_copy.
721 * testsuite/std/ranges/access/data.cc: Add testcase from PR.
723 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
726 * include/bits/iterator_concepts.h (__detail::__decay_copy)
727 (__detail::__member_begin, __detail::__adl_begin): Move to
728 namespace ranges::__cust_access.
729 (__detail::__ranges_begin): Likewise, and rename to __begin.
730 Remove redundant static assertion.
731 * include/bits/ranges_base.h (_Begin, _End, _RBegin, _REnd):
732 Use lvalue in noexcept specifier.
733 (__as_const): Add non-deduced parameter for value category.
734 (_CBegin, _CEnd, _CRBegin, _CREnd, _CData): Adjust uses of
736 (__member_size, __adl_size, __member_empty, __size0_empty):
737 (__eq_iter_empty, __adl_data): Use lvalue objects in
739 (__sentinel_size): Likewise. Add check for conversion to
741 (__member_data): Allow non-lvalue types to satisfy the concept,
742 but use lvalue object in requirements.
743 (_Size, _SSize): Remove forwarding to always use an lvalue.
744 (_Data): Likewise. Add static assertion for arrays.
745 * testsuite/std/ranges/access/cdata.cc: Adjust expected
746 behaviour for rvalues. Add negative tests for ill-formed
748 * testsuite/std/ranges/access/data.cc: Likewise.
749 * testsuite/std/ranges/access/empty.cc: Adjust expected
750 behaviour for rvalues.
751 * testsuite/std/ranges/access/size.cc: Likewise.
753 2021-06-04 Tim Adye <Tim.Adye@cern.ch>
755 * include/std/any (any::_Manager::_S_access): New static
756 function to access the contained value.
757 (any::emplace, __any_caster): Use _S_access member of the
760 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
762 * doc/xml/manual/status_cxx2020.xml:
763 * doc/html/*: Regenerate.
764 * include/bits/hashtable.h (__cpp_lib_generic_unordered_lookup):
766 * include/std/version (__cpp_lib_generic_unordered_lookup):
768 * testsuite/23_containers/unordered_map/operations/1.cc: Check
770 * testsuite/23_containers/unordered_set/operations/1.cc:
773 2021-06-03 Patrick Palka <ppalka@redhat.com>
775 * include/bits/ranges_algo.h (__detail::__can_reread_output):
776 Factor out this concept from ...
777 (__unique_copy_fn::operator()): ... here. Use the concept
779 * testsuite/std/ranges/range.cc: Remove now ill-formed use
780 of range_value_t on an output_range.
781 * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
782 Define value_type, pointer and reference member types to void.
784 2021-06-03 Patrick Palka <ppalka@redhat.com>
787 * include/std/ranges (_RangeAdaptorClosure): Document
788 _S_has_simple_call_op mechanism.
789 (_RangeAdaptor): Document _S_has_simple_extra_args mechanism.
790 (__closure_has_simple_call_op): New concept.
791 (__adaptor_has_simple_extra_args): Likewise.
792 (_Partial<_Adaptor, _Args...>): New partial specialization.
793 (_Partial<_Adaptor, _Arg>): Likewise.
794 (_Pipe<_Lhs, _Rhs>): Likewise.
795 (views::_All::_S_has_simple_call_op): Define to true.
796 (views::_Filter::_S_has_simple_extra_args): Likewise.
797 (views::_Transform::_S_has_simple_extra_args): Likewise.
798 (views::_Take::_S_has_simple_extra_args): Likewise.
799 (views::_TakeWhile::_S_has_simple_extra_args): Likewise.
800 (views::_Drop::_S_has_simple_extra_args): Likewise.
801 (views::_DropWhile::_S_has_simple_extra_args): Likewise.
802 (views::_Join::_S_has_simple_call_op): Likewise.
803 (views::_Split): Document why we don't define
804 _S_has_simple_extra_args to true for this adaptor.
805 (views::_Common::_S_has_simple_call_op): Define to true.
806 (views::_Reverse::_S_has_simple_call_op): Likewise.
807 (views::_Elements::_S_has_simple_call_op): Likewise.
808 * testsuite/std/ranges/adaptors/100577.cc: New test.
810 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
814 * include/bits/hashtable_policy.h (_Hashtable_ebo_helper):
815 Value-initialize subobject.
816 * testsuite/23_containers/unordered_map/allocator/default_init.cc:
818 * testsuite/23_containers/unordered_set/allocator/default_init.cc:
821 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
824 * testsuite/23_containers/unordered_map/96088.cc: Adjust
825 expected number of allocations.
826 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
828 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
830 * doc/xml/manual/status_cxxis29124.xml: Improve punctuation.
831 * doc/xml/manual/status_cxxtr1.xml: Likewise.
832 * doc/xml/manual/status_cxxtr24733.xml: Likewise.
833 * doc/html/*: Regenerate.
835 2021-06-01 Patrick Palka <ppalka@redhat.com>
838 * testsuite/23_containers/deque/allocator/default_init.cc,
839 testsuite/23_containers/forward_list/allocator/default_init.cc,
840 testsuite/23_containers/list/allocator/default_init.cc,
841 testsuite/23_containers/map/allocator/default_init.cc,
842 testsuite/23_containers/set/allocator/default_init.cc,
843 testsuite/23_containers/vector/allocator/default_init.cc,
844 testsuite/23_containers/vector/bool/allocator/default_init.cc:
847 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
849 * testsuite/23_containers/unordered_map/96088.cc: Change
850 effective target to c++17.
851 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
853 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
855 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Only test
856 isblank for C++11 and later.
858 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
861 * include/bits/ranges_base.h (ranges::advance(iter, n, sentinel)):
862 Fix return value for no-op case.
863 * testsuite/24_iterators/range_operations/advance.cc: Test
864 return values of three-argument overload.
866 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
869 * python/Makefile.am: Use archive name for printer hook if no
870 dynamic library name is available.
871 * python/Makefile.in: Regenerate.
873 2021-05-30 Gerald Pfeifer <gerald@pfeifer.com>
875 * doc/xml/manual/abi.xml: Remove dead reference to "Intel
876 Compilers for Linux: Compatibility with GNU Compilers" article.
877 * doc/html/manual/abi.html: Regenerate.
879 2021-05-26 François Dumont <fdumont@gcc.gnu.org>
881 * include/debug/formatter.h
882 (_Error_formatter::_Parameter::_Named): New.
883 (_Error_formatter::_Parameter::_Type): Inherit latter.
884 (_Error_formatter::_Parameter::_M_integer): Likewise.
885 (_Error_formatter::_Parameter::_M_string): Likewise.
886 * src/c++11/debug.cc: Include <cstring>.
887 (_Print_func_t): New.
888 (print_raw(PrintContext&, const char*, ptrdiff_t)): New.
889 (print_word): Use '%.*s' format in fprintf to render only expected number of chars.
890 (pretty_print(PrintContext&, const char*, _Print_func_t)): New.
891 (print_type): Rename in...
892 (print_type_info): ...this. Use pretty_print.
893 (print_address, print_integer): New.
894 (print_named_name, print_iterator_constness, print_iterator_state): New.
895 (print_iterator_seq_type): New.
896 (print_named_field, print_type_field, print_instance_field, print_iterator_field): New.
897 (print_field): Use latters.
898 (print_quoted_named_name, print_type_type, print_type, print_instance): New.
899 (print_string(PrintContext&, const char*, const _Parameter*, size_t)):
900 Change signature to...
901 (print_string(PrintContext&, const char*, ptrdiff_t, const _Parameter*, size_t)):
902 ...this and adapt. Remove intermediate buffer to render input string.
903 (print_string(PrintContext&, const char*, ptrdiff_t)): New.
905 2021-05-26 Jonathan Wakely <jwakely@redhat.com>
908 * include/bits/ranges_base.h (advance, distance, next, prev):
909 Replace function templates with function objects.
910 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
911 Adjust for changes to function objects.
912 * testsuite/std/ranges/adaptors/elements.cc: Add using
913 declarations for names from namespace ranges.
914 * testsuite/std/ranges/adaptors/transform.cc: Likewise.
915 * testsuite/24_iterators/range_operations/100768.cc: New test.
917 2021-05-24 François Dumont <fdumont@gcc.gnu.org>
920 * include/bits/hashtable_policy.h (_Select2nd): New.
921 (_NodeBuilder<>): New.
922 (_ReuseOrAllocNode<>::operator()): Use variadic template args.
923 (_AllocNode<>::operator()): Likewise.
924 * include/bits/hashtable.h
925 (_Hashtable<>::__node_builder_t): New.
926 (_Hashtable<>::_M_insert_unique<>(_Kt&&, _Arg&&, const _NodeGenerator&)):
928 (_Hashtable<>::_S_forward_key): New.
929 (_Hashtable<>::_M_insert): Use latter.
930 (_Hashtable<>::_M_insert(const_iterator, _Arg&&, const _NodeGenerator&, false_type)):
931 Instantiate node first, compute hash code second.
932 * testsuite/23_containers/unordered_map/96088.cc: New test.
933 * testsuite/23_containers/unordered_multimap/96088.cc: New test.
934 * testsuite/23_containers/unordered_multiset/96088.cc: New test.
935 * testsuite/23_containers/unordered_set/96088.cc: New test.
936 * testsuite/util/replacement_memory_operators.h
937 (counter::_M_increment): New.
938 (counter::_M_decrement): New.
939 (counter::reset()): New.
941 2021-05-24 Patrick Palka <ppalka@redhat.com>
944 * include/std/ranges (__detail::__non_propagating_cache): Move
945 definition up to before that of _CachedPosition. Make base
946 class _Optional_base protected instead of private. Add const
947 overload for operator*.
948 (__detail::_CachedPosition): Rewrite the partial specialization
949 for forward ranges as a derived class of __non_propagating_cache.
950 Remove the size constraint on the partial specialization for
951 random access ranges. Add copy/move/copy-assignment/move-assignment
952 members to the offset partial specialization for random
953 access ranges that propagate the cached value but additionally
954 invalidate it in the source object on move.
955 * testsuite/std/ranges/adaptors/100479.cc: New test.
957 2021-05-24 Jonathan Wakely <jwakely@redhat.com>
959 * testsuite/25_algorithms/inplace_merge/constrained.cc: Qualify
960 call to ranges::next.
961 * testsuite/25_algorithms/is_sorted/constrained.cc: Likewise.
962 * testsuite/25_algorithms/is_sorted_until/constrained.cc:
964 * testsuite/25_algorithms/swap_ranges/1.cc: Qualify call to
967 2021-05-21 Patrick Palka <ppalka@redhat.com>
970 * include/std/ranges (drop_while_view::begin): Assert the
971 precondition added by LWG 3490.
973 2021-05-21 Patrick Palka <ppalka@redhat.com>
976 * include/std/ranges (iota_view::_Sentinel::_M_distance_from):
977 Split out this member function from ...
978 (iota_view::_Sentinel::operator-): ... here, for sake of access
980 * testsuite/std/ranges/iota/iota_view.cc (test05): New test.
982 2021-05-20 Jonathan Wakely <jwakely@redhat.com>
984 * include/bits/random.tcc (__representable_as_double)
985 (__p1_representable_as_double): Add "" to static asserts.
987 2021-05-20 Jonathan Wakely <jwakely@redhat.com>
990 * include/bits/c++config (__glibcxx_assert_1): Rename to ...
991 (__glibcxx_constexpr_assert): ... this.
992 (__glibcxx_assert_impl): Use __glibcxx_constexpr_assert.
993 (__glibcxx_assert): Define as either __glibcxx_constexpr_assert
994 or __glibcxx_assert_impl.
995 (__glibcxx_assert_2): Remove
996 * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): Use
997 __glibcxx_constexpr_assert instead of __glibcxx_assert_1.
998 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
999 Adjust expected error.
1000 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
1002 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
1005 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
1007 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
1009 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
1011 * testsuite/23_containers/span/back_neg.cc: Likewise.
1012 * testsuite/23_containers/span/front_neg.cc: Likewise.
1013 * testsuite/23_containers/span/index_op_neg.cc: Likewise.
1015 2021-05-20 Patrick Palka <ppalka@redhat.com>
1018 * include/bits/stl_iterator.h (reverse_iterator::difference_type):
1019 In C++20 mode, define in terms of iter_difference_t as per P0896R4.
1020 (reverse_iterator::reference): Likewise, but with iter_reference_t.
1021 (reverse_iterator::value_type): Likewise, but with iter_value_t.
1022 * testsuite/std/ranges/adaptors/reverse.cc (test08): New test.
1023 * testsuite/24_iterators/reverse_iterator/100639.cc: New test.
1025 2021-05-20 Joern Rennecke <joern.rennecke@riscy-ip.com>
1028 * include/std/charconv (to_chars): Hide the overloads for
1029 floating-point types for 16 bit targets.
1030 * src/c++17/floating_to_chars.cc: Don't compile for 16 bit targets.
1031 * testsuite/20_util/to_chars/double.cc: Run this test only on
1033 * testsuite/20_util/to_chars/float.cc: Likewise.
1034 * testsuite/20_util/to_chars/long_double.cc: Likewise.
1036 2021-05-18 Patrick Palka <ppalka@redhat.com>
1039 * include/std/ranges (elements_view::_Sentinel::operator-): Use
1040 _M_distance_from in the other operator- overload too.
1041 * testsuite/std/ranges/adaptors/elements.cc (test06): Augment test.
1043 2021-05-18 Thomas Schwinge <thomas@codesourcery.com>
1045 * testsuite/lib/prune.exp: Add note about 'dg-note'.
1047 2021-05-18 Patrick Palka <ppalka@redhat.com>
1050 * include/std/ranges (__box::__box): Use non-list-initialization
1051 in member initializer list of in-place constructor of the
1052 partial specialization for semiregular types.
1053 (__box::operator->): Use std::__addressof.
1054 * testsuite/std/ranges/adaptors/detail/semiregular_box.cc
1056 * testsuite/std/ranges/single_view.cc (test04): New test.
1058 2021-05-18 Patrick Palka <ppalka@redhat.com>
1061 * include/std/ranges (reverse_view::_S_needs_cached_begin):
1062 Set to true if the underlying non-common random-access range
1063 doesn't have a sized sentinel.
1065 2021-05-18 Patrick Palka <ppalka@redhat.com>
1068 * include/std/ranges (elements_view::_Iterator): Also befriend
1070 (elements_view::_Sentinel::_M_equal): Templatize.
1071 (elements_view::_Sentinel::_M_distance_from): Split out from ...
1072 (elements_view::_Sentinel::operator-): ... here. Depend on
1073 _Base2 instead of _Base in the return type.
1074 * testsuite/std/ranges/adaptors/elements.cc (test06, test07):
1077 2021-05-17 Thomas Rodgers <rodgert@twrodgers.com>
1079 * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): loop
1080 until value change observed.
1081 (__waiter_base::_M_laundered): New member.
1082 (__waiter_base::_M_notify): Check _M_laundered to determine
1083 whether to wake one or all.
1084 (__detail::__atomic_compare): Return true if call to
1085 __builtin_memcmp() == 0.
1086 (__waiter_base::_S_do_spin_v): Adjust predicate.
1087 * testsuite/29_atomics/atomic/wait_notify/100334.cc: New
1090 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
1093 * include/experimental/bits/fs_path.h (__is_constructible_from):
1094 Test construction from a const lvalue, not an rvalue.
1095 * testsuite/27_io/filesystem/path/construct/100630.cc: New test.
1096 * testsuite/experimental/filesystem/path/construct/100630.cc:
1099 2021-05-17 Antony Polukhin <antoshkka@gmail.com>
1102 * include/bits/locale_facets.h (ctype<basic_string<C,T,A>>):
1103 Declare (but do not define) partial specialization.
1104 * testsuite/22_locale/ctype/is/string/89728_neg.cc: New test.
1106 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
1108 * include/std/thread (jthread::_S_create): Fix static assert
1110 * testsuite/30_threads/jthread/95989.cc: Re-enable test.
1111 * testsuite/30_threads/jthread/jthread.cc: Do not require
1112 pthread effective target.
1113 * testsuite/30_threads/jthread/2.cc: Moved to...
1114 * testsuite/30_threads/jthread/version.cc: ...here.
1116 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
1118 * doc/Makefile.am: Simplify doxygen recipes and use --latex_cmd.
1119 * doc/Makefile.in: Regenerate.
1120 * doc/doxygen/user.cfg.in (LATEX_CMD_NAME): Add placeholder
1122 * scripts/run_doxygen (print_usage): Always print to stdout and
1124 (fail): New function for exiting on error.
1125 (parse_options): Handle --latex_cmd. Do not treat --help the
1126 same as errors. Simplify handling of required arguments.
1128 2021-05-12 Jonathan Wakely <jwakely@redhat.com>
1130 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
1131 Increase dg-timeout-factor to 4. Fix -Wunused-parameter
1132 warnings. Replace bitwise AND with logical AND in loop
1134 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
1135 Replace bitwise AND with logical AND in loop condition.
1136 * testsuite/util/pstl/test_utils.h: Remove unused parameter
1139 2021-05-11 Patrick Palka <ppalka@redhat.com>
1141 * src/c++17/ryu/LOCAL_PATCHES: Update.
1142 * src/c++17/ryu/ryu_generic_128.h: Remove extern "C".
1143 Remove declarations for never-defined functions.
1144 * testsuite/20_util/to_chars/4.cc: New test.
1146 2021-05-11 Jonathan Wakely <jwakely@redhat.com>
1148 * testsuite/20_util/headers/memory/synopsis.cc: Define C++98
1149 alternative for macro.
1150 * testsuite/20_util/shared_ptr/creation/99006.cc: Add effective
1152 * testsuite/25_algorithms/copy/debug/99402.cc: Avoid C++11
1155 2021-05-11 Jonathan Wakely <jwakely@redhat.com>
1157 * include/bits/allocator.h (allocator<void>) [C++20]: Add
1158 missing noexcept to constructor. Restore missing POCMA and
1159 is_always_equal_traits.
1160 [C++17]: Make construct and destroy members private and
1161 declare allocator_traits as a friend.
1162 * include/bits/memoryfwd.h (allocator_traits): Declare.
1163 * include/ext/malloc_allocator.h (malloc_allocator::allocate):
1164 Add nodiscard attribute. Add static assertion for LWG 3307.
1165 * include/ext/new_allocator.h (new_allocator::allocate): Add
1166 static assertion for LWG 3307.
1167 * testsuite/20_util/allocator/void.cc: Check that converting
1168 constructor is noexcept. Check for propagation traits and
1169 size_type and difference_type. Check that pointer and
1170 const_pointer are gone in C++20.
1172 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
1174 * include/std/stop_token: Remove TODO comment.
1176 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
1178 * include/bits/shared_ptr_base.h (__shared_count(unique_ptr&&)):
1179 Initialize a non-reference deleter from an rvalue, as per LWG
1181 (__shared_ptr::_UniqCompatible): Add missing constraint.
1182 * testsuite/20_util/shared_ptr/cons/lwg3548.cc: New test.
1183 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc: Check
1186 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
1188 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Remove
1189 -std=gnu++17 from dg-options directive.
1190 * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc:
1192 * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc:
1194 * testsuite/17_intro/headers/c++2017/operator_names.cc:
1196 * testsuite/17_intro/headers/c++2017/parallel_mode.cc: Likewise.
1197 * testsuite/17_intro/headers/c++2017/stdc++.cc: Likewise.
1198 * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
1200 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Likewise.
1201 * testsuite/18_support/byte/81076.cc: Likewise.
1202 * testsuite/18_support/byte/global_neg.cc: Likewise.
1203 * testsuite/18_support/byte/ops.cc: Likewise.
1204 * testsuite/18_support/byte/requirements.cc: Likewise.
1205 * testsuite/18_support/headers/cfloat/values_c++17.cc: Likewise.
1206 * testsuite/18_support/launder/1.cc: Likewise.
1207 * testsuite/18_support/launder/nodiscard.cc: Likewise.
1208 * testsuite/18_support/launder/requirements.cc: Likewise.
1209 * testsuite/18_support/launder/requirements_neg.cc: Likewise.
1210 * testsuite/18_support/new_aligned.cc: Likewise.
1211 * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
1213 * testsuite/19_diagnostics/error_code/is_error_code_v.cc:
1215 * testsuite/19_diagnostics/error_condition/hash.cc: Likewise.
1216 * testsuite/20_util/addressof/requirements/constexpr.cc:
1218 * testsuite/20_util/as_const/1.cc: Likewise.
1219 * testsuite/20_util/as_const/rvalue_neg.cc: Likewise.
1220 * testsuite/20_util/bind/83427.cc: Likewise.
1221 * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
1222 * testsuite/20_util/bool_constant/requirements.cc: Likewise.
1223 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
1225 * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
1227 * testsuite/20_util/duration_cast/rounding.cc: Likewise.
1228 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
1230 * testsuite/20_util/from_chars/1_neg.cc: Likewise.
1231 * testsuite/20_util/from_chars/requirements.cc: Likewise.
1232 * testsuite/20_util/function/91456.cc: Likewise.
1233 * testsuite/20_util/function/cons/deduction.cc: Likewise.
1234 * testsuite/20_util/function_objects/83607.cc: Likewise.
1235 * testsuite/20_util/function_objects/invoke/59768.cc: Likewise.
1236 * testsuite/20_util/function_objects/mem_fn/80478.cc: Likewise.
1237 * testsuite/20_util/function_objects/not_fn/1.cc: Likewise.
1238 * testsuite/20_util/function_objects/not_fn/87538.cc: Likewise.
1239 * testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc:
1241 * testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc:
1243 * testsuite/20_util/has_unique_object_representations/value.cc:
1245 * testsuite/20_util/hash/nullptr.cc: Likewise.
1246 * testsuite/20_util/in_place/requirements.cc: Likewise.
1247 * testsuite/20_util/is_aggregate/incomplete_neg.cc: Likewise.
1248 * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
1250 * testsuite/20_util/is_aggregate/requirements/typedefs.cc:
1252 * testsuite/20_util/is_aggregate/value.cc: Likewise.
1253 * testsuite/20_util/is_invocable/83395.cc: Likewise.
1254 * testsuite/20_util/is_invocable/91456.cc: Likewise.
1255 * testsuite/20_util/is_invocable/requirements/explicit_instantiation.cc:
1257 * testsuite/20_util/is_invocable/requirements/typedefs.cc:
1259 * testsuite/20_util/is_invocable/value.cc: Likewise.
1260 * testsuite/20_util/is_literal_type/deprecated-1z.cc: Likewise.
1261 * testsuite/20_util/is_nothrow_constructible/94003.cc: Likewise.
1262 * testsuite/20_util/is_nothrow_invocable/83395.cc: Likewise.
1263 * testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation.cc:
1265 * testsuite/20_util/is_nothrow_invocable/requirements/typedefs.cc: Likewise.
1266 * testsuite/20_util/is_nothrow_invocable/value.cc: Likewise.
1267 * testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc:
1269 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
1271 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
1272 * testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc:
1274 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
1276 * testsuite/20_util/is_nothrow_swappable_with/value.cc:
1278 * testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc:
1280 * testsuite/20_util/is_swappable/requirements/typedefs.cc:
1282 * testsuite/20_util/is_swappable/value.cc: Likewise.
1283 * testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc:
1285 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc:
1287 * testsuite/20_util/is_swappable_with/value.cc: Likewise.
1288 * testsuite/20_util/logical_traits/83134.cc: Likewise.
1289 * testsuite/20_util/logical_traits/requirements/explicit_instantiation.cc:
1291 * testsuite/20_util/logical_traits/requirements/typedefs.cc:
1293 * testsuite/20_util/logical_traits/value.cc: Likewise.
1294 * testsuite/20_util/pair/cons/deduction.cc: Likewise.
1295 * testsuite/20_util/pair/swap_cxx17.cc: Likewise.
1296 * testsuite/20_util/ratio/requirements/ratio_equal_v.cc:
1298 * testsuite/20_util/reference_wrapper/83427.cc: Likewise.
1299 * testsuite/20_util/reference_wrapper/deduction.cc: Likewise.
1300 * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
1301 * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
1302 * testsuite/20_util/shared_ptr/requirements/weak_type.cc:
1304 * testsuite/20_util/time_point/arithmetic/constexpr.cc:
1306 * testsuite/20_util/time_point_cast/rounding.cc: Likewise.
1307 * testsuite/20_util/to_chars/3.cc: Likewise.
1308 * testsuite/20_util/to_chars/chars_format.cc: Likewise.
1309 * testsuite/20_util/to_chars/lwg3266.cc: Likewise.
1310 * testsuite/20_util/to_chars/requirements.cc: Likewise.
1311 * testsuite/20_util/tuple/78939.cc: Likewise.
1312 * testsuite/20_util/tuple/apply/1.cc: Likewise.
1313 * testsuite/20_util/tuple/apply/2.cc: Likewise.
1314 * testsuite/20_util/tuple/cons/deduction.cc: Likewise.
1315 * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
1316 * testsuite/20_util/tuple/make_from_tuple/2.cc: Likewise.
1317 * testsuite/20_util/tuple/swap_cxx17.cc: Likewise.
1318 * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
1319 * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: Likewise.
1320 * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
1322 * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
1323 * testsuite/20_util/void_t/1.cc: Likewise.
1324 * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
1325 * testsuite/24_iterators/container_access.cc: Likewise.
1326 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc:
1328 * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc:
1330 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
1332 * testsuite/24_iterators/range_access/range_access_cpp17_neg.cc:
1334 * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
1335 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc:
1337 * testsuite/26_numerics/headers/cmath/hypot.cc: Likewise.
1338 * testsuite/26_numerics/headers/cmath/special_functions_global.cc:
1340 * testsuite/26_numerics/lcm/1.cc: Likewise.
1341 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
1342 * testsuite/26_numerics/valarray/deduction.cc: Likewise.
1343 * testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc:
1345 * testsuite/27_io/manipulators/standard/char/quoted_sv.cc:
1347 * testsuite/27_io/manipulators/standard/wchar_t/quoted_sv.cc:
1349 * testsuite/27_io/types/4.cc: Likewise.
1350 * testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise.
1351 * testsuite/libstdc++-prettyprinters/91997.cc: Likewise.
1352 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
1354 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
1356 * testsuite/20_util/function_objects/searchers.cc: Remove
1357 -std=gnu++17 from dg-options directive.
1358 * testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc:
1360 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
1362 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc:
1364 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94831.cc:
1366 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc:
1368 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
1370 * testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc:
1372 * testsuite/25_algorithms/clamp/1.cc: Likewise.
1373 * testsuite/25_algorithms/clamp/2.cc: Likewise.
1374 * testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
1375 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc:
1377 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/pod.cc:
1379 * testsuite/25_algorithms/for_each/for_each_n.cc: Likewise.
1380 * testsuite/25_algorithms/for_each/for_each_n_debug.cc:
1382 * testsuite/25_algorithms/sample/1.cc: Likewise.
1383 * testsuite/25_algorithms/sample/2.cc: Likewise.
1384 * testsuite/25_algorithms/sample/3.cc: Likewise.
1385 * testsuite/25_algorithms/sample/81221.cc: Likewise.
1386 * testsuite/25_algorithms/search/searcher.cc: Likewise.
1387 * testsuite/26_numerics/exclusive_scan/1.cc: Likewise.
1388 * testsuite/26_numerics/inclusive_scan/1.cc: Likewise.
1389 * testsuite/26_numerics/reduce/1.cc: Likewise.
1390 * testsuite/26_numerics/reduce/2.cc: Likewise.
1391 * testsuite/26_numerics/transform_exclusive_scan/1.cc: Likewise.
1392 * testsuite/26_numerics/transform_inclusive_scan/1.cc: Likewise.
1393 * testsuite/26_numerics/transform_reduce/1.cc: Likewise.
1395 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
1397 * testsuite/23_containers/array/cons/deduction.cc: Remove
1398 -std=gnu++17 from dg-options directive.
1399 * testsuite/23_containers/array/cons/deduction_neg.cc: Likewise.
1400 * testsuite/23_containers/array/element_access/constexpr_c++17.cc:
1402 * testsuite/23_containers/array/requirements/constexpr_iter.cc:
1404 * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
1406 * testsuite/23_containers/deque/cons/deduction.cc: Likewise.
1407 * testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc:
1409 * testsuite/23_containers/forward_list/cons/deduction.cc:
1411 * testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc:
1413 * testsuite/23_containers/list/cons/deduction.cc: Likewise.
1414 * testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc:
1416 * testsuite/23_containers/map/cons/deduction.cc: Likewise.
1417 * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
1418 * testsuite/23_containers/map/modifiers/insert/83226.cc:
1420 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
1422 * testsuite/23_containers/map/modifiers/merge.cc: Likewise.
1423 * testsuite/23_containers/map/modifiers/try_emplace/1.cc:
1425 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
1426 * testsuite/23_containers/multimap/modifiers/extract.cc:
1428 * testsuite/23_containers/multimap/modifiers/merge.cc: Likewise.
1429 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
1430 * testsuite/23_containers/multiset/modifiers/extract.cc:
1432 * testsuite/23_containers/multiset/modifiers/merge.cc: Likewise.
1433 * testsuite/23_containers/priority_queue/deduction.cc: Likewise.
1434 * testsuite/23_containers/queue/deduction.cc: Likewise.
1435 * testsuite/23_containers/queue/members/emplace_cxx17_return.cc:
1437 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
1438 * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
1439 * testsuite/23_containers/set/modifiers/merge.cc: Likewise.
1440 * testsuite/23_containers/set/modifiers/node_swap.cc: Likewise.
1441 * testsuite/23_containers/stack/deduction.cc: Likewise.
1442 * testsuite/23_containers/stack/members/emplace_cxx17_return.cc:
1444 * testsuite/23_containers/unordered_map/cons/deduction.cc:
1446 * testsuite/23_containers/unordered_map/modifiers/extract.cc:
1448 * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
1450 * testsuite/23_containers/unordered_map/modifiers/merge.cc:
1452 * testsuite/23_containers/unordered_map/modifiers/try_emplace.cc:
1454 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
1456 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
1458 * testsuite/23_containers/unordered_multimap/modifiers/merge.cc:
1460 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
1462 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
1464 * testsuite/23_containers/unordered_multiset/modifiers/merge.cc:
1466 * testsuite/23_containers/unordered_set/cons/deduction.cc:
1468 * testsuite/23_containers/unordered_set/modifiers/extract.cc:
1470 * testsuite/23_containers/unordered_set/modifiers/merge.cc:
1472 * testsuite/23_containers/vector/bool/emplace_cxx17_return.cc:
1474 * testsuite/23_containers/vector/cons/89164_c++17.cc: Likewise.
1475 * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
1476 * testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc:
1479 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
1481 * testsuite/21_strings/basic_string/79162.cc: Remove
1482 -std=gnu++17 from dg-options directive.
1483 * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
1484 * testsuite/21_strings/basic_string/cons/char/79162.cc:
1486 * testsuite/21_strings/basic_string/cons/char/86138.cc:
1488 * testsuite/21_strings/basic_string/cons/char/9.cc: Likewise.
1489 * testsuite/21_strings/basic_string/cons/char/deduction.cc:
1491 * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc:
1493 * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
1494 * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc:
1496 * testsuite/21_strings/basic_string/cons/wchar_t/86138.cc:
1498 * testsuite/21_strings/basic_string/cons/wchar_t/9.cc: Likewise.
1499 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
1501 * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
1503 * testsuite/21_strings/basic_string/hash/hash.cc: Likewise.
1504 * testsuite/21_strings/basic_string/lwg2758.cc: Likewise.
1505 * testsuite/21_strings/basic_string/lwg2946.cc: Likewise.
1506 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
1508 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
1510 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
1512 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
1514 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
1516 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
1518 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1520 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
1522 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
1524 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
1526 * testsuite/21_strings/basic_string/operations/data/char/2.cc:
1528 * testsuite/21_strings/basic_string/operations/data/char/86169.cc:
1530 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc:
1532 * testsuite/21_strings/basic_string/operations/find/char/5.cc:
1534 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
1536 * testsuite/21_strings/basic_string/operators/char/5.cc:
1538 * testsuite/21_strings/basic_string/operators/wchar_t/5.cc:
1540 * testsuite/21_strings/basic_string_view/capacity/1.cc:
1542 * testsuite/21_strings/basic_string_view/capacity/empty_neg.cc:
1544 * testsuite/21_strings/basic_string_view/cons/char/1.cc:
1546 * testsuite/21_strings/basic_string_view/cons/char/2.cc:
1548 * testsuite/21_strings/basic_string_view/cons/char/3.cc:
1550 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
1552 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
1554 * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc:
1556 * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc:
1558 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
1560 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
1562 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
1564 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
1566 * testsuite/21_strings/basic_string_view/element_access/char/constexpr.cc:
1568 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
1570 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
1572 * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
1574 * testsuite/21_strings/basic_string_view/element_access/char/front_back_constexpr.cc:
1576 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
1578 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
1580 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
1582 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
1584 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr.cc:
1586 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
1588 * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
1590 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
1592 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
1594 * testsuite/21_strings/basic_string_view/include.cc: Likewise.
1595 * testsuite/21_strings/basic_string_view/inserters/94051.cc:
1597 * testsuite/21_strings/basic_string_view/inserters/char/1.cc:
1599 * testsuite/21_strings/basic_string_view/inserters/char/2.cc:
1601 * testsuite/21_strings/basic_string_view/inserters/char/3.cc:
1603 * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
1605 * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
1607 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
1609 * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
1611 * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
1613 * testsuite/21_strings/basic_string_view/literals/types.cc:
1615 * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
1617 * testsuite/21_strings/basic_string_view/literals/values.cc:
1619 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
1621 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
1623 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
1625 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
1627 * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
1629 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
1631 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
1633 * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
1635 * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
1637 * testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc:
1639 * testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc:
1641 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
1643 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
1645 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc:
1647 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
1649 * testsuite/21_strings/basic_string_view/operations/copy/char/2.cc:
1651 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
1653 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc:
1655 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
1657 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
1659 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
1661 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
1663 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
1665 * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
1667 * testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc:
1669 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
1671 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
1673 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
1675 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
1677 * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
1679 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
1681 * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
1683 * testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc:
1685 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
1687 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
1689 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
1691 * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
1693 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
1695 * testsuite/21_strings/basic_string_view/operations/substr/char/83511.cc:
1697 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
1699 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/83511.cc:
1701 * testsuite/21_strings/basic_string_view/operators/char/2.cc:
1703 * testsuite/21_strings/basic_string_view/operators/char/89446.cc:
1705 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
1707 * testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc:
1709 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
1711 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
1713 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
1715 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
1717 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
1719 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
1721 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc:
1723 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
1725 * testsuite/21_strings/basic_string_view/requirements/traits_neg.cc:
1727 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
1729 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
1730 * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
1731 * testsuite/21_strings/char_traits/requirements/char/99181.cc:
1733 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
1735 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
1737 * testsuite/20_util/memory_resource/1.cc: Remove -std=gnu++17
1738 from dg-options directive.
1739 * testsuite/20_util/memory_resource/2.cc: Likewise.
1740 * testsuite/20_util/monotonic_buffer_resource/1.cc: Likewise.
1741 * testsuite/20_util/monotonic_buffer_resource/93208.cc:
1743 * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
1745 * testsuite/20_util/monotonic_buffer_resource/deallocate.cc:
1747 * testsuite/20_util/monotonic_buffer_resource/release.cc:
1749 * testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc:
1751 * testsuite/20_util/polymorphic_allocator/1.cc: Likewise.
1752 * testsuite/20_util/polymorphic_allocator/construct_pair.cc:
1754 * testsuite/20_util/polymorphic_allocator/resource.cc: Likewise.
1755 * testsuite/20_util/polymorphic_allocator/select.cc: Likewise.
1756 * testsuite/20_util/synchronized_pool_resource/allocate.cc:
1758 * testsuite/20_util/synchronized_pool_resource/allocate_single.cc:
1760 * testsuite/20_util/synchronized_pool_resource/cons.cc:
1762 * testsuite/20_util/synchronized_pool_resource/cons_single.cc:
1764 * testsuite/20_util/synchronized_pool_resource/is_equal.cc:
1766 * testsuite/20_util/synchronized_pool_resource/multithreaded.cc:
1768 * testsuite/20_util/synchronized_pool_resource/options.cc:
1770 * testsuite/20_util/synchronized_pool_resource/release.cc:
1772 * testsuite/20_util/synchronized_pool_resource/release_single.cc:
1774 * testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc:
1776 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
1778 * testsuite/20_util/unsynchronized_pool_resource/cons.cc:
1780 * testsuite/20_util/unsynchronized_pool_resource/is_equal.cc:
1782 * testsuite/20_util/unsynchronized_pool_resource/options.cc:
1784 * testsuite/20_util/unsynchronized_pool_resource/release.cc:
1786 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
1788 * testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise.
1789 * testsuite/23_containers/deque/types/pmr_typedefs_debug.cc:
1791 * testsuite/23_containers/forward_list/pmr_typedefs.cc:
1793 * testsuite/23_containers/forward_list/pmr_typedefs_debug.cc:
1795 * testsuite/23_containers/list/pmr_typedefs.cc: Likewise.
1796 * testsuite/23_containers/list/pmr_typedefs_debug.cc: Likewise.
1797 * testsuite/23_containers/map/pmr_typedefs.cc: Likewise.
1798 * testsuite/23_containers/map/pmr_typedefs_debug.cc: Likewise.
1799 * testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise.
1800 * testsuite/23_containers/multimap/pmr_typedefs_debug.cc:
1802 * testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise.
1803 * testsuite/23_containers/multiset/pmr_typedefs_debug.cc:
1805 * testsuite/23_containers/set/pmr_typedefs.cc: Likewise.
1806 * testsuite/23_containers/set/pmr_typedefs_debug.cc: Likewise.
1807 * testsuite/23_containers/unordered_map/pmr_typedefs.cc:
1809 * testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc:
1811 * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc:
1813 * testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc:
1815 * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc:
1817 * testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc:
1819 * testsuite/23_containers/unordered_set/pmr_typedefs.cc:
1821 * testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc:
1823 * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise.
1824 * testsuite/23_containers/vector/types/pmr_typedefs_debug.cc:
1826 * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
1828 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
1830 * testsuite/29_atomics/atomic/69769.cc: Remove -std=gnu++17 from
1832 * testsuite/29_atomics/atomic/is_always_lock_free.cc:
1833 * testsuite/29_atomics/atomic/requirements/typedefs.cc:
1834 * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc:
1835 * testsuite/29_atomics/atomic_integral/requirements/typedefs.cc:
1836 * testsuite/30_threads/lock_guard/cons/deduction.cc: Likewise.
1837 * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
1838 * testsuite/30_threads/scoped_lock/cons/deduction.cc: Likewise.
1839 * testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc:
1841 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc:
1843 * testsuite/30_threads/shared_lock/70766.cc: Likewise.
1844 * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
1845 * testsuite/30_threads/shared_mutex/cons/assign_neg.cc:
1847 * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise.
1848 * testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
1850 * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
1851 * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
1852 * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
1853 * testsuite/30_threads/unique_lock/cons/deduction.cc: Likewise.
1855 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
1857 * testsuite/20_util/any/assign/1.cc: Remove -std=gnu++17 from
1858 dg-options directive.
1859 * testsuite/20_util/any/assign/2.cc: Likewise.
1860 * testsuite/20_util/any/assign/emplace.cc: Likewise.
1861 * testsuite/20_util/any/assign/exception.cc: Likewise.
1862 * testsuite/20_util/any/assign/self.cc: Likewise.
1863 * testsuite/20_util/any/cons/1.cc: Likewise.
1864 * testsuite/20_util/any/cons/2.cc: Likewise.
1865 * testsuite/20_util/any/cons/90415.cc: Likewise.
1866 * testsuite/20_util/any/cons/92156.cc: Likewise.
1867 * testsuite/20_util/any/cons/aligned.cc: Likewise.
1868 * testsuite/20_util/any/cons/explicit.cc: Likewise.
1869 * testsuite/20_util/any/cons/in_place.cc: Likewise.
1870 * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
1871 * testsuite/20_util/any/make_any.cc: Likewise.
1872 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
1873 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
1874 * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
1875 * testsuite/20_util/any/misc/swap.cc: Likewise.
1876 * testsuite/20_util/any/modifiers/1.cc: Likewise.
1877 * testsuite/20_util/any/modifiers/83658.cc: Likewise.
1878 * testsuite/20_util/any/modifiers/92156.cc: Likewise.
1879 * testsuite/20_util/any/observers/type.cc: Likewise.
1880 * testsuite/20_util/any/requirements.cc: Likewise.
1881 * testsuite/20_util/any/typedefs.cc: Likewise.
1882 * testsuite/20_util/optional/77288.cc: Likewise.
1883 * testsuite/20_util/optional/84601.cc: Likewise.
1884 * testsuite/20_util/optional/assignment/1.cc: Likewise.
1885 * testsuite/20_util/optional/assignment/2.cc: Likewise.
1886 * testsuite/20_util/optional/assignment/3.cc: Likewise.
1887 * testsuite/20_util/optional/assignment/4.cc: Likewise.
1888 * testsuite/20_util/optional/assignment/5.cc: Likewise.
1889 * testsuite/20_util/optional/assignment/6.cc: Likewise.
1890 * testsuite/20_util/optional/assignment/7.cc: Likewise.
1891 * testsuite/20_util/optional/assignment/8.cc: Likewise.
1892 * testsuite/20_util/optional/assignment/9.cc: Likewise.
1893 * testsuite/20_util/optional/bad_access.cc: Likewise.
1894 * testsuite/20_util/optional/cons/77727.cc: Likewise.
1895 * testsuite/20_util/optional/cons/85642.cc: Likewise.
1896 * testsuite/20_util/optional/cons/copy.cc: Likewise.
1897 * testsuite/20_util/optional/cons/deduction.cc: Likewise.
1898 * testsuite/20_util/optional/cons/default.cc: Likewise.
1899 * testsuite/20_util/optional/cons/move.cc: Likewise.
1900 * testsuite/20_util/optional/cons/trivial.cc: Likewise.
1901 * testsuite/20_util/optional/cons/value.cc: Likewise.
1902 * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
1903 * testsuite/20_util/optional/constexpr/cons/default.cc:
1905 * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
1906 * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
1907 * testsuite/20_util/optional/constexpr/make_optional.cc:
1909 * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
1910 * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
1911 * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
1912 * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
1913 * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
1914 * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
1915 * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
1916 * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
1917 * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
1918 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
1919 * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
1920 * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
1921 * testsuite/20_util/optional/hash.cc: Likewise.
1922 * testsuite/20_util/optional/in_place.cc: Likewise.
1923 * testsuite/20_util/optional/make_optional.cc: Likewise.
1924 * testsuite/20_util/optional/nullopt.cc: Likewise.
1925 * testsuite/20_util/optional/observers/1.cc: Likewise.
1926 * testsuite/20_util/optional/observers/2.cc: Likewise.
1927 * testsuite/20_util/optional/observers/3.cc: Likewise.
1928 * testsuite/20_util/optional/observers/4.cc: Likewise.
1929 * testsuite/20_util/optional/observers/5.cc: Likewise.
1930 * testsuite/20_util/optional/observers/6.cc: Likewise.
1931 * testsuite/20_util/optional/relops/1.cc: Likewise.
1932 * testsuite/20_util/optional/relops/2.cc: Likewise.
1933 * testsuite/20_util/optional/relops/3.cc: Likewise.
1934 * testsuite/20_util/optional/relops/4.cc: Likewise.
1935 * testsuite/20_util/optional/relops/5.cc: Likewise.
1936 * testsuite/20_util/optional/relops/6.cc: Likewise.
1937 * testsuite/20_util/optional/relops/7.cc: Likewise.
1938 * testsuite/20_util/optional/requirements.cc: Likewise.
1939 * testsuite/20_util/optional/swap/1.cc: Likewise.
1940 * testsuite/20_util/optional/swap/2.cc: Likewise.
1941 * testsuite/20_util/optional/typedefs.cc: Likewise.
1942 * testsuite/20_util/variant/80165.cc: Likewise.
1943 * testsuite/20_util/variant/85183.cc: Likewise.
1944 * testsuite/20_util/variant/86874.cc: Likewise.
1945 * testsuite/20_util/variant/87431.cc: Likewise.
1946 * testsuite/20_util/variant/87619.cc: Likewise.
1947 * testsuite/20_util/variant/91807.cc: Likewise.
1948 * testsuite/20_util/variant/any.cc: Likewise.
1949 * testsuite/20_util/variant/compile.cc: Likewise.
1950 * testsuite/20_util/variant/deduction.cc: Likewise.
1951 * testsuite/20_util/variant/exception_safety.cc: Likewise.
1952 * testsuite/20_util/variant/hash.cc: Likewise.
1953 * testsuite/20_util/variant/index_type.cc: Likewise.
1954 * testsuite/20_util/variant/relops/89851.cc: Likewise.
1955 * testsuite/20_util/variant/relops/90008.cc: Likewise.
1956 * testsuite/20_util/variant/run.cc: Likewise.
1957 * testsuite/20_util/variant/visit.cc: Likewise.
1959 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
1961 * testsuite/27_io/basic_filebuf/open/char/path.cc: Remove
1962 -std=gnu++17 from dg-options directive.
1963 * testsuite/27_io/basic_fstream/cons/char/path.cc: Likewise.
1964 * testsuite/27_io/basic_fstream/open/char/path.cc: Likewise.
1965 * testsuite/27_io/basic_ifstream/cons/char/path.cc: Likewise.
1966 * testsuite/27_io/basic_ifstream/open/char/path.cc: Likewise.
1967 * testsuite/27_io/basic_ofstream/cons/char/path.cc: Likewise.
1968 * testsuite/27_io/basic_ofstream/open/char/path.cc: Likewise.
1969 * testsuite/27_io/filesystem/directory_entry/86597.cc: Likewise.
1970 * testsuite/27_io/filesystem/directory_entry/lwg3171.cc:
1972 * testsuite/27_io/filesystem/file_status/1.cc: Likewise.
1973 * testsuite/27_io/filesystem/filesystem_error/cons.cc: Likewise.
1974 * testsuite/27_io/filesystem/filesystem_error/copy.cc: Likewise.
1975 * testsuite/27_io/filesystem/iterators/91067.cc: Likewise.
1976 * testsuite/27_io/filesystem/iterators/caching.cc: Likewise.
1977 * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
1979 * testsuite/27_io/filesystem/iterators/pop.cc: Likewise.
1980 * testsuite/27_io/filesystem/iterators/recursion_pending.cc:
1982 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
1984 * testsuite/27_io/filesystem/operations/absolute.cc: Likewise.
1985 * testsuite/27_io/filesystem/operations/all.cc: Likewise.
1986 * testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
1987 * testsuite/27_io/filesystem/operations/copy.cc: Likewise.
1988 * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
1989 * testsuite/27_io/filesystem/operations/create_directories.cc:
1991 * testsuite/27_io/filesystem/operations/create_directory.cc:
1993 * testsuite/27_io/filesystem/operations/create_symlink.cc:
1995 * testsuite/27_io/filesystem/operations/current_path.cc:
1997 * testsuite/27_io/filesystem/operations/equivalent.cc: Likewise.
1998 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
1999 * testsuite/27_io/filesystem/operations/file_size.cc: Likewise.
2000 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
2001 * testsuite/27_io/filesystem/operations/last_write_time.cc:
2003 * testsuite/27_io/filesystem/operations/permissions.cc:
2005 * testsuite/27_io/filesystem/operations/proximate.cc: Likewise.
2006 * testsuite/27_io/filesystem/operations/read_symlink.cc:
2008 * testsuite/27_io/filesystem/operations/relative.cc: Likewise.
2009 * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
2010 * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
2011 * testsuite/27_io/filesystem/operations/rename.cc: Likewise.
2012 * testsuite/27_io/filesystem/operations/resize_file.cc:
2014 * testsuite/27_io/filesystem/operations/space.cc: Likewise.
2015 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
2016 * testsuite/27_io/filesystem/operations/symlink_status.cc:
2018 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
2020 * testsuite/27_io/filesystem/operations/weakly_canonical.cc:
2022 * testsuite/27_io/filesystem/path/append/path.cc: Likewise.
2023 * testsuite/27_io/filesystem/path/append/source.cc: Likewise.
2024 * testsuite/27_io/filesystem/path/assign/assign.cc: Likewise.
2025 * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
2026 * testsuite/27_io/filesystem/path/compare/compare.cc: Likewise.
2027 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
2028 * testsuite/27_io/filesystem/path/compare/path.cc: Likewise.
2029 * testsuite/27_io/filesystem/path/compare/strings.cc: Likewise.
2030 * testsuite/27_io/filesystem/path/concat/92853.cc: Likewise.
2031 * testsuite/27_io/filesystem/path/concat/94063.cc: Likewise.
2032 * testsuite/27_io/filesystem/path/concat/path.cc: Likewise.
2033 * testsuite/27_io/filesystem/path/concat/strings.cc: Likewise.
2034 * testsuite/27_io/filesystem/path/construct/80762.cc: Likewise.
2035 * testsuite/27_io/filesystem/path/construct/90281.cc: Likewise.
2036 * testsuite/27_io/filesystem/path/construct/90634.cc: Likewise.
2037 * testsuite/27_io/filesystem/path/construct/copy.cc: Likewise.
2038 * testsuite/27_io/filesystem/path/construct/default.cc:
2040 * testsuite/27_io/filesystem/path/construct/format.cc: Likewise.
2041 * testsuite/27_io/filesystem/path/construct/locale.cc: Likewise.
2042 * testsuite/27_io/filesystem/path/construct/range.cc: Likewise.
2043 * testsuite/27_io/filesystem/path/construct/string_view.cc:
2045 * testsuite/27_io/filesystem/path/decompose/extension.cc:
2047 * testsuite/27_io/filesystem/path/decompose/filename.cc:
2049 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
2051 * testsuite/27_io/filesystem/path/decompose/relative_path.cc:
2053 * testsuite/27_io/filesystem/path/decompose/root_directory.cc:
2055 * testsuite/27_io/filesystem/path/decompose/root_name.cc:
2057 * testsuite/27_io/filesystem/path/decompose/root_path.cc:
2059 * testsuite/27_io/filesystem/path/decompose/stem.cc: Likewise.
2060 * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc:
2062 * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise.
2063 * testsuite/27_io/filesystem/path/generation/normal.cc:
2065 * testsuite/27_io/filesystem/path/generation/normal2.cc:
2067 * testsuite/27_io/filesystem/path/generation/proximate.cc:
2069 * testsuite/27_io/filesystem/path/generation/relative.cc:
2071 * testsuite/27_io/filesystem/path/generic/94242.cc: Likewise.
2072 * testsuite/27_io/filesystem/path/generic/generic_string.cc:
2074 * testsuite/27_io/filesystem/path/generic/utf.cc: Likewise.
2075 * testsuite/27_io/filesystem/path/generic/wchar_t.cc: Likewise.
2076 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
2077 * testsuite/27_io/filesystem/path/itr/components.cc: Likewise.
2078 * testsuite/27_io/filesystem/path/itr/traversal.cc: Likewise.
2079 * testsuite/27_io/filesystem/path/modifiers/clear.cc: Likewise.
2080 * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
2082 * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc:
2084 * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
2086 * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
2088 * testsuite/27_io/filesystem/path/modifiers/swap.cc: Likewise.
2089 * testsuite/27_io/filesystem/path/native/alloc.cc: Likewise.
2090 * testsuite/27_io/filesystem/path/native/string-char8_t.cc:
2092 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
2093 * testsuite/27_io/filesystem/path/nonmember/append.cc: Likewise.
2094 * testsuite/27_io/filesystem/path/nonmember/cmp.cc: Likewise.
2095 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
2097 * testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
2098 * testsuite/27_io/filesystem/path/query/empty_neg.cc:
2099 * testsuite/27_io/filesystem/path/query/has_extension.cc:
2101 * testsuite/27_io/filesystem/path/query/has_filename.cc:
2103 * testsuite/27_io/filesystem/path/query/has_parent_path.cc:
2105 * testsuite/27_io/filesystem/path/query/has_relative_path.cc:
2107 * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
2109 * testsuite/27_io/filesystem/path/query/has_root_name.cc:
2111 * testsuite/27_io/filesystem/path/query/has_root_path.cc:
2113 * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
2114 * testsuite/27_io/filesystem/path/query/is_absolute.cc:
2116 * testsuite/27_io/filesystem/path/query/is_relative.cc:
2118 * testsuite/experimental/filesystem/path/construct/string_view.cc:
2121 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
2123 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc:
2124 Remove -std=gnu++17 from dg-options.
2125 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
2127 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc:
2129 * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc:
2131 * testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise.
2132 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
2134 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
2136 * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc:
2138 * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc:
2140 * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
2142 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
2144 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
2146 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
2148 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc:
2150 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc:
2152 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc:
2154 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
2156 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
2158 * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc:
2160 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
2162 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc:
2164 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
2166 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
2168 * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc:
2170 * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc:
2172 * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc:
2174 * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc:
2176 * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc:
2178 * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc:
2180 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
2182 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
2184 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc:
2186 * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc:
2188 * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
2190 * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc:
2192 * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
2194 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc:
2196 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
2198 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
2200 * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
2202 * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: Likewise.
2203 * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc:
2205 * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
2207 * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
2209 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc:
2211 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
2213 * testsuite/25_algorithms/pstl/alg_sorting/set.cc: Likewise.
2214 * testsuite/25_algorithms/pstl/alg_sorting/sort.cc: Likewise.
2215 * testsuite/25_algorithms/pstl/feature_test-2.cc: Likewise.
2216 * testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise.
2217 * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise.
2218 * testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise.
2219 * testsuite/25_algorithms/pstl/feature_test.cc: Likewise.
2220 * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc:
2222 * testsuite/26_numerics/pstl/numeric_ops/reduce.cc: Likewise.
2223 * testsuite/26_numerics/pstl/numeric_ops/scan.cc: Likewise.
2224 * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
2226 * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc:
2229 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
2231 * testsuite/20_util/scoped_allocator/69293_neg.cc: Add dg-error
2232 for additional errors in C++20.
2233 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
2235 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
2236 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
2238 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
2240 * testsuite/20_util/variant/compile.cc: Rename 'any' to avoid
2241 clash with std::any.
2243 2021-05-07 Jonathan Wakely <jwakely@redhat.com>
2245 * include/std/istream (__rvalue_stream_extraction_t): Replace
2246 use of __rval_streamable.
2247 * include/std/ostream (__rvalue_stream_insertion_t): Likewise.
2248 (__rval_streamable): Remove.
2249 (_Require_derived_from_ios_base, __derived_from_ios_base): New
2250 helper for checking constraints.
2251 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Fix
2252 reference to the wrong subclause of the standard.
2253 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
2255 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
2257 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
2259 * testsuite/27_io/basic_ostream/inserters_other/char/99692.cc:
2261 * testsuite/27_io/filesystem/path/io/dr2989.cc: Adjust pruned
2264 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
2266 * include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
2267 Improve static_assert messages.
2268 * testsuite/25_algorithms/copy/58982.cc: Adjust expected output.
2269 * testsuite/25_algorithms/copy_n/58982.cc: Likewise.
2271 2021-05-06 Patrick Palka <ppalka@redhat.com>
2273 * include/std/ranges (filter_view::_Iterator::base): Make the
2274 const& overload unconstrained and return a const reference as
2275 per LWG 3533. Make unconditionally noexcept.
2276 (transform_view::_Iterator::base): Likewise.
2277 (elements_view::_Iterator::base): Likewise.
2279 2021-05-06 Patrick Palka <ppalka@redhat.com>
2281 * include/bits/stl_iterator.h (move_iterator::base): Make the
2282 const& overload unconstrained and return a const reference as
2283 per LWG 3391. Make unconditionally noexcept.
2284 (counted_iterator::base): Likewise.
2285 * testsuite/24_iterators/move_iterator/lwg3391.cc: New test.
2286 * testsuite/24_iterators/move_iterator/move_only.cc: Adjust
2287 has_member_base concept to decay-copy the result of base().
2289 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
2291 * include/std/type_traits (remove_cvref_t): Define in terms of
2293 * testsuite/20_util/remove_cvref/value.cc: Check alias.
2295 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
2298 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
2300 * include/std/charconv (__from_chars_alnum): Pass unsigned
2301 char to std::isdigit.
2303 2021-05-05 Patrick Palka <ppalka@redhat.com>
2305 * include/bits/ranges_util.h (enable_borrowed_range<subrange>):
2306 Remove constraints on this partial specialization.
2307 * include/std/ranges (enable_borrowed_range<iota_view>):
2310 2021-05-05 Patrick Palka <ppalka@redhat.com>
2312 * include/std/ranges (transform_view::_Iterator::iter_swap):
2313 Remove as per LWG 3520.
2314 (join_view::_Iterator::iter_swap): Add indirectly_swappable
2315 constraint as per LWG 3517.
2317 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
2319 * testsuite/20_util/function_objects/invoke/3.cc: Check feature
2321 * testsuite/20_util/function_objects/invoke/version.cc: New test.
2323 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
2325 * include/std/charconv (__from_chars_alnum): Pass unsigned
2326 char to std::isdigit.
2328 2021-05-05 Corentin Gay <gay@adacore.com>
2330 * acinclude.m4: Add VxWorks-specific case for the
2331 configuration of ctypes.
2332 * configure: Regenerate.
2333 * config/locale/vxworks/ctype_members.cc: Add VxWorks-specific
2335 * config/os/vxworks/ctype_base.h: Adjust for VxWorks7+.
2336 * config/os/vxworks/ctype_configure_char.cc: Likewise.
2337 * config/os/vxworks/ctype_inline.h: Likewise.
2338 * testsuite/28_regex/traits/char/isctype.cc: Defines
2339 NEWLINE_IN_CLASS_BLANK if the target is VxWorks.
2340 * testsuite/28_regex/traits/wchar_t/isctype.cc: Likewise.
2342 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
2344 * include/std/future (promise::set_value): Check for existence
2345 of shared state before dereferncing it.
2346 (promise::set_exception, promise::set_value_at_thread_exit)
2347 (promise::set_exception_at_thread_exit): Likewise.
2348 (promise<R&>::set_value, promise<R&>::set_exception)
2349 (promise<R&>::set_value_at_thread_exit)
2350 (promise<R&>::set_exception_at_thread_exit): Likewise.
2351 (promise<void>::set_value, promise<void>::set_exception)
2352 (promise<void>::set_value_at_thread_exit)
2353 (promise<void>::set_exception_at_thread_exit): Likewise.
2354 * testsuite/30_threads/promise/members/at_thread_exit2.cc:
2355 Remove unused variable.
2357 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
2359 * include/bits/basic_string.h (basic_string(const CharT*, const A&)):
2360 Do not do arithmetic on null pointer.
2362 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
2364 * include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
2365 (find_key_pointer(key_const_reference, false_type))
2366 (find_key_pointer(key_const_reference, true_type)): Do not
2367 dereference null pointer.
2369 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
2371 * testsuite/20_util/from_chars/3.cc: Use unsigned type to avoid
2373 * testsuite/24_iterators/reverse_iterator/2.cc: Do not add
2374 non-zero value to null pointer.
2375 * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc:
2376 Use past-the-end iterator for result.
2377 * testsuite/25_algorithms/move_backward/69478.cc: Likewise.
2378 * testsuite/25_algorithms/move_backward/93872.cc: Likewise.
2380 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
2383 * include/std/variant (__get_t): New alias template yielding the
2384 return type of std::get<N> on a variant.
2385 (__visit_result_t): New alias template yielding the result of
2387 (__same_types): Move into namespace __detail::__variant.
2388 (__check_visitor_results): Likewise. Use __invoke_result_t and
2390 (__check_visitor_result): Remove.
2391 (visit): Use __visit_result_t for return type.
2392 * testsuite/20_util/variant/100384.cc: New test.
2394 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
2396 * acinclude.m4 (GLIBCXX_ENABLE_INT128_FLOAT128): Remove
2397 checks for __int128 and rename to GLIBCXX_ENABLE_FLOAT128.
2398 * config.h.in: Regenerate.
2399 * configure: Regenerate.
2400 * configure.ac: Adjust to use GLIBCXX_ENABLE_FLOAT128.
2401 * include/bits/random.h (_Select_uint_least_t<s, 1>):
2402 Use __SIZEOF_INT128__ to decide whether to use __int128.
2403 * include/std/charconv (__to_chars_unsigned_type): Likewise.
2405 2021-05-03 Gerald Pfeifer <gerald@pfeifer.com>
2407 * doc/xml/manual/ctype.xml: Move unix.org reference to https.
2408 * doc/html/manual/facets.html: Regenerate.
2410 2021-04-30 Patrick Palka <ppalka@redhat.com>
2412 * include/std/ranges (__detail::__non_propating_cache): Define
2414 (join_view): Remove constraints on the value and reference types
2415 of the wrapped iterator type as per P2328.
2416 (join_view::_Iterator::_M_satisfy): Adjust as per P2328.
2417 (join_view::_Iterator::operator++): Likewise.
2418 (join_view::_M_inner): Use __non_propating_cache as per P2328.
2419 Remove now-redundant use of __maybe_present_t.
2420 * testsuite/std/ranges/adaptors/join.cc: Include <array>.
2423 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
2425 * include/bits/basic_string.h (__cpp_lib_constexpr_string):
2426 Only define for C++17 and later.
2427 * include/std/version (__cpp_lib_semaphore): Fix condition
2428 to match the one in <semaphore>.
2430 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
2432 * acinclude.m4 (GLIBCXX_CHECK_INT64_T): Delete.
2433 * config.h.in: Regenerate.
2434 * configure: Regenerate.
2435 * configure.ac: Do not use GLIBCXX_CHECK_INT64_T.
2436 * include/bits/postypes.h: Remove include of <stdint.h> and
2437 definition/undefinition of the __STDC_LIMIT_MACROS and
2438 __STDC_CONSTANT_MACROS macros.
2439 (streamoff): Use __INT64_TYPE__ if defined.
2441 2021-04-30 Patrick Palka <ppalka@redhat.com>
2443 * include/std/ranges (split_view::_InnerIter::operator++):
2444 Depend on _Base instead of _Vp directly, as per LWG 3532.
2446 2021-04-30 Patrick Palka <ppalka@redhat.com>
2448 * include/bits/ranges_util.h (subrange::subrange): Avoid
2449 list-initialization in delegating constructor.
2450 * include/std/ranges (single_view): Replace implicit guide
2451 with explicit deduction guide that decays its argument.
2452 (_Single::operator()): Avoid CTAD when constructing the
2454 (_Iota::operator()): Avoid list-initialization.
2455 (__detail::__can_filter_view, _Filter::operator()): Likewise.
2456 (__detail::__can_transform_view, _Transform::operator()): Likewise.
2457 (take_view::begin): Likewise.
2458 (__detail::__can_take_view, _Take::operator()): Likewise.
2459 (__detail::__can_take_while_view, _TakeWhile::operator()): Likewise.
2460 (__detail::__can_drop_view, _Drop::operator()): Likewise.
2461 (__detail::__can_drop_while_view, _DropWhile::operator()): Likewise.
2462 (split_view::split_view): Use views::single when initializing
2464 (__detail::__can_split_view, _Split::operator()): Avoid
2465 list-initialization.
2466 (_Counted::operator()): Likewise.
2467 * testsuite/std/ranges/p2367.cc: New test.
2469 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
2472 * include/bits/basic_ios.tcc (basic_ios::copyfmt): use
2474 * include/bits/basic_string.tcc (basic_string::swap)
2475 (basic_string::assign): Likewise.
2476 * include/bits/deque.tcc (deque::operator=(const deque&)):
2478 * include/bits/stl_tree.h (_Rb_tree::operator=(const * _Rb_tree&)):
2480 * include/bits/vector.tcc (vector::operator=(const vector&)):
2483 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
2485 * include/std/istream (operator>>(Istream&&, x&)): Simplify, as
2487 * include/std/ostream (operator<<(Ostream&&, const x&)):
2489 * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc:
2490 Adjust dg-error pattern.
2491 * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc:
2493 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Define
2494 is_extractable trait to replace std::__is_extractable. Make it
2495 work with rvalue streams as well as lvalues, to replace f() and
2496 g() helper functions.
2497 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
2499 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
2500 Define is_insertable trait to replace std::__is_insertable. Make
2501 it work with rvalue streams as well as lvalues, to replace f()
2502 and g() helper functions.
2503 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
2505 * testsuite/27_io/filesystem/path/io/dr2989.cc: Prune additional
2506 errors from new constraints.
2507 * testsuite/27_io/rvalue_streams-2.cc: Remove PR 80675 checks,
2508 which are no longer expected to compile.
2509 * testsuite/27_io/rvalue_streams.cc: Adjust existing test.
2510 Verify LWG 1203 changes.
2512 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
2515 * include/experimental/socket (__basic_socket_impl::set_option)
2516 (__basic_socket_impl::get_option) [!_GLIBCXX_HAVE_SYS_SOCKET_H]:
2517 Just set error code.
2518 * testsuite/experimental/net/socket/socket_base.cc: CHeck
2519 for <sys/socket.h> not <socket.h>.
2521 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
2526 * testsuite/experimental/net/internet/address/v4/comparisons.cc:
2527 Use new effective-target keyword.
2528 * testsuite/experimental/net/internet/address/v4/cons.cc:
2530 * testsuite/experimental/net/internet/address/v4/creation.cc:
2532 * testsuite/experimental/net/internet/address/v4/members.cc:
2534 * testsuite/experimental/net/internet/address/v6/members.cc:
2536 * testsuite/experimental/net/internet/resolver/base.cc:
2538 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
2540 * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
2542 * testsuite/experimental/net/internet/socket/opt.cc:
2544 * testsuite/experimental/net/internet/tcp.cc:
2546 * testsuite/experimental/net/internet/udp.cc:
2548 * testsuite/lib/libstdc++.exp (check_effective_target_net_ts_ip):
2549 New proc to check net_ts_ip et.
2551 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
2554 * testsuite/20_util/pair/requirements/structural.cc: New test.
2556 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
2558 * include/bits/stl_pair.h (pair) [__cplusplus > 202002]: Add
2559 new definitions for constructors and assignment operators using
2560 concepts for constraints.
2561 * testsuite/20_util/pair/cons/99957.cc: Disable for C++20 and
2563 * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust
2564 expected error messages to also match C++20 errors.
2566 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
2569 * include/bits/stl_pair.h (_PCC::_MoveCopyPair, _PCC::_CopyMovePair):
2570 Combine and replace with ...
2571 (_PCC::_DeprConsPair): New SFINAE helper function.
2572 (pair): Merge preprocessor blocks so that all C++03 members
2573 are defined together at the end.
2574 (pair::pair(const _T1&, _U2&&), pair::pair(_U1&&, const _T2&)):
2575 Replace _T1 and _T2 parameters with __null_ptr_constant and
2577 * testsuite/20_util/pair/40925.cc: Use nullptr instead of 0.
2578 * testsuite/20_util/pair/cons/explicit_construct.cc: Likewise.
2579 * testsuite/20_util/pair/cons/99957.cc: New test.
2581 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
2583 * include/bits/basic_string.h (__cpp_lib_constexpr_string): Define.
2584 * include/std/version (__cpp_lib_constexpr_string): Define.
2585 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
2586 Check for __cpp_lib_constexpr_string.
2587 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
2589 * testsuite/21_strings/char_traits/requirements/version.cc: New test.
2591 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
2593 * doc/Makefile.am (stamp-pdf-doxygen): Improve comment about
2594 dealing with errors. Use '@' to prevent shell command being
2596 * doc/Makefile.in: Regenerate.
2598 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
2601 * include/bits/std_thread.h (thread::hardware_concurrency): Add
2602 missing noexcept to inline definition for non-gthreads targets.
2604 2021-04-28 Patrick Palka <ppalka@redhat.com>
2610 * include/bits/ranges_algo.h (__search_n_fn::operator()): Give
2611 the __value_comp lambda an explicit bool return type.
2612 (__is_permutation_fn::operator()): Give the __proj_scan local
2613 variable auto&& return type. Give the __comp_scan lambda an
2614 explicit bool return type.
2615 (__remove_fn::operator()): Give the __pred lambda an explicit
2617 (__partition_fn::operator()): Don't std::move __first twice
2618 when returning an empty subrange.
2619 (__min_fn::operator()): Don't std::move __comp.
2620 (__max_fn::operator()): Likewise.
2621 (__minmax_fn::operator()): Likewise.
2623 2021-04-27 Patrick Palka <ppalka@redhat.com>
2626 * include/std/ranges (join_view::_Iterator::operator++): Correct
2627 the return type of the lambda to avoid returning a copy of
2628 _M_parent->_M_inner.
2629 * testsuite/std/ranges/adaptors/join.cc (test10): New test.
2631 2021-04-27 Jakub Jelinek <jakub@redhat.com>
2634 2021-04-22 Jakub Jelinek <jakub@redhat.com>
2637 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
2639 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
2642 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
2644 * include/experimental/internet (address_v6::bytes_type): Adjust
2646 (basic_endpoint): Define _M_is_v6() to put all checks for
2647 AF_INET6 in one place.
2648 (basic_endpoint::resize): Simplify.
2649 (operator==(const tcp&, const tcp&)): Add constexpr and noexcept.
2650 (operator!=(const tcp&, const tcp&)): Likewise.
2651 (operator==(const udp&, const udp&)): Likewise.
2652 (operator!=(const udp&, const udp&)): Likewise.
2653 * testsuite/experimental/net/internet/tcp.cc: New test.
2654 * testsuite/experimental/net/internet/udp.cc: New test.
2656 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
2659 * include/experimental/internet (resolver_errc, resolver_category())
2660 (make_error_code, make_error_condition): Define unconditionally,
2661 only make enumerators and use of gai_strerror depend on the
2662 availability of <netdb.h>.
2663 (address_v4::to_string): Use correct constant for string length.
2664 (address_v4::to_string, address_v6::to_string): Define
2665 unconditionally, throw if unsupported.
2666 (make_address_v4, make_address_v6): Define unconditionally.
2667 Return an error if unsupported.
2668 (tcp, udp, v6_only, unicast::hops, multicast::*): Define
2670 * testsuite/experimental/net/internet/socket/opt.cc: Check for
2671 <netinet/in.h> and <netinet/tcp.h> before using types from
2674 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
2677 * include/experimental/internet (resolver_base::flags):
2678 Define overloaded operators as hidden friends.
2679 * include/experimental/socket (socket_base::message_flags):
2682 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
2684 * include/experimental/internet (tcp::no_delay, v6_only)
2685 (unicast::hops, multicast::hops, multicast::enable_loopback):
2686 Change access of base class and static data members. Add
2687 using-declaration for __socket_crtp::operator=(_Tp).
2688 (multicast::__mcastopt): New type.
2689 (multicast::join_group, multicast::leave_group): Derive from
2690 __mcastopt for common implementation.
2691 * include/experimental/socket: Add comment.
2692 * testsuite/experimental/net/internet/socket/opt.cc: New test.
2693 * testsuite/experimental/net/socket/socket_base.cc: Check for
2694 protected constructor/destructor of socket_base. Check for
2695 explicit constructors of socket option classes.
2697 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
2699 * include/experimental/bits/net.h (__socket_base): Add
2700 bool template parameter to allow BooleanSocketOption and
2701 IntegerSocketOption to have different __socket_base<int>
2703 (__socket_base<bool>): Adjust base class.
2704 (__socket_base<int>): Add partial specialization.
2705 (__socket_crtp::operator=(_Tp)): Add noexcept-specifier.
2706 * include/experimental/socket (socket_base::broadcast)
2707 (socket_base::debug, socket_base::do_not_route)
2708 (socket_base::keep_alive, socket_base::linger)
2709 (socket_base::out_of_band_inline)
2710 (socket_base::receive_buffer_size)
2711 (socket_base::receive_low_watermark)
2712 (socket_base::reuse_address, socket_base::send_buffer_size)
2713 (socket_base::send_low_watermark): Add using-declaration for
2714 __socket_crtp::operator=(_Tp).
2715 * testsuite/experimental/net/socket/socket_base.cc: Check
2716 properties of socket option types.
2718 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
2720 * include/experimental/internet (resolver_base::flags): Remove
2721 enumerators. Initialize constants directly with desired values.
2722 Make all operators constexpr and noexcept.
2723 * testsuite/experimental/net/internet/resolver/base.cc: Use
2724 __gnu_test::test_bitmask_values for bitmask type. Check
2725 construction and destruction is protected.
2727 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
2729 * include/bits/semaphore_base.h: Include <exception> and <errno.h>.
2731 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
2734 * include/experimental/internet (net::ip::make_error_code)
2735 (net::ip::make_error_condition, net::ip::make_network_v4)
2736 (net::ip::operator==(const udp&, const udp&)): Add 'inline'.
2738 2021-04-24 David Edelsohn <dje.gcc@gmail.com>
2740 * testsuite/lib/dg-options.exp (atomic_link_flags): New.
2741 (add_options_for_libatomic): Use atomic_link_flags.
2743 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
2746 * include/experimental/io_context (io_context): Define
2747 dummy_pollfd type so that most member functions still compile
2748 without <poll.h> and struct pollfd.
2750 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
2752 * include/experimental/io_context (io_context::async_wait): Add
2754 * include/experimental/socket (basic_socket::async_connect):
2755 Cast wait_type constant to int.
2756 (basic_datagram_socket::async_receive): Likewise.
2757 (basic_datagram_socket::async_receive_from): Likewise.
2758 (basic_datagram_socket::async_send): Likewise.
2759 (basic_datagram_socket::async_send_to): Likewise.
2760 (basic_stream_socket::async_receive): Likewise.
2761 (basic_stream_socket::async_send): Likewise. Use io_context
2762 parameter directly, instead of via an executor.
2763 (basic_socket_acceptor::async_accept): Likewise.
2765 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
2767 * include/experimental/socket (socket_base::shutdown_type):
2768 (socket_base::wait_type, socket_base::message_flags):
2769 Remove enumerators. Initialize constants directly with desired
2771 (socket_base::message_flags): Make all operators constexpr and
2773 * testsuite/util/testsuite_common_types.h (test_bitmask_values):
2775 * testsuite/experimental/net/socket/socket_base.cc: New test.
2777 2021-04-22 David Edelsohn <dje.gcc@gmail.com>
2779 * config/os/aix/atomicity.h: Delete.
2781 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
2783 * include/bits/atomic_timed_wait.h (__cond_wait_until_impl):
2784 Handle system_clock as well as steady_clock.
2785 * testsuite/30_threads/semaphore/try_acquire_for.cc: Re-enable.
2786 * testsuite/30_threads/semaphore/try_acquire_until.cc:
2789 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
2791 * testsuite/30_threads/semaphore/try_acquire_posix.cc: Add
2792 options for libatomic.
2794 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
2796 * config/os/gnu-linux/os_defines.h: Fix type in comment.
2798 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
2801 * include/bits/shared_ptr.h (allocate_shared): Assert that _Tp
2802 is not an array type.
2803 * include/bits/shared_ptr_base.h (__allocate_shared): Likewise.
2804 * testsuite/20_util/shared_ptr/creation/99006.cc: New test.
2806 2021-04-22 Thomas Rodgers <rodgert@twrodgers.com>
2808 * include/bits/atomic_wait.h: Always notify waiters in the
2809 case of 'bare' address notification.
2811 2021-04-22 Jakub Jelinek <jakub@redhat.com>
2814 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
2816 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
2819 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
2822 * include/bits/semaphore_base.h: Remove #error.
2823 * include/std/semaphore: Do not define anything unless one of
2824 the implementations is available.
2826 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
2828 * include/bits/semaphore_base.h: Always reload __old in
2829 __atomic_semaphore::_S_do_try_acquire().
2830 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
2833 2021-04-21 Philippe Blain <levraiphilippeblain@gmail.com>
2834 Jonathan Wakely <jwakely@redhat.com>
2837 * python/Makefile.am: Install libstdc++*-gdb.py more robustly.
2838 * python/Makefile.in: Regenerate.
2840 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
2842 * include/bits/semaphore_base.h: Add missing _M_try_acquire()
2843 member to __platform_wait.
2845 2021-04-21 Jonathan Wakely <jwakely@redhat.com>
2847 * include/std/latch: Replace tab characters in license text.
2848 * include/std/semaphore: Likewise.
2850 2021-04-21 Jakub Jelinek <jakub@redhat.com>
2853 * acinclude.m4: For POSIX semaphores AC_DEFINE HAVE_POSIX_SEMAPHORE
2854 rather than _GLIBCXX_HAVE_POSIX_SEMAPHORE.
2855 * configure: Regenerated.
2856 * config.h.in: Regenerated.
2858 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
2860 * testsuite/30_threads/semaphore/try_acquire_for.cc: Disable
2861 test for targets not using futexes for semaphores.
2862 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
2863 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
2864 Disable for all targets.
2866 2021-04-20 Thomas Rodgers <trodgers@redhat.com>
2868 * include/Makefile.am: Add new <bits/this_thread_sleep.h> header.
2869 * include/Makefile.in: Regenerate.
2870 * include/bits/this_thread_sleep.h: New file.
2871 * include/bits/atomic_base.h: Adjust all calls
2872 to __atomic_wait/__atomic_notify for new call signatures.
2873 * include/bits/atomic_timed_wait.h: Extensive rewrite.
2874 * include/bits/atomic_wait.h: Likewise.
2875 * include/bits/semaphore_base.h: Adjust all calls
2876 to __atomic_wait/__atomic_notify for new call signatures.
2877 * include/std/atomic: Likewise.
2878 * include/std/barrier: Likewise.
2879 * include/std/latch: Likewise.
2880 * include/std/semaphore: Likewise.
2881 * include/std/thread (this_thread::sleep_for)
2882 (this_thread::sleep_until): Move to new header.
2883 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Simplify
2885 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
2886 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
2887 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
2888 * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
2889 * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
2890 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Likewise.
2892 2021-04-20 Patrick Palka <ppalka@redhat.com>
2895 * include/bits/stl_iterator.h (__detail::__move_iter_cat):
2897 (move_iterator): Derive from the above in C++20 in order to
2898 conditionally define iterator_category as per P2259.
2899 (move_iterator::__base_cat): No longer used, so remove.
2900 (move_iterator::iterator_category): Remove in C++20.
2901 (__detail::__common_iter_use_postfix_proxy): Define.
2902 (common_iterator::_Proxy): Rename to ...
2903 (common_iterator:__arrow_proxy): ... this.
2904 (common_iterator::__postfix_proxy): Define as per P2259.
2905 (common_iterator::operator->): Adjust.
2906 (common_iterator::operator++): Adjust as per P2259.
2907 (iterator_traits<common_iterator>::_S_iter_cat): Define.
2908 (iterator_traits<common_iterator>::iterator_category): Change as
2910 (__detail::__counted_iter_value_type): Define.
2911 (__detail::__counted_iter_concept): Define.
2912 (__detail::__counted_iter_cat): Define.
2913 (counted_iterator): Derive from the above three classes in order
2914 to conditionally define value_type, iterator_concept and
2915 iterator category respectively as per P2259.
2916 (counted_iterator::operator->): Define as per P2259.
2917 (incrementable_traits<counted_iterator>): Remove as per P2259.
2918 (iterator_traits<counted_iterator>): Adjust as per P2259.
2919 * include/std/ranges (__detail::__iota_view_iter_cat): Define.
2920 (iota_view::_Iterator): Derive from the above in order to
2921 conditionally define iterator_category as per P2259.
2922 (iota_view::_S_iter_cat): Rename to ...
2923 (iota_view::_S_iter_concept): ... this.
2924 (iota_view::iterator_concept): Use it to apply LWG 3291 changes.
2925 (iota_view::iterator_category): Remove.
2926 (__detail::__filter_view_iter_cat): Define.
2927 (filter_view::_Iterator): Derive from the above in order to
2928 conditionally define iterator_category as per P2259.
2929 (filter_view::_Iterator): Move to struct __filter_view_iter_cat.
2930 (filter_view::_Iterator::iterator_category): Remove.
2931 (transform_view::_Base): Define.
2932 (transform_view::__iter_cat): Define.
2933 (transform_view::_Iterator): Derive from the above in order to
2934 conditionally define iterator_category as per P2259.
2935 (transform_view::_Iterator::_Base): Just alias
2936 transform_view::_Base.
2937 (transform_view::_Iterator::_S_iter_cat): Move to struct
2938 transform_view::__iter_cat.
2939 (transform_view::_Iterator::iterator_category): Remove.
2940 (transform_view::_Sentinel::_Base): Just alias
2941 transform_view::_Base.
2942 (join_view::_Base): Define.
2943 (join_view::_Outer_iter): Define.
2944 (join_view::_Inner_iter): Define.
2945 (join_view::_S_ref_is_glvalue): Define.
2946 (join_view::__iter_cat): Define.
2947 (join_view::_Iterator): Derive from it in order to conditionally
2948 define iterator_category as per P2259.
2949 (join_view::_Iterator::_Base): Just alias join_view::_Base.
2950 (join_view::_Iterator::_S_ref_is_glvalue): Just alias
2951 join_view::_S_ref_is_glvalue.
2952 (join_view::_Iterator::_S_iter_cat): Move to struct
2953 transform_view::__iter_cat.
2954 (join_view::_Iterator::_Outer_iter): Just alias
2955 join_view::_Outer_iter.
2956 (join_view::_Iterator::_Inner_iter): Just alias
2957 join_view::_Inner_iter.
2958 (join_view::_Iterator::iterator_category): Remove.
2959 (join_view::_Sentinel::_Base): Just alias join_view::_Base.
2960 (__detail::__split_view_outer_iter_cat): Define.
2961 (__detail::__split_view_inner_iter_cat): Define.
2962 (split_view::_Base): Define.
2963 (split_view::_Outer_iter): Derive from __split_view_outer_iter_cat
2964 in order to conditionally define iterator_category as per P2259.
2965 (split_view::_Outer_iter::iterator_category): Remove.
2966 (split_view::_Inner_iter): Derive from __split_view_inner_iter_cat
2967 in order to conditionally define iterator_category as per P2259.
2968 (split_view::_Inner_iter::_S_iter_cat): Move to
2969 __split_view_inner_iter_cat.
2970 (split_view::_Inner_iter::iterator_category): Remove.
2971 (elements_view::_Base): Define.
2972 (elements_view::__iter_cat): Define.
2973 (elements_view::_Iterator): Derive from the above in order to
2974 conditionall define iterator_category as per P2259.
2975 (elements_view::_Iterator::_Base): Just alias
2976 elements_view::_Base.
2977 (elements_view::_Iterator::_S_iter_concept)
2978 (elements_view::_Iterator::iterator_concept): Define as per
2980 (elements_view::_Iterator::iterator_category): Remove.
2981 (elements_view::_Sentinel::_Base): Just alias
2982 elements_view::_Base.
2983 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
2984 Adjust constraints on iterator_traits<counted_iterator>.
2985 * testsuite/std/ranges/p2259.cc: New test.
2987 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
2990 * include/std/charconv (__cpp_lib_to_chars): Define
2992 * include/std/version (__cpp_lib_to_chars): Likewise..
2993 * testsuite/20_util/from_chars/4.cc: Only check feature test
2994 macro, not _GLIBCXX_HAVE_USELOCALE.
2995 * testsuite/20_util/from_chars/5.cc: Likewise.
2996 * testsuite/20_util/from_chars/6.cc: Likewise.
2997 * testsuite/20_util/to_chars/long_double.cc: Likewise.
2999 2021-04-20 Jakub Jelinek <jakub@redhat.com>
3001 * testsuite/util/testsuite_abi.cc (compare_symbols): If any symbol
3002 versions with _IEEE128_ substring are found, set ieee_version_found
3003 to true. Ignore missing symbols with _IEEE128_ in version name if
3004 !ieee_version_found. Use i->first as version_name instead of
3005 i->second.version_name if the latter is empty.
3006 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
3008 2021-04-19 H.J. Lu <hjl.tools@gmail.com>
3010 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
3013 2021-04-17 Jakub Jelinek <jakub@redhat.com>
3015 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
3016 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
3018 2021-04-17 Jakub Jelinek <jakub@redhat.com>
3020 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
3021 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
3022 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
3023 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
3024 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
3025 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
3027 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
3029 * testsuite/lib/dg-options.exp (add_options_for_libatomic): Also
3030 add libatomic options for 32-bit sparc*-*-linux-gnu.
3032 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
3035 * libsupc++/Makefile.am: Add atomicity.cc here.
3036 * src/c++98/Makefile.am: Remove it from here.
3037 * libsupc++/Makefile.in: Regenerate.
3038 * src/c++98/Makefile.in: Regenerate.
3039 * testsuite/18_support/exception_ptr/96657.cc: New test.
3041 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
3044 * include/std/bit: Only include <ext/numeric_traits.h> for
3045 hosted build, use <limits> otherwise.
3047 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
3049 * doc/xml/manual/backwards_compatibility.xml: Remove porting
3050 notes for libg++ and libstdc++-v2, and bibliography.
3051 * doc/html/*: Regenerated.
3053 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
3056 * include/bits/ranges_util.h (__detail::__iterator_sentinel_pair):
3057 Remove helper concept.
3058 (subrange(_Pr), subrange(Pr, __make_unsigned_like<...>)): Remove
3059 deduction guides, as per LWG 3404.
3060 * testsuite/std/ranges/subrange/lwg3282_neg.cc: Check that class
3061 template argument deduction fails.
3063 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
3065 * testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc:
3066 Adjust expected error for C++20 mode.
3067 * testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc:
3070 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
3073 * testsuite/17_intro/headers/c++1998/49745.cc: Include all
3074 standard headers and XFAIL for effective-target c++20.
3076 2021-04-09 François Dumont <fdumont@gcc.gnu.org>
3079 * include/debug/helper_functions.h (__can_advance(_InputIterator,
3080 const std::pair<_Diff, _Distance_precision>&, int)): New.
3081 (__can_advance(const _Safe_iterator<>&,
3082 const std::pair<_Diff, _Distance_precision>&, int)): New.
3083 * include/debug/macros.h (__glibcxx_check_can_increment_dist): New,
3085 (__glibcxx_check_can_increment_range): Adapt to use latter.
3086 (__glibcxx_check_can_decrement_range): Likewise.
3087 * include/debug/safe_iterator.h
3088 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
3090 (__can_advance(const _Safe_iterator<>&,
3091 const std::pair<_Diff, _Distance_precision>&, int)): New.
3092 * include/debug/safe_iterator.tcc
3093 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
3095 (_Safe_iterator<>::_M_valid_range(const _Safe_iterator<>&,
3096 std::pair<difference_type, _Distance_precision>&, bool)): Adapt for
3098 (__copy_move_a): Adapt to use __glibcxx_check_can_increment_dist.
3099 (__copy_move_backward_a): Likewise.
3100 (__equal_aux): Likewise.
3101 * include/debug/stl_iterator.h (__can_advance(const std::reverse_iterator<>&,
3102 const std::pair<_Diff, _Distance_precision>&, int)): New.
3103 (__can_advance(const std::move_iterator<>&,
3104 const std::pair<_Diff, _Distance_precision>&, int)): New.
3105 * testsuite/25_algorithms/copy/debug/99402.cc: New test.
3107 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
3110 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()): Fix
3111 to be a valid constexpr function in C++11.
3112 * testsuite/23_containers/unordered_set/cons/99985.cc: New test.
3114 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
3116 * include/bits/fs_fwd.h: Fix doxygen group command.
3117 * include/bits/streambuf_iterator.h: Likewise.
3118 * include/bits/uses_allocator_args.h: Likewise.
3119 * include/std/memory: Likewise.
3120 * include/tr1/complex: Likewise.
3122 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
3124 * include/bits/basic_string.h: Tweak doxygen comment.
3126 2021-04-08 Patrick Palka <ppalka@redhat.com>
3128 * include/std/ranges (__detail::find): Define.
3129 (split_view::_OuterIter::operator++): Apply proposed resolution
3131 * testsuite/std/ranges/adaptors/split.cc (test10): New test.
3133 2021-04-08 Patrick Palka <ppalka@redhat.com>
3135 * include/std/ranges (__detail::find_if): Simplify.
3136 (__detail::find_if_not): Likewise.
3137 (__detail::min): Remove.
3138 (__detail::mismatch): Simplify.
3139 (take_view::size): Use std::min instead of __detail::min.
3141 2021-04-08 Patrick Palka <ppalka@redhat.com>
3143 * include/std/ranges (__detail::__returnable_element): New
3145 (elements_view): Use this concept in its constraints. Add
3146 missing private access specifier.
3147 (elements_view::_S_get_element): Define as per LWG 3502.
3148 (elements_view::operator*, elements_view::operator[]): Use
3150 (elements_view::operator++): Remove unnecessary constraint
3152 * testsuite/std/ranges/adaptors/elements.cc (test05): New test.
3154 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
3156 * doc/Makefile.am (stamp-pdf-doxygen): Also grep for
3157 out-of-memory error in log file.
3158 * doc/Makefile.in: Regenerate.
3160 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
3162 * configure: Regenerate.
3164 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
3166 * include/bits/random.h: Fix doxygen group commands.
3167 * include/bits/regex_constants.h: Likewise.
3168 * include/tr1/random.h: Likewise.
3170 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
3172 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()):
3173 New function to determine noexcept-specifier for move
3175 (_Hashtable): Use _S_nothrow_move() on move constructors.
3176 * testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc:
3177 Correct static assertion message.
3178 * testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc:
3180 * testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc:
3182 * testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc:
3185 2021-04-08 Patrick Palka <ppalka@redhat.com>
3188 * testsuite/20_util/to_chars/long_double.cc: Don't run the test
3189 on targets without a large long double. XFAIL the execution on
3190 targets with a non-conforming printf.
3192 2021-04-08 Patrick Palka <ppalka@redhat.com>
3195 * include/std/ranges (__adaptor::__maybe_refwrap): Remove.
3196 (__adaptor::__adaptor_invocable): New concept.
3197 (__adaptor::__adaptor_partial_app_viable): New concept.
3198 (__adaptor::_RangeAdaptorClosure): Rewrite, turning it into a
3199 non-template base class.
3200 (__adaptor::_RangeAdaptor): Rewrite, turning it into a CRTP base
3202 (__adaptor::_Partial): New class template that represents
3203 partial application of a range adaptor non-closure.
3204 (__adaptor::__pipe_invocable): New concept.
3205 (__adaptor::_Pipe): New class template.
3206 (__detail::__can_ref_view): New concept.
3207 (__detail::__can_subrange): New concept.
3208 (all): Replace the lambda here with ...
3209 (_All): ... this functor. Add appropriate constraints.
3210 (__detail::__can_filter_view): New concept.
3211 (filter, _Filter): As in all/_All.
3212 (__detail::__can_transform): New concept.
3213 (transform, _Transform): As in all/_All.
3214 (__detail::__can_take_view): New concept.
3215 (take, _Take): As in all/_All.
3216 (__detail::__can_take_while_view): New concept.
3217 (take_while, _TakeWhile): As in all/_All.
3218 (__detail::__can_drop_view): New concept.
3219 (drop, _Drop): As in all/_All.
3220 (__detail::__can_drop_while_view): New concept.
3221 (drop_while, _DropWhile): As in all/_All.
3222 (__detail::__can_join_view): New concept.
3223 (join, _Join): As in all/_All.
3224 (__detail::__can_split_view): New concept.
3225 (split, _Split): As in all/_All. Rename template parameter
3227 (__detail::__already_common): New concept.
3228 (__detail::__can_common_view): New concept.
3229 (common, _Common): As in all/_All.
3230 (__detail::__can_reverse_view): New concept.
3231 (reverse, _Reverse): As in all/_All.
3232 (__detail::__can_elements_view): New concept.
3233 (elements, _Elements): As in all/_All.
3234 (keys, values): Adjust.
3235 * testsuite/std/ranges/adaptors/99433.cc: New test.
3236 * testsuite/std/ranges/adaptors/all.cc: No longer expect that
3237 adding empty range adaptor closure objects to a pipeline doesn't
3238 increase the size of the pipeline.
3240 * testsuite/std/ranges/adaptors/common.cc (test03): New test.
3241 * testsuite/std/ranges/adaptors/drop.cc (test09): New test.
3242 * testsuite/std/ranges/adaptors/drop_while.cc (test04): New test.
3243 * testsuite/std/ranges/adaptors/elements.cc (test04): New test.
3244 * testsuite/std/ranges/adaptors/filter.cc (test06): New test.
3245 * testsuite/std/ranges/adaptors/join.cc (test09): New test.
3246 * testsuite/std/ranges/adaptors/p2281.cc: New test.
3247 * testsuite/std/ranges/adaptors/reverse.cc (test07): New test.
3248 * testsuite/std/ranges/adaptors/split.cc (test01, test04):
3251 * testsuite/std/ranges/adaptors/split_neg.cc (test01): Adjust
3252 expected error message.
3253 (test02): Likewise. Extend test.
3254 * testsuite/std/ranges/adaptors/take.cc (test06): New test.
3255 * testsuite/std/ranges/adaptors/take_while.cc (test05): New test.
3256 * testsuite/std/ranges/adaptors/transform.cc (test07, test08):
3259 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
3261 * include/std/string_view: Adjust Doxygen @file comment.
3263 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
3265 * include/std/type_traits (is_scoped_enum<T>): Constrain partial
3266 specialization to not match incomplete enum types. Use a
3267 requires-expression instead of instantiating is_convertible.
3268 (is_scoped_enum<const T>): Add as workaround for PR c++/99968.
3269 * testsuite/20_util/is_scoped_enum/value.cc: Check with
3270 incomplete types and opaque-enum-declarations.
3272 2021-04-07 Jonathan Wakely <jwakely@redhat.com>
3275 * src/c++17/fs_path.cc (path::_M_split_cmpts): Do not call
3276 non-const member on _M_pathname, to avoid copy-on-write.
3277 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
3278 Check construction from strings that might be shared.
3280 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
3282 * include/bits/move.h (forward, move, move_if_noexcept)
3283 (addressof): Add _GLIBCXX_NODISCARD.
3284 * include/bits/ranges_cmp.h (identity::operator()): Add
3285 nodiscard attribute.
3286 * include/c_global/cstddef (to_integer): Likewise.
3287 * include/std/bit (bit_cast): Likewise.
3288 * include/std/utility (as_const, to_underlying): Likewise.
3290 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
3292 * include/bits/move.h (forward): Change static_assert message
3293 to be unambiguous about what must be true.
3294 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
3295 * testsuite/20_util/forward/f_neg.cc: Likewise.
3297 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
3299 * include/bits/alloc_traits.h: Use markdown for code font.
3300 * include/bits/basic_string.h: Fix @param names.
3301 * include/bits/max_size_type.h: Remove period after @file.
3302 * include/bits/regex.h: Fix duplicate @retval names, and rename.
3303 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp: Add
3304 group open to match existing group close.
3305 * include/ext/pb_ds/priority_queue.hpp: Add blank line before group
3308 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
3310 * include/bits/atomic_base.h: Fix doxygen group close.
3311 * include/bits/basic_ios.h: Likewise.
3312 * include/bits/forward_list.h: Likewise.
3313 * include/bits/fs_dir.h: Likewise.
3314 * include/bits/fs_ops.h: Likewise.
3315 * include/bits/fs_path.h: Likewise.
3316 * include/bits/functional_hash.h: Likewise.
3317 * include/bits/gslice.h: Likewise.
3318 * include/bits/gslice_array.h: Likewise.
3319 * include/bits/hashtable_policy.h: Likewise.
3320 * include/bits/indirect_array.h: Likewise.
3321 * include/bits/locale_classes.h: Likewise.
3322 * include/bits/locale_facets.h: Likewise.
3323 * include/bits/locale_facets_nonio.h: Likewise.
3324 * include/bits/mask_array.h: Likewise.
3325 * include/bits/refwrap.h: Likewise.
3326 * include/bits/regex.h: Likewise.
3327 * include/bits/regex_automaton.h: Likewise.
3328 * include/bits/regex_compiler.h: Likewise.
3329 * include/bits/regex_constants.h: Likewise.
3330 * include/bits/regex_error.h: Likewise.
3331 * include/bits/regex_executor.h: Likewise.
3332 * include/bits/regex_scanner.h: Likewise.
3333 * include/bits/shared_ptr.h: Likewise.
3334 * include/bits/shared_ptr_atomic.h: Likewise.
3335 * include/bits/shared_ptr_base.h: Likewise.
3336 * include/bits/slice_array.h: Likewise.
3337 * include/bits/specfun.h: Likewise.
3338 * include/bits/std_function.h: Likewise.
3339 * include/bits/std_mutex.h: Likewise.
3340 * include/bits/stl_deque.h: Likewise.
3341 * include/bits/stl_iterator.h: Likewise.
3342 * include/bits/stl_iterator_base_types.h: Likewise.
3343 * include/bits/stl_map.h: Likewise.
3344 * include/bits/stl_multimap.h: Likewise.
3345 * include/bits/stl_multiset.h: Likewise.
3346 * include/bits/stl_numeric.h: Likewise.
3347 * include/bits/stl_pair.h: Likewise.
3348 * include/bits/stl_set.h: Likewise.
3349 * include/bits/stl_uninitialized.h: Likewise.
3350 * include/bits/stream_iterator.h: Likewise.
3351 * include/bits/streambuf_iterator.h: Likewise.
3352 * include/bits/unique_ptr.h: Likewise.
3353 * include/bits/unordered_map.h: Likewise.
3354 * include/bits/unordered_set.h: Likewise.
3355 * include/decimal/decimal: Likewise.
3356 * include/experimental/any: Likewise.
3357 * include/experimental/array: Likewise.
3358 * include/experimental/bits/fs_dir.h: Likewise.
3359 * include/experimental/bits/fs_fwd.h: Likewise.
3360 * include/experimental/bits/fs_ops.h: Likewise.
3361 * include/experimental/bits/fs_path.h: Likewise.
3362 * include/experimental/buffer: Likewise.
3363 * include/experimental/internet: Likewise.
3364 * include/experimental/optional: Likewise.
3365 * include/experimental/propagate_const: Likewise.
3366 * include/experimental/socket: Likewise.
3367 * include/ext/pb_ds/assoc_container.hpp: Likewise.
3368 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp:
3370 * include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp: Likewise.
3371 * include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp: Likewise.
3372 * include/ext/pb_ds/detail/types_traits.hpp: Likewise.
3373 * include/ext/pb_ds/exception.hpp: Likewise.
3374 * include/ext/pb_ds/priority_queue.hpp: Likewise.
3375 * include/ext/pb_ds/tag_and_trait.hpp: Likewise.
3376 * include/ext/random: Likewise.
3377 * include/std/any: Likewise.
3378 * include/std/atomic: Likewise.
3379 * include/std/bitset: Likewise.
3380 * include/std/chrono: Likewise.
3381 * include/std/complex: Likewise.
3382 * include/std/condition_variable: Likewise.
3383 * include/std/fstream: Likewise.
3384 * include/std/future: Likewise.
3385 * include/std/iostream: Likewise.
3386 * include/std/istream: Likewise.
3387 * include/std/mutex: Likewise.
3388 * include/std/numeric: Likewise.
3389 * include/std/ostream: Likewise.
3390 * include/std/ratio: Likewise.
3391 * include/std/shared_mutex: Likewise.
3392 * include/std/stdexcept: Likewise.
3393 * include/std/streambuf: Likewise.
3394 * include/std/system_error: Likewise.
3395 * include/std/thread: Likewise.
3396 * include/std/valarray: Likewise.
3397 * include/std/variant: Likewise.
3398 * include/tr1/cmath: Likewise.
3399 * include/tr1/regex: Likewise.
3400 * include/tr2/dynamic_bitset: Likewise.
3401 * libsupc++/atomic_lockfree_defines.h: Likewise.
3402 * libsupc++/exception: Likewise.
3403 * libsupc++/exception.h: Likewise.
3404 * libsupc++/exception_ptr.h: Likewise.
3405 * libsupc++/nested_exception.h: Likewise.
3407 2021-03-31 Alexandre Oliva <oliva@adacore.com>
3409 * testsuite/30_threads/future/members/poll.cc: Use faster
3410 after-ready call in the calibration loop.
3412 2021-03-29 Jonathan Wakely <jwakely@redhat.com>
3414 * doc/xml/manual/status_cxx2017.xml: Adjust link for PSTL.
3415 * doc/html/manual/status.html: Regenerate.
3417 2021-03-28 François Dumont <fdumont@gcc.gnu.org>
3419 * include/debug/forward_list
3420 (forward_list(forward_list&&, const allocator_type&)): Add noexcept qualification.
3421 * include/debug/list (list(list&&, const allocator_type&)): Likewise and add
3422 call to safe container allocator aware move constructor.
3423 * include/debug/vector (vector(vector&&, const allocator_type&)):
3424 Fix noexcept qualification.
3425 * testsuite/23_containers/forward_list/cons/noexcept_move_construct.cc:
3426 Add allocator-extended move constructor noexceot qualification check.
3427 * testsuite/23_containers/list/cons/noexcept_move_construct.cc: Likewise.
3429 2021-03-26 Jonathan Wakely <jwakely@redhat.com>
3431 * src/c++11/random.cc (USE_LCG): Define when a pseudo-random
3433 [USE_LCG] (bad_seed, construct_lcg_at, destroy_lcg_at, __lcg):
3434 New helper functions and callback.
3435 (random_device::_M_init): Add 'prng' and 'all' enumerators.
3436 Replace switch with fallthrough with a series of 'if' statements.
3437 [USE_LCG]: Construct an lcg_type engine and use __lcg when cpuid
3439 (random_device::_M_init_pretr1) [USE_MT19937]: Accept "prng"
3441 (random_device::_M_getval): Check for callback unconditionally
3442 and always pass _M_file pointer.
3443 * testsuite/26_numerics/random/random_device/85494.cc: Remove
3444 effective-target check. Use new random_device_available helper.
3445 * testsuite/26_numerics/random/random_device/94087.cc: Likewise.
3446 * testsuite/26_numerics/random/random_device/cons/default-cow.cc:
3447 Remove effective-target check.
3448 * testsuite/26_numerics/random/random_device/cons/default.cc:
3450 * testsuite/26_numerics/random/random_device/cons/token.cc: Use
3451 new random_device_available helper. Test "prng" token.
3452 * testsuite/util/testsuite_random.h (random_device_available):
3453 New helper function.
3455 2021-03-25 François Dumont <fdumont@gcc.gnu.org>
3457 * include/debug/string
3458 (basic_string(const basic_string&, const _Alloc&)): Define even if !_GLIBCXX_USE_CXX11_ABI.
3459 (basic_string(basic_string&&, const _Alloc&)): Likewise and add noexcept qualification.
3460 (basic_string<>::erase): Adapt to take __const_iterator.
3461 (basic_string(const _CharT*, const _Allocator&)): Remove assign call.
3462 (basic_string<>::insert(const_iterator, _InputIte, _InputIte)): Try to
3463 remove iterator debug layer even if !_GLIBCXX_USE_CXX11_ABI.
3464 [_GLIBCXX_USE_CHAR8_T] (__gnu_debug::u8string): New.
3465 (__gnu_debug::u16string, __gnu_debug::u32string): New.
3466 (std::hash<__gnu_debug::basic_string<>>): New partial specialization.
3467 (std::__is_fast_hash<__gnu_debug::basic_string<>>): Likewise.
3468 * testsuite/util/exception/safety.h
3469 (erase_base<__gnu_debug::basic_string<>>): New partial specialization.
3470 (insert_base<__gnu_debug::basic_string<>>): Likewise.
3471 * testsuite/util/testsuite_container_traits.h (traits<__gnu_debug::basic_string<>>):
3472 New partial specialization.
3473 * testsuite/21_strings/basic_string/hash/debug.cc: New test.
3474 * testsuite/21_strings/basic_string/requirements/citerators.cc:
3475 Add test on __gnu_debug::string.
3476 * testsuite/21_strings/basic_string/requirements/dr438/constructor.cc: Likewise.
3477 * testsuite/21_strings/basic_string/requirements/exception/basic.cc: Likewise.
3478 * testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc:
3480 * testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc:
3482 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
3484 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
3486 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
3488 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
3490 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
3492 * testsuite/21_strings/basic_string/requirements/typedefs.cc: Likewise.
3494 2021-03-25 Jakub Jelinek <jakub@redhat.com>
3497 * testsuite/18_support/source_location/consteval.cc (main): Adjust
3498 expected column numbers.
3499 * testsuite/18_support/source_location/1.cc (main): Likewise.
3501 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
3503 * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare malloc.
3505 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
3507 * testsuite/util/exception/safety.h (setup_base::generate):
3508 Support seeding random engine.
3509 (erase_point, erase_range): Adjust range of random numbers to
3510 ensure dereferenceable iterators are used where required.
3511 (generation_prohibited::run): Do not try to erase from empty
3513 * testsuite/util/testsuite_containergen.h (test_containers):
3514 Support seeding random engine.
3516 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
3518 * testsuite/std/ranges/adaptors/reverse.cc: Replace duplicated
3519 line with a check that uses the const being/end overloads.
3521 2021-03-23 Moritz Sichert <sichert@in.tum.de>
3523 * include/std/ranges (reverse_view::begin, reverse_view::end):
3524 Qualify make_reverse_iterator calls to avoid ADL.
3525 * testsuite/std/ranges/adaptors/reverse.cc: Test that
3526 views::reverse works when make_reverse_iterator is defined
3527 in an associated namespace.
3529 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
3531 * include/bits/c++config (_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT):
3532 Do not define when compiling with Clang.
3534 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
3536 * include/std/string_view (basic_string_view(Range&&)): Define new
3537 constructor and deduction guide.
3538 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: New test.
3539 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: New test.
3541 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
3543 * include/bits/range_access.h (begin(T (&)[N]), end(T (&)[N])):
3544 Add missing 'noexcept' as per LWG 2280.
3545 (rbegin(T (&)[N]), rend(T (&)[N]), rbegin(initializer_list<T>))
3546 (rend(initializer_list<T>)): Add 'noexcept' as per LWG 3537.
3547 * testsuite/24_iterators/range_access/range_access.cc: Check for
3548 expected noexcept specifiers. Check result types of generic
3549 std::begin and std::end overloads.
3550 * testsuite/24_iterators/range_access/range_access_cpp14.cc:
3551 Check for expected noexcept specifiers.
3552 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
3555 2021-03-19 Jonathan Wakely <jwakely@redhat.com>
3557 * include/std/type_traits (is_scoped_enum): Define.
3558 * include/std/version (__cpp_lib_is_scoped_enum): Define.
3559 * testsuite/20_util/is_scoped_enum/value.cc: New test.
3560 * testsuite/20_util/is_scoped_enum/version.cc: New test.
3562 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
3565 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Remove
3566 std::once_flag symbols.
3567 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Likewise.
3568 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
3569 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
3571 * config/abi/pre/gnu.ver: Likewise.
3572 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
3573 (struct __once_flag_compat): Remove.
3574 (_ZNSt9once_flag11_M_activateEv): Remove.
3575 (_ZNSt9once_flag9_M_finishEb): Remove.
3577 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
3580 * include/std/mutex [_GLIBCXX_HAVE_LINUX_FUTEX] (once_flag):
3581 Revert to pthread_once_t implementation.
3582 [_GLIBCXX_HAVE_LINUX_FUTEX] (call_once): Likewise.
3583 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
3584 (struct __once_flag_compat): New type matching the reverted
3585 implementation of once_flag using futexes.
3586 (once_flag::_M_activate): Remove, replace with ...
3587 (_ZNSt9once_flag11_M_activateEv): ... alias symbol.
3588 (once_flag::_M_finish): Remove, replace with ...
3589 (_ZNSt9once_flag9_M_finishEb): ... alias symbol.
3590 * testsuite/30_threads/call_once/66146.cc: Removed.
3592 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
3594 * testsuite/17_intro/names.cc: Exclude j from the list
3595 of test symbols for Darwin.
3597 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
3599 * config/os/bsd/darwin/ppc-extra.ver: Add matching for
3600 to_chars and from_chars for long double.
3602 2021-03-15 Patrick Palka <ppalka@redhat.com>
3604 * include/bits/max_size_type.h (__max_size_type::operator _Tp):
3606 (__max_size_type::operator++): Define.
3607 (__max_size_type::operator--): Likewise.
3608 (__max_size_type::operator<=>): Conditionally define (in place
3609 of the other comparison operators).
3610 (__max_diff_type::operator _Tp): Fix formatting.
3611 (__max_diff_type::operator++): Define.
3612 (__max_diff_type::operator--): Likewise.
3613 (__max_diff_type::operator<=>): Conditionally define (in place
3614 of the other comparison operators).
3615 * testsuite/std/ranges/iota/max_size_type.cc (test01): Test
3616 these operator overloads.
3618 2021-03-15 Caroline Tice <cmtice@google.com>
3621 * src/Makefile.am (AM_CXXFLAGS_PRE, AM_CXXFLAGS): Add
3622 AM_CXXFLAGS_PRE with the old definition of AM_CXXFLAGS; make
3623 AM_CXXFLAGS to be AM_CXXFLAGS_PRE with '-fvtable-verify=std'
3625 * src/Makefile.in: Regenerate.
3627 2021-03-11 Patrick Palka <ppalka@redhat.com>
3629 * src/c++17/floating_to_chars.cc: Simplify the file as if
3630 __SIZEOF_INT128__ is always defined.
3631 [!defined __SIZEOF_INT128__]: Include "uint128_t.h". Define
3632 a base-10 to_chars overload for the uint128_t class type.
3633 * src/c++17/uint128_t.h: New file.
3634 * testsuite/20_util/to_chars/long_double.cc: No longer expect an
3635 execution FAIL on targets that have a large long double type
3638 2021-03-11 Patrick Palka <ppalka@redhat.com>
3640 * src/c++17/ryu/LOCAL_PATCHES: Update.
3641 * src/c++17/ryu/d2s_intrinsics.h: Don't define uint128_t.
3642 * src/c++17/ryu/generic_128.h: Likewise.
3643 * src/c++17/ryu/ryu_generic_128.h (struct floating_decimal_128):
3644 Use uint128_t instead of __uint128_t.
3645 (generic_binary_to_decimal): Likewise.
3647 2021-03-11 Patrick Palka <ppalka@redhat.com>
3649 * src/c++17/ryu/LOCAL_PATCHES: New file.
3651 2021-03-11 Patrick Palka <ppalka@redhat.com>
3653 * src/c++17/floating_to_chars.cc (uint128_t): New conditionally
3654 defined alias of unsigned __int128.
3655 (floating_type_traits_binary128::mantissa_t): Use uint128_t
3656 instead of unsigned __int128.
3657 (floating_type_traits<long double>::mantissa_t)
3658 [LONG_DOUBLE_KIND == LDK_IBM128]: Likewise.
3659 (get_ieee_repr): Likewise. Make casts from uint_t to mantissa_t
3660 and uint32_t explicit. Simplify the extraction of mantissa,
3661 exponent and sign bit.
3663 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
3665 * include/std/barrier (barrier::arrival_token): New move-only
3666 class that encapsulates the underlying token value.
3668 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
3670 * python/libstdcxx/v6/printers.py (find_type): Use tag attribute
3671 instead of unqualified() method.
3673 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
3676 * include/std/stop_token (_Stop_state_t::_M_release_ownership):
3677 Use acq_rel memory ordering.
3679 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
3682 * src/c++17/fs_dir.cc (recursive_directory_iterator): Use new
3683 helper function to check for permission denied errors.
3684 * src/filesystem/dir.cc (recursive_directory_iterator):
3686 * src/filesystem/dir-common.h (is_permission_denied_error): New
3689 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
3692 * include/bits/random.h (normal_distribution): Use
3693 default-initializer for _M_saved and _M_saved_available.
3695 2021-03-10 John David Anglin <danglin@gcc.gnu.org>
3697 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Add options to
3698 link with libatomic.
3699 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
3700 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
3701 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
3702 * testsuite/30_threads/barrier/arrive.cc: Likewise.
3703 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
3704 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
3705 * testsuite/30_threads/barrier/completion.cc: Likewise.
3706 * testsuite/30_threads/latch/3.cc: Likewise.
3707 * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
3708 * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
3709 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
3711 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
3714 * include/bits/align.h: Include debug/assertions.h.
3715 * include/bits/codecvt.h: Include bits/c++config.h.
3716 * include/bits/enable_special_members.h: Likewise.
3717 * include/bits/erase_if.h: Likewise.
3718 * include/bits/functional_hash.h: Include <type_traits>.
3719 * include/bits/invoke.h: Include bits/move.h.
3720 * include/bits/ostream_insert.h: Include bits/exception_defines.h.
3721 * include/bits/parse_numbers.h: Include <type_traits>.
3722 * include/bits/predefined_ops.h: Include bits/c++config.h.
3723 * include/bits/range_access.h: Include bits/stl_iterator.h.
3724 * include/bits/stl_bvector.h: Do not include bits/stl_vector.h.
3725 * include/bits/stl_iterator.h: Include bits/stl_iterator_base_types.h.
3726 * include/bits/stl_uninitialized.h: Include bits/stl_algobase.h.
3727 * include/bits/uniform_int_dist.h: Include bits/concept_check.h.
3728 * include/bits/unique_lock.h: Include bits/std_mutex.h.
3729 * include/debug/assertions.h: Include bits/c++config.h.
3731 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
3733 * include/bits/ranges_cmp.h (__eq_builtin_ptr_cmp): Remove.
3734 (ranges::equal_to, ranges::not_equal_to): Do not constrain
3735 with __eq_builtin_ptr_cmp.
3736 (ranges::less, ranges::greater, ranges::less_equal)
3737 (ranges::greater_equal): Do not constrain with
3738 __less_builtin_ptr_cmp.
3739 * libsupc++/compare (compare_three_way): Do not constrain with
3740 __3way_builtin_ptr_cmp.
3741 * testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc: Moved to...
3742 * testsuite/18_support/comparisons/object/lwg3530.cc: ...here.
3743 * testsuite/20_util/function_objects/range.cmp/lwg3530.cc: New test.
3745 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
3747 * testsuite/std/time/syn_c++20.cc: Enable synopsis checks for
3748 C++20 calendar types.
3750 2021-03-06 Jakub Jelinek <jakub@redhat.com>
3753 * include/std/bit (__rotl, __rotr): Add optimized variants for power of
3754 two _Nd which the compiler can pattern match the rotates.
3756 2021-03-04 Jonathan Wakely <jwakely@redhat.com>
3759 * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
3760 Make storage larger than required. Verify no write to the last
3762 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
3765 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3767 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
3768 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
3770 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
3771 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
3774 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3776 * include/experimental/bits/simd.h: Replace reserved _X, _B by
3778 * include/experimental/bits/simd_builtin.h: Likewise.
3779 * include/experimental/bits/simd_x86.h: Likewise.
3781 2021-02-27 Jonathan Wakely <jwakely@redhat.com>
3784 * include/std/chrono (year_month_day::_M_days_since_epoch()):
3785 Convert chrono::month and chrono::day to unsigned before
3786 converting to uint32_t.
3788 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
3790 * include/std/chrono (year_month_day::_S_from_days): Perform
3791 all calculations with type uint32_t.
3793 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
3795 * doc/xml/manual/abi.xml: Document versioning for GCC 11.
3796 * doc/html/manual/abi.html: Regenerate.
3798 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
3801 * testsuite/27_io/headers/cstdio/types_std.cc: Use pointer to
3802 FILE instead of FILE.
3804 2021-02-25 Andreas Schwab <schwab@suse.de>
3806 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
3807 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
3808 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
3809 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
3811 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
3814 * include/std/chrono (year_month_day::_S_from_days): Cast long
3817 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
3819 * include/std/utility (to_underlying): Define.
3820 * include/std/version (__cpp_lib_to_underlying): Define.
3821 * testsuite/20_util/to_underlying/1.cc: New test.
3822 * testsuite/20_util/to_underlying/version.cc: New test.
3824 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
3827 * src/c++17/floating_to_chars.cc (sprintf_ld): Add extra args
3828 before value to be printed.
3830 2021-02-24 Patrick Palka <ppalka@redhat.com>
3832 * src/c++17/floating_to_chars.cc (__floating_to_chars_precision):
3833 Relax the condition that guards the printf code path to accept
3834 F128_type as well as long double.
3836 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
3838 * include/std/chrono (year_month_day_last:day): New
3841 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
3843 * include/std/chrono (year::is_leap): New implementation.
3844 * testsuite/std/time/year/2.cc: New test.
3846 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
3848 * include/std/chrono (year_month_day::_M_days_since_epoch):
3850 * testsuite/std/time/year_month_day/4.cc: New test.
3852 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
3854 * include/std/chrono (year_month_day::_S_from_days): New
3856 * testsuite/std/time/year_month_day/3.cc: New test.
3858 2021-02-24 Patrick Palka <ppalka@redhat.com>
3861 * testsuite/20_util/to_chars/long_double.cc: Include <optional>.
3862 (test01): Simplify verifying the nearby values by using a
3863 2-iteration loop and a dedicated output buffer to check that the
3864 nearby values are different. Factor out the printf-based
3865 verification into a local function, and check that the leading
3866 hex digits agree before comparing to the output of printf. Also
3867 verify the output by round-tripping it through from_chars.
3869 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
3872 * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Do not match to_chars
3873 symbols for long double arguments mangled as 'g'.
3874 * config/os/gnu-linux/ldbl-extra.ver: Likewise.
3875 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Likewise.
3876 * src/c++17/Makefile.am [GLIBCXX_LDBL_ALT128_COMPAT_TRUE]:
3877 Use -mabi=ibmlongdouble for floating_to_chars.cc.
3878 * src/c++17/Makefile.in: Regenerate.
3879 * src/c++17/floating_to_chars.cc (floating_type_traits_binary128):
3880 New type defining type traits of IEEE binary128 format.
3881 (floating_type_traits<__float128>): Define specialization.
3882 (floating_type_traits<long double>): Define in terms of
3883 floating_type_traits_binary128 when appropriate.
3884 (floating_to_shortest_scientific): Handle __float128.
3885 (sprintf_ld): New function template for printing a long double
3886 or __ieee128 value using sprintf.
3887 (__floating_to_chars_shortest, __floating_to_chars_precision):
3889 (to_chars): Define overloads for __float128.
3891 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
3893 * testsuite/17_intro/names.cc: Undefine 'u' on powerpc*-linux*.
3895 2021-02-23 Martin Sebor <msebor@redhat.com>
3898 * libsupc++/dyncast.cc (__dynamic_cast): Return null when
3899 first argument is null.
3901 2021-02-23 Jakub Jelinek <jakub@redhat.com>
3904 * testsuite/21_strings/char_traits/requirements/char/99181.cc: New
3907 2021-02-23 Jakub Jelinek <jakub@redhat.com>
3910 * include/bits/char_traits.h (char_traits<char>::compare): For
3911 constexpr evaluation don't call
3912 __gnu_cxx::char_traits<char_type>::compare but do the comparison loop
3915 2021-02-23 Jakub Jelinek <jakub@redhat.com>
3918 * include/pstl/parallel_backend_serial.h: Remove __pstl::__par_backend.
3920 2021-02-23 Patrick Palka <ppalka@redhat.com>
3923 * src/c++17/floating_to_chars.cc (get_ieee_repr): Extract
3924 the high- and low-order parts from an IBM long double value
3925 in an endian-agnostic way.
3927 2021-02-19 Jonathan Wakely <jwakely@redhat.com>
3929 * include/bits/atomic_wait.h (__thread_relax()): Call
3930 __thread_yield() not __gthread_yield().
3932 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
3934 * include/bits/atomic_wait.h (__thread_yield()): Check
3935 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
3936 (__thread_relax()): Use __thread_yield() instead of repeating
3937 the preprocessor checks for __gthread_yield.
3939 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
3941 * include/std/mutex (once_flag::_M_activate()): Add explicit
3942 return statement for passive case.
3943 (once_flag::_M_finish(bool)): Use reserved name for parameter.
3945 2021-02-14 Jonathan Wakely <jwakely@redhat.com>
3948 * testsuite/util/testsuite_fs.h: Always include <unistd.h>.
3950 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
3953 * src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround.
3955 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
3957 * doc/xml/manual/status_cxx2014.xml: Document implementation
3958 specific properties of std::experimental::filesystem::rename.
3959 * doc/xml/manual/status_cxx2017.xml: Document implementation
3960 specific properties of std::filesystem::rename.
3961 * doc/html/*: Regenerate.
3962 * src/c++17/fs_ops.cc (fs::rename): Implement correct behaviour
3963 for directories on Windows.
3964 * src/filesystem/ops-common.h (__gnu_posix::rename): Use
3965 MoveFileExW on Windows.
3966 * testsuite/27_io/filesystem/operations/rename.cc: New test.
3967 * testsuite/experimental/filesystem/operations/rename.cc: New test.
3969 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
3971 * testsuite/util/testsuite_fs.h (nonexistent_path): Add
3972 random number to the path.
3974 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
3976 * include/experimental/internet (address_v6::to_string): Include
3978 * testsuite/experimental/net/internet/address/v6/members.cc:
3979 Test to_string() results.
3981 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
3983 * include/experimental/internet (address_v6::any): Avoid using
3984 memcpy in constexpr function.
3985 (address_v6::loopback): Likewise.
3986 (make_address_v6): Fix missing return statements on error paths.
3987 * include/experimental/io_context: Avoid -Wdangling-else
3989 * testsuite/experimental/net/internet/address/v4/members.cc:
3990 Remove unused variables.
3991 * testsuite/experimental/net/internet/address/v6/members.cc:
3994 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
3996 * include/bits/shared_ptr_base.h (__shared_ptr::_M_get_deleter):
3997 Add unused attribute to parameter.
3998 * src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq):
4001 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
4003 * testsuite/27_io/basic_ostream/emit/1.cc: Expect test to fail
4004 if -fno-rtti is used.
4005 * testsuite/30_threads/async/forced_unwind.cc: Expect test
4006 to abort if -fno-rtti is used.
4008 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
4010 * testsuite/util/testsuite_allocator.h (memory_resource):
4011 Remove requirement for RTTI and exceptions to be enabled.
4013 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
4015 * testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Use
4016 static_cast when RTTI is disabled.
4017 * testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc:
4019 * testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc:
4021 * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc:
4023 * testsuite/27_io/basic_stringstream/str/char/2.cc:
4025 * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc:
4028 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
4030 * include/std/ostream (__syncbuf_base::_S_get): Mark parameter
4031 as unused and only use dynamic_cast when RTTI is enabled.
4033 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
4036 * src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)):
4037 Change int parameter to error_code, to match std::ios_failure.
4038 (__throw_ios_failure(const char*, int)): Construct error_code
4041 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
4043 * libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define
4045 * libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new
4046 macro instead of _GLIBCXX_EH_PTR_COMPAT.
4047 (operator==): Likewise.
4049 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
4052 * doc/xml/manual/status_cxx2011.xml: Document when support
4054 * doc/xml/manual/status_cxx2014.xml: Likewise.
4055 * doc/xml/manual/status_cxx2017.xml: Likewise.
4056 * doc/html/manual/status.html: Regenerate.
4058 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
4061 * src/c++17/fs_ops.cc (fs::status): Re-enable workaround.
4063 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
4065 * src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent)
4066 (fs::remove): Use std::system_category() for error codes from
4068 * src/filesystem/ops.cc (fs::create_hard_link, fs::remove):
4071 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
4073 * testsuite/27_io/filesystem/operations/proximate.cc: Fix typo
4074 in __MINGW32__ macro name.
4075 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
4076 * testsuite/27_io/filesystem/path/generation/proximate.cc:
4078 * testsuite/27_io/filesystem/path/generation/relative.cc:
4080 * testsuite/util/testsuite_fs.h: Likewise.
4082 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
4084 * include/bits/stl_tree.h
4085 (__has_is_transparent, __has_is_transparent_t): Move...
4086 * include/bits/stl_function.h: ...here.
4087 * include/bits/hashtable_policy.h (_Hash_code_base<>::_M_hash_code_tr): New..
4088 (_Hashtable_base<>::_M_equals_tr): New.
4089 * include/bits/hashtable.h (_Hashtable<>::_M_find_tr, _Hashtable<>::_M_count_tr,
4090 _Hashtable<>::_M_equal_range_tr): New member function templates to perform
4091 heterogeneous lookup.
4092 (_Hashtable<>::_M_find_before_node_tr): New.
4093 (_Hashtable<>::_M_find_node_tr): New.
4094 * include/bits/unordered_map.h (unordered_map::find<>, unordered_map::count<>,
4095 unordered_map::contains<>, unordered_map::equal_range<>): New member function
4096 templates to perform heterogeneous lookup.
4097 (unordered_multimap::find<>, unordered_multimap::count<>,
4098 unordered_multimap::contains<>, unordered_multimap::equal_range<>): Likewise.
4099 * include/bits/unordered_set.h (unordered_set::find<>, unordered_set::count<>,
4100 unordered_set::contains<>, unordered_set::equal_range<>): Likewise.
4101 (unordered_multiset::find<>, unordered_multiset::count<>,
4102 unordered_multiset::contains<>, unordered_multiset::equal_range<>): Likewise.
4103 * include/debug/unordered_map
4104 (unordered_map::find<>, unordered_map::equal_range<>): Likewise.
4105 (unordered_multimap::find<>, unordered_multimap::equal_range<>): Likewise.
4106 * include/debug/unordered_set
4107 (unordered_set::find<>, unordered_set::equal_range<>): Likewise.
4108 (unordered_multiset::find<>, unordered_multiset::equal_range<>): Likewise.
4109 * testsuite/23_containers/unordered_map/operations/1.cc: New test.
4110 * testsuite/23_containers/unordered_multimap/operations/1.cc: New test.
4111 * testsuite/23_containers/unordered_multiset/operations/1.cc: New test.
4112 * testsuite/23_containers/unordered_set/operations/1.cc: New test.
4114 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
4116 * include/bits/stl_deque.h
4117 (std::operator-(deque::iterator, deque::iterator)): Replace if/then with
4118 a null pointer test.
4120 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
4122 * testsuite/27_io/filesystem/operations/remove_all.cc: Remove
4123 test directory after making it writable again.
4124 * testsuite/experimental/filesystem/operations/remove_all.cc:
4127 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
4130 * include/std/coroutine (coroutine_handle<P>::from_address): Add
4133 2021-02-09 Vladimir Vishnevsky <vv.os.swe@gmail.com>
4135 * include/ext/stdio_sync_filebuf.h: Remove unused <unistd.h>.
4136 * src/c++17/fs_ops.cc (fs::permissions): Qualify mode_t.
4138 2021-02-09 Jakub Jelinek <jakub@redhat.com>
4141 * include/bits/basic_string.tcc (basic_string::_M_replace): When __s
4142 points to the characters moved by earlier _S_move, compute the source
4143 address using expression based on the __p pointer rather than __s
4146 2021-02-03 Jonathan Wakely <jwakely@redhat.com>
4148 * testsuite/19_diagnostics/error_code/operators/not_equal.cc:
4149 Add comparison with same category and different values.
4150 * testsuite/19_diagnostics/error_code/operators/less.cc:
4151 Likewise. Fix comparison involving different categories.
4152 * testsuite/19_diagnostics/error_code/operators/three_way.cc:
4154 * testsuite/19_diagnostics/error_condition/operators/less.cc:
4156 * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
4159 2021-02-03 yaozhongxiao <yaozhongxiao@linux.alibaba.com>
4161 * include/experimental/bits/simd_neon.h: Replace repeated vpadd
4162 calls with a single vaddv for aarch64.
4164 2021-02-03 Matthias Kretz <kretz@kde.org>
4166 * testsuite/Makefile.am: Warn about the workaround. Add
4167 -fno-tree-vrp to CXXFLAGS passed to the check_simd script.
4168 Improve initial user feedback from make check-simd.
4169 * testsuite/Makefile.in: Regenerated.
4171 2021-02-03 Matthias Kretz <kretz@kde.org>
4173 * include/experimental/bits/simd.h: Add __detail::_Minimum and
4174 __detail::_Maximum to use them as _BinaryOperation to _S_reduce.
4175 Add hmin and hmax overloads for simd and const_where_expression.
4176 * include/experimental/bits/simd_scalar.h
4177 (_SimdImplScalar::_S_reduce): Make unused _BinaryOperation
4178 parameter const-ref to allow calling _S_reduce with an rvalue.
4179 * testsuite/experimental/simd/tests/reductions.cc: Add tests for
4180 hmin and hmax. Since the compiler statically determined that all
4181 tests pass, repeat the test after a call to make_value_unknown.
4183 2021-02-03 Matthias Kretz <kretz@kde.org>
4185 * testsuite/experimental/simd/tests/bits/verify.h (verify): Add
4186 instruction pointer data member. Ensure that the `if (m_failed)`
4187 branch is always inlined into the calling code. The body of the
4188 conditional can still be a function call. Move the get_ip call
4189 into the verify ctor to simplify the ctor calls.
4190 (COMPARE): Don't mention the use of all_of for reduction of a
4191 simd_mask. It only distracts from the real issue.
4193 2021-02-03 Matthias Kretz <kretz@kde.org>
4195 * testsuite/experimental/simd/driver.sh: Abstract reading test
4196 options into read_src_option function. Read skip, only,
4197 expensive, and xfail via read_src_option. Add timeout and
4198 timeout-factor options and adjust timeout variable accordingly.
4199 * testsuite/experimental/simd/tests/loadstore.cc: Set
4202 2021-02-03 Matthias Kretz <kretz@kde.org>
4204 * testsuite/experimental/simd/driver.sh: When handling the pipe
4205 to log (and on verbose to stdout) count the lines. If it exceeds
4206 1000 log the issue and exit 125, which is then handled as a
4209 2021-02-03 Matthias Kretz <kretz@kde.org>
4211 * testsuite/experimental/simd/tests/hypot3_fma.cc: Add skip:
4212 markup for long double on powerpc64*.
4214 2021-02-03 Matthias Kretz <kretz@kde.org>
4216 * include/experimental/bits/simd.h: Add __have_power10vec
4217 conditional on _ARCH_PWR10.
4218 * include/experimental/bits/simd_builtin.h: Forward declare
4219 _MaskImplPpc and use it as _MaskImpl when __ALTIVEC__ is
4221 (_MaskImplBuiltin::_S_some_of): Call _S_popcount from the
4222 _SuperImpl for optimizations and correctness.
4223 * include/experimental/bits/simd_ppc.h: Add _MaskImplPpc.
4224 (_MaskImplPpc::_S_popcount): Implement via vec_cntm for POWER10.
4225 Otherwise, for >=int use -vec_sums divided by a sizeof factor.
4226 For <int use -vec_sums(vec_sum4s(...)) to sum all mask entries.
4228 2021-02-03 Matthias Kretz <kretz@kde.org>
4230 * testsuite/experimental/simd/driver.sh: Remove executable on
4231 SIGINT. Process compiler and test executable output: In verbose
4232 mode print messages immediately, limited to 1000 lines and
4233 breaking long lines to below $COLUMNS (or 1024 if not set).
4234 Communicating the exit status of the compiler / test with the
4235 necessary pipe is done via a message through stdout/-in.
4237 2021-02-03 Matthias Kretz <kretz@kde.org>
4239 * testsuite/Makefile.am: Ensure .simd.summary is empty before
4240 collecting a new summary.
4241 * testsuite/Makefile.in: Regenerate.
4243 2021-02-03 Matthias Kretz <kretz@kde.org>
4245 * testsuite/experimental/simd/generate_makefile.sh: Use
4246 different variables internally than documented for user
4247 overrides. This makes internal append/prepend work as intended.
4249 2021-02-03 Matthias Kretz <kretz@kde.org>
4251 * testsuite/experimental/simd/driver.sh (verify_test): Print
4252 test output on run xfail. Do not repeat lines from the log that
4253 were already printed on stdout.
4254 (test_selector): Make the compiler flags pattern usable as a
4256 (toplevel): Trap on SIGINT and remove the log and sum files.
4257 Call timout with --foreground to quickly terminate on SIGINT.
4258 * testsuite/experimental/simd/generate_makefile.sh: Simplify run
4259 targets via target patterns. Default DRIVEROPTS to -v for run
4260 targets. Remove log and sum files after completion of the run
4261 target (so that it's always recompiled).
4262 Place help text into text file for reasonable 'make help'
4265 2021-02-03 Matthias Kretz <kretz@kde.org>
4267 * include/experimental/bits/simd.h: Remove unnecessary static
4268 assertion. Allow sizeof(8) integer __intrinsic_type to enable
4269 the necessary mask type.
4271 2021-02-03 Matthias Kretz <kretz@kde.org>
4273 * include/experimental/bits/simd.h: Let __intrinsic_type<long
4274 double, N> be valid if sizeof(long double) == sizeof(double) and
4275 use a __vector double as member type.
4277 2021-02-03 Matthias Kretz <kretz@kde.org>
4279 * include/experimental/bits/simd.h (__is_intrinsic_type): New
4280 internal type trait. Alias for __is_vector_type on x86.
4281 (_VectorTraitsImpl): Enable for __intrinsic_type in addition for
4283 (__intrin_bitcast): Allow casting to & from vector & intrinsic
4285 (__intrinsic_type): Explicitly specialize for NEON intrinsic
4288 2021-02-03 Matthias Kretz <kretz@kde.org>
4290 * testsuite/experimental/simd/driver.sh: Implement skip, only,
4291 expensive, and xfail markers. They can select on type, ABI tag
4292 subset number, target-triplet, and compiler flags.
4293 * testsuite/experimental/simd/generate_makefile.sh: The summary
4294 now includes lines for unexpected passes and expected failures.
4295 If the skip or only markers are only conditional on the type, do
4296 not generate rules for those types.
4297 * testsuite/experimental/simd/tests/abs.cc: Mark test expensive
4298 for ABI tag subsets 1-9.
4299 * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
4300 * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
4301 * testsuite/experimental/simd/tests/casts.cc: Ditto.
4302 * testsuite/experimental/simd/tests/generator.cc: Ditto.
4303 * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
4304 * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
4305 * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
4306 * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
4307 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
4308 * testsuite/experimental/simd/tests/mask_loadstore.cc: Ditto.
4309 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
4310 * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
4311 * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
4312 * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
4313 * testsuite/experimental/simd/tests/operators.cc: Ditto.
4314 * testsuite/experimental/simd/tests/reductions.cc: Ditto.
4315 * testsuite/experimental/simd/tests/simd.cc: Ditto.
4316 * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
4317 * testsuite/experimental/simd/tests/splits.cc: Ditto.
4318 * testsuite/experimental/simd/tests/where.cc: Ditto.
4319 * testsuite/experimental/simd/tests/fpclassify.cc: Ditto. In
4320 addition replace "test only floattypes" marker by unconditional
4321 "float|double|ldouble" only marker.
4322 * testsuite/experimental/simd/tests/frexp.cc: Ditto.
4323 * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
4324 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
4326 * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
4327 * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
4328 * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
4329 * testsuite/experimental/simd/tests/remqo.cc: Ditto.
4330 * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
4331 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
4332 * testsuite/experimental/simd/tests/sincos.cc: Ditto. In
4333 addition, xfail on run because the reference data is missing.
4335 2021-02-02 Jonathan Wakely <jwakely@redhat.com>
4337 * doc/xml/manual/status_cxx2011.xml: Remove stray table cell.
4338 * doc/xml/manual/status_cxx2014.xml: Likewise.
4339 * doc/xml/manual/status_cxx2017.xml: Likewise.
4340 * doc/html/manual/status.html: Regenerate.
4342 2021-02-01 François Dumont <fdumont@gcc.gnu.org>
4345 * include/bits/stl_deque.h (std::deque<>::operator-(iterator, iterator)):
4346 Return 0 if both iterators are value-initialized.
4347 * testsuite/23_containers/deque/70303.cc: New test.
4348 * testsuite/23_containers/vector/70303.cc: New test.
4350 2021-02-01 Jonathan Wakely <jwakely@redhat.com>
4352 * doc/xml/manual/status_cxx2011.xml: Update std::call_once
4354 * doc/xml/manual/status_cxx2014.xml: Likewise.
4355 * doc/xml/manual/status_cxx2017.xml: Likewise. Update
4356 std::from_chars and std::to_chars status. Fix formatting.
4357 * doc/html/manual/status.html: Regenerate.
4359 2021-01-28 Jonathan Wakely <jwakely@redhat.com>
4361 * include/experimental/bits/numeric_traits.h: Update copyright
4363 * include/experimental/bits/simd.h: Likewise.
4364 * include/experimental/bits/simd_builtin.h: Likewise.
4365 * include/experimental/bits/simd_converter.h: Likewise.
4366 * include/experimental/bits/simd_detail.h: Likewise.
4367 * include/experimental/bits/simd_fixed_size.h: Likewise.
4368 * include/experimental/bits/simd_math.h: Likewise.
4369 * include/experimental/bits/simd_neon.h: Likewise.
4370 * include/experimental/bits/simd_ppc.h: Likewise.
4371 * include/experimental/bits/simd_scalar.h: Likewise.
4372 * include/experimental/bits/simd_x86.h: Likewise.
4373 * include/experimental/bits/simd_x86_conversions.h: Likewise.
4374 * include/experimental/simd: Likewise.
4375 * testsuite/experimental/simd/*: Likewise.
4377 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
4379 * doc/xml/manual/status_cxx2017.xml: Replace invalid entity.
4380 * doc/html/*: Regenerate.
4382 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
4384 * testsuite/experimental/simd/generate_makefile.sh: Use printf
4385 instead of echo when printing escape characters.
4387 2021-01-27 Matthias Kretz <kretz@kde.org>
4389 * scripts/check_simd: New file. This script is called from the
4390 the check-simd target. It determines a set of compiler flags and
4391 simulator setups for calling generate_makefile.sh and passes the
4392 information back to the check-simd target, which recurses to the
4393 generated Makefiles.
4394 * scripts/create_testsuite_files: Remove files below simd/tests/
4395 from testsuite_files and place them in testsuite_files_simd.
4396 * testsuite/Makefile.am: Add testsuite_files_simd. Add
4398 * testsuite/Makefile.in: Regenerate.
4399 * testsuite/experimental/simd/driver.sh: New file. This script
4400 compiles and runs a given simd test, logging its output and
4401 status. It uses the timeout command to implement compile and
4403 * testsuite/experimental/simd/generate_makefile.sh: New file.
4404 This script generates a Makefile which uses driver.sh to compile
4405 and run the tests and collect the logs into a single log file.
4406 * testsuite/experimental/simd/tests/abs.cc: New file. Tests
4408 * testsuite/experimental/simd/tests/algorithms.cc: New file.
4409 Tests min/max(simd, simd).
4410 * testsuite/experimental/simd/tests/bits/conversions.h: New
4411 file. Contains functions to support tests involving conversions.
4412 * testsuite/experimental/simd/tests/bits/make_vec.h: New file.
4413 Support functions make_mask and make_vec.
4414 * testsuite/experimental/simd/tests/bits/mathreference.h: New
4415 file. Support functions to supply precomputed math function
4417 * testsuite/experimental/simd/tests/bits/metahelpers.h: New
4418 file. Support code for SFINAE testing.
4419 * testsuite/experimental/simd/tests/bits/simd_view.h: New file.
4420 * testsuite/experimental/simd/tests/bits/test_values.h: New
4421 file. Test functions to easily drive a test with simd objects
4422 initialized from a given list of values and a range of random
4424 * testsuite/experimental/simd/tests/bits/ulp.h: New file.
4425 Support code to determine the ULP distance of simd objects.
4426 * testsuite/experimental/simd/tests/bits/verify.h: New file.
4427 Test framework for COMPARE'ing simd objects and instantiating
4428 the test templates with value_type and ABI tag.
4429 * testsuite/experimental/simd/tests/broadcast.cc: New file. Test
4431 * testsuite/experimental/simd/tests/casts.cc: New file. Test
4433 * testsuite/experimental/simd/tests/fpclassify.cc: New file.
4434 Test floating-point classification functions.
4435 * testsuite/experimental/simd/tests/frexp.cc: New file. Test
4437 * testsuite/experimental/simd/tests/generator.cc: New file. Test
4438 simd generator constructor.
4439 * testsuite/experimental/simd/tests/hypot3_fma.cc: New file.
4440 Test 3-arg hypot(simd,simd,simd) and fma(simd,simd,sim).
4441 * testsuite/experimental/simd/tests/integer_operators.cc: New
4442 file. Test integer operators.
4443 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
4444 New file. Test ldexp(simd), scalbn(simd), scalbln(simd), and
4446 * testsuite/experimental/simd/tests/loadstore.cc: New file. Test
4447 (converting) simd loads and stores.
4448 * testsuite/experimental/simd/tests/logarithm.cc: New file. Test
4450 * testsuite/experimental/simd/tests/mask_broadcast.cc: New file.
4451 Test simd_mask broadcasts.
4452 * testsuite/experimental/simd/tests/mask_conversions.cc: New
4453 file. Test simd_mask conversions.
4454 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: New
4455 file. Test simd_mask implicit conversions.
4456 * testsuite/experimental/simd/tests/mask_loadstore.cc: New file.
4457 Test simd_mask loads and stores.
4458 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: New
4459 file. Test simd_mask operators convert as specified.
4460 * testsuite/experimental/simd/tests/mask_operators.cc: New file.
4461 Test simd_mask compares, subscripts, and negation.
4462 * testsuite/experimental/simd/tests/mask_reductions.cc: New
4463 file. Test simd_mask reductions.
4464 * testsuite/experimental/simd/tests/math_1arg.cc: New file. Test
4465 1-arg math functions on simd.
4466 * testsuite/experimental/simd/tests/math_2arg.cc: New file. Test
4467 2-arg math functions on simd.
4468 * testsuite/experimental/simd/tests/operator_cvt.cc: New file.
4469 Test implicit conversions on simd binary operators behave as
4471 * testsuite/experimental/simd/tests/operators.cc: New file. Test
4472 simd compares, subscripts, not, unary minus, plus, minus,
4473 multiplies, divides, increment, and decrement.
4474 * testsuite/experimental/simd/tests/reductions.cc: New file.
4476 * testsuite/experimental/simd/tests/remqo.cc: New file. Test
4478 * testsuite/experimental/simd/tests/simd.cc: New file. Basic
4479 sanity checks of simd types.
4480 * testsuite/experimental/simd/tests/sincos.cc: New file. Test
4481 sin(simd) and cos(simd).
4482 * testsuite/experimental/simd/tests/split_concat.cc: New file.
4483 Test split(simd) and concat(simd, simd).
4484 * testsuite/experimental/simd/tests/splits.cc: New file. Test
4486 * testsuite/experimental/simd/tests/trigonometric.cc: New file.
4487 Test remaining trigonometric functions on simd.
4488 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: New
4489 file. Test trunc(simd), ceil(simd), and floor(simd).
4490 * testsuite/experimental/simd/tests/where.cc: New file. Test
4491 masked operations using where.
4493 2021-01-27 Matthias Kretz <kretz@kde.org>
4495 * doc/xml/manual/status_cxx2017.xml: Add implementation status
4496 of the Parallelism TS 2. Document implementation-defined types
4498 * include/Makefile.am: Add new headers.
4499 * include/Makefile.in: Regenerate.
4500 * include/experimental/simd: New file. New header for
4502 * include/experimental/bits/numeric_traits.h: New file.
4503 Implementation of P1841R1 using internal naming. Addition of
4504 missing IEC559 functionality query.
4505 * include/experimental/bits/simd.h: New file. Definition of the
4506 public simd interfaces and general implementation helpers.
4507 * include/experimental/bits/simd_builtin.h: New file.
4508 Implementation of the _VecBuiltin simd_abi.
4509 * include/experimental/bits/simd_converter.h: New file. Generic
4511 * include/experimental/bits/simd_detail.h: New file. Internal
4512 macros for the simd implementation.
4513 * include/experimental/bits/simd_fixed_size.h: New file. Simd
4514 fixed_size ABI specific implementations.
4515 * include/experimental/bits/simd_math.h: New file. Math
4517 * include/experimental/bits/simd_neon.h: New file. Simd NEON
4518 specific implementations.
4519 * include/experimental/bits/simd_ppc.h: New file. Implement bit
4520 shifts to avoid invalid results for integral types smaller than
4522 * include/experimental/bits/simd_scalar.h: New file. Simd scalar
4523 ABI specific implementations.
4524 * include/experimental/bits/simd_x86.h: New file. Simd x86
4525 specific implementations.
4526 * include/experimental/bits/simd_x86_conversions.h: New file.
4527 x86 specific conversion optimizations. The conversion patterns
4528 work around missing conversion patterns in the compiler and
4529 should be removed as soon as PR85048 is resolved.
4530 * testsuite/experimental/simd/standard_abi_usable.cc: New file.
4531 Test that all (not all fixed_size<N>, though) standard simd and
4532 simd_mask types are usable.
4533 * testsuite/experimental/simd/standard_abi_usable_2.cc: New
4534 file. As above but with -ffast-math.
4535 * testsuite/libstdc++-dg/conformance.exp: Don't build simd tests
4536 from the standard test loop. Instead use
4537 check_vect_support_and_set_flags to build simd tests with the
4538 relevant machine flags.
4540 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
4543 * include/bits/string_view.tcc
4544 (basic_string_view::find(const CharT*, size_type, size_type)):
4547 2021-01-27 Paul Fee <paul.f.fee@gmail.com>
4549 * include/bits/basic_string.h (basic_string::contains): New
4551 * include/std/string_view (basic_string_view::contains):
4553 * include/std/version (__cpp_lib_string_contains): Define.
4554 * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
4555 Remove trailing whitespace.
4556 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
4558 * testsuite/21_strings/basic_string/operations/contains/char/1.cc: New test.
4559 * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc: New test.
4560 * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc: New test.
4561 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: New test.
4562 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc: New test.
4564 2021-01-21 Jonathan Wakely <jwakely@redhat.com>
4566 * src/c++17/Makefile.in: Regenerate.
4568 2021-01-20 David Edelsohn <dje.gcc@gmail.com>
4570 * config/os/aix/ctype_inline.h (bool ctype<char>:: is): Cast
4571 _OBJ_DATA subscript to unsigned char. Add _THREAD_SAFE access to
4573 (const char* ctype<char>:: is): Same.
4575 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
4578 * testsuite/20_util/unique_ptr/io/lwg2948.cc: Do not try to
4579 write to a wide character stream if wide character support is
4580 disabled in the library.
4582 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
4584 * testsuite/27_io/basic_stringstream/cons/char/1.cc: Use
4585 stringbuf not wstringbuf.
4587 2021-01-18 Jakub Jelinek <jakub@redhat.com>
4590 * src/c++11/Makefile.am (cxx11-ios_failure-lt.s, cxx11-ios_failure.s):
4591 Compile with -gno-as-loc-support.
4592 * src/c++11/Makefile.in: Regenerated.
4594 2021-01-16 H.J. Lu <hjl.tools@gmail.com>
4596 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
4597 Add -fcf-protection=none to -march=i486.
4599 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
4601 * testsuite/23_containers/deque/debug/98466.cc: Make it pre-C++11
4604 2021-01-14 Alexandre Oliva <oliva@adacore.com>
4606 * testsuite/30_threads/future/members/poll.cc: Calibrate
4609 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
4612 * include/bits/hashtable_policy.h (_Node_iterator_base()): Set _M_cur to nullptr.
4613 (_Node_iterator()): Make default.
4614 (_Node_const_iterator()): Make default.
4615 * include/debug/macros.h (__glibcxx_check_erae_range_after): Add _M_singular
4617 * include/debug/safe_iterator.h
4618 (_GLIBCXX_DEBUG_VERIFY_OPERANDS): Accept if both iterator are value initialized.
4619 * include/debug/safe_local_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
4621 * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range): Add
4622 _M_singular checks on input iterators.
4623 * src/c++11/debug.cc (_Safe_iterator_base::_M_can_compare): Remove _M_singular
4625 * testsuite/23_containers/deque/debug/98466.cc: New test.
4626 * testsuite/23_containers/unordered_map/debug/98466.cc: New test.
4628 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
4631 * include/bits/fs_path.h (__throw_conversion_error): New
4632 function to throw or abort on character conversion errors.
4633 (__wstr_from_utf8): Move definition after filesystem_error has
4634 been defined. Use __throw_conversion_error.
4635 (path::_S_convert<_EcharT>): Use __throw_conversion_error.
4636 (path::_S_str_convert<_CharT, _Traits, _Allocator>): Likewise.
4637 (path::u8string): Likewise.
4639 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
4641 * include/std/barrier: Update copyright years. Fix whitespace.
4642 * include/std/version: Fix whitespace.
4643 * testsuite/30_threads/barrier/1.cc: Update copyright years.
4644 * testsuite/30_threads/barrier/2.cc: Likewise.
4645 * testsuite/30_threads/barrier/arrive.cc: Likewise.
4646 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
4647 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
4648 * testsuite/30_threads/barrier/completion.cc: Likewise.
4650 2021-01-13 Jonathan Wakely <jwakely@redhat.com>
4652 * doc/doxygen/user.cfg.in (INPUT): Remove include/debug/array.
4654 2021-01-10 David Edelsohn <dje.gcc@gmail.com>
4657 * testsuite/ext/vstring/cons/moveable.cc: Suppress false positive
4659 * testsuite/ext/vstring/modifiers/assign/move_assign.cc: Same.
4661 2021-01-08 Olivier Hainque <hainque@adacore.com>
4663 * testsuite/20_util/bind/ref_neg.cc: Tweak the
4664 dg-prune-output regex for out-of-build-tree contexts.
4666 2021-01-07 Thomas Rodgers <trodgers@redhat.com>
4668 * doc/doxygen/user.cfg.in: Add new header.
4669 * include/Makefile.am (std_headers): likewise.
4670 * include/Makefile.in: Regenerate.
4671 * include/precompiled/stdc++.h: Add new header.
4672 * include/std/barrier: New file.
4673 * include/std/version: Add __cpp_lib_barrier feature test macro.
4674 * testsuite/30_threads/barrier/1.cc: New test.
4675 * testsuite/30_threads/barrier/2.cc: Likewise.
4676 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
4677 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
4678 * testsuite/30_threads/barrier/arrive.cc: Likewise.
4679 * testsuite/30_threads/barrier/completion.cc: Likewise.
4681 2021-01-07 Patrick Palka <ppalka@redhat.com>
4684 * testsuite/20_util/to_chars/long_double.cc: Use nexttowardl
4685 instead of the non-standard nextupl and nextdownl.
4687 2021-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
4689 * configure: Re-generate.
4691 2021-01-05 Ed Smith-Rowland <3dw4rd@verizon.net>
4693 * include/precompiled/stdc++.h: Add <source_location> to C++20 section.
4695 2021-01-01 Jakub Jelinek <jakub@redhat.com>
4697 * ChangeLog-2020: Rotate ChangeLog. New file.
4700 Copyright (C) 2021 Free Software Foundation, Inc.
4702 Copying and distribution of this file, with or without modification,
4703 are permitted in any medium without royalty provided the copyright
4704 notice and this notice are preserved.