1 2021-10-20 Jonathan Wakely <jwakely@redhat.com>
3 * testsuite/20_util/optional/monadic/transform.cc: Check that
4 an rvalue result is not materialized too soon.
6 2021-10-19 Patrick Palka <ppalka@redhat.com>
8 * include/std/ranges (iota_view::_Iterator::operator+): Adjust
9 definition as per LWG 3580.
10 (iota_view::_Iterator::operator-): Likewise.
12 2021-10-19 Patrick Palka <ppalka@redhat.com>
14 * include/std/ranges (basic_istream_view::_M_object): Value
15 initialize as per LWG 3568.
17 2021-10-19 Patrick Palka <ppalka@redhat.com>
19 * include/bits/ranges_util.h
20 (__detail::__uses_nonqualification_pointer_conversion): Define
22 (__detail::__convertible_to_nonslicing): ... here, as per LWG 3470.
23 * testsuite/std/ranges/subrange/1.cc: New test.
25 2021-10-19 Patrick Palka <ppalka@redhat.com>
27 * include/std/ranges (iota_view::_Iterator): Befriend iota_view.
28 (iota_view::_Sentinel): Likewise.
29 (iota_view::iota_view): Add three overloads, each taking an
30 iterator/sentinel pair as per LWG 3523.
31 * testsuite/std/ranges/iota/iota_view.cc (test06): New test.
33 2021-10-19 Patrick Palka <ppalka@redhat.com>
35 * include/bits/ranges_base.h (view_interface): Forward declare.
36 (__detail::__is_derived_from_view_interface_fn): Declare.
37 (__detail::__is_derived_from_view_interface): Define as per LWG 3549.
38 (enable_view): Adjust as per LWG 3549.
39 * include/bits/ranges_util.h (view_interface): Don't derive from
41 * include/std/ranges (filter_view): Revert r11-3504 change.
42 (transform_view): Likewise.
43 (take_view): Likewise.
44 (take_while_view): Likewise.
45 (drop_view): Likewise.
46 (drop_while_view): Likewise.
47 (join_view): Likewise.
48 (lazy_split_view): Likewise.
49 (split_view): Likewise.
50 (reverse_view): Likewise.
51 * testsuite/std/ranges/adaptors/sizeof.cc: Update expected sizes.
52 * testsuite/std/ranges/view.cc (test_view::test_view): Remove
53 this default ctor since views no longer need to be default initable.
56 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
58 * src/c++11/random.cc (which_source): New helper function.
59 (random_device::_M_getentropy()): Use which_source and return
60 suitable values for sources other than device files.
61 * testsuite/26_numerics/random/random_device/entropy.cc: New test.
63 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
65 * doc/Makefile.am (stamp-html-doxygen, stamp-html-doxygen)
66 (stamp-latex-doxygen, stamp-man-doxygen): Fix recipes for
67 relative ${top_srcdir}.
68 * doc/Makefile.in: Regenerate.
70 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
72 * include/std/variant (_Uninitialized): Use an empty struct
73 for the unused union member, instead of char.
75 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
77 * include/bits/stl_stack.h (stack(Iterator, Iterator)): Remove
78 non-deducible template parameter from deduction guide.
79 * testsuite/23_containers/stack/deduction.cc: Check new C++23
82 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
84 * include/std/optional (_Optional_payload_base::_Storage): Add
85 constructor taking a callable function to invoke.
86 (_Optional_payload_base::_M_apply): New function.
87 (__cpp_lib_monadic_optional): Define for C++23.
88 (optional::and_then, optional::transform, optional::or_else):
90 * include/std/ranges (__detail::__cached): Remove.
91 (__detail::__non_propagating_cache): Remove use of __cached for
92 contained value. Use _Optional_payload_base::_M_construct and
93 _Optional_payload_base::_M_apply to set the contained value.
94 * include/std/version (__cpp_lib_monadic_optional): Define.
95 * testsuite/20_util/optional/monadic/and_then.cc: New test.
96 * testsuite/20_util/optional/monadic/or_else.cc: New test.
97 * testsuite/20_util/optional/monadic/or_else_neg.cc: New test.
98 * testsuite/20_util/optional/monadic/transform.cc: New test.
99 * testsuite/20_util/optional/monadic/version.cc: New test.
101 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
104 * include/bits/mofunc_impl.h (move_only_function): Remove
105 invalid base initializer.
106 * testsuite/20_util/move_only_function/cons.cc: Instantiate
107 constructors to check bodies.
109 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
111 * include/bits/fs_path.h (path::_S_convert(T)): Avoid recursive
112 call to function with deduced return type.
114 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
116 * include/bits/basic_string.h (__cpp_lib_string_resize_and_overwrite):
118 (basic_string::resize_and_overwrite): Declare.
119 * include/bits/basic_string.tcc (basic_string::resize_and_overwrite):
121 * include/std/version (__cpp_lib_resize_and_overwrite): Define
123 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
126 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
129 * include/std/ranges (__cached): New wrapper struct.
130 (__non_propagating_cache): Use __cached for contained value.
131 (__non_propagating_cache::_M_emplace_deref): Add constexpr. Use
132 std::construct_at instead of placement new.
133 * testsuite/std/ranges/adaptors/join.cc: Check constexpr works.
135 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
137 * include/std/variant (__cpp_lib_variant): Update value for
139 (__variant_cast, __variant_construct): Add constexpr for C++20.
140 (__variant_construct_single, __construct_by_index) Likewise. Use
141 std::_Construct instead of placement new.
142 (_Uninitialized<T, false>) [__cplusplus >= 202002]: Replace
143 buffer with a union and define a destructor.
144 (_Variadic_union) [__cplusplus >= 202002]: Add a specialization
145 for non-trivial destruction.
146 (_Variant_storage::__index_of): New helper variable template.
147 (_Variant_storage::~_Variant_storage()): Add constexpr.
148 (_Variant_storage::_M_reset()): Likewise.
149 (_Copy_ctor_base, _Move_ctor_base): Likewise.
150 (_Copy_assign_base, _Move_assign_base): Likewise.
151 (variant, swap): Likewise.
152 * include/std/version (__cpp_lib_variant): Update value for
154 * testsuite/20_util/optional/version.cc: Check for exact value
156 * testsuite/20_util/variant/87619.cc: Increase timeout for
158 * testsuite/20_util/variant/constexpr.cc: New test.
159 * testsuite/20_util/variant/version.cc: New test.
161 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
163 * include/std/variant (__detail::__variant::__get_storage):
164 Remove unused function.
165 (__variant_construct_by_index): Set index after construction is
166 complete. Rename to ...
167 (__detail::__variant::__construct_by_index): ... this.
168 (variant): Use new name for __variant_construct_by_index friend
169 declaration. Remove __get_storage friend declaration.
170 (variant::emplace): Use new name and remove try-blocks.
172 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
174 * include/std/variant (_Variant_storage::_M_storage()): Remove.
175 (__detail::__variant::__get_storage): Remove.
176 (variant): Remove friend declaration of __get_storage.
178 2021-10-15 Jason Merrill <jason@redhat.com>
180 * testsuite/20_util/integer_comparisons/greater_equal_neg.cc:
181 * testsuite/20_util/integer_comparisons/greater_neg.cc:
182 * testsuite/20_util/integer_comparisons/less_equal_neg.cc:
183 Adjust expected message.
184 * testsuite/lib/prune.exp: Prune 'in constexpr expansion'.
186 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
188 * include/std/variant (__variant::__get(in_place_index_t<N>, U&&)):
189 Rename to __get_n and remove first argument. Replace pair of
190 overloads with a single function using 'if constexpr'.
191 (__variant::__get(Variant&&)): Adjust to use __get_n.
193 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
195 * include/bits/fs_path.h (path(path&&)): Make unconditionally
197 (path::_S_convert(T)): Add condtional noexcept.
199 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
202 * include/bits/fs_path.h (path::_S_convert(T)): Fix condition
203 for returning the same string unchanged.
205 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
207 * include/bits/regex.h: Check __cpp_inline_variables instead of
210 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
212 * testsuite/20_util/is_layout_compatible/version.cc: Check
215 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
217 * include/bits/stl_construct.h (_Construct): Use
218 std::construct_at when constant evaluated.
219 * include/std/optional (_Storage, _Optional_payload, optional):
220 Add constexpr as specified by P2231R1.
221 * include/std/version (__cpp_lib_optional): Update value for
223 * testsuite/20_util/optional/requirements.cc: Check feature test
225 * testsuite/20_util/optional/constexpr/assign.cc: New test.
226 * testsuite/20_util/optional/constexpr/cons/conv.cc: New test.
227 * testsuite/20_util/optional/constexpr/modifiers.cc: New test.
228 * testsuite/20_util/optional/constexpr/swap.cc: New test.
229 * testsuite/20_util/optional/version.cc: New test.
231 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
233 * include/bits/fs_path.h (__detail::__is_contiguous): Add
234 partial specializations for pointers and __normal_iterator.
236 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
238 * testsuite/27_io/filesystem/path/construct/102592.C: Moved to...
239 * testsuite/27_io/filesystem/path/construct/102592.cc: ...here.
240 * testsuite/28_regex/match_results/102667.C: Moved to...
241 * testsuite/28_regex/match_results/102667.cc: ...here.
243 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
245 * include/bits/fs_path.h (__detail::__is_contiguous): New
246 variable template to identify contiguous iterators.
247 (__detail::__unified_char8_t): New alias template to decide when
248 to treat char8_t as char without encoding conversion.
249 (__detail::__effective_range(const basic_string<C,T>&)): Use
250 std::char_traits<C> for returned string view.
251 (__detail::__effective_range(const basic_string_view<C,T>&)):
253 (__detail::__effective_range(const Source&)): Use
254 __is_contiguous to detect mode cases of contiguous iterators.
255 Use __unified_char8_t to return a std::string instead of
258 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
261 * include/bits/fs_path.h (path::path(Iter, Iter, format))
262 (path::append(Iter, Iter), path::concat(Iter, Iter)): Call
263 __string_from_range directly, instead of two-argument overload
265 (path::_S_convert(Iter, Iter)): Remove.
266 * testsuite/27_io/filesystem/path/construct/102592.C: New test.
268 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
270 * include/bits/c++config (__terminate): Add extern "C++".
272 2021-10-12 Jonathan Wakely <jwakely@redhat.com>
274 * testsuite/20_util/tuple/comparison_operators/overloaded.cc:
275 Restore test for operator<.
276 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
277 Adjust expected errors for C++20.
279 2021-10-12 Jonathan Wakely <jwakely@redhat.com>
282 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)): Define as
284 * testsuite/20_util/tuple/cons/101960.cc: Check tuples with
285 array elements before the last element.
287 2021-10-12 Jonathan Wakely <jwakely@redhat.com>
289 * include/bits/stl_iterator_base_funcs.h (__advance): Add
290 deleted overload to improve diagnostics.
291 (__distance): Likewise.
293 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
295 * include/bits/atomic_timed_wait.h: Remove unused header.
296 * include/bits/c++config (std:__terminate): Define.
297 * include/bits/semaphore_base.h: Remove <exception> and use
298 __terminate instead of terminate.
299 * include/bits/std_thread.h: Likewise.
300 * libsupc++/eh_terminate.cc (std::terminate): Use qualified-id
301 to call __cxxabiv1::__terminate.
303 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
305 * include/bits/regex.h (basic_regex::assign(Iter, Iter)): Avoid
306 std::__to_address by using poitner directly or using base()
307 member of __normal_iterator.
309 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
311 * testsuite/18_support/numeric_limits/lowest.cc: Use
312 numeric_limits<T>::is_integer instead of is_integral<T>::value.
314 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
317 * include/bits/regex.h (basic_regex(const _Ch_type*, size_t)):
318 Add __glibcxx_requires_string_len assertion.
319 (basic_regex::assign(InputIterator, InputIterator)): Add
320 __glibcxx_requires_valid_range assertion.
321 * include/bits/regex_scanner.tcc (_Scanner::_M_advance())
322 (_Scanner::_M_scan_normal()): Use string literal in assertions.
324 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
327 * include/bits/regex.h (match_result::empty()): Optimize by
328 calling the base function directly.
329 (match_results::end()): Check _Base_type::empty() not empty().
330 * testsuite/28_regex/match_results/102667.C: New test.
332 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
335 * testsuite/18_support/numeric_limits/lowest.cc: Remove use of
336 _GLIBCXX_USE_WCHAR_T.
337 * testsuite/18_support/numeric_limits/min_max.cc: Replace use of
338 _GLIBCXX_USE_WCHAR_T with checks for WCHAR_MIN and WCHAR_MAX.
339 * testsuite/20_util/from_chars/1_neg.cc: Remove use of
340 _GLIBCXX_USE_WCHAR_T.
341 * testsuite/20_util/function_objects/searchers.cc: Likewise. Use
342 char_traits<wchar_t>::length instead of wcslen.
343 * testsuite/20_util/hash/requirements/explicit_instantiation.cc:
345 * testsuite/20_util/is_arithmetic/value.cc: Likewise.
346 * testsuite/20_util/is_compound/value.cc: Likewise.
347 * testsuite/20_util/is_floating_point/value.cc: Likewise.
348 * testsuite/20_util/is_fundamental/value.cc: Likewise.
349 * testsuite/20_util/is_integral/value.cc: Likewise.
350 * testsuite/20_util/is_signed/value.cc: Likewise.
351 * testsuite/20_util/is_unsigned/value.cc: Likewise.
352 * testsuite/20_util/is_void/value.cc: Likewise.
353 * testsuite/20_util/make_signed/requirements/typedefs-1.cc:
355 * testsuite/20_util/make_signed/requirements/typedefs-2.cc:
357 * testsuite/20_util/make_signed/requirements/typedefs-3.cc:
359 * testsuite/20_util/make_signed/requirements/typedefs-4.cc:
361 * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
363 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
365 * testsuite/20_util/make_unsigned/requirements/typedefs-3.cc:
367 * testsuite/20_util/to_chars/3.cc: Likewise.
368 * testsuite/20_util/type_identity/requirements/typedefs.cc:
370 * testsuite/21_strings/basic_string/hash/debug.cc: Likewise.
371 * testsuite/21_strings/basic_string/hash/hash.cc: Likewise.
372 * testsuite/21_strings/basic_string/literals/types-char8_t.cc:
374 * testsuite/21_strings/basic_string/literals/types.cc: Likewise.
375 * testsuite/21_strings/basic_string/literals/values-char8_t.cc:
377 * testsuite/21_strings/basic_string/literals/values.cc:
379 * testsuite/21_strings/basic_string/modifiers/64422.cc:
381 * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
383 * testsuite/21_strings/basic_string/requirements/citerators.cc:
385 * testsuite/21_strings/basic_string/requirements/typedefs.cc:
387 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
389 * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
391 * testsuite/21_strings/basic_string_view/literals/types.cc:
393 * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
395 * testsuite/21_strings/basic_string_view/literals/values.cc:
397 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
399 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
400 * testsuite/21_strings/char_traits/requirements/constexpr_functions.cc:
402 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
404 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
406 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Likewise.
407 * testsuite/25_algorithms/fill/4.cc: Likewise.
408 * testsuite/25_algorithms/fill_n/1.cc: Likewise.
409 * testsuite/experimental/functional/searchers.cc: Likewise. Use
410 char_traits<wchar_t>::length instead of wcslen.
411 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc:
413 * testsuite/experimental/string_view/literals/types-char8_t.cc:
415 * testsuite/experimental/string_view/literals/types.cc:
417 * testsuite/experimental/string_view/literals/values-char8_t.cc:
419 * testsuite/experimental/string_view/literals/values.cc:
421 * testsuite/experimental/string_view/range_access/wchar_t/1.cc:
423 * testsuite/experimental/string_view/requirements/typedefs.cc:
425 * testsuite/experimental/string_view/typedefs.cc: Likewise.
426 * testsuite/ext/vstring/range_access.cc: Likewise.
427 * testsuite/std/concepts/concepts.lang/concept.arithmetic/integral.cc:
429 * testsuite/std/concepts/concepts.lang/concept.arithmetic/signed_integral.cc:
431 * testsuite/std/concepts/concepts.lang/concept.arithmetic/unsigned_integral.cc:
433 * testsuite/tr1/4_metaprogramming/is_arithmetic/value.cc:
435 * testsuite/tr1/4_metaprogramming/is_compound/value.cc:
437 * testsuite/tr1/4_metaprogramming/is_floating_point/value.cc:
439 * testsuite/tr1/4_metaprogramming/is_fundamental/value.cc:
441 * testsuite/tr1/4_metaprogramming/is_integral/value.cc:
443 * testsuite/tr1/4_metaprogramming/is_signed/value.cc: Likewise.
444 * testsuite/tr1/4_metaprogramming/is_unsigned/value.cc:
446 * testsuite/tr1/4_metaprogramming/is_void/value.cc: Likewise.
447 * testsuite/tr1/6_containers/hash/24799.cc: Likewise.
449 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
452 * include/std/ostream (operator<<(basic_ostream<char, Tr>&, wchar_t))
453 (operator<<(basic_ostream<char, Tr>&, const wchar_t*)): Always
454 define as deleted. Do not check _GLIBCXX_USE_WCHAR_T.
456 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
459 * include/bits/locale_conv.h (wstring_convert, wbuffer_convert):
460 Define unconditionally. Do not check _GLIBCXX_USE_WCHAR_T.
462 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
465 * include/c_global/cstddef [!_GLIBCXX_USE_WCHAR_T]
466 (__byte_operand<wchar_t>): Define specialization.
467 * include/std/type_traits (__make_signed<wchar_t>)
468 (__make_unsigned<wchar_t>): Remove redundant check for
469 __WCHAR_TYPE__ being defined.
470 * include/tr1/type_traits [!_GLIBCXX_USE_WCHAR_T]
471 (__is_integral_helper<wchar_t>): Likewise.
473 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
476 * include/ext/rc_string_base.h [!_GLIBCXX_USE_WCHAR_T]
477 (__rc_string_base<wchar_t>): Define member function.
478 * include/ext/vstring.h [!_GLIBCXX_USE_WCHAR_T]
479 (hash<__gnu_cxx::__wvstring>): Define specialization.
480 * include/ext/vstring_fwd.h [!_GLIBCXX_USE_WCHAR_T] (__wvstring)
481 (__wsso_string, __wrc_string): Declare typedefs.
483 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
486 * include/bits/char_traits.h (char_traits<wchar_t>): Define
487 explicit specialization unconditionally.
488 * include/bits/basic_string.h (hash<wstring>): Define
489 unconditionally. Do not check _GLIBCXX_USE_WCHAR_T.
490 * include/bits/stringfwd.h (wstring): Likewise.
491 * include/debug/string (wstring): Likewise.
492 * include/experimental/string_view (experimental::wstring_view)
493 (hash<experimental::wstring_view>): Likewise.
494 * include/std/string (pmr::wstring, hash<pmr::wstring>):
496 * include/std/string_view (wstring_view, hash<wstring_view>):
499 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
501 * testsuite/27_io/basic_filebuf/close/81256.cc: Moved to...
502 * testsuite/27_io/basic_filebuf/close/wchar_t/81256.cc: ...here.
504 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
506 * testsuite/22_locale/conversions/buffer/1.cc: Check
507 _GLIBCXX_USE_WCHAR_T.
508 * testsuite/22_locale/conversions/buffer/3.cc: Likewise. Add
510 * testsuite/22_locale/conversions/string/1.cc: Check
511 _GLIBCXX_USE_WCHAR_T.
512 * testsuite/27_io/filesystem/path/generic/generic_string.cc:
514 * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
516 * testsuite/27_io/filesystem/path/native/alloc.cc: Likewise.
517 * testsuite/27_io/filesystem/path/native/string-char8_t.cc:
519 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
520 * testsuite/28_regex/algorithms/regex_match/extended/wstring_locale.cc:
522 * testsuite/experimental/filesystem/path/generic/generic_string.cc:
524 * testsuite/experimental/filesystem/path/native/alloc.cc:
526 * testsuite/experimental/filesystem/path/native/string-char8_t.cc:
528 * testsuite/experimental/filesystem/path/native/string.cc:
531 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
533 * testsuite/26_numerics/bit/bit.rotate/rotr.cc:
534 * testsuite/util/testsuite_common_types.h:
536 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
538 * testsuite/18_support/numeric_limits/40856.cc: Replace use of
540 * testsuite/18_support/numeric_limits/dr559.cc: Likewise.
541 * testsuite/18_support/numeric_limits/lowest.cc: Likewise.
542 * testsuite/18_support/numeric_limits/max_digits10.cc: Likewise.
543 * testsuite/20_util/is_floating_point/value.cc: Likewise.
544 * testsuite/20_util/is_integral/value.cc: Likewise.
545 * testsuite/20_util/is_signed/value.cc: Likewise.
546 * testsuite/20_util/is_unsigned/value.cc: Likewise.
547 * testsuite/20_util/make_signed/requirements/typedefs-1.cc:
549 * testsuite/20_util/make_signed/requirements/typedefs-2.cc:
551 * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
553 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
555 * testsuite/20_util/type_identity/requirements/typedefs.cc:
557 * testsuite/26_numerics/bit/bit.count/countl_one.cc: Likewise.
558 * testsuite/26_numerics/bit/bit.count/countl_zero.cc: Likewise.
559 * testsuite/26_numerics/bit/bit.count/countr_one.cc: Likewise.
560 * testsuite/26_numerics/bit/bit.count/countr_zero.cc: Likewise.
561 * testsuite/26_numerics/bit/bit.count/popcount.cc: Likewise.
562 * testsuite/26_numerics/bit/bit.pow.two/bit_ceil.cc: Likewise.
563 * testsuite/26_numerics/bit/bit.pow.two/bit_floor.cc: Likewise.
564 * testsuite/26_numerics/bit/bit.pow.two/bit_width.cc: Likewise.
565 * testsuite/26_numerics/bit/bit.pow.two/has_single_bit.cc:
567 * testsuite/26_numerics/bit/bit.rotate/rotl.cc: Likewise.
569 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
571 * include/bits/hashtable_policy.h (_Select1st): Replace use of
573 (_Select2nd): Remove.
574 (_NodeBuilder::_S_build): Use _NodeGenerator::__node_type
575 typedef instead of deducing it. Remove unnecessary piecewise
577 (_ReuseOrAllocNode): Make __node_type public.
578 (_Map_base): Adjust partial specialization to be able to extract
579 the mapped_type without using tuple_element.
580 (_Map_base::at): Define inline
581 * testsuite/23_containers/unordered_map/requirements/53339.cc:
583 * testsuite/23_containers/unordered_multimap/requirements/53339.cc:
586 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
588 * include/bits/hashtable.h: Move static assertion to destructor.
589 * include/bits/hashtable_policy.h: Deduce value type from node
590 type without instantiating it.
592 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
594 * src/c++11/limits.cc: Fail if __cpp_inline_variables is
597 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
600 * include/bits/ranges_algobase.h: Replace <iterator> with a
601 subset of the headers it includes.
603 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
605 * include/experimental/deque (erase, erase_if): Revert changes
606 to avoid debug mode overhead.
607 * include/experimental/map (erase, erase_if): Likewise.
608 * include/experimental/set (erase, erase_if): Likewise.
609 * include/experimental/unordered_map (erase, erase_if):
611 * include/experimental/unordered_set (erase, erase_if):
613 * include/experimental/vector (erase, erase_if): Likewise.
614 * include/std/deque (erase, erase_if): Likewise.
615 * include/std/map (erase, erase_if): Likewise.
616 * include/std/set (erase, erase_if): Likewise.
617 * include/std/unordered_map (erase, erase_if): Likewise.
618 * include/std/unordered_set (erase, erase_if): Likewise.
619 * include/std/vector (erase, erase_if): Likewise.
621 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
623 * include/std/chrono (__detail::__units_suffix_misc): New
625 (__detail::__units_suffix): Likewise.
626 (chrono::operator<<(basic_ostream&, const duration&)): Define.
627 * testsuite/20_util/duration/io.cc: New test.
629 2021-10-07 Jonathan Wakely <jwakely@redhat.com>
631 * include/Makefile.am: Add new header.
632 * include/Makefile.in: Regenerate.
633 * include/std/chrono (duration, time_point, system_clock)
634 (steady_clock, high_resolution_clock, chrono_literals, sys_time)
635 (file_clock, file_time): Move to ...
636 * include/bits/chrono.h: New file.
637 * include/bits/atomic_futex.h: Include new header instead of
639 * include/bits/atomic_timed_wait.h: Likewise.
640 * include/bits/fs_fwd.h: Likewise.
641 * include/bits/semaphore_base.h: Likewise.
642 * include/bits/this_thread_sleep.h: Likewise.
643 * include/bits/unique_lock.h: Likewise.
644 * include/experimental/bits/fs_fwd.h: Likewise.
645 * include/experimental/chrono: Likewise.
646 * include/experimental/io_context: Likewise.
647 * include/experimental/netfwd: Likewise.
648 * include/experimental/timer: Likewise.
649 * include/std/condition_variable: Likewise.
650 * include/std/mutex: Likewise.
651 * include/std/shared_mutex: Likewise.
653 2021-10-07 Jonathan Wakely <jwakely@redhat.com>
656 * include/bits/atomic_wait.h (__waiter_pool_base:_S_align):
657 Hardcode to 64 instead of using non-constant constant.
659 2021-10-07 Jonathan Wakely <jwakely@redhat.com>
661 * include/bits/erase_if.h (__erase_nodes_if): Remove redundant
663 * include/std/string (erase, erase_if): Likewise.
664 * include/std/deque (erase, erase_if): Access non-debug
666 * include/std/map (erase, erase_if): Likewise.
667 * include/std/set (erase, erase_if): Likewise.
668 * include/std/unordered_map (erase, erase_if): Likewise.
669 * include/std/unordered_set (erase, erase_if): Likewise.
670 * include/std/vector (erase, erase_if): Likewise.
671 * include/experimental/deque (erase, erase_if): Likewise.
672 * include/experimental/map (erase, erase_if): Likewise.
673 * include/experimental/set (erase, erase_if): Likewise.
674 * include/experimental/unordered_map (erase, erase_if):
676 * include/experimental/unordered_set (erase, erase_if):
678 * include/experimental/vector (erase, erase_if): Likewise.
680 2021-10-06 Jonathan Wakely <jwakely@redhat.com>
682 * include/Makefile.am: Add new headers.
683 * include/Makefile.in: Regenerate.
684 * include/std/functional: Include <bits/move_only_function.h>.
685 * include/std/version (__cpp_lib_move_only_function): Define.
686 * include/bits/mofunc_impl.h: New file.
687 * include/bits/move_only_function.h: New file.
688 * testsuite/20_util/move_only_function/call.cc: New test.
689 * testsuite/20_util/move_only_function/cons.cc: New test.
690 * testsuite/20_util/move_only_function/move.cc: New test.
691 * testsuite/20_util/move_only_function/version.cc: New test.
693 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
695 * testsuite/21_strings/basic_string_view/requirements/trivially_copyable.cc:
697 * testsuite/23_containers/span/trivially_copyable.cc: New test.
699 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
701 * include/bits/utility.h (__is_in_place_type_v): Define
702 variable template to detect in_place_type_t specializations.
703 (__is_in_place_type): Replace class template with alias
704 template using __is_in_place_type_v.
705 * include/std/any (any(T&&)): Check __is_in_place_type first and
706 avoid instantiating is_copy_constructible unnecessarily.
708 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
710 * testsuite/20_util/integer_comparisons/greater.cc: New test.
712 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
714 * testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc:
715 Check result matches non-volatile pointer.
717 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
720 * testsuite/20_util/is_trivially_constructible/value.cc: Adjust
721 expected value for C++20.
723 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
725 * include/bits/std_function.h (_Any_data::_M_access): Add
727 (_Function_base::_Base_manager::_M_get_pointer): Likewise.
728 (_Function_base::_Base_manager::_M_not_empty_function):
731 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
733 * include/std/ostream (operator<<(const volatile void*)):
734 Add new overload, as per P1147R1.
735 * testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc:
738 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
740 * include/bits/stl_queue.h
741 (__cpp_lib_adaptor_iterator_pair_constructor): Set to correct
743 * include/bits/stl_stack.h
744 (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
745 * include/std/version
746 (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
747 * testsuite/23_containers/queue/cons_from_iters.cc: Update
749 * testsuite/23_containers/stack/cons_from_iters.cc: Likewise.
751 2021-10-04 Jonathan Wakely <jwakely@redhat.com>
753 * include/bits/forward_list.h (forward_list): Use non-deduced
754 context for allocator parameter of allocator-extended copy and
756 * include/bits/stl_bvector.h (vector<bool>): Likewise.
757 * include/bits/stl_deque.h (deque): Likewise.
758 * include/bits/stl_list.h (list): Likewise.
759 * include/bits/stl_map.h (map): Likewise.
760 * include/bits/stl_multimap.h (multimap): Likewise.
761 * include/bits/stl_multiset.h (multiset): Likewise.
762 * include/bits/stl_set.h (set): Likewise.
763 * include/bits/stl_vector.h (vector): Likewise.
764 * include/bits/stl_queue.h (queue, priority_queue): Do not
765 constrain Allocator template parameter of deduction guides that
766 have a Container parameter.
767 * include/bits/stl_stack.h (stack): Likewise.
768 * include/debug/deque (__gnu_debug::deque): Use non-deduced
769 context for allocator parameter of allocator-extended copy and
771 * include/debug/list (__gnu_debug::list): Likewise.
772 * include/debug/map.h (__gnu_debug::map): Likewise.
773 * include/debug/multimap.h (__gnu_debug::multimap): Likewise.
774 * include/debug/multiset.h (__gnu_debug::multiset): Likewise.
775 * include/debug/set.h (__gnu_debug::set): Likewise.
776 * include/debug/vector (__gnu_debug::vector): Likewise.
777 * testsuite/23_containers/deque/cons/deduction.cc: Test class
778 template argument deduction with non-deduced allocator
780 * testsuite/23_containers/forward_list/cons/deduction.cc:
782 * testsuite/23_containers/list/cons/deduction.cc: Likewise.
783 * testsuite/23_containers/map/cons/deduction.cc: Likewise.
784 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
785 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
786 * testsuite/23_containers/priority_queue/deduction.cc: Likewise.
787 * testsuite/23_containers/queue/deduction.cc: Likewise.
788 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
789 * testsuite/23_containers/stack/deduction.cc: Likewise.
790 * testsuite/23_containers/unordered_map/cons/deduction.cc:
792 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
794 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
796 * testsuite/23_containers/unordered_set/cons/deduction.cc:
798 * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
800 2021-10-04 Jonathan Wakely <jwakely@redhat.com>
802 * include/std/variant (__detail::__variant::__as): Add missing
803 noexcept to first overload.
805 2021-10-04 Jonathan Wakely <jwakely@redhat.com>
807 * include/bits/basic_string.h (basic_string(nullptr_t)): Define
809 (operator=(nullptr_t)): Likewise.
810 * include/bits/cow_string.h (basic_string(nullptr_t)): Likewise.
811 (operator=(nullptr_t)): Likewise.
812 * include/std/string_view (basic_string_view(nullptr_t)):
814 * testsuite/21_strings/basic_string/cons/char/nullptr.cc: New test.
815 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
816 Change dg-warning to dg-error.
817 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
820 2021-10-02 Jonathan Wakely <jwakely@redhat.com>
822 * src/c++17/fs_ops.cc (create_directory): Fix typo in enum name.
823 * src/filesystem/ops-common.h (__last_system_error): Add
824 explicit cast to avoid narrowing conversion.
825 (do_space): Fix type in function name.
827 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
830 * include/Makefile.am (c++config.h): Define
831 _GLIBCXX_VERBOSE_ASSERT based on configure output.
832 * include/Makefile.in: Regenerate.
833 * include/bits/c++config: Fix condition for verbose assertions.
835 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
838 * include/bits/erase_if.h (__erase_nodes_if): Use __niter_base to
839 unwrap debug iterators.
840 * include/bits/refwrap.h: Do not error if included in C++03.
841 * include/bits/stl_algo.h (__remove_if): Move to ...
842 * include/bits/stl_algobase.h (__remove_if): ... here.
843 * include/std/deque (erase, erase_if): Use __remove_if instead of
844 remove and remove_if.
845 * include/std/string (erase, erase_if): Likewise.
846 * include/std/vector (erase, erase_if): Likewise.
848 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
851 * include/bits/list.tcc (list::sort()): Use _Scratch_list
852 objects for splicing and merging.
853 (list::sort(StrictWeakOrdering)): Likewise.
854 * include/bits/stl_list.h (__detail::_Scratch_list): New type.
855 * src/c++98/list.cc (_List_node_base::_M_transfer): Add
856 assertion for --enable-libstdcxx-debug library.
857 * testsuite/23_containers/list/operations/66742.cc: New test.
859 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
862 * include/std/thread (__pmf_expects_stop_token): New variable
863 template to detect a pointer to member function that needs a
864 stop_token to be added to the arguments.
865 (jthread::__S_create): Use __pmf_expects_stop_token.
866 (jthread::__S_create_pmf): New function.
867 * testsuite/30_threads/jthread/100612.cc: New test.
869 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
871 * include/bits/stl_queue.h
872 (__cpp_lib_adaptor_iterator_pair_constructor): Define for C++23, as
874 (queue(InputIterator, InputIterator)): Likewise.
875 (queue(InputIterator, InputIterator, const Alloc&)): Likewise.
876 * include/bits/stl_stack.h
877 (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
878 (stack(InputIterator, InputIterator)): Likewise.
879 (stack(InputIterator, InputIterator, const Alloc&)): Likewise.
880 * include/std/version (__cpp_lib_adaptor_iterator_pair_constructor):
882 * testsuite/23_containers/queue/cons_from_iters.cc: New test.
883 * testsuite/23_containers/stack/cons_from_iters.cc: New test.
885 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
887 * include/bits/stl_queue.h (priority_queue): Add
888 allocator-extended overloads for constructors taking iterator.
889 * testsuite/23_containers/priority_queue/lwg3506.cc: New test.
891 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
893 * include/bits/stl_queue.h (priority_queue): Construct sequence
894 from iterators when no sequence argument is present (LWG 3529).
895 * testsuite/23_containers/priority_queue/lwg3529.cc: New test.
897 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
899 * include/bits/stl_queue.h (priority_queue): Constrain
900 constructors with InputIterator parameters (LWG 3522).
901 * testsuite/23_containers/priority_queue/lwg3522.cc: New test.
903 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
905 * include/bits/ranges_base.h (ranges::distance): Split overload
907 * testsuite/24_iterators/range_operations/lwg3392.cc: New test.
909 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
911 * testsuite/30_threads/thread/cons/3.cc: Remove derivation from
913 * testsuite/30_threads/thread/cons/4.cc: Likewise.
914 * testsuite/30_threads/thread/cons/5.cc: Likewise.
916 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
918 * testsuite/ext/pb_ds/example/basic_multimap.cc: Remove
919 unnecesary derivation from std::unary_function.
920 * testsuite/ext/pb_ds/example/erase_if.cc: Likewise.
921 * testsuite/ext/pb_ds/example/hash_illegal_resize.cc: Likewise.
922 * testsuite/ext/pb_ds/example/hash_initial_size.cc: Likewise.
923 * testsuite/ext/pb_ds/example/hash_load_set_change.cc: Likewise.
924 * testsuite/ext/pb_ds/example/hash_mod.cc: Likewise.
925 * testsuite/ext/pb_ds/example/hash_resize.cc: Likewise.
926 * testsuite/ext/pb_ds/example/hash_shift_mask.cc: Likewise.
927 * testsuite/ext/pb_ds/example/priority_queue_dijkstra.cc:
929 * testsuite/ext/pb_ds/example/ranged_hash.cc: Likewise.
930 * testsuite/ext/pb_ds/example/store_hash.cc: Likewise.
932 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
934 * src/c++11/functexcept.cc (__throw_out_of_range_fmt): Do not
935 expand the format string for freestanding, or non-vebose, or if
936 we're just going to abort anyway.
937 * src/c++11/snprintf_lite.cc: Remove unused header and
940 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
942 * include/std/variant (__do_visit): Use variant_npos instead of
943 literal -1 that requires a narrowing conversion.
945 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
948 * src/filesystem/ops-common.h (__unsupported): New function to
949 return a suitable error code for missing functionality.
950 (posix::off_t): New typedef.
951 (posix::*): Set errno to ENOSYS instead of ENOTSUP for no-op
952 fallback implementations.
953 (do_copy_file): Replace uses of errc::not_supported.
954 * src/c++17/fs_ops.cc (fs::copy, fs::copy_file, create_dir)
955 (fs::create_directory, fs::create_directory_symlink)
956 (fs::create_hard_link, fs::create_symlink, fs::current_path)
957 (fs::equivalent, do_stat, fs::file_size, fs::hard_link_count)
958 (fs::last_write_time, fs::permissions, fs::read_symlink):
959 Replace uses of errc::not_supported.
960 (fs::resize_file): Qualify off_t.
961 * src/filesystem/ops.cc (fs::copy, fs::copy_file, create_dir)
962 (fs::create_directory, fs::create_directory_symlink)
963 (fs::create_hard_link, fs::create_symlink, fs::current_path)
964 (fs::equivalent, do_stat, fs::file_size, fs::last_write_time)
965 (fs::permissions, fs::read_symlink, fs::system_complete):
966 Replace uses of errc::not_supported.
967 (fs::resize_file): Qualify off_t and enable unconditionally.
968 * testsuite/19_diagnostics/system_error/cons-1.cc: Likewise.
970 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
972 * src/filesystem/ops-common.h (last_error): New helper function.
973 (filesystem::do_space): Use last_error().
974 * src/c++17/fs_ops.cc (fs::absolute, fs::create_hard_link)
975 (fs::equivalent, fs::remove, fs::temp_directory_path): Use
977 * src/filesystem/ops.cc (fs::create_hard_link)
978 (fs::remove, fs::temp_directory_path): Likewise.
980 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
982 * include/std/type_traits (__conditional): New class template
983 for internal uses of std::conditional.
984 (__conditional_t): New alias template to replace conditional_t.
985 (__and_, __or_, __result_of_memfun, __result_of_memobj): Use
986 __conditional_t instead of conditional::type.
987 * include/bits/atomic_base.h (__atomic_impl::_Diff): Likewise.
988 * include/bits/hashtable.h (_Hashtable): Likewise.
989 * include/bits/hashtable_policy.h (_Node_iterator, _Insert_base)
990 (_Local_iterator): Likewise. Replace typedefs with
992 * include/bits/move.h (move_if_noexcept): Use __conditional_t.
993 * include/bits/parse_numbers.h (_Select_int_base): Likewise.
994 * include/bits/ptr_traits.h (__make_not_void): Likewise.
995 * include/bits/ranges_algobase.h (__copy_or_move_backward)
996 (__copy_or_move): Likewise.
997 * include/bits/ranges_base.h (borrowed_iterator_t): Likewise.
998 * include/bits/ranges_util.h (borrowed_subrange_t): Likewise.
999 * include/bits/regex_compiler.h (_BracketMatcher): Use
1000 __conditional_t. Replace typedefs with using-declarations.
1001 * include/bits/shared_ptr_base.h (__shared_count): Use
1003 * include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
1005 * include/bits/stl_iterator.h (__detail::__clamp_iter_cat)
1006 (reverse_iterator::iterator_concept)
1007 (__make_move_if_noexcept_iterator)
1008 (iterator_traits<common_iterator<_It, _Sent>>)
1009 (iterator_traits<counted_iterator<_It>>): Likewise.
1010 * include/bits/stl_pair.h (_PCC, pair::operator=): Likewise.
1011 * include/bits/stl_tree.h (_Rb_tree::insert_return_type)
1012 (_Rb_tree::_M_clone_node): Likewise.
1013 * include/bits/unique_ptr.h (unique_ptr(unique_ptr<U,E>&&)):
1015 * include/bits/uses_allocator.h (__uses_alloc): Likewise.
1016 (__is_uses_allocator_predicate): Likewise.
1017 * include/debug/functions.h (__foreign_iterator_aux2): Likewise.
1018 * include/experimental/any (any::_Manager, __any_caster):
1020 * include/experimental/executor (async_completion): Likewise.
1021 * include/experimental/functional (__boyer_moore_base_t):
1023 * include/std/any (any::_Manager): Likewise.
1024 * include/std/functional (__boyer_moore_base_t): Likewise.
1025 * include/std/ranges (borrowed_iterator_t)
1026 (borrowed_subrange_t, __detail::__maybe_present_t)
1027 (__detail::__maybe_const_t, split_view): Likewise.
1028 * include/std/tuple (__empty_not_final, tuple::operator=):
1030 * include/std/variant (__detail::__variant::__get_t): Likewise.
1032 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1035 * include/std/variant (__do_visit): Use a switch when we have a
1036 single variant with a small number of alternatives.
1038 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1041 * include/std/variant (__cpp_lib_variant): Update value.
1042 (__detail::__variant::__as): New helpers implementing the
1043 as-variant exposition-only function templates.
1044 (visit, visit<R>): Use __as to upcast the variant parameters.
1045 * include/std/version (__cpp_lib_variant): Update value.
1046 * testsuite/20_util/variant/visit_inherited.cc: New test.
1048 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1050 * include/bits/stl_iterator.h (__normal_iterator): Simplify
1051 converting constructor and do not require _Container::pointer.
1053 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1055 * include/bits/cow_string.h [_GLIBCXX_FULLY_DYNAMIC_STRING]
1056 (basic_string(basic_string&&)): Add noexcept and avoid
1057 allocation, by sharing rep with the rvalue string.
1059 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1061 * include/bits/stl_iterator.h (common_iterator::__arrow_proxy)
1062 (common_iterator::__postfix_proxy): Add noexcept.
1064 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1067 * include/bits/stl_iterator.h (reverse_iterator): Use
1068 conditional noexcept on constructors and assignment operators.
1069 * testsuite/24_iterators/reverse_iterator/noexcept.cc: New test.
1071 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1074 * include/bits/vector.tcc (vector<bool>::_M_shrink_to_fit()):
1075 When size() is zero just deallocate and reset.
1077 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1080 * include/bits/stl_algo.h (clamp): Use std::min and std::max.
1082 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1084 * include/bits/regex.h (basic_regex::multiline): Define for
1085 non-strict C++11 and C++14 modes.
1086 * include/bits/regex_constants.h (regex_constants::multiline):
1087 Add _GLIBCXX_RESOLVE_LIB_DEFECTS comment.
1089 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1091 * testsuite/25_algorithms/is_permutation/2.cc: Include <iterator>.
1093 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1095 * include/bits/stream_iterator.h (istream_iterator): Add
1096 noexcept to constructors and non-throwing member functions and
1098 (ostream_iterator): Likewise.
1100 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1102 * include/bits/boost_concept_check.h (_Is_vector_bool_iterator):
1103 New trait to identify vector<bool> iterators, including debug
1105 (_ForwardIteratorReferenceConcept): Add default template
1106 argument using _Is_vector_bool_iterator and use it in partial
1107 specialization for the vector<bool> cases.
1108 (_Mutable_ForwardIteratorReferenceConcept): Likewise.
1109 * testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error
1112 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1114 * include/bits/list.tcc (list::merge): Remove call to size() and
1115 try-catch block. Use _Finalize_merge instead.
1116 * include/bits/stl_list.h (list::_Finalize_merge): New
1117 scope guard type to update _M_size members after a merge.
1119 2021-09-30 Jonathan Wakely <jwakely@redhat.com>
1121 * include/bits/regex.h (basic_regex::multiline): Fix #if
1124 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
1126 * include/bits/regex.h (basic_regex::multiline): Define constant
1128 * include/bits/regex_constants.h (regex_constants::multiline):
1129 Define constant for C++17.
1130 (regex_constants::__multiline): Define duplicate constant for
1131 internal use in C++11 and C++14.
1132 * include/bits/regex_executor.h (_Executor::_M_match_multiline()):
1133 New member function.
1134 (_Executor::_M_is_line_terminator(_CharT)): New member function.
1135 (_Executor::_M_at_begin(), _Executor::_M_at_end()): Use new
1136 member functions to support multiline matches.
1137 * testsuite/28_regex/algorithms/regex_match/multiline.cc: New test.
1139 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
1141 * include/bits/regex_compiler.h (_Compiler::_S_validate): New
1143 * include/bits/regex_compiler.tcc (_Compiler::_Compiler): Use
1144 _S_validate to check flags.
1145 * include/bits/regex_error.h (_S_grammar): New error code for
1147 * testsuite/28_regex/basic_regex/ctors/grammar.cc: New test.
1149 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
1152 * include/bits/regex_error.h (regex_constants::_S_null): New
1153 error code for internal use.
1154 * include/bits/regex_scanner.tcc (_Scanner::_M_scan_normal()):
1155 Check for null character.
1156 * testsuite/28_regex/basic_regex/84110.cc: New test.
1158 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
1160 * include/bits/regex.h (__detail::__is_contiguous_iter): Move
1161 here from <bits/regex_compiler.h>.
1162 (basic_regex::_M_compile): New function to compile an NFA from
1163 a regular expression string.
1164 (basic_regex::basic_regex): Use _M_compile instead of delegating
1165 to other constructors.
1166 (basic_regex::operator=(const basic_regex&)): Define as
1168 (basic_regex::operator=(initializer_list<C>)): Use _M_compile.
1169 (basic_regex::assign(const basic_regex&)): Use copy assignment.
1170 (basic_regex::assign(basic_regex&&)): Use move assignment.
1171 (basic_regex::assign(const C*, flag_type)): Use _M_compile
1172 instead of constructing a temporary string.
1173 (basic_regex::assign(const C*, size_t, flag_type)): Likewise.
1174 (basic_regex::assign(const basic_string<C,T,A>&, flag_type)):
1175 Use _M_compile instead of constructing a temporary basic_regex.
1176 (basic_regex::assign(InputIter, InputIter, flag_type)): Avoid
1177 constructing a temporary string for contiguous iterators of the
1179 * include/bits/regex_compiler.h (__is_contiguous_iter): Move to
1181 (__enable_if_contiguous_iter, __disable_if_contiguous_iter)
1182 (__compile_nfa): Remove.
1183 * testsuite/28_regex/basic_regex/assign/exception_safety.cc: New
1185 * testsuite/28_regex/basic_regex/ctors/char/other.cc: New test.
1187 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1189 * include/bits/atomic_timed_wait.h (__platform_wait_until_impl):
1190 Return false for ETIMEDOUT and true otherwise.
1192 2021-09-28 François Dumont <fdumont@gcc.gnu.org>
1194 * testsuite/20_util/default_delete/48631_neg.cc: Adapt dg-prune-output message
1195 to also match message with '__8' in it.
1197 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1199 * include/bits/regex_automaton.h (_NFA_base::_SizeT): Remove.
1200 * include/bits/regex_compiler.h (_Compiler::_IterT): Remove.
1201 * include/bits/regex_compiler.tcc: Likewise.
1202 * include/bits/regex_scanner.h (_Scanner::_IterT): Remove.
1203 * include/bits/regex_scanner.tcc: Likewise.
1205 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1207 * include/bits/regex_compiler.tcc: Add line break in empty while
1209 * include/bits/regex_executor.tcc: Avoid unused parameter
1212 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1214 * include/bits/regex.h (basic_regex, swap): Add noexcept to
1215 non-throwing functions.
1216 * include/bits/regex_automaton.h (_State_base, _State)
1217 (_NFA_base): Likewise.
1218 * include/bits/regex_compiler.h (_Compiler): Likewise.
1219 * include/bits/regex_error.h (regex_error::code()): Likewise.
1220 * include/bits/regex_scanner.h (_Scanner): Likewise.
1222 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1224 * include/bits/atomic_wait.h (_GLIBCXX_HAVE_PLATFORM_WAIT):
1225 Define before first attempt to check it.
1227 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1229 * testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1.cc:
1230 Do not check non-default constructible sequences when
1231 _GLIBCXX_CONCEPT_CHECKS is defined.
1232 * testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1_c++98.cc:
1234 * testsuite/23_containers/queue/requirements/explicit_instantiation/1.cc:
1236 * testsuite/23_containers/queue/requirements/explicit_instantiation/1_c++98.cc:
1238 * testsuite/23_containers/stack/requirements/explicit_instantiation/1.cc:
1240 * testsuite/23_containers/stack/requirements/explicit_instantiation/1_c++98.cc:
1243 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1245 * testsuite/23_containers/deque/requirements/explicit_instantiation/3.cc:
1246 Do not test implicit allocator rebinding when _GLIBCXX_CONCEPT_CHECKS
1248 * testsuite/23_containers/forward_list/requirements/explicit_instantiation/3.cc:
1250 * testsuite/23_containers/list/requirements/explicit_instantiation/3.cc:
1252 * testsuite/23_containers/list/requirements/explicit_instantiation/5.cc:
1254 * testsuite/23_containers/map/requirements/explicit_instantiation/3.cc:
1256 * testsuite/23_containers/map/requirements/explicit_instantiation/5.cc:
1258 * testsuite/23_containers/multimap/requirements/explicit_instantiation/3.cc:
1260 * testsuite/23_containers/multimap/requirements/explicit_instantiation/5.cc:
1262 * testsuite/23_containers/multiset/requirements/explicit_instantiation/3.cc:
1264 * testsuite/23_containers/multiset/requirements/explicit_instantiation/5.cc:
1266 * testsuite/23_containers/set/requirements/explicit_instantiation/3.cc:
1268 * testsuite/23_containers/set/requirements/explicit_instantiation/5.cc:
1270 * testsuite/23_containers/unordered_map/requirements/explicit_instantiation/3.cc:
1272 * testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/3.cc:
1274 * testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/3.cc:
1276 * testsuite/23_containers/unordered_set/requirements/explicit_instantiation/3.cc:
1278 * testsuite/23_containers/vector/ext_pointer/explicit_instantiation/3.cc:
1280 * testsuite/23_containers/vector/requirements/explicit_instantiation/3.cc:
1283 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1285 * include/bits/boost_concept_check.h (_ForwardIteratorConcept)
1286 (_BidirectionalIteratorConcept, _RandomAccessIteratorConcept):
1287 Check result types of iterator operations.
1288 (_Mutable_ForwardIteratorConcept): Check that iterator's
1289 reference type is a reference to its value type.
1290 (_Mutable_BidirectionalIteratorConcept): Do not require the
1291 value type to be assignable.
1292 (_Mutable_RandomAccessIteratorConcept): Likewise.
1293 * testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error
1296 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1298 * testsuite/25_algorithms/copy/34595.cc: Add missing operation
1299 for type used as an iterator.
1300 * testsuite/25_algorithms/unique_copy/check_type.cc: Likewise.
1302 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1304 * testsuite/20_util/is_nothrow_swappable/value.h: Use custom
1305 comparison function for priority_queue of type with no
1306 relational operators.
1307 * testsuite/20_util/is_swappable/value.h: Likewise.
1308 * testsuite/24_iterators/output/concept.cc: Add operator< to
1311 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1313 * include/bits/boost_concept_check.h (_OutputIteratorConcept):
1314 Use a function to preserve value category of the type.
1315 * include/bits/stl_algobase.h (copy, move, fill_n): Use a
1316 reference as the second argument for _OutputIteratorConcept.
1317 (copy_backward, move_backward): Use _OutputIteratorConcept
1318 instead of _ConvertibleConcept.
1320 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1322 * include/bits/stl_iterator.h (pointer_traits): Define partial
1323 specialization for __normal_iterator.
1324 * testsuite/24_iterators/normal_iterator/to_address.cc: New test.
1326 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1328 * include/bits/move.h (forward(remove_reference_t<T>&&)):
1329 Improve text of static_assert.
1330 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
1331 * testsuite/20_util/forward/f_neg.cc: Likewise.
1333 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1336 * include/bits/fs_path.h (path::begin, path::end): Add noexcept
1337 to declarations, to match definitions.
1339 2021-09-24 Jonathan Wakely <jwakely@redhat.com>
1341 * include/bits/range_access.h (cbegin, cend): Remove redundant
1344 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
1346 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
1347 Remove dg-error lines for C++20-only errors.
1349 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
1351 * testsuite/19_diagnostics/headers/system_error/93151.cc:
1354 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
1356 * src/c++11/system_error.cc (system_error_category) [_WIN32]:
1357 Map Windows error codes to generic POSIX error numbers. Use
1358 FormatMessage instead of strerror.
1359 * testsuite/19_diagnostics/error_category/system_category.cc:
1360 Adjust for new behaviour on Windows.
1362 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
1364 * src/c++11/system_error.cc (generic_error_category): Define
1365 class and virtual functions as 'final'.
1366 (generic_error_category::equivalent(int, const error_condition&)):
1368 (system_error_category): Define class and virtual functions as
1370 (system_error_category::equivalent(int, const error_condition&)):
1372 (generic_category_instance, system_category_instance): Use
1373 constinit union to make the objects immortal.
1375 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
1378 * src/c++11/system_error.cc
1379 (system_error_category::default_error_condition): Add 0 to
1381 * testsuite/19_diagnostics/error_category/102425.cc: New test.
1383 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
1385 * include/bits/fs_path.h (path::iterator): Add noexcept to all
1386 member functions and friend functions.
1387 (distance): Add noexcept.
1388 (advance): Add noexcept and inline.
1389 * include/experimental/bits/fs_path.h (path::iterator):
1390 Add noexcept to all member functions.
1392 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
1395 * include/std/tuple (_Tuple_impl): Add constexpr to constructor
1396 missed in previous patch.
1397 * testsuite/20_util/tuple/cons/102270.C: Moved to...
1398 * testsuite/20_util/tuple/cons/102270.cc: ...here.
1399 * testsuite/util/testsuite_allocator.h (SimpleAllocator): Add
1400 constexpr to constructor so it can be used for C++20 tests.
1402 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
1404 * testsuite/26_numerics/valarray/dr630-3.C: Moved to...
1405 * testsuite/26_numerics/valarray/dr630-3.cc: ...here.
1406 * testsuite/27_io/basic_iostream/cons/16251.C: Moved to...
1407 * testsuite/27_io/basic_iostream/cons/16251.cc: ...here.
1409 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1411 * src/Makefile.am (stamp-debug): Add all Makefiles as
1413 * src/Makefile.in: Regenerate.
1415 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1417 * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Increase
1418 timeout factor to 3.
1419 * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
1421 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1423 * doc/xml/manual/using.xml: Generalize to apply to more than
1425 * doc/html/manual/using_macros.html: Regenerate.
1427 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1429 * include/std/optional (nullptr_t): Make constructor noexcept.
1431 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1433 * include/bits/fs_path.h (advance): Remove non-deducible
1436 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1439 * include/std/tuple (_Head_base, _Tuple_impl): Add
1440 _GLIBCXX20_CONSTEXPR to allocator-extended constructors.
1441 (tuple<>::swap(tuple&)): Add _GLIBCXX20_CONSTEXPR.
1442 * testsuite/20_util/tuple/cons/102270.C: New test.
1444 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1447 * include/std/span (span(Range&&)): Add constraint to deduction
1450 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1452 * src/c++98/Makefile.am: Use CXXCOMPILE not LTCXXCOMPILE.
1453 * src/c++98/Makefile.in: Regenerate.
1455 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1457 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
1458 (to_string): Add noexcept if the type width is 32 bits or less.
1460 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1462 * include/bits/unique_ptr.h (__uniq_ptr_impl::_M_ptr)
1463 (__uniq_ptr_impl::_M_deleter): Add noexcept.
1465 2021-09-16 Thomas Rodgers <rodgert@twrodgers.com>
1468 * testsuite/29_atomics/atomic_ref/wait_notify.cc (test): Use
1469 va and vb as arguments to wait/notify, remove unused bb local.
1471 2021-09-15 Hugo Beauzée-Luyssen <hugo@beauzee.fr>
1473 * crossconfig.m4: Check for TLS support on mingw.
1474 * configure: Regenerate.
1476 2021-09-13 Jason Merrill <jason@redhat.com>
1478 * include/std/version: Define __cpp_lib_hardware_interference_size.
1479 * libsupc++/new: Define hardware interference size variables.
1481 2021-09-10 Jonathan Wakely <jwakely@redhat.com>
1483 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
1484 Fix invalid hostname to only match the .invalid TLD.
1486 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
1488 * include/bits/atomic_base.h (__atomic_base<P*>::compare_exchange_weak):
1490 * include/std/atomic (atomic<T*>::compare_exchange_weak): Use
1493 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
1495 * include/std/atomic: Tweak whitespace.
1497 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
1500 * include/bits/atomic_base.h (__is_valid_cmpexch_failure_order):
1501 New function to check if a memory order is valid for the failure
1502 case of compare exchange operations.
1503 (__atomic_base<I>::compare_exchange_weak): Simplify assertions
1504 by using __is_valid_cmpexch_failure_order.
1505 (__atomic_base<I>::compare_exchange_strong): Likewise.
1506 (__atomic_base<P*>::compare_exchange_weak): Likewise.
1507 (__atomic_base<P*>::compare_exchange_strong): Likewise.
1508 (__atomic_impl::compare_exchange_weak): Add assertion.
1509 (__atomic_impl::compare_exchange_strong): Likewise.
1510 * include/std/atomic (atomic::compare_exchange_weak): Likewise.
1511 (atomic::compare_exchange_strong): Likewise.
1513 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
1515 * include/std/functional (invoke_r): Define.
1516 * include/std/version (__cpp_lib_invoke_r): Define.
1517 * testsuite/20_util/function_objects/invoke/version.cc: Check
1518 for __cpp_lib_invoke_r as well as __cpp_lib_invoke.
1519 * testsuite/20_util/function_objects/invoke/4.cc: New test.
1521 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
1524 * include/std/span (span(Iter, size_type), span(Iter, Iter)):
1525 Add valid range checks.
1526 * testsuite/23_containers/span/cons_1_assert_neg.cc: New test.
1527 * testsuite/23_containers/span/cons_2_assert_neg.cc: New test.
1529 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
1531 * configure.ac: Fix checks for F_GETFL, F_SETFL and O_NONBLOCK.
1532 * configure: Regenerate.
1534 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
1536 * src/c++11/system_error.cc (error_category::~error_category()):
1537 Remove noexcept-specifier.
1538 (system_error::~system_error()): Likewise.
1539 * testsuite/19_diagnostics/error_category/noexcept.cc: New test.
1540 * testsuite/19_diagnostics/system_error/noexcept.cc: New test.
1542 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
1545 * include/bits/atomic_timed_wait.h (__timed_waiter_pool)
1546 [!_GLIBCXX_HAVE_PLATFORM_TIMED_WAIT]: Add missing return.
1548 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
1550 * include/experimental/internet (__make_resolver_error_code):
1551 Handle EAI_SYSTEM errors.
1552 (basic_resolver_results): Use __make_resolver_error_code. Use
1553 Glibc NI_MAXHOST and NI_MAXSERV values for buffer sizes.
1555 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
1557 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
1558 Try other service if "http" fails.
1560 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
1562 * testsuite/17_intro/names.cc: Undefine some more names used
1563 by Solaris system headers.
1565 2021-08-30 Jason Merrill <jason@redhat.com>
1568 * testsuite/30_threads/promise/requirements/lwg3466.cc:
1569 Remove dg-prune-outputs.
1571 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
1573 * include/bits/alloc_traits.h (allocator_traits): Add explicit
1574 specialization for allocator<void>. Improve doxygen comments.
1575 * include/bits/allocator.h (allocator<void>): Restore for the
1576 versioned namespace.
1577 (allocator<void>::construct, allocator<void>::destroy): Remove.
1578 * include/ext/extptr_allocator.h (_Extptr_allocator<void>):
1579 Add default constructor and converting constructor.
1581 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
1583 * include/bits/stl_uninitialized.h: Fix typo in comment.
1585 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
1588 * src/c++17/fs_ops.cc (fs::absolute): Call non-throwing form,
1589 to avoid unnecessary current_path() call.
1591 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
1593 * include/bits/std_function.h (function::function(F&&)): Give
1594 name to defaulted template parameter, to improve diagnostics.
1595 Use markdown for more doxygen comments.
1597 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
1599 * include/bits/std_function.h (function): Adjust doxygen
1601 * include/bits/unique_ptr.h (make_unique_for_overwrite):
1602 Change parameter name to match doxygen comment.
1604 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
1606 * include/bits/std_function.h (_function_base::_Base_manager):
1607 Replace _M_init_functor with a function template using a
1608 forwarding reference, and a pair of _M_create function
1609 templates. Reuse _M_create for the clone operation.
1610 (function::_Decay_t): New alias template.
1611 (function::_Callable): Simplify by using _Decay.
1612 (function::function(F)): Change parameter to forwarding
1613 reference, as per LWG 2447. Add noexcept-specifier. Simplify
1615 (function::operator=(F&&)): Add noexcept-specifier.
1616 * testsuite/20_util/function/cons/lwg2774.cc: New test.
1617 * testsuite/20_util/function/cons/noexcept.cc: New test.
1619 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
1621 * include/bits/std_function.h (function::function(F)): Add
1622 static assertions to check constructibility requirements.
1624 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
1627 * configure.ac: Check for O_NONBLOCK.
1628 * configure: Regenerate.
1629 * include/experimental/internet: Include <ws2tcpip.h> for
1630 Windows. Use preprocessor conditions around more constants.
1631 * include/experimental/socket: Use preprocessor conditions
1632 around more constants.
1633 * testsuite/experimental/net/internet/resolver/base.cc: Only use
1634 constants when the corresponding C macro is defined.
1635 * testsuite/experimental/net/socket/basic_socket.cc: Likewise.
1636 * testsuite/experimental/net/socket/socket_base.cc: Likewise.
1637 Make preprocessor checks more fine-grained.
1639 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
1641 * testsuite/17_intro/names.cc: Check 'sz'.
1643 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
1645 * testsuite/17_intro/names.cc: Adjust for Windows.
1647 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
1649 * include/std/valarray: Uglify 'func' parameters.
1650 * testsuite/17_intro/names.cc: Add 'func' to checks.
1652 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
1655 * include/bits/stl_uninitialized.h (_GLIBCXX_USE_ASSIGN_FOR_INIT):
1656 Define macro to check conditions for optimizing trivial cases.
1657 (__check_constructible): New function to do static assert.
1658 (uninitialized_copy, uninitialized_fill, uninitialized_fill_n):
1660 * testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc:
1661 Adjust dg-error pattern.
1662 * testsuite/23_containers/vector/cons/89164.cc: Likewise. Add
1663 C++17-specific checks from 89164_c++17.cc.
1664 * testsuite/23_containers/vector/cons/89164_c++17.cc: Removed.
1665 * testsuite/20_util/specialized_algorithms/uninitialized_copy/102064.cc:
1667 * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/102064.cc:
1669 * testsuite/20_util/specialized_algorithms/uninitialized_fill/102064.cc:
1671 * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/102064.cc:
1674 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
1677 * include/ext/rope (rope::erase(size_type)): Remove broken
1680 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
1682 * doc/xml/manual/status_cxx2020.xml: Update table.
1683 * doc/html/manual/status.html: Regenerate.
1685 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
1687 * include/std/type_traits (is_layout_compatible): Define.
1688 (is_corresponding_member): Define.
1689 * include/std/version (__cpp_lib_is_layout_compatible): Define.
1690 * testsuite/20_util/is_layout_compatible/is_corresponding_member.cc:
1692 * testsuite/20_util/is_layout_compatible/value.cc: New test.
1693 * testsuite/20_util/is_layout_compatible/version.cc: New test.
1694 * testsuite/20_util/is_pointer_interconvertible/with_class.cc:
1696 * testsuite/23_containers/span/layout_compat.cc: Do not use real
1697 std::is_layout_compatible trait if available.
1699 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
1701 * src/c++11/cxx11-shim_facets.cc: Fix mismatched class-key in
1702 explicit instantiation definitions.
1704 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
1706 * include/std/ranges (basic_istream_view): Add default template
1708 * testsuite/std/ranges/istream_view.cc: Check it.
1710 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
1712 * libsupc++/dyncast.cc (__dynamic_cast): Add __builtin_expect to
1715 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
1718 * testsuite/util/testsuite_fs.h (permissions_are_testable):
1721 2021-08-20 Jonathan Wakely <jwakely@redhat.com>
1724 * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
1725 Use new __gnu_test::permissions_are_testable() function.
1726 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
1728 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
1729 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
1730 * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
1731 * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
1732 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
1733 * testsuite/27_io/filesystem/operations/symlink_status.cc:
1735 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
1737 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
1739 * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc:
1741 * testsuite/experimental/filesystem/operations/exists.cc:
1743 * testsuite/experimental/filesystem/operations/is_empty.cc:
1745 * testsuite/experimental/filesystem/operations/remove.cc:
1747 * testsuite/experimental/filesystem/operations/remove_all.cc:
1749 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
1751 * testsuite/util/testsuite_fs.h (__gnu_test::permissions_are_testable):
1752 New function to guess whether testing permissions will work.
1754 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1756 * doc/xml/manual/status_cxx2020.xml: Move row earlier in table.
1757 * doc/html/manual/status.html: Regenerate.
1759 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1761 * doc/doxygen/user.cfg.in: Update to Doxygen 1.9.2
1763 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1766 * include/std/charconv (__to_chars_i): Remove redundant check.
1768 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1771 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)): Use base
1772 class' move constructor. Define as defaulted for versioned
1774 * testsuite/20_util/tuple/cons/101960.cc: New test.
1776 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1779 * doc/xml/manual/status_cxx2020.xml: Add P1739R4 to status table.
1780 * doc/html/manual/status.html: Regenerate.
1782 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1784 * include/bits/shared_ptr.h: Add @since and @headerfile tags.
1785 * include/bits/unique_ptr.h: Add @headerfile tags.
1787 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1789 * src/filesystem/ops-common.h (filesystem::file_time): Improve
1790 overflow check by using system_clock::duration::max().
1792 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1794 * include/bits/stl_tree.h: Tweak whitespace.
1796 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
1798 * include/bits/unique_ptr.h (default_delete): Add @since tag.
1799 (unique_ptr, unique_ptr<T[]>): Likewise. Improve @brief.
1800 (make_unique, make_unique_for_overwrite): Likewise. Add @tparam,
1801 @param, and @returns.
1802 (_MakeUniq): Move to __detail namespace. Add alias template
1805 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
1807 * include/bits/stl_function.h: Improve doxygen comments.
1809 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
1811 * doc/doxygen/user.cfg.in (PREDEFINED): Enable doxygen
1812 processing for C++20 components and components that depend on
1814 * include/bits/stl_algo.h (random_shuffle): Use @deprecated.
1815 * include/std/type_traits: Improve doxygen comments for C++20
1818 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
1820 * include/ext/type_traits.h (__promote_2, __promote_3)
1821 (__promote_4): Redfine as alias templates using __promoted_t.
1822 * include/std/complex (__promote_2): Remove partial
1823 specializations for std::complex.
1825 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
1827 * include/bits/stl_algo.h (min(initializer_list<T>))
1828 (min(initializer_list<T>, Compare)): Call __min_element directly to
1829 avoid redundant debug checks for valid ranges.
1830 (max(initializer_list<T>), max(initializer_list<T>, Compare)):
1831 Likewise, for __max_element.
1832 (minmax(initializer_list<T>), minmax(initializer_list<T>, Compare)):
1833 Likewise, for __minmax_element.
1835 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
1837 * include/debug/deque (deque(size_type, const T&, const A&)):
1838 Prevent class template argument deduction and replace with a
1840 * include/debug/forward_list (forward_list(size_type, const T&, const A&)):
1842 * include/debug/list (list(size_type, const T&, const A&)):
1844 * include/debug/vector (vector(size_type, const T&, const A&)):
1847 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
1849 * python/libstdcxx/v6/printers.py (StdBitReferencePrinter): Use
1850 'std::vector<bool>::reference' as type name, not _Bit_reference.
1851 (build_libstdcxx_dictionary): Register printers for vector<bool>
1852 types in debug mode too.
1853 * testsuite/libstdc++-prettyprinters/simple.cc: Adjust expected
1854 output for invalid _Bit_reference. Use vector<bool>::reference
1855 instead of _Bit_reference.
1856 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
1858 2021-08-17 Thomas Schwinge <thomas@codesourcery.com>
1860 * testsuite/lib/libstdc++.exp: Avoid illegal argument to verbose,
1863 2021-08-17 Luc Michel <lmichel@kalray.eu>
1864 Marc Poulhies <mpoulhies@kalrayinc.com>
1866 * testsuite/lib/gdb-test.exp (gdb_version_check)
1867 (gdb_version_check_xmethods): Only check the GDB version for
1868 local native targets.
1870 2021-08-17 Antony Polukhin <antoshkka@gmail.com>
1871 Jonathan Wakely <jwakely@redhat.com>
1873 * include/bits/random.tcc (seed_seq::seed_seq): Reserve capacity
1874 if distance is O(1).
1875 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1878 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
1880 * testsuite/26_numerics/random/seed_seq/cons/range.cc: Check
1881 construction from input iterators.
1883 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
1885 * python/libstdcxx/v6/printers.py (StdErrorCatPrinter): Remove.
1887 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
1890 * include/bits/std_function.h (function(function&&)): Check for
1891 non-empty parameter before doing any work.
1893 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
1895 * include/bits/cow_string.h (basic_string::contains): Do not
1896 define for -std=gnu++20.
1898 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
1900 * include/bits/ranges_util.h (__not_same_as): Rename to
1902 * include/std/ranges (__not_same_as): Likewise.
1904 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
1906 * include/std/utility (exchange): Add noexcept-specifier.
1907 * testsuite/20_util/exchange/noexcept.cc: New test.
1909 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
1911 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Define.
1912 (build_libstdcxx_dictionary): Register printer for
1913 std::error_code and std::error_condition.
1914 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test it.
1916 2021-08-16 Jonathan Wakely <jwakely@redhat.com>
1919 * src/c++11/debug.cc (PrintContext::_M_indent): Replace with a
1921 (print_word): Use qualified-id to access it.
1923 2021-08-16 Jonathan Wakely <jwakely@redhat.com>
1925 * python/Makefile.am [GLIBCXX_BUILD_DEBUG] (install-data-local):
1926 Install another copy of the GDB hook.
1927 * python/Makefile.in: Regenerate.
1929 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
1932 * include/c_global/cmath (hypot): Use __promoted_t.
1933 (lerp): Add new overload accepting any arithmetic types.
1934 * include/ext/type_traits.h (__promoted_t): New alias template.
1935 * testsuite/26_numerics/lerp.cc: Moved to...
1936 * testsuite/26_numerics/lerp/1.cc: ...here.
1937 * testsuite/26_numerics/lerp/constexpr.cc: New test.
1938 * testsuite/26_numerics/lerp/version.cc: New test.
1940 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
1942 * testsuite/26_numerics/lerp.cc: Add header name to #error.
1943 * testsuite/26_numerics/midpoint/integral.cc: Likewise.
1944 * testsuite/26_numerics/midpoint/version.cc: New test.
1946 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
1948 * include/experimental/random (experimental::randint): Add
1949 nodiscard attribute.
1951 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
1953 * src/c++98/locale_init.cc: Require C++11.
1954 * src/c++98/localename.cc: Likewise.
1955 * src/c++98/misc-inst.cc: Require C++98.
1957 2021-08-11 Jonathan Wakely <jwakely@redhat.com>
1960 * testsuite/experimental/random/randint.cc: Loop and retry if
1961 reseed() produces the same sequence.
1963 2021-08-11 Jonathan Wakely <jwakely@redhat.com>
1965 * include/std/type_traits (__cpp_lib_is_pointer_interconvertible)
1966 (is_pointer_interconvertible_base_of_v)
1967 (is_pointer_interconvertible_base_of): Define for C++20.
1968 * include/std/version (__cpp_lib_is_pointer_interconvertible):
1970 * testsuite/23_containers/span/layout_compat.cc: Use correct
1971 feature test macro for std::is_layout_compatible_v.
1972 * testsuite/20_util/is_pointer_interconvertible/value.cc: New test.
1973 * testsuite/20_util/is_pointer_interconvertible/version.cc: New test.
1975 2021-08-09 Jonathan Wakely <jwakely@redhat.com>
1977 * include/bits/regex.h (basic_regex::transform_primary): Use
1978 _GLIBCXX_STD_C::vector for local variable.
1979 * include/bits/regex.tcc (__regex_algo_impl): Use reference to
1980 _GLIBCXX_STD_C::vector base class of match_results.
1981 * include/bits/regex_automaton.tcc (_StateSeq:_M_clone): Use
1982 _GLIBCXX_STD_C::map and _GLIBCXX_STD_C::deque for local
1984 * include/bits/regex_compiler.h (_BracketMatcher): Use
1985 _GLIBCXX_STD_C::vector for data members.
1986 * include/bits/regex_executor.h (_Executor): Likewise.
1987 * include/std/regex [_GLIBCXX_DEBUG]: Include <debug/vector>.
1989 2021-08-09 François Dumont <fdumont@gcc.gnu.org>
1991 * include/debug/safe_container.h
1992 (_Safe_container(_Safe_container&&, const _Alloc&, std::true_type)): New.
1993 (_Safe_container(_Safe_container&&, const _Alloc&, std::false_type)): New.
1994 (_Safe_container(_Safe_container&&, const _Alloc&)): Use latters.
1996 2021-08-09 Jonathan Wakely <jwakely@redhat.com>
1998 * testsuite/23_containers/unordered_map/cons/default.cc: Add
1999 equality comparison operators to allocator.
2000 * testsuite/23_containers/unordered_set/cons/default.cc:
2003 2021-08-08 François Dumont <fdumont@gcc.gnu.org>
2005 * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Replace 'failed_assertion'
2006 dg-prune-output reason with 'builtin_unreachable'.
2007 * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc: Likewise.
2008 * testsuite/25_algorithms/equal/debug/constexpr_neg.cc: Likewise.
2009 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc: Likewise.
2010 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
2011 * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc: Likewise.
2012 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc: Likewise.
2013 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
2014 * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc: Likewise.
2016 2021-08-08 Hans-Peter Nilsson <hp@bitrange.com>
2018 * testsuite/std/ranges/iota/max_size_type.cc: Set
2019 dg-timeout-factor to 4.
2021 2021-08-06 Jonathan Wakely <jwakely@redhat.com>
2023 * libsupc++/compare (compare_three_way, strong_order)
2024 (weak_order, partial_order, compare_strong_order_fallback)
2025 (compare_weak_order_fallback, compare_partial_order_fallback):
2026 Move nodiscard attributes to correct location.
2028 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
2031 * include/bits/ranges_base.h (ranges::begin, ranges::end)
2032 (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
2033 (ranges::empty, ranges::data): Move attribute after the
2034 declarator-id instead of at the end of the declarator.
2035 * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator):
2036 Move attributes back to the start of the function declarator,
2037 but move the requires-clause to the end.
2038 (common_iterator): Move attribute after the declarator-id.
2039 * include/bits/stl_queue.h (queue): Remove ill-formed attributes
2040 from friend declaration that are not definitions.
2041 * include/std/ranges (views::all, views::filter)
2042 (views::transform, views::take, views::take_while,
2043 views::drop) (views::drop_while, views::join,
2044 views::lazy_split) (views::split, views::counted,
2045 views::common, views::reverse) (views::elements): Move
2046 attributes after the declarator-id.
2048 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
2050 * libsupc++/compare (partial_ordering, weak_ordering)
2051 (strong_ordering, is_eq, is_neq, is_lt, is_lteq, is_gt, is_gteq)
2052 (compare_three_way, strong_order, weak_order, partial_order)
2053 (compare_strong_order_fallback, compare_weak_order_fallback)
2054 (compare_partial_order_fallback, __detail::__synth3way): Add
2055 nodiscard attribute.
2056 * testsuite/18_support/comparisons/categories/zero_neg.cc: Add
2057 -Wno-unused-result to options.
2059 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
2062 * include/bits/ranges_base.h (ranges::begin, ranges::end)
2063 (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
2064 (ranges::empty, ranges::data): Move attribute to the end of
2066 * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator)
2067 (common_iterator): Likewise for non-member operator functions.
2068 * include/std/ranges (views::all, views::filter)
2069 (views::transform, views::take, views::take_while, views::drop)
2070 (views::drop_while, views::join, views::lazy_split)
2071 (views::split, views::counted, views::common, views::reverse)
2072 (views::elements): Likewise.
2073 * testsuite/std/ranges/access/101782.cc: New test.
2075 2021-08-04 Jonathan Wakely <jwakely@redhat.com>
2077 * include/bits/forward_list.h: Add [[nodiscard]] to functions
2078 with no side-effects.
2079 * include/bits/stl_bvector.h: Likewise.
2080 * include/bits/stl_deque.h: Likewise.
2081 * include/bits/stl_list.h: Likewise.
2082 * include/bits/stl_queue.h: Likewise.
2083 * include/bits/stl_stack.h: Likewise.
2084 * include/bits/stl_vector.h: Likewise.
2085 * include/debug/deque: Likewise.
2086 * include/debug/forward_list: Likewise.
2087 * include/debug/list: Likewise.
2088 * include/debug/safe_iterator.h: Likewise.
2089 * include/debug/vector: Likewise.
2090 * include/std/array: Likewise.
2091 * testsuite/23_containers/array/creation/3_neg.cc: Use
2093 * testsuite/23_containers/array/debug/back1_neg.cc: Cast result
2095 * testsuite/23_containers/array/debug/back2_neg.cc: Likewise.
2096 * testsuite/23_containers/array/debug/front1_neg.cc: Likewise.
2097 * testsuite/23_containers/array/debug/front2_neg.cc: Likewise.
2098 * testsuite/23_containers/array/debug/square_brackets_operator1_neg.cc:
2100 * testsuite/23_containers/array/debug/square_brackets_operator2_neg.cc:
2102 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
2103 Adjust dg-error line numbers.
2104 * testsuite/23_containers/deque/cons/clear_allocator.cc: Cast
2106 * testsuite/23_containers/deque/debug/invalidation/4.cc:
2108 * testsuite/23_containers/deque/types/1.cc: Use
2110 * testsuite/23_containers/list/types/1.cc: Cast result to void.
2111 * testsuite/23_containers/priority_queue/members/7161.cc:
2113 * testsuite/23_containers/queue/members/7157.cc: Likewise.
2114 * testsuite/23_containers/vector/59829.cc: Likewise.
2115 * testsuite/23_containers/vector/ext_pointer/types/1.cc:
2117 * testsuite/23_containers/vector/ext_pointer/types/2.cc:
2119 * testsuite/23_containers/vector/types/1.cc: Use
2122 2021-08-04 Jonathan Wakely <jwakely@redhat.com>
2124 * include/bits/iterator_concepts.h (iter_move): Add
2126 * include/bits/range_access.h (begin, end, cbegin, cend)
2127 (rbegin, rend, crbegin, crend, size, data, ssize): Likewise.
2128 * include/bits/ranges_base.h (ranges::begin, ranges::end)
2129 (ranges::cbegin, ranges::cend, ranges::rbegin, ranges::rend)
2130 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
2131 (ranges::empty, ranges::data, ranges::cdata): Likewise.
2132 * include/bits/stl_iterator.h (reverse_iterator, __normal_iterator)
2133 (back_insert_iterator, front_insert_iterator, insert_iterator)
2134 (move_iterator, move_sentinel, common_iterator)
2135 (counted_iterator): Likewise.
2136 * include/bits/stl_iterator_base_funcs.h (distance, next, prev):
2138 * include/bits/stream_iterator.h (istream_iterator)
2139 (ostream_iterartor): Likewise.
2140 * include/bits/streambuf_iterator.h (istreambuf_iterator)
2141 (ostreambuf_iterator): Likewise.
2142 * include/std/ranges (views::single, views::iota, views::all)
2143 (views::filter, views::transform, views::take, views::take_while)
2144 (views::drop, views::drop_while, views::join, views::lazy_split)
2145 (views::split, views::counted, views::common, views::reverse)
2146 (views::elements): Likewise.
2147 * testsuite/20_util/rel_ops.cc: Use -Wno-unused-result.
2148 * testsuite/24_iterators/move_iterator/greedy_ops.cc: Likewise.
2149 * testsuite/24_iterators/normal_iterator/greedy_ops.cc:
2151 * testsuite/24_iterators/reverse_iterator/2.cc: Likewise.
2152 * testsuite/24_iterators/reverse_iterator/greedy_ops.cc:
2154 * testsuite/21_strings/basic_string/range_access/char/1.cc:
2155 Cast result to void.
2156 * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
2158 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
2160 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
2162 * testsuite/23_containers/array/range_access.cc: Likewise.
2163 * testsuite/23_containers/deque/range_access.cc: Likewise.
2164 * testsuite/23_containers/forward_list/range_access.cc:
2166 * testsuite/23_containers/list/range_access.cc: Likewise.
2167 * testsuite/23_containers/map/range_access.cc: Likewise.
2168 * testsuite/23_containers/multimap/range_access.cc: Likewise.
2169 * testsuite/23_containers/multiset/range_access.cc: Likewise.
2170 * testsuite/23_containers/set/range_access.cc: Likewise.
2171 * testsuite/23_containers/unordered_map/range_access.cc:
2173 * testsuite/23_containers/unordered_multimap/range_access.cc:
2175 * testsuite/23_containers/unordered_multiset/range_access.cc:
2177 * testsuite/23_containers/unordered_set/range_access.cc:
2179 * testsuite/23_containers/vector/range_access.cc: Likewise.
2180 * testsuite/24_iterators/customization_points/iter_move.cc:
2182 * testsuite/24_iterators/istream_iterator/sentinel.cc:
2184 * testsuite/24_iterators/istreambuf_iterator/sentinel.cc:
2186 * testsuite/24_iterators/move_iterator/dr2061.cc: Likewise.
2187 * testsuite/24_iterators/operations/prev_neg.cc: Likewise.
2188 * testsuite/24_iterators/ostreambuf_iterator/2.cc: Likewise.
2189 * testsuite/24_iterators/range_access/range_access.cc:
2191 * testsuite/24_iterators/range_operations/100768.cc: Likewise.
2192 * testsuite/26_numerics/valarray/range_access2.cc: Likewise.
2193 * testsuite/28_regex/range_access.cc: Likewise.
2194 * testsuite/experimental/string_view/range_access/char/1.cc:
2196 * testsuite/experimental/string_view/range_access/wchar_t/1.cc:
2198 * testsuite/ext/vstring/range_access.cc: Likewise.
2199 * testsuite/std/ranges/adaptors/take.cc: Likewise.
2200 * testsuite/std/ranges/p2259.cc: Likewise.
2202 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2204 * include/bits/random.tcc (linear_congruential_engine): Do not
2205 define static constexpr members when they are implicitly inline.
2206 * include/std/ratio (ratio, __ratio_multiply, __ratio_divide)
2207 (__ratio_add, __ratio_subtract): Likewise.
2208 * include/std/type_traits (integral_constant): Likewise.
2209 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2212 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2214 * testsuite/util/testsuite_common_types.h: Replace uses of
2215 tr1::unordered_map and tr1::unordered_set with their C++11
2217 * testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust
2218 dg-error line number.
2219 * testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
2220 * testsuite/29_atomics/atomic_integral/cons/assign_neg.cc:
2222 * testsuite/29_atomics/atomic_integral/cons/copy_neg.cc:
2224 * testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc:
2226 * testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc:
2228 * testsuite/29_atomics/atomic_integral/operators/increment_neg.cc:
2231 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2233 * include/std/memory_resource (polymorphic_allocator::delete_object):
2234 Call destructor directly instead of using destroy.
2235 (allocator_traits<polymorphic_allocator<T>>): Define partial
2238 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2240 * testsuite/20_util/function_objects/binders/3113.cc: Remove
2241 trailing whitespace.
2242 * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
2243 * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
2244 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
2246 * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
2247 * testsuite/25_algorithms/headers/algorithm/synopsis.cc:
2249 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
2251 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
2254 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2256 * doc/xml/manual/evolution.xml: Document deprecation.
2257 * doc/html/*: Regenerate.
2258 * include/bits/c++config (_GLIBCXX14_DEPRECATED): Define.
2259 (_GLIBCXX14_DEPRECATED_SUGGEST): Define.
2260 * include/bits/stl_algo.h (random_shuffle): Deprecate for C++14
2262 * testsuite/25_algorithms/headers/algorithm/synopsis.cc: Adjust
2263 for C++11 and C++14 changes to std::random_shuffle and
2265 * testsuite/25_algorithms/random_shuffle/1.cc: Add options to
2266 use deprecated algorithms.
2267 * testsuite/25_algorithms/random_shuffle/59603.cc: Likewise.
2268 * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise.
2269 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
2271 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
2274 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2276 * testsuite/23_containers/forward_list/operations/3.cc:
2277 Use lambda instead of std::bind2nd.
2278 * testsuite/20_util/function_objects/binders/3113.cc: Add
2279 options for testing deprecated features.
2280 * testsuite/20_util/pair/cons/99957.cc: Likewise.
2281 * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
2282 * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
2283 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
2285 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
2286 * testsuite/20_util/shared_ptr/cons/auto_ptr.cc: Likewise.
2287 * testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc: Likewise.
2288 * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
2289 * testsuite/20_util/unique_ptr/cons/auto_ptr.cc: Likewise.
2290 * testsuite/20_util/unique_ptr/cons/auto_ptr_neg.cc: Likewise.
2291 * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
2293 * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
2295 * testsuite/lib/dg-options.exp (dg_add_options_using-deprecated):
2298 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2300 * include/bits/regex_executor.h (_State_info): Replace
2301 unique_ptr<bool[]> with array of bool.
2302 * include/bits/regex_executor.tcc: Likewise.
2303 * include/bits/regex_scanner.tcc: Replace std::strchr with
2305 * include/std/regex: Replace standard headers with smaller
2307 * testsuite/28_regex/traits/char/lookup_classname.cc: Include
2308 <string.h> for strlen.
2309 * testsuite/28_regex/traits/char/lookup_collatename.cc:
2312 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2314 * include/bits/locale_conv.h (__detail::_Scoped_ptr): Define new
2315 RAII class template.
2316 (wstring_convert, wbuffer_convert): Use __detail::_Scoped_ptr
2317 instead of unique_ptr.
2319 2021-08-02 Patrick Palka <ppalka@redhat.com>
2322 * include/bits/ranges_algo.h (__reverse_copy_fn::operator()):
2323 Add missing std::move in return statement.
2324 (__partition_copy_fn::operator()): Rename templtae parameter
2325 _O2 to _Out2. Uglify function parameters out_true and out_false.
2326 * include/bits/ranges_algobase.h (__copy_or_move): Add missing
2327 std::move to recursive call that unwraps a __normal_iterator
2329 * testsuite/25_algorithms/copy/constrained.cc (test06): New test.
2330 * testsuite/25_algorithms/move/constrained.cc (test05): New test.
2332 2021-08-02 Patrick Palka <ppalka@redhat.com>
2335 * include/std/ranges (lazy_split_view::_InnerIter::base): Make
2336 the const& overload unconstrained and return a const reference
2337 as per LWG 3533. Make unconditionally noexcept.
2338 (elements_view::base): Revert accidental r12-569 change.
2339 (elements_view::_Iterator::base): Make the const& overload
2340 unconstrained and return a const reference as per LWG 3533.
2341 Make unconditionally noexcept.
2343 2021-08-02 Patrick Palka <ppalka@redhat.com>
2346 * include/std/ranges (join_view::_Iterator::_Iterator): Add
2349 2021-08-02 Jonathan Wakely <jwakely@redhat.com>
2352 * src/filesystem/ops-common.h (get_temp_directory_from_env):
2353 Add error_code parameter.
2354 * src/c++17/fs_ops.cc (fs::temp_directory_path): Pass error_code
2355 argument to get_temp_directory_from_env and check it.
2356 * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
2358 2021-08-02 Jonathan Wakely <jwakely@redhat.com>
2360 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
2361 Add dg-error for c++11_only target.
2363 2021-07-30 Jonathan Wakely <jwakely@redhat.com>
2366 * configure.ac: Check for secure_getenv.
2367 * config.h.in: Regenerate.
2368 * configure: Regenerate.
2369 * src/filesystem/ops-common.h (get_temp_directory_from_env): New
2370 helper function to obtain path from the environment.
2371 * src/c++17/fs_ops.cc (fs::temp_directory_path): Use new helper.
2372 * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
2373 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
2374 Print messages if test cannot be run.
2375 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
2376 Likewise. Fix incorrect condition. Use "TMP" to work with
2377 Windows as well as POSIX.
2379 2021-07-29 Hans-Peter Nilsson <hp@bitrange.com>
2381 * src/c++17/memory_resource.cc: Use __exchange instead
2384 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
2386 * include/experimental/optional (__throw_bad_optional_access):
2387 Replace GNU attribute with C++11 attribute.
2388 (optional::value, optional::value_or): Use if statements
2389 instead of conditional expressions.
2390 * include/std/optional (__throw_bad_optional_access)
2391 (optional::value, optional::value_or): Likewise.
2393 2021-07-27 Marek Polacek <polacek@redhat.com>
2397 * testsuite/20_util/tuple/comparison_operators/overloaded.cc:
2399 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
2402 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
2404 * include/bits/cow_string.h: Consistently use tab for
2407 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
2409 * include/Makefile.am: Add new header.
2410 * include/Makefile.in: Regenerate.
2411 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
2412 (basic_string): Move definition of Copy-on-Write string to
2414 * include/bits/basic_string.tcc: Likewise.
2415 * include/bits/cow_string.h: New file.
2417 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
2419 * include/std/algorithm: Do not include <utility>.
2420 * include/std/functional: Likewise.
2421 * include/std/regex: Include <bits/stl_pair.h> instead of
2423 * include/debug/map.h: Likewise.
2424 * include/debug/multimap.h: Likewise.
2425 * include/debug/multiset.h: Likewise.
2426 * include/debug/set.h: Likewise.
2427 * include/debug/vector: Likewise.
2428 * include/bits/fs_path.h: Likewise.
2429 * include/bits/unique_ptr.h: Do not include <utility>.
2430 * include/experimental/any: Likewise.
2431 * include/experimental/executor: Likewise.
2432 * include/experimental/memory: Likewise.
2433 * include/experimental/optional: Likewise.
2434 * include/experimental/socket: Use __exchange instead
2436 * src/filesystem/ops-common.h: Likewise.
2437 * testsuite/20_util/default_delete/48631_neg.cc: Adjust expected
2438 errors to not use a hardcoded line number.
2439 * testsuite/20_util/default_delete/void_neg.cc: Likewise.
2440 * testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc:
2441 Include <utility> for std::as_const.
2442 * testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constrained.cc:
2444 * testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc:
2446 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constrained.cc:
2448 * testsuite/23_containers/vector/cons/destructible_debug_neg.cc:
2449 Adjust dg-error line number.
2451 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
2453 * include/Makefile.am: Add bits/utility.h header.
2454 * include/Makefile.in: Regenerate.
2455 * include/bits/utility.h: New file.
2456 * include/std/utility (tuple_size, tuple_element): Move
2458 * include/std/type_traits (__is_tuple_like_impl<tuple<T...>>):
2460 (_Index_tuple, _Build_index_tuple, integer_sequence): Likewise.
2461 (in_place_t, in_place_index_t, in_place_type_t): Likewise.
2462 * include/bits/ranges_util.h: Include new header instead of
2464 * include/bits/stl_pair.h (tuple_size, tuple_element): Move
2465 partial specializations for std::pair here.
2466 (get): Move overloads for std::pair here.
2467 * include/std/any: Include new header instead of <utility>.
2468 * include/std/array: Likewise.
2469 * include/std/memory_resource: Likewise.
2470 * include/std/optional: Likewise.
2471 * include/std/variant: Likewise.
2472 * include/std/tuple: Likewise.
2473 (__is_tuple_like_impl<tuple<T...>>): Move here.
2474 (get) Declare overloads for std::array.
2475 * include/std/version (__cpp_lib_tuples_by_type): Change type
2477 * testsuite/20_util/optional/84601.cc: Include <utility>.
2478 * testsuite/20_util/specialized_algorithms/uninitialized_fill/constrained.cc:
2480 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
2481 Adjust dg-error line numbers.
2482 * testsuite/std/ranges/access/cbegin.cc: Include <utility>.
2483 * testsuite/std/ranges/access/cend.cc: Likewise.
2484 * testsuite/std/ranges/access/end.cc: Likewise.
2485 * testsuite/std/ranges/single_view.cc: Likewise.
2487 2021-07-23 Jonathan Wakely <jwakely@redhat.com>
2489 * include/std/future: Include <bits/atomic_base.h> instead of
2492 2021-07-23 Jonathan Wakely <jwakely@redhat.com>
2494 * include/bits/stl_relops.h: Update documentation comments.
2496 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
2499 * include/bits/hashtable.h (_Hashtable): Replace mixin with
2500 _Enable_default_ctor. Construct it explicitly in all
2501 non-forwarding, non-defaulted constructors.
2502 * testsuite/23_containers/unordered_map/cons/default.cc: Check
2503 non-default constructors can be used.
2504 * testsuite/23_containers/unordered_set/cons/default.cc:
2507 2021-07-22 David Edelsohn <dje.gcc@gmail.com>
2509 * config/os/aix/os_defines.h (__LIBC_NO_CPP_MATH_OVERLOADS__): Define.
2511 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
2514 * include/ext/new_allocator.h (_GLIBCXX_OPERATOR_NEW)
2515 (_GLIBCXX_OPERATOR_DELETE, _GLIBCXX_SIZED_DEALLOC): Define.
2516 (allocator::allocate, allocator::deallocate): Use new macros.
2518 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
2521 * include/bits/ranges_uninitialized.h (_DestroyGuard): Change
2522 constructor parameter to reference and use addressof.
2523 * testsuite/util/testsuite_iterators.h: Define deleted operator&
2524 overloads for test iterators.
2526 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
2528 * include/bits/std_function.h (_Function_base): Add
2529 default member initializers and define constructor as defaulted.
2530 (function::_M_invoker): Add default member initializer.
2532 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
2535 * doc/xml/manual/debug_mode.xml: Update documentation about
2536 debug capability of std::array.
2537 * doc/html/*: Regenerate.
2538 * include/debug/array: New file.
2540 2021-07-21 Jonathan Wakely <jwakely@redhat.com>
2543 * include/ext/rope (sequence_buffer): Add move constructor and
2544 move assignment operator.
2545 * testsuite/ext/rope/101542.cc: New test.
2547 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
2550 * src/c++17/fs_ops.cc (fs::create_directories): Use status
2551 instead of symlink_status.
2552 * src/filesystem/ops.cc (fs::create_directories): Likewise.
2553 * testsuite/27_io/filesystem/operations/create_directories.cc:
2554 Check symlink to existing directory.
2555 * testsuite/27_io/filesystem/operations/create_directory.cc: Do
2556 not test with symlinks on Windows.
2557 * testsuite/experimental/filesystem/operations/create_directories.cc:
2558 Check symlink to existing directory.
2559 * testsuite/experimental/filesystem/operations/create_directory.cc:
2560 Do not test with symlinks on Windows.
2562 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
2565 * include/bits/hashtable.h (_Hashtable): Conditionally delete
2566 default constructor by deriving from _Enable_special_members.
2567 * testsuite/23_containers/unordered_map/cons/default.cc: New test.
2568 * testsuite/23_containers/unordered_set/cons/default.cc: New test.
2570 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
2573 * src/c++17/fs_ops.cc (create_dir): Adjust whitespace.
2574 * testsuite/27_io/filesystem/operations/create_directory.cc:
2575 Test creating directory with name of existing symlink to
2577 * testsuite/experimental/filesystem/operations/create_directory.cc:
2580 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2582 * include/std/tuple (get<I>): Add deleted overload for bad
2584 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
2587 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2589 * include/bits/max_size_type.h (numeric_limits<__max_size_type>):
2590 Use __int_traits unconditionally.
2592 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2594 * include/bits/random.h (_Shift::__value): Use constexpr.
2595 (_Select_uint_least_t::type): Use using-declaration.
2597 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2600 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2602 * include/bits/cpp_type_traits.h (__INT_N): Use __extension__
2603 instead of diagnostic pragmas.
2604 * include/bits/functional_hash.h: Likewise.
2605 * include/bits/iterator_concepts.h (__is_signed_int128)
2606 (__is_unsigned_int128): Likewise.
2607 * include/bits/max_size_type.h (__max_size_type): Likewise.
2608 (numeric_limits<__max_size_type>): Likewise.
2609 * include/bits/std_abs.h (abs): Likewise.
2610 * include/bits/stl_algobase.h (__size_to_integer): Likewise.
2611 * include/bits/uniform_int_dist.h (uniform_int_distribution):
2613 * include/ext/numeric_traits.h (_GLIBCXX_INT_N_TRAITS):
2615 * include/std/type_traits (__is_integral_helper<INT_N>)
2616 (__is_signed_integer, __is_unsigned_integer)
2617 (__make_unsigned<INT_N>, __make_signed<INT_N>): Likewise.
2618 * include/std/limits (__INT_N): Add __extension__ keyword.
2619 * include/bits/random.h (_Select_uint_least_t)
2620 (random_device): Likewise.
2622 2021-07-16 Patrick Palka <ppalka@redhat.com>
2625 * include/std/ranges (_CachedPosition::_M_get): For non-forward
2626 ranges, just call __builtin_unreachable.
2627 * testsuite/std/ranges/istream_view.cc (test05): New test.
2629 2021-07-16 Patrick Palka <ppalka@redhat.com>
2632 * include/std/ranges (split_view::split_view): Use std::move.
2633 (split_view::_Iterator::_Iterator): Remove redundant
2634 default_initializable constraint.
2635 (split_view::_Sentinel::_Sentinel): Declare.
2636 * testsuite/std/ranges/adaptors/split.cc (test02): New test.
2638 2021-07-16 Marek Polacek <polacek@redhat.com>
2640 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Add
2643 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2645 * include/bits/unique_ptr.h: Adjust doxygen markup.
2647 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2650 * include/std/type_traits: Adjust doxygen markup.
2652 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2654 * include/bits/cpp_type_traits.h: Add diagnostic pragmas around
2655 uses of non-standard integer types.
2656 * include/bits/functional_hash.h: Likewise.
2657 * include/bits/iterator_concepts.h: Likewise.
2658 * include/bits/max_size_type.h: Likewise.
2659 * include/bits/std_abs.h: Likewise.
2660 * include/bits/stl_algobase.h: Likewise.
2661 * include/bits/uniform_int_dist.h: Likewise.
2662 * include/ext/numeric_traits.h: Likewise.
2663 * include/std/type_traits: Likewise.
2665 2021-07-15 Jonathan Wakely <jwakely@redhat.com>
2668 * include/std/tuple (tuple_element): Improve static_assert text.
2669 (__get_helper): Add deleted overload.
2670 (get<i>(tuple<T...>&&), get<i>(const tuple<T...>&&)): Use
2671 __get_helper directly.
2672 (__get_helper2): Remove.
2673 (__find_uniq_type_in_pack): New constexpr helper function.
2674 (get<T>): Use __find_uniq_type_in_pack and __get_helper instead
2676 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
2678 * testsuite/20_util/tuple/element_access/101427.cc: New test.
2680 2021-07-15 Jonathan Wakely <jwakely@redhat.com>
2683 * include/bits/c++config (__replacement_assert): Add noexcept.
2684 [!_GLIBCXX_VERBOSE] (__glibcxx_assert_impl): Use __builtin_abort
2685 instead of __replacement_assert.
2687 2021-07-14 Jonathan Wakely <jwakely@redhat.com>
2689 * include/std/string_view (basic_string_view(It, End)): Add
2691 * testsuite/21_strings/basic_string_view/cons/char/range.cc:
2692 Check noexcept-specifier. Also check construction without CTAD.
2694 2021-07-13 Jonathan Wakely <jwakely@redhat.com>
2697 * include/std/string_view (ends_with): Use traits_type::compare
2700 2021-07-13 Jonathan Wakely <jwakely@redhat.com>
2702 * include/std/string_view: Only include <bits/ranges_base.h>
2703 once, and only for C++20 and later.
2705 2021-07-12 Jonathan Wakely <jwakely@redhat.com>
2708 * include/std/span (as_writable_bytes): Add requires-clause.
2709 * testsuite/23_containers/span/101411.cc: New test.
2711 2021-07-09 Matheus Castanho <msc@linux.ibm.com>
2713 * include/std/mutex (__lock_impl): Check
2714 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
2716 2021-07-02 Jonathan Wakely <jwakely@redhat.com>
2719 * include/bits/unique_ptr.h (unique_ptr<T[],D>::operator[]):
2720 Remove noexcept-specifier.
2721 (unique_ptr<T[],D>::_S_nothrow_deref): Remove.
2722 * testsuite/20_util/unique_ptr/lwg2762.cc: Remove checks for
2725 2021-07-01 Jonathan Wakely <jwakely@redhat.com>
2727 * doc/doxygen/doxygroups.cc: Fix docs for std::literals.
2728 * doc/doxygen/user.cfg.in: Exclude the Networking TS header.
2729 Add some more predefined macros.
2730 * include/bits/fs_fwd.h: Move @addtogroup commands inside
2731 namespaces. Add better documentation.
2732 * include/bits/fs_path.h: Likewise.
2733 * include/experimental/bits/fs_fwd.h: Likewise.
2734 * include/experimental/bits/fs_path.h: Likewise.
2735 * include/ext/throw_allocator.h: Fix typo and improve docs.
2736 * include/std/chrono: Move @addtogroup commands.
2737 * include/std/system_error: Move @addtogroup commands.
2738 * libsupc++/exception: Improve documentation.
2739 * libsupc++/exception.h: Add @since documentation.
2741 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
2744 * doc/doxygen/user.cfg.in (INPUT): Add <experimental/simd>.
2745 (COLS_IN_ALPHA_INDEX): Remove obsolete tag.
2746 (PREDEFINED): Add/fix some more macros that need to be expanded.
2747 * include/bits/random.h: Stop Doxygen from documenting internal
2748 implementation details.
2749 * include/bits/random.tcc: Likewise.
2750 * include/bits/this_thread_sleep.h: Fix @file name.
2751 * include/experimental/bits/simd.h: Add to Doxygen group. Do not
2752 document internal implementation details.
2753 * include/experimental/bits/simd_detail.h: Do not document
2754 internal implementation details.
2755 * include/experimental/simd: Define Doxygen groups.
2756 * include/experimental/type_traits: Improve documentation for
2757 the header file. Define groups. Use @since commands.
2758 * include/std/scoped_allocator (scoped_allocator_adaptor): Move
2759 declaration before undocumented region.
2760 * include/std/type_traits (true_type, false_type): Use using
2761 declaration instead of typedef.
2762 (is_invocable_v, is_nothrow_invocable_v, is_invocable_r_v)
2763 (is_nothrow_invocable_r_v): Move definitions next to other C++17
2765 Do not document internal implementation details. Move misplaced
2766 group-end command. Define group for variable templates.
2767 * include/std/variant: Do not document internal implementation
2769 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2772 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
2774 * include/experimental/simd: Do not define anything pre-C++17.
2776 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
2778 * include/bits/random.tcc [__cpp_inline_variables]: Remove
2779 redundant definitions of static constexpr member variables.
2780 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2783 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
2785 * include/bits/streambuf.tcc (__copy_streambufs_eof): Remove
2786 explicit instantiation declarations.
2787 * src/c++11/streambuf-inst.cc (__copy_streambufs_eof): Remove
2788 explicit instantiation definitions.
2790 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
2793 * testsuite/17_intro/names.cc: Fix #if condition for names used
2796 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
2799 * include/bits/unique_ptr.h (unique_ptr<T[], D>::operator[]):
2800 Fail gracefully if element_type is incomplete.
2801 * testsuite/20_util/unique_ptr/cons/incomplete.cc: Clarify that
2802 the standard doesn't require this test to work for array types.
2803 * testsuite/20_util/unique_ptr/lwg2762.cc: Check that incomplete
2804 types can be used with array specialization.
2805 * testsuite/20_util/unique_ptr/101236.cc: New test.
2807 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
2809 * doc/xml/manual/intro.xml: Document LWG 415 change.
2810 * doc/html/manual/bugs.html: Regenerate.
2811 * include/bits/istream.tcc (ws): Create sentry and catch
2813 * testsuite/27_io/basic_istream/ws/char/lwg415.cc: New test.
2814 * testsuite/27_io/basic_istream/ws/wchar_t/lwg415.cc: New test.
2816 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
2818 * include/bits/ostream.tcc (basic_ostream::write): Call sputn
2819 directly instead of using _M_write. Do setstate(__err) all
2820 outside the try-catch block.
2821 * include/std/ostream (basic_ostream::_M_write): Declare
2822 private. Use __ostream_insert. Do not define for the versioned
2825 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
2827 * doc/xml/manual/intro.xml: Document LWG 581 change.
2828 * doc/html/manual/bugs.html: Regenerate.
2829 * include/bits/basic_ios.tcc: Whitespace.
2830 * include/bits/ostream.tcc (basic_ostream::flush()): Construct
2832 * testsuite/27_io/basic_ostream/flush/char/2.cc: Check
2834 * testsuite/27_io/basic_ostream/flush/char/exceptions_badbit_throw.cc:
2836 * testsuite/27_io/basic_ostream/flush/wchar_t/2.cc: Likewise.
2837 * testsuite/27_io/basic_ostream/flush/wchar_t/exceptions_badbit_throw.cc:
2840 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
2842 * include/bits/ostream.tcc (sentry): Only set failbit if badbit
2843 is set, not if eofbit is set.
2844 (tellp, seekp, seekp): Create sentry object. Do not set badbit
2846 * testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc:
2847 Adjust expected behaviour.
2848 * testsuite/27_io/basic_ostream/seekp/wchar_t/exceptions_badbit_throw.cc:
2850 * testsuite/27_io/basic_ostream/tellp/char/exceptions_badbit_throw.cc:
2852 * testsuite/27_io/basic_ostream/tellp/wchar_t/exceptions_badbit_throw.cc:
2854 * testsuite/27_io/basic_ostream/seekp/char/n3168.cc: New test.
2855 * testsuite/27_io/basic_ostream/seekp/wchar_t/n3168.cc: New test.
2856 * testsuite/27_io/basic_ostream/tellp/char/n3168.cc: New test.
2857 * testsuite/27_io/basic_ostream/tellp/wchar_t/n3168.cc: New test.
2859 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
2861 * include/std/syncstream (basic_syncbuf::swap()): Remove
2862 noexcept, as per LWG 3498.
2864 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
2867 * testsuite/17_intro/names.cc: Undef more names for newlib and
2868 also for arm-none-linux-gnueabi.
2869 * testsuite/experimental/names.cc: Disable PCH.
2871 2021-06-25 Matthias Kretz <m.kretz@gsi.de>
2873 * include/experimental/bits/simd.h (__bit_cast): Implement via
2874 __builtin_bit_cast #if available.
2875 (__proposed::simd_bit_cast): Add overloads for simd and
2876 simd_mask, which use __builtin_bit_cast (or __bit_cast #if not
2877 available), which return an object of the requested type with
2878 the same bits as the argument.
2879 * include/experimental/bits/simd_math.h: Use simd_bit_cast
2880 instead of __bit_cast to allow casts to fixed_size_simd.
2881 (copysign): Remove branch that was only required if __bit_cast
2882 cannot be constexpr.
2883 * testsuite/experimental/simd/tests/bits/test_values.h: Switch
2884 from __bit_cast to __proposed::simd_bit_cast since the former
2885 will not cast fixed_size objects anymore.
2887 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2889 * include/experimental/bits/simd_math.h
2890 (_GLIBCXX_SIMD_MATH_CALL2_): Rename arg2_ to __arg2.
2891 (_GLIBCXX_SIMD_MATH_CALL3_): Rename arg2_ to __arg2 and arg3_ to
2894 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2896 * include/experimental/bits/simd.h (__execute_on_index_sequence)
2897 (__execute_on_index_sequence_with_return)
2898 (__call_with_n_evaluations, __call_with_subscripts): Add flatten
2901 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2903 * include/experimental/bits/simd_x86.h (_S_trunc, _S_floor)
2904 (_S_ceil): Set bit 8 (_MM_FROUND_NO_EXC) on AVX and SSE4.1
2907 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2909 * include/experimental/bits/simd_x86.h (_S_ldexp): The AVX512F
2910 implementation doesn't require a _VecBltnBtmsk ABI tag, it
2911 requires either a 64-Byte input (in which case AVX512F must be
2912 available) or AVX512VL.
2914 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2916 * include/experimental/bits/simd_math.h: Undefine internal
2918 (frexp): Move #if to a more sensible position and reformat
2920 (logb): Call _SimdImpl::_S_logb for fixed_size instead of
2921 duplicating the code here.
2922 (modf): Simplify condition.
2924 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2926 * include/experimental/bits/simd_math.h (fabs): Remove
2927 fabs(simd<integral>) overload.
2929 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2931 * include/experimental/bits/simd_converter.h
2932 (_SimdConverter::operator()): Pass _SimdTuple by const-ref.
2933 * include/experimental/bits/simd_fixed_size.h
2934 (_GLIBCXX_SIMD_FIXED_OP): Pass binary operator _SimdTuple
2935 arguments by const-ref.
2936 (_S_masked_unary): Pass _SimdTuple by const-ref.
2938 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2940 * include/experimental/bits/simd_fixed_size.h
2941 (_AbisInSimdTuple): Removed.
2943 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2945 * include/experimental/bits/simd.h: Add missing operator~
2946 overload for simd<floating-point> to __float_bitwise_operators.
2947 * include/experimental/bits/simd_builtin.h
2948 (_SimdImplBuiltin::_S_complement): Bitcast to int (and back) to
2949 implement complement for floating-point vectors.
2950 * include/experimental/bits/simd_fixed_size.h
2951 (_SimdImplFixedSize::_S_copysign): New function, forwarding to
2952 copysign implementation of _SimdTuple members.
2953 * include/experimental/bits/simd_math.h (copysign): Call
2954 _SimdImpl::_S_copysign for fixed_size arguments. Simplify
2955 generic copysign implementation using the new ~ operator.
2957 2021-06-24 Jonathan Wakely <jwakely@redhat.com>
2959 * testsuite/experimental/simd/README.md: Fix typos.
2961 2021-06-24 Jonathan Wakely <jwakely@redhat.com>
2963 * include/bits/shared_ptr_base.h (__shared_ptr_access::operator[]):
2965 * include/bits/unique_ptr.h (unique_ptr::operator*): Add
2966 conditional noexcept as per LWG 2762.
2967 * testsuite/20_util/shared_ptr/observers/array.cc: Check that
2968 dereferencing cannot throw.
2969 * testsuite/20_util/shared_ptr/observers/get.cc: Likewise.
2970 * testsuite/20_util/optional/observers/lwg2762.cc: New test.
2971 * testsuite/20_util/unique_ptr/lwg2762.cc: New test.
2973 2021-06-23 Patrick Palka <ppalka@redhat.com>
2976 * testsuite/23_containers/multiset/cons/deduction.cc:
2977 Uncomment CTAD example that was rejected by this bug.
2978 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
2980 2021-06-23 Jonathan Wakely <jwakely@redhat.com>
2982 * include/std/chrono (chrono::year::is_leap()): Fix incorrect
2985 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
2987 * testsuite/experimental/simd/README.md: New file.
2989 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
2991 * testsuite/experimental/simd/driver.sh: Rewrite output
2992 verbosity logic. Add -p/--percentage option. Allow -v/--verbose
2993 to be used twice. Add -x and -o short options. Parse long
2994 options with = instead of separating space generically. Parce
2995 contracted short options. Make unrecognized options an error.
2996 If same-line output is active, trap on EXIT to increment the
2997 progress (only with --percentage), erase the line and print the
2999 * testsuite/experimental/simd/generate_makefile.sh: Initialize
3000 helper files for progress account keeping. Update help target
3001 for changes to DRIVEROPTS.
3003 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
3005 * testsuite/Makefile.am (check-simd): Remove -fno-tree-vrp flag
3006 and associated warning.
3007 * testsuite/Makefile.in: Regenerate.
3009 2021-06-23 Cassio Neri <cassio.neri@gmail.com>
3010 Jonathan Wakely <jwakely@redhat.com>
3011 Ulrich Drepper <drepper@redhat.com>
3013 * include/std/chrono (chrono::year::is_leap()): Optimize.
3015 2021-06-23 Patrick Palka <ppalka@redhat.com>
3018 * testsuite/23_containers/map/cons/deduction.cc: Replace ambiguous
3020 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
3021 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
3022 Mention one of the replaced examples is broken due to PR101174.
3023 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
3024 * testsuite/23_containers/unordered_map/cons/deduction.cc: Replace
3025 ambiguous CTAD examples.
3026 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
3028 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
3030 * testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise.
3032 2021-06-23 Jonathan Wakely <jwakely@redhat.com>
3034 * include/std/mutex (__detail::__try_lock_impl): Rename
3035 parameter to avoid clashing with newlib's __lockable macro.
3036 (try_lock): Add 'inline' specifier.
3037 * testsuite/17_intro/names.cc: Add check for __lockable.
3038 * testsuite/30_threads/try_lock/5.cc: Add options for pthreads.
3040 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
3041 Matthias Kretz <m.kretz@gsi.de>
3043 * include/std/mutex (lock): Replace recursion with iteration
3044 when lockables all have the same type.
3045 (__detail::__try_lock_impl): Likewise. Pass lockables as
3046 parameters, instead of a tuple. Always lock the first one, and
3047 recurse for the rest.
3048 (__detail::__lock_impl): Adjust call to __try_lock_impl.
3049 (__detail::__try_to_lock): Remove.
3050 * testsuite/30_threads/lock/3.cc: Check that mutexes are locked.
3051 * testsuite/30_threads/lock/4.cc: Also test non-heterogeneous
3053 * testsuite/30_threads/unique_lock/cons/60497.cc: Also check
3055 * testsuite/30_threads/try_lock/5.cc: New test.
3057 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
3059 * include/std/memory (declare_reachable, undeclare_reachable)
3060 (declare_no_pointers, undeclare_no_pointers, get_pointer_safety)
3061 (pointer_safety): Only define for C++11 to C++20 inclusive.
3062 * testsuite/20_util/pointer_safety/1.cc: Do not run for C++23.
3064 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
3066 * include/bits/random.h (seed_seq): Constrain initializer-list
3068 * include/bits/random.tcc (seed_seq): Add template parameter.
3069 * testsuite/26_numerics/random/seed_seq/cons/default.cc: Check
3071 * testsuite/26_numerics/random/seed_seq/cons/initlist.cc: Check
3074 2021-06-22 Thomas Rodgers <rodgert@appliantology.com>
3077 * include/bits/semaphore_base.h (__atomic_semaphore::_M_release):
3078 Force _M_release() to wake all waiting threads.
3079 * testsuite/30_threads/semaphore/100806.cc: New test.
3081 2021-06-21 Jonathan Wakely <jwakely@redhat.com>
3083 * include/std/mutex (__try_to_lock): Move to __detail namespace.
3084 (struct __try_lock_impl): Replace with ...
3085 (__detail::__try_lock_impl<Idx>(tuple<Lockables...>&)): New
3086 function templates to implement std::try_lock.
3087 (try_lock): Use new __try_lock_impl.
3088 (__detail::__lock_impl(int, int&, L0&, L1&...)): New function
3089 template to implement std::lock.
3090 (lock): Use __lock_impl.
3092 2021-06-21 Patrick Palka <ppalka@redhat.com>
3094 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
3096 2021-06-20 Patrick Palka <ppalka@redhat.com>
3098 * include/std/ranges (__non_propagating_cache::operator bool):
3099 Define for split_view::begin().
3100 (split_view): Define as per P2210.
3101 (views::__detail::__can_split_view): Define.
3102 (views::_Split, views::split): Define.
3103 * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
3105 * testsuite/std/ranges/adaptors/split.cc: New test.
3106 * testsuite/std/ranges/p2325.cc (test08a): New test.
3107 * testsuite/std/ranges/p2367.cc (test01): Test views::split.
3109 2021-06-20 Patrick Palka <ppalka@redhat.com>
3111 * include/std/ranges: Rename views::split to views::lazy_split,
3112 split_view to lazy_split_view, etc. throughout.
3113 * testsuite/std/ranges/*: Likewise.
3114 * testsuite/std/ranges/adaptors/lazy_split.cc: New file.
3115 * testsuite/std/ranges/adaptors/lazy_split_neg.cc: New file.
3117 2021-06-20 Patrick Palka <ppalka@redhat.com>
3119 * include/std/ranges (split_view::_OuterIter::__at_end):
3120 Check _M_trailing_empty.
3121 (split_view::_OuterIter::_M_trailing_empty): Define this
3123 (split_view::_OuterIter::operator++): Set _M_trailing_empty
3125 (split_view::_OuterIter::operator==): Compare
3127 * testsuite/std/ranges/adaptors/100479.cc (test03): Expect two
3128 split parts instead of one.
3129 * testsuite/std/ranges/adaptors/split.cc (test11): New test.
3131 2021-06-20 Patrick Palka <ppalka@redhat.com>
3133 * include/std/ranges (split_view::_InnerIter::base): Define as
3136 2021-06-19 Patrick Palka <ppalka@redhat.com>
3138 * include/std/ranges (transform_view::_Iterator::_S_iter_concept):
3139 Consider _Base instead of _Vp as per LWG 3555.
3140 (elements_view::_Iterator::_S_iter_concept): Likewise.
3142 2021-06-19 Patrick Palka <ppalka@redhat.com>
3144 * include/std/ranges (split_view::_OuterIter::value_type::begin):
3145 Remove the non-const overload, and remove the copyable constraint
3146 on the const overload as per LWG 3553.
3148 2021-06-19 Patrick Palka <ppalka@redhat.com>
3150 * include/bits/stl_iterator.h
3151 (__detail::__common_iter_use_postfix_proxy): Add
3152 move_constructible constraint as per LWG 3546.
3153 (common_iterator::__postfix_proxy): Adjust initializer of
3154 _M_keep as per LWG 3546.
3156 2021-06-18 Patrick Palka <ppalka@redhat.com>
3159 * include/bits/ranges_algo.h (__minmax_fn::operator()): Rewrite
3160 to limit comparison complexity to 3*N/2.
3161 (__minmax_element_fn::operator()): Likewise.
3162 (shift_right): Avoid premature std::move of __result.
3163 * testsuite/25_algorithms/minmax/constrained.cc (test04, test05):
3165 * testsuite/25_algorithms/minmax_element/constrained.cc (test02):
3168 2021-06-18 Patrick Palka <ppalka@redhat.com>
3170 * include/std/concepts (convertible_to): Just use declval as per
3173 2021-06-18 Jonathan Wakely <jwakely@redhat.com>
3176 * include/std/numeric (reduce(Iter, Iter, T, BinaryOp)): Replace
3177 incorrect static_assert with ones matching the 'Mandates'
3178 conditions in the standard.
3179 * testsuite/26_numerics/reduce/95833.cc: New test.
3181 2021-06-18 Jonathan Wakely <jwakely@redhat.com>
3183 * testsuite/21_strings/basic_string/cons/char/1.cc: Use
3184 diagnostic pragma to suppress -Wstringop-overread error.
3186 2021-06-18 Patrick Palka <ppalka@redhat.com>
3188 * include/bits/ranges_algo.h (__find_fn, find, __find_if_fn)
3189 (find_if, __find_if_not_fn, find_if_not, _in_in_result)
3190 (__mismatch_fn, mismatch, __search_fn, search): Move to ...
3191 * include/bits/ranges_util.h: ... here.
3192 * include/std/ranges (__detail::find, __detail::find_if)
3193 (__detail::find_if_not, __detail::mismatch): Remove.
3194 (filter_view): Use ranges::find_if instead.
3195 (drop_while_view): Use ranges::find_if_not instead.
3196 (split_view): Use ranges::find and ranges::mismatch instead.
3198 2021-06-18 Patrick Palka <ppalka@redhat.com>
3200 * include/bits/iterator_concepts.h (weakly_incrementable): Remove
3201 default_initializable requirement.
3202 * include/bits/ranges_base.h (ranges::view): Likewise.
3203 * include/bits/ranges_util.h (subrange): Constrain the default
3205 * include/bits/stl_iterator.h (back_insert_iterator): Remove the
3207 (front_insert_iterator): Likewise.
3208 (insert_iterator): Likewise. Remove NSDMIs.
3209 (common_iterator): Constrain the default ctor.
3210 (counted_iterator): Likewise.
3211 * include/bits/stream_iterator.h (ostream_iterator): Remove the
3213 * include/std/ranges (__detail::__box::operator=): Handle
3214 self-assignment in the primary template.
3215 (__detail::__box): In the partial specialization: adjust
3216 constraints as per P2325. Add specialized operator= for the
3217 case when the wrapped type is not copyable. Constrain the
3218 default ctor. Avoid list-initialization.
3219 (single_view): Constraint the default ctor.
3220 (iota_view): Relax semiregular constraint to copyable.
3221 Constrain the default ctor.
3222 (iota_view::_Iterator): Constraint the default ctor.
3223 (basic_istream_view): Remove the default ctor. Remove NSDMIs.
3224 Remove redundant checks for empty _M_stream.
3225 (basic_istream_view::_Iterator): Likewise.
3226 (ref_view): Remove the default ctor. Remove NSDMIs.
3227 (ref_view::_Iterator): Constrain the default ctor.
3228 (__detail::__non_propagating_cache::operator=): Define overload
3229 for assigning from a value of the underlying type.
3230 (filter_view): Likewise.
3231 (filter_view::_Iterator): Likewise.
3232 (transform_view): Likewise.
3233 (transform_view::_Iterator): Likewise.
3234 (take_view): Likewise.
3235 (take_view::_Iterator): Likewise.
3236 (take_while_view): Likewise.
3237 (take_while_view::_Iterator): Likewise.
3238 (drop_while_view): Likewise.
3239 (drop_while_view::_Iterator): Likewise.
3240 (join_view): Likewise.
3241 (split_view::_OuterIter::__current): Adjust after changing the
3243 (split_view::_M_current): Wrap it in a __non_propagating_cache.
3244 (split_view::split_view): Constrain the default ctor.
3245 (common_view): Constrain the default ctor.
3246 (reverse_view): Likewise.
3247 (elements_view): Likewise.
3248 * include/std/span (enable_view<span<_ElementType, _Extent>>):
3249 Define this partial specialization to true unconditionally.
3250 * include/std/version (__cpp_lib_ranges): Adjust value.
3251 * testsuite/24_iterators/back_insert_iterator/constexpr.cc:
3252 Don't attempt to default construct a back_insert_iterator.
3253 * testsuite/24_iterators/front_insert_iterator/constexpr.cc:
3254 Don't attempt to default construct a front_insert_iterator.
3255 * testsuite/24_iterators/insert_iterator/constexpr.cc:
3256 Don't attempt to default construct an insert_iterator.
3257 * testsuite/24_iterators/ostream_iterator/requirements/constexpr.cc:
3258 Remove this test for default constructibility of ostream_iterator.
3259 * testsuite/std/ranges/97600.cc: Don't attempt to default
3260 construct a basic_istream_view.
3261 * testsuite/std/ranges/adaptors/detail/semiregular_box.cc:
3263 * testsuite/std/ranges/adaptors/detail/copyable_box.cc: ... this.
3264 (test02): Adjust now that __box is copyable-box not
3267 * testsuite/std/ranges/p2325.cc: New test.
3268 * testsuite/std/ranges/single_view.cc (test06): New test.
3269 * testsuite/std/ranges/view.cc: Adjust now that view doesn't
3270 require default_initializable.
3272 2021-06-17 Jonathan Wakely <jwakely@redhat.com>
3275 * include/bits/basic_string.h (__cpp_lib_constexpr_string): Only
3276 define when is_constant_evaluated is available.
3277 * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits):
3279 (__constant_string_p, __constant_array_p): Remove.
3280 (char_traits): Use is_constant_evaluated directly.
3281 * include/std/version (__cpp_lib_constexpr_char_traits)
3282 (__cpp_lib_constexpr_string): Only define when
3283 is_constant_evaluated is available.
3285 2021-06-17 Patrick Palka <ppalka@redhat.com>
3288 * include/std/ranges (__adaptor::_Partial): For the "simple"
3289 forwarding partial specializations, also require that
3290 the extra arguments are trivially copyable.
3291 * testsuite/std/ranges/adaptors/100577.cc (test04): New test.
3293 2021-06-17 Patrick Palka <ppalka@redhat.com>
3296 * include/std/ranges (__adaptor::_RangeAdaptor): Document the
3297 template form of _S_has_simple_extra_args.
3298 (__adaptor::__adaptor_has_simple_extra_args): Add _Args template
3299 parameter pack. Try to treat _S_has_simple_extra_args as a
3300 variable template parameterized by _Args.
3301 (__adaptor::_Partial): Pass _Arg/_Args to the constraint
3302 __adaptor_has_simple_extra_args.
3303 (views::_Take::_S_has_simple_extra_args): Templatize according
3304 to the type of the extra argument.
3305 (views::_Drop::_S_has_simple_extra_args): Likewise.
3306 (views::_Split::_S_has_simple_extra_args): Define.
3307 * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
3308 Adjust after changes to _S_has_simple_extra_args mechanism.
3311 2021-06-16 Jonathan Wakely <jwakely@redhat.com>
3313 * include/bits/iterator_concepts.h (__decay_copy): Name type.
3315 2021-06-16 Jonathan Wakely <jwakely@redhat.com>
3317 * include/bits/ranges_base.h (ranges::begin, ranges::end)
3318 (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
3319 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
3320 (ranges::empty, ranges::data, ranges::cdata): Remove final
3321 keywords and deleted operator& overloads.
3322 * testsuite/24_iterators/customization_points/iter_move.cc: Use
3323 new is_customization_point_object function.
3324 * testsuite/24_iterators/customization_points/iter_swap.cc:
3326 * testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc:
3328 * testsuite/std/ranges/access/begin.cc: Likewise.
3329 * testsuite/std/ranges/access/cbegin.cc: Likewise.
3330 * testsuite/std/ranges/access/cdata.cc: Likewise.
3331 * testsuite/std/ranges/access/cend.cc: Likewise.
3332 * testsuite/std/ranges/access/crbegin.cc: Likewise.
3333 * testsuite/std/ranges/access/crend.cc: Likewise.
3334 * testsuite/std/ranges/access/data.cc: Likewise.
3335 * testsuite/std/ranges/access/empty.cc: Likewise.
3336 * testsuite/std/ranges/access/end.cc: Likewise.
3337 * testsuite/std/ranges/access/rbegin.cc: Likewise.
3338 * testsuite/std/ranges/access/rend.cc: Likewise.
3339 * testsuite/std/ranges/access/size.cc: Likewise.
3340 * testsuite/std/ranges/access/ssize.cc: Likewise.
3341 * testsuite/util/testsuite_iterators.h
3342 (is_customization_point_object): New function.
3344 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
3346 * include/bits/ranges_base.h (ranges::begin, ranges::end)
3347 (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
3348 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
3349 (ranges::empty, ranges::data, ranges::cdata): Make types final.
3350 Add deleted operator& overloads.
3351 (ranges::advance, ranges::distance, ranges::next, ranges::prev):
3353 * testsuite/std/ranges/headers/ranges/synopsis.cc: Replace
3354 ill-formed & expressions with using-declarations. Add checks for
3355 other function objects.
3357 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
3359 * include/bits/ranges_util.h (view_interface): Add noexcept to
3360 empty, operator bool, data and size members.
3361 (subrange): Add noexcept to constructors.
3362 * include/std/ranges (single_view, ref_view): Add noexcept to
3364 (views::single, views::all): Add noexcept.
3365 * testsuite/std/ranges/adaptors/all.cc: Check noexcept.
3366 * testsuite/std/ranges/single_view.cc: Likewise.
3368 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
3370 * include/bits/ranges_util.h (subrange): Add __size_type typedef
3371 and use it to simplify declarations.
3372 (subrange(i, s, n)): Remove assertion.
3373 * testsuite/std/ranges/subrange/constexpr.cc: New test.
3375 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
3377 * include/bits/iterator_concepts.h (__cust_access::__decay_copy):
3378 Replace with function object.
3379 (__cust_access::__member_begin, ___cust_access::_adl_begin): Use
3380 __decay_copy unqualified.
3381 * include/bits/ranges_base.h (__member_end, __adl_end):
3382 Likewise. Use __range_iter_t for type of ranges::begin.
3383 (__member_rend): Use correct value category for rbegin argument.
3384 (__member_data): Use __decay_copy unqualified.
3385 (__begin_data): Use __range_iter_t for type of ranges::begin.
3387 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3389 * include/bits/ranges_base.h (ranges::empty): Check whether
3390 conversion to bool can throw.
3391 * testsuite/std/ranges/access/empty.cc: Check for correct
3394 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3397 * include/std/type_traits (__common_ref_impl<X&, Y&>): Only
3398 use the type if it's a reference.
3399 * testsuite/20_util/common_reference/100894.cc: New test.
3401 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3403 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
3404 Add dg-require-filesystem-ts directive.
3406 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3409 * include/std/any (any(in_place_t<T>, initializer_list<U>, A&&...))
3410 (any::emplace<T>(initializer_list<U>, A&&...)): Fix constraint
3412 * testsuite/20_util/any/cons/101034.cc: New test.
3414 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3416 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Add
3417 -std=gnu++17 option.
3419 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3422 * libsupc++/compare (compare_partial_order_fallback): Add
3423 constraint using reversed parameter order, as per LWG 3465.
3424 * testsuite/18_support/comparisons/algorithms/fallback.cc:
3425 Adjust expected result.
3427 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3429 * libsupc++/compare (__decayed_same_as): New helper concept.
3430 (strong_order, weak_order, partial_order): Constrain with new
3431 concept instead of using static_assert.
3432 (compare_strong_order_fallback, compare_weak_order_fallback)
3433 (compare_partial_order_fallback): Likewise. Do not deduce return
3434 types. Remove redundant if-constexpr checks.
3435 * testsuite/18_support/comparisons/algorithms/fallback.cc: New test.
3437 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3440 * include/std/tuple: Use reserved form of attribute name.
3441 * testsuite/17_intro/headers/c++2011/all_attributes.cc: Add
3442 check for no_unique_address.
3443 * testsuite/17_intro/headers/c++2014/all_attributes.cc:
3445 * testsuite/17_intro/headers/c++2017/all_attributes.cc:
3448 2021-06-11 Jonathan Wakely <jwakely@redhat.com>
3450 * include/bits/fs_path.h (operator==, operator<=>): Use new
3451 _S_compare function.
3452 (path::_S_compare): New function to call path::compare in a
3453 context where path::iterator is complete.
3454 * include/experimental/bits/fs_path.h (operator<, operator==):
3455 Define after path::iterator is complete.
3456 * testsuite/27_io/filesystem/path/native/conv_c++23.cc: New
3458 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
3461 2021-06-09 Thomas Rodgers <rodgert@appliantology.com>
3463 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Guard
3464 test logic with constexpr check for is_always_lock_free.
3466 2021-06-09 Jonathan Wakely <jwakely@redhat.com>
3469 * include/std/optional (optional::operator=(const optional<U>&)):
3470 Fix value category used in is_assignable check.
3471 * testsuite/20_util/optional/assignment/100982.cc: New test.
3473 2021-06-09 Jonathan Wakely <jwakely@redhat.com>
3475 * include/bits/allocator.h (allocator::is_always_equal): Deprecate.
3476 * include/bits/iterator_concepts.h (indirectly_readable_traits):
3477 Add LWG issue number to comment.
3478 * include/std/memory_resource (polymorphic_allocator::release):
3480 * testsuite/20_util/allocator/requirements/typedefs.cc: Add
3481 dg-warning for deprecation. Also check std::allocator<void>.
3483 2021-06-08 Thomas Rodgers <rodgert@appliantology.com>
3486 * include/bits/atomic_base.h (atomic_ref<_Tp*>::wait):
3487 Change parameter type from _Tp to _Tp*.
3488 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Extend
3489 coverage of types tested.
3491 2021-06-08 Thomas Rodgers <rodgert@appliantology.com>
3493 * include/std/barrier (__tree_barrier::_M_arrive): Remove
3494 unnecessary hasher instantiation.
3496 2021-06-08 Jonathan Wakely <jwakely@redhat.com>
3498 * include/experimental/propagate_const (swap): Constrain.
3499 * testsuite/experimental/propagate_const/swap/lwg3413.cc: New test.
3501 2021-06-07 Avi Kivity <avi@scylladb.com>
3504 * include/std/ranges (elements_view::__iter_cat::_S_iter_cat):
3505 Add missing typename.
3507 2021-06-07 Jonathan Wakely <jwakely@redhat.com>
3510 * include/std/optional (operator<=>(const optional<T>& const U&)):
3511 Add missing constraint and add workaround for template
3513 * testsuite/20_util/optional/relops/three_way.cc: Check that
3514 type without equality comparison cannot be compared when wrapped
3517 2021-06-05 Jonathan Wakely <jwakely@redhat.com>
3520 * include/bits/ranges_base.h (_SSize): Return signed type.
3521 * testsuite/std/ranges/access/ssize.cc: Check with __int128.
3523 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
3525 * include/bits/ranges_base.h (_SSize): Return the result of
3526 ranges::size converted to the wider of make-signed-like-t<S> and
3527 ptrdiff_t, rather than the ranges different type.
3528 * testsuite/std/ranges/access/ssize.cc: Adjust expected result
3529 for an iota_view that uses an integer class type for its
3532 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
3535 * include/bits/ranges_base.h (__member_data): Use __decay_copy.
3536 * testsuite/std/ranges/access/data.cc: Add testcase from PR.
3538 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
3541 * include/bits/iterator_concepts.h (__detail::__decay_copy)
3542 (__detail::__member_begin, __detail::__adl_begin): Move to
3543 namespace ranges::__cust_access.
3544 (__detail::__ranges_begin): Likewise, and rename to __begin.
3545 Remove redundant static assertion.
3546 * include/bits/ranges_base.h (_Begin, _End, _RBegin, _REnd):
3547 Use lvalue in noexcept specifier.
3548 (__as_const): Add non-deduced parameter for value category.
3549 (_CBegin, _CEnd, _CRBegin, _CREnd, _CData): Adjust uses of
3551 (__member_size, __adl_size, __member_empty, __size0_empty):
3552 (__eq_iter_empty, __adl_data): Use lvalue objects in
3554 (__sentinel_size): Likewise. Add check for conversion to
3556 (__member_data): Allow non-lvalue types to satisfy the concept,
3557 but use lvalue object in requirements.
3558 (_Size, _SSize): Remove forwarding to always use an lvalue.
3559 (_Data): Likewise. Add static assertion for arrays.
3560 * testsuite/std/ranges/access/cdata.cc: Adjust expected
3561 behaviour for rvalues. Add negative tests for ill-formed
3563 * testsuite/std/ranges/access/data.cc: Likewise.
3564 * testsuite/std/ranges/access/empty.cc: Adjust expected
3565 behaviour for rvalues.
3566 * testsuite/std/ranges/access/size.cc: Likewise.
3568 2021-06-04 Tim Adye <Tim.Adye@cern.ch>
3570 * include/std/any (any::_Manager::_S_access): New static
3571 function to access the contained value.
3572 (any::emplace, __any_caster): Use _S_access member of the
3575 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
3577 * doc/xml/manual/status_cxx2020.xml:
3578 * doc/html/*: Regenerate.
3579 * include/bits/hashtable.h (__cpp_lib_generic_unordered_lookup):
3581 * include/std/version (__cpp_lib_generic_unordered_lookup):
3583 * testsuite/23_containers/unordered_map/operations/1.cc: Check
3585 * testsuite/23_containers/unordered_set/operations/1.cc:
3588 2021-06-03 Patrick Palka <ppalka@redhat.com>
3590 * include/bits/ranges_algo.h (__detail::__can_reread_output):
3591 Factor out this concept from ...
3592 (__unique_copy_fn::operator()): ... here. Use the concept
3594 * testsuite/std/ranges/range.cc: Remove now ill-formed use
3595 of range_value_t on an output_range.
3596 * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
3597 Define value_type, pointer and reference member types to void.
3599 2021-06-03 Patrick Palka <ppalka@redhat.com>
3602 * include/std/ranges (_RangeAdaptorClosure): Document
3603 _S_has_simple_call_op mechanism.
3604 (_RangeAdaptor): Document _S_has_simple_extra_args mechanism.
3605 (__closure_has_simple_call_op): New concept.
3606 (__adaptor_has_simple_extra_args): Likewise.
3607 (_Partial<_Adaptor, _Args...>): New partial specialization.
3608 (_Partial<_Adaptor, _Arg>): Likewise.
3609 (_Pipe<_Lhs, _Rhs>): Likewise.
3610 (views::_All::_S_has_simple_call_op): Define to true.
3611 (views::_Filter::_S_has_simple_extra_args): Likewise.
3612 (views::_Transform::_S_has_simple_extra_args): Likewise.
3613 (views::_Take::_S_has_simple_extra_args): Likewise.
3614 (views::_TakeWhile::_S_has_simple_extra_args): Likewise.
3615 (views::_Drop::_S_has_simple_extra_args): Likewise.
3616 (views::_DropWhile::_S_has_simple_extra_args): Likewise.
3617 (views::_Join::_S_has_simple_call_op): Likewise.
3618 (views::_Split): Document why we don't define
3619 _S_has_simple_extra_args to true for this adaptor.
3620 (views::_Common::_S_has_simple_call_op): Define to true.
3621 (views::_Reverse::_S_has_simple_call_op): Likewise.
3622 (views::_Elements::_S_has_simple_call_op): Likewise.
3623 * testsuite/std/ranges/adaptors/100577.cc: New test.
3625 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
3629 * include/bits/hashtable_policy.h (_Hashtable_ebo_helper):
3630 Value-initialize subobject.
3631 * testsuite/23_containers/unordered_map/allocator/default_init.cc:
3633 * testsuite/23_containers/unordered_set/allocator/default_init.cc:
3636 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
3639 * testsuite/23_containers/unordered_map/96088.cc: Adjust
3640 expected number of allocations.
3641 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
3643 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
3645 * doc/xml/manual/status_cxxis29124.xml: Improve punctuation.
3646 * doc/xml/manual/status_cxxtr1.xml: Likewise.
3647 * doc/xml/manual/status_cxxtr24733.xml: Likewise.
3648 * doc/html/*: Regenerate.
3650 2021-06-01 Patrick Palka <ppalka@redhat.com>
3653 * testsuite/23_containers/deque/allocator/default_init.cc,
3654 testsuite/23_containers/forward_list/allocator/default_init.cc,
3655 testsuite/23_containers/list/allocator/default_init.cc,
3656 testsuite/23_containers/map/allocator/default_init.cc,
3657 testsuite/23_containers/set/allocator/default_init.cc,
3658 testsuite/23_containers/vector/allocator/default_init.cc,
3659 testsuite/23_containers/vector/bool/allocator/default_init.cc:
3662 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
3664 * testsuite/23_containers/unordered_map/96088.cc: Change
3665 effective target to c++17.
3666 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
3668 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
3670 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Only test
3671 isblank for C++11 and later.
3673 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
3676 * include/bits/ranges_base.h (ranges::advance(iter, n, sentinel)):
3677 Fix return value for no-op case.
3678 * testsuite/24_iterators/range_operations/advance.cc: Test
3679 return values of three-argument overload.
3681 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
3684 * python/Makefile.am: Use archive name for printer hook if no
3685 dynamic library name is available.
3686 * python/Makefile.in: Regenerate.
3688 2021-05-30 Gerald Pfeifer <gerald@pfeifer.com>
3690 * doc/xml/manual/abi.xml: Remove dead reference to "Intel
3691 Compilers for Linux: Compatibility with GNU Compilers" article.
3692 * doc/html/manual/abi.html: Regenerate.
3694 2021-05-26 François Dumont <fdumont@gcc.gnu.org>
3696 * include/debug/formatter.h
3697 (_Error_formatter::_Parameter::_Named): New.
3698 (_Error_formatter::_Parameter::_Type): Inherit latter.
3699 (_Error_formatter::_Parameter::_M_integer): Likewise.
3700 (_Error_formatter::_Parameter::_M_string): Likewise.
3701 * src/c++11/debug.cc: Include <cstring>.
3702 (_Print_func_t): New.
3703 (print_raw(PrintContext&, const char*, ptrdiff_t)): New.
3704 (print_word): Use '%.*s' format in fprintf to render only expected number of chars.
3705 (pretty_print(PrintContext&, const char*, _Print_func_t)): New.
3706 (print_type): Rename in...
3707 (print_type_info): ...this. Use pretty_print.
3708 (print_address, print_integer): New.
3709 (print_named_name, print_iterator_constness, print_iterator_state): New.
3710 (print_iterator_seq_type): New.
3711 (print_named_field, print_type_field, print_instance_field, print_iterator_field): New.
3712 (print_field): Use latters.
3713 (print_quoted_named_name, print_type_type, print_type, print_instance): New.
3714 (print_string(PrintContext&, const char*, const _Parameter*, size_t)):
3715 Change signature to...
3716 (print_string(PrintContext&, const char*, ptrdiff_t, const _Parameter*, size_t)):
3717 ...this and adapt. Remove intermediate buffer to render input string.
3718 (print_string(PrintContext&, const char*, ptrdiff_t)): New.
3720 2021-05-26 Jonathan Wakely <jwakely@redhat.com>
3723 * include/bits/ranges_base.h (advance, distance, next, prev):
3724 Replace function templates with function objects.
3725 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
3726 Adjust for changes to function objects.
3727 * testsuite/std/ranges/adaptors/elements.cc: Add using
3728 declarations for names from namespace ranges.
3729 * testsuite/std/ranges/adaptors/transform.cc: Likewise.
3730 * testsuite/24_iterators/range_operations/100768.cc: New test.
3732 2021-05-24 François Dumont <fdumont@gcc.gnu.org>
3735 * include/bits/hashtable_policy.h (_Select2nd): New.
3736 (_NodeBuilder<>): New.
3737 (_ReuseOrAllocNode<>::operator()): Use variadic template args.
3738 (_AllocNode<>::operator()): Likewise.
3739 * include/bits/hashtable.h
3740 (_Hashtable<>::__node_builder_t): New.
3741 (_Hashtable<>::_M_insert_unique<>(_Kt&&, _Arg&&, const _NodeGenerator&)):
3743 (_Hashtable<>::_S_forward_key): New.
3744 (_Hashtable<>::_M_insert): Use latter.
3745 (_Hashtable<>::_M_insert(const_iterator, _Arg&&, const _NodeGenerator&, false_type)):
3746 Instantiate node first, compute hash code second.
3747 * testsuite/23_containers/unordered_map/96088.cc: New test.
3748 * testsuite/23_containers/unordered_multimap/96088.cc: New test.
3749 * testsuite/23_containers/unordered_multiset/96088.cc: New test.
3750 * testsuite/23_containers/unordered_set/96088.cc: New test.
3751 * testsuite/util/replacement_memory_operators.h
3752 (counter::_M_increment): New.
3753 (counter::_M_decrement): New.
3754 (counter::reset()): New.
3756 2021-05-24 Patrick Palka <ppalka@redhat.com>
3759 * include/std/ranges (__detail::__non_propagating_cache): Move
3760 definition up to before that of _CachedPosition. Make base
3761 class _Optional_base protected instead of private. Add const
3762 overload for operator*.
3763 (__detail::_CachedPosition): Rewrite the partial specialization
3764 for forward ranges as a derived class of __non_propagating_cache.
3765 Remove the size constraint on the partial specialization for
3766 random access ranges. Add copy/move/copy-assignment/move-assignment
3767 members to the offset partial specialization for random
3768 access ranges that propagate the cached value but additionally
3769 invalidate it in the source object on move.
3770 * testsuite/std/ranges/adaptors/100479.cc: New test.
3772 2021-05-24 Jonathan Wakely <jwakely@redhat.com>
3774 * testsuite/25_algorithms/inplace_merge/constrained.cc: Qualify
3775 call to ranges::next.
3776 * testsuite/25_algorithms/is_sorted/constrained.cc: Likewise.
3777 * testsuite/25_algorithms/is_sorted_until/constrained.cc:
3779 * testsuite/25_algorithms/swap_ranges/1.cc: Qualify call to
3782 2021-05-21 Patrick Palka <ppalka@redhat.com>
3785 * include/std/ranges (drop_while_view::begin): Assert the
3786 precondition added by LWG 3490.
3788 2021-05-21 Patrick Palka <ppalka@redhat.com>
3791 * include/std/ranges (iota_view::_Sentinel::_M_distance_from):
3792 Split out this member function from ...
3793 (iota_view::_Sentinel::operator-): ... here, for sake of access
3795 * testsuite/std/ranges/iota/iota_view.cc (test05): New test.
3797 2021-05-20 Jonathan Wakely <jwakely@redhat.com>
3799 * include/bits/random.tcc (__representable_as_double)
3800 (__p1_representable_as_double): Add "" to static asserts.
3802 2021-05-20 Jonathan Wakely <jwakely@redhat.com>
3805 * include/bits/c++config (__glibcxx_assert_1): Rename to ...
3806 (__glibcxx_constexpr_assert): ... this.
3807 (__glibcxx_assert_impl): Use __glibcxx_constexpr_assert.
3808 (__glibcxx_assert): Define as either __glibcxx_constexpr_assert
3809 or __glibcxx_assert_impl.
3810 (__glibcxx_assert_2): Remove
3811 * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): Use
3812 __glibcxx_constexpr_assert instead of __glibcxx_assert_1.
3813 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
3814 Adjust expected error.
3815 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
3817 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
3820 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
3822 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
3824 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
3826 * testsuite/23_containers/span/back_neg.cc: Likewise.
3827 * testsuite/23_containers/span/front_neg.cc: Likewise.
3828 * testsuite/23_containers/span/index_op_neg.cc: Likewise.
3830 2021-05-20 Patrick Palka <ppalka@redhat.com>
3833 * include/bits/stl_iterator.h (reverse_iterator::difference_type):
3834 In C++20 mode, define in terms of iter_difference_t as per P0896R4.
3835 (reverse_iterator::reference): Likewise, but with iter_reference_t.
3836 (reverse_iterator::value_type): Likewise, but with iter_value_t.
3837 * testsuite/std/ranges/adaptors/reverse.cc (test08): New test.
3838 * testsuite/24_iterators/reverse_iterator/100639.cc: New test.
3840 2021-05-20 Joern Rennecke <joern.rennecke@riscy-ip.com>
3843 * include/std/charconv (to_chars): Hide the overloads for
3844 floating-point types for 16 bit targets.
3845 * src/c++17/floating_to_chars.cc: Don't compile for 16 bit targets.
3846 * testsuite/20_util/to_chars/double.cc: Run this test only on
3848 * testsuite/20_util/to_chars/float.cc: Likewise.
3849 * testsuite/20_util/to_chars/long_double.cc: Likewise.
3851 2021-05-18 Patrick Palka <ppalka@redhat.com>
3854 * include/std/ranges (elements_view::_Sentinel::operator-): Use
3855 _M_distance_from in the other operator- overload too.
3856 * testsuite/std/ranges/adaptors/elements.cc (test06): Augment test.
3858 2021-05-18 Thomas Schwinge <thomas@codesourcery.com>
3860 * testsuite/lib/prune.exp: Add note about 'dg-note'.
3862 2021-05-18 Patrick Palka <ppalka@redhat.com>
3865 * include/std/ranges (__box::__box): Use non-list-initialization
3866 in member initializer list of in-place constructor of the
3867 partial specialization for semiregular types.
3868 (__box::operator->): Use std::__addressof.
3869 * testsuite/std/ranges/adaptors/detail/semiregular_box.cc
3871 * testsuite/std/ranges/single_view.cc (test04): New test.
3873 2021-05-18 Patrick Palka <ppalka@redhat.com>
3876 * include/std/ranges (reverse_view::_S_needs_cached_begin):
3877 Set to true if the underlying non-common random-access range
3878 doesn't have a sized sentinel.
3880 2021-05-18 Patrick Palka <ppalka@redhat.com>
3883 * include/std/ranges (elements_view::_Iterator): Also befriend
3885 (elements_view::_Sentinel::_M_equal): Templatize.
3886 (elements_view::_Sentinel::_M_distance_from): Split out from ...
3887 (elements_view::_Sentinel::operator-): ... here. Depend on
3888 _Base2 instead of _Base in the return type.
3889 * testsuite/std/ranges/adaptors/elements.cc (test06, test07):
3892 2021-05-17 Thomas Rodgers <rodgert@twrodgers.com>
3894 * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): loop
3895 until value change observed.
3896 (__waiter_base::_M_laundered): New member.
3897 (__waiter_base::_M_notify): Check _M_laundered to determine
3898 whether to wake one or all.
3899 (__detail::__atomic_compare): Return true if call to
3900 __builtin_memcmp() == 0.
3901 (__waiter_base::_S_do_spin_v): Adjust predicate.
3902 * testsuite/29_atomics/atomic/wait_notify/100334.cc: New
3905 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
3908 * include/experimental/bits/fs_path.h (__is_constructible_from):
3909 Test construction from a const lvalue, not an rvalue.
3910 * testsuite/27_io/filesystem/path/construct/100630.cc: New test.
3911 * testsuite/experimental/filesystem/path/construct/100630.cc:
3914 2021-05-17 Antony Polukhin <antoshkka@gmail.com>
3917 * include/bits/locale_facets.h (ctype<basic_string<C,T,A>>):
3918 Declare (but do not define) partial specialization.
3919 * testsuite/22_locale/ctype/is/string/89728_neg.cc: New test.
3921 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
3923 * include/std/thread (jthread::_S_create): Fix static assert
3925 * testsuite/30_threads/jthread/95989.cc: Re-enable test.
3926 * testsuite/30_threads/jthread/jthread.cc: Do not require
3927 pthread effective target.
3928 * testsuite/30_threads/jthread/2.cc: Moved to...
3929 * testsuite/30_threads/jthread/version.cc: ...here.
3931 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
3933 * doc/Makefile.am: Simplify doxygen recipes and use --latex_cmd.
3934 * doc/Makefile.in: Regenerate.
3935 * doc/doxygen/user.cfg.in (LATEX_CMD_NAME): Add placeholder
3937 * scripts/run_doxygen (print_usage): Always print to stdout and
3939 (fail): New function for exiting on error.
3940 (parse_options): Handle --latex_cmd. Do not treat --help the
3941 same as errors. Simplify handling of required arguments.
3943 2021-05-12 Jonathan Wakely <jwakely@redhat.com>
3945 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
3946 Increase dg-timeout-factor to 4. Fix -Wunused-parameter
3947 warnings. Replace bitwise AND with logical AND in loop
3949 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
3950 Replace bitwise AND with logical AND in loop condition.
3951 * testsuite/util/pstl/test_utils.h: Remove unused parameter
3954 2021-05-11 Patrick Palka <ppalka@redhat.com>
3956 * src/c++17/ryu/LOCAL_PATCHES: Update.
3957 * src/c++17/ryu/ryu_generic_128.h: Remove extern "C".
3958 Remove declarations for never-defined functions.
3959 * testsuite/20_util/to_chars/4.cc: New test.
3961 2021-05-11 Jonathan Wakely <jwakely@redhat.com>
3963 * testsuite/20_util/headers/memory/synopsis.cc: Define C++98
3964 alternative for macro.
3965 * testsuite/20_util/shared_ptr/creation/99006.cc: Add effective
3967 * testsuite/25_algorithms/copy/debug/99402.cc: Avoid C++11
3970 2021-05-11 Jonathan Wakely <jwakely@redhat.com>
3972 * include/bits/allocator.h (allocator<void>) [C++20]: Add
3973 missing noexcept to constructor. Restore missing POCMA and
3974 is_always_equal_traits.
3975 [C++17]: Make construct and destroy members private and
3976 declare allocator_traits as a friend.
3977 * include/bits/memoryfwd.h (allocator_traits): Declare.
3978 * include/ext/malloc_allocator.h (malloc_allocator::allocate):
3979 Add nodiscard attribute. Add static assertion for LWG 3307.
3980 * include/ext/new_allocator.h (new_allocator::allocate): Add
3981 static assertion for LWG 3307.
3982 * testsuite/20_util/allocator/void.cc: Check that converting
3983 constructor is noexcept. Check for propagation traits and
3984 size_type and difference_type. Check that pointer and
3985 const_pointer are gone in C++20.
3987 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3989 * include/std/stop_token: Remove TODO comment.
3991 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3993 * include/bits/shared_ptr_base.h (__shared_count(unique_ptr&&)):
3994 Initialize a non-reference deleter from an rvalue, as per LWG
3996 (__shared_ptr::_UniqCompatible): Add missing constraint.
3997 * testsuite/20_util/shared_ptr/cons/lwg3548.cc: New test.
3998 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc: Check
4001 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4003 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Remove
4004 -std=gnu++17 from dg-options directive.
4005 * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc:
4007 * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc:
4009 * testsuite/17_intro/headers/c++2017/operator_names.cc:
4011 * testsuite/17_intro/headers/c++2017/parallel_mode.cc: Likewise.
4012 * testsuite/17_intro/headers/c++2017/stdc++.cc: Likewise.
4013 * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
4015 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Likewise.
4016 * testsuite/18_support/byte/81076.cc: Likewise.
4017 * testsuite/18_support/byte/global_neg.cc: Likewise.
4018 * testsuite/18_support/byte/ops.cc: Likewise.
4019 * testsuite/18_support/byte/requirements.cc: Likewise.
4020 * testsuite/18_support/headers/cfloat/values_c++17.cc: Likewise.
4021 * testsuite/18_support/launder/1.cc: Likewise.
4022 * testsuite/18_support/launder/nodiscard.cc: Likewise.
4023 * testsuite/18_support/launder/requirements.cc: Likewise.
4024 * testsuite/18_support/launder/requirements_neg.cc: Likewise.
4025 * testsuite/18_support/new_aligned.cc: Likewise.
4026 * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
4028 * testsuite/19_diagnostics/error_code/is_error_code_v.cc:
4030 * testsuite/19_diagnostics/error_condition/hash.cc: Likewise.
4031 * testsuite/20_util/addressof/requirements/constexpr.cc:
4033 * testsuite/20_util/as_const/1.cc: Likewise.
4034 * testsuite/20_util/as_const/rvalue_neg.cc: Likewise.
4035 * testsuite/20_util/bind/83427.cc: Likewise.
4036 * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
4037 * testsuite/20_util/bool_constant/requirements.cc: Likewise.
4038 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
4040 * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
4042 * testsuite/20_util/duration_cast/rounding.cc: Likewise.
4043 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
4045 * testsuite/20_util/from_chars/1_neg.cc: Likewise.
4046 * testsuite/20_util/from_chars/requirements.cc: Likewise.
4047 * testsuite/20_util/function/91456.cc: Likewise.
4048 * testsuite/20_util/function/cons/deduction.cc: Likewise.
4049 * testsuite/20_util/function_objects/83607.cc: Likewise.
4050 * testsuite/20_util/function_objects/invoke/59768.cc: Likewise.
4051 * testsuite/20_util/function_objects/mem_fn/80478.cc: Likewise.
4052 * testsuite/20_util/function_objects/not_fn/1.cc: Likewise.
4053 * testsuite/20_util/function_objects/not_fn/87538.cc: Likewise.
4054 * testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc:
4056 * testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc:
4058 * testsuite/20_util/has_unique_object_representations/value.cc:
4060 * testsuite/20_util/hash/nullptr.cc: Likewise.
4061 * testsuite/20_util/in_place/requirements.cc: Likewise.
4062 * testsuite/20_util/is_aggregate/incomplete_neg.cc: Likewise.
4063 * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
4065 * testsuite/20_util/is_aggregate/requirements/typedefs.cc:
4067 * testsuite/20_util/is_aggregate/value.cc: Likewise.
4068 * testsuite/20_util/is_invocable/83395.cc: Likewise.
4069 * testsuite/20_util/is_invocable/91456.cc: Likewise.
4070 * testsuite/20_util/is_invocable/requirements/explicit_instantiation.cc:
4072 * testsuite/20_util/is_invocable/requirements/typedefs.cc:
4074 * testsuite/20_util/is_invocable/value.cc: Likewise.
4075 * testsuite/20_util/is_literal_type/deprecated-1z.cc: Likewise.
4076 * testsuite/20_util/is_nothrow_constructible/94003.cc: Likewise.
4077 * testsuite/20_util/is_nothrow_invocable/83395.cc: Likewise.
4078 * testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation.cc:
4080 * testsuite/20_util/is_nothrow_invocable/requirements/typedefs.cc: Likewise.
4081 * testsuite/20_util/is_nothrow_invocable/value.cc: Likewise.
4082 * testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc:
4084 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
4086 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
4087 * testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc:
4089 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
4091 * testsuite/20_util/is_nothrow_swappable_with/value.cc:
4093 * testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc:
4095 * testsuite/20_util/is_swappable/requirements/typedefs.cc:
4097 * testsuite/20_util/is_swappable/value.cc: Likewise.
4098 * testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc:
4100 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc:
4102 * testsuite/20_util/is_swappable_with/value.cc: Likewise.
4103 * testsuite/20_util/logical_traits/83134.cc: Likewise.
4104 * testsuite/20_util/logical_traits/requirements/explicit_instantiation.cc:
4106 * testsuite/20_util/logical_traits/requirements/typedefs.cc:
4108 * testsuite/20_util/logical_traits/value.cc: Likewise.
4109 * testsuite/20_util/pair/cons/deduction.cc: Likewise.
4110 * testsuite/20_util/pair/swap_cxx17.cc: Likewise.
4111 * testsuite/20_util/ratio/requirements/ratio_equal_v.cc:
4113 * testsuite/20_util/reference_wrapper/83427.cc: Likewise.
4114 * testsuite/20_util/reference_wrapper/deduction.cc: Likewise.
4115 * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
4116 * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
4117 * testsuite/20_util/shared_ptr/requirements/weak_type.cc:
4119 * testsuite/20_util/time_point/arithmetic/constexpr.cc:
4121 * testsuite/20_util/time_point_cast/rounding.cc: Likewise.
4122 * testsuite/20_util/to_chars/3.cc: Likewise.
4123 * testsuite/20_util/to_chars/chars_format.cc: Likewise.
4124 * testsuite/20_util/to_chars/lwg3266.cc: Likewise.
4125 * testsuite/20_util/to_chars/requirements.cc: Likewise.
4126 * testsuite/20_util/tuple/78939.cc: Likewise.
4127 * testsuite/20_util/tuple/apply/1.cc: Likewise.
4128 * testsuite/20_util/tuple/apply/2.cc: Likewise.
4129 * testsuite/20_util/tuple/cons/deduction.cc: Likewise.
4130 * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
4131 * testsuite/20_util/tuple/make_from_tuple/2.cc: Likewise.
4132 * testsuite/20_util/tuple/swap_cxx17.cc: Likewise.
4133 * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
4134 * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: Likewise.
4135 * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
4137 * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
4138 * testsuite/20_util/void_t/1.cc: Likewise.
4139 * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
4140 * testsuite/24_iterators/container_access.cc: Likewise.
4141 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc:
4143 * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc:
4145 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
4147 * testsuite/24_iterators/range_access/range_access_cpp17_neg.cc:
4149 * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
4150 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc:
4152 * testsuite/26_numerics/headers/cmath/hypot.cc: Likewise.
4153 * testsuite/26_numerics/headers/cmath/special_functions_global.cc:
4155 * testsuite/26_numerics/lcm/1.cc: Likewise.
4156 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
4157 * testsuite/26_numerics/valarray/deduction.cc: Likewise.
4158 * testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc:
4160 * testsuite/27_io/manipulators/standard/char/quoted_sv.cc:
4162 * testsuite/27_io/manipulators/standard/wchar_t/quoted_sv.cc:
4164 * testsuite/27_io/types/4.cc: Likewise.
4165 * testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise.
4166 * testsuite/libstdc++-prettyprinters/91997.cc: Likewise.
4167 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
4169 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4171 * testsuite/20_util/function_objects/searchers.cc: Remove
4172 -std=gnu++17 from dg-options directive.
4173 * testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc:
4175 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
4177 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc:
4179 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94831.cc:
4181 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc:
4183 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
4185 * testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc:
4187 * testsuite/25_algorithms/clamp/1.cc: Likewise.
4188 * testsuite/25_algorithms/clamp/2.cc: Likewise.
4189 * testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
4190 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc:
4192 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/pod.cc:
4194 * testsuite/25_algorithms/for_each/for_each_n.cc: Likewise.
4195 * testsuite/25_algorithms/for_each/for_each_n_debug.cc:
4197 * testsuite/25_algorithms/sample/1.cc: Likewise.
4198 * testsuite/25_algorithms/sample/2.cc: Likewise.
4199 * testsuite/25_algorithms/sample/3.cc: Likewise.
4200 * testsuite/25_algorithms/sample/81221.cc: Likewise.
4201 * testsuite/25_algorithms/search/searcher.cc: Likewise.
4202 * testsuite/26_numerics/exclusive_scan/1.cc: Likewise.
4203 * testsuite/26_numerics/inclusive_scan/1.cc: Likewise.
4204 * testsuite/26_numerics/reduce/1.cc: Likewise.
4205 * testsuite/26_numerics/reduce/2.cc: Likewise.
4206 * testsuite/26_numerics/transform_exclusive_scan/1.cc: Likewise.
4207 * testsuite/26_numerics/transform_inclusive_scan/1.cc: Likewise.
4208 * testsuite/26_numerics/transform_reduce/1.cc: Likewise.
4210 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4212 * testsuite/23_containers/array/cons/deduction.cc: Remove
4213 -std=gnu++17 from dg-options directive.
4214 * testsuite/23_containers/array/cons/deduction_neg.cc: Likewise.
4215 * testsuite/23_containers/array/element_access/constexpr_c++17.cc:
4217 * testsuite/23_containers/array/requirements/constexpr_iter.cc:
4219 * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
4221 * testsuite/23_containers/deque/cons/deduction.cc: Likewise.
4222 * testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc:
4224 * testsuite/23_containers/forward_list/cons/deduction.cc:
4226 * testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc:
4228 * testsuite/23_containers/list/cons/deduction.cc: Likewise.
4229 * testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc:
4231 * testsuite/23_containers/map/cons/deduction.cc: Likewise.
4232 * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
4233 * testsuite/23_containers/map/modifiers/insert/83226.cc:
4235 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
4237 * testsuite/23_containers/map/modifiers/merge.cc: Likewise.
4238 * testsuite/23_containers/map/modifiers/try_emplace/1.cc:
4240 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
4241 * testsuite/23_containers/multimap/modifiers/extract.cc:
4243 * testsuite/23_containers/multimap/modifiers/merge.cc: Likewise.
4244 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
4245 * testsuite/23_containers/multiset/modifiers/extract.cc:
4247 * testsuite/23_containers/multiset/modifiers/merge.cc: Likewise.
4248 * testsuite/23_containers/priority_queue/deduction.cc: Likewise.
4249 * testsuite/23_containers/queue/deduction.cc: Likewise.
4250 * testsuite/23_containers/queue/members/emplace_cxx17_return.cc:
4252 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
4253 * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
4254 * testsuite/23_containers/set/modifiers/merge.cc: Likewise.
4255 * testsuite/23_containers/set/modifiers/node_swap.cc: Likewise.
4256 * testsuite/23_containers/stack/deduction.cc: Likewise.
4257 * testsuite/23_containers/stack/members/emplace_cxx17_return.cc:
4259 * testsuite/23_containers/unordered_map/cons/deduction.cc:
4261 * testsuite/23_containers/unordered_map/modifiers/extract.cc:
4263 * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
4265 * testsuite/23_containers/unordered_map/modifiers/merge.cc:
4267 * testsuite/23_containers/unordered_map/modifiers/try_emplace.cc:
4269 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
4271 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
4273 * testsuite/23_containers/unordered_multimap/modifiers/merge.cc:
4275 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
4277 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
4279 * testsuite/23_containers/unordered_multiset/modifiers/merge.cc:
4281 * testsuite/23_containers/unordered_set/cons/deduction.cc:
4283 * testsuite/23_containers/unordered_set/modifiers/extract.cc:
4285 * testsuite/23_containers/unordered_set/modifiers/merge.cc:
4287 * testsuite/23_containers/vector/bool/emplace_cxx17_return.cc:
4289 * testsuite/23_containers/vector/cons/89164_c++17.cc: Likewise.
4290 * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
4291 * testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc:
4294 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4296 * testsuite/21_strings/basic_string/79162.cc: Remove
4297 -std=gnu++17 from dg-options directive.
4298 * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
4299 * testsuite/21_strings/basic_string/cons/char/79162.cc:
4301 * testsuite/21_strings/basic_string/cons/char/86138.cc:
4303 * testsuite/21_strings/basic_string/cons/char/9.cc: Likewise.
4304 * testsuite/21_strings/basic_string/cons/char/deduction.cc:
4306 * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc:
4308 * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
4309 * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc:
4311 * testsuite/21_strings/basic_string/cons/wchar_t/86138.cc:
4313 * testsuite/21_strings/basic_string/cons/wchar_t/9.cc: Likewise.
4314 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
4316 * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
4318 * testsuite/21_strings/basic_string/hash/hash.cc: Likewise.
4319 * testsuite/21_strings/basic_string/lwg2758.cc: Likewise.
4320 * testsuite/21_strings/basic_string/lwg2946.cc: Likewise.
4321 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
4323 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
4325 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
4327 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
4329 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
4331 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
4333 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
4335 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
4337 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
4339 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
4341 * testsuite/21_strings/basic_string/operations/data/char/2.cc:
4343 * testsuite/21_strings/basic_string/operations/data/char/86169.cc:
4345 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc:
4347 * testsuite/21_strings/basic_string/operations/find/char/5.cc:
4349 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
4351 * testsuite/21_strings/basic_string/operators/char/5.cc:
4353 * testsuite/21_strings/basic_string/operators/wchar_t/5.cc:
4355 * testsuite/21_strings/basic_string_view/capacity/1.cc:
4357 * testsuite/21_strings/basic_string_view/capacity/empty_neg.cc:
4359 * testsuite/21_strings/basic_string_view/cons/char/1.cc:
4361 * testsuite/21_strings/basic_string_view/cons/char/2.cc:
4363 * testsuite/21_strings/basic_string_view/cons/char/3.cc:
4365 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
4367 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
4369 * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc:
4371 * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc:
4373 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
4375 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
4377 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
4379 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
4381 * testsuite/21_strings/basic_string_view/element_access/char/constexpr.cc:
4383 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
4385 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
4387 * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
4389 * testsuite/21_strings/basic_string_view/element_access/char/front_back_constexpr.cc:
4391 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
4393 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
4395 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
4397 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
4399 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr.cc:
4401 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
4403 * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
4405 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
4407 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
4409 * testsuite/21_strings/basic_string_view/include.cc: Likewise.
4410 * testsuite/21_strings/basic_string_view/inserters/94051.cc:
4412 * testsuite/21_strings/basic_string_view/inserters/char/1.cc:
4414 * testsuite/21_strings/basic_string_view/inserters/char/2.cc:
4416 * testsuite/21_strings/basic_string_view/inserters/char/3.cc:
4418 * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
4420 * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
4422 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
4424 * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
4426 * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
4428 * testsuite/21_strings/basic_string_view/literals/types.cc:
4430 * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
4432 * testsuite/21_strings/basic_string_view/literals/values.cc:
4434 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
4436 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
4438 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
4440 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
4442 * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
4444 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
4446 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
4448 * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
4450 * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
4452 * testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc:
4454 * testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc:
4456 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
4458 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
4460 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc:
4462 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
4464 * testsuite/21_strings/basic_string_view/operations/copy/char/2.cc:
4466 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
4468 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc:
4470 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
4472 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
4474 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
4476 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
4478 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
4480 * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
4482 * testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc:
4484 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
4486 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
4488 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
4490 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
4492 * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
4494 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
4496 * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
4498 * testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc:
4500 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
4502 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
4504 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
4506 * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
4508 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
4510 * testsuite/21_strings/basic_string_view/operations/substr/char/83511.cc:
4512 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
4514 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/83511.cc:
4516 * testsuite/21_strings/basic_string_view/operators/char/2.cc:
4518 * testsuite/21_strings/basic_string_view/operators/char/89446.cc:
4520 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
4522 * testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc:
4524 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
4526 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
4528 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
4530 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
4532 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
4534 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
4536 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc:
4538 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
4540 * testsuite/21_strings/basic_string_view/requirements/traits_neg.cc:
4542 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
4544 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
4545 * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
4546 * testsuite/21_strings/char_traits/requirements/char/99181.cc:
4548 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
4550 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4552 * testsuite/20_util/memory_resource/1.cc: Remove -std=gnu++17
4553 from dg-options directive.
4554 * testsuite/20_util/memory_resource/2.cc: Likewise.
4555 * testsuite/20_util/monotonic_buffer_resource/1.cc: Likewise.
4556 * testsuite/20_util/monotonic_buffer_resource/93208.cc:
4558 * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
4560 * testsuite/20_util/monotonic_buffer_resource/deallocate.cc:
4562 * testsuite/20_util/monotonic_buffer_resource/release.cc:
4564 * testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc:
4566 * testsuite/20_util/polymorphic_allocator/1.cc: Likewise.
4567 * testsuite/20_util/polymorphic_allocator/construct_pair.cc:
4569 * testsuite/20_util/polymorphic_allocator/resource.cc: Likewise.
4570 * testsuite/20_util/polymorphic_allocator/select.cc: Likewise.
4571 * testsuite/20_util/synchronized_pool_resource/allocate.cc:
4573 * testsuite/20_util/synchronized_pool_resource/allocate_single.cc:
4575 * testsuite/20_util/synchronized_pool_resource/cons.cc:
4577 * testsuite/20_util/synchronized_pool_resource/cons_single.cc:
4579 * testsuite/20_util/synchronized_pool_resource/is_equal.cc:
4581 * testsuite/20_util/synchronized_pool_resource/multithreaded.cc:
4583 * testsuite/20_util/synchronized_pool_resource/options.cc:
4585 * testsuite/20_util/synchronized_pool_resource/release.cc:
4587 * testsuite/20_util/synchronized_pool_resource/release_single.cc:
4589 * testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc:
4591 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
4593 * testsuite/20_util/unsynchronized_pool_resource/cons.cc:
4595 * testsuite/20_util/unsynchronized_pool_resource/is_equal.cc:
4597 * testsuite/20_util/unsynchronized_pool_resource/options.cc:
4599 * testsuite/20_util/unsynchronized_pool_resource/release.cc:
4601 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
4603 * testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise.
4604 * testsuite/23_containers/deque/types/pmr_typedefs_debug.cc:
4606 * testsuite/23_containers/forward_list/pmr_typedefs.cc:
4608 * testsuite/23_containers/forward_list/pmr_typedefs_debug.cc:
4610 * testsuite/23_containers/list/pmr_typedefs.cc: Likewise.
4611 * testsuite/23_containers/list/pmr_typedefs_debug.cc: Likewise.
4612 * testsuite/23_containers/map/pmr_typedefs.cc: Likewise.
4613 * testsuite/23_containers/map/pmr_typedefs_debug.cc: Likewise.
4614 * testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise.
4615 * testsuite/23_containers/multimap/pmr_typedefs_debug.cc:
4617 * testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise.
4618 * testsuite/23_containers/multiset/pmr_typedefs_debug.cc:
4620 * testsuite/23_containers/set/pmr_typedefs.cc: Likewise.
4621 * testsuite/23_containers/set/pmr_typedefs_debug.cc: Likewise.
4622 * testsuite/23_containers/unordered_map/pmr_typedefs.cc:
4624 * testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc:
4626 * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc:
4628 * testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc:
4630 * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc:
4632 * testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc:
4634 * testsuite/23_containers/unordered_set/pmr_typedefs.cc:
4636 * testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc:
4638 * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise.
4639 * testsuite/23_containers/vector/types/pmr_typedefs_debug.cc:
4641 * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
4643 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4645 * testsuite/29_atomics/atomic/69769.cc: Remove -std=gnu++17 from
4647 * testsuite/29_atomics/atomic/is_always_lock_free.cc:
4648 * testsuite/29_atomics/atomic/requirements/typedefs.cc:
4649 * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc:
4650 * testsuite/29_atomics/atomic_integral/requirements/typedefs.cc:
4651 * testsuite/30_threads/lock_guard/cons/deduction.cc: Likewise.
4652 * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
4653 * testsuite/30_threads/scoped_lock/cons/deduction.cc: Likewise.
4654 * testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc:
4656 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc:
4658 * testsuite/30_threads/shared_lock/70766.cc: Likewise.
4659 * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
4660 * testsuite/30_threads/shared_mutex/cons/assign_neg.cc:
4662 * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise.
4663 * testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
4665 * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
4666 * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
4667 * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
4668 * testsuite/30_threads/unique_lock/cons/deduction.cc: Likewise.
4670 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4672 * testsuite/20_util/any/assign/1.cc: Remove -std=gnu++17 from
4673 dg-options directive.
4674 * testsuite/20_util/any/assign/2.cc: Likewise.
4675 * testsuite/20_util/any/assign/emplace.cc: Likewise.
4676 * testsuite/20_util/any/assign/exception.cc: Likewise.
4677 * testsuite/20_util/any/assign/self.cc: Likewise.
4678 * testsuite/20_util/any/cons/1.cc: Likewise.
4679 * testsuite/20_util/any/cons/2.cc: Likewise.
4680 * testsuite/20_util/any/cons/90415.cc: Likewise.
4681 * testsuite/20_util/any/cons/92156.cc: Likewise.
4682 * testsuite/20_util/any/cons/aligned.cc: Likewise.
4683 * testsuite/20_util/any/cons/explicit.cc: Likewise.
4684 * testsuite/20_util/any/cons/in_place.cc: Likewise.
4685 * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
4686 * testsuite/20_util/any/make_any.cc: Likewise.
4687 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
4688 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
4689 * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
4690 * testsuite/20_util/any/misc/swap.cc: Likewise.
4691 * testsuite/20_util/any/modifiers/1.cc: Likewise.
4692 * testsuite/20_util/any/modifiers/83658.cc: Likewise.
4693 * testsuite/20_util/any/modifiers/92156.cc: Likewise.
4694 * testsuite/20_util/any/observers/type.cc: Likewise.
4695 * testsuite/20_util/any/requirements.cc: Likewise.
4696 * testsuite/20_util/any/typedefs.cc: Likewise.
4697 * testsuite/20_util/optional/77288.cc: Likewise.
4698 * testsuite/20_util/optional/84601.cc: Likewise.
4699 * testsuite/20_util/optional/assignment/1.cc: Likewise.
4700 * testsuite/20_util/optional/assignment/2.cc: Likewise.
4701 * testsuite/20_util/optional/assignment/3.cc: Likewise.
4702 * testsuite/20_util/optional/assignment/4.cc: Likewise.
4703 * testsuite/20_util/optional/assignment/5.cc: Likewise.
4704 * testsuite/20_util/optional/assignment/6.cc: Likewise.
4705 * testsuite/20_util/optional/assignment/7.cc: Likewise.
4706 * testsuite/20_util/optional/assignment/8.cc: Likewise.
4707 * testsuite/20_util/optional/assignment/9.cc: Likewise.
4708 * testsuite/20_util/optional/bad_access.cc: Likewise.
4709 * testsuite/20_util/optional/cons/77727.cc: Likewise.
4710 * testsuite/20_util/optional/cons/85642.cc: Likewise.
4711 * testsuite/20_util/optional/cons/copy.cc: Likewise.
4712 * testsuite/20_util/optional/cons/deduction.cc: Likewise.
4713 * testsuite/20_util/optional/cons/default.cc: Likewise.
4714 * testsuite/20_util/optional/cons/move.cc: Likewise.
4715 * testsuite/20_util/optional/cons/trivial.cc: Likewise.
4716 * testsuite/20_util/optional/cons/value.cc: Likewise.
4717 * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
4718 * testsuite/20_util/optional/constexpr/cons/default.cc:
4720 * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
4721 * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
4722 * testsuite/20_util/optional/constexpr/make_optional.cc:
4724 * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
4725 * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
4726 * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
4727 * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
4728 * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
4729 * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
4730 * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
4731 * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
4732 * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
4733 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
4734 * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
4735 * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
4736 * testsuite/20_util/optional/hash.cc: Likewise.
4737 * testsuite/20_util/optional/in_place.cc: Likewise.
4738 * testsuite/20_util/optional/make_optional.cc: Likewise.
4739 * testsuite/20_util/optional/nullopt.cc: Likewise.
4740 * testsuite/20_util/optional/observers/1.cc: Likewise.
4741 * testsuite/20_util/optional/observers/2.cc: Likewise.
4742 * testsuite/20_util/optional/observers/3.cc: Likewise.
4743 * testsuite/20_util/optional/observers/4.cc: Likewise.
4744 * testsuite/20_util/optional/observers/5.cc: Likewise.
4745 * testsuite/20_util/optional/observers/6.cc: Likewise.
4746 * testsuite/20_util/optional/relops/1.cc: Likewise.
4747 * testsuite/20_util/optional/relops/2.cc: Likewise.
4748 * testsuite/20_util/optional/relops/3.cc: Likewise.
4749 * testsuite/20_util/optional/relops/4.cc: Likewise.
4750 * testsuite/20_util/optional/relops/5.cc: Likewise.
4751 * testsuite/20_util/optional/relops/6.cc: Likewise.
4752 * testsuite/20_util/optional/relops/7.cc: Likewise.
4753 * testsuite/20_util/optional/requirements.cc: Likewise.
4754 * testsuite/20_util/optional/swap/1.cc: Likewise.
4755 * testsuite/20_util/optional/swap/2.cc: Likewise.
4756 * testsuite/20_util/optional/typedefs.cc: Likewise.
4757 * testsuite/20_util/variant/80165.cc: Likewise.
4758 * testsuite/20_util/variant/85183.cc: Likewise.
4759 * testsuite/20_util/variant/86874.cc: Likewise.
4760 * testsuite/20_util/variant/87431.cc: Likewise.
4761 * testsuite/20_util/variant/87619.cc: Likewise.
4762 * testsuite/20_util/variant/91807.cc: Likewise.
4763 * testsuite/20_util/variant/any.cc: Likewise.
4764 * testsuite/20_util/variant/compile.cc: Likewise.
4765 * testsuite/20_util/variant/deduction.cc: Likewise.
4766 * testsuite/20_util/variant/exception_safety.cc: Likewise.
4767 * testsuite/20_util/variant/hash.cc: Likewise.
4768 * testsuite/20_util/variant/index_type.cc: Likewise.
4769 * testsuite/20_util/variant/relops/89851.cc: Likewise.
4770 * testsuite/20_util/variant/relops/90008.cc: Likewise.
4771 * testsuite/20_util/variant/run.cc: Likewise.
4772 * testsuite/20_util/variant/visit.cc: Likewise.
4774 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4776 * testsuite/27_io/basic_filebuf/open/char/path.cc: Remove
4777 -std=gnu++17 from dg-options directive.
4778 * testsuite/27_io/basic_fstream/cons/char/path.cc: Likewise.
4779 * testsuite/27_io/basic_fstream/open/char/path.cc: Likewise.
4780 * testsuite/27_io/basic_ifstream/cons/char/path.cc: Likewise.
4781 * testsuite/27_io/basic_ifstream/open/char/path.cc: Likewise.
4782 * testsuite/27_io/basic_ofstream/cons/char/path.cc: Likewise.
4783 * testsuite/27_io/basic_ofstream/open/char/path.cc: Likewise.
4784 * testsuite/27_io/filesystem/directory_entry/86597.cc: Likewise.
4785 * testsuite/27_io/filesystem/directory_entry/lwg3171.cc:
4787 * testsuite/27_io/filesystem/file_status/1.cc: Likewise.
4788 * testsuite/27_io/filesystem/filesystem_error/cons.cc: Likewise.
4789 * testsuite/27_io/filesystem/filesystem_error/copy.cc: Likewise.
4790 * testsuite/27_io/filesystem/iterators/91067.cc: Likewise.
4791 * testsuite/27_io/filesystem/iterators/caching.cc: Likewise.
4792 * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
4794 * testsuite/27_io/filesystem/iterators/pop.cc: Likewise.
4795 * testsuite/27_io/filesystem/iterators/recursion_pending.cc:
4797 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
4799 * testsuite/27_io/filesystem/operations/absolute.cc: Likewise.
4800 * testsuite/27_io/filesystem/operations/all.cc: Likewise.
4801 * testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
4802 * testsuite/27_io/filesystem/operations/copy.cc: Likewise.
4803 * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
4804 * testsuite/27_io/filesystem/operations/create_directories.cc:
4806 * testsuite/27_io/filesystem/operations/create_directory.cc:
4808 * testsuite/27_io/filesystem/operations/create_symlink.cc:
4810 * testsuite/27_io/filesystem/operations/current_path.cc:
4812 * testsuite/27_io/filesystem/operations/equivalent.cc: Likewise.
4813 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
4814 * testsuite/27_io/filesystem/operations/file_size.cc: Likewise.
4815 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
4816 * testsuite/27_io/filesystem/operations/last_write_time.cc:
4818 * testsuite/27_io/filesystem/operations/permissions.cc:
4820 * testsuite/27_io/filesystem/operations/proximate.cc: Likewise.
4821 * testsuite/27_io/filesystem/operations/read_symlink.cc:
4823 * testsuite/27_io/filesystem/operations/relative.cc: Likewise.
4824 * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
4825 * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
4826 * testsuite/27_io/filesystem/operations/rename.cc: Likewise.
4827 * testsuite/27_io/filesystem/operations/resize_file.cc:
4829 * testsuite/27_io/filesystem/operations/space.cc: Likewise.
4830 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
4831 * testsuite/27_io/filesystem/operations/symlink_status.cc:
4833 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
4835 * testsuite/27_io/filesystem/operations/weakly_canonical.cc:
4837 * testsuite/27_io/filesystem/path/append/path.cc: Likewise.
4838 * testsuite/27_io/filesystem/path/append/source.cc: Likewise.
4839 * testsuite/27_io/filesystem/path/assign/assign.cc: Likewise.
4840 * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
4841 * testsuite/27_io/filesystem/path/compare/compare.cc: Likewise.
4842 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
4843 * testsuite/27_io/filesystem/path/compare/path.cc: Likewise.
4844 * testsuite/27_io/filesystem/path/compare/strings.cc: Likewise.
4845 * testsuite/27_io/filesystem/path/concat/92853.cc: Likewise.
4846 * testsuite/27_io/filesystem/path/concat/94063.cc: Likewise.
4847 * testsuite/27_io/filesystem/path/concat/path.cc: Likewise.
4848 * testsuite/27_io/filesystem/path/concat/strings.cc: Likewise.
4849 * testsuite/27_io/filesystem/path/construct/80762.cc: Likewise.
4850 * testsuite/27_io/filesystem/path/construct/90281.cc: Likewise.
4851 * testsuite/27_io/filesystem/path/construct/90634.cc: Likewise.
4852 * testsuite/27_io/filesystem/path/construct/copy.cc: Likewise.
4853 * testsuite/27_io/filesystem/path/construct/default.cc:
4855 * testsuite/27_io/filesystem/path/construct/format.cc: Likewise.
4856 * testsuite/27_io/filesystem/path/construct/locale.cc: Likewise.
4857 * testsuite/27_io/filesystem/path/construct/range.cc: Likewise.
4858 * testsuite/27_io/filesystem/path/construct/string_view.cc:
4860 * testsuite/27_io/filesystem/path/decompose/extension.cc:
4862 * testsuite/27_io/filesystem/path/decompose/filename.cc:
4864 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
4866 * testsuite/27_io/filesystem/path/decompose/relative_path.cc:
4868 * testsuite/27_io/filesystem/path/decompose/root_directory.cc:
4870 * testsuite/27_io/filesystem/path/decompose/root_name.cc:
4872 * testsuite/27_io/filesystem/path/decompose/root_path.cc:
4874 * testsuite/27_io/filesystem/path/decompose/stem.cc: Likewise.
4875 * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc:
4877 * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise.
4878 * testsuite/27_io/filesystem/path/generation/normal.cc:
4880 * testsuite/27_io/filesystem/path/generation/normal2.cc:
4882 * testsuite/27_io/filesystem/path/generation/proximate.cc:
4884 * testsuite/27_io/filesystem/path/generation/relative.cc:
4886 * testsuite/27_io/filesystem/path/generic/94242.cc: Likewise.
4887 * testsuite/27_io/filesystem/path/generic/generic_string.cc:
4889 * testsuite/27_io/filesystem/path/generic/utf.cc: Likewise.
4890 * testsuite/27_io/filesystem/path/generic/wchar_t.cc: Likewise.
4891 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
4892 * testsuite/27_io/filesystem/path/itr/components.cc: Likewise.
4893 * testsuite/27_io/filesystem/path/itr/traversal.cc: Likewise.
4894 * testsuite/27_io/filesystem/path/modifiers/clear.cc: Likewise.
4895 * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
4897 * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc:
4899 * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
4901 * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
4903 * testsuite/27_io/filesystem/path/modifiers/swap.cc: Likewise.
4904 * testsuite/27_io/filesystem/path/native/alloc.cc: Likewise.
4905 * testsuite/27_io/filesystem/path/native/string-char8_t.cc:
4907 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
4908 * testsuite/27_io/filesystem/path/nonmember/append.cc: Likewise.
4909 * testsuite/27_io/filesystem/path/nonmember/cmp.cc: Likewise.
4910 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
4912 * testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
4913 * testsuite/27_io/filesystem/path/query/empty_neg.cc:
4914 * testsuite/27_io/filesystem/path/query/has_extension.cc:
4916 * testsuite/27_io/filesystem/path/query/has_filename.cc:
4918 * testsuite/27_io/filesystem/path/query/has_parent_path.cc:
4920 * testsuite/27_io/filesystem/path/query/has_relative_path.cc:
4922 * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
4924 * testsuite/27_io/filesystem/path/query/has_root_name.cc:
4926 * testsuite/27_io/filesystem/path/query/has_root_path.cc:
4928 * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
4929 * testsuite/27_io/filesystem/path/query/is_absolute.cc:
4931 * testsuite/27_io/filesystem/path/query/is_relative.cc:
4933 * testsuite/experimental/filesystem/path/construct/string_view.cc:
4936 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4938 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc:
4939 Remove -std=gnu++17 from dg-options.
4940 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
4942 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc:
4944 * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc:
4946 * testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise.
4947 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
4949 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
4951 * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc:
4953 * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc:
4955 * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
4957 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
4959 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
4961 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
4963 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc:
4965 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc:
4967 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc:
4969 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
4971 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
4973 * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc:
4975 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
4977 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc:
4979 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
4981 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
4983 * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc:
4985 * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc:
4987 * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc:
4989 * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc:
4991 * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc:
4993 * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc:
4995 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
4997 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
4999 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc:
5001 * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc:
5003 * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
5005 * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc:
5007 * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
5009 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc:
5011 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
5013 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
5015 * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
5017 * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: Likewise.
5018 * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc:
5020 * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
5022 * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
5024 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc:
5026 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
5028 * testsuite/25_algorithms/pstl/alg_sorting/set.cc: Likewise.
5029 * testsuite/25_algorithms/pstl/alg_sorting/sort.cc: Likewise.
5030 * testsuite/25_algorithms/pstl/feature_test-2.cc: Likewise.
5031 * testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise.
5032 * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise.
5033 * testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise.
5034 * testsuite/25_algorithms/pstl/feature_test.cc: Likewise.
5035 * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc:
5037 * testsuite/26_numerics/pstl/numeric_ops/reduce.cc: Likewise.
5038 * testsuite/26_numerics/pstl/numeric_ops/scan.cc: Likewise.
5039 * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
5041 * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc:
5044 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
5046 * testsuite/20_util/scoped_allocator/69293_neg.cc: Add dg-error
5047 for additional errors in C++20.
5048 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
5050 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
5051 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
5053 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
5055 * testsuite/20_util/variant/compile.cc: Rename 'any' to avoid
5056 clash with std::any.
5058 2021-05-07 Jonathan Wakely <jwakely@redhat.com>
5060 * include/std/istream (__rvalue_stream_extraction_t): Replace
5061 use of __rval_streamable.
5062 * include/std/ostream (__rvalue_stream_insertion_t): Likewise.
5063 (__rval_streamable): Remove.
5064 (_Require_derived_from_ios_base, __derived_from_ios_base): New
5065 helper for checking constraints.
5066 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Fix
5067 reference to the wrong subclause of the standard.
5068 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
5070 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
5072 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
5074 * testsuite/27_io/basic_ostream/inserters_other/char/99692.cc:
5076 * testsuite/27_io/filesystem/path/io/dr2989.cc: Adjust pruned
5079 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
5081 * include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
5082 Improve static_assert messages.
5083 * testsuite/25_algorithms/copy/58982.cc: Adjust expected output.
5084 * testsuite/25_algorithms/copy_n/58982.cc: Likewise.
5086 2021-05-06 Patrick Palka <ppalka@redhat.com>
5088 * include/std/ranges (filter_view::_Iterator::base): Make the
5089 const& overload unconstrained and return a const reference as
5090 per LWG 3533. Make unconditionally noexcept.
5091 (transform_view::_Iterator::base): Likewise.
5092 (elements_view::_Iterator::base): Likewise.
5094 2021-05-06 Patrick Palka <ppalka@redhat.com>
5096 * include/bits/stl_iterator.h (move_iterator::base): Make the
5097 const& overload unconstrained and return a const reference as
5098 per LWG 3391. Make unconditionally noexcept.
5099 (counted_iterator::base): Likewise.
5100 * testsuite/24_iterators/move_iterator/lwg3391.cc: New test.
5101 * testsuite/24_iterators/move_iterator/move_only.cc: Adjust
5102 has_member_base concept to decay-copy the result of base().
5104 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
5106 * include/std/type_traits (remove_cvref_t): Define in terms of
5108 * testsuite/20_util/remove_cvref/value.cc: Check alias.
5110 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
5113 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
5115 * include/std/charconv (__from_chars_alnum): Pass unsigned
5116 char to std::isdigit.
5118 2021-05-05 Patrick Palka <ppalka@redhat.com>
5120 * include/bits/ranges_util.h (enable_borrowed_range<subrange>):
5121 Remove constraints on this partial specialization.
5122 * include/std/ranges (enable_borrowed_range<iota_view>):
5125 2021-05-05 Patrick Palka <ppalka@redhat.com>
5127 * include/std/ranges (transform_view::_Iterator::iter_swap):
5128 Remove as per LWG 3520.
5129 (join_view::_Iterator::iter_swap): Add indirectly_swappable
5130 constraint as per LWG 3517.
5132 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
5134 * testsuite/20_util/function_objects/invoke/3.cc: Check feature
5136 * testsuite/20_util/function_objects/invoke/version.cc: New test.
5138 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
5140 * include/std/charconv (__from_chars_alnum): Pass unsigned
5141 char to std::isdigit.
5143 2021-05-05 Corentin Gay <gay@adacore.com>
5145 * acinclude.m4: Add VxWorks-specific case for the
5146 configuration of ctypes.
5147 * configure: Regenerate.
5148 * config/locale/vxworks/ctype_members.cc: Add VxWorks-specific
5150 * config/os/vxworks/ctype_base.h: Adjust for VxWorks7+.
5151 * config/os/vxworks/ctype_configure_char.cc: Likewise.
5152 * config/os/vxworks/ctype_inline.h: Likewise.
5153 * testsuite/28_regex/traits/char/isctype.cc: Defines
5154 NEWLINE_IN_CLASS_BLANK if the target is VxWorks.
5155 * testsuite/28_regex/traits/wchar_t/isctype.cc: Likewise.
5157 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
5159 * include/std/future (promise::set_value): Check for existence
5160 of shared state before dereferncing it.
5161 (promise::set_exception, promise::set_value_at_thread_exit)
5162 (promise::set_exception_at_thread_exit): Likewise.
5163 (promise<R&>::set_value, promise<R&>::set_exception)
5164 (promise<R&>::set_value_at_thread_exit)
5165 (promise<R&>::set_exception_at_thread_exit): Likewise.
5166 (promise<void>::set_value, promise<void>::set_exception)
5167 (promise<void>::set_value_at_thread_exit)
5168 (promise<void>::set_exception_at_thread_exit): Likewise.
5169 * testsuite/30_threads/promise/members/at_thread_exit2.cc:
5170 Remove unused variable.
5172 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
5174 * include/bits/basic_string.h (basic_string(const CharT*, const A&)):
5175 Do not do arithmetic on null pointer.
5177 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
5179 * include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
5180 (find_key_pointer(key_const_reference, false_type))
5181 (find_key_pointer(key_const_reference, true_type)): Do not
5182 dereference null pointer.
5184 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
5186 * testsuite/20_util/from_chars/3.cc: Use unsigned type to avoid
5188 * testsuite/24_iterators/reverse_iterator/2.cc: Do not add
5189 non-zero value to null pointer.
5190 * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc:
5191 Use past-the-end iterator for result.
5192 * testsuite/25_algorithms/move_backward/69478.cc: Likewise.
5193 * testsuite/25_algorithms/move_backward/93872.cc: Likewise.
5195 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
5198 * include/std/variant (__get_t): New alias template yielding the
5199 return type of std::get<N> on a variant.
5200 (__visit_result_t): New alias template yielding the result of
5202 (__same_types): Move into namespace __detail::__variant.
5203 (__check_visitor_results): Likewise. Use __invoke_result_t and
5205 (__check_visitor_result): Remove.
5206 (visit): Use __visit_result_t for return type.
5207 * testsuite/20_util/variant/100384.cc: New test.
5209 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
5211 * acinclude.m4 (GLIBCXX_ENABLE_INT128_FLOAT128): Remove
5212 checks for __int128 and rename to GLIBCXX_ENABLE_FLOAT128.
5213 * config.h.in: Regenerate.
5214 * configure: Regenerate.
5215 * configure.ac: Adjust to use GLIBCXX_ENABLE_FLOAT128.
5216 * include/bits/random.h (_Select_uint_least_t<s, 1>):
5217 Use __SIZEOF_INT128__ to decide whether to use __int128.
5218 * include/std/charconv (__to_chars_unsigned_type): Likewise.
5220 2021-05-03 Gerald Pfeifer <gerald@pfeifer.com>
5222 * doc/xml/manual/ctype.xml: Move unix.org reference to https.
5223 * doc/html/manual/facets.html: Regenerate.
5225 2021-04-30 Patrick Palka <ppalka@redhat.com>
5227 * include/std/ranges (__detail::__non_propating_cache): Define
5229 (join_view): Remove constraints on the value and reference types
5230 of the wrapped iterator type as per P2328.
5231 (join_view::_Iterator::_M_satisfy): Adjust as per P2328.
5232 (join_view::_Iterator::operator++): Likewise.
5233 (join_view::_M_inner): Use __non_propating_cache as per P2328.
5234 Remove now-redundant use of __maybe_present_t.
5235 * testsuite/std/ranges/adaptors/join.cc: Include <array>.
5238 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
5240 * include/bits/basic_string.h (__cpp_lib_constexpr_string):
5241 Only define for C++17 and later.
5242 * include/std/version (__cpp_lib_semaphore): Fix condition
5243 to match the one in <semaphore>.
5245 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
5247 * acinclude.m4 (GLIBCXX_CHECK_INT64_T): Delete.
5248 * config.h.in: Regenerate.
5249 * configure: Regenerate.
5250 * configure.ac: Do not use GLIBCXX_CHECK_INT64_T.
5251 * include/bits/postypes.h: Remove include of <stdint.h> and
5252 definition/undefinition of the __STDC_LIMIT_MACROS and
5253 __STDC_CONSTANT_MACROS macros.
5254 (streamoff): Use __INT64_TYPE__ if defined.
5256 2021-04-30 Patrick Palka <ppalka@redhat.com>
5258 * include/std/ranges (split_view::_InnerIter::operator++):
5259 Depend on _Base instead of _Vp directly, as per LWG 3532.
5261 2021-04-30 Patrick Palka <ppalka@redhat.com>
5263 * include/bits/ranges_util.h (subrange::subrange): Avoid
5264 list-initialization in delegating constructor.
5265 * include/std/ranges (single_view): Replace implicit guide
5266 with explicit deduction guide that decays its argument.
5267 (_Single::operator()): Avoid CTAD when constructing the
5269 (_Iota::operator()): Avoid list-initialization.
5270 (__detail::__can_filter_view, _Filter::operator()): Likewise.
5271 (__detail::__can_transform_view, _Transform::operator()): Likewise.
5272 (take_view::begin): Likewise.
5273 (__detail::__can_take_view, _Take::operator()): Likewise.
5274 (__detail::__can_take_while_view, _TakeWhile::operator()): Likewise.
5275 (__detail::__can_drop_view, _Drop::operator()): Likewise.
5276 (__detail::__can_drop_while_view, _DropWhile::operator()): Likewise.
5277 (split_view::split_view): Use views::single when initializing
5279 (__detail::__can_split_view, _Split::operator()): Avoid
5280 list-initialization.
5281 (_Counted::operator()): Likewise.
5282 * testsuite/std/ranges/p2367.cc: New test.
5284 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
5287 * include/bits/basic_ios.tcc (basic_ios::copyfmt): use
5289 * include/bits/basic_string.tcc (basic_string::swap)
5290 (basic_string::assign): Likewise.
5291 * include/bits/deque.tcc (deque::operator=(const deque&)):
5293 * include/bits/stl_tree.h (_Rb_tree::operator=(const * _Rb_tree&)):
5295 * include/bits/vector.tcc (vector::operator=(const vector&)):
5298 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
5300 * include/std/istream (operator>>(Istream&&, x&)): Simplify, as
5302 * include/std/ostream (operator<<(Ostream&&, const x&)):
5304 * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc:
5305 Adjust dg-error pattern.
5306 * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc:
5308 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Define
5309 is_extractable trait to replace std::__is_extractable. Make it
5310 work with rvalue streams as well as lvalues, to replace f() and
5311 g() helper functions.
5312 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
5314 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
5315 Define is_insertable trait to replace std::__is_insertable. Make
5316 it work with rvalue streams as well as lvalues, to replace f()
5317 and g() helper functions.
5318 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
5320 * testsuite/27_io/filesystem/path/io/dr2989.cc: Prune additional
5321 errors from new constraints.
5322 * testsuite/27_io/rvalue_streams-2.cc: Remove PR 80675 checks,
5323 which are no longer expected to compile.
5324 * testsuite/27_io/rvalue_streams.cc: Adjust existing test.
5325 Verify LWG 1203 changes.
5327 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
5330 * include/experimental/socket (__basic_socket_impl::set_option)
5331 (__basic_socket_impl::get_option) [!_GLIBCXX_HAVE_SYS_SOCKET_H]:
5332 Just set error code.
5333 * testsuite/experimental/net/socket/socket_base.cc: CHeck
5334 for <sys/socket.h> not <socket.h>.
5336 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
5341 * testsuite/experimental/net/internet/address/v4/comparisons.cc:
5342 Use new effective-target keyword.
5343 * testsuite/experimental/net/internet/address/v4/cons.cc:
5345 * testsuite/experimental/net/internet/address/v4/creation.cc:
5347 * testsuite/experimental/net/internet/address/v4/members.cc:
5349 * testsuite/experimental/net/internet/address/v6/members.cc:
5351 * testsuite/experimental/net/internet/resolver/base.cc:
5353 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
5355 * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
5357 * testsuite/experimental/net/internet/socket/opt.cc:
5359 * testsuite/experimental/net/internet/tcp.cc:
5361 * testsuite/experimental/net/internet/udp.cc:
5363 * testsuite/lib/libstdc++.exp (check_effective_target_net_ts_ip):
5364 New proc to check net_ts_ip et.
5366 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5369 * testsuite/20_util/pair/requirements/structural.cc: New test.
5371 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5373 * include/bits/stl_pair.h (pair) [__cplusplus > 202002]: Add
5374 new definitions for constructors and assignment operators using
5375 concepts for constraints.
5376 * testsuite/20_util/pair/cons/99957.cc: Disable for C++20 and
5378 * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust
5379 expected error messages to also match C++20 errors.
5381 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5384 * include/bits/stl_pair.h (_PCC::_MoveCopyPair, _PCC::_CopyMovePair):
5385 Combine and replace with ...
5386 (_PCC::_DeprConsPair): New SFINAE helper function.
5387 (pair): Merge preprocessor blocks so that all C++03 members
5388 are defined together at the end.
5389 (pair::pair(const _T1&, _U2&&), pair::pair(_U1&&, const _T2&)):
5390 Replace _T1 and _T2 parameters with __null_ptr_constant and
5392 * testsuite/20_util/pair/40925.cc: Use nullptr instead of 0.
5393 * testsuite/20_util/pair/cons/explicit_construct.cc: Likewise.
5394 * testsuite/20_util/pair/cons/99957.cc: New test.
5396 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5398 * include/bits/basic_string.h (__cpp_lib_constexpr_string): Define.
5399 * include/std/version (__cpp_lib_constexpr_string): Define.
5400 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
5401 Check for __cpp_lib_constexpr_string.
5402 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
5404 * testsuite/21_strings/char_traits/requirements/version.cc: New test.
5406 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5408 * doc/Makefile.am (stamp-pdf-doxygen): Improve comment about
5409 dealing with errors. Use '@' to prevent shell command being
5411 * doc/Makefile.in: Regenerate.
5413 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5416 * include/bits/std_thread.h (thread::hardware_concurrency): Add
5417 missing noexcept to inline definition for non-gthreads targets.
5419 2021-04-28 Patrick Palka <ppalka@redhat.com>
5425 * include/bits/ranges_algo.h (__search_n_fn::operator()): Give
5426 the __value_comp lambda an explicit bool return type.
5427 (__is_permutation_fn::operator()): Give the __proj_scan local
5428 variable auto&& return type. Give the __comp_scan lambda an
5429 explicit bool return type.
5430 (__remove_fn::operator()): Give the __pred lambda an explicit
5432 (__partition_fn::operator()): Don't std::move __first twice
5433 when returning an empty subrange.
5434 (__min_fn::operator()): Don't std::move __comp.
5435 (__max_fn::operator()): Likewise.
5436 (__minmax_fn::operator()): Likewise.
5438 2021-04-27 Patrick Palka <ppalka@redhat.com>
5441 * include/std/ranges (join_view::_Iterator::operator++): Correct
5442 the return type of the lambda to avoid returning a copy of
5443 _M_parent->_M_inner.
5444 * testsuite/std/ranges/adaptors/join.cc (test10): New test.
5446 2021-04-27 Jakub Jelinek <jakub@redhat.com>
5449 2021-04-22 Jakub Jelinek <jakub@redhat.com>
5452 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
5454 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
5457 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
5459 * include/experimental/internet (address_v6::bytes_type): Adjust
5461 (basic_endpoint): Define _M_is_v6() to put all checks for
5462 AF_INET6 in one place.
5463 (basic_endpoint::resize): Simplify.
5464 (operator==(const tcp&, const tcp&)): Add constexpr and noexcept.
5465 (operator!=(const tcp&, const tcp&)): Likewise.
5466 (operator==(const udp&, const udp&)): Likewise.
5467 (operator!=(const udp&, const udp&)): Likewise.
5468 * testsuite/experimental/net/internet/tcp.cc: New test.
5469 * testsuite/experimental/net/internet/udp.cc: New test.
5471 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
5474 * include/experimental/internet (resolver_errc, resolver_category())
5475 (make_error_code, make_error_condition): Define unconditionally,
5476 only make enumerators and use of gai_strerror depend on the
5477 availability of <netdb.h>.
5478 (address_v4::to_string): Use correct constant for string length.
5479 (address_v4::to_string, address_v6::to_string): Define
5480 unconditionally, throw if unsupported.
5481 (make_address_v4, make_address_v6): Define unconditionally.
5482 Return an error if unsupported.
5483 (tcp, udp, v6_only, unicast::hops, multicast::*): Define
5485 * testsuite/experimental/net/internet/socket/opt.cc: Check for
5486 <netinet/in.h> and <netinet/tcp.h> before using types from
5489 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
5492 * include/experimental/internet (resolver_base::flags):
5493 Define overloaded operators as hidden friends.
5494 * include/experimental/socket (socket_base::message_flags):
5497 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
5499 * include/experimental/internet (tcp::no_delay, v6_only)
5500 (unicast::hops, multicast::hops, multicast::enable_loopback):
5501 Change access of base class and static data members. Add
5502 using-declaration for __socket_crtp::operator=(_Tp).
5503 (multicast::__mcastopt): New type.
5504 (multicast::join_group, multicast::leave_group): Derive from
5505 __mcastopt for common implementation.
5506 * include/experimental/socket: Add comment.
5507 * testsuite/experimental/net/internet/socket/opt.cc: New test.
5508 * testsuite/experimental/net/socket/socket_base.cc: Check for
5509 protected constructor/destructor of socket_base. Check for
5510 explicit constructors of socket option classes.
5512 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
5514 * include/experimental/bits/net.h (__socket_base): Add
5515 bool template parameter to allow BooleanSocketOption and
5516 IntegerSocketOption to have different __socket_base<int>
5518 (__socket_base<bool>): Adjust base class.
5519 (__socket_base<int>): Add partial specialization.
5520 (__socket_crtp::operator=(_Tp)): Add noexcept-specifier.
5521 * include/experimental/socket (socket_base::broadcast)
5522 (socket_base::debug, socket_base::do_not_route)
5523 (socket_base::keep_alive, socket_base::linger)
5524 (socket_base::out_of_band_inline)
5525 (socket_base::receive_buffer_size)
5526 (socket_base::receive_low_watermark)
5527 (socket_base::reuse_address, socket_base::send_buffer_size)
5528 (socket_base::send_low_watermark): Add using-declaration for
5529 __socket_crtp::operator=(_Tp).
5530 * testsuite/experimental/net/socket/socket_base.cc: Check
5531 properties of socket option types.
5533 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
5535 * include/experimental/internet (resolver_base::flags): Remove
5536 enumerators. Initialize constants directly with desired values.
5537 Make all operators constexpr and noexcept.
5538 * testsuite/experimental/net/internet/resolver/base.cc: Use
5539 __gnu_test::test_bitmask_values for bitmask type. Check
5540 construction and destruction is protected.
5542 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
5544 * include/bits/semaphore_base.h: Include <exception> and <errno.h>.
5546 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
5549 * include/experimental/internet (net::ip::make_error_code)
5550 (net::ip::make_error_condition, net::ip::make_network_v4)
5551 (net::ip::operator==(const udp&, const udp&)): Add 'inline'.
5553 2021-04-24 David Edelsohn <dje.gcc@gmail.com>
5555 * testsuite/lib/dg-options.exp (atomic_link_flags): New.
5556 (add_options_for_libatomic): Use atomic_link_flags.
5558 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
5561 * include/experimental/io_context (io_context): Define
5562 dummy_pollfd type so that most member functions still compile
5563 without <poll.h> and struct pollfd.
5565 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
5567 * include/experimental/io_context (io_context::async_wait): Add
5569 * include/experimental/socket (basic_socket::async_connect):
5570 Cast wait_type constant to int.
5571 (basic_datagram_socket::async_receive): Likewise.
5572 (basic_datagram_socket::async_receive_from): Likewise.
5573 (basic_datagram_socket::async_send): Likewise.
5574 (basic_datagram_socket::async_send_to): Likewise.
5575 (basic_stream_socket::async_receive): Likewise.
5576 (basic_stream_socket::async_send): Likewise. Use io_context
5577 parameter directly, instead of via an executor.
5578 (basic_socket_acceptor::async_accept): Likewise.
5580 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
5582 * include/experimental/socket (socket_base::shutdown_type):
5583 (socket_base::wait_type, socket_base::message_flags):
5584 Remove enumerators. Initialize constants directly with desired
5586 (socket_base::message_flags): Make all operators constexpr and
5588 * testsuite/util/testsuite_common_types.h (test_bitmask_values):
5590 * testsuite/experimental/net/socket/socket_base.cc: New test.
5592 2021-04-22 David Edelsohn <dje.gcc@gmail.com>
5594 * config/os/aix/atomicity.h: Delete.
5596 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
5598 * include/bits/atomic_timed_wait.h (__cond_wait_until_impl):
5599 Handle system_clock as well as steady_clock.
5600 * testsuite/30_threads/semaphore/try_acquire_for.cc: Re-enable.
5601 * testsuite/30_threads/semaphore/try_acquire_until.cc:
5604 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
5606 * testsuite/30_threads/semaphore/try_acquire_posix.cc: Add
5607 options for libatomic.
5609 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
5611 * config/os/gnu-linux/os_defines.h: Fix type in comment.
5613 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
5616 * include/bits/shared_ptr.h (allocate_shared): Assert that _Tp
5617 is not an array type.
5618 * include/bits/shared_ptr_base.h (__allocate_shared): Likewise.
5619 * testsuite/20_util/shared_ptr/creation/99006.cc: New test.
5621 2021-04-22 Thomas Rodgers <rodgert@twrodgers.com>
5623 * include/bits/atomic_wait.h: Always notify waiters in the
5624 case of 'bare' address notification.
5626 2021-04-22 Jakub Jelinek <jakub@redhat.com>
5629 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
5631 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
5634 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
5637 * include/bits/semaphore_base.h: Remove #error.
5638 * include/std/semaphore: Do not define anything unless one of
5639 the implementations is available.
5641 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
5643 * include/bits/semaphore_base.h: Always reload __old in
5644 __atomic_semaphore::_S_do_try_acquire().
5645 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
5648 2021-04-21 Philippe Blain <levraiphilippeblain@gmail.com>
5649 Jonathan Wakely <jwakely@redhat.com>
5652 * python/Makefile.am: Install libstdc++*-gdb.py more robustly.
5653 * python/Makefile.in: Regenerate.
5655 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
5657 * include/bits/semaphore_base.h: Add missing _M_try_acquire()
5658 member to __platform_wait.
5660 2021-04-21 Jonathan Wakely <jwakely@redhat.com>
5662 * include/std/latch: Replace tab characters in license text.
5663 * include/std/semaphore: Likewise.
5665 2021-04-21 Jakub Jelinek <jakub@redhat.com>
5668 * acinclude.m4: For POSIX semaphores AC_DEFINE HAVE_POSIX_SEMAPHORE
5669 rather than _GLIBCXX_HAVE_POSIX_SEMAPHORE.
5670 * configure: Regenerated.
5671 * config.h.in: Regenerated.
5673 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
5675 * testsuite/30_threads/semaphore/try_acquire_for.cc: Disable
5676 test for targets not using futexes for semaphores.
5677 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
5678 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
5679 Disable for all targets.
5681 2021-04-20 Thomas Rodgers <trodgers@redhat.com>
5683 * include/Makefile.am: Add new <bits/this_thread_sleep.h> header.
5684 * include/Makefile.in: Regenerate.
5685 * include/bits/this_thread_sleep.h: New file.
5686 * include/bits/atomic_base.h: Adjust all calls
5687 to __atomic_wait/__atomic_notify for new call signatures.
5688 * include/bits/atomic_timed_wait.h: Extensive rewrite.
5689 * include/bits/atomic_wait.h: Likewise.
5690 * include/bits/semaphore_base.h: Adjust all calls
5691 to __atomic_wait/__atomic_notify for new call signatures.
5692 * include/std/atomic: Likewise.
5693 * include/std/barrier: Likewise.
5694 * include/std/latch: Likewise.
5695 * include/std/semaphore: Likewise.
5696 * include/std/thread (this_thread::sleep_for)
5697 (this_thread::sleep_until): Move to new header.
5698 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Simplify
5700 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
5701 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
5702 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
5703 * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
5704 * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
5705 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Likewise.
5707 2021-04-20 Patrick Palka <ppalka@redhat.com>
5710 * include/bits/stl_iterator.h (__detail::__move_iter_cat):
5712 (move_iterator): Derive from the above in C++20 in order to
5713 conditionally define iterator_category as per P2259.
5714 (move_iterator::__base_cat): No longer used, so remove.
5715 (move_iterator::iterator_category): Remove in C++20.
5716 (__detail::__common_iter_use_postfix_proxy): Define.
5717 (common_iterator::_Proxy): Rename to ...
5718 (common_iterator:__arrow_proxy): ... this.
5719 (common_iterator::__postfix_proxy): Define as per P2259.
5720 (common_iterator::operator->): Adjust.
5721 (common_iterator::operator++): Adjust as per P2259.
5722 (iterator_traits<common_iterator>::_S_iter_cat): Define.
5723 (iterator_traits<common_iterator>::iterator_category): Change as
5725 (__detail::__counted_iter_value_type): Define.
5726 (__detail::__counted_iter_concept): Define.
5727 (__detail::__counted_iter_cat): Define.
5728 (counted_iterator): Derive from the above three classes in order
5729 to conditionally define value_type, iterator_concept and
5730 iterator category respectively as per P2259.
5731 (counted_iterator::operator->): Define as per P2259.
5732 (incrementable_traits<counted_iterator>): Remove as per P2259.
5733 (iterator_traits<counted_iterator>): Adjust as per P2259.
5734 * include/std/ranges (__detail::__iota_view_iter_cat): Define.
5735 (iota_view::_Iterator): Derive from the above in order to
5736 conditionally define iterator_category as per P2259.
5737 (iota_view::_S_iter_cat): Rename to ...
5738 (iota_view::_S_iter_concept): ... this.
5739 (iota_view::iterator_concept): Use it to apply LWG 3291 changes.
5740 (iota_view::iterator_category): Remove.
5741 (__detail::__filter_view_iter_cat): Define.
5742 (filter_view::_Iterator): Derive from the above in order to
5743 conditionally define iterator_category as per P2259.
5744 (filter_view::_Iterator): Move to struct __filter_view_iter_cat.
5745 (filter_view::_Iterator::iterator_category): Remove.
5746 (transform_view::_Base): Define.
5747 (transform_view::__iter_cat): Define.
5748 (transform_view::_Iterator): Derive from the above in order to
5749 conditionally define iterator_category as per P2259.
5750 (transform_view::_Iterator::_Base): Just alias
5751 transform_view::_Base.
5752 (transform_view::_Iterator::_S_iter_cat): Move to struct
5753 transform_view::__iter_cat.
5754 (transform_view::_Iterator::iterator_category): Remove.
5755 (transform_view::_Sentinel::_Base): Just alias
5756 transform_view::_Base.
5757 (join_view::_Base): Define.
5758 (join_view::_Outer_iter): Define.
5759 (join_view::_Inner_iter): Define.
5760 (join_view::_S_ref_is_glvalue): Define.
5761 (join_view::__iter_cat): Define.
5762 (join_view::_Iterator): Derive from it in order to conditionally
5763 define iterator_category as per P2259.
5764 (join_view::_Iterator::_Base): Just alias join_view::_Base.
5765 (join_view::_Iterator::_S_ref_is_glvalue): Just alias
5766 join_view::_S_ref_is_glvalue.
5767 (join_view::_Iterator::_S_iter_cat): Move to struct
5768 transform_view::__iter_cat.
5769 (join_view::_Iterator::_Outer_iter): Just alias
5770 join_view::_Outer_iter.
5771 (join_view::_Iterator::_Inner_iter): Just alias
5772 join_view::_Inner_iter.
5773 (join_view::_Iterator::iterator_category): Remove.
5774 (join_view::_Sentinel::_Base): Just alias join_view::_Base.
5775 (__detail::__split_view_outer_iter_cat): Define.
5776 (__detail::__split_view_inner_iter_cat): Define.
5777 (split_view::_Base): Define.
5778 (split_view::_Outer_iter): Derive from __split_view_outer_iter_cat
5779 in order to conditionally define iterator_category as per P2259.
5780 (split_view::_Outer_iter::iterator_category): Remove.
5781 (split_view::_Inner_iter): Derive from __split_view_inner_iter_cat
5782 in order to conditionally define iterator_category as per P2259.
5783 (split_view::_Inner_iter::_S_iter_cat): Move to
5784 __split_view_inner_iter_cat.
5785 (split_view::_Inner_iter::iterator_category): Remove.
5786 (elements_view::_Base): Define.
5787 (elements_view::__iter_cat): Define.
5788 (elements_view::_Iterator): Derive from the above in order to
5789 conditionall define iterator_category as per P2259.
5790 (elements_view::_Iterator::_Base): Just alias
5791 elements_view::_Base.
5792 (elements_view::_Iterator::_S_iter_concept)
5793 (elements_view::_Iterator::iterator_concept): Define as per
5795 (elements_view::_Iterator::iterator_category): Remove.
5796 (elements_view::_Sentinel::_Base): Just alias
5797 elements_view::_Base.
5798 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
5799 Adjust constraints on iterator_traits<counted_iterator>.
5800 * testsuite/std/ranges/p2259.cc: New test.
5802 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
5805 * include/std/charconv (__cpp_lib_to_chars): Define
5807 * include/std/version (__cpp_lib_to_chars): Likewise..
5808 * testsuite/20_util/from_chars/4.cc: Only check feature test
5809 macro, not _GLIBCXX_HAVE_USELOCALE.
5810 * testsuite/20_util/from_chars/5.cc: Likewise.
5811 * testsuite/20_util/from_chars/6.cc: Likewise.
5812 * testsuite/20_util/to_chars/long_double.cc: Likewise.
5814 2021-04-20 Jakub Jelinek <jakub@redhat.com>
5816 * testsuite/util/testsuite_abi.cc (compare_symbols): If any symbol
5817 versions with _IEEE128_ substring are found, set ieee_version_found
5818 to true. Ignore missing symbols with _IEEE128_ in version name if
5819 !ieee_version_found. Use i->first as version_name instead of
5820 i->second.version_name if the latter is empty.
5821 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
5823 2021-04-19 H.J. Lu <hjl.tools@gmail.com>
5825 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
5828 2021-04-17 Jakub Jelinek <jakub@redhat.com>
5830 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
5831 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
5833 2021-04-17 Jakub Jelinek <jakub@redhat.com>
5835 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
5836 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
5837 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
5838 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
5839 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
5840 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
5842 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
5844 * testsuite/lib/dg-options.exp (add_options_for_libatomic): Also
5845 add libatomic options for 32-bit sparc*-*-linux-gnu.
5847 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
5850 * libsupc++/Makefile.am: Add atomicity.cc here.
5851 * src/c++98/Makefile.am: Remove it from here.
5852 * libsupc++/Makefile.in: Regenerate.
5853 * src/c++98/Makefile.in: Regenerate.
5854 * testsuite/18_support/exception_ptr/96657.cc: New test.
5856 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
5859 * include/std/bit: Only include <ext/numeric_traits.h> for
5860 hosted build, use <limits> otherwise.
5862 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
5864 * doc/xml/manual/backwards_compatibility.xml: Remove porting
5865 notes for libg++ and libstdc++-v2, and bibliography.
5866 * doc/html/*: Regenerated.
5868 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
5871 * include/bits/ranges_util.h (__detail::__iterator_sentinel_pair):
5872 Remove helper concept.
5873 (subrange(_Pr), subrange(Pr, __make_unsigned_like<...>)): Remove
5874 deduction guides, as per LWG 3404.
5875 * testsuite/std/ranges/subrange/lwg3282_neg.cc: Check that class
5876 template argument deduction fails.
5878 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
5880 * testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc:
5881 Adjust expected error for C++20 mode.
5882 * testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc:
5885 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
5888 * testsuite/17_intro/headers/c++1998/49745.cc: Include all
5889 standard headers and XFAIL for effective-target c++20.
5891 2021-04-09 François Dumont <fdumont@gcc.gnu.org>
5894 * include/debug/helper_functions.h (__can_advance(_InputIterator,
5895 const std::pair<_Diff, _Distance_precision>&, int)): New.
5896 (__can_advance(const _Safe_iterator<>&,
5897 const std::pair<_Diff, _Distance_precision>&, int)): New.
5898 * include/debug/macros.h (__glibcxx_check_can_increment_dist): New,
5900 (__glibcxx_check_can_increment_range): Adapt to use latter.
5901 (__glibcxx_check_can_decrement_range): Likewise.
5902 * include/debug/safe_iterator.h
5903 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
5905 (__can_advance(const _Safe_iterator<>&,
5906 const std::pair<_Diff, _Distance_precision>&, int)): New.
5907 * include/debug/safe_iterator.tcc
5908 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
5910 (_Safe_iterator<>::_M_valid_range(const _Safe_iterator<>&,
5911 std::pair<difference_type, _Distance_precision>&, bool)): Adapt for
5913 (__copy_move_a): Adapt to use __glibcxx_check_can_increment_dist.
5914 (__copy_move_backward_a): Likewise.
5915 (__equal_aux): Likewise.
5916 * include/debug/stl_iterator.h (__can_advance(const std::reverse_iterator<>&,
5917 const std::pair<_Diff, _Distance_precision>&, int)): New.
5918 (__can_advance(const std::move_iterator<>&,
5919 const std::pair<_Diff, _Distance_precision>&, int)): New.
5920 * testsuite/25_algorithms/copy/debug/99402.cc: New test.
5922 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
5925 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()): Fix
5926 to be a valid constexpr function in C++11.
5927 * testsuite/23_containers/unordered_set/cons/99985.cc: New test.
5929 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
5931 * include/bits/fs_fwd.h: Fix doxygen group command.
5932 * include/bits/streambuf_iterator.h: Likewise.
5933 * include/bits/uses_allocator_args.h: Likewise.
5934 * include/std/memory: Likewise.
5935 * include/tr1/complex: Likewise.
5937 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
5939 * include/bits/basic_string.h: Tweak doxygen comment.
5941 2021-04-08 Patrick Palka <ppalka@redhat.com>
5943 * include/std/ranges (__detail::find): Define.
5944 (split_view::_OuterIter::operator++): Apply proposed resolution
5946 * testsuite/std/ranges/adaptors/split.cc (test10): New test.
5948 2021-04-08 Patrick Palka <ppalka@redhat.com>
5950 * include/std/ranges (__detail::find_if): Simplify.
5951 (__detail::find_if_not): Likewise.
5952 (__detail::min): Remove.
5953 (__detail::mismatch): Simplify.
5954 (take_view::size): Use std::min instead of __detail::min.
5956 2021-04-08 Patrick Palka <ppalka@redhat.com>
5958 * include/std/ranges (__detail::__returnable_element): New
5960 (elements_view): Use this concept in its constraints. Add
5961 missing private access specifier.
5962 (elements_view::_S_get_element): Define as per LWG 3502.
5963 (elements_view::operator*, elements_view::operator[]): Use
5965 (elements_view::operator++): Remove unnecessary constraint
5967 * testsuite/std/ranges/adaptors/elements.cc (test05): New test.
5969 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
5971 * doc/Makefile.am (stamp-pdf-doxygen): Also grep for
5972 out-of-memory error in log file.
5973 * doc/Makefile.in: Regenerate.
5975 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
5977 * configure: Regenerate.
5979 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
5981 * include/bits/random.h: Fix doxygen group commands.
5982 * include/bits/regex_constants.h: Likewise.
5983 * include/tr1/random.h: Likewise.
5985 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
5987 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()):
5988 New function to determine noexcept-specifier for move
5990 (_Hashtable): Use _S_nothrow_move() on move constructors.
5991 * testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc:
5992 Correct static assertion message.
5993 * testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc:
5995 * testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc:
5997 * testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc:
6000 2021-04-08 Patrick Palka <ppalka@redhat.com>
6003 * testsuite/20_util/to_chars/long_double.cc: Don't run the test
6004 on targets without a large long double. XFAIL the execution on
6005 targets with a non-conforming printf.
6007 2021-04-08 Patrick Palka <ppalka@redhat.com>
6010 * include/std/ranges (__adaptor::__maybe_refwrap): Remove.
6011 (__adaptor::__adaptor_invocable): New concept.
6012 (__adaptor::__adaptor_partial_app_viable): New concept.
6013 (__adaptor::_RangeAdaptorClosure): Rewrite, turning it into a
6014 non-template base class.
6015 (__adaptor::_RangeAdaptor): Rewrite, turning it into a CRTP base
6017 (__adaptor::_Partial): New class template that represents
6018 partial application of a range adaptor non-closure.
6019 (__adaptor::__pipe_invocable): New concept.
6020 (__adaptor::_Pipe): New class template.
6021 (__detail::__can_ref_view): New concept.
6022 (__detail::__can_subrange): New concept.
6023 (all): Replace the lambda here with ...
6024 (_All): ... this functor. Add appropriate constraints.
6025 (__detail::__can_filter_view): New concept.
6026 (filter, _Filter): As in all/_All.
6027 (__detail::__can_transform): New concept.
6028 (transform, _Transform): As in all/_All.
6029 (__detail::__can_take_view): New concept.
6030 (take, _Take): As in all/_All.
6031 (__detail::__can_take_while_view): New concept.
6032 (take_while, _TakeWhile): As in all/_All.
6033 (__detail::__can_drop_view): New concept.
6034 (drop, _Drop): As in all/_All.
6035 (__detail::__can_drop_while_view): New concept.
6036 (drop_while, _DropWhile): As in all/_All.
6037 (__detail::__can_join_view): New concept.
6038 (join, _Join): As in all/_All.
6039 (__detail::__can_split_view): New concept.
6040 (split, _Split): As in all/_All. Rename template parameter
6042 (__detail::__already_common): New concept.
6043 (__detail::__can_common_view): New concept.
6044 (common, _Common): As in all/_All.
6045 (__detail::__can_reverse_view): New concept.
6046 (reverse, _Reverse): As in all/_All.
6047 (__detail::__can_elements_view): New concept.
6048 (elements, _Elements): As in all/_All.
6049 (keys, values): Adjust.
6050 * testsuite/std/ranges/adaptors/99433.cc: New test.
6051 * testsuite/std/ranges/adaptors/all.cc: No longer expect that
6052 adding empty range adaptor closure objects to a pipeline doesn't
6053 increase the size of the pipeline.
6055 * testsuite/std/ranges/adaptors/common.cc (test03): New test.
6056 * testsuite/std/ranges/adaptors/drop.cc (test09): New test.
6057 * testsuite/std/ranges/adaptors/drop_while.cc (test04): New test.
6058 * testsuite/std/ranges/adaptors/elements.cc (test04): New test.
6059 * testsuite/std/ranges/adaptors/filter.cc (test06): New test.
6060 * testsuite/std/ranges/adaptors/join.cc (test09): New test.
6061 * testsuite/std/ranges/adaptors/p2281.cc: New test.
6062 * testsuite/std/ranges/adaptors/reverse.cc (test07): New test.
6063 * testsuite/std/ranges/adaptors/split.cc (test01, test04):
6066 * testsuite/std/ranges/adaptors/split_neg.cc (test01): Adjust
6067 expected error message.
6068 (test02): Likewise. Extend test.
6069 * testsuite/std/ranges/adaptors/take.cc (test06): New test.
6070 * testsuite/std/ranges/adaptors/take_while.cc (test05): New test.
6071 * testsuite/std/ranges/adaptors/transform.cc (test07, test08):
6074 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
6076 * include/std/string_view: Adjust Doxygen @file comment.
6078 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
6080 * include/std/type_traits (is_scoped_enum<T>): Constrain partial
6081 specialization to not match incomplete enum types. Use a
6082 requires-expression instead of instantiating is_convertible.
6083 (is_scoped_enum<const T>): Add as workaround for PR c++/99968.
6084 * testsuite/20_util/is_scoped_enum/value.cc: Check with
6085 incomplete types and opaque-enum-declarations.
6087 2021-04-07 Jonathan Wakely <jwakely@redhat.com>
6090 * src/c++17/fs_path.cc (path::_M_split_cmpts): Do not call
6091 non-const member on _M_pathname, to avoid copy-on-write.
6092 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
6093 Check construction from strings that might be shared.
6095 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
6097 * include/bits/move.h (forward, move, move_if_noexcept)
6098 (addressof): Add _GLIBCXX_NODISCARD.
6099 * include/bits/ranges_cmp.h (identity::operator()): Add
6100 nodiscard attribute.
6101 * include/c_global/cstddef (to_integer): Likewise.
6102 * include/std/bit (bit_cast): Likewise.
6103 * include/std/utility (as_const, to_underlying): Likewise.
6105 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
6107 * include/bits/move.h (forward): Change static_assert message
6108 to be unambiguous about what must be true.
6109 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
6110 * testsuite/20_util/forward/f_neg.cc: Likewise.
6112 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
6114 * include/bits/alloc_traits.h: Use markdown for code font.
6115 * include/bits/basic_string.h: Fix @param names.
6116 * include/bits/max_size_type.h: Remove period after @file.
6117 * include/bits/regex.h: Fix duplicate @retval names, and rename.
6118 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp: Add
6119 group open to match existing group close.
6120 * include/ext/pb_ds/priority_queue.hpp: Add blank line before group
6123 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
6125 * include/bits/atomic_base.h: Fix doxygen group close.
6126 * include/bits/basic_ios.h: Likewise.
6127 * include/bits/forward_list.h: Likewise.
6128 * include/bits/fs_dir.h: Likewise.
6129 * include/bits/fs_ops.h: Likewise.
6130 * include/bits/fs_path.h: Likewise.
6131 * include/bits/functional_hash.h: Likewise.
6132 * include/bits/gslice.h: Likewise.
6133 * include/bits/gslice_array.h: Likewise.
6134 * include/bits/hashtable_policy.h: Likewise.
6135 * include/bits/indirect_array.h: Likewise.
6136 * include/bits/locale_classes.h: Likewise.
6137 * include/bits/locale_facets.h: Likewise.
6138 * include/bits/locale_facets_nonio.h: Likewise.
6139 * include/bits/mask_array.h: Likewise.
6140 * include/bits/refwrap.h: Likewise.
6141 * include/bits/regex.h: Likewise.
6142 * include/bits/regex_automaton.h: Likewise.
6143 * include/bits/regex_compiler.h: Likewise.
6144 * include/bits/regex_constants.h: Likewise.
6145 * include/bits/regex_error.h: Likewise.
6146 * include/bits/regex_executor.h: Likewise.
6147 * include/bits/regex_scanner.h: Likewise.
6148 * include/bits/shared_ptr.h: Likewise.
6149 * include/bits/shared_ptr_atomic.h: Likewise.
6150 * include/bits/shared_ptr_base.h: Likewise.
6151 * include/bits/slice_array.h: Likewise.
6152 * include/bits/specfun.h: Likewise.
6153 * include/bits/std_function.h: Likewise.
6154 * include/bits/std_mutex.h: Likewise.
6155 * include/bits/stl_deque.h: Likewise.
6156 * include/bits/stl_iterator.h: Likewise.
6157 * include/bits/stl_iterator_base_types.h: Likewise.
6158 * include/bits/stl_map.h: Likewise.
6159 * include/bits/stl_multimap.h: Likewise.
6160 * include/bits/stl_multiset.h: Likewise.
6161 * include/bits/stl_numeric.h: Likewise.
6162 * include/bits/stl_pair.h: Likewise.
6163 * include/bits/stl_set.h: Likewise.
6164 * include/bits/stl_uninitialized.h: Likewise.
6165 * include/bits/stream_iterator.h: Likewise.
6166 * include/bits/streambuf_iterator.h: Likewise.
6167 * include/bits/unique_ptr.h: Likewise.
6168 * include/bits/unordered_map.h: Likewise.
6169 * include/bits/unordered_set.h: Likewise.
6170 * include/decimal/decimal: Likewise.
6171 * include/experimental/any: Likewise.
6172 * include/experimental/array: Likewise.
6173 * include/experimental/bits/fs_dir.h: Likewise.
6174 * include/experimental/bits/fs_fwd.h: Likewise.
6175 * include/experimental/bits/fs_ops.h: Likewise.
6176 * include/experimental/bits/fs_path.h: Likewise.
6177 * include/experimental/buffer: Likewise.
6178 * include/experimental/internet: Likewise.
6179 * include/experimental/optional: Likewise.
6180 * include/experimental/propagate_const: Likewise.
6181 * include/experimental/socket: Likewise.
6182 * include/ext/pb_ds/assoc_container.hpp: Likewise.
6183 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp:
6185 * include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp: Likewise.
6186 * include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp: Likewise.
6187 * include/ext/pb_ds/detail/types_traits.hpp: Likewise.
6188 * include/ext/pb_ds/exception.hpp: Likewise.
6189 * include/ext/pb_ds/priority_queue.hpp: Likewise.
6190 * include/ext/pb_ds/tag_and_trait.hpp: Likewise.
6191 * include/ext/random: Likewise.
6192 * include/std/any: Likewise.
6193 * include/std/atomic: Likewise.
6194 * include/std/bitset: Likewise.
6195 * include/std/chrono: Likewise.
6196 * include/std/complex: Likewise.
6197 * include/std/condition_variable: Likewise.
6198 * include/std/fstream: Likewise.
6199 * include/std/future: Likewise.
6200 * include/std/iostream: Likewise.
6201 * include/std/istream: Likewise.
6202 * include/std/mutex: Likewise.
6203 * include/std/numeric: Likewise.
6204 * include/std/ostream: Likewise.
6205 * include/std/ratio: Likewise.
6206 * include/std/shared_mutex: Likewise.
6207 * include/std/stdexcept: Likewise.
6208 * include/std/streambuf: Likewise.
6209 * include/std/system_error: Likewise.
6210 * include/std/thread: Likewise.
6211 * include/std/valarray: Likewise.
6212 * include/std/variant: Likewise.
6213 * include/tr1/cmath: Likewise.
6214 * include/tr1/regex: Likewise.
6215 * include/tr2/dynamic_bitset: Likewise.
6216 * libsupc++/atomic_lockfree_defines.h: Likewise.
6217 * libsupc++/exception: Likewise.
6218 * libsupc++/exception.h: Likewise.
6219 * libsupc++/exception_ptr.h: Likewise.
6220 * libsupc++/nested_exception.h: Likewise.
6222 2021-03-31 Alexandre Oliva <oliva@adacore.com>
6224 * testsuite/30_threads/future/members/poll.cc: Use faster
6225 after-ready call in the calibration loop.
6227 2021-03-29 Jonathan Wakely <jwakely@redhat.com>
6229 * doc/xml/manual/status_cxx2017.xml: Adjust link for PSTL.
6230 * doc/html/manual/status.html: Regenerate.
6232 2021-03-28 François Dumont <fdumont@gcc.gnu.org>
6234 * include/debug/forward_list
6235 (forward_list(forward_list&&, const allocator_type&)): Add noexcept qualification.
6236 * include/debug/list (list(list&&, const allocator_type&)): Likewise and add
6237 call to safe container allocator aware move constructor.
6238 * include/debug/vector (vector(vector&&, const allocator_type&)):
6239 Fix noexcept qualification.
6240 * testsuite/23_containers/forward_list/cons/noexcept_move_construct.cc:
6241 Add allocator-extended move constructor noexceot qualification check.
6242 * testsuite/23_containers/list/cons/noexcept_move_construct.cc: Likewise.
6244 2021-03-26 Jonathan Wakely <jwakely@redhat.com>
6246 * src/c++11/random.cc (USE_LCG): Define when a pseudo-random
6248 [USE_LCG] (bad_seed, construct_lcg_at, destroy_lcg_at, __lcg):
6249 New helper functions and callback.
6250 (random_device::_M_init): Add 'prng' and 'all' enumerators.
6251 Replace switch with fallthrough with a series of 'if' statements.
6252 [USE_LCG]: Construct an lcg_type engine and use __lcg when cpuid
6254 (random_device::_M_init_pretr1) [USE_MT19937]: Accept "prng"
6256 (random_device::_M_getval): Check for callback unconditionally
6257 and always pass _M_file pointer.
6258 * testsuite/26_numerics/random/random_device/85494.cc: Remove
6259 effective-target check. Use new random_device_available helper.
6260 * testsuite/26_numerics/random/random_device/94087.cc: Likewise.
6261 * testsuite/26_numerics/random/random_device/cons/default-cow.cc:
6262 Remove effective-target check.
6263 * testsuite/26_numerics/random/random_device/cons/default.cc:
6265 * testsuite/26_numerics/random/random_device/cons/token.cc: Use
6266 new random_device_available helper. Test "prng" token.
6267 * testsuite/util/testsuite_random.h (random_device_available):
6268 New helper function.
6270 2021-03-25 François Dumont <fdumont@gcc.gnu.org>
6272 * include/debug/string
6273 (basic_string(const basic_string&, const _Alloc&)): Define even if !_GLIBCXX_USE_CXX11_ABI.
6274 (basic_string(basic_string&&, const _Alloc&)): Likewise and add noexcept qualification.
6275 (basic_string<>::erase): Adapt to take __const_iterator.
6276 (basic_string(const _CharT*, const _Allocator&)): Remove assign call.
6277 (basic_string<>::insert(const_iterator, _InputIte, _InputIte)): Try to
6278 remove iterator debug layer even if !_GLIBCXX_USE_CXX11_ABI.
6279 [_GLIBCXX_USE_CHAR8_T] (__gnu_debug::u8string): New.
6280 (__gnu_debug::u16string, __gnu_debug::u32string): New.
6281 (std::hash<__gnu_debug::basic_string<>>): New partial specialization.
6282 (std::__is_fast_hash<__gnu_debug::basic_string<>>): Likewise.
6283 * testsuite/util/exception/safety.h
6284 (erase_base<__gnu_debug::basic_string<>>): New partial specialization.
6285 (insert_base<__gnu_debug::basic_string<>>): Likewise.
6286 * testsuite/util/testsuite_container_traits.h (traits<__gnu_debug::basic_string<>>):
6287 New partial specialization.
6288 * testsuite/21_strings/basic_string/hash/debug.cc: New test.
6289 * testsuite/21_strings/basic_string/requirements/citerators.cc:
6290 Add test on __gnu_debug::string.
6291 * testsuite/21_strings/basic_string/requirements/dr438/constructor.cc: Likewise.
6292 * testsuite/21_strings/basic_string/requirements/exception/basic.cc: Likewise.
6293 * testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc:
6295 * testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc:
6297 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
6299 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
6301 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
6303 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
6305 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
6307 * testsuite/21_strings/basic_string/requirements/typedefs.cc: Likewise.
6309 2021-03-25 Jakub Jelinek <jakub@redhat.com>
6312 * testsuite/18_support/source_location/consteval.cc (main): Adjust
6313 expected column numbers.
6314 * testsuite/18_support/source_location/1.cc (main): Likewise.
6316 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
6318 * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare malloc.
6320 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
6322 * testsuite/util/exception/safety.h (setup_base::generate):
6323 Support seeding random engine.
6324 (erase_point, erase_range): Adjust range of random numbers to
6325 ensure dereferenceable iterators are used where required.
6326 (generation_prohibited::run): Do not try to erase from empty
6328 * testsuite/util/testsuite_containergen.h (test_containers):
6329 Support seeding random engine.
6331 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
6333 * testsuite/std/ranges/adaptors/reverse.cc: Replace duplicated
6334 line with a check that uses the const being/end overloads.
6336 2021-03-23 Moritz Sichert <sichert@in.tum.de>
6338 * include/std/ranges (reverse_view::begin, reverse_view::end):
6339 Qualify make_reverse_iterator calls to avoid ADL.
6340 * testsuite/std/ranges/adaptors/reverse.cc: Test that
6341 views::reverse works when make_reverse_iterator is defined
6342 in an associated namespace.
6344 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
6346 * include/bits/c++config (_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT):
6347 Do not define when compiling with Clang.
6349 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
6351 * include/std/string_view (basic_string_view(Range&&)): Define new
6352 constructor and deduction guide.
6353 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: New test.
6354 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: New test.
6356 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
6358 * include/bits/range_access.h (begin(T (&)[N]), end(T (&)[N])):
6359 Add missing 'noexcept' as per LWG 2280.
6360 (rbegin(T (&)[N]), rend(T (&)[N]), rbegin(initializer_list<T>))
6361 (rend(initializer_list<T>)): Add 'noexcept' as per LWG 3537.
6362 * testsuite/24_iterators/range_access/range_access.cc: Check for
6363 expected noexcept specifiers. Check result types of generic
6364 std::begin and std::end overloads.
6365 * testsuite/24_iterators/range_access/range_access_cpp14.cc:
6366 Check for expected noexcept specifiers.
6367 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
6370 2021-03-19 Jonathan Wakely <jwakely@redhat.com>
6372 * include/std/type_traits (is_scoped_enum): Define.
6373 * include/std/version (__cpp_lib_is_scoped_enum): Define.
6374 * testsuite/20_util/is_scoped_enum/value.cc: New test.
6375 * testsuite/20_util/is_scoped_enum/version.cc: New test.
6377 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
6380 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Remove
6381 std::once_flag symbols.
6382 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Likewise.
6383 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
6384 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
6386 * config/abi/pre/gnu.ver: Likewise.
6387 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
6388 (struct __once_flag_compat): Remove.
6389 (_ZNSt9once_flag11_M_activateEv): Remove.
6390 (_ZNSt9once_flag9_M_finishEb): Remove.
6392 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
6395 * include/std/mutex [_GLIBCXX_HAVE_LINUX_FUTEX] (once_flag):
6396 Revert to pthread_once_t implementation.
6397 [_GLIBCXX_HAVE_LINUX_FUTEX] (call_once): Likewise.
6398 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
6399 (struct __once_flag_compat): New type matching the reverted
6400 implementation of once_flag using futexes.
6401 (once_flag::_M_activate): Remove, replace with ...
6402 (_ZNSt9once_flag11_M_activateEv): ... alias symbol.
6403 (once_flag::_M_finish): Remove, replace with ...
6404 (_ZNSt9once_flag9_M_finishEb): ... alias symbol.
6405 * testsuite/30_threads/call_once/66146.cc: Removed.
6407 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
6409 * testsuite/17_intro/names.cc: Exclude j from the list
6410 of test symbols for Darwin.
6412 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
6414 * config/os/bsd/darwin/ppc-extra.ver: Add matching for
6415 to_chars and from_chars for long double.
6417 2021-03-15 Patrick Palka <ppalka@redhat.com>
6419 * include/bits/max_size_type.h (__max_size_type::operator _Tp):
6421 (__max_size_type::operator++): Define.
6422 (__max_size_type::operator--): Likewise.
6423 (__max_size_type::operator<=>): Conditionally define (in place
6424 of the other comparison operators).
6425 (__max_diff_type::operator _Tp): Fix formatting.
6426 (__max_diff_type::operator++): Define.
6427 (__max_diff_type::operator--): Likewise.
6428 (__max_diff_type::operator<=>): Conditionally define (in place
6429 of the other comparison operators).
6430 * testsuite/std/ranges/iota/max_size_type.cc (test01): Test
6431 these operator overloads.
6433 2021-03-15 Caroline Tice <cmtice@google.com>
6436 * src/Makefile.am (AM_CXXFLAGS_PRE, AM_CXXFLAGS): Add
6437 AM_CXXFLAGS_PRE with the old definition of AM_CXXFLAGS; make
6438 AM_CXXFLAGS to be AM_CXXFLAGS_PRE with '-fvtable-verify=std'
6440 * src/Makefile.in: Regenerate.
6442 2021-03-11 Patrick Palka <ppalka@redhat.com>
6444 * src/c++17/floating_to_chars.cc: Simplify the file as if
6445 __SIZEOF_INT128__ is always defined.
6446 [!defined __SIZEOF_INT128__]: Include "uint128_t.h". Define
6447 a base-10 to_chars overload for the uint128_t class type.
6448 * src/c++17/uint128_t.h: New file.
6449 * testsuite/20_util/to_chars/long_double.cc: No longer expect an
6450 execution FAIL on targets that have a large long double type
6453 2021-03-11 Patrick Palka <ppalka@redhat.com>
6455 * src/c++17/ryu/LOCAL_PATCHES: Update.
6456 * src/c++17/ryu/d2s_intrinsics.h: Don't define uint128_t.
6457 * src/c++17/ryu/generic_128.h: Likewise.
6458 * src/c++17/ryu/ryu_generic_128.h (struct floating_decimal_128):
6459 Use uint128_t instead of __uint128_t.
6460 (generic_binary_to_decimal): Likewise.
6462 2021-03-11 Patrick Palka <ppalka@redhat.com>
6464 * src/c++17/ryu/LOCAL_PATCHES: New file.
6466 2021-03-11 Patrick Palka <ppalka@redhat.com>
6468 * src/c++17/floating_to_chars.cc (uint128_t): New conditionally
6469 defined alias of unsigned __int128.
6470 (floating_type_traits_binary128::mantissa_t): Use uint128_t
6471 instead of unsigned __int128.
6472 (floating_type_traits<long double>::mantissa_t)
6473 [LONG_DOUBLE_KIND == LDK_IBM128]: Likewise.
6474 (get_ieee_repr): Likewise. Make casts from uint_t to mantissa_t
6475 and uint32_t explicit. Simplify the extraction of mantissa,
6476 exponent and sign bit.
6478 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
6480 * include/std/barrier (barrier::arrival_token): New move-only
6481 class that encapsulates the underlying token value.
6483 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
6485 * python/libstdcxx/v6/printers.py (find_type): Use tag attribute
6486 instead of unqualified() method.
6488 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
6491 * include/std/stop_token (_Stop_state_t::_M_release_ownership):
6492 Use acq_rel memory ordering.
6494 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
6497 * src/c++17/fs_dir.cc (recursive_directory_iterator): Use new
6498 helper function to check for permission denied errors.
6499 * src/filesystem/dir.cc (recursive_directory_iterator):
6501 * src/filesystem/dir-common.h (is_permission_denied_error): New
6504 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
6507 * include/bits/random.h (normal_distribution): Use
6508 default-initializer for _M_saved and _M_saved_available.
6510 2021-03-10 John David Anglin <danglin@gcc.gnu.org>
6512 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Add options to
6513 link with libatomic.
6514 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
6515 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
6516 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
6517 * testsuite/30_threads/barrier/arrive.cc: Likewise.
6518 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
6519 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
6520 * testsuite/30_threads/barrier/completion.cc: Likewise.
6521 * testsuite/30_threads/latch/3.cc: Likewise.
6522 * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
6523 * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
6524 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
6526 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
6529 * include/bits/align.h: Include debug/assertions.h.
6530 * include/bits/codecvt.h: Include bits/c++config.h.
6531 * include/bits/enable_special_members.h: Likewise.
6532 * include/bits/erase_if.h: Likewise.
6533 * include/bits/functional_hash.h: Include <type_traits>.
6534 * include/bits/invoke.h: Include bits/move.h.
6535 * include/bits/ostream_insert.h: Include bits/exception_defines.h.
6536 * include/bits/parse_numbers.h: Include <type_traits>.
6537 * include/bits/predefined_ops.h: Include bits/c++config.h.
6538 * include/bits/range_access.h: Include bits/stl_iterator.h.
6539 * include/bits/stl_bvector.h: Do not include bits/stl_vector.h.
6540 * include/bits/stl_iterator.h: Include bits/stl_iterator_base_types.h.
6541 * include/bits/stl_uninitialized.h: Include bits/stl_algobase.h.
6542 * include/bits/uniform_int_dist.h: Include bits/concept_check.h.
6543 * include/bits/unique_lock.h: Include bits/std_mutex.h.
6544 * include/debug/assertions.h: Include bits/c++config.h.
6546 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
6548 * include/bits/ranges_cmp.h (__eq_builtin_ptr_cmp): Remove.
6549 (ranges::equal_to, ranges::not_equal_to): Do not constrain
6550 with __eq_builtin_ptr_cmp.
6551 (ranges::less, ranges::greater, ranges::less_equal)
6552 (ranges::greater_equal): Do not constrain with
6553 __less_builtin_ptr_cmp.
6554 * libsupc++/compare (compare_three_way): Do not constrain with
6555 __3way_builtin_ptr_cmp.
6556 * testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc: Moved to...
6557 * testsuite/18_support/comparisons/object/lwg3530.cc: ...here.
6558 * testsuite/20_util/function_objects/range.cmp/lwg3530.cc: New test.
6560 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
6562 * testsuite/std/time/syn_c++20.cc: Enable synopsis checks for
6563 C++20 calendar types.
6565 2021-03-06 Jakub Jelinek <jakub@redhat.com>
6568 * include/std/bit (__rotl, __rotr): Add optimized variants for power of
6569 two _Nd which the compiler can pattern match the rotates.
6571 2021-03-04 Jonathan Wakely <jwakely@redhat.com>
6574 * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
6575 Make storage larger than required. Verify no write to the last
6577 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
6580 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6582 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
6583 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
6585 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
6586 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
6589 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6591 * include/experimental/bits/simd.h: Replace reserved _X, _B by
6593 * include/experimental/bits/simd_builtin.h: Likewise.
6594 * include/experimental/bits/simd_x86.h: Likewise.
6596 2021-02-27 Jonathan Wakely <jwakely@redhat.com>
6599 * include/std/chrono (year_month_day::_M_days_since_epoch()):
6600 Convert chrono::month and chrono::day to unsigned before
6601 converting to uint32_t.
6603 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
6605 * include/std/chrono (year_month_day::_S_from_days): Perform
6606 all calculations with type uint32_t.
6608 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
6610 * doc/xml/manual/abi.xml: Document versioning for GCC 11.
6611 * doc/html/manual/abi.html: Regenerate.
6613 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
6616 * testsuite/27_io/headers/cstdio/types_std.cc: Use pointer to
6617 FILE instead of FILE.
6619 2021-02-25 Andreas Schwab <schwab@suse.de>
6621 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
6622 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
6623 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
6624 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
6626 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
6629 * include/std/chrono (year_month_day::_S_from_days): Cast long
6632 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
6634 * include/std/utility (to_underlying): Define.
6635 * include/std/version (__cpp_lib_to_underlying): Define.
6636 * testsuite/20_util/to_underlying/1.cc: New test.
6637 * testsuite/20_util/to_underlying/version.cc: New test.
6639 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
6642 * src/c++17/floating_to_chars.cc (sprintf_ld): Add extra args
6643 before value to be printed.
6645 2021-02-24 Patrick Palka <ppalka@redhat.com>
6647 * src/c++17/floating_to_chars.cc (__floating_to_chars_precision):
6648 Relax the condition that guards the printf code path to accept
6649 F128_type as well as long double.
6651 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
6653 * include/std/chrono (year_month_day_last:day): New
6656 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
6658 * include/std/chrono (year::is_leap): New implementation.
6659 * testsuite/std/time/year/2.cc: New test.
6661 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
6663 * include/std/chrono (year_month_day::_M_days_since_epoch):
6665 * testsuite/std/time/year_month_day/4.cc: New test.
6667 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
6669 * include/std/chrono (year_month_day::_S_from_days): New
6671 * testsuite/std/time/year_month_day/3.cc: New test.
6673 2021-02-24 Patrick Palka <ppalka@redhat.com>
6676 * testsuite/20_util/to_chars/long_double.cc: Include <optional>.
6677 (test01): Simplify verifying the nearby values by using a
6678 2-iteration loop and a dedicated output buffer to check that the
6679 nearby values are different. Factor out the printf-based
6680 verification into a local function, and check that the leading
6681 hex digits agree before comparing to the output of printf. Also
6682 verify the output by round-tripping it through from_chars.
6684 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
6687 * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Do not match to_chars
6688 symbols for long double arguments mangled as 'g'.
6689 * config/os/gnu-linux/ldbl-extra.ver: Likewise.
6690 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Likewise.
6691 * src/c++17/Makefile.am [GLIBCXX_LDBL_ALT128_COMPAT_TRUE]:
6692 Use -mabi=ibmlongdouble for floating_to_chars.cc.
6693 * src/c++17/Makefile.in: Regenerate.
6694 * src/c++17/floating_to_chars.cc (floating_type_traits_binary128):
6695 New type defining type traits of IEEE binary128 format.
6696 (floating_type_traits<__float128>): Define specialization.
6697 (floating_type_traits<long double>): Define in terms of
6698 floating_type_traits_binary128 when appropriate.
6699 (floating_to_shortest_scientific): Handle __float128.
6700 (sprintf_ld): New function template for printing a long double
6701 or __ieee128 value using sprintf.
6702 (__floating_to_chars_shortest, __floating_to_chars_precision):
6704 (to_chars): Define overloads for __float128.
6706 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
6708 * testsuite/17_intro/names.cc: Undefine 'u' on powerpc*-linux*.
6710 2021-02-23 Martin Sebor <msebor@redhat.com>
6713 * libsupc++/dyncast.cc (__dynamic_cast): Return null when
6714 first argument is null.
6716 2021-02-23 Jakub Jelinek <jakub@redhat.com>
6719 * testsuite/21_strings/char_traits/requirements/char/99181.cc: New
6722 2021-02-23 Jakub Jelinek <jakub@redhat.com>
6725 * include/bits/char_traits.h (char_traits<char>::compare): For
6726 constexpr evaluation don't call
6727 __gnu_cxx::char_traits<char_type>::compare but do the comparison loop
6730 2021-02-23 Jakub Jelinek <jakub@redhat.com>
6733 * include/pstl/parallel_backend_serial.h: Remove __pstl::__par_backend.
6735 2021-02-23 Patrick Palka <ppalka@redhat.com>
6738 * src/c++17/floating_to_chars.cc (get_ieee_repr): Extract
6739 the high- and low-order parts from an IBM long double value
6740 in an endian-agnostic way.
6742 2021-02-19 Jonathan Wakely <jwakely@redhat.com>
6744 * include/bits/atomic_wait.h (__thread_relax()): Call
6745 __thread_yield() not __gthread_yield().
6747 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
6749 * include/bits/atomic_wait.h (__thread_yield()): Check
6750 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
6751 (__thread_relax()): Use __thread_yield() instead of repeating
6752 the preprocessor checks for __gthread_yield.
6754 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
6756 * include/std/mutex (once_flag::_M_activate()): Add explicit
6757 return statement for passive case.
6758 (once_flag::_M_finish(bool)): Use reserved name for parameter.
6760 2021-02-14 Jonathan Wakely <jwakely@redhat.com>
6763 * testsuite/util/testsuite_fs.h: Always include <unistd.h>.
6765 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6768 * src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround.
6770 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6772 * doc/xml/manual/status_cxx2014.xml: Document implementation
6773 specific properties of std::experimental::filesystem::rename.
6774 * doc/xml/manual/status_cxx2017.xml: Document implementation
6775 specific properties of std::filesystem::rename.
6776 * doc/html/*: Regenerate.
6777 * src/c++17/fs_ops.cc (fs::rename): Implement correct behaviour
6778 for directories on Windows.
6779 * src/filesystem/ops-common.h (__gnu_posix::rename): Use
6780 MoveFileExW on Windows.
6781 * testsuite/27_io/filesystem/operations/rename.cc: New test.
6782 * testsuite/experimental/filesystem/operations/rename.cc: New test.
6784 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6786 * testsuite/util/testsuite_fs.h (nonexistent_path): Add
6787 random number to the path.
6789 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6791 * include/experimental/internet (address_v6::to_string): Include
6793 * testsuite/experimental/net/internet/address/v6/members.cc:
6794 Test to_string() results.
6796 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6798 * include/experimental/internet (address_v6::any): Avoid using
6799 memcpy in constexpr function.
6800 (address_v6::loopback): Likewise.
6801 (make_address_v6): Fix missing return statements on error paths.
6802 * include/experimental/io_context: Avoid -Wdangling-else
6804 * testsuite/experimental/net/internet/address/v4/members.cc:
6805 Remove unused variables.
6806 * testsuite/experimental/net/internet/address/v6/members.cc:
6809 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6811 * include/bits/shared_ptr_base.h (__shared_ptr::_M_get_deleter):
6812 Add unused attribute to parameter.
6813 * src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq):
6816 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6818 * testsuite/27_io/basic_ostream/emit/1.cc: Expect test to fail
6819 if -fno-rtti is used.
6820 * testsuite/30_threads/async/forced_unwind.cc: Expect test
6821 to abort if -fno-rtti is used.
6823 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6825 * testsuite/util/testsuite_allocator.h (memory_resource):
6826 Remove requirement for RTTI and exceptions to be enabled.
6828 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6830 * testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Use
6831 static_cast when RTTI is disabled.
6832 * testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc:
6834 * testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc:
6836 * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc:
6838 * testsuite/27_io/basic_stringstream/str/char/2.cc:
6840 * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc:
6843 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6845 * include/std/ostream (__syncbuf_base::_S_get): Mark parameter
6846 as unused and only use dynamic_cast when RTTI is enabled.
6848 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6851 * src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)):
6852 Change int parameter to error_code, to match std::ios_failure.
6853 (__throw_ios_failure(const char*, int)): Construct error_code
6856 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
6858 * libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define
6860 * libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new
6861 macro instead of _GLIBCXX_EH_PTR_COMPAT.
6862 (operator==): Likewise.
6864 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
6867 * doc/xml/manual/status_cxx2011.xml: Document when support
6869 * doc/xml/manual/status_cxx2014.xml: Likewise.
6870 * doc/xml/manual/status_cxx2017.xml: Likewise.
6871 * doc/html/manual/status.html: Regenerate.
6873 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
6876 * src/c++17/fs_ops.cc (fs::status): Re-enable workaround.
6878 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
6880 * src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent)
6881 (fs::remove): Use std::system_category() for error codes from
6883 * src/filesystem/ops.cc (fs::create_hard_link, fs::remove):
6886 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
6888 * testsuite/27_io/filesystem/operations/proximate.cc: Fix typo
6889 in __MINGW32__ macro name.
6890 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
6891 * testsuite/27_io/filesystem/path/generation/proximate.cc:
6893 * testsuite/27_io/filesystem/path/generation/relative.cc:
6895 * testsuite/util/testsuite_fs.h: Likewise.
6897 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
6899 * include/bits/stl_tree.h
6900 (__has_is_transparent, __has_is_transparent_t): Move...
6901 * include/bits/stl_function.h: ...here.
6902 * include/bits/hashtable_policy.h (_Hash_code_base<>::_M_hash_code_tr): New..
6903 (_Hashtable_base<>::_M_equals_tr): New.
6904 * include/bits/hashtable.h (_Hashtable<>::_M_find_tr, _Hashtable<>::_M_count_tr,
6905 _Hashtable<>::_M_equal_range_tr): New member function templates to perform
6906 heterogeneous lookup.
6907 (_Hashtable<>::_M_find_before_node_tr): New.
6908 (_Hashtable<>::_M_find_node_tr): New.
6909 * include/bits/unordered_map.h (unordered_map::find<>, unordered_map::count<>,
6910 unordered_map::contains<>, unordered_map::equal_range<>): New member function
6911 templates to perform heterogeneous lookup.
6912 (unordered_multimap::find<>, unordered_multimap::count<>,
6913 unordered_multimap::contains<>, unordered_multimap::equal_range<>): Likewise.
6914 * include/bits/unordered_set.h (unordered_set::find<>, unordered_set::count<>,
6915 unordered_set::contains<>, unordered_set::equal_range<>): Likewise.
6916 (unordered_multiset::find<>, unordered_multiset::count<>,
6917 unordered_multiset::contains<>, unordered_multiset::equal_range<>): Likewise.
6918 * include/debug/unordered_map
6919 (unordered_map::find<>, unordered_map::equal_range<>): Likewise.
6920 (unordered_multimap::find<>, unordered_multimap::equal_range<>): Likewise.
6921 * include/debug/unordered_set
6922 (unordered_set::find<>, unordered_set::equal_range<>): Likewise.
6923 (unordered_multiset::find<>, unordered_multiset::equal_range<>): Likewise.
6924 * testsuite/23_containers/unordered_map/operations/1.cc: New test.
6925 * testsuite/23_containers/unordered_multimap/operations/1.cc: New test.
6926 * testsuite/23_containers/unordered_multiset/operations/1.cc: New test.
6927 * testsuite/23_containers/unordered_set/operations/1.cc: New test.
6929 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
6931 * include/bits/stl_deque.h
6932 (std::operator-(deque::iterator, deque::iterator)): Replace if/then with
6933 a null pointer test.
6935 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
6937 * testsuite/27_io/filesystem/operations/remove_all.cc: Remove
6938 test directory after making it writable again.
6939 * testsuite/experimental/filesystem/operations/remove_all.cc:
6942 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
6945 * include/std/coroutine (coroutine_handle<P>::from_address): Add
6948 2021-02-09 Vladimir Vishnevsky <vv.os.swe@gmail.com>
6950 * include/ext/stdio_sync_filebuf.h: Remove unused <unistd.h>.
6951 * src/c++17/fs_ops.cc (fs::permissions): Qualify mode_t.
6953 2021-02-09 Jakub Jelinek <jakub@redhat.com>
6956 * include/bits/basic_string.tcc (basic_string::_M_replace): When __s
6957 points to the characters moved by earlier _S_move, compute the source
6958 address using expression based on the __p pointer rather than __s
6961 2021-02-03 Jonathan Wakely <jwakely@redhat.com>
6963 * testsuite/19_diagnostics/error_code/operators/not_equal.cc:
6964 Add comparison with same category and different values.
6965 * testsuite/19_diagnostics/error_code/operators/less.cc:
6966 Likewise. Fix comparison involving different categories.
6967 * testsuite/19_diagnostics/error_code/operators/three_way.cc:
6969 * testsuite/19_diagnostics/error_condition/operators/less.cc:
6971 * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
6974 2021-02-03 yaozhongxiao <yaozhongxiao@linux.alibaba.com>
6976 * include/experimental/bits/simd_neon.h: Replace repeated vpadd
6977 calls with a single vaddv for aarch64.
6979 2021-02-03 Matthias Kretz <kretz@kde.org>
6981 * testsuite/Makefile.am: Warn about the workaround. Add
6982 -fno-tree-vrp to CXXFLAGS passed to the check_simd script.
6983 Improve initial user feedback from make check-simd.
6984 * testsuite/Makefile.in: Regenerated.
6986 2021-02-03 Matthias Kretz <kretz@kde.org>
6988 * include/experimental/bits/simd.h: Add __detail::_Minimum and
6989 __detail::_Maximum to use them as _BinaryOperation to _S_reduce.
6990 Add hmin and hmax overloads for simd and const_where_expression.
6991 * include/experimental/bits/simd_scalar.h
6992 (_SimdImplScalar::_S_reduce): Make unused _BinaryOperation
6993 parameter const-ref to allow calling _S_reduce with an rvalue.
6994 * testsuite/experimental/simd/tests/reductions.cc: Add tests for
6995 hmin and hmax. Since the compiler statically determined that all
6996 tests pass, repeat the test after a call to make_value_unknown.
6998 2021-02-03 Matthias Kretz <kretz@kde.org>
7000 * testsuite/experimental/simd/tests/bits/verify.h (verify): Add
7001 instruction pointer data member. Ensure that the `if (m_failed)`
7002 branch is always inlined into the calling code. The body of the
7003 conditional can still be a function call. Move the get_ip call
7004 into the verify ctor to simplify the ctor calls.
7005 (COMPARE): Don't mention the use of all_of for reduction of a
7006 simd_mask. It only distracts from the real issue.
7008 2021-02-03 Matthias Kretz <kretz@kde.org>
7010 * testsuite/experimental/simd/driver.sh: Abstract reading test
7011 options into read_src_option function. Read skip, only,
7012 expensive, and xfail via read_src_option. Add timeout and
7013 timeout-factor options and adjust timeout variable accordingly.
7014 * testsuite/experimental/simd/tests/loadstore.cc: Set
7017 2021-02-03 Matthias Kretz <kretz@kde.org>
7019 * testsuite/experimental/simd/driver.sh: When handling the pipe
7020 to log (and on verbose to stdout) count the lines. If it exceeds
7021 1000 log the issue and exit 125, which is then handled as a
7024 2021-02-03 Matthias Kretz <kretz@kde.org>
7026 * testsuite/experimental/simd/tests/hypot3_fma.cc: Add skip:
7027 markup for long double on powerpc64*.
7029 2021-02-03 Matthias Kretz <kretz@kde.org>
7031 * include/experimental/bits/simd.h: Add __have_power10vec
7032 conditional on _ARCH_PWR10.
7033 * include/experimental/bits/simd_builtin.h: Forward declare
7034 _MaskImplPpc and use it as _MaskImpl when __ALTIVEC__ is
7036 (_MaskImplBuiltin::_S_some_of): Call _S_popcount from the
7037 _SuperImpl for optimizations and correctness.
7038 * include/experimental/bits/simd_ppc.h: Add _MaskImplPpc.
7039 (_MaskImplPpc::_S_popcount): Implement via vec_cntm for POWER10.
7040 Otherwise, for >=int use -vec_sums divided by a sizeof factor.
7041 For <int use -vec_sums(vec_sum4s(...)) to sum all mask entries.
7043 2021-02-03 Matthias Kretz <kretz@kde.org>
7045 * testsuite/experimental/simd/driver.sh: Remove executable on
7046 SIGINT. Process compiler and test executable output: In verbose
7047 mode print messages immediately, limited to 1000 lines and
7048 breaking long lines to below $COLUMNS (or 1024 if not set).
7049 Communicating the exit status of the compiler / test with the
7050 necessary pipe is done via a message through stdout/-in.
7052 2021-02-03 Matthias Kretz <kretz@kde.org>
7054 * testsuite/Makefile.am: Ensure .simd.summary is empty before
7055 collecting a new summary.
7056 * testsuite/Makefile.in: Regenerate.
7058 2021-02-03 Matthias Kretz <kretz@kde.org>
7060 * testsuite/experimental/simd/generate_makefile.sh: Use
7061 different variables internally than documented for user
7062 overrides. This makes internal append/prepend work as intended.
7064 2021-02-03 Matthias Kretz <kretz@kde.org>
7066 * testsuite/experimental/simd/driver.sh (verify_test): Print
7067 test output on run xfail. Do not repeat lines from the log that
7068 were already printed on stdout.
7069 (test_selector): Make the compiler flags pattern usable as a
7071 (toplevel): Trap on SIGINT and remove the log and sum files.
7072 Call timout with --foreground to quickly terminate on SIGINT.
7073 * testsuite/experimental/simd/generate_makefile.sh: Simplify run
7074 targets via target patterns. Default DRIVEROPTS to -v for run
7075 targets. Remove log and sum files after completion of the run
7076 target (so that it's always recompiled).
7077 Place help text into text file for reasonable 'make help'
7080 2021-02-03 Matthias Kretz <kretz@kde.org>
7082 * include/experimental/bits/simd.h: Remove unnecessary static
7083 assertion. Allow sizeof(8) integer __intrinsic_type to enable
7084 the necessary mask type.
7086 2021-02-03 Matthias Kretz <kretz@kde.org>
7088 * include/experimental/bits/simd.h: Let __intrinsic_type<long
7089 double, N> be valid if sizeof(long double) == sizeof(double) and
7090 use a __vector double as member type.
7092 2021-02-03 Matthias Kretz <kretz@kde.org>
7094 * include/experimental/bits/simd.h (__is_intrinsic_type): New
7095 internal type trait. Alias for __is_vector_type on x86.
7096 (_VectorTraitsImpl): Enable for __intrinsic_type in addition for
7098 (__intrin_bitcast): Allow casting to & from vector & intrinsic
7100 (__intrinsic_type): Explicitly specialize for NEON intrinsic
7103 2021-02-03 Matthias Kretz <kretz@kde.org>
7105 * testsuite/experimental/simd/driver.sh: Implement skip, only,
7106 expensive, and xfail markers. They can select on type, ABI tag
7107 subset number, target-triplet, and compiler flags.
7108 * testsuite/experimental/simd/generate_makefile.sh: The summary
7109 now includes lines for unexpected passes and expected failures.
7110 If the skip or only markers are only conditional on the type, do
7111 not generate rules for those types.
7112 * testsuite/experimental/simd/tests/abs.cc: Mark test expensive
7113 for ABI tag subsets 1-9.
7114 * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
7115 * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
7116 * testsuite/experimental/simd/tests/casts.cc: Ditto.
7117 * testsuite/experimental/simd/tests/generator.cc: Ditto.
7118 * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
7119 * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
7120 * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
7121 * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
7122 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
7123 * testsuite/experimental/simd/tests/mask_loadstore.cc: Ditto.
7124 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
7125 * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
7126 * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
7127 * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
7128 * testsuite/experimental/simd/tests/operators.cc: Ditto.
7129 * testsuite/experimental/simd/tests/reductions.cc: Ditto.
7130 * testsuite/experimental/simd/tests/simd.cc: Ditto.
7131 * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
7132 * testsuite/experimental/simd/tests/splits.cc: Ditto.
7133 * testsuite/experimental/simd/tests/where.cc: Ditto.
7134 * testsuite/experimental/simd/tests/fpclassify.cc: Ditto. In
7135 addition replace "test only floattypes" marker by unconditional
7136 "float|double|ldouble" only marker.
7137 * testsuite/experimental/simd/tests/frexp.cc: Ditto.
7138 * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
7139 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
7141 * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
7142 * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
7143 * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
7144 * testsuite/experimental/simd/tests/remqo.cc: Ditto.
7145 * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
7146 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
7147 * testsuite/experimental/simd/tests/sincos.cc: Ditto. In
7148 addition, xfail on run because the reference data is missing.
7150 2021-02-02 Jonathan Wakely <jwakely@redhat.com>
7152 * doc/xml/manual/status_cxx2011.xml: Remove stray table cell.
7153 * doc/xml/manual/status_cxx2014.xml: Likewise.
7154 * doc/xml/manual/status_cxx2017.xml: Likewise.
7155 * doc/html/manual/status.html: Regenerate.
7157 2021-02-01 François Dumont <fdumont@gcc.gnu.org>
7160 * include/bits/stl_deque.h (std::deque<>::operator-(iterator, iterator)):
7161 Return 0 if both iterators are value-initialized.
7162 * testsuite/23_containers/deque/70303.cc: New test.
7163 * testsuite/23_containers/vector/70303.cc: New test.
7165 2021-02-01 Jonathan Wakely <jwakely@redhat.com>
7167 * doc/xml/manual/status_cxx2011.xml: Update std::call_once
7169 * doc/xml/manual/status_cxx2014.xml: Likewise.
7170 * doc/xml/manual/status_cxx2017.xml: Likewise. Update
7171 std::from_chars and std::to_chars status. Fix formatting.
7172 * doc/html/manual/status.html: Regenerate.
7174 2021-01-28 Jonathan Wakely <jwakely@redhat.com>
7176 * include/experimental/bits/numeric_traits.h: Update copyright
7178 * include/experimental/bits/simd.h: Likewise.
7179 * include/experimental/bits/simd_builtin.h: Likewise.
7180 * include/experimental/bits/simd_converter.h: Likewise.
7181 * include/experimental/bits/simd_detail.h: Likewise.
7182 * include/experimental/bits/simd_fixed_size.h: Likewise.
7183 * include/experimental/bits/simd_math.h: Likewise.
7184 * include/experimental/bits/simd_neon.h: Likewise.
7185 * include/experimental/bits/simd_ppc.h: Likewise.
7186 * include/experimental/bits/simd_scalar.h: Likewise.
7187 * include/experimental/bits/simd_x86.h: Likewise.
7188 * include/experimental/bits/simd_x86_conversions.h: Likewise.
7189 * include/experimental/simd: Likewise.
7190 * testsuite/experimental/simd/*: Likewise.
7192 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
7194 * doc/xml/manual/status_cxx2017.xml: Replace invalid entity.
7195 * doc/html/*: Regenerate.
7197 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
7199 * testsuite/experimental/simd/generate_makefile.sh: Use printf
7200 instead of echo when printing escape characters.
7202 2021-01-27 Matthias Kretz <kretz@kde.org>
7204 * scripts/check_simd: New file. This script is called from the
7205 the check-simd target. It determines a set of compiler flags and
7206 simulator setups for calling generate_makefile.sh and passes the
7207 information back to the check-simd target, which recurses to the
7208 generated Makefiles.
7209 * scripts/create_testsuite_files: Remove files below simd/tests/
7210 from testsuite_files and place them in testsuite_files_simd.
7211 * testsuite/Makefile.am: Add testsuite_files_simd. Add
7213 * testsuite/Makefile.in: Regenerate.
7214 * testsuite/experimental/simd/driver.sh: New file. This script
7215 compiles and runs a given simd test, logging its output and
7216 status. It uses the timeout command to implement compile and
7218 * testsuite/experimental/simd/generate_makefile.sh: New file.
7219 This script generates a Makefile which uses driver.sh to compile
7220 and run the tests and collect the logs into a single log file.
7221 * testsuite/experimental/simd/tests/abs.cc: New file. Tests
7223 * testsuite/experimental/simd/tests/algorithms.cc: New file.
7224 Tests min/max(simd, simd).
7225 * testsuite/experimental/simd/tests/bits/conversions.h: New
7226 file. Contains functions to support tests involving conversions.
7227 * testsuite/experimental/simd/tests/bits/make_vec.h: New file.
7228 Support functions make_mask and make_vec.
7229 * testsuite/experimental/simd/tests/bits/mathreference.h: New
7230 file. Support functions to supply precomputed math function
7232 * testsuite/experimental/simd/tests/bits/metahelpers.h: New
7233 file. Support code for SFINAE testing.
7234 * testsuite/experimental/simd/tests/bits/simd_view.h: New file.
7235 * testsuite/experimental/simd/tests/bits/test_values.h: New
7236 file. Test functions to easily drive a test with simd objects
7237 initialized from a given list of values and a range of random
7239 * testsuite/experimental/simd/tests/bits/ulp.h: New file.
7240 Support code to determine the ULP distance of simd objects.
7241 * testsuite/experimental/simd/tests/bits/verify.h: New file.
7242 Test framework for COMPARE'ing simd objects and instantiating
7243 the test templates with value_type and ABI tag.
7244 * testsuite/experimental/simd/tests/broadcast.cc: New file. Test
7246 * testsuite/experimental/simd/tests/casts.cc: New file. Test
7248 * testsuite/experimental/simd/tests/fpclassify.cc: New file.
7249 Test floating-point classification functions.
7250 * testsuite/experimental/simd/tests/frexp.cc: New file. Test
7252 * testsuite/experimental/simd/tests/generator.cc: New file. Test
7253 simd generator constructor.
7254 * testsuite/experimental/simd/tests/hypot3_fma.cc: New file.
7255 Test 3-arg hypot(simd,simd,simd) and fma(simd,simd,sim).
7256 * testsuite/experimental/simd/tests/integer_operators.cc: New
7257 file. Test integer operators.
7258 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
7259 New file. Test ldexp(simd), scalbn(simd), scalbln(simd), and
7261 * testsuite/experimental/simd/tests/loadstore.cc: New file. Test
7262 (converting) simd loads and stores.
7263 * testsuite/experimental/simd/tests/logarithm.cc: New file. Test
7265 * testsuite/experimental/simd/tests/mask_broadcast.cc: New file.
7266 Test simd_mask broadcasts.
7267 * testsuite/experimental/simd/tests/mask_conversions.cc: New
7268 file. Test simd_mask conversions.
7269 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: New
7270 file. Test simd_mask implicit conversions.
7271 * testsuite/experimental/simd/tests/mask_loadstore.cc: New file.
7272 Test simd_mask loads and stores.
7273 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: New
7274 file. Test simd_mask operators convert as specified.
7275 * testsuite/experimental/simd/tests/mask_operators.cc: New file.
7276 Test simd_mask compares, subscripts, and negation.
7277 * testsuite/experimental/simd/tests/mask_reductions.cc: New
7278 file. Test simd_mask reductions.
7279 * testsuite/experimental/simd/tests/math_1arg.cc: New file. Test
7280 1-arg math functions on simd.
7281 * testsuite/experimental/simd/tests/math_2arg.cc: New file. Test
7282 2-arg math functions on simd.
7283 * testsuite/experimental/simd/tests/operator_cvt.cc: New file.
7284 Test implicit conversions on simd binary operators behave as
7286 * testsuite/experimental/simd/tests/operators.cc: New file. Test
7287 simd compares, subscripts, not, unary minus, plus, minus,
7288 multiplies, divides, increment, and decrement.
7289 * testsuite/experimental/simd/tests/reductions.cc: New file.
7291 * testsuite/experimental/simd/tests/remqo.cc: New file. Test
7293 * testsuite/experimental/simd/tests/simd.cc: New file. Basic
7294 sanity checks of simd types.
7295 * testsuite/experimental/simd/tests/sincos.cc: New file. Test
7296 sin(simd) and cos(simd).
7297 * testsuite/experimental/simd/tests/split_concat.cc: New file.
7298 Test split(simd) and concat(simd, simd).
7299 * testsuite/experimental/simd/tests/splits.cc: New file. Test
7301 * testsuite/experimental/simd/tests/trigonometric.cc: New file.
7302 Test remaining trigonometric functions on simd.
7303 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: New
7304 file. Test trunc(simd), ceil(simd), and floor(simd).
7305 * testsuite/experimental/simd/tests/where.cc: New file. Test
7306 masked operations using where.
7308 2021-01-27 Matthias Kretz <kretz@kde.org>
7310 * doc/xml/manual/status_cxx2017.xml: Add implementation status
7311 of the Parallelism TS 2. Document implementation-defined types
7313 * include/Makefile.am: Add new headers.
7314 * include/Makefile.in: Regenerate.
7315 * include/experimental/simd: New file. New header for
7317 * include/experimental/bits/numeric_traits.h: New file.
7318 Implementation of P1841R1 using internal naming. Addition of
7319 missing IEC559 functionality query.
7320 * include/experimental/bits/simd.h: New file. Definition of the
7321 public simd interfaces and general implementation helpers.
7322 * include/experimental/bits/simd_builtin.h: New file.
7323 Implementation of the _VecBuiltin simd_abi.
7324 * include/experimental/bits/simd_converter.h: New file. Generic
7326 * include/experimental/bits/simd_detail.h: New file. Internal
7327 macros for the simd implementation.
7328 * include/experimental/bits/simd_fixed_size.h: New file. Simd
7329 fixed_size ABI specific implementations.
7330 * include/experimental/bits/simd_math.h: New file. Math
7332 * include/experimental/bits/simd_neon.h: New file. Simd NEON
7333 specific implementations.
7334 * include/experimental/bits/simd_ppc.h: New file. Implement bit
7335 shifts to avoid invalid results for integral types smaller than
7337 * include/experimental/bits/simd_scalar.h: New file. Simd scalar
7338 ABI specific implementations.
7339 * include/experimental/bits/simd_x86.h: New file. Simd x86
7340 specific implementations.
7341 * include/experimental/bits/simd_x86_conversions.h: New file.
7342 x86 specific conversion optimizations. The conversion patterns
7343 work around missing conversion patterns in the compiler and
7344 should be removed as soon as PR85048 is resolved.
7345 * testsuite/experimental/simd/standard_abi_usable.cc: New file.
7346 Test that all (not all fixed_size<N>, though) standard simd and
7347 simd_mask types are usable.
7348 * testsuite/experimental/simd/standard_abi_usable_2.cc: New
7349 file. As above but with -ffast-math.
7350 * testsuite/libstdc++-dg/conformance.exp: Don't build simd tests
7351 from the standard test loop. Instead use
7352 check_vect_support_and_set_flags to build simd tests with the
7353 relevant machine flags.
7355 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
7358 * include/bits/string_view.tcc
7359 (basic_string_view::find(const CharT*, size_type, size_type)):
7362 2021-01-27 Paul Fee <paul.f.fee@gmail.com>
7364 * include/bits/basic_string.h (basic_string::contains): New
7366 * include/std/string_view (basic_string_view::contains):
7368 * include/std/version (__cpp_lib_string_contains): Define.
7369 * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
7370 Remove trailing whitespace.
7371 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
7373 * testsuite/21_strings/basic_string/operations/contains/char/1.cc: New test.
7374 * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc: New test.
7375 * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc: New test.
7376 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: New test.
7377 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc: New test.
7379 2021-01-21 Jonathan Wakely <jwakely@redhat.com>
7381 * src/c++17/Makefile.in: Regenerate.
7383 2021-01-20 David Edelsohn <dje.gcc@gmail.com>
7385 * config/os/aix/ctype_inline.h (bool ctype<char>:: is): Cast
7386 _OBJ_DATA subscript to unsigned char. Add _THREAD_SAFE access to
7388 (const char* ctype<char>:: is): Same.
7390 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
7393 * testsuite/20_util/unique_ptr/io/lwg2948.cc: Do not try to
7394 write to a wide character stream if wide character support is
7395 disabled in the library.
7397 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
7399 * testsuite/27_io/basic_stringstream/cons/char/1.cc: Use
7400 stringbuf not wstringbuf.
7402 2021-01-18 Jakub Jelinek <jakub@redhat.com>
7405 * src/c++11/Makefile.am (cxx11-ios_failure-lt.s, cxx11-ios_failure.s):
7406 Compile with -gno-as-loc-support.
7407 * src/c++11/Makefile.in: Regenerated.
7409 2021-01-16 H.J. Lu <hjl.tools@gmail.com>
7411 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
7412 Add -fcf-protection=none to -march=i486.
7414 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
7416 * testsuite/23_containers/deque/debug/98466.cc: Make it pre-C++11
7419 2021-01-14 Alexandre Oliva <oliva@adacore.com>
7421 * testsuite/30_threads/future/members/poll.cc: Calibrate
7424 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
7427 * include/bits/hashtable_policy.h (_Node_iterator_base()): Set _M_cur to nullptr.
7428 (_Node_iterator()): Make default.
7429 (_Node_const_iterator()): Make default.
7430 * include/debug/macros.h (__glibcxx_check_erae_range_after): Add _M_singular
7432 * include/debug/safe_iterator.h
7433 (_GLIBCXX_DEBUG_VERIFY_OPERANDS): Accept if both iterator are value initialized.
7434 * include/debug/safe_local_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
7436 * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range): Add
7437 _M_singular checks on input iterators.
7438 * src/c++11/debug.cc (_Safe_iterator_base::_M_can_compare): Remove _M_singular
7440 * testsuite/23_containers/deque/debug/98466.cc: New test.
7441 * testsuite/23_containers/unordered_map/debug/98466.cc: New test.
7443 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
7446 * include/bits/fs_path.h (__throw_conversion_error): New
7447 function to throw or abort on character conversion errors.
7448 (__wstr_from_utf8): Move definition after filesystem_error has
7449 been defined. Use __throw_conversion_error.
7450 (path::_S_convert<_EcharT>): Use __throw_conversion_error.
7451 (path::_S_str_convert<_CharT, _Traits, _Allocator>): Likewise.
7452 (path::u8string): Likewise.
7454 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
7456 * include/std/barrier: Update copyright years. Fix whitespace.
7457 * include/std/version: Fix whitespace.
7458 * testsuite/30_threads/barrier/1.cc: Update copyright years.
7459 * testsuite/30_threads/barrier/2.cc: Likewise.
7460 * testsuite/30_threads/barrier/arrive.cc: Likewise.
7461 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
7462 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
7463 * testsuite/30_threads/barrier/completion.cc: Likewise.
7465 2021-01-13 Jonathan Wakely <jwakely@redhat.com>
7467 * doc/doxygen/user.cfg.in (INPUT): Remove include/debug/array.
7469 2021-01-10 David Edelsohn <dje.gcc@gmail.com>
7472 * testsuite/ext/vstring/cons/moveable.cc: Suppress false positive
7474 * testsuite/ext/vstring/modifiers/assign/move_assign.cc: Same.
7476 2021-01-08 Olivier Hainque <hainque@adacore.com>
7478 * testsuite/20_util/bind/ref_neg.cc: Tweak the
7479 dg-prune-output regex for out-of-build-tree contexts.
7481 2021-01-07 Thomas Rodgers <trodgers@redhat.com>
7483 * doc/doxygen/user.cfg.in: Add new header.
7484 * include/Makefile.am (std_headers): likewise.
7485 * include/Makefile.in: Regenerate.
7486 * include/precompiled/stdc++.h: Add new header.
7487 * include/std/barrier: New file.
7488 * include/std/version: Add __cpp_lib_barrier feature test macro.
7489 * testsuite/30_threads/barrier/1.cc: New test.
7490 * testsuite/30_threads/barrier/2.cc: Likewise.
7491 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
7492 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
7493 * testsuite/30_threads/barrier/arrive.cc: Likewise.
7494 * testsuite/30_threads/barrier/completion.cc: Likewise.
7496 2021-01-07 Patrick Palka <ppalka@redhat.com>
7499 * testsuite/20_util/to_chars/long_double.cc: Use nexttowardl
7500 instead of the non-standard nextupl and nextdownl.
7502 2021-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
7504 * configure: Re-generate.
7506 2021-01-05 Ed Smith-Rowland <3dw4rd@verizon.net>
7508 * include/precompiled/stdc++.h: Add <source_location> to C++20 section.
7510 2021-01-01 Jakub Jelinek <jakub@redhat.com>
7512 * ChangeLog-2020: Rotate ChangeLog. New file.
7515 Copyright (C) 2021 Free Software Foundation, Inc.
7517 Copying and distribution of this file, with or without modification,
7518 are permitted in any medium without royalty provided the copyright
7519 notice and this notice are preserved.