1 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
3 * include/bits/fs_path.h (path::_S_convert(T)): Avoid recursive
4 call to function with deduced return type.
6 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
8 * include/bits/basic_string.h (__cpp_lib_string_resize_and_overwrite):
10 (basic_string::resize_and_overwrite): Declare.
11 * include/bits/basic_string.tcc (basic_string::resize_and_overwrite):
13 * include/std/version (__cpp_lib_resize_and_overwrite): Define
15 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
18 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
21 * include/std/ranges (__cached): New wrapper struct.
22 (__non_propagating_cache): Use __cached for contained value.
23 (__non_propagating_cache::_M_emplace_deref): Add constexpr. Use
24 std::construct_at instead of placement new.
25 * testsuite/std/ranges/adaptors/join.cc: Check constexpr works.
27 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
29 * include/std/variant (__cpp_lib_variant): Update value for
31 (__variant_cast, __variant_construct): Add constexpr for C++20.
32 (__variant_construct_single, __construct_by_index) Likewise. Use
33 std::_Construct instead of placement new.
34 (_Uninitialized<T, false>) [__cplusplus >= 202002]: Replace
35 buffer with a union and define a destructor.
36 (_Variadic_union) [__cplusplus >= 202002]: Add a specialization
37 for non-trivial destruction.
38 (_Variant_storage::__index_of): New helper variable template.
39 (_Variant_storage::~_Variant_storage()): Add constexpr.
40 (_Variant_storage::_M_reset()): Likewise.
41 (_Copy_ctor_base, _Move_ctor_base): Likewise.
42 (_Copy_assign_base, _Move_assign_base): Likewise.
43 (variant, swap): Likewise.
44 * include/std/version (__cpp_lib_variant): Update value for
46 * testsuite/20_util/optional/version.cc: Check for exact value
48 * testsuite/20_util/variant/87619.cc: Increase timeout for
50 * testsuite/20_util/variant/constexpr.cc: New test.
51 * testsuite/20_util/variant/version.cc: New test.
53 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
55 * include/std/variant (__detail::__variant::__get_storage):
56 Remove unused function.
57 (__variant_construct_by_index): Set index after construction is
58 complete. Rename to ...
59 (__detail::__variant::__construct_by_index): ... this.
60 (variant): Use new name for __variant_construct_by_index friend
61 declaration. Remove __get_storage friend declaration.
62 (variant::emplace): Use new name and remove try-blocks.
64 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
66 * include/std/variant (_Variant_storage::_M_storage()): Remove.
67 (__detail::__variant::__get_storage): Remove.
68 (variant): Remove friend declaration of __get_storage.
70 2021-10-15 Jason Merrill <jason@redhat.com>
72 * testsuite/20_util/integer_comparisons/greater_equal_neg.cc:
73 * testsuite/20_util/integer_comparisons/greater_neg.cc:
74 * testsuite/20_util/integer_comparisons/less_equal_neg.cc:
75 Adjust expected message.
76 * testsuite/lib/prune.exp: Prune 'in constexpr expansion'.
78 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
80 * include/std/variant (__variant::__get(in_place_index_t<N>, U&&)):
81 Rename to __get_n and remove first argument. Replace pair of
82 overloads with a single function using 'if constexpr'.
83 (__variant::__get(Variant&&)): Adjust to use __get_n.
85 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
87 * include/bits/fs_path.h (path(path&&)): Make unconditionally
89 (path::_S_convert(T)): Add condtional noexcept.
91 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
94 * include/bits/fs_path.h (path::_S_convert(T)): Fix condition
95 for returning the same string unchanged.
97 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
99 * include/bits/regex.h: Check __cpp_inline_variables instead of
102 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
104 * testsuite/20_util/is_layout_compatible/version.cc: Check
107 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
109 * include/bits/stl_construct.h (_Construct): Use
110 std::construct_at when constant evaluated.
111 * include/std/optional (_Storage, _Optional_payload, optional):
112 Add constexpr as specified by P2231R1.
113 * include/std/version (__cpp_lib_optional): Update value for
115 * testsuite/20_util/optional/requirements.cc: Check feature test
117 * testsuite/20_util/optional/constexpr/assign.cc: New test.
118 * testsuite/20_util/optional/constexpr/cons/conv.cc: New test.
119 * testsuite/20_util/optional/constexpr/modifiers.cc: New test.
120 * testsuite/20_util/optional/constexpr/swap.cc: New test.
121 * testsuite/20_util/optional/version.cc: New test.
123 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
125 * include/bits/fs_path.h (__detail::__is_contiguous): Add
126 partial specializations for pointers and __normal_iterator.
128 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
130 * testsuite/27_io/filesystem/path/construct/102592.C: Moved to...
131 * testsuite/27_io/filesystem/path/construct/102592.cc: ...here.
132 * testsuite/28_regex/match_results/102667.C: Moved to...
133 * testsuite/28_regex/match_results/102667.cc: ...here.
135 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
137 * include/bits/fs_path.h (__detail::__is_contiguous): New
138 variable template to identify contiguous iterators.
139 (__detail::__unified_char8_t): New alias template to decide when
140 to treat char8_t as char without encoding conversion.
141 (__detail::__effective_range(const basic_string<C,T>&)): Use
142 std::char_traits<C> for returned string view.
143 (__detail::__effective_range(const basic_string_view<C,T>&)):
145 (__detail::__effective_range(const Source&)): Use
146 __is_contiguous to detect mode cases of contiguous iterators.
147 Use __unified_char8_t to return a std::string instead of
150 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
153 * include/bits/fs_path.h (path::path(Iter, Iter, format))
154 (path::append(Iter, Iter), path::concat(Iter, Iter)): Call
155 __string_from_range directly, instead of two-argument overload
157 (path::_S_convert(Iter, Iter)): Remove.
158 * testsuite/27_io/filesystem/path/construct/102592.C: New test.
160 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
162 * include/bits/c++config (__terminate): Add extern "C++".
164 2021-10-12 Jonathan Wakely <jwakely@redhat.com>
166 * testsuite/20_util/tuple/comparison_operators/overloaded.cc:
167 Restore test for operator<.
168 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
169 Adjust expected errors for C++20.
171 2021-10-12 Jonathan Wakely <jwakely@redhat.com>
174 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)): Define as
176 * testsuite/20_util/tuple/cons/101960.cc: Check tuples with
177 array elements before the last element.
179 2021-10-12 Jonathan Wakely <jwakely@redhat.com>
181 * include/bits/stl_iterator_base_funcs.h (__advance): Add
182 deleted overload to improve diagnostics.
183 (__distance): Likewise.
185 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
187 * include/bits/atomic_timed_wait.h: Remove unused header.
188 * include/bits/c++config (std:__terminate): Define.
189 * include/bits/semaphore_base.h: Remove <exception> and use
190 __terminate instead of terminate.
191 * include/bits/std_thread.h: Likewise.
192 * libsupc++/eh_terminate.cc (std::terminate): Use qualified-id
193 to call __cxxabiv1::__terminate.
195 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
197 * include/bits/regex.h (basic_regex::assign(Iter, Iter)): Avoid
198 std::__to_address by using poitner directly or using base()
199 member of __normal_iterator.
201 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
203 * testsuite/18_support/numeric_limits/lowest.cc: Use
204 numeric_limits<T>::is_integer instead of is_integral<T>::value.
206 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
209 * include/bits/regex.h (basic_regex(const _Ch_type*, size_t)):
210 Add __glibcxx_requires_string_len assertion.
211 (basic_regex::assign(InputIterator, InputIterator)): Add
212 __glibcxx_requires_valid_range assertion.
213 * include/bits/regex_scanner.tcc (_Scanner::_M_advance())
214 (_Scanner::_M_scan_normal()): Use string literal in assertions.
216 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
219 * include/bits/regex.h (match_result::empty()): Optimize by
220 calling the base function directly.
221 (match_results::end()): Check _Base_type::empty() not empty().
222 * testsuite/28_regex/match_results/102667.C: New test.
224 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
227 * testsuite/18_support/numeric_limits/lowest.cc: Remove use of
228 _GLIBCXX_USE_WCHAR_T.
229 * testsuite/18_support/numeric_limits/min_max.cc: Replace use of
230 _GLIBCXX_USE_WCHAR_T with checks for WCHAR_MIN and WCHAR_MAX.
231 * testsuite/20_util/from_chars/1_neg.cc: Remove use of
232 _GLIBCXX_USE_WCHAR_T.
233 * testsuite/20_util/function_objects/searchers.cc: Likewise. Use
234 char_traits<wchar_t>::length instead of wcslen.
235 * testsuite/20_util/hash/requirements/explicit_instantiation.cc:
237 * testsuite/20_util/is_arithmetic/value.cc: Likewise.
238 * testsuite/20_util/is_compound/value.cc: Likewise.
239 * testsuite/20_util/is_floating_point/value.cc: Likewise.
240 * testsuite/20_util/is_fundamental/value.cc: Likewise.
241 * testsuite/20_util/is_integral/value.cc: Likewise.
242 * testsuite/20_util/is_signed/value.cc: Likewise.
243 * testsuite/20_util/is_unsigned/value.cc: Likewise.
244 * testsuite/20_util/is_void/value.cc: Likewise.
245 * testsuite/20_util/make_signed/requirements/typedefs-1.cc:
247 * testsuite/20_util/make_signed/requirements/typedefs-2.cc:
249 * testsuite/20_util/make_signed/requirements/typedefs-3.cc:
251 * testsuite/20_util/make_signed/requirements/typedefs-4.cc:
253 * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
255 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
257 * testsuite/20_util/make_unsigned/requirements/typedefs-3.cc:
259 * testsuite/20_util/to_chars/3.cc: Likewise.
260 * testsuite/20_util/type_identity/requirements/typedefs.cc:
262 * testsuite/21_strings/basic_string/hash/debug.cc: Likewise.
263 * testsuite/21_strings/basic_string/hash/hash.cc: Likewise.
264 * testsuite/21_strings/basic_string/literals/types-char8_t.cc:
266 * testsuite/21_strings/basic_string/literals/types.cc: Likewise.
267 * testsuite/21_strings/basic_string/literals/values-char8_t.cc:
269 * testsuite/21_strings/basic_string/literals/values.cc:
271 * testsuite/21_strings/basic_string/modifiers/64422.cc:
273 * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
275 * testsuite/21_strings/basic_string/requirements/citerators.cc:
277 * testsuite/21_strings/basic_string/requirements/typedefs.cc:
279 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
281 * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
283 * testsuite/21_strings/basic_string_view/literals/types.cc:
285 * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
287 * testsuite/21_strings/basic_string_view/literals/values.cc:
289 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
291 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
292 * testsuite/21_strings/char_traits/requirements/constexpr_functions.cc:
294 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
296 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
298 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Likewise.
299 * testsuite/25_algorithms/fill/4.cc: Likewise.
300 * testsuite/25_algorithms/fill_n/1.cc: Likewise.
301 * testsuite/experimental/functional/searchers.cc: Likewise. Use
302 char_traits<wchar_t>::length instead of wcslen.
303 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc:
305 * testsuite/experimental/string_view/literals/types-char8_t.cc:
307 * testsuite/experimental/string_view/literals/types.cc:
309 * testsuite/experimental/string_view/literals/values-char8_t.cc:
311 * testsuite/experimental/string_view/literals/values.cc:
313 * testsuite/experimental/string_view/range_access/wchar_t/1.cc:
315 * testsuite/experimental/string_view/requirements/typedefs.cc:
317 * testsuite/experimental/string_view/typedefs.cc: Likewise.
318 * testsuite/ext/vstring/range_access.cc: Likewise.
319 * testsuite/std/concepts/concepts.lang/concept.arithmetic/integral.cc:
321 * testsuite/std/concepts/concepts.lang/concept.arithmetic/signed_integral.cc:
323 * testsuite/std/concepts/concepts.lang/concept.arithmetic/unsigned_integral.cc:
325 * testsuite/tr1/4_metaprogramming/is_arithmetic/value.cc:
327 * testsuite/tr1/4_metaprogramming/is_compound/value.cc:
329 * testsuite/tr1/4_metaprogramming/is_floating_point/value.cc:
331 * testsuite/tr1/4_metaprogramming/is_fundamental/value.cc:
333 * testsuite/tr1/4_metaprogramming/is_integral/value.cc:
335 * testsuite/tr1/4_metaprogramming/is_signed/value.cc: Likewise.
336 * testsuite/tr1/4_metaprogramming/is_unsigned/value.cc:
338 * testsuite/tr1/4_metaprogramming/is_void/value.cc: Likewise.
339 * testsuite/tr1/6_containers/hash/24799.cc: Likewise.
341 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
344 * include/std/ostream (operator<<(basic_ostream<char, Tr>&, wchar_t))
345 (operator<<(basic_ostream<char, Tr>&, const wchar_t*)): Always
346 define as deleted. Do not check _GLIBCXX_USE_WCHAR_T.
348 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
351 * include/bits/locale_conv.h (wstring_convert, wbuffer_convert):
352 Define unconditionally. Do not check _GLIBCXX_USE_WCHAR_T.
354 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
357 * include/c_global/cstddef [!_GLIBCXX_USE_WCHAR_T]
358 (__byte_operand<wchar_t>): Define specialization.
359 * include/std/type_traits (__make_signed<wchar_t>)
360 (__make_unsigned<wchar_t>): Remove redundant check for
361 __WCHAR_TYPE__ being defined.
362 * include/tr1/type_traits [!_GLIBCXX_USE_WCHAR_T]
363 (__is_integral_helper<wchar_t>): Likewise.
365 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
368 * include/ext/rc_string_base.h [!_GLIBCXX_USE_WCHAR_T]
369 (__rc_string_base<wchar_t>): Define member function.
370 * include/ext/vstring.h [!_GLIBCXX_USE_WCHAR_T]
371 (hash<__gnu_cxx::__wvstring>): Define specialization.
372 * include/ext/vstring_fwd.h [!_GLIBCXX_USE_WCHAR_T] (__wvstring)
373 (__wsso_string, __wrc_string): Declare typedefs.
375 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
378 * include/bits/char_traits.h (char_traits<wchar_t>): Define
379 explicit specialization unconditionally.
380 * include/bits/basic_string.h (hash<wstring>): Define
381 unconditionally. Do not check _GLIBCXX_USE_WCHAR_T.
382 * include/bits/stringfwd.h (wstring): Likewise.
383 * include/debug/string (wstring): Likewise.
384 * include/experimental/string_view (experimental::wstring_view)
385 (hash<experimental::wstring_view>): Likewise.
386 * include/std/string (pmr::wstring, hash<pmr::wstring>):
388 * include/std/string_view (wstring_view, hash<wstring_view>):
391 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
393 * testsuite/27_io/basic_filebuf/close/81256.cc: Moved to...
394 * testsuite/27_io/basic_filebuf/close/wchar_t/81256.cc: ...here.
396 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
398 * testsuite/22_locale/conversions/buffer/1.cc: Check
399 _GLIBCXX_USE_WCHAR_T.
400 * testsuite/22_locale/conversions/buffer/3.cc: Likewise. Add
402 * testsuite/22_locale/conversions/string/1.cc: Check
403 _GLIBCXX_USE_WCHAR_T.
404 * testsuite/27_io/filesystem/path/generic/generic_string.cc:
406 * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
408 * testsuite/27_io/filesystem/path/native/alloc.cc: Likewise.
409 * testsuite/27_io/filesystem/path/native/string-char8_t.cc:
411 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
412 * testsuite/28_regex/algorithms/regex_match/extended/wstring_locale.cc:
414 * testsuite/experimental/filesystem/path/generic/generic_string.cc:
416 * testsuite/experimental/filesystem/path/native/alloc.cc:
418 * testsuite/experimental/filesystem/path/native/string-char8_t.cc:
420 * testsuite/experimental/filesystem/path/native/string.cc:
423 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
425 * testsuite/26_numerics/bit/bit.rotate/rotr.cc:
426 * testsuite/util/testsuite_common_types.h:
428 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
430 * testsuite/18_support/numeric_limits/40856.cc: Replace use of
432 * testsuite/18_support/numeric_limits/dr559.cc: Likewise.
433 * testsuite/18_support/numeric_limits/lowest.cc: Likewise.
434 * testsuite/18_support/numeric_limits/max_digits10.cc: Likewise.
435 * testsuite/20_util/is_floating_point/value.cc: Likewise.
436 * testsuite/20_util/is_integral/value.cc: Likewise.
437 * testsuite/20_util/is_signed/value.cc: Likewise.
438 * testsuite/20_util/is_unsigned/value.cc: Likewise.
439 * testsuite/20_util/make_signed/requirements/typedefs-1.cc:
441 * testsuite/20_util/make_signed/requirements/typedefs-2.cc:
443 * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
445 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
447 * testsuite/20_util/type_identity/requirements/typedefs.cc:
449 * testsuite/26_numerics/bit/bit.count/countl_one.cc: Likewise.
450 * testsuite/26_numerics/bit/bit.count/countl_zero.cc: Likewise.
451 * testsuite/26_numerics/bit/bit.count/countr_one.cc: Likewise.
452 * testsuite/26_numerics/bit/bit.count/countr_zero.cc: Likewise.
453 * testsuite/26_numerics/bit/bit.count/popcount.cc: Likewise.
454 * testsuite/26_numerics/bit/bit.pow.two/bit_ceil.cc: Likewise.
455 * testsuite/26_numerics/bit/bit.pow.two/bit_floor.cc: Likewise.
456 * testsuite/26_numerics/bit/bit.pow.two/bit_width.cc: Likewise.
457 * testsuite/26_numerics/bit/bit.pow.two/has_single_bit.cc:
459 * testsuite/26_numerics/bit/bit.rotate/rotl.cc: Likewise.
461 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
463 * include/bits/hashtable_policy.h (_Select1st): Replace use of
465 (_Select2nd): Remove.
466 (_NodeBuilder::_S_build): Use _NodeGenerator::__node_type
467 typedef instead of deducing it. Remove unnecessary piecewise
469 (_ReuseOrAllocNode): Make __node_type public.
470 (_Map_base): Adjust partial specialization to be able to extract
471 the mapped_type without using tuple_element.
472 (_Map_base::at): Define inline
473 * testsuite/23_containers/unordered_map/requirements/53339.cc:
475 * testsuite/23_containers/unordered_multimap/requirements/53339.cc:
478 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
480 * include/bits/hashtable.h: Move static assertion to destructor.
481 * include/bits/hashtable_policy.h: Deduce value type from node
482 type without instantiating it.
484 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
486 * src/c++11/limits.cc: Fail if __cpp_inline_variables is
489 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
492 * include/bits/ranges_algobase.h: Replace <iterator> with a
493 subset of the headers it includes.
495 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
497 * include/experimental/deque (erase, erase_if): Revert changes
498 to avoid debug mode overhead.
499 * include/experimental/map (erase, erase_if): Likewise.
500 * include/experimental/set (erase, erase_if): Likewise.
501 * include/experimental/unordered_map (erase, erase_if):
503 * include/experimental/unordered_set (erase, erase_if):
505 * include/experimental/vector (erase, erase_if): Likewise.
506 * include/std/deque (erase, erase_if): Likewise.
507 * include/std/map (erase, erase_if): Likewise.
508 * include/std/set (erase, erase_if): Likewise.
509 * include/std/unordered_map (erase, erase_if): Likewise.
510 * include/std/unordered_set (erase, erase_if): Likewise.
511 * include/std/vector (erase, erase_if): Likewise.
513 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
515 * include/std/chrono (__detail::__units_suffix_misc): New
517 (__detail::__units_suffix): Likewise.
518 (chrono::operator<<(basic_ostream&, const duration&)): Define.
519 * testsuite/20_util/duration/io.cc: New test.
521 2021-10-07 Jonathan Wakely <jwakely@redhat.com>
523 * include/Makefile.am: Add new header.
524 * include/Makefile.in: Regenerate.
525 * include/std/chrono (duration, time_point, system_clock)
526 (steady_clock, high_resolution_clock, chrono_literals, sys_time)
527 (file_clock, file_time): Move to ...
528 * include/bits/chrono.h: New file.
529 * include/bits/atomic_futex.h: Include new header instead of
531 * include/bits/atomic_timed_wait.h: Likewise.
532 * include/bits/fs_fwd.h: Likewise.
533 * include/bits/semaphore_base.h: Likewise.
534 * include/bits/this_thread_sleep.h: Likewise.
535 * include/bits/unique_lock.h: Likewise.
536 * include/experimental/bits/fs_fwd.h: Likewise.
537 * include/experimental/chrono: Likewise.
538 * include/experimental/io_context: Likewise.
539 * include/experimental/netfwd: Likewise.
540 * include/experimental/timer: Likewise.
541 * include/std/condition_variable: Likewise.
542 * include/std/mutex: Likewise.
543 * include/std/shared_mutex: Likewise.
545 2021-10-07 Jonathan Wakely <jwakely@redhat.com>
548 * include/bits/atomic_wait.h (__waiter_pool_base:_S_align):
549 Hardcode to 64 instead of using non-constant constant.
551 2021-10-07 Jonathan Wakely <jwakely@redhat.com>
553 * include/bits/erase_if.h (__erase_nodes_if): Remove redundant
555 * include/std/string (erase, erase_if): Likewise.
556 * include/std/deque (erase, erase_if): Access non-debug
558 * include/std/map (erase, erase_if): Likewise.
559 * include/std/set (erase, erase_if): Likewise.
560 * include/std/unordered_map (erase, erase_if): Likewise.
561 * include/std/unordered_set (erase, erase_if): Likewise.
562 * include/std/vector (erase, erase_if): Likewise.
563 * include/experimental/deque (erase, erase_if): Likewise.
564 * include/experimental/map (erase, erase_if): Likewise.
565 * include/experimental/set (erase, erase_if): Likewise.
566 * include/experimental/unordered_map (erase, erase_if):
568 * include/experimental/unordered_set (erase, erase_if):
570 * include/experimental/vector (erase, erase_if): Likewise.
572 2021-10-06 Jonathan Wakely <jwakely@redhat.com>
574 * include/Makefile.am: Add new headers.
575 * include/Makefile.in: Regenerate.
576 * include/std/functional: Include <bits/move_only_function.h>.
577 * include/std/version (__cpp_lib_move_only_function): Define.
578 * include/bits/mofunc_impl.h: New file.
579 * include/bits/move_only_function.h: New file.
580 * testsuite/20_util/move_only_function/call.cc: New test.
581 * testsuite/20_util/move_only_function/cons.cc: New test.
582 * testsuite/20_util/move_only_function/move.cc: New test.
583 * testsuite/20_util/move_only_function/version.cc: New test.
585 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
587 * testsuite/21_strings/basic_string_view/requirements/trivially_copyable.cc:
589 * testsuite/23_containers/span/trivially_copyable.cc: New test.
591 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
593 * include/bits/utility.h (__is_in_place_type_v): Define
594 variable template to detect in_place_type_t specializations.
595 (__is_in_place_type): Replace class template with alias
596 template using __is_in_place_type_v.
597 * include/std/any (any(T&&)): Check __is_in_place_type first and
598 avoid instantiating is_copy_constructible unnecessarily.
600 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
602 * testsuite/20_util/integer_comparisons/greater.cc: New test.
604 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
606 * testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc:
607 Check result matches non-volatile pointer.
609 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
612 * testsuite/20_util/is_trivially_constructible/value.cc: Adjust
613 expected value for C++20.
615 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
617 * include/bits/std_function.h (_Any_data::_M_access): Add
619 (_Function_base::_Base_manager::_M_get_pointer): Likewise.
620 (_Function_base::_Base_manager::_M_not_empty_function):
623 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
625 * include/std/ostream (operator<<(const volatile void*)):
626 Add new overload, as per P1147R1.
627 * testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc:
630 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
632 * include/bits/stl_queue.h
633 (__cpp_lib_adaptor_iterator_pair_constructor): Set to correct
635 * include/bits/stl_stack.h
636 (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
637 * include/std/version
638 (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
639 * testsuite/23_containers/queue/cons_from_iters.cc: Update
641 * testsuite/23_containers/stack/cons_from_iters.cc: Likewise.
643 2021-10-04 Jonathan Wakely <jwakely@redhat.com>
645 * include/bits/forward_list.h (forward_list): Use non-deduced
646 context for allocator parameter of allocator-extended copy and
648 * include/bits/stl_bvector.h (vector<bool>): Likewise.
649 * include/bits/stl_deque.h (deque): Likewise.
650 * include/bits/stl_list.h (list): Likewise.
651 * include/bits/stl_map.h (map): Likewise.
652 * include/bits/stl_multimap.h (multimap): Likewise.
653 * include/bits/stl_multiset.h (multiset): Likewise.
654 * include/bits/stl_set.h (set): Likewise.
655 * include/bits/stl_vector.h (vector): Likewise.
656 * include/bits/stl_queue.h (queue, priority_queue): Do not
657 constrain Allocator template parameter of deduction guides that
658 have a Container parameter.
659 * include/bits/stl_stack.h (stack): Likewise.
660 * include/debug/deque (__gnu_debug::deque): Use non-deduced
661 context for allocator parameter of allocator-extended copy and
663 * include/debug/list (__gnu_debug::list): Likewise.
664 * include/debug/map.h (__gnu_debug::map): Likewise.
665 * include/debug/multimap.h (__gnu_debug::multimap): Likewise.
666 * include/debug/multiset.h (__gnu_debug::multiset): Likewise.
667 * include/debug/set.h (__gnu_debug::set): Likewise.
668 * include/debug/vector (__gnu_debug::vector): Likewise.
669 * testsuite/23_containers/deque/cons/deduction.cc: Test class
670 template argument deduction with non-deduced allocator
672 * testsuite/23_containers/forward_list/cons/deduction.cc:
674 * testsuite/23_containers/list/cons/deduction.cc: Likewise.
675 * testsuite/23_containers/map/cons/deduction.cc: Likewise.
676 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
677 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
678 * testsuite/23_containers/priority_queue/deduction.cc: Likewise.
679 * testsuite/23_containers/queue/deduction.cc: Likewise.
680 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
681 * testsuite/23_containers/stack/deduction.cc: Likewise.
682 * testsuite/23_containers/unordered_map/cons/deduction.cc:
684 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
686 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
688 * testsuite/23_containers/unordered_set/cons/deduction.cc:
690 * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
692 2021-10-04 Jonathan Wakely <jwakely@redhat.com>
694 * include/std/variant (__detail::__variant::__as): Add missing
695 noexcept to first overload.
697 2021-10-04 Jonathan Wakely <jwakely@redhat.com>
699 * include/bits/basic_string.h (basic_string(nullptr_t)): Define
701 (operator=(nullptr_t)): Likewise.
702 * include/bits/cow_string.h (basic_string(nullptr_t)): Likewise.
703 (operator=(nullptr_t)): Likewise.
704 * include/std/string_view (basic_string_view(nullptr_t)):
706 * testsuite/21_strings/basic_string/cons/char/nullptr.cc: New test.
707 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
708 Change dg-warning to dg-error.
709 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
712 2021-10-02 Jonathan Wakely <jwakely@redhat.com>
714 * src/c++17/fs_ops.cc (create_directory): Fix typo in enum name.
715 * src/filesystem/ops-common.h (__last_system_error): Add
716 explicit cast to avoid narrowing conversion.
717 (do_space): Fix type in function name.
719 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
722 * include/Makefile.am (c++config.h): Define
723 _GLIBCXX_VERBOSE_ASSERT based on configure output.
724 * include/Makefile.in: Regenerate.
725 * include/bits/c++config: Fix condition for verbose assertions.
727 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
730 * include/bits/erase_if.h (__erase_nodes_if): Use __niter_base to
731 unwrap debug iterators.
732 * include/bits/refwrap.h: Do not error if included in C++03.
733 * include/bits/stl_algo.h (__remove_if): Move to ...
734 * include/bits/stl_algobase.h (__remove_if): ... here.
735 * include/std/deque (erase, erase_if): Use __remove_if instead of
736 remove and remove_if.
737 * include/std/string (erase, erase_if): Likewise.
738 * include/std/vector (erase, erase_if): Likewise.
740 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
743 * include/bits/list.tcc (list::sort()): Use _Scratch_list
744 objects for splicing and merging.
745 (list::sort(StrictWeakOrdering)): Likewise.
746 * include/bits/stl_list.h (__detail::_Scratch_list): New type.
747 * src/c++98/list.cc (_List_node_base::_M_transfer): Add
748 assertion for --enable-libstdcxx-debug library.
749 * testsuite/23_containers/list/operations/66742.cc: New test.
751 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
754 * include/std/thread (__pmf_expects_stop_token): New variable
755 template to detect a pointer to member function that needs a
756 stop_token to be added to the arguments.
757 (jthread::__S_create): Use __pmf_expects_stop_token.
758 (jthread::__S_create_pmf): New function.
759 * testsuite/30_threads/jthread/100612.cc: New test.
761 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
763 * include/bits/stl_queue.h
764 (__cpp_lib_adaptor_iterator_pair_constructor): Define for C++23, as
766 (queue(InputIterator, InputIterator)): Likewise.
767 (queue(InputIterator, InputIterator, const Alloc&)): Likewise.
768 * include/bits/stl_stack.h
769 (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
770 (stack(InputIterator, InputIterator)): Likewise.
771 (stack(InputIterator, InputIterator, const Alloc&)): Likewise.
772 * include/std/version (__cpp_lib_adaptor_iterator_pair_constructor):
774 * testsuite/23_containers/queue/cons_from_iters.cc: New test.
775 * testsuite/23_containers/stack/cons_from_iters.cc: New test.
777 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
779 * include/bits/stl_queue.h (priority_queue): Add
780 allocator-extended overloads for constructors taking iterator.
781 * testsuite/23_containers/priority_queue/lwg3506.cc: New test.
783 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
785 * include/bits/stl_queue.h (priority_queue): Construct sequence
786 from iterators when no sequence argument is present (LWG 3529).
787 * testsuite/23_containers/priority_queue/lwg3529.cc: New test.
789 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
791 * include/bits/stl_queue.h (priority_queue): Constrain
792 constructors with InputIterator parameters (LWG 3522).
793 * testsuite/23_containers/priority_queue/lwg3522.cc: New test.
795 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
797 * include/bits/ranges_base.h (ranges::distance): Split overload
799 * testsuite/24_iterators/range_operations/lwg3392.cc: New test.
801 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
803 * testsuite/30_threads/thread/cons/3.cc: Remove derivation from
805 * testsuite/30_threads/thread/cons/4.cc: Likewise.
806 * testsuite/30_threads/thread/cons/5.cc: Likewise.
808 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
810 * testsuite/ext/pb_ds/example/basic_multimap.cc: Remove
811 unnecesary derivation from std::unary_function.
812 * testsuite/ext/pb_ds/example/erase_if.cc: Likewise.
813 * testsuite/ext/pb_ds/example/hash_illegal_resize.cc: Likewise.
814 * testsuite/ext/pb_ds/example/hash_initial_size.cc: Likewise.
815 * testsuite/ext/pb_ds/example/hash_load_set_change.cc: Likewise.
816 * testsuite/ext/pb_ds/example/hash_mod.cc: Likewise.
817 * testsuite/ext/pb_ds/example/hash_resize.cc: Likewise.
818 * testsuite/ext/pb_ds/example/hash_shift_mask.cc: Likewise.
819 * testsuite/ext/pb_ds/example/priority_queue_dijkstra.cc:
821 * testsuite/ext/pb_ds/example/ranged_hash.cc: Likewise.
822 * testsuite/ext/pb_ds/example/store_hash.cc: Likewise.
824 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
826 * src/c++11/functexcept.cc (__throw_out_of_range_fmt): Do not
827 expand the format string for freestanding, or non-vebose, or if
828 we're just going to abort anyway.
829 * src/c++11/snprintf_lite.cc: Remove unused header and
832 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
834 * include/std/variant (__do_visit): Use variant_npos instead of
835 literal -1 that requires a narrowing conversion.
837 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
840 * src/filesystem/ops-common.h (__unsupported): New function to
841 return a suitable error code for missing functionality.
842 (posix::off_t): New typedef.
843 (posix::*): Set errno to ENOSYS instead of ENOTSUP for no-op
844 fallback implementations.
845 (do_copy_file): Replace uses of errc::not_supported.
846 * src/c++17/fs_ops.cc (fs::copy, fs::copy_file, create_dir)
847 (fs::create_directory, fs::create_directory_symlink)
848 (fs::create_hard_link, fs::create_symlink, fs::current_path)
849 (fs::equivalent, do_stat, fs::file_size, fs::hard_link_count)
850 (fs::last_write_time, fs::permissions, fs::read_symlink):
851 Replace uses of errc::not_supported.
852 (fs::resize_file): Qualify off_t.
853 * src/filesystem/ops.cc (fs::copy, fs::copy_file, create_dir)
854 (fs::create_directory, fs::create_directory_symlink)
855 (fs::create_hard_link, fs::create_symlink, fs::current_path)
856 (fs::equivalent, do_stat, fs::file_size, fs::last_write_time)
857 (fs::permissions, fs::read_symlink, fs::system_complete):
858 Replace uses of errc::not_supported.
859 (fs::resize_file): Qualify off_t and enable unconditionally.
860 * testsuite/19_diagnostics/system_error/cons-1.cc: Likewise.
862 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
864 * src/filesystem/ops-common.h (last_error): New helper function.
865 (filesystem::do_space): Use last_error().
866 * src/c++17/fs_ops.cc (fs::absolute, fs::create_hard_link)
867 (fs::equivalent, fs::remove, fs::temp_directory_path): Use
869 * src/filesystem/ops.cc (fs::create_hard_link)
870 (fs::remove, fs::temp_directory_path): Likewise.
872 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
874 * include/std/type_traits (__conditional): New class template
875 for internal uses of std::conditional.
876 (__conditional_t): New alias template to replace conditional_t.
877 (__and_, __or_, __result_of_memfun, __result_of_memobj): Use
878 __conditional_t instead of conditional::type.
879 * include/bits/atomic_base.h (__atomic_impl::_Diff): Likewise.
880 * include/bits/hashtable.h (_Hashtable): Likewise.
881 * include/bits/hashtable_policy.h (_Node_iterator, _Insert_base)
882 (_Local_iterator): Likewise. Replace typedefs with
884 * include/bits/move.h (move_if_noexcept): Use __conditional_t.
885 * include/bits/parse_numbers.h (_Select_int_base): Likewise.
886 * include/bits/ptr_traits.h (__make_not_void): Likewise.
887 * include/bits/ranges_algobase.h (__copy_or_move_backward)
888 (__copy_or_move): Likewise.
889 * include/bits/ranges_base.h (borrowed_iterator_t): Likewise.
890 * include/bits/ranges_util.h (borrowed_subrange_t): Likewise.
891 * include/bits/regex_compiler.h (_BracketMatcher): Use
892 __conditional_t. Replace typedefs with using-declarations.
893 * include/bits/shared_ptr_base.h (__shared_count): Use
895 * include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
897 * include/bits/stl_iterator.h (__detail::__clamp_iter_cat)
898 (reverse_iterator::iterator_concept)
899 (__make_move_if_noexcept_iterator)
900 (iterator_traits<common_iterator<_It, _Sent>>)
901 (iterator_traits<counted_iterator<_It>>): Likewise.
902 * include/bits/stl_pair.h (_PCC, pair::operator=): Likewise.
903 * include/bits/stl_tree.h (_Rb_tree::insert_return_type)
904 (_Rb_tree::_M_clone_node): Likewise.
905 * include/bits/unique_ptr.h (unique_ptr(unique_ptr<U,E>&&)):
907 * include/bits/uses_allocator.h (__uses_alloc): Likewise.
908 (__is_uses_allocator_predicate): Likewise.
909 * include/debug/functions.h (__foreign_iterator_aux2): Likewise.
910 * include/experimental/any (any::_Manager, __any_caster):
912 * include/experimental/executor (async_completion): Likewise.
913 * include/experimental/functional (__boyer_moore_base_t):
915 * include/std/any (any::_Manager): Likewise.
916 * include/std/functional (__boyer_moore_base_t): Likewise.
917 * include/std/ranges (borrowed_iterator_t)
918 (borrowed_subrange_t, __detail::__maybe_present_t)
919 (__detail::__maybe_const_t, split_view): Likewise.
920 * include/std/tuple (__empty_not_final, tuple::operator=):
922 * include/std/variant (__detail::__variant::__get_t): Likewise.
924 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
927 * include/std/variant (__do_visit): Use a switch when we have a
928 single variant with a small number of alternatives.
930 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
933 * include/std/variant (__cpp_lib_variant): Update value.
934 (__detail::__variant::__as): New helpers implementing the
935 as-variant exposition-only function templates.
936 (visit, visit<R>): Use __as to upcast the variant parameters.
937 * include/std/version (__cpp_lib_variant): Update value.
938 * testsuite/20_util/variant/visit_inherited.cc: New test.
940 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
942 * include/bits/stl_iterator.h (__normal_iterator): Simplify
943 converting constructor and do not require _Container::pointer.
945 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
947 * include/bits/cow_string.h [_GLIBCXX_FULLY_DYNAMIC_STRING]
948 (basic_string(basic_string&&)): Add noexcept and avoid
949 allocation, by sharing rep with the rvalue string.
951 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
953 * include/bits/stl_iterator.h (common_iterator::__arrow_proxy)
954 (common_iterator::__postfix_proxy): Add noexcept.
956 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
959 * include/bits/stl_iterator.h (reverse_iterator): Use
960 conditional noexcept on constructors and assignment operators.
961 * testsuite/24_iterators/reverse_iterator/noexcept.cc: New test.
963 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
966 * include/bits/vector.tcc (vector<bool>::_M_shrink_to_fit()):
967 When size() is zero just deallocate and reset.
969 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
972 * include/bits/stl_algo.h (clamp): Use std::min and std::max.
974 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
976 * include/bits/regex.h (basic_regex::multiline): Define for
977 non-strict C++11 and C++14 modes.
978 * include/bits/regex_constants.h (regex_constants::multiline):
979 Add _GLIBCXX_RESOLVE_LIB_DEFECTS comment.
981 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
983 * testsuite/25_algorithms/is_permutation/2.cc: Include <iterator>.
985 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
987 * include/bits/stream_iterator.h (istream_iterator): Add
988 noexcept to constructors and non-throwing member functions and
990 (ostream_iterator): Likewise.
992 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
994 * include/bits/boost_concept_check.h (_Is_vector_bool_iterator):
995 New trait to identify vector<bool> iterators, including debug
997 (_ForwardIteratorReferenceConcept): Add default template
998 argument using _Is_vector_bool_iterator and use it in partial
999 specialization for the vector<bool> cases.
1000 (_Mutable_ForwardIteratorReferenceConcept): Likewise.
1001 * testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error
1004 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1006 * include/bits/list.tcc (list::merge): Remove call to size() and
1007 try-catch block. Use _Finalize_merge instead.
1008 * include/bits/stl_list.h (list::_Finalize_merge): New
1009 scope guard type to update _M_size members after a merge.
1011 2021-09-30 Jonathan Wakely <jwakely@redhat.com>
1013 * include/bits/regex.h (basic_regex::multiline): Fix #if
1016 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
1018 * include/bits/regex.h (basic_regex::multiline): Define constant
1020 * include/bits/regex_constants.h (regex_constants::multiline):
1021 Define constant for C++17.
1022 (regex_constants::__multiline): Define duplicate constant for
1023 internal use in C++11 and C++14.
1024 * include/bits/regex_executor.h (_Executor::_M_match_multiline()):
1025 New member function.
1026 (_Executor::_M_is_line_terminator(_CharT)): New member function.
1027 (_Executor::_M_at_begin(), _Executor::_M_at_end()): Use new
1028 member functions to support multiline matches.
1029 * testsuite/28_regex/algorithms/regex_match/multiline.cc: New test.
1031 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
1033 * include/bits/regex_compiler.h (_Compiler::_S_validate): New
1035 * include/bits/regex_compiler.tcc (_Compiler::_Compiler): Use
1036 _S_validate to check flags.
1037 * include/bits/regex_error.h (_S_grammar): New error code for
1039 * testsuite/28_regex/basic_regex/ctors/grammar.cc: New test.
1041 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
1044 * include/bits/regex_error.h (regex_constants::_S_null): New
1045 error code for internal use.
1046 * include/bits/regex_scanner.tcc (_Scanner::_M_scan_normal()):
1047 Check for null character.
1048 * testsuite/28_regex/basic_regex/84110.cc: New test.
1050 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
1052 * include/bits/regex.h (__detail::__is_contiguous_iter): Move
1053 here from <bits/regex_compiler.h>.
1054 (basic_regex::_M_compile): New function to compile an NFA from
1055 a regular expression string.
1056 (basic_regex::basic_regex): Use _M_compile instead of delegating
1057 to other constructors.
1058 (basic_regex::operator=(const basic_regex&)): Define as
1060 (basic_regex::operator=(initializer_list<C>)): Use _M_compile.
1061 (basic_regex::assign(const basic_regex&)): Use copy assignment.
1062 (basic_regex::assign(basic_regex&&)): Use move assignment.
1063 (basic_regex::assign(const C*, flag_type)): Use _M_compile
1064 instead of constructing a temporary string.
1065 (basic_regex::assign(const C*, size_t, flag_type)): Likewise.
1066 (basic_regex::assign(const basic_string<C,T,A>&, flag_type)):
1067 Use _M_compile instead of constructing a temporary basic_regex.
1068 (basic_regex::assign(InputIter, InputIter, flag_type)): Avoid
1069 constructing a temporary string for contiguous iterators of the
1071 * include/bits/regex_compiler.h (__is_contiguous_iter): Move to
1073 (__enable_if_contiguous_iter, __disable_if_contiguous_iter)
1074 (__compile_nfa): Remove.
1075 * testsuite/28_regex/basic_regex/assign/exception_safety.cc: New
1077 * testsuite/28_regex/basic_regex/ctors/char/other.cc: New test.
1079 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1081 * include/bits/atomic_timed_wait.h (__platform_wait_until_impl):
1082 Return false for ETIMEDOUT and true otherwise.
1084 2021-09-28 François Dumont <fdumont@gcc.gnu.org>
1086 * testsuite/20_util/default_delete/48631_neg.cc: Adapt dg-prune-output message
1087 to also match message with '__8' in it.
1089 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1091 * include/bits/regex_automaton.h (_NFA_base::_SizeT): Remove.
1092 * include/bits/regex_compiler.h (_Compiler::_IterT): Remove.
1093 * include/bits/regex_compiler.tcc: Likewise.
1094 * include/bits/regex_scanner.h (_Scanner::_IterT): Remove.
1095 * include/bits/regex_scanner.tcc: Likewise.
1097 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1099 * include/bits/regex_compiler.tcc: Add line break in empty while
1101 * include/bits/regex_executor.tcc: Avoid unused parameter
1104 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1106 * include/bits/regex.h (basic_regex, swap): Add noexcept to
1107 non-throwing functions.
1108 * include/bits/regex_automaton.h (_State_base, _State)
1109 (_NFA_base): Likewise.
1110 * include/bits/regex_compiler.h (_Compiler): Likewise.
1111 * include/bits/regex_error.h (regex_error::code()): Likewise.
1112 * include/bits/regex_scanner.h (_Scanner): Likewise.
1114 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1116 * include/bits/atomic_wait.h (_GLIBCXX_HAVE_PLATFORM_WAIT):
1117 Define before first attempt to check it.
1119 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1121 * testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1.cc:
1122 Do not check non-default constructible sequences when
1123 _GLIBCXX_CONCEPT_CHECKS is defined.
1124 * testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1_c++98.cc:
1126 * testsuite/23_containers/queue/requirements/explicit_instantiation/1.cc:
1128 * testsuite/23_containers/queue/requirements/explicit_instantiation/1_c++98.cc:
1130 * testsuite/23_containers/stack/requirements/explicit_instantiation/1.cc:
1132 * testsuite/23_containers/stack/requirements/explicit_instantiation/1_c++98.cc:
1135 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1137 * testsuite/23_containers/deque/requirements/explicit_instantiation/3.cc:
1138 Do not test implicit allocator rebinding when _GLIBCXX_CONCEPT_CHECKS
1140 * testsuite/23_containers/forward_list/requirements/explicit_instantiation/3.cc:
1142 * testsuite/23_containers/list/requirements/explicit_instantiation/3.cc:
1144 * testsuite/23_containers/list/requirements/explicit_instantiation/5.cc:
1146 * testsuite/23_containers/map/requirements/explicit_instantiation/3.cc:
1148 * testsuite/23_containers/map/requirements/explicit_instantiation/5.cc:
1150 * testsuite/23_containers/multimap/requirements/explicit_instantiation/3.cc:
1152 * testsuite/23_containers/multimap/requirements/explicit_instantiation/5.cc:
1154 * testsuite/23_containers/multiset/requirements/explicit_instantiation/3.cc:
1156 * testsuite/23_containers/multiset/requirements/explicit_instantiation/5.cc:
1158 * testsuite/23_containers/set/requirements/explicit_instantiation/3.cc:
1160 * testsuite/23_containers/set/requirements/explicit_instantiation/5.cc:
1162 * testsuite/23_containers/unordered_map/requirements/explicit_instantiation/3.cc:
1164 * testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/3.cc:
1166 * testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/3.cc:
1168 * testsuite/23_containers/unordered_set/requirements/explicit_instantiation/3.cc:
1170 * testsuite/23_containers/vector/ext_pointer/explicit_instantiation/3.cc:
1172 * testsuite/23_containers/vector/requirements/explicit_instantiation/3.cc:
1175 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1177 * include/bits/boost_concept_check.h (_ForwardIteratorConcept)
1178 (_BidirectionalIteratorConcept, _RandomAccessIteratorConcept):
1179 Check result types of iterator operations.
1180 (_Mutable_ForwardIteratorConcept): Check that iterator's
1181 reference type is a reference to its value type.
1182 (_Mutable_BidirectionalIteratorConcept): Do not require the
1183 value type to be assignable.
1184 (_Mutable_RandomAccessIteratorConcept): Likewise.
1185 * testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error
1188 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1190 * testsuite/25_algorithms/copy/34595.cc: Add missing operation
1191 for type used as an iterator.
1192 * testsuite/25_algorithms/unique_copy/check_type.cc: Likewise.
1194 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1196 * testsuite/20_util/is_nothrow_swappable/value.h: Use custom
1197 comparison function for priority_queue of type with no
1198 relational operators.
1199 * testsuite/20_util/is_swappable/value.h: Likewise.
1200 * testsuite/24_iterators/output/concept.cc: Add operator< to
1203 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1205 * include/bits/boost_concept_check.h (_OutputIteratorConcept):
1206 Use a function to preserve value category of the type.
1207 * include/bits/stl_algobase.h (copy, move, fill_n): Use a
1208 reference as the second argument for _OutputIteratorConcept.
1209 (copy_backward, move_backward): Use _OutputIteratorConcept
1210 instead of _ConvertibleConcept.
1212 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1214 * include/bits/stl_iterator.h (pointer_traits): Define partial
1215 specialization for __normal_iterator.
1216 * testsuite/24_iterators/normal_iterator/to_address.cc: New test.
1218 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1220 * include/bits/move.h (forward(remove_reference_t<T>&&)):
1221 Improve text of static_assert.
1222 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
1223 * testsuite/20_util/forward/f_neg.cc: Likewise.
1225 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1228 * include/bits/fs_path.h (path::begin, path::end): Add noexcept
1229 to declarations, to match definitions.
1231 2021-09-24 Jonathan Wakely <jwakely@redhat.com>
1233 * include/bits/range_access.h (cbegin, cend): Remove redundant
1236 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
1238 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
1239 Remove dg-error lines for C++20-only errors.
1241 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
1243 * testsuite/19_diagnostics/headers/system_error/93151.cc:
1246 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
1248 * src/c++11/system_error.cc (system_error_category) [_WIN32]:
1249 Map Windows error codes to generic POSIX error numbers. Use
1250 FormatMessage instead of strerror.
1251 * testsuite/19_diagnostics/error_category/system_category.cc:
1252 Adjust for new behaviour on Windows.
1254 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
1256 * src/c++11/system_error.cc (generic_error_category): Define
1257 class and virtual functions as 'final'.
1258 (generic_error_category::equivalent(int, const error_condition&)):
1260 (system_error_category): Define class and virtual functions as
1262 (system_error_category::equivalent(int, const error_condition&)):
1264 (generic_category_instance, system_category_instance): Use
1265 constinit union to make the objects immortal.
1267 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
1270 * src/c++11/system_error.cc
1271 (system_error_category::default_error_condition): Add 0 to
1273 * testsuite/19_diagnostics/error_category/102425.cc: New test.
1275 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
1277 * include/bits/fs_path.h (path::iterator): Add noexcept to all
1278 member functions and friend functions.
1279 (distance): Add noexcept.
1280 (advance): Add noexcept and inline.
1281 * include/experimental/bits/fs_path.h (path::iterator):
1282 Add noexcept to all member functions.
1284 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
1287 * include/std/tuple (_Tuple_impl): Add constexpr to constructor
1288 missed in previous patch.
1289 * testsuite/20_util/tuple/cons/102270.C: Moved to...
1290 * testsuite/20_util/tuple/cons/102270.cc: ...here.
1291 * testsuite/util/testsuite_allocator.h (SimpleAllocator): Add
1292 constexpr to constructor so it can be used for C++20 tests.
1294 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
1296 * testsuite/26_numerics/valarray/dr630-3.C: Moved to...
1297 * testsuite/26_numerics/valarray/dr630-3.cc: ...here.
1298 * testsuite/27_io/basic_iostream/cons/16251.C: Moved to...
1299 * testsuite/27_io/basic_iostream/cons/16251.cc: ...here.
1301 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1303 * src/Makefile.am (stamp-debug): Add all Makefiles as
1305 * src/Makefile.in: Regenerate.
1307 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1309 * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Increase
1310 timeout factor to 3.
1311 * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
1313 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1315 * doc/xml/manual/using.xml: Generalize to apply to more than
1317 * doc/html/manual/using_macros.html: Regenerate.
1319 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1321 * include/std/optional (nullptr_t): Make constructor noexcept.
1323 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1325 * include/bits/fs_path.h (advance): Remove non-deducible
1328 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1331 * include/std/tuple (_Head_base, _Tuple_impl): Add
1332 _GLIBCXX20_CONSTEXPR to allocator-extended constructors.
1333 (tuple<>::swap(tuple&)): Add _GLIBCXX20_CONSTEXPR.
1334 * testsuite/20_util/tuple/cons/102270.C: New test.
1336 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1339 * include/std/span (span(Range&&)): Add constraint to deduction
1342 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1344 * src/c++98/Makefile.am: Use CXXCOMPILE not LTCXXCOMPILE.
1345 * src/c++98/Makefile.in: Regenerate.
1347 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1349 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
1350 (to_string): Add noexcept if the type width is 32 bits or less.
1352 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1354 * include/bits/unique_ptr.h (__uniq_ptr_impl::_M_ptr)
1355 (__uniq_ptr_impl::_M_deleter): Add noexcept.
1357 2021-09-16 Thomas Rodgers <rodgert@twrodgers.com>
1360 * testsuite/29_atomics/atomic_ref/wait_notify.cc (test): Use
1361 va and vb as arguments to wait/notify, remove unused bb local.
1363 2021-09-15 Hugo Beauzée-Luyssen <hugo@beauzee.fr>
1365 * crossconfig.m4: Check for TLS support on mingw.
1366 * configure: Regenerate.
1368 2021-09-13 Jason Merrill <jason@redhat.com>
1370 * include/std/version: Define __cpp_lib_hardware_interference_size.
1371 * libsupc++/new: Define hardware interference size variables.
1373 2021-09-10 Jonathan Wakely <jwakely@redhat.com>
1375 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
1376 Fix invalid hostname to only match the .invalid TLD.
1378 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
1380 * include/bits/atomic_base.h (__atomic_base<P*>::compare_exchange_weak):
1382 * include/std/atomic (atomic<T*>::compare_exchange_weak): Use
1385 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
1387 * include/std/atomic: Tweak whitespace.
1389 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
1392 * include/bits/atomic_base.h (__is_valid_cmpexch_failure_order):
1393 New function to check if a memory order is valid for the failure
1394 case of compare exchange operations.
1395 (__atomic_base<I>::compare_exchange_weak): Simplify assertions
1396 by using __is_valid_cmpexch_failure_order.
1397 (__atomic_base<I>::compare_exchange_strong): Likewise.
1398 (__atomic_base<P*>::compare_exchange_weak): Likewise.
1399 (__atomic_base<P*>::compare_exchange_strong): Likewise.
1400 (__atomic_impl::compare_exchange_weak): Add assertion.
1401 (__atomic_impl::compare_exchange_strong): Likewise.
1402 * include/std/atomic (atomic::compare_exchange_weak): Likewise.
1403 (atomic::compare_exchange_strong): Likewise.
1405 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
1407 * include/std/functional (invoke_r): Define.
1408 * include/std/version (__cpp_lib_invoke_r): Define.
1409 * testsuite/20_util/function_objects/invoke/version.cc: Check
1410 for __cpp_lib_invoke_r as well as __cpp_lib_invoke.
1411 * testsuite/20_util/function_objects/invoke/4.cc: New test.
1413 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
1416 * include/std/span (span(Iter, size_type), span(Iter, Iter)):
1417 Add valid range checks.
1418 * testsuite/23_containers/span/cons_1_assert_neg.cc: New test.
1419 * testsuite/23_containers/span/cons_2_assert_neg.cc: New test.
1421 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
1423 * configure.ac: Fix checks for F_GETFL, F_SETFL and O_NONBLOCK.
1424 * configure: Regenerate.
1426 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
1428 * src/c++11/system_error.cc (error_category::~error_category()):
1429 Remove noexcept-specifier.
1430 (system_error::~system_error()): Likewise.
1431 * testsuite/19_diagnostics/error_category/noexcept.cc: New test.
1432 * testsuite/19_diagnostics/system_error/noexcept.cc: New test.
1434 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
1437 * include/bits/atomic_timed_wait.h (__timed_waiter_pool)
1438 [!_GLIBCXX_HAVE_PLATFORM_TIMED_WAIT]: Add missing return.
1440 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
1442 * include/experimental/internet (__make_resolver_error_code):
1443 Handle EAI_SYSTEM errors.
1444 (basic_resolver_results): Use __make_resolver_error_code. Use
1445 Glibc NI_MAXHOST and NI_MAXSERV values for buffer sizes.
1447 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
1449 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
1450 Try other service if "http" fails.
1452 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
1454 * testsuite/17_intro/names.cc: Undefine some more names used
1455 by Solaris system headers.
1457 2021-08-30 Jason Merrill <jason@redhat.com>
1460 * testsuite/30_threads/promise/requirements/lwg3466.cc:
1461 Remove dg-prune-outputs.
1463 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
1465 * include/bits/alloc_traits.h (allocator_traits): Add explicit
1466 specialization for allocator<void>. Improve doxygen comments.
1467 * include/bits/allocator.h (allocator<void>): Restore for the
1468 versioned namespace.
1469 (allocator<void>::construct, allocator<void>::destroy): Remove.
1470 * include/ext/extptr_allocator.h (_Extptr_allocator<void>):
1471 Add default constructor and converting constructor.
1473 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
1475 * include/bits/stl_uninitialized.h: Fix typo in comment.
1477 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
1480 * src/c++17/fs_ops.cc (fs::absolute): Call non-throwing form,
1481 to avoid unnecessary current_path() call.
1483 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
1485 * include/bits/std_function.h (function::function(F&&)): Give
1486 name to defaulted template parameter, to improve diagnostics.
1487 Use markdown for more doxygen comments.
1489 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
1491 * include/bits/std_function.h (function): Adjust doxygen
1493 * include/bits/unique_ptr.h (make_unique_for_overwrite):
1494 Change parameter name to match doxygen comment.
1496 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
1498 * include/bits/std_function.h (_function_base::_Base_manager):
1499 Replace _M_init_functor with a function template using a
1500 forwarding reference, and a pair of _M_create function
1501 templates. Reuse _M_create for the clone operation.
1502 (function::_Decay_t): New alias template.
1503 (function::_Callable): Simplify by using _Decay.
1504 (function::function(F)): Change parameter to forwarding
1505 reference, as per LWG 2447. Add noexcept-specifier. Simplify
1507 (function::operator=(F&&)): Add noexcept-specifier.
1508 * testsuite/20_util/function/cons/lwg2774.cc: New test.
1509 * testsuite/20_util/function/cons/noexcept.cc: New test.
1511 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
1513 * include/bits/std_function.h (function::function(F)): Add
1514 static assertions to check constructibility requirements.
1516 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
1519 * configure.ac: Check for O_NONBLOCK.
1520 * configure: Regenerate.
1521 * include/experimental/internet: Include <ws2tcpip.h> for
1522 Windows. Use preprocessor conditions around more constants.
1523 * include/experimental/socket: Use preprocessor conditions
1524 around more constants.
1525 * testsuite/experimental/net/internet/resolver/base.cc: Only use
1526 constants when the corresponding C macro is defined.
1527 * testsuite/experimental/net/socket/basic_socket.cc: Likewise.
1528 * testsuite/experimental/net/socket/socket_base.cc: Likewise.
1529 Make preprocessor checks more fine-grained.
1531 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
1533 * testsuite/17_intro/names.cc: Check 'sz'.
1535 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
1537 * testsuite/17_intro/names.cc: Adjust for Windows.
1539 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
1541 * include/std/valarray: Uglify 'func' parameters.
1542 * testsuite/17_intro/names.cc: Add 'func' to checks.
1544 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
1547 * include/bits/stl_uninitialized.h (_GLIBCXX_USE_ASSIGN_FOR_INIT):
1548 Define macro to check conditions for optimizing trivial cases.
1549 (__check_constructible): New function to do static assert.
1550 (uninitialized_copy, uninitialized_fill, uninitialized_fill_n):
1552 * testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc:
1553 Adjust dg-error pattern.
1554 * testsuite/23_containers/vector/cons/89164.cc: Likewise. Add
1555 C++17-specific checks from 89164_c++17.cc.
1556 * testsuite/23_containers/vector/cons/89164_c++17.cc: Removed.
1557 * testsuite/20_util/specialized_algorithms/uninitialized_copy/102064.cc:
1559 * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/102064.cc:
1561 * testsuite/20_util/specialized_algorithms/uninitialized_fill/102064.cc:
1563 * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/102064.cc:
1566 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
1569 * include/ext/rope (rope::erase(size_type)): Remove broken
1572 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
1574 * doc/xml/manual/status_cxx2020.xml: Update table.
1575 * doc/html/manual/status.html: Regenerate.
1577 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
1579 * include/std/type_traits (is_layout_compatible): Define.
1580 (is_corresponding_member): Define.
1581 * include/std/version (__cpp_lib_is_layout_compatible): Define.
1582 * testsuite/20_util/is_layout_compatible/is_corresponding_member.cc:
1584 * testsuite/20_util/is_layout_compatible/value.cc: New test.
1585 * testsuite/20_util/is_layout_compatible/version.cc: New test.
1586 * testsuite/20_util/is_pointer_interconvertible/with_class.cc:
1588 * testsuite/23_containers/span/layout_compat.cc: Do not use real
1589 std::is_layout_compatible trait if available.
1591 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
1593 * src/c++11/cxx11-shim_facets.cc: Fix mismatched class-key in
1594 explicit instantiation definitions.
1596 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
1598 * include/std/ranges (basic_istream_view): Add default template
1600 * testsuite/std/ranges/istream_view.cc: Check it.
1602 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
1604 * libsupc++/dyncast.cc (__dynamic_cast): Add __builtin_expect to
1607 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
1610 * testsuite/util/testsuite_fs.h (permissions_are_testable):
1613 2021-08-20 Jonathan Wakely <jwakely@redhat.com>
1616 * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
1617 Use new __gnu_test::permissions_are_testable() function.
1618 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
1620 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
1621 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
1622 * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
1623 * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
1624 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
1625 * testsuite/27_io/filesystem/operations/symlink_status.cc:
1627 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
1629 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
1631 * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc:
1633 * testsuite/experimental/filesystem/operations/exists.cc:
1635 * testsuite/experimental/filesystem/operations/is_empty.cc:
1637 * testsuite/experimental/filesystem/operations/remove.cc:
1639 * testsuite/experimental/filesystem/operations/remove_all.cc:
1641 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
1643 * testsuite/util/testsuite_fs.h (__gnu_test::permissions_are_testable):
1644 New function to guess whether testing permissions will work.
1646 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1648 * doc/xml/manual/status_cxx2020.xml: Move row earlier in table.
1649 * doc/html/manual/status.html: Regenerate.
1651 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1653 * doc/doxygen/user.cfg.in: Update to Doxygen 1.9.2
1655 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1658 * include/std/charconv (__to_chars_i): Remove redundant check.
1660 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1663 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)): Use base
1664 class' move constructor. Define as defaulted for versioned
1666 * testsuite/20_util/tuple/cons/101960.cc: New test.
1668 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1671 * doc/xml/manual/status_cxx2020.xml: Add P1739R4 to status table.
1672 * doc/html/manual/status.html: Regenerate.
1674 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1676 * include/bits/shared_ptr.h: Add @since and @headerfile tags.
1677 * include/bits/unique_ptr.h: Add @headerfile tags.
1679 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1681 * src/filesystem/ops-common.h (filesystem::file_time): Improve
1682 overflow check by using system_clock::duration::max().
1684 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1686 * include/bits/stl_tree.h: Tweak whitespace.
1688 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
1690 * include/bits/unique_ptr.h (default_delete): Add @since tag.
1691 (unique_ptr, unique_ptr<T[]>): Likewise. Improve @brief.
1692 (make_unique, make_unique_for_overwrite): Likewise. Add @tparam,
1693 @param, and @returns.
1694 (_MakeUniq): Move to __detail namespace. Add alias template
1697 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
1699 * include/bits/stl_function.h: Improve doxygen comments.
1701 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
1703 * doc/doxygen/user.cfg.in (PREDEFINED): Enable doxygen
1704 processing for C++20 components and components that depend on
1706 * include/bits/stl_algo.h (random_shuffle): Use @deprecated.
1707 * include/std/type_traits: Improve doxygen comments for C++20
1710 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
1712 * include/ext/type_traits.h (__promote_2, __promote_3)
1713 (__promote_4): Redfine as alias templates using __promoted_t.
1714 * include/std/complex (__promote_2): Remove partial
1715 specializations for std::complex.
1717 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
1719 * include/bits/stl_algo.h (min(initializer_list<T>))
1720 (min(initializer_list<T>, Compare)): Call __min_element directly to
1721 avoid redundant debug checks for valid ranges.
1722 (max(initializer_list<T>), max(initializer_list<T>, Compare)):
1723 Likewise, for __max_element.
1724 (minmax(initializer_list<T>), minmax(initializer_list<T>, Compare)):
1725 Likewise, for __minmax_element.
1727 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
1729 * include/debug/deque (deque(size_type, const T&, const A&)):
1730 Prevent class template argument deduction and replace with a
1732 * include/debug/forward_list (forward_list(size_type, const T&, const A&)):
1734 * include/debug/list (list(size_type, const T&, const A&)):
1736 * include/debug/vector (vector(size_type, const T&, const A&)):
1739 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
1741 * python/libstdcxx/v6/printers.py (StdBitReferencePrinter): Use
1742 'std::vector<bool>::reference' as type name, not _Bit_reference.
1743 (build_libstdcxx_dictionary): Register printers for vector<bool>
1744 types in debug mode too.
1745 * testsuite/libstdc++-prettyprinters/simple.cc: Adjust expected
1746 output for invalid _Bit_reference. Use vector<bool>::reference
1747 instead of _Bit_reference.
1748 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
1750 2021-08-17 Thomas Schwinge <thomas@codesourcery.com>
1752 * testsuite/lib/libstdc++.exp: Avoid illegal argument to verbose,
1755 2021-08-17 Luc Michel <lmichel@kalray.eu>
1756 Marc Poulhies <mpoulhies@kalrayinc.com>
1758 * testsuite/lib/gdb-test.exp (gdb_version_check)
1759 (gdb_version_check_xmethods): Only check the GDB version for
1760 local native targets.
1762 2021-08-17 Antony Polukhin <antoshkka@gmail.com>
1763 Jonathan Wakely <jwakely@redhat.com>
1765 * include/bits/random.tcc (seed_seq::seed_seq): Reserve capacity
1766 if distance is O(1).
1767 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1770 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
1772 * testsuite/26_numerics/random/seed_seq/cons/range.cc: Check
1773 construction from input iterators.
1775 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
1777 * python/libstdcxx/v6/printers.py (StdErrorCatPrinter): Remove.
1779 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
1782 * include/bits/std_function.h (function(function&&)): Check for
1783 non-empty parameter before doing any work.
1785 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
1787 * include/bits/cow_string.h (basic_string::contains): Do not
1788 define for -std=gnu++20.
1790 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
1792 * include/bits/ranges_util.h (__not_same_as): Rename to
1794 * include/std/ranges (__not_same_as): Likewise.
1796 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
1798 * include/std/utility (exchange): Add noexcept-specifier.
1799 * testsuite/20_util/exchange/noexcept.cc: New test.
1801 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
1803 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Define.
1804 (build_libstdcxx_dictionary): Register printer for
1805 std::error_code and std::error_condition.
1806 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test it.
1808 2021-08-16 Jonathan Wakely <jwakely@redhat.com>
1811 * src/c++11/debug.cc (PrintContext::_M_indent): Replace with a
1813 (print_word): Use qualified-id to access it.
1815 2021-08-16 Jonathan Wakely <jwakely@redhat.com>
1817 * python/Makefile.am [GLIBCXX_BUILD_DEBUG] (install-data-local):
1818 Install another copy of the GDB hook.
1819 * python/Makefile.in: Regenerate.
1821 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
1824 * include/c_global/cmath (hypot): Use __promoted_t.
1825 (lerp): Add new overload accepting any arithmetic types.
1826 * include/ext/type_traits.h (__promoted_t): New alias template.
1827 * testsuite/26_numerics/lerp.cc: Moved to...
1828 * testsuite/26_numerics/lerp/1.cc: ...here.
1829 * testsuite/26_numerics/lerp/constexpr.cc: New test.
1830 * testsuite/26_numerics/lerp/version.cc: New test.
1832 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
1834 * testsuite/26_numerics/lerp.cc: Add header name to #error.
1835 * testsuite/26_numerics/midpoint/integral.cc: Likewise.
1836 * testsuite/26_numerics/midpoint/version.cc: New test.
1838 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
1840 * include/experimental/random (experimental::randint): Add
1841 nodiscard attribute.
1843 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
1845 * src/c++98/locale_init.cc: Require C++11.
1846 * src/c++98/localename.cc: Likewise.
1847 * src/c++98/misc-inst.cc: Require C++98.
1849 2021-08-11 Jonathan Wakely <jwakely@redhat.com>
1852 * testsuite/experimental/random/randint.cc: Loop and retry if
1853 reseed() produces the same sequence.
1855 2021-08-11 Jonathan Wakely <jwakely@redhat.com>
1857 * include/std/type_traits (__cpp_lib_is_pointer_interconvertible)
1858 (is_pointer_interconvertible_base_of_v)
1859 (is_pointer_interconvertible_base_of): Define for C++20.
1860 * include/std/version (__cpp_lib_is_pointer_interconvertible):
1862 * testsuite/23_containers/span/layout_compat.cc: Use correct
1863 feature test macro for std::is_layout_compatible_v.
1864 * testsuite/20_util/is_pointer_interconvertible/value.cc: New test.
1865 * testsuite/20_util/is_pointer_interconvertible/version.cc: New test.
1867 2021-08-09 Jonathan Wakely <jwakely@redhat.com>
1869 * include/bits/regex.h (basic_regex::transform_primary): Use
1870 _GLIBCXX_STD_C::vector for local variable.
1871 * include/bits/regex.tcc (__regex_algo_impl): Use reference to
1872 _GLIBCXX_STD_C::vector base class of match_results.
1873 * include/bits/regex_automaton.tcc (_StateSeq:_M_clone): Use
1874 _GLIBCXX_STD_C::map and _GLIBCXX_STD_C::deque for local
1876 * include/bits/regex_compiler.h (_BracketMatcher): Use
1877 _GLIBCXX_STD_C::vector for data members.
1878 * include/bits/regex_executor.h (_Executor): Likewise.
1879 * include/std/regex [_GLIBCXX_DEBUG]: Include <debug/vector>.
1881 2021-08-09 François Dumont <fdumont@gcc.gnu.org>
1883 * include/debug/safe_container.h
1884 (_Safe_container(_Safe_container&&, const _Alloc&, std::true_type)): New.
1885 (_Safe_container(_Safe_container&&, const _Alloc&, std::false_type)): New.
1886 (_Safe_container(_Safe_container&&, const _Alloc&)): Use latters.
1888 2021-08-09 Jonathan Wakely <jwakely@redhat.com>
1890 * testsuite/23_containers/unordered_map/cons/default.cc: Add
1891 equality comparison operators to allocator.
1892 * testsuite/23_containers/unordered_set/cons/default.cc:
1895 2021-08-08 François Dumont <fdumont@gcc.gnu.org>
1897 * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Replace 'failed_assertion'
1898 dg-prune-output reason with 'builtin_unreachable'.
1899 * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc: Likewise.
1900 * testsuite/25_algorithms/equal/debug/constexpr_neg.cc: Likewise.
1901 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc: Likewise.
1902 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
1903 * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc: Likewise.
1904 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc: Likewise.
1905 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
1906 * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc: Likewise.
1908 2021-08-08 Hans-Peter Nilsson <hp@bitrange.com>
1910 * testsuite/std/ranges/iota/max_size_type.cc: Set
1911 dg-timeout-factor to 4.
1913 2021-08-06 Jonathan Wakely <jwakely@redhat.com>
1915 * libsupc++/compare (compare_three_way, strong_order)
1916 (weak_order, partial_order, compare_strong_order_fallback)
1917 (compare_weak_order_fallback, compare_partial_order_fallback):
1918 Move nodiscard attributes to correct location.
1920 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
1923 * include/bits/ranges_base.h (ranges::begin, ranges::end)
1924 (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
1925 (ranges::empty, ranges::data): Move attribute after the
1926 declarator-id instead of at the end of the declarator.
1927 * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator):
1928 Move attributes back to the start of the function declarator,
1929 but move the requires-clause to the end.
1930 (common_iterator): Move attribute after the declarator-id.
1931 * include/bits/stl_queue.h (queue): Remove ill-formed attributes
1932 from friend declaration that are not definitions.
1933 * include/std/ranges (views::all, views::filter)
1934 (views::transform, views::take, views::take_while,
1935 views::drop) (views::drop_while, views::join,
1936 views::lazy_split) (views::split, views::counted,
1937 views::common, views::reverse) (views::elements): Move
1938 attributes after the declarator-id.
1940 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
1942 * libsupc++/compare (partial_ordering, weak_ordering)
1943 (strong_ordering, is_eq, is_neq, is_lt, is_lteq, is_gt, is_gteq)
1944 (compare_three_way, strong_order, weak_order, partial_order)
1945 (compare_strong_order_fallback, compare_weak_order_fallback)
1946 (compare_partial_order_fallback, __detail::__synth3way): Add
1947 nodiscard attribute.
1948 * testsuite/18_support/comparisons/categories/zero_neg.cc: Add
1949 -Wno-unused-result to options.
1951 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
1954 * include/bits/ranges_base.h (ranges::begin, ranges::end)
1955 (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
1956 (ranges::empty, ranges::data): Move attribute to the end of
1958 * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator)
1959 (common_iterator): Likewise for non-member operator functions.
1960 * include/std/ranges (views::all, views::filter)
1961 (views::transform, views::take, views::take_while, views::drop)
1962 (views::drop_while, views::join, views::lazy_split)
1963 (views::split, views::counted, views::common, views::reverse)
1964 (views::elements): Likewise.
1965 * testsuite/std/ranges/access/101782.cc: New test.
1967 2021-08-04 Jonathan Wakely <jwakely@redhat.com>
1969 * include/bits/forward_list.h: Add [[nodiscard]] to functions
1970 with no side-effects.
1971 * include/bits/stl_bvector.h: Likewise.
1972 * include/bits/stl_deque.h: Likewise.
1973 * include/bits/stl_list.h: Likewise.
1974 * include/bits/stl_queue.h: Likewise.
1975 * include/bits/stl_stack.h: Likewise.
1976 * include/bits/stl_vector.h: Likewise.
1977 * include/debug/deque: Likewise.
1978 * include/debug/forward_list: Likewise.
1979 * include/debug/list: Likewise.
1980 * include/debug/safe_iterator.h: Likewise.
1981 * include/debug/vector: Likewise.
1982 * include/std/array: Likewise.
1983 * testsuite/23_containers/array/creation/3_neg.cc: Use
1985 * testsuite/23_containers/array/debug/back1_neg.cc: Cast result
1987 * testsuite/23_containers/array/debug/back2_neg.cc: Likewise.
1988 * testsuite/23_containers/array/debug/front1_neg.cc: Likewise.
1989 * testsuite/23_containers/array/debug/front2_neg.cc: Likewise.
1990 * testsuite/23_containers/array/debug/square_brackets_operator1_neg.cc:
1992 * testsuite/23_containers/array/debug/square_brackets_operator2_neg.cc:
1994 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
1995 Adjust dg-error line numbers.
1996 * testsuite/23_containers/deque/cons/clear_allocator.cc: Cast
1998 * testsuite/23_containers/deque/debug/invalidation/4.cc:
2000 * testsuite/23_containers/deque/types/1.cc: Use
2002 * testsuite/23_containers/list/types/1.cc: Cast result to void.
2003 * testsuite/23_containers/priority_queue/members/7161.cc:
2005 * testsuite/23_containers/queue/members/7157.cc: Likewise.
2006 * testsuite/23_containers/vector/59829.cc: Likewise.
2007 * testsuite/23_containers/vector/ext_pointer/types/1.cc:
2009 * testsuite/23_containers/vector/ext_pointer/types/2.cc:
2011 * testsuite/23_containers/vector/types/1.cc: Use
2014 2021-08-04 Jonathan Wakely <jwakely@redhat.com>
2016 * include/bits/iterator_concepts.h (iter_move): Add
2018 * include/bits/range_access.h (begin, end, cbegin, cend)
2019 (rbegin, rend, crbegin, crend, size, data, ssize): Likewise.
2020 * include/bits/ranges_base.h (ranges::begin, ranges::end)
2021 (ranges::cbegin, ranges::cend, ranges::rbegin, ranges::rend)
2022 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
2023 (ranges::empty, ranges::data, ranges::cdata): Likewise.
2024 * include/bits/stl_iterator.h (reverse_iterator, __normal_iterator)
2025 (back_insert_iterator, front_insert_iterator, insert_iterator)
2026 (move_iterator, move_sentinel, common_iterator)
2027 (counted_iterator): Likewise.
2028 * include/bits/stl_iterator_base_funcs.h (distance, next, prev):
2030 * include/bits/stream_iterator.h (istream_iterator)
2031 (ostream_iterartor): Likewise.
2032 * include/bits/streambuf_iterator.h (istreambuf_iterator)
2033 (ostreambuf_iterator): Likewise.
2034 * include/std/ranges (views::single, views::iota, views::all)
2035 (views::filter, views::transform, views::take, views::take_while)
2036 (views::drop, views::drop_while, views::join, views::lazy_split)
2037 (views::split, views::counted, views::common, views::reverse)
2038 (views::elements): Likewise.
2039 * testsuite/20_util/rel_ops.cc: Use -Wno-unused-result.
2040 * testsuite/24_iterators/move_iterator/greedy_ops.cc: Likewise.
2041 * testsuite/24_iterators/normal_iterator/greedy_ops.cc:
2043 * testsuite/24_iterators/reverse_iterator/2.cc: Likewise.
2044 * testsuite/24_iterators/reverse_iterator/greedy_ops.cc:
2046 * testsuite/21_strings/basic_string/range_access/char/1.cc:
2047 Cast result to void.
2048 * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
2050 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
2052 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
2054 * testsuite/23_containers/array/range_access.cc: Likewise.
2055 * testsuite/23_containers/deque/range_access.cc: Likewise.
2056 * testsuite/23_containers/forward_list/range_access.cc:
2058 * testsuite/23_containers/list/range_access.cc: Likewise.
2059 * testsuite/23_containers/map/range_access.cc: Likewise.
2060 * testsuite/23_containers/multimap/range_access.cc: Likewise.
2061 * testsuite/23_containers/multiset/range_access.cc: Likewise.
2062 * testsuite/23_containers/set/range_access.cc: Likewise.
2063 * testsuite/23_containers/unordered_map/range_access.cc:
2065 * testsuite/23_containers/unordered_multimap/range_access.cc:
2067 * testsuite/23_containers/unordered_multiset/range_access.cc:
2069 * testsuite/23_containers/unordered_set/range_access.cc:
2071 * testsuite/23_containers/vector/range_access.cc: Likewise.
2072 * testsuite/24_iterators/customization_points/iter_move.cc:
2074 * testsuite/24_iterators/istream_iterator/sentinel.cc:
2076 * testsuite/24_iterators/istreambuf_iterator/sentinel.cc:
2078 * testsuite/24_iterators/move_iterator/dr2061.cc: Likewise.
2079 * testsuite/24_iterators/operations/prev_neg.cc: Likewise.
2080 * testsuite/24_iterators/ostreambuf_iterator/2.cc: Likewise.
2081 * testsuite/24_iterators/range_access/range_access.cc:
2083 * testsuite/24_iterators/range_operations/100768.cc: Likewise.
2084 * testsuite/26_numerics/valarray/range_access2.cc: Likewise.
2085 * testsuite/28_regex/range_access.cc: Likewise.
2086 * testsuite/experimental/string_view/range_access/char/1.cc:
2088 * testsuite/experimental/string_view/range_access/wchar_t/1.cc:
2090 * testsuite/ext/vstring/range_access.cc: Likewise.
2091 * testsuite/std/ranges/adaptors/take.cc: Likewise.
2092 * testsuite/std/ranges/p2259.cc: Likewise.
2094 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2096 * include/bits/random.tcc (linear_congruential_engine): Do not
2097 define static constexpr members when they are implicitly inline.
2098 * include/std/ratio (ratio, __ratio_multiply, __ratio_divide)
2099 (__ratio_add, __ratio_subtract): Likewise.
2100 * include/std/type_traits (integral_constant): Likewise.
2101 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2104 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2106 * testsuite/util/testsuite_common_types.h: Replace uses of
2107 tr1::unordered_map and tr1::unordered_set with their C++11
2109 * testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust
2110 dg-error line number.
2111 * testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
2112 * testsuite/29_atomics/atomic_integral/cons/assign_neg.cc:
2114 * testsuite/29_atomics/atomic_integral/cons/copy_neg.cc:
2116 * testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc:
2118 * testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc:
2120 * testsuite/29_atomics/atomic_integral/operators/increment_neg.cc:
2123 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2125 * include/std/memory_resource (polymorphic_allocator::delete_object):
2126 Call destructor directly instead of using destroy.
2127 (allocator_traits<polymorphic_allocator<T>>): Define partial
2130 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2132 * testsuite/20_util/function_objects/binders/3113.cc: Remove
2133 trailing whitespace.
2134 * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
2135 * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
2136 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
2138 * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
2139 * testsuite/25_algorithms/headers/algorithm/synopsis.cc:
2141 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
2143 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
2146 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2148 * doc/xml/manual/evolution.xml: Document deprecation.
2149 * doc/html/*: Regenerate.
2150 * include/bits/c++config (_GLIBCXX14_DEPRECATED): Define.
2151 (_GLIBCXX14_DEPRECATED_SUGGEST): Define.
2152 * include/bits/stl_algo.h (random_shuffle): Deprecate for C++14
2154 * testsuite/25_algorithms/headers/algorithm/synopsis.cc: Adjust
2155 for C++11 and C++14 changes to std::random_shuffle and
2157 * testsuite/25_algorithms/random_shuffle/1.cc: Add options to
2158 use deprecated algorithms.
2159 * testsuite/25_algorithms/random_shuffle/59603.cc: Likewise.
2160 * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise.
2161 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
2163 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
2166 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2168 * testsuite/23_containers/forward_list/operations/3.cc:
2169 Use lambda instead of std::bind2nd.
2170 * testsuite/20_util/function_objects/binders/3113.cc: Add
2171 options for testing deprecated features.
2172 * testsuite/20_util/pair/cons/99957.cc: Likewise.
2173 * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
2174 * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
2175 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
2177 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
2178 * testsuite/20_util/shared_ptr/cons/auto_ptr.cc: Likewise.
2179 * testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc: Likewise.
2180 * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
2181 * testsuite/20_util/unique_ptr/cons/auto_ptr.cc: Likewise.
2182 * testsuite/20_util/unique_ptr/cons/auto_ptr_neg.cc: Likewise.
2183 * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
2185 * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
2187 * testsuite/lib/dg-options.exp (dg_add_options_using-deprecated):
2190 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2192 * include/bits/regex_executor.h (_State_info): Replace
2193 unique_ptr<bool[]> with array of bool.
2194 * include/bits/regex_executor.tcc: Likewise.
2195 * include/bits/regex_scanner.tcc: Replace std::strchr with
2197 * include/std/regex: Replace standard headers with smaller
2199 * testsuite/28_regex/traits/char/lookup_classname.cc: Include
2200 <string.h> for strlen.
2201 * testsuite/28_regex/traits/char/lookup_collatename.cc:
2204 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2206 * include/bits/locale_conv.h (__detail::_Scoped_ptr): Define new
2207 RAII class template.
2208 (wstring_convert, wbuffer_convert): Use __detail::_Scoped_ptr
2209 instead of unique_ptr.
2211 2021-08-02 Patrick Palka <ppalka@redhat.com>
2214 * include/bits/ranges_algo.h (__reverse_copy_fn::operator()):
2215 Add missing std::move in return statement.
2216 (__partition_copy_fn::operator()): Rename templtae parameter
2217 _O2 to _Out2. Uglify function parameters out_true and out_false.
2218 * include/bits/ranges_algobase.h (__copy_or_move): Add missing
2219 std::move to recursive call that unwraps a __normal_iterator
2221 * testsuite/25_algorithms/copy/constrained.cc (test06): New test.
2222 * testsuite/25_algorithms/move/constrained.cc (test05): New test.
2224 2021-08-02 Patrick Palka <ppalka@redhat.com>
2227 * include/std/ranges (lazy_split_view::_InnerIter::base): Make
2228 the const& overload unconstrained and return a const reference
2229 as per LWG 3533. Make unconditionally noexcept.
2230 (elements_view::base): Revert accidental r12-569 change.
2231 (elements_view::_Iterator::base): Make the const& overload
2232 unconstrained and return a const reference as per LWG 3533.
2233 Make unconditionally noexcept.
2235 2021-08-02 Patrick Palka <ppalka@redhat.com>
2238 * include/std/ranges (join_view::_Iterator::_Iterator): Add
2241 2021-08-02 Jonathan Wakely <jwakely@redhat.com>
2244 * src/filesystem/ops-common.h (get_temp_directory_from_env):
2245 Add error_code parameter.
2246 * src/c++17/fs_ops.cc (fs::temp_directory_path): Pass error_code
2247 argument to get_temp_directory_from_env and check it.
2248 * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
2250 2021-08-02 Jonathan Wakely <jwakely@redhat.com>
2252 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
2253 Add dg-error for c++11_only target.
2255 2021-07-30 Jonathan Wakely <jwakely@redhat.com>
2258 * configure.ac: Check for secure_getenv.
2259 * config.h.in: Regenerate.
2260 * configure: Regenerate.
2261 * src/filesystem/ops-common.h (get_temp_directory_from_env): New
2262 helper function to obtain path from the environment.
2263 * src/c++17/fs_ops.cc (fs::temp_directory_path): Use new helper.
2264 * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
2265 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
2266 Print messages if test cannot be run.
2267 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
2268 Likewise. Fix incorrect condition. Use "TMP" to work with
2269 Windows as well as POSIX.
2271 2021-07-29 Hans-Peter Nilsson <hp@bitrange.com>
2273 * src/c++17/memory_resource.cc: Use __exchange instead
2276 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
2278 * include/experimental/optional (__throw_bad_optional_access):
2279 Replace GNU attribute with C++11 attribute.
2280 (optional::value, optional::value_or): Use if statements
2281 instead of conditional expressions.
2282 * include/std/optional (__throw_bad_optional_access)
2283 (optional::value, optional::value_or): Likewise.
2285 2021-07-27 Marek Polacek <polacek@redhat.com>
2289 * testsuite/20_util/tuple/comparison_operators/overloaded.cc:
2291 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
2294 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
2296 * include/bits/cow_string.h: Consistently use tab for
2299 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
2301 * include/Makefile.am: Add new header.
2302 * include/Makefile.in: Regenerate.
2303 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
2304 (basic_string): Move definition of Copy-on-Write string to
2306 * include/bits/basic_string.tcc: Likewise.
2307 * include/bits/cow_string.h: New file.
2309 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
2311 * include/std/algorithm: Do not include <utility>.
2312 * include/std/functional: Likewise.
2313 * include/std/regex: Include <bits/stl_pair.h> instead of
2315 * include/debug/map.h: Likewise.
2316 * include/debug/multimap.h: Likewise.
2317 * include/debug/multiset.h: Likewise.
2318 * include/debug/set.h: Likewise.
2319 * include/debug/vector: Likewise.
2320 * include/bits/fs_path.h: Likewise.
2321 * include/bits/unique_ptr.h: Do not include <utility>.
2322 * include/experimental/any: Likewise.
2323 * include/experimental/executor: Likewise.
2324 * include/experimental/memory: Likewise.
2325 * include/experimental/optional: Likewise.
2326 * include/experimental/socket: Use __exchange instead
2328 * src/filesystem/ops-common.h: Likewise.
2329 * testsuite/20_util/default_delete/48631_neg.cc: Adjust expected
2330 errors to not use a hardcoded line number.
2331 * testsuite/20_util/default_delete/void_neg.cc: Likewise.
2332 * testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc:
2333 Include <utility> for std::as_const.
2334 * testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constrained.cc:
2336 * testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc:
2338 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constrained.cc:
2340 * testsuite/23_containers/vector/cons/destructible_debug_neg.cc:
2341 Adjust dg-error line number.
2343 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
2345 * include/Makefile.am: Add bits/utility.h header.
2346 * include/Makefile.in: Regenerate.
2347 * include/bits/utility.h: New file.
2348 * include/std/utility (tuple_size, tuple_element): Move
2350 * include/std/type_traits (__is_tuple_like_impl<tuple<T...>>):
2352 (_Index_tuple, _Build_index_tuple, integer_sequence): Likewise.
2353 (in_place_t, in_place_index_t, in_place_type_t): Likewise.
2354 * include/bits/ranges_util.h: Include new header instead of
2356 * include/bits/stl_pair.h (tuple_size, tuple_element): Move
2357 partial specializations for std::pair here.
2358 (get): Move overloads for std::pair here.
2359 * include/std/any: Include new header instead of <utility>.
2360 * include/std/array: Likewise.
2361 * include/std/memory_resource: Likewise.
2362 * include/std/optional: Likewise.
2363 * include/std/variant: Likewise.
2364 * include/std/tuple: Likewise.
2365 (__is_tuple_like_impl<tuple<T...>>): Move here.
2366 (get) Declare overloads for std::array.
2367 * include/std/version (__cpp_lib_tuples_by_type): Change type
2369 * testsuite/20_util/optional/84601.cc: Include <utility>.
2370 * testsuite/20_util/specialized_algorithms/uninitialized_fill/constrained.cc:
2372 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
2373 Adjust dg-error line numbers.
2374 * testsuite/std/ranges/access/cbegin.cc: Include <utility>.
2375 * testsuite/std/ranges/access/cend.cc: Likewise.
2376 * testsuite/std/ranges/access/end.cc: Likewise.
2377 * testsuite/std/ranges/single_view.cc: Likewise.
2379 2021-07-23 Jonathan Wakely <jwakely@redhat.com>
2381 * include/std/future: Include <bits/atomic_base.h> instead of
2384 2021-07-23 Jonathan Wakely <jwakely@redhat.com>
2386 * include/bits/stl_relops.h: Update documentation comments.
2388 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
2391 * include/bits/hashtable.h (_Hashtable): Replace mixin with
2392 _Enable_default_ctor. Construct it explicitly in all
2393 non-forwarding, non-defaulted constructors.
2394 * testsuite/23_containers/unordered_map/cons/default.cc: Check
2395 non-default constructors can be used.
2396 * testsuite/23_containers/unordered_set/cons/default.cc:
2399 2021-07-22 David Edelsohn <dje.gcc@gmail.com>
2401 * config/os/aix/os_defines.h (__LIBC_NO_CPP_MATH_OVERLOADS__): Define.
2403 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
2406 * include/ext/new_allocator.h (_GLIBCXX_OPERATOR_NEW)
2407 (_GLIBCXX_OPERATOR_DELETE, _GLIBCXX_SIZED_DEALLOC): Define.
2408 (allocator::allocate, allocator::deallocate): Use new macros.
2410 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
2413 * include/bits/ranges_uninitialized.h (_DestroyGuard): Change
2414 constructor parameter to reference and use addressof.
2415 * testsuite/util/testsuite_iterators.h: Define deleted operator&
2416 overloads for test iterators.
2418 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
2420 * include/bits/std_function.h (_Function_base): Add
2421 default member initializers and define constructor as defaulted.
2422 (function::_M_invoker): Add default member initializer.
2424 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
2427 * doc/xml/manual/debug_mode.xml: Update documentation about
2428 debug capability of std::array.
2429 * doc/html/*: Regenerate.
2430 * include/debug/array: New file.
2432 2021-07-21 Jonathan Wakely <jwakely@redhat.com>
2435 * include/ext/rope (sequence_buffer): Add move constructor and
2436 move assignment operator.
2437 * testsuite/ext/rope/101542.cc: New test.
2439 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
2442 * src/c++17/fs_ops.cc (fs::create_directories): Use status
2443 instead of symlink_status.
2444 * src/filesystem/ops.cc (fs::create_directories): Likewise.
2445 * testsuite/27_io/filesystem/operations/create_directories.cc:
2446 Check symlink to existing directory.
2447 * testsuite/27_io/filesystem/operations/create_directory.cc: Do
2448 not test with symlinks on Windows.
2449 * testsuite/experimental/filesystem/operations/create_directories.cc:
2450 Check symlink to existing directory.
2451 * testsuite/experimental/filesystem/operations/create_directory.cc:
2452 Do not test with symlinks on Windows.
2454 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
2457 * include/bits/hashtable.h (_Hashtable): Conditionally delete
2458 default constructor by deriving from _Enable_special_members.
2459 * testsuite/23_containers/unordered_map/cons/default.cc: New test.
2460 * testsuite/23_containers/unordered_set/cons/default.cc: New test.
2462 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
2465 * src/c++17/fs_ops.cc (create_dir): Adjust whitespace.
2466 * testsuite/27_io/filesystem/operations/create_directory.cc:
2467 Test creating directory with name of existing symlink to
2469 * testsuite/experimental/filesystem/operations/create_directory.cc:
2472 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2474 * include/std/tuple (get<I>): Add deleted overload for bad
2476 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
2479 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2481 * include/bits/max_size_type.h (numeric_limits<__max_size_type>):
2482 Use __int_traits unconditionally.
2484 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2486 * include/bits/random.h (_Shift::__value): Use constexpr.
2487 (_Select_uint_least_t::type): Use using-declaration.
2489 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2492 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2494 * include/bits/cpp_type_traits.h (__INT_N): Use __extension__
2495 instead of diagnostic pragmas.
2496 * include/bits/functional_hash.h: Likewise.
2497 * include/bits/iterator_concepts.h (__is_signed_int128)
2498 (__is_unsigned_int128): Likewise.
2499 * include/bits/max_size_type.h (__max_size_type): Likewise.
2500 (numeric_limits<__max_size_type>): Likewise.
2501 * include/bits/std_abs.h (abs): Likewise.
2502 * include/bits/stl_algobase.h (__size_to_integer): Likewise.
2503 * include/bits/uniform_int_dist.h (uniform_int_distribution):
2505 * include/ext/numeric_traits.h (_GLIBCXX_INT_N_TRAITS):
2507 * include/std/type_traits (__is_integral_helper<INT_N>)
2508 (__is_signed_integer, __is_unsigned_integer)
2509 (__make_unsigned<INT_N>, __make_signed<INT_N>): Likewise.
2510 * include/std/limits (__INT_N): Add __extension__ keyword.
2511 * include/bits/random.h (_Select_uint_least_t)
2512 (random_device): Likewise.
2514 2021-07-16 Patrick Palka <ppalka@redhat.com>
2517 * include/std/ranges (_CachedPosition::_M_get): For non-forward
2518 ranges, just call __builtin_unreachable.
2519 * testsuite/std/ranges/istream_view.cc (test05): New test.
2521 2021-07-16 Patrick Palka <ppalka@redhat.com>
2524 * include/std/ranges (split_view::split_view): Use std::move.
2525 (split_view::_Iterator::_Iterator): Remove redundant
2526 default_initializable constraint.
2527 (split_view::_Sentinel::_Sentinel): Declare.
2528 * testsuite/std/ranges/adaptors/split.cc (test02): New test.
2530 2021-07-16 Marek Polacek <polacek@redhat.com>
2532 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Add
2535 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2537 * include/bits/unique_ptr.h: Adjust doxygen markup.
2539 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2542 * include/std/type_traits: Adjust doxygen markup.
2544 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2546 * include/bits/cpp_type_traits.h: Add diagnostic pragmas around
2547 uses of non-standard integer types.
2548 * include/bits/functional_hash.h: Likewise.
2549 * include/bits/iterator_concepts.h: Likewise.
2550 * include/bits/max_size_type.h: Likewise.
2551 * include/bits/std_abs.h: Likewise.
2552 * include/bits/stl_algobase.h: Likewise.
2553 * include/bits/uniform_int_dist.h: Likewise.
2554 * include/ext/numeric_traits.h: Likewise.
2555 * include/std/type_traits: Likewise.
2557 2021-07-15 Jonathan Wakely <jwakely@redhat.com>
2560 * include/std/tuple (tuple_element): Improve static_assert text.
2561 (__get_helper): Add deleted overload.
2562 (get<i>(tuple<T...>&&), get<i>(const tuple<T...>&&)): Use
2563 __get_helper directly.
2564 (__get_helper2): Remove.
2565 (__find_uniq_type_in_pack): New constexpr helper function.
2566 (get<T>): Use __find_uniq_type_in_pack and __get_helper instead
2568 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
2570 * testsuite/20_util/tuple/element_access/101427.cc: New test.
2572 2021-07-15 Jonathan Wakely <jwakely@redhat.com>
2575 * include/bits/c++config (__replacement_assert): Add noexcept.
2576 [!_GLIBCXX_VERBOSE] (__glibcxx_assert_impl): Use __builtin_abort
2577 instead of __replacement_assert.
2579 2021-07-14 Jonathan Wakely <jwakely@redhat.com>
2581 * include/std/string_view (basic_string_view(It, End)): Add
2583 * testsuite/21_strings/basic_string_view/cons/char/range.cc:
2584 Check noexcept-specifier. Also check construction without CTAD.
2586 2021-07-13 Jonathan Wakely <jwakely@redhat.com>
2589 * include/std/string_view (ends_with): Use traits_type::compare
2592 2021-07-13 Jonathan Wakely <jwakely@redhat.com>
2594 * include/std/string_view: Only include <bits/ranges_base.h>
2595 once, and only for C++20 and later.
2597 2021-07-12 Jonathan Wakely <jwakely@redhat.com>
2600 * include/std/span (as_writable_bytes): Add requires-clause.
2601 * testsuite/23_containers/span/101411.cc: New test.
2603 2021-07-09 Matheus Castanho <msc@linux.ibm.com>
2605 * include/std/mutex (__lock_impl): Check
2606 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
2608 2021-07-02 Jonathan Wakely <jwakely@redhat.com>
2611 * include/bits/unique_ptr.h (unique_ptr<T[],D>::operator[]):
2612 Remove noexcept-specifier.
2613 (unique_ptr<T[],D>::_S_nothrow_deref): Remove.
2614 * testsuite/20_util/unique_ptr/lwg2762.cc: Remove checks for
2617 2021-07-01 Jonathan Wakely <jwakely@redhat.com>
2619 * doc/doxygen/doxygroups.cc: Fix docs for std::literals.
2620 * doc/doxygen/user.cfg.in: Exclude the Networking TS header.
2621 Add some more predefined macros.
2622 * include/bits/fs_fwd.h: Move @addtogroup commands inside
2623 namespaces. Add better documentation.
2624 * include/bits/fs_path.h: Likewise.
2625 * include/experimental/bits/fs_fwd.h: Likewise.
2626 * include/experimental/bits/fs_path.h: Likewise.
2627 * include/ext/throw_allocator.h: Fix typo and improve docs.
2628 * include/std/chrono: Move @addtogroup commands.
2629 * include/std/system_error: Move @addtogroup commands.
2630 * libsupc++/exception: Improve documentation.
2631 * libsupc++/exception.h: Add @since documentation.
2633 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
2636 * doc/doxygen/user.cfg.in (INPUT): Add <experimental/simd>.
2637 (COLS_IN_ALPHA_INDEX): Remove obsolete tag.
2638 (PREDEFINED): Add/fix some more macros that need to be expanded.
2639 * include/bits/random.h: Stop Doxygen from documenting internal
2640 implementation details.
2641 * include/bits/random.tcc: Likewise.
2642 * include/bits/this_thread_sleep.h: Fix @file name.
2643 * include/experimental/bits/simd.h: Add to Doxygen group. Do not
2644 document internal implementation details.
2645 * include/experimental/bits/simd_detail.h: Do not document
2646 internal implementation details.
2647 * include/experimental/simd: Define Doxygen groups.
2648 * include/experimental/type_traits: Improve documentation for
2649 the header file. Define groups. Use @since commands.
2650 * include/std/scoped_allocator (scoped_allocator_adaptor): Move
2651 declaration before undocumented region.
2652 * include/std/type_traits (true_type, false_type): Use using
2653 declaration instead of typedef.
2654 (is_invocable_v, is_nothrow_invocable_v, is_invocable_r_v)
2655 (is_nothrow_invocable_r_v): Move definitions next to other C++17
2657 Do not document internal implementation details. Move misplaced
2658 group-end command. Define group for variable templates.
2659 * include/std/variant: Do not document internal implementation
2661 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2664 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
2666 * include/experimental/simd: Do not define anything pre-C++17.
2668 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
2670 * include/bits/random.tcc [__cpp_inline_variables]: Remove
2671 redundant definitions of static constexpr member variables.
2672 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2675 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
2677 * include/bits/streambuf.tcc (__copy_streambufs_eof): Remove
2678 explicit instantiation declarations.
2679 * src/c++11/streambuf-inst.cc (__copy_streambufs_eof): Remove
2680 explicit instantiation definitions.
2682 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
2685 * testsuite/17_intro/names.cc: Fix #if condition for names used
2688 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
2691 * include/bits/unique_ptr.h (unique_ptr<T[], D>::operator[]):
2692 Fail gracefully if element_type is incomplete.
2693 * testsuite/20_util/unique_ptr/cons/incomplete.cc: Clarify that
2694 the standard doesn't require this test to work for array types.
2695 * testsuite/20_util/unique_ptr/lwg2762.cc: Check that incomplete
2696 types can be used with array specialization.
2697 * testsuite/20_util/unique_ptr/101236.cc: New test.
2699 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
2701 * doc/xml/manual/intro.xml: Document LWG 415 change.
2702 * doc/html/manual/bugs.html: Regenerate.
2703 * include/bits/istream.tcc (ws): Create sentry and catch
2705 * testsuite/27_io/basic_istream/ws/char/lwg415.cc: New test.
2706 * testsuite/27_io/basic_istream/ws/wchar_t/lwg415.cc: New test.
2708 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
2710 * include/bits/ostream.tcc (basic_ostream::write): Call sputn
2711 directly instead of using _M_write. Do setstate(__err) all
2712 outside the try-catch block.
2713 * include/std/ostream (basic_ostream::_M_write): Declare
2714 private. Use __ostream_insert. Do not define for the versioned
2717 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
2719 * doc/xml/manual/intro.xml: Document LWG 581 change.
2720 * doc/html/manual/bugs.html: Regenerate.
2721 * include/bits/basic_ios.tcc: Whitespace.
2722 * include/bits/ostream.tcc (basic_ostream::flush()): Construct
2724 * testsuite/27_io/basic_ostream/flush/char/2.cc: Check
2726 * testsuite/27_io/basic_ostream/flush/char/exceptions_badbit_throw.cc:
2728 * testsuite/27_io/basic_ostream/flush/wchar_t/2.cc: Likewise.
2729 * testsuite/27_io/basic_ostream/flush/wchar_t/exceptions_badbit_throw.cc:
2732 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
2734 * include/bits/ostream.tcc (sentry): Only set failbit if badbit
2735 is set, not if eofbit is set.
2736 (tellp, seekp, seekp): Create sentry object. Do not set badbit
2738 * testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc:
2739 Adjust expected behaviour.
2740 * testsuite/27_io/basic_ostream/seekp/wchar_t/exceptions_badbit_throw.cc:
2742 * testsuite/27_io/basic_ostream/tellp/char/exceptions_badbit_throw.cc:
2744 * testsuite/27_io/basic_ostream/tellp/wchar_t/exceptions_badbit_throw.cc:
2746 * testsuite/27_io/basic_ostream/seekp/char/n3168.cc: New test.
2747 * testsuite/27_io/basic_ostream/seekp/wchar_t/n3168.cc: New test.
2748 * testsuite/27_io/basic_ostream/tellp/char/n3168.cc: New test.
2749 * testsuite/27_io/basic_ostream/tellp/wchar_t/n3168.cc: New test.
2751 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
2753 * include/std/syncstream (basic_syncbuf::swap()): Remove
2754 noexcept, as per LWG 3498.
2756 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
2759 * testsuite/17_intro/names.cc: Undef more names for newlib and
2760 also for arm-none-linux-gnueabi.
2761 * testsuite/experimental/names.cc: Disable PCH.
2763 2021-06-25 Matthias Kretz <m.kretz@gsi.de>
2765 * include/experimental/bits/simd.h (__bit_cast): Implement via
2766 __builtin_bit_cast #if available.
2767 (__proposed::simd_bit_cast): Add overloads for simd and
2768 simd_mask, which use __builtin_bit_cast (or __bit_cast #if not
2769 available), which return an object of the requested type with
2770 the same bits as the argument.
2771 * include/experimental/bits/simd_math.h: Use simd_bit_cast
2772 instead of __bit_cast to allow casts to fixed_size_simd.
2773 (copysign): Remove branch that was only required if __bit_cast
2774 cannot be constexpr.
2775 * testsuite/experimental/simd/tests/bits/test_values.h: Switch
2776 from __bit_cast to __proposed::simd_bit_cast since the former
2777 will not cast fixed_size objects anymore.
2779 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2781 * include/experimental/bits/simd_math.h
2782 (_GLIBCXX_SIMD_MATH_CALL2_): Rename arg2_ to __arg2.
2783 (_GLIBCXX_SIMD_MATH_CALL3_): Rename arg2_ to __arg2 and arg3_ to
2786 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2788 * include/experimental/bits/simd.h (__execute_on_index_sequence)
2789 (__execute_on_index_sequence_with_return)
2790 (__call_with_n_evaluations, __call_with_subscripts): Add flatten
2793 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2795 * include/experimental/bits/simd_x86.h (_S_trunc, _S_floor)
2796 (_S_ceil): Set bit 8 (_MM_FROUND_NO_EXC) on AVX and SSE4.1
2799 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2801 * include/experimental/bits/simd_x86.h (_S_ldexp): The AVX512F
2802 implementation doesn't require a _VecBltnBtmsk ABI tag, it
2803 requires either a 64-Byte input (in which case AVX512F must be
2804 available) or AVX512VL.
2806 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2808 * include/experimental/bits/simd_math.h: Undefine internal
2810 (frexp): Move #if to a more sensible position and reformat
2812 (logb): Call _SimdImpl::_S_logb for fixed_size instead of
2813 duplicating the code here.
2814 (modf): Simplify condition.
2816 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2818 * include/experimental/bits/simd_math.h (fabs): Remove
2819 fabs(simd<integral>) overload.
2821 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2823 * include/experimental/bits/simd_converter.h
2824 (_SimdConverter::operator()): Pass _SimdTuple by const-ref.
2825 * include/experimental/bits/simd_fixed_size.h
2826 (_GLIBCXX_SIMD_FIXED_OP): Pass binary operator _SimdTuple
2827 arguments by const-ref.
2828 (_S_masked_unary): Pass _SimdTuple by const-ref.
2830 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2832 * include/experimental/bits/simd_fixed_size.h
2833 (_AbisInSimdTuple): Removed.
2835 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2837 * include/experimental/bits/simd.h: Add missing operator~
2838 overload for simd<floating-point> to __float_bitwise_operators.
2839 * include/experimental/bits/simd_builtin.h
2840 (_SimdImplBuiltin::_S_complement): Bitcast to int (and back) to
2841 implement complement for floating-point vectors.
2842 * include/experimental/bits/simd_fixed_size.h
2843 (_SimdImplFixedSize::_S_copysign): New function, forwarding to
2844 copysign implementation of _SimdTuple members.
2845 * include/experimental/bits/simd_math.h (copysign): Call
2846 _SimdImpl::_S_copysign for fixed_size arguments. Simplify
2847 generic copysign implementation using the new ~ operator.
2849 2021-06-24 Jonathan Wakely <jwakely@redhat.com>
2851 * testsuite/experimental/simd/README.md: Fix typos.
2853 2021-06-24 Jonathan Wakely <jwakely@redhat.com>
2855 * include/bits/shared_ptr_base.h (__shared_ptr_access::operator[]):
2857 * include/bits/unique_ptr.h (unique_ptr::operator*): Add
2858 conditional noexcept as per LWG 2762.
2859 * testsuite/20_util/shared_ptr/observers/array.cc: Check that
2860 dereferencing cannot throw.
2861 * testsuite/20_util/shared_ptr/observers/get.cc: Likewise.
2862 * testsuite/20_util/optional/observers/lwg2762.cc: New test.
2863 * testsuite/20_util/unique_ptr/lwg2762.cc: New test.
2865 2021-06-23 Patrick Palka <ppalka@redhat.com>
2868 * testsuite/23_containers/multiset/cons/deduction.cc:
2869 Uncomment CTAD example that was rejected by this bug.
2870 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
2872 2021-06-23 Jonathan Wakely <jwakely@redhat.com>
2874 * include/std/chrono (chrono::year::is_leap()): Fix incorrect
2877 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
2879 * testsuite/experimental/simd/README.md: New file.
2881 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
2883 * testsuite/experimental/simd/driver.sh: Rewrite output
2884 verbosity logic. Add -p/--percentage option. Allow -v/--verbose
2885 to be used twice. Add -x and -o short options. Parse long
2886 options with = instead of separating space generically. Parce
2887 contracted short options. Make unrecognized options an error.
2888 If same-line output is active, trap on EXIT to increment the
2889 progress (only with --percentage), erase the line and print the
2891 * testsuite/experimental/simd/generate_makefile.sh: Initialize
2892 helper files for progress account keeping. Update help target
2893 for changes to DRIVEROPTS.
2895 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
2897 * testsuite/Makefile.am (check-simd): Remove -fno-tree-vrp flag
2898 and associated warning.
2899 * testsuite/Makefile.in: Regenerate.
2901 2021-06-23 Cassio Neri <cassio.neri@gmail.com>
2902 Jonathan Wakely <jwakely@redhat.com>
2903 Ulrich Drepper <drepper@redhat.com>
2905 * include/std/chrono (chrono::year::is_leap()): Optimize.
2907 2021-06-23 Patrick Palka <ppalka@redhat.com>
2910 * testsuite/23_containers/map/cons/deduction.cc: Replace ambiguous
2912 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
2913 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
2914 Mention one of the replaced examples is broken due to PR101174.
2915 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
2916 * testsuite/23_containers/unordered_map/cons/deduction.cc: Replace
2917 ambiguous CTAD examples.
2918 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
2920 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
2922 * testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise.
2924 2021-06-23 Jonathan Wakely <jwakely@redhat.com>
2926 * include/std/mutex (__detail::__try_lock_impl): Rename
2927 parameter to avoid clashing with newlib's __lockable macro.
2928 (try_lock): Add 'inline' specifier.
2929 * testsuite/17_intro/names.cc: Add check for __lockable.
2930 * testsuite/30_threads/try_lock/5.cc: Add options for pthreads.
2932 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
2933 Matthias Kretz <m.kretz@gsi.de>
2935 * include/std/mutex (lock): Replace recursion with iteration
2936 when lockables all have the same type.
2937 (__detail::__try_lock_impl): Likewise. Pass lockables as
2938 parameters, instead of a tuple. Always lock the first one, and
2939 recurse for the rest.
2940 (__detail::__lock_impl): Adjust call to __try_lock_impl.
2941 (__detail::__try_to_lock): Remove.
2942 * testsuite/30_threads/lock/3.cc: Check that mutexes are locked.
2943 * testsuite/30_threads/lock/4.cc: Also test non-heterogeneous
2945 * testsuite/30_threads/unique_lock/cons/60497.cc: Also check
2947 * testsuite/30_threads/try_lock/5.cc: New test.
2949 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
2951 * include/std/memory (declare_reachable, undeclare_reachable)
2952 (declare_no_pointers, undeclare_no_pointers, get_pointer_safety)
2953 (pointer_safety): Only define for C++11 to C++20 inclusive.
2954 * testsuite/20_util/pointer_safety/1.cc: Do not run for C++23.
2956 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
2958 * include/bits/random.h (seed_seq): Constrain initializer-list
2960 * include/bits/random.tcc (seed_seq): Add template parameter.
2961 * testsuite/26_numerics/random/seed_seq/cons/default.cc: Check
2963 * testsuite/26_numerics/random/seed_seq/cons/initlist.cc: Check
2966 2021-06-22 Thomas Rodgers <rodgert@appliantology.com>
2969 * include/bits/semaphore_base.h (__atomic_semaphore::_M_release):
2970 Force _M_release() to wake all waiting threads.
2971 * testsuite/30_threads/semaphore/100806.cc: New test.
2973 2021-06-21 Jonathan Wakely <jwakely@redhat.com>
2975 * include/std/mutex (__try_to_lock): Move to __detail namespace.
2976 (struct __try_lock_impl): Replace with ...
2977 (__detail::__try_lock_impl<Idx>(tuple<Lockables...>&)): New
2978 function templates to implement std::try_lock.
2979 (try_lock): Use new __try_lock_impl.
2980 (__detail::__lock_impl(int, int&, L0&, L1&...)): New function
2981 template to implement std::lock.
2982 (lock): Use __lock_impl.
2984 2021-06-21 Patrick Palka <ppalka@redhat.com>
2986 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
2988 2021-06-20 Patrick Palka <ppalka@redhat.com>
2990 * include/std/ranges (__non_propagating_cache::operator bool):
2991 Define for split_view::begin().
2992 (split_view): Define as per P2210.
2993 (views::__detail::__can_split_view): Define.
2994 (views::_Split, views::split): Define.
2995 * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
2997 * testsuite/std/ranges/adaptors/split.cc: New test.
2998 * testsuite/std/ranges/p2325.cc (test08a): New test.
2999 * testsuite/std/ranges/p2367.cc (test01): Test views::split.
3001 2021-06-20 Patrick Palka <ppalka@redhat.com>
3003 * include/std/ranges: Rename views::split to views::lazy_split,
3004 split_view to lazy_split_view, etc. throughout.
3005 * testsuite/std/ranges/*: Likewise.
3006 * testsuite/std/ranges/adaptors/lazy_split.cc: New file.
3007 * testsuite/std/ranges/adaptors/lazy_split_neg.cc: New file.
3009 2021-06-20 Patrick Palka <ppalka@redhat.com>
3011 * include/std/ranges (split_view::_OuterIter::__at_end):
3012 Check _M_trailing_empty.
3013 (split_view::_OuterIter::_M_trailing_empty): Define this
3015 (split_view::_OuterIter::operator++): Set _M_trailing_empty
3017 (split_view::_OuterIter::operator==): Compare
3019 * testsuite/std/ranges/adaptors/100479.cc (test03): Expect two
3020 split parts instead of one.
3021 * testsuite/std/ranges/adaptors/split.cc (test11): New test.
3023 2021-06-20 Patrick Palka <ppalka@redhat.com>
3025 * include/std/ranges (split_view::_InnerIter::base): Define as
3028 2021-06-19 Patrick Palka <ppalka@redhat.com>
3030 * include/std/ranges (transform_view::_Iterator::_S_iter_concept):
3031 Consider _Base instead of _Vp as per LWG 3555.
3032 (elements_view::_Iterator::_S_iter_concept): Likewise.
3034 2021-06-19 Patrick Palka <ppalka@redhat.com>
3036 * include/std/ranges (split_view::_OuterIter::value_type::begin):
3037 Remove the non-const overload, and remove the copyable constraint
3038 on the const overload as per LWG 3553.
3040 2021-06-19 Patrick Palka <ppalka@redhat.com>
3042 * include/bits/stl_iterator.h
3043 (__detail::__common_iter_use_postfix_proxy): Add
3044 move_constructible constraint as per LWG 3546.
3045 (common_iterator::__postfix_proxy): Adjust initializer of
3046 _M_keep as per LWG 3546.
3048 2021-06-18 Patrick Palka <ppalka@redhat.com>
3051 * include/bits/ranges_algo.h (__minmax_fn::operator()): Rewrite
3052 to limit comparison complexity to 3*N/2.
3053 (__minmax_element_fn::operator()): Likewise.
3054 (shift_right): Avoid premature std::move of __result.
3055 * testsuite/25_algorithms/minmax/constrained.cc (test04, test05):
3057 * testsuite/25_algorithms/minmax_element/constrained.cc (test02):
3060 2021-06-18 Patrick Palka <ppalka@redhat.com>
3062 * include/std/concepts (convertible_to): Just use declval as per
3065 2021-06-18 Jonathan Wakely <jwakely@redhat.com>
3068 * include/std/numeric (reduce(Iter, Iter, T, BinaryOp)): Replace
3069 incorrect static_assert with ones matching the 'Mandates'
3070 conditions in the standard.
3071 * testsuite/26_numerics/reduce/95833.cc: New test.
3073 2021-06-18 Jonathan Wakely <jwakely@redhat.com>
3075 * testsuite/21_strings/basic_string/cons/char/1.cc: Use
3076 diagnostic pragma to suppress -Wstringop-overread error.
3078 2021-06-18 Patrick Palka <ppalka@redhat.com>
3080 * include/bits/ranges_algo.h (__find_fn, find, __find_if_fn)
3081 (find_if, __find_if_not_fn, find_if_not, _in_in_result)
3082 (__mismatch_fn, mismatch, __search_fn, search): Move to ...
3083 * include/bits/ranges_util.h: ... here.
3084 * include/std/ranges (__detail::find, __detail::find_if)
3085 (__detail::find_if_not, __detail::mismatch): Remove.
3086 (filter_view): Use ranges::find_if instead.
3087 (drop_while_view): Use ranges::find_if_not instead.
3088 (split_view): Use ranges::find and ranges::mismatch instead.
3090 2021-06-18 Patrick Palka <ppalka@redhat.com>
3092 * include/bits/iterator_concepts.h (weakly_incrementable): Remove
3093 default_initializable requirement.
3094 * include/bits/ranges_base.h (ranges::view): Likewise.
3095 * include/bits/ranges_util.h (subrange): Constrain the default
3097 * include/bits/stl_iterator.h (back_insert_iterator): Remove the
3099 (front_insert_iterator): Likewise.
3100 (insert_iterator): Likewise. Remove NSDMIs.
3101 (common_iterator): Constrain the default ctor.
3102 (counted_iterator): Likewise.
3103 * include/bits/stream_iterator.h (ostream_iterator): Remove the
3105 * include/std/ranges (__detail::__box::operator=): Handle
3106 self-assignment in the primary template.
3107 (__detail::__box): In the partial specialization: adjust
3108 constraints as per P2325. Add specialized operator= for the
3109 case when the wrapped type is not copyable. Constrain the
3110 default ctor. Avoid list-initialization.
3111 (single_view): Constraint the default ctor.
3112 (iota_view): Relax semiregular constraint to copyable.
3113 Constrain the default ctor.
3114 (iota_view::_Iterator): Constraint the default ctor.
3115 (basic_istream_view): Remove the default ctor. Remove NSDMIs.
3116 Remove redundant checks for empty _M_stream.
3117 (basic_istream_view::_Iterator): Likewise.
3118 (ref_view): Remove the default ctor. Remove NSDMIs.
3119 (ref_view::_Iterator): Constrain the default ctor.
3120 (__detail::__non_propagating_cache::operator=): Define overload
3121 for assigning from a value of the underlying type.
3122 (filter_view): Likewise.
3123 (filter_view::_Iterator): Likewise.
3124 (transform_view): Likewise.
3125 (transform_view::_Iterator): Likewise.
3126 (take_view): Likewise.
3127 (take_view::_Iterator): Likewise.
3128 (take_while_view): Likewise.
3129 (take_while_view::_Iterator): Likewise.
3130 (drop_while_view): Likewise.
3131 (drop_while_view::_Iterator): Likewise.
3132 (join_view): Likewise.
3133 (split_view::_OuterIter::__current): Adjust after changing the
3135 (split_view::_M_current): Wrap it in a __non_propagating_cache.
3136 (split_view::split_view): Constrain the default ctor.
3137 (common_view): Constrain the default ctor.
3138 (reverse_view): Likewise.
3139 (elements_view): Likewise.
3140 * include/std/span (enable_view<span<_ElementType, _Extent>>):
3141 Define this partial specialization to true unconditionally.
3142 * include/std/version (__cpp_lib_ranges): Adjust value.
3143 * testsuite/24_iterators/back_insert_iterator/constexpr.cc:
3144 Don't attempt to default construct a back_insert_iterator.
3145 * testsuite/24_iterators/front_insert_iterator/constexpr.cc:
3146 Don't attempt to default construct a front_insert_iterator.
3147 * testsuite/24_iterators/insert_iterator/constexpr.cc:
3148 Don't attempt to default construct an insert_iterator.
3149 * testsuite/24_iterators/ostream_iterator/requirements/constexpr.cc:
3150 Remove this test for default constructibility of ostream_iterator.
3151 * testsuite/std/ranges/97600.cc: Don't attempt to default
3152 construct a basic_istream_view.
3153 * testsuite/std/ranges/adaptors/detail/semiregular_box.cc:
3155 * testsuite/std/ranges/adaptors/detail/copyable_box.cc: ... this.
3156 (test02): Adjust now that __box is copyable-box not
3159 * testsuite/std/ranges/p2325.cc: New test.
3160 * testsuite/std/ranges/single_view.cc (test06): New test.
3161 * testsuite/std/ranges/view.cc: Adjust now that view doesn't
3162 require default_initializable.
3164 2021-06-17 Jonathan Wakely <jwakely@redhat.com>
3167 * include/bits/basic_string.h (__cpp_lib_constexpr_string): Only
3168 define when is_constant_evaluated is available.
3169 * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits):
3171 (__constant_string_p, __constant_array_p): Remove.
3172 (char_traits): Use is_constant_evaluated directly.
3173 * include/std/version (__cpp_lib_constexpr_char_traits)
3174 (__cpp_lib_constexpr_string): Only define when
3175 is_constant_evaluated is available.
3177 2021-06-17 Patrick Palka <ppalka@redhat.com>
3180 * include/std/ranges (__adaptor::_Partial): For the "simple"
3181 forwarding partial specializations, also require that
3182 the extra arguments are trivially copyable.
3183 * testsuite/std/ranges/adaptors/100577.cc (test04): New test.
3185 2021-06-17 Patrick Palka <ppalka@redhat.com>
3188 * include/std/ranges (__adaptor::_RangeAdaptor): Document the
3189 template form of _S_has_simple_extra_args.
3190 (__adaptor::__adaptor_has_simple_extra_args): Add _Args template
3191 parameter pack. Try to treat _S_has_simple_extra_args as a
3192 variable template parameterized by _Args.
3193 (__adaptor::_Partial): Pass _Arg/_Args to the constraint
3194 __adaptor_has_simple_extra_args.
3195 (views::_Take::_S_has_simple_extra_args): Templatize according
3196 to the type of the extra argument.
3197 (views::_Drop::_S_has_simple_extra_args): Likewise.
3198 (views::_Split::_S_has_simple_extra_args): Define.
3199 * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
3200 Adjust after changes to _S_has_simple_extra_args mechanism.
3203 2021-06-16 Jonathan Wakely <jwakely@redhat.com>
3205 * include/bits/iterator_concepts.h (__decay_copy): Name type.
3207 2021-06-16 Jonathan Wakely <jwakely@redhat.com>
3209 * include/bits/ranges_base.h (ranges::begin, ranges::end)
3210 (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
3211 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
3212 (ranges::empty, ranges::data, ranges::cdata): Remove final
3213 keywords and deleted operator& overloads.
3214 * testsuite/24_iterators/customization_points/iter_move.cc: Use
3215 new is_customization_point_object function.
3216 * testsuite/24_iterators/customization_points/iter_swap.cc:
3218 * testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc:
3220 * testsuite/std/ranges/access/begin.cc: Likewise.
3221 * testsuite/std/ranges/access/cbegin.cc: Likewise.
3222 * testsuite/std/ranges/access/cdata.cc: Likewise.
3223 * testsuite/std/ranges/access/cend.cc: Likewise.
3224 * testsuite/std/ranges/access/crbegin.cc: Likewise.
3225 * testsuite/std/ranges/access/crend.cc: Likewise.
3226 * testsuite/std/ranges/access/data.cc: Likewise.
3227 * testsuite/std/ranges/access/empty.cc: Likewise.
3228 * testsuite/std/ranges/access/end.cc: Likewise.
3229 * testsuite/std/ranges/access/rbegin.cc: Likewise.
3230 * testsuite/std/ranges/access/rend.cc: Likewise.
3231 * testsuite/std/ranges/access/size.cc: Likewise.
3232 * testsuite/std/ranges/access/ssize.cc: Likewise.
3233 * testsuite/util/testsuite_iterators.h
3234 (is_customization_point_object): New function.
3236 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
3238 * include/bits/ranges_base.h (ranges::begin, ranges::end)
3239 (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
3240 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
3241 (ranges::empty, ranges::data, ranges::cdata): Make types final.
3242 Add deleted operator& overloads.
3243 (ranges::advance, ranges::distance, ranges::next, ranges::prev):
3245 * testsuite/std/ranges/headers/ranges/synopsis.cc: Replace
3246 ill-formed & expressions with using-declarations. Add checks for
3247 other function objects.
3249 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
3251 * include/bits/ranges_util.h (view_interface): Add noexcept to
3252 empty, operator bool, data and size members.
3253 (subrange): Add noexcept to constructors.
3254 * include/std/ranges (single_view, ref_view): Add noexcept to
3256 (views::single, views::all): Add noexcept.
3257 * testsuite/std/ranges/adaptors/all.cc: Check noexcept.
3258 * testsuite/std/ranges/single_view.cc: Likewise.
3260 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
3262 * include/bits/ranges_util.h (subrange): Add __size_type typedef
3263 and use it to simplify declarations.
3264 (subrange(i, s, n)): Remove assertion.
3265 * testsuite/std/ranges/subrange/constexpr.cc: New test.
3267 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
3269 * include/bits/iterator_concepts.h (__cust_access::__decay_copy):
3270 Replace with function object.
3271 (__cust_access::__member_begin, ___cust_access::_adl_begin): Use
3272 __decay_copy unqualified.
3273 * include/bits/ranges_base.h (__member_end, __adl_end):
3274 Likewise. Use __range_iter_t for type of ranges::begin.
3275 (__member_rend): Use correct value category for rbegin argument.
3276 (__member_data): Use __decay_copy unqualified.
3277 (__begin_data): Use __range_iter_t for type of ranges::begin.
3279 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3281 * include/bits/ranges_base.h (ranges::empty): Check whether
3282 conversion to bool can throw.
3283 * testsuite/std/ranges/access/empty.cc: Check for correct
3286 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3289 * include/std/type_traits (__common_ref_impl<X&, Y&>): Only
3290 use the type if it's a reference.
3291 * testsuite/20_util/common_reference/100894.cc: New test.
3293 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3295 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
3296 Add dg-require-filesystem-ts directive.
3298 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3301 * include/std/any (any(in_place_t<T>, initializer_list<U>, A&&...))
3302 (any::emplace<T>(initializer_list<U>, A&&...)): Fix constraint
3304 * testsuite/20_util/any/cons/101034.cc: New test.
3306 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3308 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Add
3309 -std=gnu++17 option.
3311 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3314 * libsupc++/compare (compare_partial_order_fallback): Add
3315 constraint using reversed parameter order, as per LWG 3465.
3316 * testsuite/18_support/comparisons/algorithms/fallback.cc:
3317 Adjust expected result.
3319 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3321 * libsupc++/compare (__decayed_same_as): New helper concept.
3322 (strong_order, weak_order, partial_order): Constrain with new
3323 concept instead of using static_assert.
3324 (compare_strong_order_fallback, compare_weak_order_fallback)
3325 (compare_partial_order_fallback): Likewise. Do not deduce return
3326 types. Remove redundant if-constexpr checks.
3327 * testsuite/18_support/comparisons/algorithms/fallback.cc: New test.
3329 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3332 * include/std/tuple: Use reserved form of attribute name.
3333 * testsuite/17_intro/headers/c++2011/all_attributes.cc: Add
3334 check for no_unique_address.
3335 * testsuite/17_intro/headers/c++2014/all_attributes.cc:
3337 * testsuite/17_intro/headers/c++2017/all_attributes.cc:
3340 2021-06-11 Jonathan Wakely <jwakely@redhat.com>
3342 * include/bits/fs_path.h (operator==, operator<=>): Use new
3343 _S_compare function.
3344 (path::_S_compare): New function to call path::compare in a
3345 context where path::iterator is complete.
3346 * include/experimental/bits/fs_path.h (operator<, operator==):
3347 Define after path::iterator is complete.
3348 * testsuite/27_io/filesystem/path/native/conv_c++23.cc: New
3350 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
3353 2021-06-09 Thomas Rodgers <rodgert@appliantology.com>
3355 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Guard
3356 test logic with constexpr check for is_always_lock_free.
3358 2021-06-09 Jonathan Wakely <jwakely@redhat.com>
3361 * include/std/optional (optional::operator=(const optional<U>&)):
3362 Fix value category used in is_assignable check.
3363 * testsuite/20_util/optional/assignment/100982.cc: New test.
3365 2021-06-09 Jonathan Wakely <jwakely@redhat.com>
3367 * include/bits/allocator.h (allocator::is_always_equal): Deprecate.
3368 * include/bits/iterator_concepts.h (indirectly_readable_traits):
3369 Add LWG issue number to comment.
3370 * include/std/memory_resource (polymorphic_allocator::release):
3372 * testsuite/20_util/allocator/requirements/typedefs.cc: Add
3373 dg-warning for deprecation. Also check std::allocator<void>.
3375 2021-06-08 Thomas Rodgers <rodgert@appliantology.com>
3378 * include/bits/atomic_base.h (atomic_ref<_Tp*>::wait):
3379 Change parameter type from _Tp to _Tp*.
3380 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Extend
3381 coverage of types tested.
3383 2021-06-08 Thomas Rodgers <rodgert@appliantology.com>
3385 * include/std/barrier (__tree_barrier::_M_arrive): Remove
3386 unnecessary hasher instantiation.
3388 2021-06-08 Jonathan Wakely <jwakely@redhat.com>
3390 * include/experimental/propagate_const (swap): Constrain.
3391 * testsuite/experimental/propagate_const/swap/lwg3413.cc: New test.
3393 2021-06-07 Avi Kivity <avi@scylladb.com>
3396 * include/std/ranges (elements_view::__iter_cat::_S_iter_cat):
3397 Add missing typename.
3399 2021-06-07 Jonathan Wakely <jwakely@redhat.com>
3402 * include/std/optional (operator<=>(const optional<T>& const U&)):
3403 Add missing constraint and add workaround for template
3405 * testsuite/20_util/optional/relops/three_way.cc: Check that
3406 type without equality comparison cannot be compared when wrapped
3409 2021-06-05 Jonathan Wakely <jwakely@redhat.com>
3412 * include/bits/ranges_base.h (_SSize): Return signed type.
3413 * testsuite/std/ranges/access/ssize.cc: Check with __int128.
3415 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
3417 * include/bits/ranges_base.h (_SSize): Return the result of
3418 ranges::size converted to the wider of make-signed-like-t<S> and
3419 ptrdiff_t, rather than the ranges different type.
3420 * testsuite/std/ranges/access/ssize.cc: Adjust expected result
3421 for an iota_view that uses an integer class type for its
3424 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
3427 * include/bits/ranges_base.h (__member_data): Use __decay_copy.
3428 * testsuite/std/ranges/access/data.cc: Add testcase from PR.
3430 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
3433 * include/bits/iterator_concepts.h (__detail::__decay_copy)
3434 (__detail::__member_begin, __detail::__adl_begin): Move to
3435 namespace ranges::__cust_access.
3436 (__detail::__ranges_begin): Likewise, and rename to __begin.
3437 Remove redundant static assertion.
3438 * include/bits/ranges_base.h (_Begin, _End, _RBegin, _REnd):
3439 Use lvalue in noexcept specifier.
3440 (__as_const): Add non-deduced parameter for value category.
3441 (_CBegin, _CEnd, _CRBegin, _CREnd, _CData): Adjust uses of
3443 (__member_size, __adl_size, __member_empty, __size0_empty):
3444 (__eq_iter_empty, __adl_data): Use lvalue objects in
3446 (__sentinel_size): Likewise. Add check for conversion to
3448 (__member_data): Allow non-lvalue types to satisfy the concept,
3449 but use lvalue object in requirements.
3450 (_Size, _SSize): Remove forwarding to always use an lvalue.
3451 (_Data): Likewise. Add static assertion for arrays.
3452 * testsuite/std/ranges/access/cdata.cc: Adjust expected
3453 behaviour for rvalues. Add negative tests for ill-formed
3455 * testsuite/std/ranges/access/data.cc: Likewise.
3456 * testsuite/std/ranges/access/empty.cc: Adjust expected
3457 behaviour for rvalues.
3458 * testsuite/std/ranges/access/size.cc: Likewise.
3460 2021-06-04 Tim Adye <Tim.Adye@cern.ch>
3462 * include/std/any (any::_Manager::_S_access): New static
3463 function to access the contained value.
3464 (any::emplace, __any_caster): Use _S_access member of the
3467 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
3469 * doc/xml/manual/status_cxx2020.xml:
3470 * doc/html/*: Regenerate.
3471 * include/bits/hashtable.h (__cpp_lib_generic_unordered_lookup):
3473 * include/std/version (__cpp_lib_generic_unordered_lookup):
3475 * testsuite/23_containers/unordered_map/operations/1.cc: Check
3477 * testsuite/23_containers/unordered_set/operations/1.cc:
3480 2021-06-03 Patrick Palka <ppalka@redhat.com>
3482 * include/bits/ranges_algo.h (__detail::__can_reread_output):
3483 Factor out this concept from ...
3484 (__unique_copy_fn::operator()): ... here. Use the concept
3486 * testsuite/std/ranges/range.cc: Remove now ill-formed use
3487 of range_value_t on an output_range.
3488 * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
3489 Define value_type, pointer and reference member types to void.
3491 2021-06-03 Patrick Palka <ppalka@redhat.com>
3494 * include/std/ranges (_RangeAdaptorClosure): Document
3495 _S_has_simple_call_op mechanism.
3496 (_RangeAdaptor): Document _S_has_simple_extra_args mechanism.
3497 (__closure_has_simple_call_op): New concept.
3498 (__adaptor_has_simple_extra_args): Likewise.
3499 (_Partial<_Adaptor, _Args...>): New partial specialization.
3500 (_Partial<_Adaptor, _Arg>): Likewise.
3501 (_Pipe<_Lhs, _Rhs>): Likewise.
3502 (views::_All::_S_has_simple_call_op): Define to true.
3503 (views::_Filter::_S_has_simple_extra_args): Likewise.
3504 (views::_Transform::_S_has_simple_extra_args): Likewise.
3505 (views::_Take::_S_has_simple_extra_args): Likewise.
3506 (views::_TakeWhile::_S_has_simple_extra_args): Likewise.
3507 (views::_Drop::_S_has_simple_extra_args): Likewise.
3508 (views::_DropWhile::_S_has_simple_extra_args): Likewise.
3509 (views::_Join::_S_has_simple_call_op): Likewise.
3510 (views::_Split): Document why we don't define
3511 _S_has_simple_extra_args to true for this adaptor.
3512 (views::_Common::_S_has_simple_call_op): Define to true.
3513 (views::_Reverse::_S_has_simple_call_op): Likewise.
3514 (views::_Elements::_S_has_simple_call_op): Likewise.
3515 * testsuite/std/ranges/adaptors/100577.cc: New test.
3517 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
3521 * include/bits/hashtable_policy.h (_Hashtable_ebo_helper):
3522 Value-initialize subobject.
3523 * testsuite/23_containers/unordered_map/allocator/default_init.cc:
3525 * testsuite/23_containers/unordered_set/allocator/default_init.cc:
3528 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
3531 * testsuite/23_containers/unordered_map/96088.cc: Adjust
3532 expected number of allocations.
3533 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
3535 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
3537 * doc/xml/manual/status_cxxis29124.xml: Improve punctuation.
3538 * doc/xml/manual/status_cxxtr1.xml: Likewise.
3539 * doc/xml/manual/status_cxxtr24733.xml: Likewise.
3540 * doc/html/*: Regenerate.
3542 2021-06-01 Patrick Palka <ppalka@redhat.com>
3545 * testsuite/23_containers/deque/allocator/default_init.cc,
3546 testsuite/23_containers/forward_list/allocator/default_init.cc,
3547 testsuite/23_containers/list/allocator/default_init.cc,
3548 testsuite/23_containers/map/allocator/default_init.cc,
3549 testsuite/23_containers/set/allocator/default_init.cc,
3550 testsuite/23_containers/vector/allocator/default_init.cc,
3551 testsuite/23_containers/vector/bool/allocator/default_init.cc:
3554 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
3556 * testsuite/23_containers/unordered_map/96088.cc: Change
3557 effective target to c++17.
3558 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
3560 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
3562 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Only test
3563 isblank for C++11 and later.
3565 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
3568 * include/bits/ranges_base.h (ranges::advance(iter, n, sentinel)):
3569 Fix return value for no-op case.
3570 * testsuite/24_iterators/range_operations/advance.cc: Test
3571 return values of three-argument overload.
3573 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
3576 * python/Makefile.am: Use archive name for printer hook if no
3577 dynamic library name is available.
3578 * python/Makefile.in: Regenerate.
3580 2021-05-30 Gerald Pfeifer <gerald@pfeifer.com>
3582 * doc/xml/manual/abi.xml: Remove dead reference to "Intel
3583 Compilers for Linux: Compatibility with GNU Compilers" article.
3584 * doc/html/manual/abi.html: Regenerate.
3586 2021-05-26 François Dumont <fdumont@gcc.gnu.org>
3588 * include/debug/formatter.h
3589 (_Error_formatter::_Parameter::_Named): New.
3590 (_Error_formatter::_Parameter::_Type): Inherit latter.
3591 (_Error_formatter::_Parameter::_M_integer): Likewise.
3592 (_Error_formatter::_Parameter::_M_string): Likewise.
3593 * src/c++11/debug.cc: Include <cstring>.
3594 (_Print_func_t): New.
3595 (print_raw(PrintContext&, const char*, ptrdiff_t)): New.
3596 (print_word): Use '%.*s' format in fprintf to render only expected number of chars.
3597 (pretty_print(PrintContext&, const char*, _Print_func_t)): New.
3598 (print_type): Rename in...
3599 (print_type_info): ...this. Use pretty_print.
3600 (print_address, print_integer): New.
3601 (print_named_name, print_iterator_constness, print_iterator_state): New.
3602 (print_iterator_seq_type): New.
3603 (print_named_field, print_type_field, print_instance_field, print_iterator_field): New.
3604 (print_field): Use latters.
3605 (print_quoted_named_name, print_type_type, print_type, print_instance): New.
3606 (print_string(PrintContext&, const char*, const _Parameter*, size_t)):
3607 Change signature to...
3608 (print_string(PrintContext&, const char*, ptrdiff_t, const _Parameter*, size_t)):
3609 ...this and adapt. Remove intermediate buffer to render input string.
3610 (print_string(PrintContext&, const char*, ptrdiff_t)): New.
3612 2021-05-26 Jonathan Wakely <jwakely@redhat.com>
3615 * include/bits/ranges_base.h (advance, distance, next, prev):
3616 Replace function templates with function objects.
3617 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
3618 Adjust for changes to function objects.
3619 * testsuite/std/ranges/adaptors/elements.cc: Add using
3620 declarations for names from namespace ranges.
3621 * testsuite/std/ranges/adaptors/transform.cc: Likewise.
3622 * testsuite/24_iterators/range_operations/100768.cc: New test.
3624 2021-05-24 François Dumont <fdumont@gcc.gnu.org>
3627 * include/bits/hashtable_policy.h (_Select2nd): New.
3628 (_NodeBuilder<>): New.
3629 (_ReuseOrAllocNode<>::operator()): Use variadic template args.
3630 (_AllocNode<>::operator()): Likewise.
3631 * include/bits/hashtable.h
3632 (_Hashtable<>::__node_builder_t): New.
3633 (_Hashtable<>::_M_insert_unique<>(_Kt&&, _Arg&&, const _NodeGenerator&)):
3635 (_Hashtable<>::_S_forward_key): New.
3636 (_Hashtable<>::_M_insert): Use latter.
3637 (_Hashtable<>::_M_insert(const_iterator, _Arg&&, const _NodeGenerator&, false_type)):
3638 Instantiate node first, compute hash code second.
3639 * testsuite/23_containers/unordered_map/96088.cc: New test.
3640 * testsuite/23_containers/unordered_multimap/96088.cc: New test.
3641 * testsuite/23_containers/unordered_multiset/96088.cc: New test.
3642 * testsuite/23_containers/unordered_set/96088.cc: New test.
3643 * testsuite/util/replacement_memory_operators.h
3644 (counter::_M_increment): New.
3645 (counter::_M_decrement): New.
3646 (counter::reset()): New.
3648 2021-05-24 Patrick Palka <ppalka@redhat.com>
3651 * include/std/ranges (__detail::__non_propagating_cache): Move
3652 definition up to before that of _CachedPosition. Make base
3653 class _Optional_base protected instead of private. Add const
3654 overload for operator*.
3655 (__detail::_CachedPosition): Rewrite the partial specialization
3656 for forward ranges as a derived class of __non_propagating_cache.
3657 Remove the size constraint on the partial specialization for
3658 random access ranges. Add copy/move/copy-assignment/move-assignment
3659 members to the offset partial specialization for random
3660 access ranges that propagate the cached value but additionally
3661 invalidate it in the source object on move.
3662 * testsuite/std/ranges/adaptors/100479.cc: New test.
3664 2021-05-24 Jonathan Wakely <jwakely@redhat.com>
3666 * testsuite/25_algorithms/inplace_merge/constrained.cc: Qualify
3667 call to ranges::next.
3668 * testsuite/25_algorithms/is_sorted/constrained.cc: Likewise.
3669 * testsuite/25_algorithms/is_sorted_until/constrained.cc:
3671 * testsuite/25_algorithms/swap_ranges/1.cc: Qualify call to
3674 2021-05-21 Patrick Palka <ppalka@redhat.com>
3677 * include/std/ranges (drop_while_view::begin): Assert the
3678 precondition added by LWG 3490.
3680 2021-05-21 Patrick Palka <ppalka@redhat.com>
3683 * include/std/ranges (iota_view::_Sentinel::_M_distance_from):
3684 Split out this member function from ...
3685 (iota_view::_Sentinel::operator-): ... here, for sake of access
3687 * testsuite/std/ranges/iota/iota_view.cc (test05): New test.
3689 2021-05-20 Jonathan Wakely <jwakely@redhat.com>
3691 * include/bits/random.tcc (__representable_as_double)
3692 (__p1_representable_as_double): Add "" to static asserts.
3694 2021-05-20 Jonathan Wakely <jwakely@redhat.com>
3697 * include/bits/c++config (__glibcxx_assert_1): Rename to ...
3698 (__glibcxx_constexpr_assert): ... this.
3699 (__glibcxx_assert_impl): Use __glibcxx_constexpr_assert.
3700 (__glibcxx_assert): Define as either __glibcxx_constexpr_assert
3701 or __glibcxx_assert_impl.
3702 (__glibcxx_assert_2): Remove
3703 * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): Use
3704 __glibcxx_constexpr_assert instead of __glibcxx_assert_1.
3705 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
3706 Adjust expected error.
3707 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
3709 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
3712 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
3714 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
3716 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
3718 * testsuite/23_containers/span/back_neg.cc: Likewise.
3719 * testsuite/23_containers/span/front_neg.cc: Likewise.
3720 * testsuite/23_containers/span/index_op_neg.cc: Likewise.
3722 2021-05-20 Patrick Palka <ppalka@redhat.com>
3725 * include/bits/stl_iterator.h (reverse_iterator::difference_type):
3726 In C++20 mode, define in terms of iter_difference_t as per P0896R4.
3727 (reverse_iterator::reference): Likewise, but with iter_reference_t.
3728 (reverse_iterator::value_type): Likewise, but with iter_value_t.
3729 * testsuite/std/ranges/adaptors/reverse.cc (test08): New test.
3730 * testsuite/24_iterators/reverse_iterator/100639.cc: New test.
3732 2021-05-20 Joern Rennecke <joern.rennecke@riscy-ip.com>
3735 * include/std/charconv (to_chars): Hide the overloads for
3736 floating-point types for 16 bit targets.
3737 * src/c++17/floating_to_chars.cc: Don't compile for 16 bit targets.
3738 * testsuite/20_util/to_chars/double.cc: Run this test only on
3740 * testsuite/20_util/to_chars/float.cc: Likewise.
3741 * testsuite/20_util/to_chars/long_double.cc: Likewise.
3743 2021-05-18 Patrick Palka <ppalka@redhat.com>
3746 * include/std/ranges (elements_view::_Sentinel::operator-): Use
3747 _M_distance_from in the other operator- overload too.
3748 * testsuite/std/ranges/adaptors/elements.cc (test06): Augment test.
3750 2021-05-18 Thomas Schwinge <thomas@codesourcery.com>
3752 * testsuite/lib/prune.exp: Add note about 'dg-note'.
3754 2021-05-18 Patrick Palka <ppalka@redhat.com>
3757 * include/std/ranges (__box::__box): Use non-list-initialization
3758 in member initializer list of in-place constructor of the
3759 partial specialization for semiregular types.
3760 (__box::operator->): Use std::__addressof.
3761 * testsuite/std/ranges/adaptors/detail/semiregular_box.cc
3763 * testsuite/std/ranges/single_view.cc (test04): New test.
3765 2021-05-18 Patrick Palka <ppalka@redhat.com>
3768 * include/std/ranges (reverse_view::_S_needs_cached_begin):
3769 Set to true if the underlying non-common random-access range
3770 doesn't have a sized sentinel.
3772 2021-05-18 Patrick Palka <ppalka@redhat.com>
3775 * include/std/ranges (elements_view::_Iterator): Also befriend
3777 (elements_view::_Sentinel::_M_equal): Templatize.
3778 (elements_view::_Sentinel::_M_distance_from): Split out from ...
3779 (elements_view::_Sentinel::operator-): ... here. Depend on
3780 _Base2 instead of _Base in the return type.
3781 * testsuite/std/ranges/adaptors/elements.cc (test06, test07):
3784 2021-05-17 Thomas Rodgers <rodgert@twrodgers.com>
3786 * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): loop
3787 until value change observed.
3788 (__waiter_base::_M_laundered): New member.
3789 (__waiter_base::_M_notify): Check _M_laundered to determine
3790 whether to wake one or all.
3791 (__detail::__atomic_compare): Return true if call to
3792 __builtin_memcmp() == 0.
3793 (__waiter_base::_S_do_spin_v): Adjust predicate.
3794 * testsuite/29_atomics/atomic/wait_notify/100334.cc: New
3797 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
3800 * include/experimental/bits/fs_path.h (__is_constructible_from):
3801 Test construction from a const lvalue, not an rvalue.
3802 * testsuite/27_io/filesystem/path/construct/100630.cc: New test.
3803 * testsuite/experimental/filesystem/path/construct/100630.cc:
3806 2021-05-17 Antony Polukhin <antoshkka@gmail.com>
3809 * include/bits/locale_facets.h (ctype<basic_string<C,T,A>>):
3810 Declare (but do not define) partial specialization.
3811 * testsuite/22_locale/ctype/is/string/89728_neg.cc: New test.
3813 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
3815 * include/std/thread (jthread::_S_create): Fix static assert
3817 * testsuite/30_threads/jthread/95989.cc: Re-enable test.
3818 * testsuite/30_threads/jthread/jthread.cc: Do not require
3819 pthread effective target.
3820 * testsuite/30_threads/jthread/2.cc: Moved to...
3821 * testsuite/30_threads/jthread/version.cc: ...here.
3823 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
3825 * doc/Makefile.am: Simplify doxygen recipes and use --latex_cmd.
3826 * doc/Makefile.in: Regenerate.
3827 * doc/doxygen/user.cfg.in (LATEX_CMD_NAME): Add placeholder
3829 * scripts/run_doxygen (print_usage): Always print to stdout and
3831 (fail): New function for exiting on error.
3832 (parse_options): Handle --latex_cmd. Do not treat --help the
3833 same as errors. Simplify handling of required arguments.
3835 2021-05-12 Jonathan Wakely <jwakely@redhat.com>
3837 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
3838 Increase dg-timeout-factor to 4. Fix -Wunused-parameter
3839 warnings. Replace bitwise AND with logical AND in loop
3841 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
3842 Replace bitwise AND with logical AND in loop condition.
3843 * testsuite/util/pstl/test_utils.h: Remove unused parameter
3846 2021-05-11 Patrick Palka <ppalka@redhat.com>
3848 * src/c++17/ryu/LOCAL_PATCHES: Update.
3849 * src/c++17/ryu/ryu_generic_128.h: Remove extern "C".
3850 Remove declarations for never-defined functions.
3851 * testsuite/20_util/to_chars/4.cc: New test.
3853 2021-05-11 Jonathan Wakely <jwakely@redhat.com>
3855 * testsuite/20_util/headers/memory/synopsis.cc: Define C++98
3856 alternative for macro.
3857 * testsuite/20_util/shared_ptr/creation/99006.cc: Add effective
3859 * testsuite/25_algorithms/copy/debug/99402.cc: Avoid C++11
3862 2021-05-11 Jonathan Wakely <jwakely@redhat.com>
3864 * include/bits/allocator.h (allocator<void>) [C++20]: Add
3865 missing noexcept to constructor. Restore missing POCMA and
3866 is_always_equal_traits.
3867 [C++17]: Make construct and destroy members private and
3868 declare allocator_traits as a friend.
3869 * include/bits/memoryfwd.h (allocator_traits): Declare.
3870 * include/ext/malloc_allocator.h (malloc_allocator::allocate):
3871 Add nodiscard attribute. Add static assertion for LWG 3307.
3872 * include/ext/new_allocator.h (new_allocator::allocate): Add
3873 static assertion for LWG 3307.
3874 * testsuite/20_util/allocator/void.cc: Check that converting
3875 constructor is noexcept. Check for propagation traits and
3876 size_type and difference_type. Check that pointer and
3877 const_pointer are gone in C++20.
3879 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3881 * include/std/stop_token: Remove TODO comment.
3883 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3885 * include/bits/shared_ptr_base.h (__shared_count(unique_ptr&&)):
3886 Initialize a non-reference deleter from an rvalue, as per LWG
3888 (__shared_ptr::_UniqCompatible): Add missing constraint.
3889 * testsuite/20_util/shared_ptr/cons/lwg3548.cc: New test.
3890 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc: Check
3893 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3895 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Remove
3896 -std=gnu++17 from dg-options directive.
3897 * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc:
3899 * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc:
3901 * testsuite/17_intro/headers/c++2017/operator_names.cc:
3903 * testsuite/17_intro/headers/c++2017/parallel_mode.cc: Likewise.
3904 * testsuite/17_intro/headers/c++2017/stdc++.cc: Likewise.
3905 * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
3907 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Likewise.
3908 * testsuite/18_support/byte/81076.cc: Likewise.
3909 * testsuite/18_support/byte/global_neg.cc: Likewise.
3910 * testsuite/18_support/byte/ops.cc: Likewise.
3911 * testsuite/18_support/byte/requirements.cc: Likewise.
3912 * testsuite/18_support/headers/cfloat/values_c++17.cc: Likewise.
3913 * testsuite/18_support/launder/1.cc: Likewise.
3914 * testsuite/18_support/launder/nodiscard.cc: Likewise.
3915 * testsuite/18_support/launder/requirements.cc: Likewise.
3916 * testsuite/18_support/launder/requirements_neg.cc: Likewise.
3917 * testsuite/18_support/new_aligned.cc: Likewise.
3918 * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
3920 * testsuite/19_diagnostics/error_code/is_error_code_v.cc:
3922 * testsuite/19_diagnostics/error_condition/hash.cc: Likewise.
3923 * testsuite/20_util/addressof/requirements/constexpr.cc:
3925 * testsuite/20_util/as_const/1.cc: Likewise.
3926 * testsuite/20_util/as_const/rvalue_neg.cc: Likewise.
3927 * testsuite/20_util/bind/83427.cc: Likewise.
3928 * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
3929 * testsuite/20_util/bool_constant/requirements.cc: Likewise.
3930 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
3932 * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
3934 * testsuite/20_util/duration_cast/rounding.cc: Likewise.
3935 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
3937 * testsuite/20_util/from_chars/1_neg.cc: Likewise.
3938 * testsuite/20_util/from_chars/requirements.cc: Likewise.
3939 * testsuite/20_util/function/91456.cc: Likewise.
3940 * testsuite/20_util/function/cons/deduction.cc: Likewise.
3941 * testsuite/20_util/function_objects/83607.cc: Likewise.
3942 * testsuite/20_util/function_objects/invoke/59768.cc: Likewise.
3943 * testsuite/20_util/function_objects/mem_fn/80478.cc: Likewise.
3944 * testsuite/20_util/function_objects/not_fn/1.cc: Likewise.
3945 * testsuite/20_util/function_objects/not_fn/87538.cc: Likewise.
3946 * testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc:
3948 * testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc:
3950 * testsuite/20_util/has_unique_object_representations/value.cc:
3952 * testsuite/20_util/hash/nullptr.cc: Likewise.
3953 * testsuite/20_util/in_place/requirements.cc: Likewise.
3954 * testsuite/20_util/is_aggregate/incomplete_neg.cc: Likewise.
3955 * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
3957 * testsuite/20_util/is_aggregate/requirements/typedefs.cc:
3959 * testsuite/20_util/is_aggregate/value.cc: Likewise.
3960 * testsuite/20_util/is_invocable/83395.cc: Likewise.
3961 * testsuite/20_util/is_invocable/91456.cc: Likewise.
3962 * testsuite/20_util/is_invocable/requirements/explicit_instantiation.cc:
3964 * testsuite/20_util/is_invocable/requirements/typedefs.cc:
3966 * testsuite/20_util/is_invocable/value.cc: Likewise.
3967 * testsuite/20_util/is_literal_type/deprecated-1z.cc: Likewise.
3968 * testsuite/20_util/is_nothrow_constructible/94003.cc: Likewise.
3969 * testsuite/20_util/is_nothrow_invocable/83395.cc: Likewise.
3970 * testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation.cc:
3972 * testsuite/20_util/is_nothrow_invocable/requirements/typedefs.cc: Likewise.
3973 * testsuite/20_util/is_nothrow_invocable/value.cc: Likewise.
3974 * testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc:
3976 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
3978 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
3979 * testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc:
3981 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
3983 * testsuite/20_util/is_nothrow_swappable_with/value.cc:
3985 * testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc:
3987 * testsuite/20_util/is_swappable/requirements/typedefs.cc:
3989 * testsuite/20_util/is_swappable/value.cc: Likewise.
3990 * testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc:
3992 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc:
3994 * testsuite/20_util/is_swappable_with/value.cc: Likewise.
3995 * testsuite/20_util/logical_traits/83134.cc: Likewise.
3996 * testsuite/20_util/logical_traits/requirements/explicit_instantiation.cc:
3998 * testsuite/20_util/logical_traits/requirements/typedefs.cc:
4000 * testsuite/20_util/logical_traits/value.cc: Likewise.
4001 * testsuite/20_util/pair/cons/deduction.cc: Likewise.
4002 * testsuite/20_util/pair/swap_cxx17.cc: Likewise.
4003 * testsuite/20_util/ratio/requirements/ratio_equal_v.cc:
4005 * testsuite/20_util/reference_wrapper/83427.cc: Likewise.
4006 * testsuite/20_util/reference_wrapper/deduction.cc: Likewise.
4007 * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
4008 * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
4009 * testsuite/20_util/shared_ptr/requirements/weak_type.cc:
4011 * testsuite/20_util/time_point/arithmetic/constexpr.cc:
4013 * testsuite/20_util/time_point_cast/rounding.cc: Likewise.
4014 * testsuite/20_util/to_chars/3.cc: Likewise.
4015 * testsuite/20_util/to_chars/chars_format.cc: Likewise.
4016 * testsuite/20_util/to_chars/lwg3266.cc: Likewise.
4017 * testsuite/20_util/to_chars/requirements.cc: Likewise.
4018 * testsuite/20_util/tuple/78939.cc: Likewise.
4019 * testsuite/20_util/tuple/apply/1.cc: Likewise.
4020 * testsuite/20_util/tuple/apply/2.cc: Likewise.
4021 * testsuite/20_util/tuple/cons/deduction.cc: Likewise.
4022 * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
4023 * testsuite/20_util/tuple/make_from_tuple/2.cc: Likewise.
4024 * testsuite/20_util/tuple/swap_cxx17.cc: Likewise.
4025 * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
4026 * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: Likewise.
4027 * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
4029 * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
4030 * testsuite/20_util/void_t/1.cc: Likewise.
4031 * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
4032 * testsuite/24_iterators/container_access.cc: Likewise.
4033 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc:
4035 * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc:
4037 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
4039 * testsuite/24_iterators/range_access/range_access_cpp17_neg.cc:
4041 * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
4042 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc:
4044 * testsuite/26_numerics/headers/cmath/hypot.cc: Likewise.
4045 * testsuite/26_numerics/headers/cmath/special_functions_global.cc:
4047 * testsuite/26_numerics/lcm/1.cc: Likewise.
4048 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
4049 * testsuite/26_numerics/valarray/deduction.cc: Likewise.
4050 * testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc:
4052 * testsuite/27_io/manipulators/standard/char/quoted_sv.cc:
4054 * testsuite/27_io/manipulators/standard/wchar_t/quoted_sv.cc:
4056 * testsuite/27_io/types/4.cc: Likewise.
4057 * testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise.
4058 * testsuite/libstdc++-prettyprinters/91997.cc: Likewise.
4059 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
4061 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4063 * testsuite/20_util/function_objects/searchers.cc: Remove
4064 -std=gnu++17 from dg-options directive.
4065 * testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc:
4067 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
4069 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc:
4071 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94831.cc:
4073 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc:
4075 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
4077 * testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc:
4079 * testsuite/25_algorithms/clamp/1.cc: Likewise.
4080 * testsuite/25_algorithms/clamp/2.cc: Likewise.
4081 * testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
4082 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc:
4084 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/pod.cc:
4086 * testsuite/25_algorithms/for_each/for_each_n.cc: Likewise.
4087 * testsuite/25_algorithms/for_each/for_each_n_debug.cc:
4089 * testsuite/25_algorithms/sample/1.cc: Likewise.
4090 * testsuite/25_algorithms/sample/2.cc: Likewise.
4091 * testsuite/25_algorithms/sample/3.cc: Likewise.
4092 * testsuite/25_algorithms/sample/81221.cc: Likewise.
4093 * testsuite/25_algorithms/search/searcher.cc: Likewise.
4094 * testsuite/26_numerics/exclusive_scan/1.cc: Likewise.
4095 * testsuite/26_numerics/inclusive_scan/1.cc: Likewise.
4096 * testsuite/26_numerics/reduce/1.cc: Likewise.
4097 * testsuite/26_numerics/reduce/2.cc: Likewise.
4098 * testsuite/26_numerics/transform_exclusive_scan/1.cc: Likewise.
4099 * testsuite/26_numerics/transform_inclusive_scan/1.cc: Likewise.
4100 * testsuite/26_numerics/transform_reduce/1.cc: Likewise.
4102 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4104 * testsuite/23_containers/array/cons/deduction.cc: Remove
4105 -std=gnu++17 from dg-options directive.
4106 * testsuite/23_containers/array/cons/deduction_neg.cc: Likewise.
4107 * testsuite/23_containers/array/element_access/constexpr_c++17.cc:
4109 * testsuite/23_containers/array/requirements/constexpr_iter.cc:
4111 * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
4113 * testsuite/23_containers/deque/cons/deduction.cc: Likewise.
4114 * testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc:
4116 * testsuite/23_containers/forward_list/cons/deduction.cc:
4118 * testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc:
4120 * testsuite/23_containers/list/cons/deduction.cc: Likewise.
4121 * testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc:
4123 * testsuite/23_containers/map/cons/deduction.cc: Likewise.
4124 * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
4125 * testsuite/23_containers/map/modifiers/insert/83226.cc:
4127 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
4129 * testsuite/23_containers/map/modifiers/merge.cc: Likewise.
4130 * testsuite/23_containers/map/modifiers/try_emplace/1.cc:
4132 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
4133 * testsuite/23_containers/multimap/modifiers/extract.cc:
4135 * testsuite/23_containers/multimap/modifiers/merge.cc: Likewise.
4136 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
4137 * testsuite/23_containers/multiset/modifiers/extract.cc:
4139 * testsuite/23_containers/multiset/modifiers/merge.cc: Likewise.
4140 * testsuite/23_containers/priority_queue/deduction.cc: Likewise.
4141 * testsuite/23_containers/queue/deduction.cc: Likewise.
4142 * testsuite/23_containers/queue/members/emplace_cxx17_return.cc:
4144 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
4145 * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
4146 * testsuite/23_containers/set/modifiers/merge.cc: Likewise.
4147 * testsuite/23_containers/set/modifiers/node_swap.cc: Likewise.
4148 * testsuite/23_containers/stack/deduction.cc: Likewise.
4149 * testsuite/23_containers/stack/members/emplace_cxx17_return.cc:
4151 * testsuite/23_containers/unordered_map/cons/deduction.cc:
4153 * testsuite/23_containers/unordered_map/modifiers/extract.cc:
4155 * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
4157 * testsuite/23_containers/unordered_map/modifiers/merge.cc:
4159 * testsuite/23_containers/unordered_map/modifiers/try_emplace.cc:
4161 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
4163 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
4165 * testsuite/23_containers/unordered_multimap/modifiers/merge.cc:
4167 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
4169 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
4171 * testsuite/23_containers/unordered_multiset/modifiers/merge.cc:
4173 * testsuite/23_containers/unordered_set/cons/deduction.cc:
4175 * testsuite/23_containers/unordered_set/modifiers/extract.cc:
4177 * testsuite/23_containers/unordered_set/modifiers/merge.cc:
4179 * testsuite/23_containers/vector/bool/emplace_cxx17_return.cc:
4181 * testsuite/23_containers/vector/cons/89164_c++17.cc: Likewise.
4182 * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
4183 * testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc:
4186 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4188 * testsuite/21_strings/basic_string/79162.cc: Remove
4189 -std=gnu++17 from dg-options directive.
4190 * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
4191 * testsuite/21_strings/basic_string/cons/char/79162.cc:
4193 * testsuite/21_strings/basic_string/cons/char/86138.cc:
4195 * testsuite/21_strings/basic_string/cons/char/9.cc: Likewise.
4196 * testsuite/21_strings/basic_string/cons/char/deduction.cc:
4198 * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc:
4200 * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
4201 * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc:
4203 * testsuite/21_strings/basic_string/cons/wchar_t/86138.cc:
4205 * testsuite/21_strings/basic_string/cons/wchar_t/9.cc: Likewise.
4206 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
4208 * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
4210 * testsuite/21_strings/basic_string/hash/hash.cc: Likewise.
4211 * testsuite/21_strings/basic_string/lwg2758.cc: Likewise.
4212 * testsuite/21_strings/basic_string/lwg2946.cc: Likewise.
4213 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
4215 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
4217 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
4219 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
4221 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
4223 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
4225 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
4227 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
4229 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
4231 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
4233 * testsuite/21_strings/basic_string/operations/data/char/2.cc:
4235 * testsuite/21_strings/basic_string/operations/data/char/86169.cc:
4237 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc:
4239 * testsuite/21_strings/basic_string/operations/find/char/5.cc:
4241 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
4243 * testsuite/21_strings/basic_string/operators/char/5.cc:
4245 * testsuite/21_strings/basic_string/operators/wchar_t/5.cc:
4247 * testsuite/21_strings/basic_string_view/capacity/1.cc:
4249 * testsuite/21_strings/basic_string_view/capacity/empty_neg.cc:
4251 * testsuite/21_strings/basic_string_view/cons/char/1.cc:
4253 * testsuite/21_strings/basic_string_view/cons/char/2.cc:
4255 * testsuite/21_strings/basic_string_view/cons/char/3.cc:
4257 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
4259 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
4261 * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc:
4263 * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc:
4265 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
4267 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
4269 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
4271 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
4273 * testsuite/21_strings/basic_string_view/element_access/char/constexpr.cc:
4275 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
4277 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
4279 * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
4281 * testsuite/21_strings/basic_string_view/element_access/char/front_back_constexpr.cc:
4283 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
4285 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
4287 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
4289 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
4291 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr.cc:
4293 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
4295 * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
4297 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
4299 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
4301 * testsuite/21_strings/basic_string_view/include.cc: Likewise.
4302 * testsuite/21_strings/basic_string_view/inserters/94051.cc:
4304 * testsuite/21_strings/basic_string_view/inserters/char/1.cc:
4306 * testsuite/21_strings/basic_string_view/inserters/char/2.cc:
4308 * testsuite/21_strings/basic_string_view/inserters/char/3.cc:
4310 * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
4312 * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
4314 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
4316 * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
4318 * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
4320 * testsuite/21_strings/basic_string_view/literals/types.cc:
4322 * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
4324 * testsuite/21_strings/basic_string_view/literals/values.cc:
4326 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
4328 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
4330 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
4332 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
4334 * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
4336 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
4338 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
4340 * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
4342 * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
4344 * testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc:
4346 * testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc:
4348 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
4350 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
4352 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc:
4354 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
4356 * testsuite/21_strings/basic_string_view/operations/copy/char/2.cc:
4358 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
4360 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc:
4362 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
4364 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
4366 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
4368 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
4370 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
4372 * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
4374 * testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc:
4376 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
4378 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
4380 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
4382 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
4384 * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
4386 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
4388 * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
4390 * testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc:
4392 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
4394 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
4396 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
4398 * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
4400 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
4402 * testsuite/21_strings/basic_string_view/operations/substr/char/83511.cc:
4404 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
4406 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/83511.cc:
4408 * testsuite/21_strings/basic_string_view/operators/char/2.cc:
4410 * testsuite/21_strings/basic_string_view/operators/char/89446.cc:
4412 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
4414 * testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc:
4416 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
4418 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
4420 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
4422 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
4424 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
4426 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
4428 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc:
4430 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
4432 * testsuite/21_strings/basic_string_view/requirements/traits_neg.cc:
4434 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
4436 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
4437 * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
4438 * testsuite/21_strings/char_traits/requirements/char/99181.cc:
4440 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
4442 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4444 * testsuite/20_util/memory_resource/1.cc: Remove -std=gnu++17
4445 from dg-options directive.
4446 * testsuite/20_util/memory_resource/2.cc: Likewise.
4447 * testsuite/20_util/monotonic_buffer_resource/1.cc: Likewise.
4448 * testsuite/20_util/monotonic_buffer_resource/93208.cc:
4450 * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
4452 * testsuite/20_util/monotonic_buffer_resource/deallocate.cc:
4454 * testsuite/20_util/monotonic_buffer_resource/release.cc:
4456 * testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc:
4458 * testsuite/20_util/polymorphic_allocator/1.cc: Likewise.
4459 * testsuite/20_util/polymorphic_allocator/construct_pair.cc:
4461 * testsuite/20_util/polymorphic_allocator/resource.cc: Likewise.
4462 * testsuite/20_util/polymorphic_allocator/select.cc: Likewise.
4463 * testsuite/20_util/synchronized_pool_resource/allocate.cc:
4465 * testsuite/20_util/synchronized_pool_resource/allocate_single.cc:
4467 * testsuite/20_util/synchronized_pool_resource/cons.cc:
4469 * testsuite/20_util/synchronized_pool_resource/cons_single.cc:
4471 * testsuite/20_util/synchronized_pool_resource/is_equal.cc:
4473 * testsuite/20_util/synchronized_pool_resource/multithreaded.cc:
4475 * testsuite/20_util/synchronized_pool_resource/options.cc:
4477 * testsuite/20_util/synchronized_pool_resource/release.cc:
4479 * testsuite/20_util/synchronized_pool_resource/release_single.cc:
4481 * testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc:
4483 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
4485 * testsuite/20_util/unsynchronized_pool_resource/cons.cc:
4487 * testsuite/20_util/unsynchronized_pool_resource/is_equal.cc:
4489 * testsuite/20_util/unsynchronized_pool_resource/options.cc:
4491 * testsuite/20_util/unsynchronized_pool_resource/release.cc:
4493 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
4495 * testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise.
4496 * testsuite/23_containers/deque/types/pmr_typedefs_debug.cc:
4498 * testsuite/23_containers/forward_list/pmr_typedefs.cc:
4500 * testsuite/23_containers/forward_list/pmr_typedefs_debug.cc:
4502 * testsuite/23_containers/list/pmr_typedefs.cc: Likewise.
4503 * testsuite/23_containers/list/pmr_typedefs_debug.cc: Likewise.
4504 * testsuite/23_containers/map/pmr_typedefs.cc: Likewise.
4505 * testsuite/23_containers/map/pmr_typedefs_debug.cc: Likewise.
4506 * testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise.
4507 * testsuite/23_containers/multimap/pmr_typedefs_debug.cc:
4509 * testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise.
4510 * testsuite/23_containers/multiset/pmr_typedefs_debug.cc:
4512 * testsuite/23_containers/set/pmr_typedefs.cc: Likewise.
4513 * testsuite/23_containers/set/pmr_typedefs_debug.cc: Likewise.
4514 * testsuite/23_containers/unordered_map/pmr_typedefs.cc:
4516 * testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc:
4518 * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc:
4520 * testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc:
4522 * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc:
4524 * testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc:
4526 * testsuite/23_containers/unordered_set/pmr_typedefs.cc:
4528 * testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc:
4530 * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise.
4531 * testsuite/23_containers/vector/types/pmr_typedefs_debug.cc:
4533 * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
4535 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4537 * testsuite/29_atomics/atomic/69769.cc: Remove -std=gnu++17 from
4539 * testsuite/29_atomics/atomic/is_always_lock_free.cc:
4540 * testsuite/29_atomics/atomic/requirements/typedefs.cc:
4541 * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc:
4542 * testsuite/29_atomics/atomic_integral/requirements/typedefs.cc:
4543 * testsuite/30_threads/lock_guard/cons/deduction.cc: Likewise.
4544 * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
4545 * testsuite/30_threads/scoped_lock/cons/deduction.cc: Likewise.
4546 * testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc:
4548 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc:
4550 * testsuite/30_threads/shared_lock/70766.cc: Likewise.
4551 * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
4552 * testsuite/30_threads/shared_mutex/cons/assign_neg.cc:
4554 * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise.
4555 * testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
4557 * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
4558 * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
4559 * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
4560 * testsuite/30_threads/unique_lock/cons/deduction.cc: Likewise.
4562 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4564 * testsuite/20_util/any/assign/1.cc: Remove -std=gnu++17 from
4565 dg-options directive.
4566 * testsuite/20_util/any/assign/2.cc: Likewise.
4567 * testsuite/20_util/any/assign/emplace.cc: Likewise.
4568 * testsuite/20_util/any/assign/exception.cc: Likewise.
4569 * testsuite/20_util/any/assign/self.cc: Likewise.
4570 * testsuite/20_util/any/cons/1.cc: Likewise.
4571 * testsuite/20_util/any/cons/2.cc: Likewise.
4572 * testsuite/20_util/any/cons/90415.cc: Likewise.
4573 * testsuite/20_util/any/cons/92156.cc: Likewise.
4574 * testsuite/20_util/any/cons/aligned.cc: Likewise.
4575 * testsuite/20_util/any/cons/explicit.cc: Likewise.
4576 * testsuite/20_util/any/cons/in_place.cc: Likewise.
4577 * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
4578 * testsuite/20_util/any/make_any.cc: Likewise.
4579 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
4580 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
4581 * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
4582 * testsuite/20_util/any/misc/swap.cc: Likewise.
4583 * testsuite/20_util/any/modifiers/1.cc: Likewise.
4584 * testsuite/20_util/any/modifiers/83658.cc: Likewise.
4585 * testsuite/20_util/any/modifiers/92156.cc: Likewise.
4586 * testsuite/20_util/any/observers/type.cc: Likewise.
4587 * testsuite/20_util/any/requirements.cc: Likewise.
4588 * testsuite/20_util/any/typedefs.cc: Likewise.
4589 * testsuite/20_util/optional/77288.cc: Likewise.
4590 * testsuite/20_util/optional/84601.cc: Likewise.
4591 * testsuite/20_util/optional/assignment/1.cc: Likewise.
4592 * testsuite/20_util/optional/assignment/2.cc: Likewise.
4593 * testsuite/20_util/optional/assignment/3.cc: Likewise.
4594 * testsuite/20_util/optional/assignment/4.cc: Likewise.
4595 * testsuite/20_util/optional/assignment/5.cc: Likewise.
4596 * testsuite/20_util/optional/assignment/6.cc: Likewise.
4597 * testsuite/20_util/optional/assignment/7.cc: Likewise.
4598 * testsuite/20_util/optional/assignment/8.cc: Likewise.
4599 * testsuite/20_util/optional/assignment/9.cc: Likewise.
4600 * testsuite/20_util/optional/bad_access.cc: Likewise.
4601 * testsuite/20_util/optional/cons/77727.cc: Likewise.
4602 * testsuite/20_util/optional/cons/85642.cc: Likewise.
4603 * testsuite/20_util/optional/cons/copy.cc: Likewise.
4604 * testsuite/20_util/optional/cons/deduction.cc: Likewise.
4605 * testsuite/20_util/optional/cons/default.cc: Likewise.
4606 * testsuite/20_util/optional/cons/move.cc: Likewise.
4607 * testsuite/20_util/optional/cons/trivial.cc: Likewise.
4608 * testsuite/20_util/optional/cons/value.cc: Likewise.
4609 * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
4610 * testsuite/20_util/optional/constexpr/cons/default.cc:
4612 * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
4613 * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
4614 * testsuite/20_util/optional/constexpr/make_optional.cc:
4616 * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
4617 * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
4618 * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
4619 * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
4620 * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
4621 * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
4622 * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
4623 * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
4624 * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
4625 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
4626 * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
4627 * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
4628 * testsuite/20_util/optional/hash.cc: Likewise.
4629 * testsuite/20_util/optional/in_place.cc: Likewise.
4630 * testsuite/20_util/optional/make_optional.cc: Likewise.
4631 * testsuite/20_util/optional/nullopt.cc: Likewise.
4632 * testsuite/20_util/optional/observers/1.cc: Likewise.
4633 * testsuite/20_util/optional/observers/2.cc: Likewise.
4634 * testsuite/20_util/optional/observers/3.cc: Likewise.
4635 * testsuite/20_util/optional/observers/4.cc: Likewise.
4636 * testsuite/20_util/optional/observers/5.cc: Likewise.
4637 * testsuite/20_util/optional/observers/6.cc: Likewise.
4638 * testsuite/20_util/optional/relops/1.cc: Likewise.
4639 * testsuite/20_util/optional/relops/2.cc: Likewise.
4640 * testsuite/20_util/optional/relops/3.cc: Likewise.
4641 * testsuite/20_util/optional/relops/4.cc: Likewise.
4642 * testsuite/20_util/optional/relops/5.cc: Likewise.
4643 * testsuite/20_util/optional/relops/6.cc: Likewise.
4644 * testsuite/20_util/optional/relops/7.cc: Likewise.
4645 * testsuite/20_util/optional/requirements.cc: Likewise.
4646 * testsuite/20_util/optional/swap/1.cc: Likewise.
4647 * testsuite/20_util/optional/swap/2.cc: Likewise.
4648 * testsuite/20_util/optional/typedefs.cc: Likewise.
4649 * testsuite/20_util/variant/80165.cc: Likewise.
4650 * testsuite/20_util/variant/85183.cc: Likewise.
4651 * testsuite/20_util/variant/86874.cc: Likewise.
4652 * testsuite/20_util/variant/87431.cc: Likewise.
4653 * testsuite/20_util/variant/87619.cc: Likewise.
4654 * testsuite/20_util/variant/91807.cc: Likewise.
4655 * testsuite/20_util/variant/any.cc: Likewise.
4656 * testsuite/20_util/variant/compile.cc: Likewise.
4657 * testsuite/20_util/variant/deduction.cc: Likewise.
4658 * testsuite/20_util/variant/exception_safety.cc: Likewise.
4659 * testsuite/20_util/variant/hash.cc: Likewise.
4660 * testsuite/20_util/variant/index_type.cc: Likewise.
4661 * testsuite/20_util/variant/relops/89851.cc: Likewise.
4662 * testsuite/20_util/variant/relops/90008.cc: Likewise.
4663 * testsuite/20_util/variant/run.cc: Likewise.
4664 * testsuite/20_util/variant/visit.cc: Likewise.
4666 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4668 * testsuite/27_io/basic_filebuf/open/char/path.cc: Remove
4669 -std=gnu++17 from dg-options directive.
4670 * testsuite/27_io/basic_fstream/cons/char/path.cc: Likewise.
4671 * testsuite/27_io/basic_fstream/open/char/path.cc: Likewise.
4672 * testsuite/27_io/basic_ifstream/cons/char/path.cc: Likewise.
4673 * testsuite/27_io/basic_ifstream/open/char/path.cc: Likewise.
4674 * testsuite/27_io/basic_ofstream/cons/char/path.cc: Likewise.
4675 * testsuite/27_io/basic_ofstream/open/char/path.cc: Likewise.
4676 * testsuite/27_io/filesystem/directory_entry/86597.cc: Likewise.
4677 * testsuite/27_io/filesystem/directory_entry/lwg3171.cc:
4679 * testsuite/27_io/filesystem/file_status/1.cc: Likewise.
4680 * testsuite/27_io/filesystem/filesystem_error/cons.cc: Likewise.
4681 * testsuite/27_io/filesystem/filesystem_error/copy.cc: Likewise.
4682 * testsuite/27_io/filesystem/iterators/91067.cc: Likewise.
4683 * testsuite/27_io/filesystem/iterators/caching.cc: Likewise.
4684 * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
4686 * testsuite/27_io/filesystem/iterators/pop.cc: Likewise.
4687 * testsuite/27_io/filesystem/iterators/recursion_pending.cc:
4689 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
4691 * testsuite/27_io/filesystem/operations/absolute.cc: Likewise.
4692 * testsuite/27_io/filesystem/operations/all.cc: Likewise.
4693 * testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
4694 * testsuite/27_io/filesystem/operations/copy.cc: Likewise.
4695 * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
4696 * testsuite/27_io/filesystem/operations/create_directories.cc:
4698 * testsuite/27_io/filesystem/operations/create_directory.cc:
4700 * testsuite/27_io/filesystem/operations/create_symlink.cc:
4702 * testsuite/27_io/filesystem/operations/current_path.cc:
4704 * testsuite/27_io/filesystem/operations/equivalent.cc: Likewise.
4705 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
4706 * testsuite/27_io/filesystem/operations/file_size.cc: Likewise.
4707 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
4708 * testsuite/27_io/filesystem/operations/last_write_time.cc:
4710 * testsuite/27_io/filesystem/operations/permissions.cc:
4712 * testsuite/27_io/filesystem/operations/proximate.cc: Likewise.
4713 * testsuite/27_io/filesystem/operations/read_symlink.cc:
4715 * testsuite/27_io/filesystem/operations/relative.cc: Likewise.
4716 * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
4717 * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
4718 * testsuite/27_io/filesystem/operations/rename.cc: Likewise.
4719 * testsuite/27_io/filesystem/operations/resize_file.cc:
4721 * testsuite/27_io/filesystem/operations/space.cc: Likewise.
4722 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
4723 * testsuite/27_io/filesystem/operations/symlink_status.cc:
4725 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
4727 * testsuite/27_io/filesystem/operations/weakly_canonical.cc:
4729 * testsuite/27_io/filesystem/path/append/path.cc: Likewise.
4730 * testsuite/27_io/filesystem/path/append/source.cc: Likewise.
4731 * testsuite/27_io/filesystem/path/assign/assign.cc: Likewise.
4732 * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
4733 * testsuite/27_io/filesystem/path/compare/compare.cc: Likewise.
4734 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
4735 * testsuite/27_io/filesystem/path/compare/path.cc: Likewise.
4736 * testsuite/27_io/filesystem/path/compare/strings.cc: Likewise.
4737 * testsuite/27_io/filesystem/path/concat/92853.cc: Likewise.
4738 * testsuite/27_io/filesystem/path/concat/94063.cc: Likewise.
4739 * testsuite/27_io/filesystem/path/concat/path.cc: Likewise.
4740 * testsuite/27_io/filesystem/path/concat/strings.cc: Likewise.
4741 * testsuite/27_io/filesystem/path/construct/80762.cc: Likewise.
4742 * testsuite/27_io/filesystem/path/construct/90281.cc: Likewise.
4743 * testsuite/27_io/filesystem/path/construct/90634.cc: Likewise.
4744 * testsuite/27_io/filesystem/path/construct/copy.cc: Likewise.
4745 * testsuite/27_io/filesystem/path/construct/default.cc:
4747 * testsuite/27_io/filesystem/path/construct/format.cc: Likewise.
4748 * testsuite/27_io/filesystem/path/construct/locale.cc: Likewise.
4749 * testsuite/27_io/filesystem/path/construct/range.cc: Likewise.
4750 * testsuite/27_io/filesystem/path/construct/string_view.cc:
4752 * testsuite/27_io/filesystem/path/decompose/extension.cc:
4754 * testsuite/27_io/filesystem/path/decompose/filename.cc:
4756 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
4758 * testsuite/27_io/filesystem/path/decompose/relative_path.cc:
4760 * testsuite/27_io/filesystem/path/decompose/root_directory.cc:
4762 * testsuite/27_io/filesystem/path/decompose/root_name.cc:
4764 * testsuite/27_io/filesystem/path/decompose/root_path.cc:
4766 * testsuite/27_io/filesystem/path/decompose/stem.cc: Likewise.
4767 * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc:
4769 * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise.
4770 * testsuite/27_io/filesystem/path/generation/normal.cc:
4772 * testsuite/27_io/filesystem/path/generation/normal2.cc:
4774 * testsuite/27_io/filesystem/path/generation/proximate.cc:
4776 * testsuite/27_io/filesystem/path/generation/relative.cc:
4778 * testsuite/27_io/filesystem/path/generic/94242.cc: Likewise.
4779 * testsuite/27_io/filesystem/path/generic/generic_string.cc:
4781 * testsuite/27_io/filesystem/path/generic/utf.cc: Likewise.
4782 * testsuite/27_io/filesystem/path/generic/wchar_t.cc: Likewise.
4783 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
4784 * testsuite/27_io/filesystem/path/itr/components.cc: Likewise.
4785 * testsuite/27_io/filesystem/path/itr/traversal.cc: Likewise.
4786 * testsuite/27_io/filesystem/path/modifiers/clear.cc: Likewise.
4787 * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
4789 * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc:
4791 * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
4793 * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
4795 * testsuite/27_io/filesystem/path/modifiers/swap.cc: Likewise.
4796 * testsuite/27_io/filesystem/path/native/alloc.cc: Likewise.
4797 * testsuite/27_io/filesystem/path/native/string-char8_t.cc:
4799 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
4800 * testsuite/27_io/filesystem/path/nonmember/append.cc: Likewise.
4801 * testsuite/27_io/filesystem/path/nonmember/cmp.cc: Likewise.
4802 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
4804 * testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
4805 * testsuite/27_io/filesystem/path/query/empty_neg.cc:
4806 * testsuite/27_io/filesystem/path/query/has_extension.cc:
4808 * testsuite/27_io/filesystem/path/query/has_filename.cc:
4810 * testsuite/27_io/filesystem/path/query/has_parent_path.cc:
4812 * testsuite/27_io/filesystem/path/query/has_relative_path.cc:
4814 * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
4816 * testsuite/27_io/filesystem/path/query/has_root_name.cc:
4818 * testsuite/27_io/filesystem/path/query/has_root_path.cc:
4820 * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
4821 * testsuite/27_io/filesystem/path/query/is_absolute.cc:
4823 * testsuite/27_io/filesystem/path/query/is_relative.cc:
4825 * testsuite/experimental/filesystem/path/construct/string_view.cc:
4828 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4830 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc:
4831 Remove -std=gnu++17 from dg-options.
4832 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
4834 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc:
4836 * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc:
4838 * testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise.
4839 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
4841 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
4843 * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc:
4845 * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc:
4847 * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
4849 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
4851 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
4853 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
4855 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc:
4857 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc:
4859 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc:
4861 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
4863 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
4865 * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc:
4867 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
4869 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc:
4871 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
4873 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
4875 * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc:
4877 * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc:
4879 * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc:
4881 * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc:
4883 * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc:
4885 * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc:
4887 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
4889 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
4891 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc:
4893 * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc:
4895 * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
4897 * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc:
4899 * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
4901 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc:
4903 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
4905 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
4907 * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
4909 * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: Likewise.
4910 * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc:
4912 * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
4914 * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
4916 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc:
4918 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
4920 * testsuite/25_algorithms/pstl/alg_sorting/set.cc: Likewise.
4921 * testsuite/25_algorithms/pstl/alg_sorting/sort.cc: Likewise.
4922 * testsuite/25_algorithms/pstl/feature_test-2.cc: Likewise.
4923 * testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise.
4924 * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise.
4925 * testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise.
4926 * testsuite/25_algorithms/pstl/feature_test.cc: Likewise.
4927 * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc:
4929 * testsuite/26_numerics/pstl/numeric_ops/reduce.cc: Likewise.
4930 * testsuite/26_numerics/pstl/numeric_ops/scan.cc: Likewise.
4931 * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
4933 * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc:
4936 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4938 * testsuite/20_util/scoped_allocator/69293_neg.cc: Add dg-error
4939 for additional errors in C++20.
4940 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
4942 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
4943 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
4945 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4947 * testsuite/20_util/variant/compile.cc: Rename 'any' to avoid
4948 clash with std::any.
4950 2021-05-07 Jonathan Wakely <jwakely@redhat.com>
4952 * include/std/istream (__rvalue_stream_extraction_t): Replace
4953 use of __rval_streamable.
4954 * include/std/ostream (__rvalue_stream_insertion_t): Likewise.
4955 (__rval_streamable): Remove.
4956 (_Require_derived_from_ios_base, __derived_from_ios_base): New
4957 helper for checking constraints.
4958 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Fix
4959 reference to the wrong subclause of the standard.
4960 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
4962 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
4964 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
4966 * testsuite/27_io/basic_ostream/inserters_other/char/99692.cc:
4968 * testsuite/27_io/filesystem/path/io/dr2989.cc: Adjust pruned
4971 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
4973 * include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
4974 Improve static_assert messages.
4975 * testsuite/25_algorithms/copy/58982.cc: Adjust expected output.
4976 * testsuite/25_algorithms/copy_n/58982.cc: Likewise.
4978 2021-05-06 Patrick Palka <ppalka@redhat.com>
4980 * include/std/ranges (filter_view::_Iterator::base): Make the
4981 const& overload unconstrained and return a const reference as
4982 per LWG 3533. Make unconditionally noexcept.
4983 (transform_view::_Iterator::base): Likewise.
4984 (elements_view::_Iterator::base): Likewise.
4986 2021-05-06 Patrick Palka <ppalka@redhat.com>
4988 * include/bits/stl_iterator.h (move_iterator::base): Make the
4989 const& overload unconstrained and return a const reference as
4990 per LWG 3391. Make unconditionally noexcept.
4991 (counted_iterator::base): Likewise.
4992 * testsuite/24_iterators/move_iterator/lwg3391.cc: New test.
4993 * testsuite/24_iterators/move_iterator/move_only.cc: Adjust
4994 has_member_base concept to decay-copy the result of base().
4996 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
4998 * include/std/type_traits (remove_cvref_t): Define in terms of
5000 * testsuite/20_util/remove_cvref/value.cc: Check alias.
5002 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
5005 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
5007 * include/std/charconv (__from_chars_alnum): Pass unsigned
5008 char to std::isdigit.
5010 2021-05-05 Patrick Palka <ppalka@redhat.com>
5012 * include/bits/ranges_util.h (enable_borrowed_range<subrange>):
5013 Remove constraints on this partial specialization.
5014 * include/std/ranges (enable_borrowed_range<iota_view>):
5017 2021-05-05 Patrick Palka <ppalka@redhat.com>
5019 * include/std/ranges (transform_view::_Iterator::iter_swap):
5020 Remove as per LWG 3520.
5021 (join_view::_Iterator::iter_swap): Add indirectly_swappable
5022 constraint as per LWG 3517.
5024 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
5026 * testsuite/20_util/function_objects/invoke/3.cc: Check feature
5028 * testsuite/20_util/function_objects/invoke/version.cc: New test.
5030 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
5032 * include/std/charconv (__from_chars_alnum): Pass unsigned
5033 char to std::isdigit.
5035 2021-05-05 Corentin Gay <gay@adacore.com>
5037 * acinclude.m4: Add VxWorks-specific case for the
5038 configuration of ctypes.
5039 * configure: Regenerate.
5040 * config/locale/vxworks/ctype_members.cc: Add VxWorks-specific
5042 * config/os/vxworks/ctype_base.h: Adjust for VxWorks7+.
5043 * config/os/vxworks/ctype_configure_char.cc: Likewise.
5044 * config/os/vxworks/ctype_inline.h: Likewise.
5045 * testsuite/28_regex/traits/char/isctype.cc: Defines
5046 NEWLINE_IN_CLASS_BLANK if the target is VxWorks.
5047 * testsuite/28_regex/traits/wchar_t/isctype.cc: Likewise.
5049 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
5051 * include/std/future (promise::set_value): Check for existence
5052 of shared state before dereferncing it.
5053 (promise::set_exception, promise::set_value_at_thread_exit)
5054 (promise::set_exception_at_thread_exit): Likewise.
5055 (promise<R&>::set_value, promise<R&>::set_exception)
5056 (promise<R&>::set_value_at_thread_exit)
5057 (promise<R&>::set_exception_at_thread_exit): Likewise.
5058 (promise<void>::set_value, promise<void>::set_exception)
5059 (promise<void>::set_value_at_thread_exit)
5060 (promise<void>::set_exception_at_thread_exit): Likewise.
5061 * testsuite/30_threads/promise/members/at_thread_exit2.cc:
5062 Remove unused variable.
5064 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
5066 * include/bits/basic_string.h (basic_string(const CharT*, const A&)):
5067 Do not do arithmetic on null pointer.
5069 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
5071 * include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
5072 (find_key_pointer(key_const_reference, false_type))
5073 (find_key_pointer(key_const_reference, true_type)): Do not
5074 dereference null pointer.
5076 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
5078 * testsuite/20_util/from_chars/3.cc: Use unsigned type to avoid
5080 * testsuite/24_iterators/reverse_iterator/2.cc: Do not add
5081 non-zero value to null pointer.
5082 * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc:
5083 Use past-the-end iterator for result.
5084 * testsuite/25_algorithms/move_backward/69478.cc: Likewise.
5085 * testsuite/25_algorithms/move_backward/93872.cc: Likewise.
5087 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
5090 * include/std/variant (__get_t): New alias template yielding the
5091 return type of std::get<N> on a variant.
5092 (__visit_result_t): New alias template yielding the result of
5094 (__same_types): Move into namespace __detail::__variant.
5095 (__check_visitor_results): Likewise. Use __invoke_result_t and
5097 (__check_visitor_result): Remove.
5098 (visit): Use __visit_result_t for return type.
5099 * testsuite/20_util/variant/100384.cc: New test.
5101 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
5103 * acinclude.m4 (GLIBCXX_ENABLE_INT128_FLOAT128): Remove
5104 checks for __int128 and rename to GLIBCXX_ENABLE_FLOAT128.
5105 * config.h.in: Regenerate.
5106 * configure: Regenerate.
5107 * configure.ac: Adjust to use GLIBCXX_ENABLE_FLOAT128.
5108 * include/bits/random.h (_Select_uint_least_t<s, 1>):
5109 Use __SIZEOF_INT128__ to decide whether to use __int128.
5110 * include/std/charconv (__to_chars_unsigned_type): Likewise.
5112 2021-05-03 Gerald Pfeifer <gerald@pfeifer.com>
5114 * doc/xml/manual/ctype.xml: Move unix.org reference to https.
5115 * doc/html/manual/facets.html: Regenerate.
5117 2021-04-30 Patrick Palka <ppalka@redhat.com>
5119 * include/std/ranges (__detail::__non_propating_cache): Define
5121 (join_view): Remove constraints on the value and reference types
5122 of the wrapped iterator type as per P2328.
5123 (join_view::_Iterator::_M_satisfy): Adjust as per P2328.
5124 (join_view::_Iterator::operator++): Likewise.
5125 (join_view::_M_inner): Use __non_propating_cache as per P2328.
5126 Remove now-redundant use of __maybe_present_t.
5127 * testsuite/std/ranges/adaptors/join.cc: Include <array>.
5130 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
5132 * include/bits/basic_string.h (__cpp_lib_constexpr_string):
5133 Only define for C++17 and later.
5134 * include/std/version (__cpp_lib_semaphore): Fix condition
5135 to match the one in <semaphore>.
5137 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
5139 * acinclude.m4 (GLIBCXX_CHECK_INT64_T): Delete.
5140 * config.h.in: Regenerate.
5141 * configure: Regenerate.
5142 * configure.ac: Do not use GLIBCXX_CHECK_INT64_T.
5143 * include/bits/postypes.h: Remove include of <stdint.h> and
5144 definition/undefinition of the __STDC_LIMIT_MACROS and
5145 __STDC_CONSTANT_MACROS macros.
5146 (streamoff): Use __INT64_TYPE__ if defined.
5148 2021-04-30 Patrick Palka <ppalka@redhat.com>
5150 * include/std/ranges (split_view::_InnerIter::operator++):
5151 Depend on _Base instead of _Vp directly, as per LWG 3532.
5153 2021-04-30 Patrick Palka <ppalka@redhat.com>
5155 * include/bits/ranges_util.h (subrange::subrange): Avoid
5156 list-initialization in delegating constructor.
5157 * include/std/ranges (single_view): Replace implicit guide
5158 with explicit deduction guide that decays its argument.
5159 (_Single::operator()): Avoid CTAD when constructing the
5161 (_Iota::operator()): Avoid list-initialization.
5162 (__detail::__can_filter_view, _Filter::operator()): Likewise.
5163 (__detail::__can_transform_view, _Transform::operator()): Likewise.
5164 (take_view::begin): Likewise.
5165 (__detail::__can_take_view, _Take::operator()): Likewise.
5166 (__detail::__can_take_while_view, _TakeWhile::operator()): Likewise.
5167 (__detail::__can_drop_view, _Drop::operator()): Likewise.
5168 (__detail::__can_drop_while_view, _DropWhile::operator()): Likewise.
5169 (split_view::split_view): Use views::single when initializing
5171 (__detail::__can_split_view, _Split::operator()): Avoid
5172 list-initialization.
5173 (_Counted::operator()): Likewise.
5174 * testsuite/std/ranges/p2367.cc: New test.
5176 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
5179 * include/bits/basic_ios.tcc (basic_ios::copyfmt): use
5181 * include/bits/basic_string.tcc (basic_string::swap)
5182 (basic_string::assign): Likewise.
5183 * include/bits/deque.tcc (deque::operator=(const deque&)):
5185 * include/bits/stl_tree.h (_Rb_tree::operator=(const * _Rb_tree&)):
5187 * include/bits/vector.tcc (vector::operator=(const vector&)):
5190 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
5192 * include/std/istream (operator>>(Istream&&, x&)): Simplify, as
5194 * include/std/ostream (operator<<(Ostream&&, const x&)):
5196 * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc:
5197 Adjust dg-error pattern.
5198 * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc:
5200 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Define
5201 is_extractable trait to replace std::__is_extractable. Make it
5202 work with rvalue streams as well as lvalues, to replace f() and
5203 g() helper functions.
5204 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
5206 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
5207 Define is_insertable trait to replace std::__is_insertable. Make
5208 it work with rvalue streams as well as lvalues, to replace f()
5209 and g() helper functions.
5210 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
5212 * testsuite/27_io/filesystem/path/io/dr2989.cc: Prune additional
5213 errors from new constraints.
5214 * testsuite/27_io/rvalue_streams-2.cc: Remove PR 80675 checks,
5215 which are no longer expected to compile.
5216 * testsuite/27_io/rvalue_streams.cc: Adjust existing test.
5217 Verify LWG 1203 changes.
5219 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
5222 * include/experimental/socket (__basic_socket_impl::set_option)
5223 (__basic_socket_impl::get_option) [!_GLIBCXX_HAVE_SYS_SOCKET_H]:
5224 Just set error code.
5225 * testsuite/experimental/net/socket/socket_base.cc: CHeck
5226 for <sys/socket.h> not <socket.h>.
5228 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
5233 * testsuite/experimental/net/internet/address/v4/comparisons.cc:
5234 Use new effective-target keyword.
5235 * testsuite/experimental/net/internet/address/v4/cons.cc:
5237 * testsuite/experimental/net/internet/address/v4/creation.cc:
5239 * testsuite/experimental/net/internet/address/v4/members.cc:
5241 * testsuite/experimental/net/internet/address/v6/members.cc:
5243 * testsuite/experimental/net/internet/resolver/base.cc:
5245 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
5247 * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
5249 * testsuite/experimental/net/internet/socket/opt.cc:
5251 * testsuite/experimental/net/internet/tcp.cc:
5253 * testsuite/experimental/net/internet/udp.cc:
5255 * testsuite/lib/libstdc++.exp (check_effective_target_net_ts_ip):
5256 New proc to check net_ts_ip et.
5258 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5261 * testsuite/20_util/pair/requirements/structural.cc: New test.
5263 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5265 * include/bits/stl_pair.h (pair) [__cplusplus > 202002]: Add
5266 new definitions for constructors and assignment operators using
5267 concepts for constraints.
5268 * testsuite/20_util/pair/cons/99957.cc: Disable for C++20 and
5270 * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust
5271 expected error messages to also match C++20 errors.
5273 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5276 * include/bits/stl_pair.h (_PCC::_MoveCopyPair, _PCC::_CopyMovePair):
5277 Combine and replace with ...
5278 (_PCC::_DeprConsPair): New SFINAE helper function.
5279 (pair): Merge preprocessor blocks so that all C++03 members
5280 are defined together at the end.
5281 (pair::pair(const _T1&, _U2&&), pair::pair(_U1&&, const _T2&)):
5282 Replace _T1 and _T2 parameters with __null_ptr_constant and
5284 * testsuite/20_util/pair/40925.cc: Use nullptr instead of 0.
5285 * testsuite/20_util/pair/cons/explicit_construct.cc: Likewise.
5286 * testsuite/20_util/pair/cons/99957.cc: New test.
5288 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5290 * include/bits/basic_string.h (__cpp_lib_constexpr_string): Define.
5291 * include/std/version (__cpp_lib_constexpr_string): Define.
5292 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
5293 Check for __cpp_lib_constexpr_string.
5294 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
5296 * testsuite/21_strings/char_traits/requirements/version.cc: New test.
5298 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5300 * doc/Makefile.am (stamp-pdf-doxygen): Improve comment about
5301 dealing with errors. Use '@' to prevent shell command being
5303 * doc/Makefile.in: Regenerate.
5305 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5308 * include/bits/std_thread.h (thread::hardware_concurrency): Add
5309 missing noexcept to inline definition for non-gthreads targets.
5311 2021-04-28 Patrick Palka <ppalka@redhat.com>
5317 * include/bits/ranges_algo.h (__search_n_fn::operator()): Give
5318 the __value_comp lambda an explicit bool return type.
5319 (__is_permutation_fn::operator()): Give the __proj_scan local
5320 variable auto&& return type. Give the __comp_scan lambda an
5321 explicit bool return type.
5322 (__remove_fn::operator()): Give the __pred lambda an explicit
5324 (__partition_fn::operator()): Don't std::move __first twice
5325 when returning an empty subrange.
5326 (__min_fn::operator()): Don't std::move __comp.
5327 (__max_fn::operator()): Likewise.
5328 (__minmax_fn::operator()): Likewise.
5330 2021-04-27 Patrick Palka <ppalka@redhat.com>
5333 * include/std/ranges (join_view::_Iterator::operator++): Correct
5334 the return type of the lambda to avoid returning a copy of
5335 _M_parent->_M_inner.
5336 * testsuite/std/ranges/adaptors/join.cc (test10): New test.
5338 2021-04-27 Jakub Jelinek <jakub@redhat.com>
5341 2021-04-22 Jakub Jelinek <jakub@redhat.com>
5344 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
5346 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
5349 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
5351 * include/experimental/internet (address_v6::bytes_type): Adjust
5353 (basic_endpoint): Define _M_is_v6() to put all checks for
5354 AF_INET6 in one place.
5355 (basic_endpoint::resize): Simplify.
5356 (operator==(const tcp&, const tcp&)): Add constexpr and noexcept.
5357 (operator!=(const tcp&, const tcp&)): Likewise.
5358 (operator==(const udp&, const udp&)): Likewise.
5359 (operator!=(const udp&, const udp&)): Likewise.
5360 * testsuite/experimental/net/internet/tcp.cc: New test.
5361 * testsuite/experimental/net/internet/udp.cc: New test.
5363 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
5366 * include/experimental/internet (resolver_errc, resolver_category())
5367 (make_error_code, make_error_condition): Define unconditionally,
5368 only make enumerators and use of gai_strerror depend on the
5369 availability of <netdb.h>.
5370 (address_v4::to_string): Use correct constant for string length.
5371 (address_v4::to_string, address_v6::to_string): Define
5372 unconditionally, throw if unsupported.
5373 (make_address_v4, make_address_v6): Define unconditionally.
5374 Return an error if unsupported.
5375 (tcp, udp, v6_only, unicast::hops, multicast::*): Define
5377 * testsuite/experimental/net/internet/socket/opt.cc: Check for
5378 <netinet/in.h> and <netinet/tcp.h> before using types from
5381 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
5384 * include/experimental/internet (resolver_base::flags):
5385 Define overloaded operators as hidden friends.
5386 * include/experimental/socket (socket_base::message_flags):
5389 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
5391 * include/experimental/internet (tcp::no_delay, v6_only)
5392 (unicast::hops, multicast::hops, multicast::enable_loopback):
5393 Change access of base class and static data members. Add
5394 using-declaration for __socket_crtp::operator=(_Tp).
5395 (multicast::__mcastopt): New type.
5396 (multicast::join_group, multicast::leave_group): Derive from
5397 __mcastopt for common implementation.
5398 * include/experimental/socket: Add comment.
5399 * testsuite/experimental/net/internet/socket/opt.cc: New test.
5400 * testsuite/experimental/net/socket/socket_base.cc: Check for
5401 protected constructor/destructor of socket_base. Check for
5402 explicit constructors of socket option classes.
5404 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
5406 * include/experimental/bits/net.h (__socket_base): Add
5407 bool template parameter to allow BooleanSocketOption and
5408 IntegerSocketOption to have different __socket_base<int>
5410 (__socket_base<bool>): Adjust base class.
5411 (__socket_base<int>): Add partial specialization.
5412 (__socket_crtp::operator=(_Tp)): Add noexcept-specifier.
5413 * include/experimental/socket (socket_base::broadcast)
5414 (socket_base::debug, socket_base::do_not_route)
5415 (socket_base::keep_alive, socket_base::linger)
5416 (socket_base::out_of_band_inline)
5417 (socket_base::receive_buffer_size)
5418 (socket_base::receive_low_watermark)
5419 (socket_base::reuse_address, socket_base::send_buffer_size)
5420 (socket_base::send_low_watermark): Add using-declaration for
5421 __socket_crtp::operator=(_Tp).
5422 * testsuite/experimental/net/socket/socket_base.cc: Check
5423 properties of socket option types.
5425 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
5427 * include/experimental/internet (resolver_base::flags): Remove
5428 enumerators. Initialize constants directly with desired values.
5429 Make all operators constexpr and noexcept.
5430 * testsuite/experimental/net/internet/resolver/base.cc: Use
5431 __gnu_test::test_bitmask_values for bitmask type. Check
5432 construction and destruction is protected.
5434 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
5436 * include/bits/semaphore_base.h: Include <exception> and <errno.h>.
5438 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
5441 * include/experimental/internet (net::ip::make_error_code)
5442 (net::ip::make_error_condition, net::ip::make_network_v4)
5443 (net::ip::operator==(const udp&, const udp&)): Add 'inline'.
5445 2021-04-24 David Edelsohn <dje.gcc@gmail.com>
5447 * testsuite/lib/dg-options.exp (atomic_link_flags): New.
5448 (add_options_for_libatomic): Use atomic_link_flags.
5450 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
5453 * include/experimental/io_context (io_context): Define
5454 dummy_pollfd type so that most member functions still compile
5455 without <poll.h> and struct pollfd.
5457 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
5459 * include/experimental/io_context (io_context::async_wait): Add
5461 * include/experimental/socket (basic_socket::async_connect):
5462 Cast wait_type constant to int.
5463 (basic_datagram_socket::async_receive): Likewise.
5464 (basic_datagram_socket::async_receive_from): Likewise.
5465 (basic_datagram_socket::async_send): Likewise.
5466 (basic_datagram_socket::async_send_to): Likewise.
5467 (basic_stream_socket::async_receive): Likewise.
5468 (basic_stream_socket::async_send): Likewise. Use io_context
5469 parameter directly, instead of via an executor.
5470 (basic_socket_acceptor::async_accept): Likewise.
5472 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
5474 * include/experimental/socket (socket_base::shutdown_type):
5475 (socket_base::wait_type, socket_base::message_flags):
5476 Remove enumerators. Initialize constants directly with desired
5478 (socket_base::message_flags): Make all operators constexpr and
5480 * testsuite/util/testsuite_common_types.h (test_bitmask_values):
5482 * testsuite/experimental/net/socket/socket_base.cc: New test.
5484 2021-04-22 David Edelsohn <dje.gcc@gmail.com>
5486 * config/os/aix/atomicity.h: Delete.
5488 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
5490 * include/bits/atomic_timed_wait.h (__cond_wait_until_impl):
5491 Handle system_clock as well as steady_clock.
5492 * testsuite/30_threads/semaphore/try_acquire_for.cc: Re-enable.
5493 * testsuite/30_threads/semaphore/try_acquire_until.cc:
5496 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
5498 * testsuite/30_threads/semaphore/try_acquire_posix.cc: Add
5499 options for libatomic.
5501 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
5503 * config/os/gnu-linux/os_defines.h: Fix type in comment.
5505 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
5508 * include/bits/shared_ptr.h (allocate_shared): Assert that _Tp
5509 is not an array type.
5510 * include/bits/shared_ptr_base.h (__allocate_shared): Likewise.
5511 * testsuite/20_util/shared_ptr/creation/99006.cc: New test.
5513 2021-04-22 Thomas Rodgers <rodgert@twrodgers.com>
5515 * include/bits/atomic_wait.h: Always notify waiters in the
5516 case of 'bare' address notification.
5518 2021-04-22 Jakub Jelinek <jakub@redhat.com>
5521 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
5523 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
5526 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
5529 * include/bits/semaphore_base.h: Remove #error.
5530 * include/std/semaphore: Do not define anything unless one of
5531 the implementations is available.
5533 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
5535 * include/bits/semaphore_base.h: Always reload __old in
5536 __atomic_semaphore::_S_do_try_acquire().
5537 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
5540 2021-04-21 Philippe Blain <levraiphilippeblain@gmail.com>
5541 Jonathan Wakely <jwakely@redhat.com>
5544 * python/Makefile.am: Install libstdc++*-gdb.py more robustly.
5545 * python/Makefile.in: Regenerate.
5547 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
5549 * include/bits/semaphore_base.h: Add missing _M_try_acquire()
5550 member to __platform_wait.
5552 2021-04-21 Jonathan Wakely <jwakely@redhat.com>
5554 * include/std/latch: Replace tab characters in license text.
5555 * include/std/semaphore: Likewise.
5557 2021-04-21 Jakub Jelinek <jakub@redhat.com>
5560 * acinclude.m4: For POSIX semaphores AC_DEFINE HAVE_POSIX_SEMAPHORE
5561 rather than _GLIBCXX_HAVE_POSIX_SEMAPHORE.
5562 * configure: Regenerated.
5563 * config.h.in: Regenerated.
5565 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
5567 * testsuite/30_threads/semaphore/try_acquire_for.cc: Disable
5568 test for targets not using futexes for semaphores.
5569 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
5570 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
5571 Disable for all targets.
5573 2021-04-20 Thomas Rodgers <trodgers@redhat.com>
5575 * include/Makefile.am: Add new <bits/this_thread_sleep.h> header.
5576 * include/Makefile.in: Regenerate.
5577 * include/bits/this_thread_sleep.h: New file.
5578 * include/bits/atomic_base.h: Adjust all calls
5579 to __atomic_wait/__atomic_notify for new call signatures.
5580 * include/bits/atomic_timed_wait.h: Extensive rewrite.
5581 * include/bits/atomic_wait.h: Likewise.
5582 * include/bits/semaphore_base.h: Adjust all calls
5583 to __atomic_wait/__atomic_notify for new call signatures.
5584 * include/std/atomic: Likewise.
5585 * include/std/barrier: Likewise.
5586 * include/std/latch: Likewise.
5587 * include/std/semaphore: Likewise.
5588 * include/std/thread (this_thread::sleep_for)
5589 (this_thread::sleep_until): Move to new header.
5590 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Simplify
5592 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
5593 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
5594 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
5595 * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
5596 * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
5597 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Likewise.
5599 2021-04-20 Patrick Palka <ppalka@redhat.com>
5602 * include/bits/stl_iterator.h (__detail::__move_iter_cat):
5604 (move_iterator): Derive from the above in C++20 in order to
5605 conditionally define iterator_category as per P2259.
5606 (move_iterator::__base_cat): No longer used, so remove.
5607 (move_iterator::iterator_category): Remove in C++20.
5608 (__detail::__common_iter_use_postfix_proxy): Define.
5609 (common_iterator::_Proxy): Rename to ...
5610 (common_iterator:__arrow_proxy): ... this.
5611 (common_iterator::__postfix_proxy): Define as per P2259.
5612 (common_iterator::operator->): Adjust.
5613 (common_iterator::operator++): Adjust as per P2259.
5614 (iterator_traits<common_iterator>::_S_iter_cat): Define.
5615 (iterator_traits<common_iterator>::iterator_category): Change as
5617 (__detail::__counted_iter_value_type): Define.
5618 (__detail::__counted_iter_concept): Define.
5619 (__detail::__counted_iter_cat): Define.
5620 (counted_iterator): Derive from the above three classes in order
5621 to conditionally define value_type, iterator_concept and
5622 iterator category respectively as per P2259.
5623 (counted_iterator::operator->): Define as per P2259.
5624 (incrementable_traits<counted_iterator>): Remove as per P2259.
5625 (iterator_traits<counted_iterator>): Adjust as per P2259.
5626 * include/std/ranges (__detail::__iota_view_iter_cat): Define.
5627 (iota_view::_Iterator): Derive from the above in order to
5628 conditionally define iterator_category as per P2259.
5629 (iota_view::_S_iter_cat): Rename to ...
5630 (iota_view::_S_iter_concept): ... this.
5631 (iota_view::iterator_concept): Use it to apply LWG 3291 changes.
5632 (iota_view::iterator_category): Remove.
5633 (__detail::__filter_view_iter_cat): Define.
5634 (filter_view::_Iterator): Derive from the above in order to
5635 conditionally define iterator_category as per P2259.
5636 (filter_view::_Iterator): Move to struct __filter_view_iter_cat.
5637 (filter_view::_Iterator::iterator_category): Remove.
5638 (transform_view::_Base): Define.
5639 (transform_view::__iter_cat): Define.
5640 (transform_view::_Iterator): Derive from the above in order to
5641 conditionally define iterator_category as per P2259.
5642 (transform_view::_Iterator::_Base): Just alias
5643 transform_view::_Base.
5644 (transform_view::_Iterator::_S_iter_cat): Move to struct
5645 transform_view::__iter_cat.
5646 (transform_view::_Iterator::iterator_category): Remove.
5647 (transform_view::_Sentinel::_Base): Just alias
5648 transform_view::_Base.
5649 (join_view::_Base): Define.
5650 (join_view::_Outer_iter): Define.
5651 (join_view::_Inner_iter): Define.
5652 (join_view::_S_ref_is_glvalue): Define.
5653 (join_view::__iter_cat): Define.
5654 (join_view::_Iterator): Derive from it in order to conditionally
5655 define iterator_category as per P2259.
5656 (join_view::_Iterator::_Base): Just alias join_view::_Base.
5657 (join_view::_Iterator::_S_ref_is_glvalue): Just alias
5658 join_view::_S_ref_is_glvalue.
5659 (join_view::_Iterator::_S_iter_cat): Move to struct
5660 transform_view::__iter_cat.
5661 (join_view::_Iterator::_Outer_iter): Just alias
5662 join_view::_Outer_iter.
5663 (join_view::_Iterator::_Inner_iter): Just alias
5664 join_view::_Inner_iter.
5665 (join_view::_Iterator::iterator_category): Remove.
5666 (join_view::_Sentinel::_Base): Just alias join_view::_Base.
5667 (__detail::__split_view_outer_iter_cat): Define.
5668 (__detail::__split_view_inner_iter_cat): Define.
5669 (split_view::_Base): Define.
5670 (split_view::_Outer_iter): Derive from __split_view_outer_iter_cat
5671 in order to conditionally define iterator_category as per P2259.
5672 (split_view::_Outer_iter::iterator_category): Remove.
5673 (split_view::_Inner_iter): Derive from __split_view_inner_iter_cat
5674 in order to conditionally define iterator_category as per P2259.
5675 (split_view::_Inner_iter::_S_iter_cat): Move to
5676 __split_view_inner_iter_cat.
5677 (split_view::_Inner_iter::iterator_category): Remove.
5678 (elements_view::_Base): Define.
5679 (elements_view::__iter_cat): Define.
5680 (elements_view::_Iterator): Derive from the above in order to
5681 conditionall define iterator_category as per P2259.
5682 (elements_view::_Iterator::_Base): Just alias
5683 elements_view::_Base.
5684 (elements_view::_Iterator::_S_iter_concept)
5685 (elements_view::_Iterator::iterator_concept): Define as per
5687 (elements_view::_Iterator::iterator_category): Remove.
5688 (elements_view::_Sentinel::_Base): Just alias
5689 elements_view::_Base.
5690 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
5691 Adjust constraints on iterator_traits<counted_iterator>.
5692 * testsuite/std/ranges/p2259.cc: New test.
5694 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
5697 * include/std/charconv (__cpp_lib_to_chars): Define
5699 * include/std/version (__cpp_lib_to_chars): Likewise..
5700 * testsuite/20_util/from_chars/4.cc: Only check feature test
5701 macro, not _GLIBCXX_HAVE_USELOCALE.
5702 * testsuite/20_util/from_chars/5.cc: Likewise.
5703 * testsuite/20_util/from_chars/6.cc: Likewise.
5704 * testsuite/20_util/to_chars/long_double.cc: Likewise.
5706 2021-04-20 Jakub Jelinek <jakub@redhat.com>
5708 * testsuite/util/testsuite_abi.cc (compare_symbols): If any symbol
5709 versions with _IEEE128_ substring are found, set ieee_version_found
5710 to true. Ignore missing symbols with _IEEE128_ in version name if
5711 !ieee_version_found. Use i->first as version_name instead of
5712 i->second.version_name if the latter is empty.
5713 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
5715 2021-04-19 H.J. Lu <hjl.tools@gmail.com>
5717 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
5720 2021-04-17 Jakub Jelinek <jakub@redhat.com>
5722 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
5723 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
5725 2021-04-17 Jakub Jelinek <jakub@redhat.com>
5727 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
5728 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
5729 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
5730 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
5731 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
5732 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
5734 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
5736 * testsuite/lib/dg-options.exp (add_options_for_libatomic): Also
5737 add libatomic options for 32-bit sparc*-*-linux-gnu.
5739 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
5742 * libsupc++/Makefile.am: Add atomicity.cc here.
5743 * src/c++98/Makefile.am: Remove it from here.
5744 * libsupc++/Makefile.in: Regenerate.
5745 * src/c++98/Makefile.in: Regenerate.
5746 * testsuite/18_support/exception_ptr/96657.cc: New test.
5748 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
5751 * include/std/bit: Only include <ext/numeric_traits.h> for
5752 hosted build, use <limits> otherwise.
5754 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
5756 * doc/xml/manual/backwards_compatibility.xml: Remove porting
5757 notes for libg++ and libstdc++-v2, and bibliography.
5758 * doc/html/*: Regenerated.
5760 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
5763 * include/bits/ranges_util.h (__detail::__iterator_sentinel_pair):
5764 Remove helper concept.
5765 (subrange(_Pr), subrange(Pr, __make_unsigned_like<...>)): Remove
5766 deduction guides, as per LWG 3404.
5767 * testsuite/std/ranges/subrange/lwg3282_neg.cc: Check that class
5768 template argument deduction fails.
5770 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
5772 * testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc:
5773 Adjust expected error for C++20 mode.
5774 * testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc:
5777 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
5780 * testsuite/17_intro/headers/c++1998/49745.cc: Include all
5781 standard headers and XFAIL for effective-target c++20.
5783 2021-04-09 François Dumont <fdumont@gcc.gnu.org>
5786 * include/debug/helper_functions.h (__can_advance(_InputIterator,
5787 const std::pair<_Diff, _Distance_precision>&, int)): New.
5788 (__can_advance(const _Safe_iterator<>&,
5789 const std::pair<_Diff, _Distance_precision>&, int)): New.
5790 * include/debug/macros.h (__glibcxx_check_can_increment_dist): New,
5792 (__glibcxx_check_can_increment_range): Adapt to use latter.
5793 (__glibcxx_check_can_decrement_range): Likewise.
5794 * include/debug/safe_iterator.h
5795 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
5797 (__can_advance(const _Safe_iterator<>&,
5798 const std::pair<_Diff, _Distance_precision>&, int)): New.
5799 * include/debug/safe_iterator.tcc
5800 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
5802 (_Safe_iterator<>::_M_valid_range(const _Safe_iterator<>&,
5803 std::pair<difference_type, _Distance_precision>&, bool)): Adapt for
5805 (__copy_move_a): Adapt to use __glibcxx_check_can_increment_dist.
5806 (__copy_move_backward_a): Likewise.
5807 (__equal_aux): Likewise.
5808 * include/debug/stl_iterator.h (__can_advance(const std::reverse_iterator<>&,
5809 const std::pair<_Diff, _Distance_precision>&, int)): New.
5810 (__can_advance(const std::move_iterator<>&,
5811 const std::pair<_Diff, _Distance_precision>&, int)): New.
5812 * testsuite/25_algorithms/copy/debug/99402.cc: New test.
5814 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
5817 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()): Fix
5818 to be a valid constexpr function in C++11.
5819 * testsuite/23_containers/unordered_set/cons/99985.cc: New test.
5821 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
5823 * include/bits/fs_fwd.h: Fix doxygen group command.
5824 * include/bits/streambuf_iterator.h: Likewise.
5825 * include/bits/uses_allocator_args.h: Likewise.
5826 * include/std/memory: Likewise.
5827 * include/tr1/complex: Likewise.
5829 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
5831 * include/bits/basic_string.h: Tweak doxygen comment.
5833 2021-04-08 Patrick Palka <ppalka@redhat.com>
5835 * include/std/ranges (__detail::find): Define.
5836 (split_view::_OuterIter::operator++): Apply proposed resolution
5838 * testsuite/std/ranges/adaptors/split.cc (test10): New test.
5840 2021-04-08 Patrick Palka <ppalka@redhat.com>
5842 * include/std/ranges (__detail::find_if): Simplify.
5843 (__detail::find_if_not): Likewise.
5844 (__detail::min): Remove.
5845 (__detail::mismatch): Simplify.
5846 (take_view::size): Use std::min instead of __detail::min.
5848 2021-04-08 Patrick Palka <ppalka@redhat.com>
5850 * include/std/ranges (__detail::__returnable_element): New
5852 (elements_view): Use this concept in its constraints. Add
5853 missing private access specifier.
5854 (elements_view::_S_get_element): Define as per LWG 3502.
5855 (elements_view::operator*, elements_view::operator[]): Use
5857 (elements_view::operator++): Remove unnecessary constraint
5859 * testsuite/std/ranges/adaptors/elements.cc (test05): New test.
5861 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
5863 * doc/Makefile.am (stamp-pdf-doxygen): Also grep for
5864 out-of-memory error in log file.
5865 * doc/Makefile.in: Regenerate.
5867 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
5869 * configure: Regenerate.
5871 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
5873 * include/bits/random.h: Fix doxygen group commands.
5874 * include/bits/regex_constants.h: Likewise.
5875 * include/tr1/random.h: Likewise.
5877 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
5879 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()):
5880 New function to determine noexcept-specifier for move
5882 (_Hashtable): Use _S_nothrow_move() on move constructors.
5883 * testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc:
5884 Correct static assertion message.
5885 * testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc:
5887 * testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc:
5889 * testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc:
5892 2021-04-08 Patrick Palka <ppalka@redhat.com>
5895 * testsuite/20_util/to_chars/long_double.cc: Don't run the test
5896 on targets without a large long double. XFAIL the execution on
5897 targets with a non-conforming printf.
5899 2021-04-08 Patrick Palka <ppalka@redhat.com>
5902 * include/std/ranges (__adaptor::__maybe_refwrap): Remove.
5903 (__adaptor::__adaptor_invocable): New concept.
5904 (__adaptor::__adaptor_partial_app_viable): New concept.
5905 (__adaptor::_RangeAdaptorClosure): Rewrite, turning it into a
5906 non-template base class.
5907 (__adaptor::_RangeAdaptor): Rewrite, turning it into a CRTP base
5909 (__adaptor::_Partial): New class template that represents
5910 partial application of a range adaptor non-closure.
5911 (__adaptor::__pipe_invocable): New concept.
5912 (__adaptor::_Pipe): New class template.
5913 (__detail::__can_ref_view): New concept.
5914 (__detail::__can_subrange): New concept.
5915 (all): Replace the lambda here with ...
5916 (_All): ... this functor. Add appropriate constraints.
5917 (__detail::__can_filter_view): New concept.
5918 (filter, _Filter): As in all/_All.
5919 (__detail::__can_transform): New concept.
5920 (transform, _Transform): As in all/_All.
5921 (__detail::__can_take_view): New concept.
5922 (take, _Take): As in all/_All.
5923 (__detail::__can_take_while_view): New concept.
5924 (take_while, _TakeWhile): As in all/_All.
5925 (__detail::__can_drop_view): New concept.
5926 (drop, _Drop): As in all/_All.
5927 (__detail::__can_drop_while_view): New concept.
5928 (drop_while, _DropWhile): As in all/_All.
5929 (__detail::__can_join_view): New concept.
5930 (join, _Join): As in all/_All.
5931 (__detail::__can_split_view): New concept.
5932 (split, _Split): As in all/_All. Rename template parameter
5934 (__detail::__already_common): New concept.
5935 (__detail::__can_common_view): New concept.
5936 (common, _Common): As in all/_All.
5937 (__detail::__can_reverse_view): New concept.
5938 (reverse, _Reverse): As in all/_All.
5939 (__detail::__can_elements_view): New concept.
5940 (elements, _Elements): As in all/_All.
5941 (keys, values): Adjust.
5942 * testsuite/std/ranges/adaptors/99433.cc: New test.
5943 * testsuite/std/ranges/adaptors/all.cc: No longer expect that
5944 adding empty range adaptor closure objects to a pipeline doesn't
5945 increase the size of the pipeline.
5947 * testsuite/std/ranges/adaptors/common.cc (test03): New test.
5948 * testsuite/std/ranges/adaptors/drop.cc (test09): New test.
5949 * testsuite/std/ranges/adaptors/drop_while.cc (test04): New test.
5950 * testsuite/std/ranges/adaptors/elements.cc (test04): New test.
5951 * testsuite/std/ranges/adaptors/filter.cc (test06): New test.
5952 * testsuite/std/ranges/adaptors/join.cc (test09): New test.
5953 * testsuite/std/ranges/adaptors/p2281.cc: New test.
5954 * testsuite/std/ranges/adaptors/reverse.cc (test07): New test.
5955 * testsuite/std/ranges/adaptors/split.cc (test01, test04):
5958 * testsuite/std/ranges/adaptors/split_neg.cc (test01): Adjust
5959 expected error message.
5960 (test02): Likewise. Extend test.
5961 * testsuite/std/ranges/adaptors/take.cc (test06): New test.
5962 * testsuite/std/ranges/adaptors/take_while.cc (test05): New test.
5963 * testsuite/std/ranges/adaptors/transform.cc (test07, test08):
5966 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
5968 * include/std/string_view: Adjust Doxygen @file comment.
5970 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
5972 * include/std/type_traits (is_scoped_enum<T>): Constrain partial
5973 specialization to not match incomplete enum types. Use a
5974 requires-expression instead of instantiating is_convertible.
5975 (is_scoped_enum<const T>): Add as workaround for PR c++/99968.
5976 * testsuite/20_util/is_scoped_enum/value.cc: Check with
5977 incomplete types and opaque-enum-declarations.
5979 2021-04-07 Jonathan Wakely <jwakely@redhat.com>
5982 * src/c++17/fs_path.cc (path::_M_split_cmpts): Do not call
5983 non-const member on _M_pathname, to avoid copy-on-write.
5984 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
5985 Check construction from strings that might be shared.
5987 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
5989 * include/bits/move.h (forward, move, move_if_noexcept)
5990 (addressof): Add _GLIBCXX_NODISCARD.
5991 * include/bits/ranges_cmp.h (identity::operator()): Add
5992 nodiscard attribute.
5993 * include/c_global/cstddef (to_integer): Likewise.
5994 * include/std/bit (bit_cast): Likewise.
5995 * include/std/utility (as_const, to_underlying): Likewise.
5997 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
5999 * include/bits/move.h (forward): Change static_assert message
6000 to be unambiguous about what must be true.
6001 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
6002 * testsuite/20_util/forward/f_neg.cc: Likewise.
6004 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
6006 * include/bits/alloc_traits.h: Use markdown for code font.
6007 * include/bits/basic_string.h: Fix @param names.
6008 * include/bits/max_size_type.h: Remove period after @file.
6009 * include/bits/regex.h: Fix duplicate @retval names, and rename.
6010 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp: Add
6011 group open to match existing group close.
6012 * include/ext/pb_ds/priority_queue.hpp: Add blank line before group
6015 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
6017 * include/bits/atomic_base.h: Fix doxygen group close.
6018 * include/bits/basic_ios.h: Likewise.
6019 * include/bits/forward_list.h: Likewise.
6020 * include/bits/fs_dir.h: Likewise.
6021 * include/bits/fs_ops.h: Likewise.
6022 * include/bits/fs_path.h: Likewise.
6023 * include/bits/functional_hash.h: Likewise.
6024 * include/bits/gslice.h: Likewise.
6025 * include/bits/gslice_array.h: Likewise.
6026 * include/bits/hashtable_policy.h: Likewise.
6027 * include/bits/indirect_array.h: Likewise.
6028 * include/bits/locale_classes.h: Likewise.
6029 * include/bits/locale_facets.h: Likewise.
6030 * include/bits/locale_facets_nonio.h: Likewise.
6031 * include/bits/mask_array.h: Likewise.
6032 * include/bits/refwrap.h: Likewise.
6033 * include/bits/regex.h: Likewise.
6034 * include/bits/regex_automaton.h: Likewise.
6035 * include/bits/regex_compiler.h: Likewise.
6036 * include/bits/regex_constants.h: Likewise.
6037 * include/bits/regex_error.h: Likewise.
6038 * include/bits/regex_executor.h: Likewise.
6039 * include/bits/regex_scanner.h: Likewise.
6040 * include/bits/shared_ptr.h: Likewise.
6041 * include/bits/shared_ptr_atomic.h: Likewise.
6042 * include/bits/shared_ptr_base.h: Likewise.
6043 * include/bits/slice_array.h: Likewise.
6044 * include/bits/specfun.h: Likewise.
6045 * include/bits/std_function.h: Likewise.
6046 * include/bits/std_mutex.h: Likewise.
6047 * include/bits/stl_deque.h: Likewise.
6048 * include/bits/stl_iterator.h: Likewise.
6049 * include/bits/stl_iterator_base_types.h: Likewise.
6050 * include/bits/stl_map.h: Likewise.
6051 * include/bits/stl_multimap.h: Likewise.
6052 * include/bits/stl_multiset.h: Likewise.
6053 * include/bits/stl_numeric.h: Likewise.
6054 * include/bits/stl_pair.h: Likewise.
6055 * include/bits/stl_set.h: Likewise.
6056 * include/bits/stl_uninitialized.h: Likewise.
6057 * include/bits/stream_iterator.h: Likewise.
6058 * include/bits/streambuf_iterator.h: Likewise.
6059 * include/bits/unique_ptr.h: Likewise.
6060 * include/bits/unordered_map.h: Likewise.
6061 * include/bits/unordered_set.h: Likewise.
6062 * include/decimal/decimal: Likewise.
6063 * include/experimental/any: Likewise.
6064 * include/experimental/array: Likewise.
6065 * include/experimental/bits/fs_dir.h: Likewise.
6066 * include/experimental/bits/fs_fwd.h: Likewise.
6067 * include/experimental/bits/fs_ops.h: Likewise.
6068 * include/experimental/bits/fs_path.h: Likewise.
6069 * include/experimental/buffer: Likewise.
6070 * include/experimental/internet: Likewise.
6071 * include/experimental/optional: Likewise.
6072 * include/experimental/propagate_const: Likewise.
6073 * include/experimental/socket: Likewise.
6074 * include/ext/pb_ds/assoc_container.hpp: Likewise.
6075 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp:
6077 * include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp: Likewise.
6078 * include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp: Likewise.
6079 * include/ext/pb_ds/detail/types_traits.hpp: Likewise.
6080 * include/ext/pb_ds/exception.hpp: Likewise.
6081 * include/ext/pb_ds/priority_queue.hpp: Likewise.
6082 * include/ext/pb_ds/tag_and_trait.hpp: Likewise.
6083 * include/ext/random: Likewise.
6084 * include/std/any: Likewise.
6085 * include/std/atomic: Likewise.
6086 * include/std/bitset: Likewise.
6087 * include/std/chrono: Likewise.
6088 * include/std/complex: Likewise.
6089 * include/std/condition_variable: Likewise.
6090 * include/std/fstream: Likewise.
6091 * include/std/future: Likewise.
6092 * include/std/iostream: Likewise.
6093 * include/std/istream: Likewise.
6094 * include/std/mutex: Likewise.
6095 * include/std/numeric: Likewise.
6096 * include/std/ostream: Likewise.
6097 * include/std/ratio: Likewise.
6098 * include/std/shared_mutex: Likewise.
6099 * include/std/stdexcept: Likewise.
6100 * include/std/streambuf: Likewise.
6101 * include/std/system_error: Likewise.
6102 * include/std/thread: Likewise.
6103 * include/std/valarray: Likewise.
6104 * include/std/variant: Likewise.
6105 * include/tr1/cmath: Likewise.
6106 * include/tr1/regex: Likewise.
6107 * include/tr2/dynamic_bitset: Likewise.
6108 * libsupc++/atomic_lockfree_defines.h: Likewise.
6109 * libsupc++/exception: Likewise.
6110 * libsupc++/exception.h: Likewise.
6111 * libsupc++/exception_ptr.h: Likewise.
6112 * libsupc++/nested_exception.h: Likewise.
6114 2021-03-31 Alexandre Oliva <oliva@adacore.com>
6116 * testsuite/30_threads/future/members/poll.cc: Use faster
6117 after-ready call in the calibration loop.
6119 2021-03-29 Jonathan Wakely <jwakely@redhat.com>
6121 * doc/xml/manual/status_cxx2017.xml: Adjust link for PSTL.
6122 * doc/html/manual/status.html: Regenerate.
6124 2021-03-28 François Dumont <fdumont@gcc.gnu.org>
6126 * include/debug/forward_list
6127 (forward_list(forward_list&&, const allocator_type&)): Add noexcept qualification.
6128 * include/debug/list (list(list&&, const allocator_type&)): Likewise and add
6129 call to safe container allocator aware move constructor.
6130 * include/debug/vector (vector(vector&&, const allocator_type&)):
6131 Fix noexcept qualification.
6132 * testsuite/23_containers/forward_list/cons/noexcept_move_construct.cc:
6133 Add allocator-extended move constructor noexceot qualification check.
6134 * testsuite/23_containers/list/cons/noexcept_move_construct.cc: Likewise.
6136 2021-03-26 Jonathan Wakely <jwakely@redhat.com>
6138 * src/c++11/random.cc (USE_LCG): Define when a pseudo-random
6140 [USE_LCG] (bad_seed, construct_lcg_at, destroy_lcg_at, __lcg):
6141 New helper functions and callback.
6142 (random_device::_M_init): Add 'prng' and 'all' enumerators.
6143 Replace switch with fallthrough with a series of 'if' statements.
6144 [USE_LCG]: Construct an lcg_type engine and use __lcg when cpuid
6146 (random_device::_M_init_pretr1) [USE_MT19937]: Accept "prng"
6148 (random_device::_M_getval): Check for callback unconditionally
6149 and always pass _M_file pointer.
6150 * testsuite/26_numerics/random/random_device/85494.cc: Remove
6151 effective-target check. Use new random_device_available helper.
6152 * testsuite/26_numerics/random/random_device/94087.cc: Likewise.
6153 * testsuite/26_numerics/random/random_device/cons/default-cow.cc:
6154 Remove effective-target check.
6155 * testsuite/26_numerics/random/random_device/cons/default.cc:
6157 * testsuite/26_numerics/random/random_device/cons/token.cc: Use
6158 new random_device_available helper. Test "prng" token.
6159 * testsuite/util/testsuite_random.h (random_device_available):
6160 New helper function.
6162 2021-03-25 François Dumont <fdumont@gcc.gnu.org>
6164 * include/debug/string
6165 (basic_string(const basic_string&, const _Alloc&)): Define even if !_GLIBCXX_USE_CXX11_ABI.
6166 (basic_string(basic_string&&, const _Alloc&)): Likewise and add noexcept qualification.
6167 (basic_string<>::erase): Adapt to take __const_iterator.
6168 (basic_string(const _CharT*, const _Allocator&)): Remove assign call.
6169 (basic_string<>::insert(const_iterator, _InputIte, _InputIte)): Try to
6170 remove iterator debug layer even if !_GLIBCXX_USE_CXX11_ABI.
6171 [_GLIBCXX_USE_CHAR8_T] (__gnu_debug::u8string): New.
6172 (__gnu_debug::u16string, __gnu_debug::u32string): New.
6173 (std::hash<__gnu_debug::basic_string<>>): New partial specialization.
6174 (std::__is_fast_hash<__gnu_debug::basic_string<>>): Likewise.
6175 * testsuite/util/exception/safety.h
6176 (erase_base<__gnu_debug::basic_string<>>): New partial specialization.
6177 (insert_base<__gnu_debug::basic_string<>>): Likewise.
6178 * testsuite/util/testsuite_container_traits.h (traits<__gnu_debug::basic_string<>>):
6179 New partial specialization.
6180 * testsuite/21_strings/basic_string/hash/debug.cc: New test.
6181 * testsuite/21_strings/basic_string/requirements/citerators.cc:
6182 Add test on __gnu_debug::string.
6183 * testsuite/21_strings/basic_string/requirements/dr438/constructor.cc: Likewise.
6184 * testsuite/21_strings/basic_string/requirements/exception/basic.cc: Likewise.
6185 * testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc:
6187 * testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc:
6189 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
6191 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
6193 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
6195 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
6197 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
6199 * testsuite/21_strings/basic_string/requirements/typedefs.cc: Likewise.
6201 2021-03-25 Jakub Jelinek <jakub@redhat.com>
6204 * testsuite/18_support/source_location/consteval.cc (main): Adjust
6205 expected column numbers.
6206 * testsuite/18_support/source_location/1.cc (main): Likewise.
6208 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
6210 * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare malloc.
6212 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
6214 * testsuite/util/exception/safety.h (setup_base::generate):
6215 Support seeding random engine.
6216 (erase_point, erase_range): Adjust range of random numbers to
6217 ensure dereferenceable iterators are used where required.
6218 (generation_prohibited::run): Do not try to erase from empty
6220 * testsuite/util/testsuite_containergen.h (test_containers):
6221 Support seeding random engine.
6223 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
6225 * testsuite/std/ranges/adaptors/reverse.cc: Replace duplicated
6226 line with a check that uses the const being/end overloads.
6228 2021-03-23 Moritz Sichert <sichert@in.tum.de>
6230 * include/std/ranges (reverse_view::begin, reverse_view::end):
6231 Qualify make_reverse_iterator calls to avoid ADL.
6232 * testsuite/std/ranges/adaptors/reverse.cc: Test that
6233 views::reverse works when make_reverse_iterator is defined
6234 in an associated namespace.
6236 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
6238 * include/bits/c++config (_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT):
6239 Do not define when compiling with Clang.
6241 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
6243 * include/std/string_view (basic_string_view(Range&&)): Define new
6244 constructor and deduction guide.
6245 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: New test.
6246 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: New test.
6248 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
6250 * include/bits/range_access.h (begin(T (&)[N]), end(T (&)[N])):
6251 Add missing 'noexcept' as per LWG 2280.
6252 (rbegin(T (&)[N]), rend(T (&)[N]), rbegin(initializer_list<T>))
6253 (rend(initializer_list<T>)): Add 'noexcept' as per LWG 3537.
6254 * testsuite/24_iterators/range_access/range_access.cc: Check for
6255 expected noexcept specifiers. Check result types of generic
6256 std::begin and std::end overloads.
6257 * testsuite/24_iterators/range_access/range_access_cpp14.cc:
6258 Check for expected noexcept specifiers.
6259 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
6262 2021-03-19 Jonathan Wakely <jwakely@redhat.com>
6264 * include/std/type_traits (is_scoped_enum): Define.
6265 * include/std/version (__cpp_lib_is_scoped_enum): Define.
6266 * testsuite/20_util/is_scoped_enum/value.cc: New test.
6267 * testsuite/20_util/is_scoped_enum/version.cc: New test.
6269 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
6272 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Remove
6273 std::once_flag symbols.
6274 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Likewise.
6275 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
6276 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
6278 * config/abi/pre/gnu.ver: Likewise.
6279 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
6280 (struct __once_flag_compat): Remove.
6281 (_ZNSt9once_flag11_M_activateEv): Remove.
6282 (_ZNSt9once_flag9_M_finishEb): Remove.
6284 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
6287 * include/std/mutex [_GLIBCXX_HAVE_LINUX_FUTEX] (once_flag):
6288 Revert to pthread_once_t implementation.
6289 [_GLIBCXX_HAVE_LINUX_FUTEX] (call_once): Likewise.
6290 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
6291 (struct __once_flag_compat): New type matching the reverted
6292 implementation of once_flag using futexes.
6293 (once_flag::_M_activate): Remove, replace with ...
6294 (_ZNSt9once_flag11_M_activateEv): ... alias symbol.
6295 (once_flag::_M_finish): Remove, replace with ...
6296 (_ZNSt9once_flag9_M_finishEb): ... alias symbol.
6297 * testsuite/30_threads/call_once/66146.cc: Removed.
6299 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
6301 * testsuite/17_intro/names.cc: Exclude j from the list
6302 of test symbols for Darwin.
6304 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
6306 * config/os/bsd/darwin/ppc-extra.ver: Add matching for
6307 to_chars and from_chars for long double.
6309 2021-03-15 Patrick Palka <ppalka@redhat.com>
6311 * include/bits/max_size_type.h (__max_size_type::operator _Tp):
6313 (__max_size_type::operator++): Define.
6314 (__max_size_type::operator--): Likewise.
6315 (__max_size_type::operator<=>): Conditionally define (in place
6316 of the other comparison operators).
6317 (__max_diff_type::operator _Tp): Fix formatting.
6318 (__max_diff_type::operator++): Define.
6319 (__max_diff_type::operator--): Likewise.
6320 (__max_diff_type::operator<=>): Conditionally define (in place
6321 of the other comparison operators).
6322 * testsuite/std/ranges/iota/max_size_type.cc (test01): Test
6323 these operator overloads.
6325 2021-03-15 Caroline Tice <cmtice@google.com>
6328 * src/Makefile.am (AM_CXXFLAGS_PRE, AM_CXXFLAGS): Add
6329 AM_CXXFLAGS_PRE with the old definition of AM_CXXFLAGS; make
6330 AM_CXXFLAGS to be AM_CXXFLAGS_PRE with '-fvtable-verify=std'
6332 * src/Makefile.in: Regenerate.
6334 2021-03-11 Patrick Palka <ppalka@redhat.com>
6336 * src/c++17/floating_to_chars.cc: Simplify the file as if
6337 __SIZEOF_INT128__ is always defined.
6338 [!defined __SIZEOF_INT128__]: Include "uint128_t.h". Define
6339 a base-10 to_chars overload for the uint128_t class type.
6340 * src/c++17/uint128_t.h: New file.
6341 * testsuite/20_util/to_chars/long_double.cc: No longer expect an
6342 execution FAIL on targets that have a large long double type
6345 2021-03-11 Patrick Palka <ppalka@redhat.com>
6347 * src/c++17/ryu/LOCAL_PATCHES: Update.
6348 * src/c++17/ryu/d2s_intrinsics.h: Don't define uint128_t.
6349 * src/c++17/ryu/generic_128.h: Likewise.
6350 * src/c++17/ryu/ryu_generic_128.h (struct floating_decimal_128):
6351 Use uint128_t instead of __uint128_t.
6352 (generic_binary_to_decimal): Likewise.
6354 2021-03-11 Patrick Palka <ppalka@redhat.com>
6356 * src/c++17/ryu/LOCAL_PATCHES: New file.
6358 2021-03-11 Patrick Palka <ppalka@redhat.com>
6360 * src/c++17/floating_to_chars.cc (uint128_t): New conditionally
6361 defined alias of unsigned __int128.
6362 (floating_type_traits_binary128::mantissa_t): Use uint128_t
6363 instead of unsigned __int128.
6364 (floating_type_traits<long double>::mantissa_t)
6365 [LONG_DOUBLE_KIND == LDK_IBM128]: Likewise.
6366 (get_ieee_repr): Likewise. Make casts from uint_t to mantissa_t
6367 and uint32_t explicit. Simplify the extraction of mantissa,
6368 exponent and sign bit.
6370 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
6372 * include/std/barrier (barrier::arrival_token): New move-only
6373 class that encapsulates the underlying token value.
6375 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
6377 * python/libstdcxx/v6/printers.py (find_type): Use tag attribute
6378 instead of unqualified() method.
6380 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
6383 * include/std/stop_token (_Stop_state_t::_M_release_ownership):
6384 Use acq_rel memory ordering.
6386 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
6389 * src/c++17/fs_dir.cc (recursive_directory_iterator): Use new
6390 helper function to check for permission denied errors.
6391 * src/filesystem/dir.cc (recursive_directory_iterator):
6393 * src/filesystem/dir-common.h (is_permission_denied_error): New
6396 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
6399 * include/bits/random.h (normal_distribution): Use
6400 default-initializer for _M_saved and _M_saved_available.
6402 2021-03-10 John David Anglin <danglin@gcc.gnu.org>
6404 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Add options to
6405 link with libatomic.
6406 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
6407 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
6408 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
6409 * testsuite/30_threads/barrier/arrive.cc: Likewise.
6410 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
6411 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
6412 * testsuite/30_threads/barrier/completion.cc: Likewise.
6413 * testsuite/30_threads/latch/3.cc: Likewise.
6414 * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
6415 * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
6416 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
6418 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
6421 * include/bits/align.h: Include debug/assertions.h.
6422 * include/bits/codecvt.h: Include bits/c++config.h.
6423 * include/bits/enable_special_members.h: Likewise.
6424 * include/bits/erase_if.h: Likewise.
6425 * include/bits/functional_hash.h: Include <type_traits>.
6426 * include/bits/invoke.h: Include bits/move.h.
6427 * include/bits/ostream_insert.h: Include bits/exception_defines.h.
6428 * include/bits/parse_numbers.h: Include <type_traits>.
6429 * include/bits/predefined_ops.h: Include bits/c++config.h.
6430 * include/bits/range_access.h: Include bits/stl_iterator.h.
6431 * include/bits/stl_bvector.h: Do not include bits/stl_vector.h.
6432 * include/bits/stl_iterator.h: Include bits/stl_iterator_base_types.h.
6433 * include/bits/stl_uninitialized.h: Include bits/stl_algobase.h.
6434 * include/bits/uniform_int_dist.h: Include bits/concept_check.h.
6435 * include/bits/unique_lock.h: Include bits/std_mutex.h.
6436 * include/debug/assertions.h: Include bits/c++config.h.
6438 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
6440 * include/bits/ranges_cmp.h (__eq_builtin_ptr_cmp): Remove.
6441 (ranges::equal_to, ranges::not_equal_to): Do not constrain
6442 with __eq_builtin_ptr_cmp.
6443 (ranges::less, ranges::greater, ranges::less_equal)
6444 (ranges::greater_equal): Do not constrain with
6445 __less_builtin_ptr_cmp.
6446 * libsupc++/compare (compare_three_way): Do not constrain with
6447 __3way_builtin_ptr_cmp.
6448 * testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc: Moved to...
6449 * testsuite/18_support/comparisons/object/lwg3530.cc: ...here.
6450 * testsuite/20_util/function_objects/range.cmp/lwg3530.cc: New test.
6452 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
6454 * testsuite/std/time/syn_c++20.cc: Enable synopsis checks for
6455 C++20 calendar types.
6457 2021-03-06 Jakub Jelinek <jakub@redhat.com>
6460 * include/std/bit (__rotl, __rotr): Add optimized variants for power of
6461 two _Nd which the compiler can pattern match the rotates.
6463 2021-03-04 Jonathan Wakely <jwakely@redhat.com>
6466 * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
6467 Make storage larger than required. Verify no write to the last
6469 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
6472 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6474 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
6475 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
6477 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
6478 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
6481 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6483 * include/experimental/bits/simd.h: Replace reserved _X, _B by
6485 * include/experimental/bits/simd_builtin.h: Likewise.
6486 * include/experimental/bits/simd_x86.h: Likewise.
6488 2021-02-27 Jonathan Wakely <jwakely@redhat.com>
6491 * include/std/chrono (year_month_day::_M_days_since_epoch()):
6492 Convert chrono::month and chrono::day to unsigned before
6493 converting to uint32_t.
6495 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
6497 * include/std/chrono (year_month_day::_S_from_days): Perform
6498 all calculations with type uint32_t.
6500 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
6502 * doc/xml/manual/abi.xml: Document versioning for GCC 11.
6503 * doc/html/manual/abi.html: Regenerate.
6505 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
6508 * testsuite/27_io/headers/cstdio/types_std.cc: Use pointer to
6509 FILE instead of FILE.
6511 2021-02-25 Andreas Schwab <schwab@suse.de>
6513 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
6514 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
6515 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
6516 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
6518 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
6521 * include/std/chrono (year_month_day::_S_from_days): Cast long
6524 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
6526 * include/std/utility (to_underlying): Define.
6527 * include/std/version (__cpp_lib_to_underlying): Define.
6528 * testsuite/20_util/to_underlying/1.cc: New test.
6529 * testsuite/20_util/to_underlying/version.cc: New test.
6531 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
6534 * src/c++17/floating_to_chars.cc (sprintf_ld): Add extra args
6535 before value to be printed.
6537 2021-02-24 Patrick Palka <ppalka@redhat.com>
6539 * src/c++17/floating_to_chars.cc (__floating_to_chars_precision):
6540 Relax the condition that guards the printf code path to accept
6541 F128_type as well as long double.
6543 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
6545 * include/std/chrono (year_month_day_last:day): New
6548 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
6550 * include/std/chrono (year::is_leap): New implementation.
6551 * testsuite/std/time/year/2.cc: New test.
6553 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
6555 * include/std/chrono (year_month_day::_M_days_since_epoch):
6557 * testsuite/std/time/year_month_day/4.cc: New test.
6559 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
6561 * include/std/chrono (year_month_day::_S_from_days): New
6563 * testsuite/std/time/year_month_day/3.cc: New test.
6565 2021-02-24 Patrick Palka <ppalka@redhat.com>
6568 * testsuite/20_util/to_chars/long_double.cc: Include <optional>.
6569 (test01): Simplify verifying the nearby values by using a
6570 2-iteration loop and a dedicated output buffer to check that the
6571 nearby values are different. Factor out the printf-based
6572 verification into a local function, and check that the leading
6573 hex digits agree before comparing to the output of printf. Also
6574 verify the output by round-tripping it through from_chars.
6576 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
6579 * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Do not match to_chars
6580 symbols for long double arguments mangled as 'g'.
6581 * config/os/gnu-linux/ldbl-extra.ver: Likewise.
6582 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Likewise.
6583 * src/c++17/Makefile.am [GLIBCXX_LDBL_ALT128_COMPAT_TRUE]:
6584 Use -mabi=ibmlongdouble for floating_to_chars.cc.
6585 * src/c++17/Makefile.in: Regenerate.
6586 * src/c++17/floating_to_chars.cc (floating_type_traits_binary128):
6587 New type defining type traits of IEEE binary128 format.
6588 (floating_type_traits<__float128>): Define specialization.
6589 (floating_type_traits<long double>): Define in terms of
6590 floating_type_traits_binary128 when appropriate.
6591 (floating_to_shortest_scientific): Handle __float128.
6592 (sprintf_ld): New function template for printing a long double
6593 or __ieee128 value using sprintf.
6594 (__floating_to_chars_shortest, __floating_to_chars_precision):
6596 (to_chars): Define overloads for __float128.
6598 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
6600 * testsuite/17_intro/names.cc: Undefine 'u' on powerpc*-linux*.
6602 2021-02-23 Martin Sebor <msebor@redhat.com>
6605 * libsupc++/dyncast.cc (__dynamic_cast): Return null when
6606 first argument is null.
6608 2021-02-23 Jakub Jelinek <jakub@redhat.com>
6611 * testsuite/21_strings/char_traits/requirements/char/99181.cc: New
6614 2021-02-23 Jakub Jelinek <jakub@redhat.com>
6617 * include/bits/char_traits.h (char_traits<char>::compare): For
6618 constexpr evaluation don't call
6619 __gnu_cxx::char_traits<char_type>::compare but do the comparison loop
6622 2021-02-23 Jakub Jelinek <jakub@redhat.com>
6625 * include/pstl/parallel_backend_serial.h: Remove __pstl::__par_backend.
6627 2021-02-23 Patrick Palka <ppalka@redhat.com>
6630 * src/c++17/floating_to_chars.cc (get_ieee_repr): Extract
6631 the high- and low-order parts from an IBM long double value
6632 in an endian-agnostic way.
6634 2021-02-19 Jonathan Wakely <jwakely@redhat.com>
6636 * include/bits/atomic_wait.h (__thread_relax()): Call
6637 __thread_yield() not __gthread_yield().
6639 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
6641 * include/bits/atomic_wait.h (__thread_yield()): Check
6642 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
6643 (__thread_relax()): Use __thread_yield() instead of repeating
6644 the preprocessor checks for __gthread_yield.
6646 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
6648 * include/std/mutex (once_flag::_M_activate()): Add explicit
6649 return statement for passive case.
6650 (once_flag::_M_finish(bool)): Use reserved name for parameter.
6652 2021-02-14 Jonathan Wakely <jwakely@redhat.com>
6655 * testsuite/util/testsuite_fs.h: Always include <unistd.h>.
6657 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6660 * src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround.
6662 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6664 * doc/xml/manual/status_cxx2014.xml: Document implementation
6665 specific properties of std::experimental::filesystem::rename.
6666 * doc/xml/manual/status_cxx2017.xml: Document implementation
6667 specific properties of std::filesystem::rename.
6668 * doc/html/*: Regenerate.
6669 * src/c++17/fs_ops.cc (fs::rename): Implement correct behaviour
6670 for directories on Windows.
6671 * src/filesystem/ops-common.h (__gnu_posix::rename): Use
6672 MoveFileExW on Windows.
6673 * testsuite/27_io/filesystem/operations/rename.cc: New test.
6674 * testsuite/experimental/filesystem/operations/rename.cc: New test.
6676 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6678 * testsuite/util/testsuite_fs.h (nonexistent_path): Add
6679 random number to the path.
6681 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6683 * include/experimental/internet (address_v6::to_string): Include
6685 * testsuite/experimental/net/internet/address/v6/members.cc:
6686 Test to_string() results.
6688 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6690 * include/experimental/internet (address_v6::any): Avoid using
6691 memcpy in constexpr function.
6692 (address_v6::loopback): Likewise.
6693 (make_address_v6): Fix missing return statements on error paths.
6694 * include/experimental/io_context: Avoid -Wdangling-else
6696 * testsuite/experimental/net/internet/address/v4/members.cc:
6697 Remove unused variables.
6698 * testsuite/experimental/net/internet/address/v6/members.cc:
6701 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6703 * include/bits/shared_ptr_base.h (__shared_ptr::_M_get_deleter):
6704 Add unused attribute to parameter.
6705 * src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq):
6708 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6710 * testsuite/27_io/basic_ostream/emit/1.cc: Expect test to fail
6711 if -fno-rtti is used.
6712 * testsuite/30_threads/async/forced_unwind.cc: Expect test
6713 to abort if -fno-rtti is used.
6715 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6717 * testsuite/util/testsuite_allocator.h (memory_resource):
6718 Remove requirement for RTTI and exceptions to be enabled.
6720 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6722 * testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Use
6723 static_cast when RTTI is disabled.
6724 * testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc:
6726 * testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc:
6728 * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc:
6730 * testsuite/27_io/basic_stringstream/str/char/2.cc:
6732 * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc:
6735 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6737 * include/std/ostream (__syncbuf_base::_S_get): Mark parameter
6738 as unused and only use dynamic_cast when RTTI is enabled.
6740 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6743 * src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)):
6744 Change int parameter to error_code, to match std::ios_failure.
6745 (__throw_ios_failure(const char*, int)): Construct error_code
6748 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
6750 * libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define
6752 * libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new
6753 macro instead of _GLIBCXX_EH_PTR_COMPAT.
6754 (operator==): Likewise.
6756 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
6759 * doc/xml/manual/status_cxx2011.xml: Document when support
6761 * doc/xml/manual/status_cxx2014.xml: Likewise.
6762 * doc/xml/manual/status_cxx2017.xml: Likewise.
6763 * doc/html/manual/status.html: Regenerate.
6765 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
6768 * src/c++17/fs_ops.cc (fs::status): Re-enable workaround.
6770 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
6772 * src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent)
6773 (fs::remove): Use std::system_category() for error codes from
6775 * src/filesystem/ops.cc (fs::create_hard_link, fs::remove):
6778 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
6780 * testsuite/27_io/filesystem/operations/proximate.cc: Fix typo
6781 in __MINGW32__ macro name.
6782 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
6783 * testsuite/27_io/filesystem/path/generation/proximate.cc:
6785 * testsuite/27_io/filesystem/path/generation/relative.cc:
6787 * testsuite/util/testsuite_fs.h: Likewise.
6789 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
6791 * include/bits/stl_tree.h
6792 (__has_is_transparent, __has_is_transparent_t): Move...
6793 * include/bits/stl_function.h: ...here.
6794 * include/bits/hashtable_policy.h (_Hash_code_base<>::_M_hash_code_tr): New..
6795 (_Hashtable_base<>::_M_equals_tr): New.
6796 * include/bits/hashtable.h (_Hashtable<>::_M_find_tr, _Hashtable<>::_M_count_tr,
6797 _Hashtable<>::_M_equal_range_tr): New member function templates to perform
6798 heterogeneous lookup.
6799 (_Hashtable<>::_M_find_before_node_tr): New.
6800 (_Hashtable<>::_M_find_node_tr): New.
6801 * include/bits/unordered_map.h (unordered_map::find<>, unordered_map::count<>,
6802 unordered_map::contains<>, unordered_map::equal_range<>): New member function
6803 templates to perform heterogeneous lookup.
6804 (unordered_multimap::find<>, unordered_multimap::count<>,
6805 unordered_multimap::contains<>, unordered_multimap::equal_range<>): Likewise.
6806 * include/bits/unordered_set.h (unordered_set::find<>, unordered_set::count<>,
6807 unordered_set::contains<>, unordered_set::equal_range<>): Likewise.
6808 (unordered_multiset::find<>, unordered_multiset::count<>,
6809 unordered_multiset::contains<>, unordered_multiset::equal_range<>): Likewise.
6810 * include/debug/unordered_map
6811 (unordered_map::find<>, unordered_map::equal_range<>): Likewise.
6812 (unordered_multimap::find<>, unordered_multimap::equal_range<>): Likewise.
6813 * include/debug/unordered_set
6814 (unordered_set::find<>, unordered_set::equal_range<>): Likewise.
6815 (unordered_multiset::find<>, unordered_multiset::equal_range<>): Likewise.
6816 * testsuite/23_containers/unordered_map/operations/1.cc: New test.
6817 * testsuite/23_containers/unordered_multimap/operations/1.cc: New test.
6818 * testsuite/23_containers/unordered_multiset/operations/1.cc: New test.
6819 * testsuite/23_containers/unordered_set/operations/1.cc: New test.
6821 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
6823 * include/bits/stl_deque.h
6824 (std::operator-(deque::iterator, deque::iterator)): Replace if/then with
6825 a null pointer test.
6827 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
6829 * testsuite/27_io/filesystem/operations/remove_all.cc: Remove
6830 test directory after making it writable again.
6831 * testsuite/experimental/filesystem/operations/remove_all.cc:
6834 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
6837 * include/std/coroutine (coroutine_handle<P>::from_address): Add
6840 2021-02-09 Vladimir Vishnevsky <vv.os.swe@gmail.com>
6842 * include/ext/stdio_sync_filebuf.h: Remove unused <unistd.h>.
6843 * src/c++17/fs_ops.cc (fs::permissions): Qualify mode_t.
6845 2021-02-09 Jakub Jelinek <jakub@redhat.com>
6848 * include/bits/basic_string.tcc (basic_string::_M_replace): When __s
6849 points to the characters moved by earlier _S_move, compute the source
6850 address using expression based on the __p pointer rather than __s
6853 2021-02-03 Jonathan Wakely <jwakely@redhat.com>
6855 * testsuite/19_diagnostics/error_code/operators/not_equal.cc:
6856 Add comparison with same category and different values.
6857 * testsuite/19_diagnostics/error_code/operators/less.cc:
6858 Likewise. Fix comparison involving different categories.
6859 * testsuite/19_diagnostics/error_code/operators/three_way.cc:
6861 * testsuite/19_diagnostics/error_condition/operators/less.cc:
6863 * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
6866 2021-02-03 yaozhongxiao <yaozhongxiao@linux.alibaba.com>
6868 * include/experimental/bits/simd_neon.h: Replace repeated vpadd
6869 calls with a single vaddv for aarch64.
6871 2021-02-03 Matthias Kretz <kretz@kde.org>
6873 * testsuite/Makefile.am: Warn about the workaround. Add
6874 -fno-tree-vrp to CXXFLAGS passed to the check_simd script.
6875 Improve initial user feedback from make check-simd.
6876 * testsuite/Makefile.in: Regenerated.
6878 2021-02-03 Matthias Kretz <kretz@kde.org>
6880 * include/experimental/bits/simd.h: Add __detail::_Minimum and
6881 __detail::_Maximum to use them as _BinaryOperation to _S_reduce.
6882 Add hmin and hmax overloads for simd and const_where_expression.
6883 * include/experimental/bits/simd_scalar.h
6884 (_SimdImplScalar::_S_reduce): Make unused _BinaryOperation
6885 parameter const-ref to allow calling _S_reduce with an rvalue.
6886 * testsuite/experimental/simd/tests/reductions.cc: Add tests for
6887 hmin and hmax. Since the compiler statically determined that all
6888 tests pass, repeat the test after a call to make_value_unknown.
6890 2021-02-03 Matthias Kretz <kretz@kde.org>
6892 * testsuite/experimental/simd/tests/bits/verify.h (verify): Add
6893 instruction pointer data member. Ensure that the `if (m_failed)`
6894 branch is always inlined into the calling code. The body of the
6895 conditional can still be a function call. Move the get_ip call
6896 into the verify ctor to simplify the ctor calls.
6897 (COMPARE): Don't mention the use of all_of for reduction of a
6898 simd_mask. It only distracts from the real issue.
6900 2021-02-03 Matthias Kretz <kretz@kde.org>
6902 * testsuite/experimental/simd/driver.sh: Abstract reading test
6903 options into read_src_option function. Read skip, only,
6904 expensive, and xfail via read_src_option. Add timeout and
6905 timeout-factor options and adjust timeout variable accordingly.
6906 * testsuite/experimental/simd/tests/loadstore.cc: Set
6909 2021-02-03 Matthias Kretz <kretz@kde.org>
6911 * testsuite/experimental/simd/driver.sh: When handling the pipe
6912 to log (and on verbose to stdout) count the lines. If it exceeds
6913 1000 log the issue and exit 125, which is then handled as a
6916 2021-02-03 Matthias Kretz <kretz@kde.org>
6918 * testsuite/experimental/simd/tests/hypot3_fma.cc: Add skip:
6919 markup for long double on powerpc64*.
6921 2021-02-03 Matthias Kretz <kretz@kde.org>
6923 * include/experimental/bits/simd.h: Add __have_power10vec
6924 conditional on _ARCH_PWR10.
6925 * include/experimental/bits/simd_builtin.h: Forward declare
6926 _MaskImplPpc and use it as _MaskImpl when __ALTIVEC__ is
6928 (_MaskImplBuiltin::_S_some_of): Call _S_popcount from the
6929 _SuperImpl for optimizations and correctness.
6930 * include/experimental/bits/simd_ppc.h: Add _MaskImplPpc.
6931 (_MaskImplPpc::_S_popcount): Implement via vec_cntm for POWER10.
6932 Otherwise, for >=int use -vec_sums divided by a sizeof factor.
6933 For <int use -vec_sums(vec_sum4s(...)) to sum all mask entries.
6935 2021-02-03 Matthias Kretz <kretz@kde.org>
6937 * testsuite/experimental/simd/driver.sh: Remove executable on
6938 SIGINT. Process compiler and test executable output: In verbose
6939 mode print messages immediately, limited to 1000 lines and
6940 breaking long lines to below $COLUMNS (or 1024 if not set).
6941 Communicating the exit status of the compiler / test with the
6942 necessary pipe is done via a message through stdout/-in.
6944 2021-02-03 Matthias Kretz <kretz@kde.org>
6946 * testsuite/Makefile.am: Ensure .simd.summary is empty before
6947 collecting a new summary.
6948 * testsuite/Makefile.in: Regenerate.
6950 2021-02-03 Matthias Kretz <kretz@kde.org>
6952 * testsuite/experimental/simd/generate_makefile.sh: Use
6953 different variables internally than documented for user
6954 overrides. This makes internal append/prepend work as intended.
6956 2021-02-03 Matthias Kretz <kretz@kde.org>
6958 * testsuite/experimental/simd/driver.sh (verify_test): Print
6959 test output on run xfail. Do not repeat lines from the log that
6960 were already printed on stdout.
6961 (test_selector): Make the compiler flags pattern usable as a
6963 (toplevel): Trap on SIGINT and remove the log and sum files.
6964 Call timout with --foreground to quickly terminate on SIGINT.
6965 * testsuite/experimental/simd/generate_makefile.sh: Simplify run
6966 targets via target patterns. Default DRIVEROPTS to -v for run
6967 targets. Remove log and sum files after completion of the run
6968 target (so that it's always recompiled).
6969 Place help text into text file for reasonable 'make help'
6972 2021-02-03 Matthias Kretz <kretz@kde.org>
6974 * include/experimental/bits/simd.h: Remove unnecessary static
6975 assertion. Allow sizeof(8) integer __intrinsic_type to enable
6976 the necessary mask type.
6978 2021-02-03 Matthias Kretz <kretz@kde.org>
6980 * include/experimental/bits/simd.h: Let __intrinsic_type<long
6981 double, N> be valid if sizeof(long double) == sizeof(double) and
6982 use a __vector double as member type.
6984 2021-02-03 Matthias Kretz <kretz@kde.org>
6986 * include/experimental/bits/simd.h (__is_intrinsic_type): New
6987 internal type trait. Alias for __is_vector_type on x86.
6988 (_VectorTraitsImpl): Enable for __intrinsic_type in addition for
6990 (__intrin_bitcast): Allow casting to & from vector & intrinsic
6992 (__intrinsic_type): Explicitly specialize for NEON intrinsic
6995 2021-02-03 Matthias Kretz <kretz@kde.org>
6997 * testsuite/experimental/simd/driver.sh: Implement skip, only,
6998 expensive, and xfail markers. They can select on type, ABI tag
6999 subset number, target-triplet, and compiler flags.
7000 * testsuite/experimental/simd/generate_makefile.sh: The summary
7001 now includes lines for unexpected passes and expected failures.
7002 If the skip or only markers are only conditional on the type, do
7003 not generate rules for those types.
7004 * testsuite/experimental/simd/tests/abs.cc: Mark test expensive
7005 for ABI tag subsets 1-9.
7006 * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
7007 * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
7008 * testsuite/experimental/simd/tests/casts.cc: Ditto.
7009 * testsuite/experimental/simd/tests/generator.cc: Ditto.
7010 * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
7011 * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
7012 * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
7013 * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
7014 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
7015 * testsuite/experimental/simd/tests/mask_loadstore.cc: Ditto.
7016 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
7017 * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
7018 * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
7019 * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
7020 * testsuite/experimental/simd/tests/operators.cc: Ditto.
7021 * testsuite/experimental/simd/tests/reductions.cc: Ditto.
7022 * testsuite/experimental/simd/tests/simd.cc: Ditto.
7023 * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
7024 * testsuite/experimental/simd/tests/splits.cc: Ditto.
7025 * testsuite/experimental/simd/tests/where.cc: Ditto.
7026 * testsuite/experimental/simd/tests/fpclassify.cc: Ditto. In
7027 addition replace "test only floattypes" marker by unconditional
7028 "float|double|ldouble" only marker.
7029 * testsuite/experimental/simd/tests/frexp.cc: Ditto.
7030 * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
7031 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
7033 * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
7034 * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
7035 * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
7036 * testsuite/experimental/simd/tests/remqo.cc: Ditto.
7037 * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
7038 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
7039 * testsuite/experimental/simd/tests/sincos.cc: Ditto. In
7040 addition, xfail on run because the reference data is missing.
7042 2021-02-02 Jonathan Wakely <jwakely@redhat.com>
7044 * doc/xml/manual/status_cxx2011.xml: Remove stray table cell.
7045 * doc/xml/manual/status_cxx2014.xml: Likewise.
7046 * doc/xml/manual/status_cxx2017.xml: Likewise.
7047 * doc/html/manual/status.html: Regenerate.
7049 2021-02-01 François Dumont <fdumont@gcc.gnu.org>
7052 * include/bits/stl_deque.h (std::deque<>::operator-(iterator, iterator)):
7053 Return 0 if both iterators are value-initialized.
7054 * testsuite/23_containers/deque/70303.cc: New test.
7055 * testsuite/23_containers/vector/70303.cc: New test.
7057 2021-02-01 Jonathan Wakely <jwakely@redhat.com>
7059 * doc/xml/manual/status_cxx2011.xml: Update std::call_once
7061 * doc/xml/manual/status_cxx2014.xml: Likewise.
7062 * doc/xml/manual/status_cxx2017.xml: Likewise. Update
7063 std::from_chars and std::to_chars status. Fix formatting.
7064 * doc/html/manual/status.html: Regenerate.
7066 2021-01-28 Jonathan Wakely <jwakely@redhat.com>
7068 * include/experimental/bits/numeric_traits.h: Update copyright
7070 * include/experimental/bits/simd.h: Likewise.
7071 * include/experimental/bits/simd_builtin.h: Likewise.
7072 * include/experimental/bits/simd_converter.h: Likewise.
7073 * include/experimental/bits/simd_detail.h: Likewise.
7074 * include/experimental/bits/simd_fixed_size.h: Likewise.
7075 * include/experimental/bits/simd_math.h: Likewise.
7076 * include/experimental/bits/simd_neon.h: Likewise.
7077 * include/experimental/bits/simd_ppc.h: Likewise.
7078 * include/experimental/bits/simd_scalar.h: Likewise.
7079 * include/experimental/bits/simd_x86.h: Likewise.
7080 * include/experimental/bits/simd_x86_conversions.h: Likewise.
7081 * include/experimental/simd: Likewise.
7082 * testsuite/experimental/simd/*: Likewise.
7084 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
7086 * doc/xml/manual/status_cxx2017.xml: Replace invalid entity.
7087 * doc/html/*: Regenerate.
7089 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
7091 * testsuite/experimental/simd/generate_makefile.sh: Use printf
7092 instead of echo when printing escape characters.
7094 2021-01-27 Matthias Kretz <kretz@kde.org>
7096 * scripts/check_simd: New file. This script is called from the
7097 the check-simd target. It determines a set of compiler flags and
7098 simulator setups for calling generate_makefile.sh and passes the
7099 information back to the check-simd target, which recurses to the
7100 generated Makefiles.
7101 * scripts/create_testsuite_files: Remove files below simd/tests/
7102 from testsuite_files and place them in testsuite_files_simd.
7103 * testsuite/Makefile.am: Add testsuite_files_simd. Add
7105 * testsuite/Makefile.in: Regenerate.
7106 * testsuite/experimental/simd/driver.sh: New file. This script
7107 compiles and runs a given simd test, logging its output and
7108 status. It uses the timeout command to implement compile and
7110 * testsuite/experimental/simd/generate_makefile.sh: New file.
7111 This script generates a Makefile which uses driver.sh to compile
7112 and run the tests and collect the logs into a single log file.
7113 * testsuite/experimental/simd/tests/abs.cc: New file. Tests
7115 * testsuite/experimental/simd/tests/algorithms.cc: New file.
7116 Tests min/max(simd, simd).
7117 * testsuite/experimental/simd/tests/bits/conversions.h: New
7118 file. Contains functions to support tests involving conversions.
7119 * testsuite/experimental/simd/tests/bits/make_vec.h: New file.
7120 Support functions make_mask and make_vec.
7121 * testsuite/experimental/simd/tests/bits/mathreference.h: New
7122 file. Support functions to supply precomputed math function
7124 * testsuite/experimental/simd/tests/bits/metahelpers.h: New
7125 file. Support code for SFINAE testing.
7126 * testsuite/experimental/simd/tests/bits/simd_view.h: New file.
7127 * testsuite/experimental/simd/tests/bits/test_values.h: New
7128 file. Test functions to easily drive a test with simd objects
7129 initialized from a given list of values and a range of random
7131 * testsuite/experimental/simd/tests/bits/ulp.h: New file.
7132 Support code to determine the ULP distance of simd objects.
7133 * testsuite/experimental/simd/tests/bits/verify.h: New file.
7134 Test framework for COMPARE'ing simd objects and instantiating
7135 the test templates with value_type and ABI tag.
7136 * testsuite/experimental/simd/tests/broadcast.cc: New file. Test
7138 * testsuite/experimental/simd/tests/casts.cc: New file. Test
7140 * testsuite/experimental/simd/tests/fpclassify.cc: New file.
7141 Test floating-point classification functions.
7142 * testsuite/experimental/simd/tests/frexp.cc: New file. Test
7144 * testsuite/experimental/simd/tests/generator.cc: New file. Test
7145 simd generator constructor.
7146 * testsuite/experimental/simd/tests/hypot3_fma.cc: New file.
7147 Test 3-arg hypot(simd,simd,simd) and fma(simd,simd,sim).
7148 * testsuite/experimental/simd/tests/integer_operators.cc: New
7149 file. Test integer operators.
7150 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
7151 New file. Test ldexp(simd), scalbn(simd), scalbln(simd), and
7153 * testsuite/experimental/simd/tests/loadstore.cc: New file. Test
7154 (converting) simd loads and stores.
7155 * testsuite/experimental/simd/tests/logarithm.cc: New file. Test
7157 * testsuite/experimental/simd/tests/mask_broadcast.cc: New file.
7158 Test simd_mask broadcasts.
7159 * testsuite/experimental/simd/tests/mask_conversions.cc: New
7160 file. Test simd_mask conversions.
7161 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: New
7162 file. Test simd_mask implicit conversions.
7163 * testsuite/experimental/simd/tests/mask_loadstore.cc: New file.
7164 Test simd_mask loads and stores.
7165 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: New
7166 file. Test simd_mask operators convert as specified.
7167 * testsuite/experimental/simd/tests/mask_operators.cc: New file.
7168 Test simd_mask compares, subscripts, and negation.
7169 * testsuite/experimental/simd/tests/mask_reductions.cc: New
7170 file. Test simd_mask reductions.
7171 * testsuite/experimental/simd/tests/math_1arg.cc: New file. Test
7172 1-arg math functions on simd.
7173 * testsuite/experimental/simd/tests/math_2arg.cc: New file. Test
7174 2-arg math functions on simd.
7175 * testsuite/experimental/simd/tests/operator_cvt.cc: New file.
7176 Test implicit conversions on simd binary operators behave as
7178 * testsuite/experimental/simd/tests/operators.cc: New file. Test
7179 simd compares, subscripts, not, unary minus, plus, minus,
7180 multiplies, divides, increment, and decrement.
7181 * testsuite/experimental/simd/tests/reductions.cc: New file.
7183 * testsuite/experimental/simd/tests/remqo.cc: New file. Test
7185 * testsuite/experimental/simd/tests/simd.cc: New file. Basic
7186 sanity checks of simd types.
7187 * testsuite/experimental/simd/tests/sincos.cc: New file. Test
7188 sin(simd) and cos(simd).
7189 * testsuite/experimental/simd/tests/split_concat.cc: New file.
7190 Test split(simd) and concat(simd, simd).
7191 * testsuite/experimental/simd/tests/splits.cc: New file. Test
7193 * testsuite/experimental/simd/tests/trigonometric.cc: New file.
7194 Test remaining trigonometric functions on simd.
7195 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: New
7196 file. Test trunc(simd), ceil(simd), and floor(simd).
7197 * testsuite/experimental/simd/tests/where.cc: New file. Test
7198 masked operations using where.
7200 2021-01-27 Matthias Kretz <kretz@kde.org>
7202 * doc/xml/manual/status_cxx2017.xml: Add implementation status
7203 of the Parallelism TS 2. Document implementation-defined types
7205 * include/Makefile.am: Add new headers.
7206 * include/Makefile.in: Regenerate.
7207 * include/experimental/simd: New file. New header for
7209 * include/experimental/bits/numeric_traits.h: New file.
7210 Implementation of P1841R1 using internal naming. Addition of
7211 missing IEC559 functionality query.
7212 * include/experimental/bits/simd.h: New file. Definition of the
7213 public simd interfaces and general implementation helpers.
7214 * include/experimental/bits/simd_builtin.h: New file.
7215 Implementation of the _VecBuiltin simd_abi.
7216 * include/experimental/bits/simd_converter.h: New file. Generic
7218 * include/experimental/bits/simd_detail.h: New file. Internal
7219 macros for the simd implementation.
7220 * include/experimental/bits/simd_fixed_size.h: New file. Simd
7221 fixed_size ABI specific implementations.
7222 * include/experimental/bits/simd_math.h: New file. Math
7224 * include/experimental/bits/simd_neon.h: New file. Simd NEON
7225 specific implementations.
7226 * include/experimental/bits/simd_ppc.h: New file. Implement bit
7227 shifts to avoid invalid results for integral types smaller than
7229 * include/experimental/bits/simd_scalar.h: New file. Simd scalar
7230 ABI specific implementations.
7231 * include/experimental/bits/simd_x86.h: New file. Simd x86
7232 specific implementations.
7233 * include/experimental/bits/simd_x86_conversions.h: New file.
7234 x86 specific conversion optimizations. The conversion patterns
7235 work around missing conversion patterns in the compiler and
7236 should be removed as soon as PR85048 is resolved.
7237 * testsuite/experimental/simd/standard_abi_usable.cc: New file.
7238 Test that all (not all fixed_size<N>, though) standard simd and
7239 simd_mask types are usable.
7240 * testsuite/experimental/simd/standard_abi_usable_2.cc: New
7241 file. As above but with -ffast-math.
7242 * testsuite/libstdc++-dg/conformance.exp: Don't build simd tests
7243 from the standard test loop. Instead use
7244 check_vect_support_and_set_flags to build simd tests with the
7245 relevant machine flags.
7247 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
7250 * include/bits/string_view.tcc
7251 (basic_string_view::find(const CharT*, size_type, size_type)):
7254 2021-01-27 Paul Fee <paul.f.fee@gmail.com>
7256 * include/bits/basic_string.h (basic_string::contains): New
7258 * include/std/string_view (basic_string_view::contains):
7260 * include/std/version (__cpp_lib_string_contains): Define.
7261 * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
7262 Remove trailing whitespace.
7263 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
7265 * testsuite/21_strings/basic_string/operations/contains/char/1.cc: New test.
7266 * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc: New test.
7267 * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc: New test.
7268 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: New test.
7269 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc: New test.
7271 2021-01-21 Jonathan Wakely <jwakely@redhat.com>
7273 * src/c++17/Makefile.in: Regenerate.
7275 2021-01-20 David Edelsohn <dje.gcc@gmail.com>
7277 * config/os/aix/ctype_inline.h (bool ctype<char>:: is): Cast
7278 _OBJ_DATA subscript to unsigned char. Add _THREAD_SAFE access to
7280 (const char* ctype<char>:: is): Same.
7282 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
7285 * testsuite/20_util/unique_ptr/io/lwg2948.cc: Do not try to
7286 write to a wide character stream if wide character support is
7287 disabled in the library.
7289 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
7291 * testsuite/27_io/basic_stringstream/cons/char/1.cc: Use
7292 stringbuf not wstringbuf.
7294 2021-01-18 Jakub Jelinek <jakub@redhat.com>
7297 * src/c++11/Makefile.am (cxx11-ios_failure-lt.s, cxx11-ios_failure.s):
7298 Compile with -gno-as-loc-support.
7299 * src/c++11/Makefile.in: Regenerated.
7301 2021-01-16 H.J. Lu <hjl.tools@gmail.com>
7303 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
7304 Add -fcf-protection=none to -march=i486.
7306 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
7308 * testsuite/23_containers/deque/debug/98466.cc: Make it pre-C++11
7311 2021-01-14 Alexandre Oliva <oliva@adacore.com>
7313 * testsuite/30_threads/future/members/poll.cc: Calibrate
7316 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
7319 * include/bits/hashtable_policy.h (_Node_iterator_base()): Set _M_cur to nullptr.
7320 (_Node_iterator()): Make default.
7321 (_Node_const_iterator()): Make default.
7322 * include/debug/macros.h (__glibcxx_check_erae_range_after): Add _M_singular
7324 * include/debug/safe_iterator.h
7325 (_GLIBCXX_DEBUG_VERIFY_OPERANDS): Accept if both iterator are value initialized.
7326 * include/debug/safe_local_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
7328 * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range): Add
7329 _M_singular checks on input iterators.
7330 * src/c++11/debug.cc (_Safe_iterator_base::_M_can_compare): Remove _M_singular
7332 * testsuite/23_containers/deque/debug/98466.cc: New test.
7333 * testsuite/23_containers/unordered_map/debug/98466.cc: New test.
7335 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
7338 * include/bits/fs_path.h (__throw_conversion_error): New
7339 function to throw or abort on character conversion errors.
7340 (__wstr_from_utf8): Move definition after filesystem_error has
7341 been defined. Use __throw_conversion_error.
7342 (path::_S_convert<_EcharT>): Use __throw_conversion_error.
7343 (path::_S_str_convert<_CharT, _Traits, _Allocator>): Likewise.
7344 (path::u8string): Likewise.
7346 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
7348 * include/std/barrier: Update copyright years. Fix whitespace.
7349 * include/std/version: Fix whitespace.
7350 * testsuite/30_threads/barrier/1.cc: Update copyright years.
7351 * testsuite/30_threads/barrier/2.cc: Likewise.
7352 * testsuite/30_threads/barrier/arrive.cc: Likewise.
7353 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
7354 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
7355 * testsuite/30_threads/barrier/completion.cc: Likewise.
7357 2021-01-13 Jonathan Wakely <jwakely@redhat.com>
7359 * doc/doxygen/user.cfg.in (INPUT): Remove include/debug/array.
7361 2021-01-10 David Edelsohn <dje.gcc@gmail.com>
7364 * testsuite/ext/vstring/cons/moveable.cc: Suppress false positive
7366 * testsuite/ext/vstring/modifiers/assign/move_assign.cc: Same.
7368 2021-01-08 Olivier Hainque <hainque@adacore.com>
7370 * testsuite/20_util/bind/ref_neg.cc: Tweak the
7371 dg-prune-output regex for out-of-build-tree contexts.
7373 2021-01-07 Thomas Rodgers <trodgers@redhat.com>
7375 * doc/doxygen/user.cfg.in: Add new header.
7376 * include/Makefile.am (std_headers): likewise.
7377 * include/Makefile.in: Regenerate.
7378 * include/precompiled/stdc++.h: Add new header.
7379 * include/std/barrier: New file.
7380 * include/std/version: Add __cpp_lib_barrier feature test macro.
7381 * testsuite/30_threads/barrier/1.cc: New test.
7382 * testsuite/30_threads/barrier/2.cc: Likewise.
7383 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
7384 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
7385 * testsuite/30_threads/barrier/arrive.cc: Likewise.
7386 * testsuite/30_threads/barrier/completion.cc: Likewise.
7388 2021-01-07 Patrick Palka <ppalka@redhat.com>
7391 * testsuite/20_util/to_chars/long_double.cc: Use nexttowardl
7392 instead of the non-standard nextupl and nextdownl.
7394 2021-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
7396 * configure: Re-generate.
7398 2021-01-05 Ed Smith-Rowland <3dw4rd@verizon.net>
7400 * include/precompiled/stdc++.h: Add <source_location> to C++20 section.
7402 2021-01-01 Jakub Jelinek <jakub@redhat.com>
7404 * ChangeLog-2020: Rotate ChangeLog. New file.
7407 Copyright (C) 2021 Free Software Foundation, Inc.
7409 Copying and distribution of this file, with or without modification,
7410 are permitted in any medium without royalty provided the copyright
7411 notice and this notice are preserved.