]> git.ipfire.org Git - thirdparty/gcc.git/blob - libstdc++-v3/ChangeLog
Daily bump.
[thirdparty/gcc.git] / libstdc++-v3 / ChangeLog
1 2021-10-20 Jonathan Wakely <jwakely@redhat.com>
2
3 * testsuite/20_util/optional/monadic/transform.cc: Check that
4 an rvalue result is not materialized too soon.
5
6 2021-10-19 Patrick Palka <ppalka@redhat.com>
7
8 * include/std/ranges (iota_view::_Iterator::operator+): Adjust
9 definition as per LWG 3580.
10 (iota_view::_Iterator::operator-): Likewise.
11
12 2021-10-19 Patrick Palka <ppalka@redhat.com>
13
14 * include/std/ranges (basic_istream_view::_M_object): Value
15 initialize as per LWG 3568.
16
17 2021-10-19 Patrick Palka <ppalka@redhat.com>
18
19 * include/bits/ranges_util.h
20 (__detail::__uses_nonqualification_pointer_conversion): Define
21 and use it ...
22 (__detail::__convertible_to_nonslicing): ... here, as per LWG 3470.
23 * testsuite/std/ranges/subrange/1.cc: New test.
24
25 2021-10-19 Patrick Palka <ppalka@redhat.com>
26
27 * include/std/ranges (iota_view::_Iterator): Befriend iota_view.
28 (iota_view::_Sentinel): Likewise.
29 (iota_view::iota_view): Add three overloads, each taking an
30 iterator/sentinel pair as per LWG 3523.
31 * testsuite/std/ranges/iota/iota_view.cc (test06): New test.
32
33 2021-10-19 Patrick Palka <ppalka@redhat.com>
34
35 * include/bits/ranges_base.h (view_interface): Forward declare.
36 (__detail::__is_derived_from_view_interface_fn): Declare.
37 (__detail::__is_derived_from_view_interface): Define as per LWG 3549.
38 (enable_view): Adjust as per LWG 3549.
39 * include/bits/ranges_util.h (view_interface): Don't derive from
40 view_base.
41 * include/std/ranges (filter_view): Revert r11-3504 change.
42 (transform_view): Likewise.
43 (take_view): Likewise.
44 (take_while_view): Likewise.
45 (drop_view): Likewise.
46 (drop_while_view): Likewise.
47 (join_view): Likewise.
48 (lazy_split_view): Likewise.
49 (split_view): Likewise.
50 (reverse_view): Likewise.
51 * testsuite/std/ranges/adaptors/sizeof.cc: Update expected sizes.
52 * testsuite/std/ranges/view.cc (test_view::test_view): Remove
53 this default ctor since views no longer need to be default initable.
54 (test01): New test.
55
56 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
57
58 * src/c++11/random.cc (which_source): New helper function.
59 (random_device::_M_getentropy()): Use which_source and return
60 suitable values for sources other than device files.
61 * testsuite/26_numerics/random/random_device/entropy.cc: New test.
62
63 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
64
65 * doc/Makefile.am (stamp-html-doxygen, stamp-html-doxygen)
66 (stamp-latex-doxygen, stamp-man-doxygen): Fix recipes for
67 relative ${top_srcdir}.
68 * doc/Makefile.in: Regenerate.
69
70 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
71
72 * include/std/variant (_Uninitialized): Use an empty struct
73 for the unused union member, instead of char.
74
75 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
76
77 * include/bits/stl_stack.h (stack(Iterator, Iterator)): Remove
78 non-deducible template parameter from deduction guide.
79 * testsuite/23_containers/stack/deduction.cc: Check new C++23
80 deduction guides.
81
82 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
83
84 * include/std/optional (_Optional_payload_base::_Storage): Add
85 constructor taking a callable function to invoke.
86 (_Optional_payload_base::_M_apply): New function.
87 (__cpp_lib_monadic_optional): Define for C++23.
88 (optional::and_then, optional::transform, optional::or_else):
89 Define for C++23.
90 * include/std/ranges (__detail::__cached): Remove.
91 (__detail::__non_propagating_cache): Remove use of __cached for
92 contained value. Use _Optional_payload_base::_M_construct and
93 _Optional_payload_base::_M_apply to set the contained value.
94 * include/std/version (__cpp_lib_monadic_optional): Define.
95 * testsuite/20_util/optional/monadic/and_then.cc: New test.
96 * testsuite/20_util/optional/monadic/or_else.cc: New test.
97 * testsuite/20_util/optional/monadic/or_else_neg.cc: New test.
98 * testsuite/20_util/optional/monadic/transform.cc: New test.
99 * testsuite/20_util/optional/monadic/version.cc: New test.
100
101 2021-10-19 Jonathan Wakely <jwakely@redhat.com>
102
103 PR libstdc++/102825
104 * include/bits/mofunc_impl.h (move_only_function): Remove
105 invalid base initializer.
106 * testsuite/20_util/move_only_function/cons.cc: Instantiate
107 constructors to check bodies.
108
109 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
110
111 * include/bits/fs_path.h (path::_S_convert(T)): Avoid recursive
112 call to function with deduced return type.
113
114 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
115
116 * include/bits/basic_string.h (__cpp_lib_string_resize_and_overwrite):
117 Define for C++23.
118 (basic_string::resize_and_overwrite): Declare.
119 * include/bits/basic_string.tcc (basic_string::resize_and_overwrite):
120 Define.
121 * include/std/version (__cpp_lib_resize_and_overwrite): Define
122 for C++23.
123 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
124 New test.
125
126 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
127
128 PR libstdc++/101263
129 * include/std/ranges (__cached): New wrapper struct.
130 (__non_propagating_cache): Use __cached for contained value.
131 (__non_propagating_cache::_M_emplace_deref): Add constexpr. Use
132 std::construct_at instead of placement new.
133 * testsuite/std/ranges/adaptors/join.cc: Check constexpr works.
134
135 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
136
137 * include/std/variant (__cpp_lib_variant): Update value for
138 C++20.
139 (__variant_cast, __variant_construct): Add constexpr for C++20.
140 (__variant_construct_single, __construct_by_index) Likewise. Use
141 std::_Construct instead of placement new.
142 (_Uninitialized<T, false>) [__cplusplus >= 202002]: Replace
143 buffer with a union and define a destructor.
144 (_Variadic_union) [__cplusplus >= 202002]: Add a specialization
145 for non-trivial destruction.
146 (_Variant_storage::__index_of): New helper variable template.
147 (_Variant_storage::~_Variant_storage()): Add constexpr.
148 (_Variant_storage::_M_reset()): Likewise.
149 (_Copy_ctor_base, _Move_ctor_base): Likewise.
150 (_Copy_assign_base, _Move_assign_base): Likewise.
151 (variant, swap): Likewise.
152 * include/std/version (__cpp_lib_variant): Update value for
153 C++20.
154 * testsuite/20_util/optional/version.cc: Check for exact value
155 in C++17.
156 * testsuite/20_util/variant/87619.cc: Increase timeout for
157 C++20 mode.
158 * testsuite/20_util/variant/constexpr.cc: New test.
159 * testsuite/20_util/variant/version.cc: New test.
160
161 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
162
163 * include/std/variant (__detail::__variant::__get_storage):
164 Remove unused function.
165 (__variant_construct_by_index): Set index after construction is
166 complete. Rename to ...
167 (__detail::__variant::__construct_by_index): ... this.
168 (variant): Use new name for __variant_construct_by_index friend
169 declaration. Remove __get_storage friend declaration.
170 (variant::emplace): Use new name and remove try-blocks.
171
172 2021-10-15 Jonathan Wakely <jwakely@redhat.com>
173
174 * include/std/variant (_Variant_storage::_M_storage()): Remove.
175 (__detail::__variant::__get_storage): Remove.
176 (variant): Remove friend declaration of __get_storage.
177
178 2021-10-15 Jason Merrill <jason@redhat.com>
179
180 * testsuite/20_util/integer_comparisons/greater_equal_neg.cc:
181 * testsuite/20_util/integer_comparisons/greater_neg.cc:
182 * testsuite/20_util/integer_comparisons/less_equal_neg.cc:
183 Adjust expected message.
184 * testsuite/lib/prune.exp: Prune 'in constexpr expansion'.
185
186 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
187
188 * include/std/variant (__variant::__get(in_place_index_t<N>, U&&)):
189 Rename to __get_n and remove first argument. Replace pair of
190 overloads with a single function using 'if constexpr'.
191 (__variant::__get(Variant&&)): Adjust to use __get_n.
192
193 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
194
195 * include/bits/fs_path.h (path(path&&)): Make unconditionally
196 noexcept.
197 (path::_S_convert(T)): Add condtional noexcept.
198
199 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
200
201 PR libstdc++/102743
202 * include/bits/fs_path.h (path::_S_convert(T)): Fix condition
203 for returning the same string unchanged.
204
205 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
206
207 * include/bits/regex.h: Check __cpp_inline_variables instead of
208 __cplusplus.
209
210 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
211
212 * testsuite/20_util/is_layout_compatible/version.cc: Check
213 correct macro.
214
215 2021-10-14 Jonathan Wakely <jwakely@redhat.com>
216
217 * include/bits/stl_construct.h (_Construct): Use
218 std::construct_at when constant evaluated.
219 * include/std/optional (_Storage, _Optional_payload, optional):
220 Add constexpr as specified by P2231R1.
221 * include/std/version (__cpp_lib_optional): Update value for
222 C++20.
223 * testsuite/20_util/optional/requirements.cc: Check feature test
224 macro.
225 * testsuite/20_util/optional/constexpr/assign.cc: New test.
226 * testsuite/20_util/optional/constexpr/cons/conv.cc: New test.
227 * testsuite/20_util/optional/constexpr/modifiers.cc: New test.
228 * testsuite/20_util/optional/constexpr/swap.cc: New test.
229 * testsuite/20_util/optional/version.cc: New test.
230
231 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
232
233 * include/bits/fs_path.h (__detail::__is_contiguous): Add
234 partial specializations for pointers and __normal_iterator.
235
236 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
237
238 * testsuite/27_io/filesystem/path/construct/102592.C: Moved to...
239 * testsuite/27_io/filesystem/path/construct/102592.cc: ...here.
240 * testsuite/28_regex/match_results/102667.C: Moved to...
241 * testsuite/28_regex/match_results/102667.cc: ...here.
242
243 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
244
245 * include/bits/fs_path.h (__detail::__is_contiguous): New
246 variable template to identify contiguous iterators.
247 (__detail::__unified_char8_t): New alias template to decide when
248 to treat char8_t as char without encoding conversion.
249 (__detail::__effective_range(const basic_string<C,T>&)): Use
250 std::char_traits<C> for returned string view.
251 (__detail::__effective_range(const basic_string_view<C,T>&)):
252 Likewise.
253 (__detail::__effective_range(const Source&)): Use
254 __is_contiguous to detect mode cases of contiguous iterators.
255 Use __unified_char8_t to return a std::string instead of
256 std::u8string.
257
258 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
259
260 PR libstdc++/102592
261 * include/bits/fs_path.h (path::path(Iter, Iter, format))
262 (path::append(Iter, Iter), path::concat(Iter, Iter)): Call
263 __string_from_range directly, instead of two-argument overload
264 of _S_convert.
265 (path::_S_convert(Iter, Iter)): Remove.
266 * testsuite/27_io/filesystem/path/construct/102592.C: New test.
267
268 2021-10-13 Jonathan Wakely <jwakely@redhat.com>
269
270 * include/bits/c++config (__terminate): Add extern "C++".
271
272 2021-10-12 Jonathan Wakely <jwakely@redhat.com>
273
274 * testsuite/20_util/tuple/comparison_operators/overloaded.cc:
275 Restore test for operator<.
276 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
277 Adjust expected errors for C++20.
278
279 2021-10-12 Jonathan Wakely <jwakely@redhat.com>
280
281 PR libstdc++/101960
282 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)): Define as
283 defauled.
284 * testsuite/20_util/tuple/cons/101960.cc: Check tuples with
285 array elements before the last element.
286
287 2021-10-12 Jonathan Wakely <jwakely@redhat.com>
288
289 * include/bits/stl_iterator_base_funcs.h (__advance): Add
290 deleted overload to improve diagnostics.
291 (__distance): Likewise.
292
293 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
294
295 * include/bits/atomic_timed_wait.h: Remove unused header.
296 * include/bits/c++config (std:__terminate): Define.
297 * include/bits/semaphore_base.h: Remove <exception> and use
298 __terminate instead of terminate.
299 * include/bits/std_thread.h: Likewise.
300 * libsupc++/eh_terminate.cc (std::terminate): Use qualified-id
301 to call __cxxabiv1::__terminate.
302
303 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
304
305 * include/bits/regex.h (basic_regex::assign(Iter, Iter)): Avoid
306 std::__to_address by using poitner directly or using base()
307 member of __normal_iterator.
308
309 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
310
311 * testsuite/18_support/numeric_limits/lowest.cc: Use
312 numeric_limits<T>::is_integer instead of is_integral<T>::value.
313
314 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
315
316 PR libstdc++/89927
317 * include/bits/regex.h (basic_regex(const _Ch_type*, size_t)):
318 Add __glibcxx_requires_string_len assertion.
319 (basic_regex::assign(InputIterator, InputIterator)): Add
320 __glibcxx_requires_valid_range assertion.
321 * include/bits/regex_scanner.tcc (_Scanner::_M_advance())
322 (_Scanner::_M_scan_normal()): Use string literal in assertions.
323
324 2021-10-11 Jonathan Wakely <jwakely@redhat.com>
325
326 PR libstdc++/102667
327 * include/bits/regex.h (match_result::empty()): Optimize by
328 calling the base function directly.
329 (match_results::end()): Check _Base_type::empty() not empty().
330 * testsuite/28_regex/match_results/102667.C: New test.
331
332 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
333
334 PR libstdc++/98725
335 * testsuite/18_support/numeric_limits/lowest.cc: Remove use of
336 _GLIBCXX_USE_WCHAR_T.
337 * testsuite/18_support/numeric_limits/min_max.cc: Replace use of
338 _GLIBCXX_USE_WCHAR_T with checks for WCHAR_MIN and WCHAR_MAX.
339 * testsuite/20_util/from_chars/1_neg.cc: Remove use of
340 _GLIBCXX_USE_WCHAR_T.
341 * testsuite/20_util/function_objects/searchers.cc: Likewise. Use
342 char_traits<wchar_t>::length instead of wcslen.
343 * testsuite/20_util/hash/requirements/explicit_instantiation.cc:
344 Likewise.
345 * testsuite/20_util/is_arithmetic/value.cc: Likewise.
346 * testsuite/20_util/is_compound/value.cc: Likewise.
347 * testsuite/20_util/is_floating_point/value.cc: Likewise.
348 * testsuite/20_util/is_fundamental/value.cc: Likewise.
349 * testsuite/20_util/is_integral/value.cc: Likewise.
350 * testsuite/20_util/is_signed/value.cc: Likewise.
351 * testsuite/20_util/is_unsigned/value.cc: Likewise.
352 * testsuite/20_util/is_void/value.cc: Likewise.
353 * testsuite/20_util/make_signed/requirements/typedefs-1.cc:
354 Likewise.
355 * testsuite/20_util/make_signed/requirements/typedefs-2.cc:
356 Likewise.
357 * testsuite/20_util/make_signed/requirements/typedefs-3.cc:
358 Likewise.
359 * testsuite/20_util/make_signed/requirements/typedefs-4.cc:
360 Likewise.
361 * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
362 Likewise.
363 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
364 Likewise.
365 * testsuite/20_util/make_unsigned/requirements/typedefs-3.cc:
366 Likewise.
367 * testsuite/20_util/to_chars/3.cc: Likewise.
368 * testsuite/20_util/type_identity/requirements/typedefs.cc:
369 Likewise.
370 * testsuite/21_strings/basic_string/hash/debug.cc: Likewise.
371 * testsuite/21_strings/basic_string/hash/hash.cc: Likewise.
372 * testsuite/21_strings/basic_string/literals/types-char8_t.cc:
373 Likewise.
374 * testsuite/21_strings/basic_string/literals/types.cc: Likewise.
375 * testsuite/21_strings/basic_string/literals/values-char8_t.cc:
376 Likewise.
377 * testsuite/21_strings/basic_string/literals/values.cc:
378 Likewise.
379 * testsuite/21_strings/basic_string/modifiers/64422.cc:
380 Likewise.
381 * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
382 Likewise.
383 * testsuite/21_strings/basic_string/requirements/citerators.cc:
384 Likewise.
385 * testsuite/21_strings/basic_string/requirements/typedefs.cc:
386 Likewise.
387 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
388 Likewise.
389 * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
390 Likewise.
391 * testsuite/21_strings/basic_string_view/literals/types.cc:
392 Likewise.
393 * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
394 Likewise.
395 * testsuite/21_strings/basic_string_view/literals/values.cc:
396 Likewise.
397 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
398 Likewise.
399 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
400 * testsuite/21_strings/char_traits/requirements/constexpr_functions.cc:
401 Likewise.
402 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
403 Likewise.
404 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
405 Likewise.
406 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Likewise.
407 * testsuite/25_algorithms/fill/4.cc: Likewise.
408 * testsuite/25_algorithms/fill_n/1.cc: Likewise.
409 * testsuite/experimental/functional/searchers.cc: Likewise. Use
410 char_traits<wchar_t>::length instead of wcslen.
411 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc:
412 Likewise.
413 * testsuite/experimental/string_view/literals/types-char8_t.cc:
414 Likewise.
415 * testsuite/experimental/string_view/literals/types.cc:
416 Likewise.
417 * testsuite/experimental/string_view/literals/values-char8_t.cc:
418 Likewise.
419 * testsuite/experimental/string_view/literals/values.cc:
420 Likewise.
421 * testsuite/experimental/string_view/range_access/wchar_t/1.cc:
422 Likewise.
423 * testsuite/experimental/string_view/requirements/typedefs.cc:
424 Likewise.
425 * testsuite/experimental/string_view/typedefs.cc: Likewise.
426 * testsuite/ext/vstring/range_access.cc: Likewise.
427 * testsuite/std/concepts/concepts.lang/concept.arithmetic/integral.cc:
428 Likewise.
429 * testsuite/std/concepts/concepts.lang/concept.arithmetic/signed_integral.cc:
430 Likewise.
431 * testsuite/std/concepts/concepts.lang/concept.arithmetic/unsigned_integral.cc:
432 Likewise.
433 * testsuite/tr1/4_metaprogramming/is_arithmetic/value.cc:
434 Likewise.
435 * testsuite/tr1/4_metaprogramming/is_compound/value.cc:
436 Likewise.
437 * testsuite/tr1/4_metaprogramming/is_floating_point/value.cc:
438 Likewise.
439 * testsuite/tr1/4_metaprogramming/is_fundamental/value.cc:
440 Likewise.
441 * testsuite/tr1/4_metaprogramming/is_integral/value.cc:
442 Likewise.
443 * testsuite/tr1/4_metaprogramming/is_signed/value.cc: Likewise.
444 * testsuite/tr1/4_metaprogramming/is_unsigned/value.cc:
445 Likewise.
446 * testsuite/tr1/4_metaprogramming/is_void/value.cc: Likewise.
447 * testsuite/tr1/6_containers/hash/24799.cc: Likewise.
448
449 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
450
451 PR libstdc++/98725
452 * include/std/ostream (operator<<(basic_ostream<char, Tr>&, wchar_t))
453 (operator<<(basic_ostream<char, Tr>&, const wchar_t*)): Always
454 define as deleted. Do not check _GLIBCXX_USE_WCHAR_T.
455
456 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
457
458 PR libstdc++/98725
459 * include/bits/locale_conv.h (wstring_convert, wbuffer_convert):
460 Define unconditionally. Do not check _GLIBCXX_USE_WCHAR_T.
461
462 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
463
464 PR libstdc++/98725
465 * include/c_global/cstddef [!_GLIBCXX_USE_WCHAR_T]
466 (__byte_operand<wchar_t>): Define specialization.
467 * include/std/type_traits (__make_signed<wchar_t>)
468 (__make_unsigned<wchar_t>): Remove redundant check for
469 __WCHAR_TYPE__ being defined.
470 * include/tr1/type_traits [!_GLIBCXX_USE_WCHAR_T]
471 (__is_integral_helper<wchar_t>): Likewise.
472
473 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
474
475 PR libstdc++/98725
476 * include/ext/rc_string_base.h [!_GLIBCXX_USE_WCHAR_T]
477 (__rc_string_base<wchar_t>): Define member function.
478 * include/ext/vstring.h [!_GLIBCXX_USE_WCHAR_T]
479 (hash<__gnu_cxx::__wvstring>): Define specialization.
480 * include/ext/vstring_fwd.h [!_GLIBCXX_USE_WCHAR_T] (__wvstring)
481 (__wsso_string, __wrc_string): Declare typedefs.
482
483 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
484
485 PR libstdc++/98725
486 * include/bits/char_traits.h (char_traits<wchar_t>): Define
487 explicit specialization unconditionally.
488 * include/bits/basic_string.h (hash<wstring>): Define
489 unconditionally. Do not check _GLIBCXX_USE_WCHAR_T.
490 * include/bits/stringfwd.h (wstring): Likewise.
491 * include/debug/string (wstring): Likewise.
492 * include/experimental/string_view (experimental::wstring_view)
493 (hash<experimental::wstring_view>): Likewise.
494 * include/std/string (pmr::wstring, hash<pmr::wstring>):
495 Likewise.
496 * include/std/string_view (wstring_view, hash<wstring_view>):
497 Likewise.
498
499 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
500
501 * testsuite/27_io/basic_filebuf/close/81256.cc: Moved to...
502 * testsuite/27_io/basic_filebuf/close/wchar_t/81256.cc: ...here.
503
504 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
505
506 * testsuite/22_locale/conversions/buffer/1.cc: Check
507 _GLIBCXX_USE_WCHAR_T.
508 * testsuite/22_locale/conversions/buffer/3.cc: Likewise. Add
509 test using char16_t.
510 * testsuite/22_locale/conversions/string/1.cc: Check
511 _GLIBCXX_USE_WCHAR_T.
512 * testsuite/27_io/filesystem/path/generic/generic_string.cc:
513 Likewise.
514 * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
515 Likewise.
516 * testsuite/27_io/filesystem/path/native/alloc.cc: Likewise.
517 * testsuite/27_io/filesystem/path/native/string-char8_t.cc:
518 Likewise.
519 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
520 * testsuite/28_regex/algorithms/regex_match/extended/wstring_locale.cc:
521 Likewise.
522 * testsuite/experimental/filesystem/path/generic/generic_string.cc:
523 Likewise.
524 * testsuite/experimental/filesystem/path/native/alloc.cc:
525 Likewise.
526 * testsuite/experimental/filesystem/path/native/string-char8_t.cc:
527 Likewise.
528 * testsuite/experimental/filesystem/path/native/string.cc:
529 Likewise.
530
531 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
532
533 * testsuite/26_numerics/bit/bit.rotate/rotr.cc:
534 * testsuite/util/testsuite_common_types.h:
535
536 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
537
538 * testsuite/18_support/numeric_limits/40856.cc: Replace use of
539 _GLIBCXX_USE_INT128.
540 * testsuite/18_support/numeric_limits/dr559.cc: Likewise.
541 * testsuite/18_support/numeric_limits/lowest.cc: Likewise.
542 * testsuite/18_support/numeric_limits/max_digits10.cc: Likewise.
543 * testsuite/20_util/is_floating_point/value.cc: Likewise.
544 * testsuite/20_util/is_integral/value.cc: Likewise.
545 * testsuite/20_util/is_signed/value.cc: Likewise.
546 * testsuite/20_util/is_unsigned/value.cc: Likewise.
547 * testsuite/20_util/make_signed/requirements/typedefs-1.cc:
548 Likewise.
549 * testsuite/20_util/make_signed/requirements/typedefs-2.cc:
550 Likewise.
551 * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
552 Likewise.
553 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
554 Likewise.
555 * testsuite/20_util/type_identity/requirements/typedefs.cc:
556 Likewise.
557 * testsuite/26_numerics/bit/bit.count/countl_one.cc: Likewise.
558 * testsuite/26_numerics/bit/bit.count/countl_zero.cc: Likewise.
559 * testsuite/26_numerics/bit/bit.count/countr_one.cc: Likewise.
560 * testsuite/26_numerics/bit/bit.count/countr_zero.cc: Likewise.
561 * testsuite/26_numerics/bit/bit.count/popcount.cc: Likewise.
562 * testsuite/26_numerics/bit/bit.pow.two/bit_ceil.cc: Likewise.
563 * testsuite/26_numerics/bit/bit.pow.two/bit_floor.cc: Likewise.
564 * testsuite/26_numerics/bit/bit.pow.two/bit_width.cc: Likewise.
565 * testsuite/26_numerics/bit/bit.pow.two/has_single_bit.cc:
566 Likewise.
567 * testsuite/26_numerics/bit/bit.rotate/rotl.cc: Likewise.
568
569 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
570
571 * include/bits/hashtable_policy.h (_Select1st): Replace use of
572 std::get.
573 (_Select2nd): Remove.
574 (_NodeBuilder::_S_build): Use _NodeGenerator::__node_type
575 typedef instead of deducing it. Remove unnecessary piecewise
576 construction.
577 (_ReuseOrAllocNode): Make __node_type public.
578 (_Map_base): Adjust partial specialization to be able to extract
579 the mapped_type without using tuple_element.
580 (_Map_base::at): Define inline
581 * testsuite/23_containers/unordered_map/requirements/53339.cc:
582 Remove XFAIL.
583 * testsuite/23_containers/unordered_multimap/requirements/53339.cc:
584 Likewise.
585
586 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
587
588 * include/bits/hashtable.h: Move static assertion to destructor.
589 * include/bits/hashtable_policy.h: Deduce value type from node
590 type without instantiating it.
591
592 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
593
594 * src/c++11/limits.cc: Fail if __cpp_inline_variables is
595 defined.
596
597 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
598
599 PR libstdc++/92546
600 * include/bits/ranges_algobase.h: Replace <iterator> with a
601 subset of the headers it includes.
602
603 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
604
605 * include/experimental/deque (erase, erase_if): Revert changes
606 to avoid debug mode overhead.
607 * include/experimental/map (erase, erase_if): Likewise.
608 * include/experimental/set (erase, erase_if): Likewise.
609 * include/experimental/unordered_map (erase, erase_if):
610 Likewise.
611 * include/experimental/unordered_set (erase, erase_if):
612 Likewise.
613 * include/experimental/vector (erase, erase_if): Likewise.
614 * include/std/deque (erase, erase_if): Likewise.
615 * include/std/map (erase, erase_if): Likewise.
616 * include/std/set (erase, erase_if): Likewise.
617 * include/std/unordered_map (erase, erase_if): Likewise.
618 * include/std/unordered_set (erase, erase_if): Likewise.
619 * include/std/vector (erase, erase_if): Likewise.
620
621 2021-10-08 Jonathan Wakely <jwakely@redhat.com>
622
623 * include/std/chrono (__detail::__units_suffix_misc): New
624 helper function.
625 (__detail::__units_suffix): Likewise.
626 (chrono::operator<<(basic_ostream&, const duration&)): Define.
627 * testsuite/20_util/duration/io.cc: New test.
628
629 2021-10-07 Jonathan Wakely <jwakely@redhat.com>
630
631 * include/Makefile.am: Add new header.
632 * include/Makefile.in: Regenerate.
633 * include/std/chrono (duration, time_point, system_clock)
634 (steady_clock, high_resolution_clock, chrono_literals, sys_time)
635 (file_clock, file_time): Move to ...
636 * include/bits/chrono.h: New file.
637 * include/bits/atomic_futex.h: Include new header instead of
638 <chrono>.
639 * include/bits/atomic_timed_wait.h: Likewise.
640 * include/bits/fs_fwd.h: Likewise.
641 * include/bits/semaphore_base.h: Likewise.
642 * include/bits/this_thread_sleep.h: Likewise.
643 * include/bits/unique_lock.h: Likewise.
644 * include/experimental/bits/fs_fwd.h: Likewise.
645 * include/experimental/chrono: Likewise.
646 * include/experimental/io_context: Likewise.
647 * include/experimental/netfwd: Likewise.
648 * include/experimental/timer: Likewise.
649 * include/std/condition_variable: Likewise.
650 * include/std/mutex: Likewise.
651 * include/std/shared_mutex: Likewise.
652
653 2021-10-07 Jonathan Wakely <jwakely@redhat.com>
654
655 PR libstdc++/102377
656 * include/bits/atomic_wait.h (__waiter_pool_base:_S_align):
657 Hardcode to 64 instead of using non-constant constant.
658
659 2021-10-07 Jonathan Wakely <jwakely@redhat.com>
660
661 * include/bits/erase_if.h (__erase_nodes_if): Remove redundant
662 __niter_base calls.
663 * include/std/string (erase, erase_if): Likewise.
664 * include/std/deque (erase, erase_if): Access non-debug
665 container directly.
666 * include/std/map (erase, erase_if): Likewise.
667 * include/std/set (erase, erase_if): Likewise.
668 * include/std/unordered_map (erase, erase_if): Likewise.
669 * include/std/unordered_set (erase, erase_if): Likewise.
670 * include/std/vector (erase, erase_if): Likewise.
671 * include/experimental/deque (erase, erase_if): Likewise.
672 * include/experimental/map (erase, erase_if): Likewise.
673 * include/experimental/set (erase, erase_if): Likewise.
674 * include/experimental/unordered_map (erase, erase_if):
675 Likewise.
676 * include/experimental/unordered_set (erase, erase_if):
677 Likewise.
678 * include/experimental/vector (erase, erase_if): Likewise.
679
680 2021-10-06 Jonathan Wakely <jwakely@redhat.com>
681
682 * include/Makefile.am: Add new headers.
683 * include/Makefile.in: Regenerate.
684 * include/std/functional: Include <bits/move_only_function.h>.
685 * include/std/version (__cpp_lib_move_only_function): Define.
686 * include/bits/mofunc_impl.h: New file.
687 * include/bits/move_only_function.h: New file.
688 * testsuite/20_util/move_only_function/call.cc: New test.
689 * testsuite/20_util/move_only_function/cons.cc: New test.
690 * testsuite/20_util/move_only_function/move.cc: New test.
691 * testsuite/20_util/move_only_function/version.cc: New test.
692
693 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
694
695 * testsuite/21_strings/basic_string_view/requirements/trivially_copyable.cc:
696 New test.
697 * testsuite/23_containers/span/trivially_copyable.cc: New test.
698
699 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
700
701 * include/bits/utility.h (__is_in_place_type_v): Define
702 variable template to detect in_place_type_t specializations.
703 (__is_in_place_type): Replace class template with alias
704 template using __is_in_place_type_v.
705 * include/std/any (any(T&&)): Check __is_in_place_type first and
706 avoid instantiating is_copy_constructible unnecessarily.
707
708 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
709
710 * testsuite/20_util/integer_comparisons/greater.cc: New test.
711
712 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
713
714 * testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc:
715 Check result matches non-volatile pointer.
716
717 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
718
719 PR c++/102535
720 * testsuite/20_util/is_trivially_constructible/value.cc: Adjust
721 expected value for C++20.
722
723 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
724
725 * include/bits/std_function.h (_Any_data::_M_access): Add
726 noexcept.
727 (_Function_base::_Base_manager::_M_get_pointer): Likewise.
728 (_Function_base::_Base_manager::_M_not_empty_function):
729 Likewise.
730
731 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
732
733 * include/std/ostream (operator<<(const volatile void*)):
734 Add new overload, as per P1147R1.
735 * testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc:
736 New test.
737
738 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
739
740 * include/bits/stl_queue.h
741 (__cpp_lib_adaptor_iterator_pair_constructor): Set to correct
742 value.
743 * include/bits/stl_stack.h
744 (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
745 * include/std/version
746 (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
747 * testsuite/23_containers/queue/cons_from_iters.cc: Update
748 expected value.
749 * testsuite/23_containers/stack/cons_from_iters.cc: Likewise.
750
751 2021-10-04 Jonathan Wakely <jwakely@redhat.com>
752
753 * include/bits/forward_list.h (forward_list): Use non-deduced
754 context for allocator parameter of allocator-extended copy and
755 move constructors.
756 * include/bits/stl_bvector.h (vector<bool>): Likewise.
757 * include/bits/stl_deque.h (deque): Likewise.
758 * include/bits/stl_list.h (list): Likewise.
759 * include/bits/stl_map.h (map): Likewise.
760 * include/bits/stl_multimap.h (multimap): Likewise.
761 * include/bits/stl_multiset.h (multiset): Likewise.
762 * include/bits/stl_set.h (set): Likewise.
763 * include/bits/stl_vector.h (vector): Likewise.
764 * include/bits/stl_queue.h (queue, priority_queue): Do not
765 constrain Allocator template parameter of deduction guides that
766 have a Container parameter.
767 * include/bits/stl_stack.h (stack): Likewise.
768 * include/debug/deque (__gnu_debug::deque): Use non-deduced
769 context for allocator parameter of allocator-extended copy and
770 move constructors.
771 * include/debug/list (__gnu_debug::list): Likewise.
772 * include/debug/map.h (__gnu_debug::map): Likewise.
773 * include/debug/multimap.h (__gnu_debug::multimap): Likewise.
774 * include/debug/multiset.h (__gnu_debug::multiset): Likewise.
775 * include/debug/set.h (__gnu_debug::set): Likewise.
776 * include/debug/vector (__gnu_debug::vector): Likewise.
777 * testsuite/23_containers/deque/cons/deduction.cc: Test class
778 template argument deduction with non-deduced allocator
779 arguments.
780 * testsuite/23_containers/forward_list/cons/deduction.cc:
781 Likewise.
782 * testsuite/23_containers/list/cons/deduction.cc: Likewise.
783 * testsuite/23_containers/map/cons/deduction.cc: Likewise.
784 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
785 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
786 * testsuite/23_containers/priority_queue/deduction.cc: Likewise.
787 * testsuite/23_containers/queue/deduction.cc: Likewise.
788 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
789 * testsuite/23_containers/stack/deduction.cc: Likewise.
790 * testsuite/23_containers/unordered_map/cons/deduction.cc:
791 Likewise.
792 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
793 Likewise.
794 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
795 Likewise.
796 * testsuite/23_containers/unordered_set/cons/deduction.cc:
797 Likewise.
798 * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
799
800 2021-10-04 Jonathan Wakely <jwakely@redhat.com>
801
802 * include/std/variant (__detail::__variant::__as): Add missing
803 noexcept to first overload.
804
805 2021-10-04 Jonathan Wakely <jwakely@redhat.com>
806
807 * include/bits/basic_string.h (basic_string(nullptr_t)): Define
808 as deleted.
809 (operator=(nullptr_t)): Likewise.
810 * include/bits/cow_string.h (basic_string(nullptr_t)): Likewise.
811 (operator=(nullptr_t)): Likewise.
812 * include/std/string_view (basic_string_view(nullptr_t)):
813 Likewise.
814 * testsuite/21_strings/basic_string/cons/char/nullptr.cc: New test.
815 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
816 Change dg-warning to dg-error.
817 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
818 Likewise.
819
820 2021-10-02 Jonathan Wakely <jwakely@redhat.com>
821
822 * src/c++17/fs_ops.cc (create_directory): Fix typo in enum name.
823 * src/filesystem/ops-common.h (__last_system_error): Add
824 explicit cast to avoid narrowing conversion.
825 (do_space): Fix type in function name.
826
827 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
828
829 PR libstdc++/102100
830 * include/Makefile.am (c++config.h): Define
831 _GLIBCXX_VERBOSE_ASSERT based on configure output.
832 * include/Makefile.in: Regenerate.
833 * include/bits/c++config: Fix condition for verbose assertions.
834
835 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
836
837 PR libstdc++/92546
838 * include/bits/erase_if.h (__erase_nodes_if): Use __niter_base to
839 unwrap debug iterators.
840 * include/bits/refwrap.h: Do not error if included in C++03.
841 * include/bits/stl_algo.h (__remove_if): Move to ...
842 * include/bits/stl_algobase.h (__remove_if): ... here.
843 * include/std/deque (erase, erase_if): Use __remove_if instead of
844 remove and remove_if.
845 * include/std/string (erase, erase_if): Likewise.
846 * include/std/vector (erase, erase_if): Likewise.
847
848 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
849
850 PR libstdc++/66742
851 * include/bits/list.tcc (list::sort()): Use _Scratch_list
852 objects for splicing and merging.
853 (list::sort(StrictWeakOrdering)): Likewise.
854 * include/bits/stl_list.h (__detail::_Scratch_list): New type.
855 * src/c++98/list.cc (_List_node_base::_M_transfer): Add
856 assertion for --enable-libstdcxx-debug library.
857 * testsuite/23_containers/list/operations/66742.cc: New test.
858
859 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
860
861 PR libstdc++/100612
862 * include/std/thread (__pmf_expects_stop_token): New variable
863 template to detect a pointer to member function that needs a
864 stop_token to be added to the arguments.
865 (jthread::__S_create): Use __pmf_expects_stop_token.
866 (jthread::__S_create_pmf): New function.
867 * testsuite/30_threads/jthread/100612.cc: New test.
868
869 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
870
871 * include/bits/stl_queue.h
872 (__cpp_lib_adaptor_iterator_pair_constructor): Define for C++23, as
873 per P1425R4.
874 (queue(InputIterator, InputIterator)): Likewise.
875 (queue(InputIterator, InputIterator, const Alloc&)): Likewise.
876 * include/bits/stl_stack.h
877 (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
878 (stack(InputIterator, InputIterator)): Likewise.
879 (stack(InputIterator, InputIterator, const Alloc&)): Likewise.
880 * include/std/version (__cpp_lib_adaptor_iterator_pair_constructor):
881 Define.
882 * testsuite/23_containers/queue/cons_from_iters.cc: New test.
883 * testsuite/23_containers/stack/cons_from_iters.cc: New test.
884
885 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
886
887 * include/bits/stl_queue.h (priority_queue): Add
888 allocator-extended overloads for constructors taking iterator.
889 * testsuite/23_containers/priority_queue/lwg3506.cc: New test.
890
891 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
892
893 * include/bits/stl_queue.h (priority_queue): Construct sequence
894 from iterators when no sequence argument is present (LWG 3529).
895 * testsuite/23_containers/priority_queue/lwg3529.cc: New test.
896
897 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
898
899 * include/bits/stl_queue.h (priority_queue): Constrain
900 constructors with InputIterator parameters (LWG 3522).
901 * testsuite/23_containers/priority_queue/lwg3522.cc: New test.
902
903 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
904
905 * include/bits/ranges_base.h (ranges::distance): Split overload
906 into two (LWG 3392).
907 * testsuite/24_iterators/range_operations/lwg3392.cc: New test.
908
909 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
910
911 * testsuite/30_threads/thread/cons/3.cc: Remove derivation from
912 std::unary_function.
913 * testsuite/30_threads/thread/cons/4.cc: Likewise.
914 * testsuite/30_threads/thread/cons/5.cc: Likewise.
915
916 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
917
918 * testsuite/ext/pb_ds/example/basic_multimap.cc: Remove
919 unnecesary derivation from std::unary_function.
920 * testsuite/ext/pb_ds/example/erase_if.cc: Likewise.
921 * testsuite/ext/pb_ds/example/hash_illegal_resize.cc: Likewise.
922 * testsuite/ext/pb_ds/example/hash_initial_size.cc: Likewise.
923 * testsuite/ext/pb_ds/example/hash_load_set_change.cc: Likewise.
924 * testsuite/ext/pb_ds/example/hash_mod.cc: Likewise.
925 * testsuite/ext/pb_ds/example/hash_resize.cc: Likewise.
926 * testsuite/ext/pb_ds/example/hash_shift_mask.cc: Likewise.
927 * testsuite/ext/pb_ds/example/priority_queue_dijkstra.cc:
928 Likewise.
929 * testsuite/ext/pb_ds/example/ranged_hash.cc: Likewise.
930 * testsuite/ext/pb_ds/example/store_hash.cc: Likewise.
931
932 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
933
934 * src/c++11/functexcept.cc (__throw_out_of_range_fmt): Do not
935 expand the format string for freestanding, or non-vebose, or if
936 we're just going to abort anyway.
937 * src/c++11/snprintf_lite.cc: Remove unused header and
938 declaration.
939
940 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
941
942 * include/std/variant (__do_visit): Use variant_npos instead of
943 literal -1 that requires a narrowing conversion.
944
945 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
946
947 PR libstdc++/99327
948 * src/filesystem/ops-common.h (__unsupported): New function to
949 return a suitable error code for missing functionality.
950 (posix::off_t): New typedef.
951 (posix::*): Set errno to ENOSYS instead of ENOTSUP for no-op
952 fallback implementations.
953 (do_copy_file): Replace uses of errc::not_supported.
954 * src/c++17/fs_ops.cc (fs::copy, fs::copy_file, create_dir)
955 (fs::create_directory, fs::create_directory_symlink)
956 (fs::create_hard_link, fs::create_symlink, fs::current_path)
957 (fs::equivalent, do_stat, fs::file_size, fs::hard_link_count)
958 (fs::last_write_time, fs::permissions, fs::read_symlink):
959 Replace uses of errc::not_supported.
960 (fs::resize_file): Qualify off_t.
961 * src/filesystem/ops.cc (fs::copy, fs::copy_file, create_dir)
962 (fs::create_directory, fs::create_directory_symlink)
963 (fs::create_hard_link, fs::create_symlink, fs::current_path)
964 (fs::equivalent, do_stat, fs::file_size, fs::last_write_time)
965 (fs::permissions, fs::read_symlink, fs::system_complete):
966 Replace uses of errc::not_supported.
967 (fs::resize_file): Qualify off_t and enable unconditionally.
968 * testsuite/19_diagnostics/system_error/cons-1.cc: Likewise.
969
970 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
971
972 * src/filesystem/ops-common.h (last_error): New helper function.
973 (filesystem::do_space): Use last_error().
974 * src/c++17/fs_ops.cc (fs::absolute, fs::create_hard_link)
975 (fs::equivalent, fs::remove, fs::temp_directory_path): Use
976 last_error().
977 * src/filesystem/ops.cc (fs::create_hard_link)
978 (fs::remove, fs::temp_directory_path): Likewise.
979
980 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
981
982 * include/std/type_traits (__conditional): New class template
983 for internal uses of std::conditional.
984 (__conditional_t): New alias template to replace conditional_t.
985 (__and_, __or_, __result_of_memfun, __result_of_memobj): Use
986 __conditional_t instead of conditional::type.
987 * include/bits/atomic_base.h (__atomic_impl::_Diff): Likewise.
988 * include/bits/hashtable.h (_Hashtable): Likewise.
989 * include/bits/hashtable_policy.h (_Node_iterator, _Insert_base)
990 (_Local_iterator): Likewise. Replace typedefs with
991 using-declarations.
992 * include/bits/move.h (move_if_noexcept): Use __conditional_t.
993 * include/bits/parse_numbers.h (_Select_int_base): Likewise.
994 * include/bits/ptr_traits.h (__make_not_void): Likewise.
995 * include/bits/ranges_algobase.h (__copy_or_move_backward)
996 (__copy_or_move): Likewise.
997 * include/bits/ranges_base.h (borrowed_iterator_t): Likewise.
998 * include/bits/ranges_util.h (borrowed_subrange_t): Likewise.
999 * include/bits/regex_compiler.h (_BracketMatcher): Use
1000 __conditional_t. Replace typedefs with using-declarations.
1001 * include/bits/shared_ptr_base.h (__shared_count): Use
1002 __conditional_t.
1003 * include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
1004 Likewise.
1005 * include/bits/stl_iterator.h (__detail::__clamp_iter_cat)
1006 (reverse_iterator::iterator_concept)
1007 (__make_move_if_noexcept_iterator)
1008 (iterator_traits<common_iterator<_It, _Sent>>)
1009 (iterator_traits<counted_iterator<_It>>): Likewise.
1010 * include/bits/stl_pair.h (_PCC, pair::operator=): Likewise.
1011 * include/bits/stl_tree.h (_Rb_tree::insert_return_type)
1012 (_Rb_tree::_M_clone_node): Likewise.
1013 * include/bits/unique_ptr.h (unique_ptr(unique_ptr<U,E>&&)):
1014 Likewise.
1015 * include/bits/uses_allocator.h (__uses_alloc): Likewise.
1016 (__is_uses_allocator_predicate): Likewise.
1017 * include/debug/functions.h (__foreign_iterator_aux2): Likewise.
1018 * include/experimental/any (any::_Manager, __any_caster):
1019 Likewise.
1020 * include/experimental/executor (async_completion): Likewise.
1021 * include/experimental/functional (__boyer_moore_base_t):
1022 Likewise.
1023 * include/std/any (any::_Manager): Likewise.
1024 * include/std/functional (__boyer_moore_base_t): Likewise.
1025 * include/std/ranges (borrowed_iterator_t)
1026 (borrowed_subrange_t, __detail::__maybe_present_t)
1027 (__detail::__maybe_const_t, split_view): Likewise.
1028 * include/std/tuple (__empty_not_final, tuple::operator=):
1029 Likewise.
1030 * include/std/variant (__detail::__variant::__get_t): Likewise.
1031
1032 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1033
1034 PR libstdc++/78113
1035 * include/std/variant (__do_visit): Use a switch when we have a
1036 single variant with a small number of alternatives.
1037
1038 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1039
1040 PR libstdc++/90943
1041 * include/std/variant (__cpp_lib_variant): Update value.
1042 (__detail::__variant::__as): New helpers implementing the
1043 as-variant exposition-only function templates.
1044 (visit, visit<R>): Use __as to upcast the variant parameters.
1045 * include/std/version (__cpp_lib_variant): Update value.
1046 * testsuite/20_util/variant/visit_inherited.cc: New test.
1047
1048 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1049
1050 * include/bits/stl_iterator.h (__normal_iterator): Simplify
1051 converting constructor and do not require _Container::pointer.
1052
1053 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1054
1055 * include/bits/cow_string.h [_GLIBCXX_FULLY_DYNAMIC_STRING]
1056 (basic_string(basic_string&&)): Add noexcept and avoid
1057 allocation, by sharing rep with the rvalue string.
1058
1059 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1060
1061 * include/bits/stl_iterator.h (common_iterator::__arrow_proxy)
1062 (common_iterator::__postfix_proxy): Add noexcept.
1063
1064 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1065
1066 PR libstdc++/94418
1067 * include/bits/stl_iterator.h (reverse_iterator): Use
1068 conditional noexcept on constructors and assignment operators.
1069 * testsuite/24_iterators/reverse_iterator/noexcept.cc: New test.
1070
1071 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1072
1073 PR libstdc++/100153
1074 * include/bits/vector.tcc (vector<bool>::_M_shrink_to_fit()):
1075 When size() is zero just deallocate and reset.
1076
1077 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1078
1079 PR libstdc++/96733
1080 * include/bits/stl_algo.h (clamp): Use std::min and std::max.
1081
1082 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1083
1084 * include/bits/regex.h (basic_regex::multiline): Define for
1085 non-strict C++11 and C++14 modes.
1086 * include/bits/regex_constants.h (regex_constants::multiline):
1087 Add _GLIBCXX_RESOLVE_LIB_DEFECTS comment.
1088
1089 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1090
1091 * testsuite/25_algorithms/is_permutation/2.cc: Include <iterator>.
1092
1093 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1094
1095 * include/bits/stream_iterator.h (istream_iterator): Add
1096 noexcept to constructors and non-throwing member functions and
1097 friend functions.
1098 (ostream_iterator): Likewise.
1099
1100 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1101
1102 * include/bits/boost_concept_check.h (_Is_vector_bool_iterator):
1103 New trait to identify vector<bool> iterators, including debug
1104 ones.
1105 (_ForwardIteratorReferenceConcept): Add default template
1106 argument using _Is_vector_bool_iterator and use it in partial
1107 specialization for the vector<bool> cases.
1108 (_Mutable_ForwardIteratorReferenceConcept): Likewise.
1109 * testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error
1110 line number.
1111
1112 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
1113
1114 * include/bits/list.tcc (list::merge): Remove call to size() and
1115 try-catch block. Use _Finalize_merge instead.
1116 * include/bits/stl_list.h (list::_Finalize_merge): New
1117 scope guard type to update _M_size members after a merge.
1118
1119 2021-09-30 Jonathan Wakely <jwakely@redhat.com>
1120
1121 * include/bits/regex.h (basic_regex::multiline): Fix #if
1122 condition.
1123
1124 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
1125
1126 * include/bits/regex.h (basic_regex::multiline): Define constant
1127 for C++17.
1128 * include/bits/regex_constants.h (regex_constants::multiline):
1129 Define constant for C++17.
1130 (regex_constants::__multiline): Define duplicate constant for
1131 internal use in C++11 and C++14.
1132 * include/bits/regex_executor.h (_Executor::_M_match_multiline()):
1133 New member function.
1134 (_Executor::_M_is_line_terminator(_CharT)): New member function.
1135 (_Executor::_M_at_begin(), _Executor::_M_at_end()): Use new
1136 member functions to support multiline matches.
1137 * testsuite/28_regex/algorithms/regex_match/multiline.cc: New test.
1138
1139 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
1140
1141 * include/bits/regex_compiler.h (_Compiler::_S_validate): New
1142 function.
1143 * include/bits/regex_compiler.tcc (_Compiler::_Compiler): Use
1144 _S_validate to check flags.
1145 * include/bits/regex_error.h (_S_grammar): New error code for
1146 internal use.
1147 * testsuite/28_regex/basic_regex/ctors/grammar.cc: New test.
1148
1149 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
1150
1151 PR libstdc++/84110
1152 * include/bits/regex_error.h (regex_constants::_S_null): New
1153 error code for internal use.
1154 * include/bits/regex_scanner.tcc (_Scanner::_M_scan_normal()):
1155 Check for null character.
1156 * testsuite/28_regex/basic_regex/84110.cc: New test.
1157
1158 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
1159
1160 * include/bits/regex.h (__detail::__is_contiguous_iter): Move
1161 here from <bits/regex_compiler.h>.
1162 (basic_regex::_M_compile): New function to compile an NFA from
1163 a regular expression string.
1164 (basic_regex::basic_regex): Use _M_compile instead of delegating
1165 to other constructors.
1166 (basic_regex::operator=(const basic_regex&)): Define as
1167 defaulted.
1168 (basic_regex::operator=(initializer_list<C>)): Use _M_compile.
1169 (basic_regex::assign(const basic_regex&)): Use copy assignment.
1170 (basic_regex::assign(basic_regex&&)): Use move assignment.
1171 (basic_regex::assign(const C*, flag_type)): Use _M_compile
1172 instead of constructing a temporary string.
1173 (basic_regex::assign(const C*, size_t, flag_type)): Likewise.
1174 (basic_regex::assign(const basic_string<C,T,A>&, flag_type)):
1175 Use _M_compile instead of constructing a temporary basic_regex.
1176 (basic_regex::assign(InputIter, InputIter, flag_type)): Avoid
1177 constructing a temporary string for contiguous iterators of the
1178 right value type.
1179 * include/bits/regex_compiler.h (__is_contiguous_iter): Move to
1180 <bits/regex.h>.
1181 (__enable_if_contiguous_iter, __disable_if_contiguous_iter)
1182 (__compile_nfa): Remove.
1183 * testsuite/28_regex/basic_regex/assign/exception_safety.cc: New
1184 test.
1185 * testsuite/28_regex/basic_regex/ctors/char/other.cc: New test.
1186
1187 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1188
1189 * include/bits/atomic_timed_wait.h (__platform_wait_until_impl):
1190 Return false for ETIMEDOUT and true otherwise.
1191
1192 2021-09-28 François Dumont <fdumont@gcc.gnu.org>
1193
1194 * testsuite/20_util/default_delete/48631_neg.cc: Adapt dg-prune-output message
1195 to also match message with '__8' in it.
1196
1197 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1198
1199 * include/bits/regex_automaton.h (_NFA_base::_SizeT): Remove.
1200 * include/bits/regex_compiler.h (_Compiler::_IterT): Remove.
1201 * include/bits/regex_compiler.tcc: Likewise.
1202 * include/bits/regex_scanner.h (_Scanner::_IterT): Remove.
1203 * include/bits/regex_scanner.tcc: Likewise.
1204
1205 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1206
1207 * include/bits/regex_compiler.tcc: Add line break in empty while
1208 statement.
1209 * include/bits/regex_executor.tcc: Avoid unused parameter
1210 warning.
1211
1212 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1213
1214 * include/bits/regex.h (basic_regex, swap): Add noexcept to
1215 non-throwing functions.
1216 * include/bits/regex_automaton.h (_State_base, _State)
1217 (_NFA_base): Likewise.
1218 * include/bits/regex_compiler.h (_Compiler): Likewise.
1219 * include/bits/regex_error.h (regex_error::code()): Likewise.
1220 * include/bits/regex_scanner.h (_Scanner): Likewise.
1221
1222 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1223
1224 * include/bits/atomic_wait.h (_GLIBCXX_HAVE_PLATFORM_WAIT):
1225 Define before first attempt to check it.
1226
1227 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1228
1229 * testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1.cc:
1230 Do not check non-default constructible sequences when
1231 _GLIBCXX_CONCEPT_CHECKS is defined.
1232 * testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1_c++98.cc:
1233 Likewise.
1234 * testsuite/23_containers/queue/requirements/explicit_instantiation/1.cc:
1235 Likewise.
1236 * testsuite/23_containers/queue/requirements/explicit_instantiation/1_c++98.cc:
1237 Likewise.
1238 * testsuite/23_containers/stack/requirements/explicit_instantiation/1.cc:
1239 Likewise.
1240 * testsuite/23_containers/stack/requirements/explicit_instantiation/1_c++98.cc:
1241 Likewise.
1242
1243 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1244
1245 * testsuite/23_containers/deque/requirements/explicit_instantiation/3.cc:
1246 Do not test implicit allocator rebinding when _GLIBCXX_CONCEPT_CHECKS
1247 is defined.
1248 * testsuite/23_containers/forward_list/requirements/explicit_instantiation/3.cc:
1249 Likewise.
1250 * testsuite/23_containers/list/requirements/explicit_instantiation/3.cc:
1251 Likewise.
1252 * testsuite/23_containers/list/requirements/explicit_instantiation/5.cc:
1253 Likewise.
1254 * testsuite/23_containers/map/requirements/explicit_instantiation/3.cc:
1255 Likewise.
1256 * testsuite/23_containers/map/requirements/explicit_instantiation/5.cc:
1257 Likewise.
1258 * testsuite/23_containers/multimap/requirements/explicit_instantiation/3.cc:
1259 Likewise.
1260 * testsuite/23_containers/multimap/requirements/explicit_instantiation/5.cc:
1261 Likewise.
1262 * testsuite/23_containers/multiset/requirements/explicit_instantiation/3.cc:
1263 Likewise.
1264 * testsuite/23_containers/multiset/requirements/explicit_instantiation/5.cc:
1265 Likewise.
1266 * testsuite/23_containers/set/requirements/explicit_instantiation/3.cc:
1267 Likewise.
1268 * testsuite/23_containers/set/requirements/explicit_instantiation/5.cc:
1269 Likewise.
1270 * testsuite/23_containers/unordered_map/requirements/explicit_instantiation/3.cc:
1271 Likewise.
1272 * testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/3.cc:
1273 Likewise.
1274 * testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/3.cc:
1275 Likewise.
1276 * testsuite/23_containers/unordered_set/requirements/explicit_instantiation/3.cc:
1277 Likewise.
1278 * testsuite/23_containers/vector/ext_pointer/explicit_instantiation/3.cc:
1279 Likewise.
1280 * testsuite/23_containers/vector/requirements/explicit_instantiation/3.cc:
1281 Likewise.
1282
1283 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1284
1285 * include/bits/boost_concept_check.h (_ForwardIteratorConcept)
1286 (_BidirectionalIteratorConcept, _RandomAccessIteratorConcept):
1287 Check result types of iterator operations.
1288 (_Mutable_ForwardIteratorConcept): Check that iterator's
1289 reference type is a reference to its value type.
1290 (_Mutable_BidirectionalIteratorConcept): Do not require the
1291 value type to be assignable.
1292 (_Mutable_RandomAccessIteratorConcept): Likewise.
1293 * testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error
1294 line number.
1295
1296 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1297
1298 * testsuite/25_algorithms/copy/34595.cc: Add missing operation
1299 for type used as an iterator.
1300 * testsuite/25_algorithms/unique_copy/check_type.cc: Likewise.
1301
1302 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1303
1304 * testsuite/20_util/is_nothrow_swappable/value.h: Use custom
1305 comparison function for priority_queue of type with no
1306 relational operators.
1307 * testsuite/20_util/is_swappable/value.h: Likewise.
1308 * testsuite/24_iterators/output/concept.cc: Add operator< to
1309 type used in set.
1310
1311 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1312
1313 * include/bits/boost_concept_check.h (_OutputIteratorConcept):
1314 Use a function to preserve value category of the type.
1315 * include/bits/stl_algobase.h (copy, move, fill_n): Use a
1316 reference as the second argument for _OutputIteratorConcept.
1317 (copy_backward, move_backward): Use _OutputIteratorConcept
1318 instead of _ConvertibleConcept.
1319
1320 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1321
1322 * include/bits/stl_iterator.h (pointer_traits): Define partial
1323 specialization for __normal_iterator.
1324 * testsuite/24_iterators/normal_iterator/to_address.cc: New test.
1325
1326 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1327
1328 * include/bits/move.h (forward(remove_reference_t<T>&&)):
1329 Improve text of static_assert.
1330 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
1331 * testsuite/20_util/forward/f_neg.cc: Likewise.
1332
1333 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
1334
1335 PR libstdc++/102499
1336 * include/bits/fs_path.h (path::begin, path::end): Add noexcept
1337 to declarations, to match definitions.
1338
1339 2021-09-24 Jonathan Wakely <jwakely@redhat.com>
1340
1341 * include/bits/range_access.h (cbegin, cend): Remove redundant
1342 'inline' specifier.
1343
1344 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
1345
1346 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
1347 Remove dg-error lines for C++20-only errors.
1348
1349 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
1350
1351 * testsuite/19_diagnostics/headers/system_error/93151.cc:
1352 Disable PCH.
1353
1354 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
1355
1356 * src/c++11/system_error.cc (system_error_category) [_WIN32]:
1357 Map Windows error codes to generic POSIX error numbers. Use
1358 FormatMessage instead of strerror.
1359 * testsuite/19_diagnostics/error_category/system_category.cc:
1360 Adjust for new behaviour on Windows.
1361
1362 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
1363
1364 * src/c++11/system_error.cc (generic_error_category): Define
1365 class and virtual functions as 'final'.
1366 (generic_error_category::equivalent(int, const error_condition&)):
1367 Override.
1368 (system_error_category): Define class and virtual functions as
1369 'final'.
1370 (system_error_category::equivalent(int, const error_condition&)):
1371 Override.
1372 (generic_category_instance, system_category_instance): Use
1373 constinit union to make the objects immortal.
1374
1375 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
1376
1377 PR libstdc++/102425
1378 * src/c++11/system_error.cc
1379 (system_error_category::default_error_condition): Add 0 to
1380 switch.
1381 * testsuite/19_diagnostics/error_category/102425.cc: New test.
1382
1383 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
1384
1385 * include/bits/fs_path.h (path::iterator): Add noexcept to all
1386 member functions and friend functions.
1387 (distance): Add noexcept.
1388 (advance): Add noexcept and inline.
1389 * include/experimental/bits/fs_path.h (path::iterator):
1390 Add noexcept to all member functions.
1391
1392 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
1393
1394 PR libstdc++/102270
1395 * include/std/tuple (_Tuple_impl): Add constexpr to constructor
1396 missed in previous patch.
1397 * testsuite/20_util/tuple/cons/102270.C: Moved to...
1398 * testsuite/20_util/tuple/cons/102270.cc: ...here.
1399 * testsuite/util/testsuite_allocator.h (SimpleAllocator): Add
1400 constexpr to constructor so it can be used for C++20 tests.
1401
1402 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
1403
1404 * testsuite/26_numerics/valarray/dr630-3.C: Moved to...
1405 * testsuite/26_numerics/valarray/dr630-3.cc: ...here.
1406 * testsuite/27_io/basic_iostream/cons/16251.C: Moved to...
1407 * testsuite/27_io/basic_iostream/cons/16251.cc: ...here.
1408
1409 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1410
1411 * src/Makefile.am (stamp-debug): Add all Makefiles as
1412 prerequisites.
1413 * src/Makefile.in: Regenerate.
1414
1415 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1416
1417 * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Increase
1418 timeout factor to 3.
1419 * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
1420
1421 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1422
1423 * doc/xml/manual/using.xml: Generalize to apply to more than
1424 just -std=c++11.
1425 * doc/html/manual/using_macros.html: Regenerate.
1426
1427 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1428
1429 * include/std/optional (nullptr_t): Make constructor noexcept.
1430
1431 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1432
1433 * include/bits/fs_path.h (advance): Remove non-deducible
1434 template parameter.
1435
1436 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1437
1438 PR libstdc++/102270
1439 * include/std/tuple (_Head_base, _Tuple_impl): Add
1440 _GLIBCXX20_CONSTEXPR to allocator-extended constructors.
1441 (tuple<>::swap(tuple&)): Add _GLIBCXX20_CONSTEXPR.
1442 * testsuite/20_util/tuple/cons/102270.C: New test.
1443
1444 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1445
1446 PR libstdc++/102280
1447 * include/std/span (span(Range&&)): Add constraint to deduction
1448 guide.
1449
1450 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1451
1452 * src/c++98/Makefile.am: Use CXXCOMPILE not LTCXXCOMPILE.
1453 * src/c++98/Makefile.in: Regenerate.
1454
1455 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1456
1457 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
1458 (to_string): Add noexcept if the type width is 32 bits or less.
1459
1460 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
1461
1462 * include/bits/unique_ptr.h (__uniq_ptr_impl::_M_ptr)
1463 (__uniq_ptr_impl::_M_deleter): Add noexcept.
1464
1465 2021-09-16 Thomas Rodgers <rodgert@twrodgers.com>
1466
1467 PR libstdc++/101761
1468 * testsuite/29_atomics/atomic_ref/wait_notify.cc (test): Use
1469 va and vb as arguments to wait/notify, remove unused bb local.
1470
1471 2021-09-15 Hugo Beauzée-Luyssen <hugo@beauzee.fr>
1472
1473 * crossconfig.m4: Check for TLS support on mingw.
1474 * configure: Regenerate.
1475
1476 2021-09-13 Jason Merrill <jason@redhat.com>
1477
1478 * include/std/version: Define __cpp_lib_hardware_interference_size.
1479 * libsupc++/new: Define hardware interference size variables.
1480
1481 2021-09-10 Jonathan Wakely <jwakely@redhat.com>
1482
1483 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
1484 Fix invalid hostname to only match the .invalid TLD.
1485
1486 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
1487
1488 * include/bits/atomic_base.h (__atomic_base<P*>::compare_exchange_weak):
1489 Add new functions.
1490 * include/std/atomic (atomic<T*>::compare_exchange_weak): Use
1491 it.
1492
1493 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
1494
1495 * include/std/atomic: Tweak whitespace.
1496
1497 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
1498
1499 PR c++/102177
1500 * include/bits/atomic_base.h (__is_valid_cmpexch_failure_order):
1501 New function to check if a memory order is valid for the failure
1502 case of compare exchange operations.
1503 (__atomic_base<I>::compare_exchange_weak): Simplify assertions
1504 by using __is_valid_cmpexch_failure_order.
1505 (__atomic_base<I>::compare_exchange_strong): Likewise.
1506 (__atomic_base<P*>::compare_exchange_weak): Likewise.
1507 (__atomic_base<P*>::compare_exchange_strong): Likewise.
1508 (__atomic_impl::compare_exchange_weak): Add assertion.
1509 (__atomic_impl::compare_exchange_strong): Likewise.
1510 * include/std/atomic (atomic::compare_exchange_weak): Likewise.
1511 (atomic::compare_exchange_strong): Likewise.
1512
1513 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
1514
1515 * include/std/functional (invoke_r): Define.
1516 * include/std/version (__cpp_lib_invoke_r): Define.
1517 * testsuite/20_util/function_objects/invoke/version.cc: Check
1518 for __cpp_lib_invoke_r as well as __cpp_lib_invoke.
1519 * testsuite/20_util/function_objects/invoke/4.cc: New test.
1520
1521 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
1522
1523 PR libstdc++/98421
1524 * include/std/span (span(Iter, size_type), span(Iter, Iter)):
1525 Add valid range checks.
1526 * testsuite/23_containers/span/cons_1_assert_neg.cc: New test.
1527 * testsuite/23_containers/span/cons_2_assert_neg.cc: New test.
1528
1529 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
1530
1531 * configure.ac: Fix checks for F_GETFL, F_SETFL and O_NONBLOCK.
1532 * configure: Regenerate.
1533
1534 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
1535
1536 * src/c++11/system_error.cc (error_category::~error_category()):
1537 Remove noexcept-specifier.
1538 (system_error::~system_error()): Likewise.
1539 * testsuite/19_diagnostics/error_category/noexcept.cc: New test.
1540 * testsuite/19_diagnostics/system_error/noexcept.cc: New test.
1541
1542 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
1543
1544 PR libstdc++/102074
1545 * include/bits/atomic_timed_wait.h (__timed_waiter_pool)
1546 [!_GLIBCXX_HAVE_PLATFORM_TIMED_WAIT]: Add missing return.
1547
1548 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
1549
1550 * include/experimental/internet (__make_resolver_error_code):
1551 Handle EAI_SYSTEM errors.
1552 (basic_resolver_results): Use __make_resolver_error_code. Use
1553 Glibc NI_MAXHOST and NI_MAXSERV values for buffer sizes.
1554
1555 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
1556
1557 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
1558 Try other service if "http" fails.
1559
1560 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
1561
1562 * testsuite/17_intro/names.cc: Undefine some more names used
1563 by Solaris system headers.
1564
1565 2021-08-30 Jason Merrill <jason@redhat.com>
1566
1567 PR c++/96286
1568 * testsuite/30_threads/promise/requirements/lwg3466.cc:
1569 Remove dg-prune-outputs.
1570
1571 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
1572
1573 * include/bits/alloc_traits.h (allocator_traits): Add explicit
1574 specialization for allocator<void>. Improve doxygen comments.
1575 * include/bits/allocator.h (allocator<void>): Restore for the
1576 versioned namespace.
1577 (allocator<void>::construct, allocator<void>::destroy): Remove.
1578 * include/ext/extptr_allocator.h (_Extptr_allocator<void>):
1579 Add default constructor and converting constructor.
1580
1581 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
1582
1583 * include/bits/stl_uninitialized.h: Fix typo in comment.
1584
1585 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
1586
1587 PR libstdc++/99876
1588 * src/c++17/fs_ops.cc (fs::absolute): Call non-throwing form,
1589 to avoid unnecessary current_path() call.
1590
1591 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
1592
1593 * include/bits/std_function.h (function::function(F&&)): Give
1594 name to defaulted template parameter, to improve diagnostics.
1595 Use markdown for more doxygen comments.
1596
1597 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
1598
1599 * include/bits/std_function.h (function): Adjust doxygen
1600 comments.
1601 * include/bits/unique_ptr.h (make_unique_for_overwrite):
1602 Change parameter name to match doxygen comment.
1603
1604 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
1605
1606 * include/bits/std_function.h (_function_base::_Base_manager):
1607 Replace _M_init_functor with a function template using a
1608 forwarding reference, and a pair of _M_create function
1609 templates. Reuse _M_create for the clone operation.
1610 (function::_Decay_t): New alias template.
1611 (function::_Callable): Simplify by using _Decay.
1612 (function::function(F)): Change parameter to forwarding
1613 reference, as per LWG 2447. Add noexcept-specifier. Simplify
1614 constraints.
1615 (function::operator=(F&&)): Add noexcept-specifier.
1616 * testsuite/20_util/function/cons/lwg2774.cc: New test.
1617 * testsuite/20_util/function/cons/noexcept.cc: New test.
1618
1619 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
1620
1621 * include/bits/std_function.h (function::function(F)): Add
1622 static assertions to check constructibility requirements.
1623
1624 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
1625
1626 PR libstdc++/100285
1627 * configure.ac: Check for O_NONBLOCK.
1628 * configure: Regenerate.
1629 * include/experimental/internet: Include <ws2tcpip.h> for
1630 Windows. Use preprocessor conditions around more constants.
1631 * include/experimental/socket: Use preprocessor conditions
1632 around more constants.
1633 * testsuite/experimental/net/internet/resolver/base.cc: Only use
1634 constants when the corresponding C macro is defined.
1635 * testsuite/experimental/net/socket/basic_socket.cc: Likewise.
1636 * testsuite/experimental/net/socket/socket_base.cc: Likewise.
1637 Make preprocessor checks more fine-grained.
1638
1639 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
1640
1641 * testsuite/17_intro/names.cc: Check 'sz'.
1642
1643 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
1644
1645 * testsuite/17_intro/names.cc: Adjust for Windows.
1646
1647 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
1648
1649 * include/std/valarray: Uglify 'func' parameters.
1650 * testsuite/17_intro/names.cc: Add 'func' to checks.
1651
1652 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
1653
1654 PR libstdc++/102064
1655 * include/bits/stl_uninitialized.h (_GLIBCXX_USE_ASSIGN_FOR_INIT):
1656 Define macro to check conditions for optimizing trivial cases.
1657 (__check_constructible): New function to do static assert.
1658 (uninitialized_copy, uninitialized_fill, uninitialized_fill_n):
1659 Use new macro.
1660 * testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc:
1661 Adjust dg-error pattern.
1662 * testsuite/23_containers/vector/cons/89164.cc: Likewise. Add
1663 C++17-specific checks from 89164_c++17.cc.
1664 * testsuite/23_containers/vector/cons/89164_c++17.cc: Removed.
1665 * testsuite/20_util/specialized_algorithms/uninitialized_copy/102064.cc:
1666 New test.
1667 * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/102064.cc:
1668 New test.
1669 * testsuite/20_util/specialized_algorithms/uninitialized_fill/102064.cc:
1670 New test.
1671 * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/102064.cc:
1672 New test.
1673
1674 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
1675
1676 PR libstdc++/102048
1677 * include/ext/rope (rope::erase(size_type)): Remove broken
1678 function.
1679
1680 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
1681
1682 * doc/xml/manual/status_cxx2020.xml: Update table.
1683 * doc/html/manual/status.html: Regenerate.
1684
1685 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
1686
1687 * include/std/type_traits (is_layout_compatible): Define.
1688 (is_corresponding_member): Define.
1689 * include/std/version (__cpp_lib_is_layout_compatible): Define.
1690 * testsuite/20_util/is_layout_compatible/is_corresponding_member.cc:
1691 New test.
1692 * testsuite/20_util/is_layout_compatible/value.cc: New test.
1693 * testsuite/20_util/is_layout_compatible/version.cc: New test.
1694 * testsuite/20_util/is_pointer_interconvertible/with_class.cc:
1695 New test.
1696 * testsuite/23_containers/span/layout_compat.cc: Do not use real
1697 std::is_layout_compatible trait if available.
1698
1699 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
1700
1701 * src/c++11/cxx11-shim_facets.cc: Fix mismatched class-key in
1702 explicit instantiation definitions.
1703
1704 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
1705
1706 * include/std/ranges (basic_istream_view): Add default template
1707 argument.
1708 * testsuite/std/ranges/istream_view.cc: Check it.
1709
1710 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
1711
1712 * libsupc++/dyncast.cc (__dynamic_cast): Add __builtin_expect to
1713 precondition check.
1714
1715 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
1716
1717 PR libstdc++/90787
1718 * testsuite/util/testsuite_fs.h (permissions_are_testable):
1719 Define as inline.
1720
1721 2021-08-20 Jonathan Wakely <jwakely@redhat.com>
1722
1723 PR libstdc++/90787
1724 * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
1725 Use new __gnu_test::permissions_are_testable() function.
1726 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
1727 Likewise.
1728 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
1729 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
1730 * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
1731 * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
1732 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
1733 * testsuite/27_io/filesystem/operations/symlink_status.cc:
1734 Likewise.
1735 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
1736 Likewise.
1737 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
1738 Likewise.
1739 * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc:
1740 Likewise.
1741 * testsuite/experimental/filesystem/operations/exists.cc:
1742 Likewise.
1743 * testsuite/experimental/filesystem/operations/is_empty.cc:
1744 Likewise.
1745 * testsuite/experimental/filesystem/operations/remove.cc:
1746 Likewise.
1747 * testsuite/experimental/filesystem/operations/remove_all.cc:
1748 Likewise.
1749 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
1750 Likewise.
1751 * testsuite/util/testsuite_fs.h (__gnu_test::permissions_are_testable):
1752 New function to guess whether testing permissions will work.
1753
1754 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1755
1756 * doc/xml/manual/status_cxx2020.xml: Move row earlier in table.
1757 * doc/html/manual/status.html: Regenerate.
1758
1759 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1760
1761 * doc/doxygen/user.cfg.in: Update to Doxygen 1.9.2
1762
1763 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1764
1765 PR libstdc++/101965
1766 * include/std/charconv (__to_chars_i): Remove redundant check.
1767
1768 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1769
1770 PR libstdc++/101960
1771 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)): Use base
1772 class' move constructor. Define as defaulted for versioned
1773 namespace.
1774 * testsuite/20_util/tuple/cons/101960.cc: New test.
1775
1776 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1777
1778 PR libstdc++/100139
1779 * doc/xml/manual/status_cxx2020.xml: Add P1739R4 to status table.
1780 * doc/html/manual/status.html: Regenerate.
1781
1782 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1783
1784 * include/bits/shared_ptr.h: Add @since and @headerfile tags.
1785 * include/bits/unique_ptr.h: Add @headerfile tags.
1786
1787 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1788
1789 * src/filesystem/ops-common.h (filesystem::file_time): Improve
1790 overflow check by using system_clock::duration::max().
1791
1792 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1793
1794 * include/bits/stl_tree.h: Tweak whitespace.
1795
1796 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
1797
1798 * include/bits/unique_ptr.h (default_delete): Add @since tag.
1799 (unique_ptr, unique_ptr<T[]>): Likewise. Improve @brief.
1800 (make_unique, make_unique_for_overwrite): Likewise. Add @tparam,
1801 @param, and @returns.
1802 (_MakeUniq): Move to __detail namespace. Add alias template
1803 helpers.
1804
1805 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
1806
1807 * include/bits/stl_function.h: Improve doxygen comments.
1808
1809 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
1810
1811 * doc/doxygen/user.cfg.in (PREDEFINED): Enable doxygen
1812 processing for C++20 components and components that depend on
1813 compiler features.
1814 * include/bits/stl_algo.h (random_shuffle): Use @deprecated.
1815 * include/std/type_traits: Improve doxygen comments for C++20
1816 traits.
1817
1818 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
1819
1820 * include/ext/type_traits.h (__promote_2, __promote_3)
1821 (__promote_4): Redfine as alias templates using __promoted_t.
1822 * include/std/complex (__promote_2): Remove partial
1823 specializations for std::complex.
1824
1825 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
1826
1827 * include/bits/stl_algo.h (min(initializer_list<T>))
1828 (min(initializer_list<T>, Compare)): Call __min_element directly to
1829 avoid redundant debug checks for valid ranges.
1830 (max(initializer_list<T>), max(initializer_list<T>, Compare)):
1831 Likewise, for __max_element.
1832 (minmax(initializer_list<T>), minmax(initializer_list<T>, Compare)):
1833 Likewise, for __minmax_element.
1834
1835 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
1836
1837 * include/debug/deque (deque(size_type, const T&, const A&)):
1838 Prevent class template argument deduction and replace with a
1839 deduction guide.
1840 * include/debug/forward_list (forward_list(size_type, const T&, const A&)):
1841 Likewise.
1842 * include/debug/list (list(size_type, const T&, const A&)):
1843 Likewise.
1844 * include/debug/vector (vector(size_type, const T&, const A&)):
1845 Likewise.
1846
1847 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
1848
1849 * python/libstdcxx/v6/printers.py (StdBitReferencePrinter): Use
1850 'std::vector<bool>::reference' as type name, not _Bit_reference.
1851 (build_libstdcxx_dictionary): Register printers for vector<bool>
1852 types in debug mode too.
1853 * testsuite/libstdc++-prettyprinters/simple.cc: Adjust expected
1854 output for invalid _Bit_reference. Use vector<bool>::reference
1855 instead of _Bit_reference.
1856 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
1857
1858 2021-08-17 Thomas Schwinge <thomas@codesourcery.com>
1859
1860 * testsuite/lib/libstdc++.exp: Avoid illegal argument to verbose,
1861 continued.
1862
1863 2021-08-17 Luc Michel <lmichel@kalray.eu>
1864 Marc Poulhies <mpoulhies@kalrayinc.com>
1865
1866 * testsuite/lib/gdb-test.exp (gdb_version_check)
1867 (gdb_version_check_xmethods): Only check the GDB version for
1868 local native targets.
1869
1870 2021-08-17 Antony Polukhin <antoshkka@gmail.com>
1871 Jonathan Wakely <jwakely@redhat.com>
1872
1873 * include/bits/random.tcc (seed_seq::seed_seq): Reserve capacity
1874 if distance is O(1).
1875 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1876 line number.
1877
1878 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
1879
1880 * testsuite/26_numerics/random/seed_seq/cons/range.cc: Check
1881 construction from input iterators.
1882
1883 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
1884
1885 * python/libstdcxx/v6/printers.py (StdErrorCatPrinter): Remove.
1886
1887 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
1888
1889 PR libstdc++/101923
1890 * include/bits/std_function.h (function(function&&)): Check for
1891 non-empty parameter before doing any work.
1892
1893 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
1894
1895 * include/bits/cow_string.h (basic_string::contains): Do not
1896 define for -std=gnu++20.
1897
1898 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
1899
1900 * include/bits/ranges_util.h (__not_same_as): Rename to
1901 __different_from.
1902 * include/std/ranges (__not_same_as): Likewise.
1903
1904 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
1905
1906 * include/std/utility (exchange): Add noexcept-specifier.
1907 * testsuite/20_util/exchange/noexcept.cc: New test.
1908
1909 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
1910
1911 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Define.
1912 (build_libstdcxx_dictionary): Register printer for
1913 std::error_code and std::error_condition.
1914 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test it.
1915
1916 2021-08-16 Jonathan Wakely <jwakely@redhat.com>
1917
1918 PR libstdc++/101937
1919 * src/c++11/debug.cc (PrintContext::_M_indent): Replace with a
1920 static data member.
1921 (print_word): Use qualified-id to access it.
1922
1923 2021-08-16 Jonathan Wakely <jwakely@redhat.com>
1924
1925 * python/Makefile.am [GLIBCXX_BUILD_DEBUG] (install-data-local):
1926 Install another copy of the GDB hook.
1927 * python/Makefile.in: Regenerate.
1928
1929 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
1930
1931 PR libstdc++/101870
1932 * include/c_global/cmath (hypot): Use __promoted_t.
1933 (lerp): Add new overload accepting any arithmetic types.
1934 * include/ext/type_traits.h (__promoted_t): New alias template.
1935 * testsuite/26_numerics/lerp.cc: Moved to...
1936 * testsuite/26_numerics/lerp/1.cc: ...here.
1937 * testsuite/26_numerics/lerp/constexpr.cc: New test.
1938 * testsuite/26_numerics/lerp/version.cc: New test.
1939
1940 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
1941
1942 * testsuite/26_numerics/lerp.cc: Add header name to #error.
1943 * testsuite/26_numerics/midpoint/integral.cc: Likewise.
1944 * testsuite/26_numerics/midpoint/version.cc: New test.
1945
1946 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
1947
1948 * include/experimental/random (experimental::randint): Add
1949 nodiscard attribute.
1950
1951 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
1952
1953 * src/c++98/locale_init.cc: Require C++11.
1954 * src/c++98/localename.cc: Likewise.
1955 * src/c++98/misc-inst.cc: Require C++98.
1956
1957 2021-08-11 Jonathan Wakely <jwakely@redhat.com>
1958
1959 PR libstdc++/101866
1960 * testsuite/experimental/random/randint.cc: Loop and retry if
1961 reseed() produces the same sequence.
1962
1963 2021-08-11 Jonathan Wakely <jwakely@redhat.com>
1964
1965 * include/std/type_traits (__cpp_lib_is_pointer_interconvertible)
1966 (is_pointer_interconvertible_base_of_v)
1967 (is_pointer_interconvertible_base_of): Define for C++20.
1968 * include/std/version (__cpp_lib_is_pointer_interconvertible):
1969 Define.
1970 * testsuite/23_containers/span/layout_compat.cc: Use correct
1971 feature test macro for std::is_layout_compatible_v.
1972 * testsuite/20_util/is_pointer_interconvertible/value.cc: New test.
1973 * testsuite/20_util/is_pointer_interconvertible/version.cc: New test.
1974
1975 2021-08-09 Jonathan Wakely <jwakely@redhat.com>
1976
1977 * include/bits/regex.h (basic_regex::transform_primary): Use
1978 _GLIBCXX_STD_C::vector for local variable.
1979 * include/bits/regex.tcc (__regex_algo_impl): Use reference to
1980 _GLIBCXX_STD_C::vector base class of match_results.
1981 * include/bits/regex_automaton.tcc (_StateSeq:_M_clone): Use
1982 _GLIBCXX_STD_C::map and _GLIBCXX_STD_C::deque for local
1983 variables.
1984 * include/bits/regex_compiler.h (_BracketMatcher): Use
1985 _GLIBCXX_STD_C::vector for data members.
1986 * include/bits/regex_executor.h (_Executor): Likewise.
1987 * include/std/regex [_GLIBCXX_DEBUG]: Include <debug/vector>.
1988
1989 2021-08-09 François Dumont <fdumont@gcc.gnu.org>
1990
1991 * include/debug/safe_container.h
1992 (_Safe_container(_Safe_container&&, const _Alloc&, std::true_type)): New.
1993 (_Safe_container(_Safe_container&&, const _Alloc&, std::false_type)): New.
1994 (_Safe_container(_Safe_container&&, const _Alloc&)): Use latters.
1995
1996 2021-08-09 Jonathan Wakely <jwakely@redhat.com>
1997
1998 * testsuite/23_containers/unordered_map/cons/default.cc: Add
1999 equality comparison operators to allocator.
2000 * testsuite/23_containers/unordered_set/cons/default.cc:
2001 Likewise.
2002
2003 2021-08-08 François Dumont <fdumont@gcc.gnu.org>
2004
2005 * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Replace 'failed_assertion'
2006 dg-prune-output reason with 'builtin_unreachable'.
2007 * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc: Likewise.
2008 * testsuite/25_algorithms/equal/debug/constexpr_neg.cc: Likewise.
2009 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc: Likewise.
2010 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
2011 * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc: Likewise.
2012 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc: Likewise.
2013 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
2014 * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc: Likewise.
2015
2016 2021-08-08 Hans-Peter Nilsson <hp@bitrange.com>
2017
2018 * testsuite/std/ranges/iota/max_size_type.cc: Set
2019 dg-timeout-factor to 4.
2020
2021 2021-08-06 Jonathan Wakely <jwakely@redhat.com>
2022
2023 * libsupc++/compare (compare_three_way, strong_order)
2024 (weak_order, partial_order, compare_strong_order_fallback)
2025 (compare_weak_order_fallback, compare_partial_order_fallback):
2026 Move nodiscard attributes to correct location.
2027
2028 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
2029
2030 PR libstdc++/101782
2031 * include/bits/ranges_base.h (ranges::begin, ranges::end)
2032 (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
2033 (ranges::empty, ranges::data): Move attribute after the
2034 declarator-id instead of at the end of the declarator.
2035 * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator):
2036 Move attributes back to the start of the function declarator,
2037 but move the requires-clause to the end.
2038 (common_iterator): Move attribute after the declarator-id.
2039 * include/bits/stl_queue.h (queue): Remove ill-formed attributes
2040 from friend declaration that are not definitions.
2041 * include/std/ranges (views::all, views::filter)
2042 (views::transform, views::take, views::take_while,
2043 views::drop) (views::drop_while, views::join,
2044 views::lazy_split) (views::split, views::counted,
2045 views::common, views::reverse) (views::elements): Move
2046 attributes after the declarator-id.
2047
2048 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
2049
2050 * libsupc++/compare (partial_ordering, weak_ordering)
2051 (strong_ordering, is_eq, is_neq, is_lt, is_lteq, is_gt, is_gteq)
2052 (compare_three_way, strong_order, weak_order, partial_order)
2053 (compare_strong_order_fallback, compare_weak_order_fallback)
2054 (compare_partial_order_fallback, __detail::__synth3way): Add
2055 nodiscard attribute.
2056 * testsuite/18_support/comparisons/categories/zero_neg.cc: Add
2057 -Wno-unused-result to options.
2058
2059 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
2060
2061 PR libstdc++/101782
2062 * include/bits/ranges_base.h (ranges::begin, ranges::end)
2063 (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
2064 (ranges::empty, ranges::data): Move attribute to the end of
2065 the declarator.
2066 * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator)
2067 (common_iterator): Likewise for non-member operator functions.
2068 * include/std/ranges (views::all, views::filter)
2069 (views::transform, views::take, views::take_while, views::drop)
2070 (views::drop_while, views::join, views::lazy_split)
2071 (views::split, views::counted, views::common, views::reverse)
2072 (views::elements): Likewise.
2073 * testsuite/std/ranges/access/101782.cc: New test.
2074
2075 2021-08-04 Jonathan Wakely <jwakely@redhat.com>
2076
2077 * include/bits/forward_list.h: Add [[nodiscard]] to functions
2078 with no side-effects.
2079 * include/bits/stl_bvector.h: Likewise.
2080 * include/bits/stl_deque.h: Likewise.
2081 * include/bits/stl_list.h: Likewise.
2082 * include/bits/stl_queue.h: Likewise.
2083 * include/bits/stl_stack.h: Likewise.
2084 * include/bits/stl_vector.h: Likewise.
2085 * include/debug/deque: Likewise.
2086 * include/debug/forward_list: Likewise.
2087 * include/debug/list: Likewise.
2088 * include/debug/safe_iterator.h: Likewise.
2089 * include/debug/vector: Likewise.
2090 * include/std/array: Likewise.
2091 * testsuite/23_containers/array/creation/3_neg.cc: Use
2092 -Wno-unused-result.
2093 * testsuite/23_containers/array/debug/back1_neg.cc: Cast result
2094 to void.
2095 * testsuite/23_containers/array/debug/back2_neg.cc: Likewise.
2096 * testsuite/23_containers/array/debug/front1_neg.cc: Likewise.
2097 * testsuite/23_containers/array/debug/front2_neg.cc: Likewise.
2098 * testsuite/23_containers/array/debug/square_brackets_operator1_neg.cc:
2099 Likewise.
2100 * testsuite/23_containers/array/debug/square_brackets_operator2_neg.cc:
2101 Likewise.
2102 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
2103 Adjust dg-error line numbers.
2104 * testsuite/23_containers/deque/cons/clear_allocator.cc: Cast
2105 result to void.
2106 * testsuite/23_containers/deque/debug/invalidation/4.cc:
2107 Likewise.
2108 * testsuite/23_containers/deque/types/1.cc: Use
2109 -Wno-unused-result.
2110 * testsuite/23_containers/list/types/1.cc: Cast result to void.
2111 * testsuite/23_containers/priority_queue/members/7161.cc:
2112 Likewise.
2113 * testsuite/23_containers/queue/members/7157.cc: Likewise.
2114 * testsuite/23_containers/vector/59829.cc: Likewise.
2115 * testsuite/23_containers/vector/ext_pointer/types/1.cc:
2116 Likewise.
2117 * testsuite/23_containers/vector/ext_pointer/types/2.cc:
2118 Likewise.
2119 * testsuite/23_containers/vector/types/1.cc: Use
2120 -Wno-unused-result.
2121
2122 2021-08-04 Jonathan Wakely <jwakely@redhat.com>
2123
2124 * include/bits/iterator_concepts.h (iter_move): Add
2125 [[nodiscard]].
2126 * include/bits/range_access.h (begin, end, cbegin, cend)
2127 (rbegin, rend, crbegin, crend, size, data, ssize): Likewise.
2128 * include/bits/ranges_base.h (ranges::begin, ranges::end)
2129 (ranges::cbegin, ranges::cend, ranges::rbegin, ranges::rend)
2130 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
2131 (ranges::empty, ranges::data, ranges::cdata): Likewise.
2132 * include/bits/stl_iterator.h (reverse_iterator, __normal_iterator)
2133 (back_insert_iterator, front_insert_iterator, insert_iterator)
2134 (move_iterator, move_sentinel, common_iterator)
2135 (counted_iterator): Likewise.
2136 * include/bits/stl_iterator_base_funcs.h (distance, next, prev):
2137 Likewise.
2138 * include/bits/stream_iterator.h (istream_iterator)
2139 (ostream_iterartor): Likewise.
2140 * include/bits/streambuf_iterator.h (istreambuf_iterator)
2141 (ostreambuf_iterator): Likewise.
2142 * include/std/ranges (views::single, views::iota, views::all)
2143 (views::filter, views::transform, views::take, views::take_while)
2144 (views::drop, views::drop_while, views::join, views::lazy_split)
2145 (views::split, views::counted, views::common, views::reverse)
2146 (views::elements): Likewise.
2147 * testsuite/20_util/rel_ops.cc: Use -Wno-unused-result.
2148 * testsuite/24_iterators/move_iterator/greedy_ops.cc: Likewise.
2149 * testsuite/24_iterators/normal_iterator/greedy_ops.cc:
2150 Likewise.
2151 * testsuite/24_iterators/reverse_iterator/2.cc: Likewise.
2152 * testsuite/24_iterators/reverse_iterator/greedy_ops.cc:
2153 Likewise.
2154 * testsuite/21_strings/basic_string/range_access/char/1.cc:
2155 Cast result to void.
2156 * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
2157 Likewise.
2158 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
2159 Likewise.
2160 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
2161 Likewise.
2162 * testsuite/23_containers/array/range_access.cc: Likewise.
2163 * testsuite/23_containers/deque/range_access.cc: Likewise.
2164 * testsuite/23_containers/forward_list/range_access.cc:
2165 Likewise.
2166 * testsuite/23_containers/list/range_access.cc: Likewise.
2167 * testsuite/23_containers/map/range_access.cc: Likewise.
2168 * testsuite/23_containers/multimap/range_access.cc: Likewise.
2169 * testsuite/23_containers/multiset/range_access.cc: Likewise.
2170 * testsuite/23_containers/set/range_access.cc: Likewise.
2171 * testsuite/23_containers/unordered_map/range_access.cc:
2172 Likewise.
2173 * testsuite/23_containers/unordered_multimap/range_access.cc:
2174 Likewise.
2175 * testsuite/23_containers/unordered_multiset/range_access.cc:
2176 Likewise.
2177 * testsuite/23_containers/unordered_set/range_access.cc:
2178 Likewise.
2179 * testsuite/23_containers/vector/range_access.cc: Likewise.
2180 * testsuite/24_iterators/customization_points/iter_move.cc:
2181 Likewise.
2182 * testsuite/24_iterators/istream_iterator/sentinel.cc:
2183 Likewise.
2184 * testsuite/24_iterators/istreambuf_iterator/sentinel.cc:
2185 Likewise.
2186 * testsuite/24_iterators/move_iterator/dr2061.cc: Likewise.
2187 * testsuite/24_iterators/operations/prev_neg.cc: Likewise.
2188 * testsuite/24_iterators/ostreambuf_iterator/2.cc: Likewise.
2189 * testsuite/24_iterators/range_access/range_access.cc:
2190 Likewise.
2191 * testsuite/24_iterators/range_operations/100768.cc: Likewise.
2192 * testsuite/26_numerics/valarray/range_access2.cc: Likewise.
2193 * testsuite/28_regex/range_access.cc: Likewise.
2194 * testsuite/experimental/string_view/range_access/char/1.cc:
2195 Likewise.
2196 * testsuite/experimental/string_view/range_access/wchar_t/1.cc:
2197 Likewise.
2198 * testsuite/ext/vstring/range_access.cc: Likewise.
2199 * testsuite/std/ranges/adaptors/take.cc: Likewise.
2200 * testsuite/std/ranges/p2259.cc: Likewise.
2201
2202 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2203
2204 * include/bits/random.tcc (linear_congruential_engine): Do not
2205 define static constexpr members when they are implicitly inline.
2206 * include/std/ratio (ratio, __ratio_multiply, __ratio_divide)
2207 (__ratio_add, __ratio_subtract): Likewise.
2208 * include/std/type_traits (integral_constant): Likewise.
2209 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2210 line number.
2211
2212 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2213
2214 * testsuite/util/testsuite_common_types.h: Replace uses of
2215 tr1::unordered_map and tr1::unordered_set with their C++11
2216 equivalents.
2217 * testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust
2218 dg-error line number.
2219 * testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
2220 * testsuite/29_atomics/atomic_integral/cons/assign_neg.cc:
2221 Likewise.
2222 * testsuite/29_atomics/atomic_integral/cons/copy_neg.cc:
2223 Likewise.
2224 * testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc:
2225 Likewise.
2226 * testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc:
2227 Likewise.
2228 * testsuite/29_atomics/atomic_integral/operators/increment_neg.cc:
2229 Likewise.
2230
2231 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2232
2233 * include/std/memory_resource (polymorphic_allocator::delete_object):
2234 Call destructor directly instead of using destroy.
2235 (allocator_traits<polymorphic_allocator<T>>): Define partial
2236 specialization.
2237
2238 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2239
2240 * testsuite/20_util/function_objects/binders/3113.cc: Remove
2241 trailing whitespace.
2242 * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
2243 * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
2244 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
2245 Likewise.
2246 * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
2247 * testsuite/25_algorithms/headers/algorithm/synopsis.cc:
2248 Likewise.
2249 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
2250 Likewise.
2251 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
2252 Likewise.
2253
2254 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2255
2256 * doc/xml/manual/evolution.xml: Document deprecation.
2257 * doc/html/*: Regenerate.
2258 * include/bits/c++config (_GLIBCXX14_DEPRECATED): Define.
2259 (_GLIBCXX14_DEPRECATED_SUGGEST): Define.
2260 * include/bits/stl_algo.h (random_shuffle): Deprecate for C++14
2261 and later.
2262 * testsuite/25_algorithms/headers/algorithm/synopsis.cc: Adjust
2263 for C++11 and C++14 changes to std::random_shuffle and
2264 std::shuffle.
2265 * testsuite/25_algorithms/random_shuffle/1.cc: Add options to
2266 use deprecated algorithms.
2267 * testsuite/25_algorithms/random_shuffle/59603.cc: Likewise.
2268 * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise.
2269 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
2270 Likewise.
2271 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
2272 Likewise.
2273
2274 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2275
2276 * testsuite/23_containers/forward_list/operations/3.cc:
2277 Use lambda instead of std::bind2nd.
2278 * testsuite/20_util/function_objects/binders/3113.cc: Add
2279 options for testing deprecated features.
2280 * testsuite/20_util/pair/cons/99957.cc: Likewise.
2281 * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
2282 * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
2283 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
2284 Likewise.
2285 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
2286 * testsuite/20_util/shared_ptr/cons/auto_ptr.cc: Likewise.
2287 * testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc: Likewise.
2288 * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
2289 * testsuite/20_util/unique_ptr/cons/auto_ptr.cc: Likewise.
2290 * testsuite/20_util/unique_ptr/cons/auto_ptr_neg.cc: Likewise.
2291 * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
2292 Likewise.
2293 * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
2294 Likewise.
2295 * testsuite/lib/dg-options.exp (dg_add_options_using-deprecated):
2296 New proc.
2297
2298 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2299
2300 * include/bits/regex_executor.h (_State_info): Replace
2301 unique_ptr<bool[]> with array of bool.
2302 * include/bits/regex_executor.tcc: Likewise.
2303 * include/bits/regex_scanner.tcc: Replace std::strchr with
2304 __builtin_strchr.
2305 * include/std/regex: Replace standard headers with smaller
2306 internal ones.
2307 * testsuite/28_regex/traits/char/lookup_classname.cc: Include
2308 <string.h> for strlen.
2309 * testsuite/28_regex/traits/char/lookup_collatename.cc:
2310 Likewise.
2311
2312 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
2313
2314 * include/bits/locale_conv.h (__detail::_Scoped_ptr): Define new
2315 RAII class template.
2316 (wstring_convert, wbuffer_convert): Use __detail::_Scoped_ptr
2317 instead of unique_ptr.
2318
2319 2021-08-02 Patrick Palka <ppalka@redhat.com>
2320
2321 PR libstdc++/101599
2322 * include/bits/ranges_algo.h (__reverse_copy_fn::operator()):
2323 Add missing std::move in return statement.
2324 (__partition_copy_fn::operator()): Rename templtae parameter
2325 _O2 to _Out2. Uglify function parameters out_true and out_false.
2326 * include/bits/ranges_algobase.h (__copy_or_move): Add missing
2327 std::move to recursive call that unwraps a __normal_iterator
2328 output iterator.
2329 * testsuite/25_algorithms/copy/constrained.cc (test06): New test.
2330 * testsuite/25_algorithms/move/constrained.cc (test05): New test.
2331
2332 2021-08-02 Patrick Palka <ppalka@redhat.com>
2333
2334 PR libstdc++/101589
2335 * include/std/ranges (lazy_split_view::_InnerIter::base): Make
2336 the const& overload unconstrained and return a const reference
2337 as per LWG 3533. Make unconditionally noexcept.
2338 (elements_view::base): Revert accidental r12-569 change.
2339 (elements_view::_Iterator::base): Make the const& overload
2340 unconstrained and return a const reference as per LWG 3533.
2341 Make unconditionally noexcept.
2342
2343 2021-08-02 Patrick Palka <ppalka@redhat.com>
2344
2345 PR libstdc++/101483
2346 * include/std/ranges (join_view::_Iterator::_Iterator): Add
2347 missing std::move.
2348
2349 2021-08-02 Jonathan Wakely <jwakely@redhat.com>
2350
2351 PR libstdc++/101709
2352 * src/filesystem/ops-common.h (get_temp_directory_from_env):
2353 Add error_code parameter.
2354 * src/c++17/fs_ops.cc (fs::temp_directory_path): Pass error_code
2355 argument to get_temp_directory_from_env and check it.
2356 * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
2357
2358 2021-08-02 Jonathan Wakely <jwakely@redhat.com>
2359
2360 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
2361 Add dg-error for c++11_only target.
2362
2363 2021-07-30 Jonathan Wakely <jwakely@redhat.com>
2364
2365 PR libstdc++/65018
2366 * configure.ac: Check for secure_getenv.
2367 * config.h.in: Regenerate.
2368 * configure: Regenerate.
2369 * src/filesystem/ops-common.h (get_temp_directory_from_env): New
2370 helper function to obtain path from the environment.
2371 * src/c++17/fs_ops.cc (fs::temp_directory_path): Use new helper.
2372 * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
2373 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
2374 Print messages if test cannot be run.
2375 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
2376 Likewise. Fix incorrect condition. Use "TMP" to work with
2377 Windows as well as POSIX.
2378
2379 2021-07-29 Hans-Peter Nilsson <hp@bitrange.com>
2380
2381 * src/c++17/memory_resource.cc: Use __exchange instead
2382 of std::exchange.
2383
2384 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
2385
2386 * include/experimental/optional (__throw_bad_optional_access):
2387 Replace GNU attribute with C++11 attribute.
2388 (optional::value, optional::value_or): Use if statements
2389 instead of conditional expressions.
2390 * include/std/optional (__throw_bad_optional_access)
2391 (optional::value, optional::value_or): Likewise.
2392
2393 2021-07-27 Marek Polacek <polacek@redhat.com>
2394
2395 DR 1512
2396 PR c++/99701
2397 * testsuite/20_util/tuple/comparison_operators/overloaded.cc:
2398 Move a line...
2399 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
2400 ...here. New test.
2401
2402 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
2403
2404 * include/bits/cow_string.h: Consistently use tab for
2405 indentation.
2406
2407 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
2408
2409 * include/Makefile.am: Add new header.
2410 * include/Makefile.in: Regenerate.
2411 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
2412 (basic_string): Move definition of Copy-on-Write string to
2413 new file.
2414 * include/bits/basic_string.tcc: Likewise.
2415 * include/bits/cow_string.h: New file.
2416
2417 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
2418
2419 * include/std/algorithm: Do not include <utility>.
2420 * include/std/functional: Likewise.
2421 * include/std/regex: Include <bits/stl_pair.h> instead of
2422 <utility>.
2423 * include/debug/map.h: Likewise.
2424 * include/debug/multimap.h: Likewise.
2425 * include/debug/multiset.h: Likewise.
2426 * include/debug/set.h: Likewise.
2427 * include/debug/vector: Likewise.
2428 * include/bits/fs_path.h: Likewise.
2429 * include/bits/unique_ptr.h: Do not include <utility>.
2430 * include/experimental/any: Likewise.
2431 * include/experimental/executor: Likewise.
2432 * include/experimental/memory: Likewise.
2433 * include/experimental/optional: Likewise.
2434 * include/experimental/socket: Use __exchange instead
2435 of std::exchange.
2436 * src/filesystem/ops-common.h: Likewise.
2437 * testsuite/20_util/default_delete/48631_neg.cc: Adjust expected
2438 errors to not use a hardcoded line number.
2439 * testsuite/20_util/default_delete/void_neg.cc: Likewise.
2440 * testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc:
2441 Include <utility> for std::as_const.
2442 * testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constrained.cc:
2443 Likewise.
2444 * testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc:
2445 Likewise.
2446 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constrained.cc:
2447 Likewise.
2448 * testsuite/23_containers/vector/cons/destructible_debug_neg.cc:
2449 Adjust dg-error line number.
2450
2451 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
2452
2453 * include/Makefile.am: Add bits/utility.h header.
2454 * include/Makefile.in: Regenerate.
2455 * include/bits/utility.h: New file.
2456 * include/std/utility (tuple_size, tuple_element): Move
2457 to new header.
2458 * include/std/type_traits (__is_tuple_like_impl<tuple<T...>>):
2459 Move to <tuple>.
2460 (_Index_tuple, _Build_index_tuple, integer_sequence): Likewise.
2461 (in_place_t, in_place_index_t, in_place_type_t): Likewise.
2462 * include/bits/ranges_util.h: Include new header instead of
2463 <utility>.
2464 * include/bits/stl_pair.h (tuple_size, tuple_element): Move
2465 partial specializations for std::pair here.
2466 (get): Move overloads for std::pair here.
2467 * include/std/any: Include new header instead of <utility>.
2468 * include/std/array: Likewise.
2469 * include/std/memory_resource: Likewise.
2470 * include/std/optional: Likewise.
2471 * include/std/variant: Likewise.
2472 * include/std/tuple: Likewise.
2473 (__is_tuple_like_impl<tuple<T...>>): Move here.
2474 (get) Declare overloads for std::array.
2475 * include/std/version (__cpp_lib_tuples_by_type): Change type
2476 to long.
2477 * testsuite/20_util/optional/84601.cc: Include <utility>.
2478 * testsuite/20_util/specialized_algorithms/uninitialized_fill/constrained.cc:
2479 Likewise.
2480 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
2481 Adjust dg-error line numbers.
2482 * testsuite/std/ranges/access/cbegin.cc: Include <utility>.
2483 * testsuite/std/ranges/access/cend.cc: Likewise.
2484 * testsuite/std/ranges/access/end.cc: Likewise.
2485 * testsuite/std/ranges/single_view.cc: Likewise.
2486
2487 2021-07-23 Jonathan Wakely <jwakely@redhat.com>
2488
2489 * include/std/future: Include <bits/atomic_base.h> instead of
2490 <atomic>.
2491
2492 2021-07-23 Jonathan Wakely <jwakely@redhat.com>
2493
2494 * include/bits/stl_relops.h: Update documentation comments.
2495
2496 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
2497
2498 PR libstdc++/101583
2499 * include/bits/hashtable.h (_Hashtable): Replace mixin with
2500 _Enable_default_ctor. Construct it explicitly in all
2501 non-forwarding, non-defaulted constructors.
2502 * testsuite/23_containers/unordered_map/cons/default.cc: Check
2503 non-default constructors can be used.
2504 * testsuite/23_containers/unordered_set/cons/default.cc:
2505 Likewise.
2506
2507 2021-07-22 David Edelsohn <dje.gcc@gmail.com>
2508
2509 * config/os/aix/os_defines.h (__LIBC_NO_CPP_MATH_OVERLOADS__): Define.
2510
2511 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
2512
2513 PR libstdc++/94295
2514 * include/ext/new_allocator.h (_GLIBCXX_OPERATOR_NEW)
2515 (_GLIBCXX_OPERATOR_DELETE, _GLIBCXX_SIZED_DEALLOC): Define.
2516 (allocator::allocate, allocator::deallocate): Use new macros.
2517
2518 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
2519
2520 PR libstdc++/101571
2521 * include/bits/ranges_uninitialized.h (_DestroyGuard): Change
2522 constructor parameter to reference and use addressof.
2523 * testsuite/util/testsuite_iterators.h: Define deleted operator&
2524 overloads for test iterators.
2525
2526 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
2527
2528 * include/bits/std_function.h (_Function_base): Add
2529 default member initializers and define constructor as defaulted.
2530 (function::_M_invoker): Add default member initializer.
2531
2532 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
2533
2534 PR libstdc++/100682
2535 * doc/xml/manual/debug_mode.xml: Update documentation about
2536 debug capability of std::array.
2537 * doc/html/*: Regenerate.
2538 * include/debug/array: New file.
2539
2540 2021-07-21 Jonathan Wakely <jwakely@redhat.com>
2541
2542 PR libstdc++/101542
2543 * include/ext/rope (sequence_buffer): Add move constructor and
2544 move assignment operator.
2545 * testsuite/ext/rope/101542.cc: New test.
2546
2547 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
2548
2549 PR libstdc++/101510
2550 * src/c++17/fs_ops.cc (fs::create_directories): Use status
2551 instead of symlink_status.
2552 * src/filesystem/ops.cc (fs::create_directories): Likewise.
2553 * testsuite/27_io/filesystem/operations/create_directories.cc:
2554 Check symlink to existing directory.
2555 * testsuite/27_io/filesystem/operations/create_directory.cc: Do
2556 not test with symlinks on Windows.
2557 * testsuite/experimental/filesystem/operations/create_directories.cc:
2558 Check symlink to existing directory.
2559 * testsuite/experimental/filesystem/operations/create_directory.cc:
2560 Do not test with symlinks on Windows.
2561
2562 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
2563
2564 PR libstdc++/100863
2565 * include/bits/hashtable.h (_Hashtable): Conditionally delete
2566 default constructor by deriving from _Enable_special_members.
2567 * testsuite/23_containers/unordered_map/cons/default.cc: New test.
2568 * testsuite/23_containers/unordered_set/cons/default.cc: New test.
2569
2570 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
2571
2572 PR libstdc++/101510
2573 * src/c++17/fs_ops.cc (create_dir): Adjust whitespace.
2574 * testsuite/27_io/filesystem/operations/create_directory.cc:
2575 Test creating directory with name of existing symlink to
2576 directory.
2577 * testsuite/experimental/filesystem/operations/create_directory.cc:
2578 Likewise.
2579
2580 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2581
2582 * include/std/tuple (get<I>): Add deleted overload for bad
2583 index.
2584 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
2585 expected errors.
2586
2587 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2588
2589 * include/bits/max_size_type.h (numeric_limits<__max_size_type>):
2590 Use __int_traits unconditionally.
2591
2592 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2593
2594 * include/bits/random.h (_Shift::__value): Use constexpr.
2595 (_Select_uint_least_t::type): Use using-declaration.
2596 (_Mod): Likewise.
2597 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2598 line number.
2599
2600 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2601
2602 * include/bits/cpp_type_traits.h (__INT_N): Use __extension__
2603 instead of diagnostic pragmas.
2604 * include/bits/functional_hash.h: Likewise.
2605 * include/bits/iterator_concepts.h (__is_signed_int128)
2606 (__is_unsigned_int128): Likewise.
2607 * include/bits/max_size_type.h (__max_size_type): Likewise.
2608 (numeric_limits<__max_size_type>): Likewise.
2609 * include/bits/std_abs.h (abs): Likewise.
2610 * include/bits/stl_algobase.h (__size_to_integer): Likewise.
2611 * include/bits/uniform_int_dist.h (uniform_int_distribution):
2612 Likewise.
2613 * include/ext/numeric_traits.h (_GLIBCXX_INT_N_TRAITS):
2614 Likewise.
2615 * include/std/type_traits (__is_integral_helper<INT_N>)
2616 (__is_signed_integer, __is_unsigned_integer)
2617 (__make_unsigned<INT_N>, __make_signed<INT_N>): Likewise.
2618 * include/std/limits (__INT_N): Add __extension__ keyword.
2619 * include/bits/random.h (_Select_uint_least_t)
2620 (random_device): Likewise.
2621
2622 2021-07-16 Patrick Palka <ppalka@redhat.com>
2623
2624 PR libstdc++/101231
2625 * include/std/ranges (_CachedPosition::_M_get): For non-forward
2626 ranges, just call __builtin_unreachable.
2627 * testsuite/std/ranges/istream_view.cc (test05): New test.
2628
2629 2021-07-16 Patrick Palka <ppalka@redhat.com>
2630
2631 PR libstdc++/101214
2632 * include/std/ranges (split_view::split_view): Use std::move.
2633 (split_view::_Iterator::_Iterator): Remove redundant
2634 default_initializable constraint.
2635 (split_view::_Sentinel::_Sentinel): Declare.
2636 * testsuite/std/ranges/adaptors/split.cc (test02): New test.
2637
2638 2021-07-16 Marek Polacek <polacek@redhat.com>
2639
2640 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Add
2641 dg-error.
2642
2643 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2644
2645 * include/bits/unique_ptr.h: Adjust doxygen markup.
2646
2647 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2648
2649 PR libstdc++/101307
2650 * include/std/type_traits: Adjust doxygen markup.
2651
2652 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2653
2654 * include/bits/cpp_type_traits.h: Add diagnostic pragmas around
2655 uses of non-standard integer types.
2656 * include/bits/functional_hash.h: Likewise.
2657 * include/bits/iterator_concepts.h: Likewise.
2658 * include/bits/max_size_type.h: Likewise.
2659 * include/bits/std_abs.h: Likewise.
2660 * include/bits/stl_algobase.h: Likewise.
2661 * include/bits/uniform_int_dist.h: Likewise.
2662 * include/ext/numeric_traits.h: Likewise.
2663 * include/std/type_traits: Likewise.
2664
2665 2021-07-15 Jonathan Wakely <jwakely@redhat.com>
2666
2667 PR libstdc++/101427
2668 * include/std/tuple (tuple_element): Improve static_assert text.
2669 (__get_helper): Add deleted overload.
2670 (get<i>(tuple<T...>&&), get<i>(const tuple<T...>&&)): Use
2671 __get_helper directly.
2672 (__get_helper2): Remove.
2673 (__find_uniq_type_in_pack): New constexpr helper function.
2674 (get<T>): Use __find_uniq_type_in_pack and __get_helper instead
2675 of __get_helper2.
2676 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
2677 expected errors.
2678 * testsuite/20_util/tuple/element_access/101427.cc: New test.
2679
2680 2021-07-15 Jonathan Wakely <jwakely@redhat.com>
2681
2682 PR libstdc++/101429
2683 * include/bits/c++config (__replacement_assert): Add noexcept.
2684 [!_GLIBCXX_VERBOSE] (__glibcxx_assert_impl): Use __builtin_abort
2685 instead of __replacement_assert.
2686
2687 2021-07-14 Jonathan Wakely <jwakely@redhat.com>
2688
2689 * include/std/string_view (basic_string_view(It, End)): Add
2690 noexcept-specifier.
2691 * testsuite/21_strings/basic_string_view/cons/char/range.cc:
2692 Check noexcept-specifier. Also check construction without CTAD.
2693
2694 2021-07-13 Jonathan Wakely <jwakely@redhat.com>
2695
2696 PR c++/101361
2697 * include/std/string_view (ends_with): Use traits_type::compare
2698 directly.
2699
2700 2021-07-13 Jonathan Wakely <jwakely@redhat.com>
2701
2702 * include/std/string_view: Only include <bits/ranges_base.h>
2703 once, and only for C++20 and later.
2704
2705 2021-07-12 Jonathan Wakely <jwakely@redhat.com>
2706
2707 PR libstdc++/101411
2708 * include/std/span (as_writable_bytes): Add requires-clause.
2709 * testsuite/23_containers/span/101411.cc: New test.
2710
2711 2021-07-09 Matheus Castanho <msc@linux.ibm.com>
2712
2713 * include/std/mutex (__lock_impl): Check
2714 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
2715
2716 2021-07-02 Jonathan Wakely <jwakely@redhat.com>
2717
2718 PR libstdc++/101271
2719 * include/bits/unique_ptr.h (unique_ptr<T[],D>::operator[]):
2720 Remove noexcept-specifier.
2721 (unique_ptr<T[],D>::_S_nothrow_deref): Remove.
2722 * testsuite/20_util/unique_ptr/lwg2762.cc: Remove checks for
2723 operator[].
2724
2725 2021-07-01 Jonathan Wakely <jwakely@redhat.com>
2726
2727 * doc/doxygen/doxygroups.cc: Fix docs for std::literals.
2728 * doc/doxygen/user.cfg.in: Exclude the Networking TS header.
2729 Add some more predefined macros.
2730 * include/bits/fs_fwd.h: Move @addtogroup commands inside
2731 namespaces. Add better documentation.
2732 * include/bits/fs_path.h: Likewise.
2733 * include/experimental/bits/fs_fwd.h: Likewise.
2734 * include/experimental/bits/fs_path.h: Likewise.
2735 * include/ext/throw_allocator.h: Fix typo and improve docs.
2736 * include/std/chrono: Move @addtogroup commands.
2737 * include/std/system_error: Move @addtogroup commands.
2738 * libsupc++/exception: Improve documentation.
2739 * libsupc++/exception.h: Add @since documentation.
2740
2741 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
2742
2743 PR libstdc++/101258
2744 * doc/doxygen/user.cfg.in (INPUT): Add <experimental/simd>.
2745 (COLS_IN_ALPHA_INDEX): Remove obsolete tag.
2746 (PREDEFINED): Add/fix some more macros that need to be expanded.
2747 * include/bits/random.h: Stop Doxygen from documenting internal
2748 implementation details.
2749 * include/bits/random.tcc: Likewise.
2750 * include/bits/this_thread_sleep.h: Fix @file name.
2751 * include/experimental/bits/simd.h: Add to Doxygen group. Do not
2752 document internal implementation details.
2753 * include/experimental/bits/simd_detail.h: Do not document
2754 internal implementation details.
2755 * include/experimental/simd: Define Doxygen groups.
2756 * include/experimental/type_traits: Improve documentation for
2757 the header file. Define groups. Use @since commands.
2758 * include/std/scoped_allocator (scoped_allocator_adaptor): Move
2759 declaration before undocumented region.
2760 * include/std/type_traits (true_type, false_type): Use using
2761 declaration instead of typedef.
2762 (is_invocable_v, is_nothrow_invocable_v, is_invocable_r_v)
2763 (is_nothrow_invocable_r_v): Move definitions next to other C++17
2764 variable templates.
2765 Do not document internal implementation details. Move misplaced
2766 group-end command. Define group for variable templates.
2767 * include/std/variant: Do not document internal implementation
2768 details.
2769 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2770 line number.
2771
2772 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
2773
2774 * include/experimental/simd: Do not define anything pre-C++17.
2775
2776 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
2777
2778 * include/bits/random.tcc [__cpp_inline_variables]: Remove
2779 redundant definitions of static constexpr member variables.
2780 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2781 line number.
2782
2783 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
2784
2785 * include/bits/streambuf.tcc (__copy_streambufs_eof): Remove
2786 explicit instantiation declarations.
2787 * src/c++11/streambuf-inst.cc (__copy_streambufs_eof): Remove
2788 explicit instantiation definitions.
2789
2790 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
2791
2792 PR libstdc++/97088
2793 * testsuite/17_intro/names.cc: Fix #if condition for names used
2794 by newlib headers.
2795
2796 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
2797
2798 PR libstdc++/101236
2799 * include/bits/unique_ptr.h (unique_ptr<T[], D>::operator[]):
2800 Fail gracefully if element_type is incomplete.
2801 * testsuite/20_util/unique_ptr/cons/incomplete.cc: Clarify that
2802 the standard doesn't require this test to work for array types.
2803 * testsuite/20_util/unique_ptr/lwg2762.cc: Check that incomplete
2804 types can be used with array specialization.
2805 * testsuite/20_util/unique_ptr/101236.cc: New test.
2806
2807 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
2808
2809 * doc/xml/manual/intro.xml: Document LWG 415 change.
2810 * doc/html/manual/bugs.html: Regenerate.
2811 * include/bits/istream.tcc (ws): Create sentry and catch
2812 exceptions.
2813 * testsuite/27_io/basic_istream/ws/char/lwg415.cc: New test.
2814 * testsuite/27_io/basic_istream/ws/wchar_t/lwg415.cc: New test.
2815
2816 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
2817
2818 * include/bits/ostream.tcc (basic_ostream::write): Call sputn
2819 directly instead of using _M_write. Do setstate(__err) all
2820 outside the try-catch block.
2821 * include/std/ostream (basic_ostream::_M_write): Declare
2822 private. Use __ostream_insert. Do not define for the versioned
2823 namespace.
2824
2825 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
2826
2827 * doc/xml/manual/intro.xml: Document LWG 581 change.
2828 * doc/html/manual/bugs.html: Regenerate.
2829 * include/bits/basic_ios.tcc: Whitespace.
2830 * include/bits/ostream.tcc (basic_ostream::flush()): Construct
2831 sentry.
2832 * testsuite/27_io/basic_ostream/flush/char/2.cc: Check
2833 additional cases.
2834 * testsuite/27_io/basic_ostream/flush/char/exceptions_badbit_throw.cc:
2835 Likewise.
2836 * testsuite/27_io/basic_ostream/flush/wchar_t/2.cc: Likewise.
2837 * testsuite/27_io/basic_ostream/flush/wchar_t/exceptions_badbit_throw.cc:
2838 Likewise.
2839
2840 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
2841
2842 * include/bits/ostream.tcc (sentry): Only set failbit if badbit
2843 is set, not if eofbit is set.
2844 (tellp, seekp, seekp): Create sentry object. Do not set badbit
2845 on exceptions.
2846 * testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc:
2847 Adjust expected behaviour.
2848 * testsuite/27_io/basic_ostream/seekp/wchar_t/exceptions_badbit_throw.cc:
2849 Likewise.
2850 * testsuite/27_io/basic_ostream/tellp/char/exceptions_badbit_throw.cc:
2851 Likewise.
2852 * testsuite/27_io/basic_ostream/tellp/wchar_t/exceptions_badbit_throw.cc:
2853 Likewise.
2854 * testsuite/27_io/basic_ostream/seekp/char/n3168.cc: New test.
2855 * testsuite/27_io/basic_ostream/seekp/wchar_t/n3168.cc: New test.
2856 * testsuite/27_io/basic_ostream/tellp/char/n3168.cc: New test.
2857 * testsuite/27_io/basic_ostream/tellp/wchar_t/n3168.cc: New test.
2858
2859 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
2860
2861 * include/std/syncstream (basic_syncbuf::swap()): Remove
2862 noexcept, as per LWG 3498.
2863
2864 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
2865
2866 PR libstdc++/97088
2867 * testsuite/17_intro/names.cc: Undef more names for newlib and
2868 also for arm-none-linux-gnueabi.
2869 * testsuite/experimental/names.cc: Disable PCH.
2870
2871 2021-06-25 Matthias Kretz <m.kretz@gsi.de>
2872
2873 * include/experimental/bits/simd.h (__bit_cast): Implement via
2874 __builtin_bit_cast #if available.
2875 (__proposed::simd_bit_cast): Add overloads for simd and
2876 simd_mask, which use __builtin_bit_cast (or __bit_cast #if not
2877 available), which return an object of the requested type with
2878 the same bits as the argument.
2879 * include/experimental/bits/simd_math.h: Use simd_bit_cast
2880 instead of __bit_cast to allow casts to fixed_size_simd.
2881 (copysign): Remove branch that was only required if __bit_cast
2882 cannot be constexpr.
2883 * testsuite/experimental/simd/tests/bits/test_values.h: Switch
2884 from __bit_cast to __proposed::simd_bit_cast since the former
2885 will not cast fixed_size objects anymore.
2886
2887 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2888
2889 * include/experimental/bits/simd_math.h
2890 (_GLIBCXX_SIMD_MATH_CALL2_): Rename arg2_ to __arg2.
2891 (_GLIBCXX_SIMD_MATH_CALL3_): Rename arg2_ to __arg2 and arg3_ to
2892 __arg3.
2893
2894 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2895
2896 * include/experimental/bits/simd.h (__execute_on_index_sequence)
2897 (__execute_on_index_sequence_with_return)
2898 (__call_with_n_evaluations, __call_with_subscripts): Add flatten
2899 attribute.
2900
2901 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2902
2903 * include/experimental/bits/simd_x86.h (_S_trunc, _S_floor)
2904 (_S_ceil): Set bit 8 (_MM_FROUND_NO_EXC) on AVX and SSE4.1
2905 roundp[sd] calls.
2906
2907 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2908
2909 * include/experimental/bits/simd_x86.h (_S_ldexp): The AVX512F
2910 implementation doesn't require a _VecBltnBtmsk ABI tag, it
2911 requires either a 64-Byte input (in which case AVX512F must be
2912 available) or AVX512VL.
2913
2914 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2915
2916 * include/experimental/bits/simd_math.h: Undefine internal
2917 macros after use.
2918 (frexp): Move #if to a more sensible position and reformat
2919 preceding code.
2920 (logb): Call _SimdImpl::_S_logb for fixed_size instead of
2921 duplicating the code here.
2922 (modf): Simplify condition.
2923
2924 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2925
2926 * include/experimental/bits/simd_math.h (fabs): Remove
2927 fabs(simd<integral>) overload.
2928
2929 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2930
2931 * include/experimental/bits/simd_converter.h
2932 (_SimdConverter::operator()): Pass _SimdTuple by const-ref.
2933 * include/experimental/bits/simd_fixed_size.h
2934 (_GLIBCXX_SIMD_FIXED_OP): Pass binary operator _SimdTuple
2935 arguments by const-ref.
2936 (_S_masked_unary): Pass _SimdTuple by const-ref.
2937
2938 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2939
2940 * include/experimental/bits/simd_fixed_size.h
2941 (_AbisInSimdTuple): Removed.
2942
2943 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2944
2945 * include/experimental/bits/simd.h: Add missing operator~
2946 overload for simd<floating-point> to __float_bitwise_operators.
2947 * include/experimental/bits/simd_builtin.h
2948 (_SimdImplBuiltin::_S_complement): Bitcast to int (and back) to
2949 implement complement for floating-point vectors.
2950 * include/experimental/bits/simd_fixed_size.h
2951 (_SimdImplFixedSize::_S_copysign): New function, forwarding to
2952 copysign implementation of _SimdTuple members.
2953 * include/experimental/bits/simd_math.h (copysign): Call
2954 _SimdImpl::_S_copysign for fixed_size arguments. Simplify
2955 generic copysign implementation using the new ~ operator.
2956
2957 2021-06-24 Jonathan Wakely <jwakely@redhat.com>
2958
2959 * testsuite/experimental/simd/README.md: Fix typos.
2960
2961 2021-06-24 Jonathan Wakely <jwakely@redhat.com>
2962
2963 * include/bits/shared_ptr_base.h (__shared_ptr_access::operator[]):
2964 Add noexcept.
2965 * include/bits/unique_ptr.h (unique_ptr::operator*): Add
2966 conditional noexcept as per LWG 2762.
2967 * testsuite/20_util/shared_ptr/observers/array.cc: Check that
2968 dereferencing cannot throw.
2969 * testsuite/20_util/shared_ptr/observers/get.cc: Likewise.
2970 * testsuite/20_util/optional/observers/lwg2762.cc: New test.
2971 * testsuite/20_util/unique_ptr/lwg2762.cc: New test.
2972
2973 2021-06-23 Patrick Palka <ppalka@redhat.com>
2974
2975 PR c++/101174
2976 * testsuite/23_containers/multiset/cons/deduction.cc:
2977 Uncomment CTAD example that was rejected by this bug.
2978 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
2979
2980 2021-06-23 Jonathan Wakely <jwakely@redhat.com>
2981
2982 * include/std/chrono (chrono::year::is_leap()): Fix incorrect
2983 logic in comment.
2984
2985 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
2986
2987 * testsuite/experimental/simd/README.md: New file.
2988
2989 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
2990
2991 * testsuite/experimental/simd/driver.sh: Rewrite output
2992 verbosity logic. Add -p/--percentage option. Allow -v/--verbose
2993 to be used twice. Add -x and -o short options. Parse long
2994 options with = instead of separating space generically. Parce
2995 contracted short options. Make unrecognized options an error.
2996 If same-line output is active, trap on EXIT to increment the
2997 progress (only with --percentage), erase the line and print the
2998 current status.
2999 * testsuite/experimental/simd/generate_makefile.sh: Initialize
3000 helper files for progress account keeping. Update help target
3001 for changes to DRIVEROPTS.
3002
3003 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
3004
3005 * testsuite/Makefile.am (check-simd): Remove -fno-tree-vrp flag
3006 and associated warning.
3007 * testsuite/Makefile.in: Regenerate.
3008
3009 2021-06-23 Cassio Neri <cassio.neri@gmail.com>
3010 Jonathan Wakely <jwakely@redhat.com>
3011 Ulrich Drepper <drepper@redhat.com>
3012
3013 * include/std/chrono (chrono::year::is_leap()): Optimize.
3014
3015 2021-06-23 Patrick Palka <ppalka@redhat.com>
3016
3017 PR c++/86439
3018 * testsuite/23_containers/map/cons/deduction.cc: Replace ambiguous
3019 CTAD examples.
3020 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
3021 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
3022 Mention one of the replaced examples is broken due to PR101174.
3023 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
3024 * testsuite/23_containers/unordered_map/cons/deduction.cc: Replace
3025 ambiguous CTAD examples.
3026 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
3027 Likewise.
3028 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
3029 Likewise.
3030 * testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise.
3031
3032 2021-06-23 Jonathan Wakely <jwakely@redhat.com>
3033
3034 * include/std/mutex (__detail::__try_lock_impl): Rename
3035 parameter to avoid clashing with newlib's __lockable macro.
3036 (try_lock): Add 'inline' specifier.
3037 * testsuite/17_intro/names.cc: Add check for __lockable.
3038 * testsuite/30_threads/try_lock/5.cc: Add options for pthreads.
3039
3040 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
3041 Matthias Kretz <m.kretz@gsi.de>
3042
3043 * include/std/mutex (lock): Replace recursion with iteration
3044 when lockables all have the same type.
3045 (__detail::__try_lock_impl): Likewise. Pass lockables as
3046 parameters, instead of a tuple. Always lock the first one, and
3047 recurse for the rest.
3048 (__detail::__lock_impl): Adjust call to __try_lock_impl.
3049 (__detail::__try_to_lock): Remove.
3050 * testsuite/30_threads/lock/3.cc: Check that mutexes are locked.
3051 * testsuite/30_threads/lock/4.cc: Also test non-heterogeneous
3052 arguments.
3053 * testsuite/30_threads/unique_lock/cons/60497.cc: Also check
3054 std::try_lock.
3055 * testsuite/30_threads/try_lock/5.cc: New test.
3056
3057 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
3058
3059 * include/std/memory (declare_reachable, undeclare_reachable)
3060 (declare_no_pointers, undeclare_no_pointers, get_pointer_safety)
3061 (pointer_safety): Only define for C++11 to C++20 inclusive.
3062 * testsuite/20_util/pointer_safety/1.cc: Do not run for C++23.
3063
3064 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
3065
3066 * include/bits/random.h (seed_seq): Constrain initializer-list
3067 constructor.
3068 * include/bits/random.tcc (seed_seq): Add template parameter.
3069 * testsuite/26_numerics/random/seed_seq/cons/default.cc: Check
3070 for noexcept.
3071 * testsuite/26_numerics/random/seed_seq/cons/initlist.cc: Check
3072 constraints.
3073
3074 2021-06-22 Thomas Rodgers <rodgert@appliantology.com>
3075
3076 PR libstdc++/100806
3077 * include/bits/semaphore_base.h (__atomic_semaphore::_M_release):
3078 Force _M_release() to wake all waiting threads.
3079 * testsuite/30_threads/semaphore/100806.cc: New test.
3080
3081 2021-06-21 Jonathan Wakely <jwakely@redhat.com>
3082
3083 * include/std/mutex (__try_to_lock): Move to __detail namespace.
3084 (struct __try_lock_impl): Replace with ...
3085 (__detail::__try_lock_impl<Idx>(tuple<Lockables...>&)): New
3086 function templates to implement std::try_lock.
3087 (try_lock): Use new __try_lock_impl.
3088 (__detail::__lock_impl(int, int&, L0&, L1&...)): New function
3089 template to implement std::lock.
3090 (lock): Use __lock_impl.
3091
3092 2021-06-21 Patrick Palka <ppalka@redhat.com>
3093
3094 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
3095
3096 2021-06-20 Patrick Palka <ppalka@redhat.com>
3097
3098 * include/std/ranges (__non_propagating_cache::operator bool):
3099 Define for split_view::begin().
3100 (split_view): Define as per P2210.
3101 (views::__detail::__can_split_view): Define.
3102 (views::_Split, views::split): Define.
3103 * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
3104 Test views::split.
3105 * testsuite/std/ranges/adaptors/split.cc: New test.
3106 * testsuite/std/ranges/p2325.cc (test08a): New test.
3107 * testsuite/std/ranges/p2367.cc (test01): Test views::split.
3108
3109 2021-06-20 Patrick Palka <ppalka@redhat.com>
3110
3111 * include/std/ranges: Rename views::split to views::lazy_split,
3112 split_view to lazy_split_view, etc. throughout.
3113 * testsuite/std/ranges/*: Likewise.
3114 * testsuite/std/ranges/adaptors/lazy_split.cc: New file.
3115 * testsuite/std/ranges/adaptors/lazy_split_neg.cc: New file.
3116
3117 2021-06-20 Patrick Palka <ppalka@redhat.com>
3118
3119 * include/std/ranges (split_view::_OuterIter::__at_end):
3120 Check _M_trailing_empty.
3121 (split_view::_OuterIter::_M_trailing_empty): Define this
3122 data member.
3123 (split_view::_OuterIter::operator++): Set _M_trailing_empty
3124 appropriately.
3125 (split_view::_OuterIter::operator==): Compare
3126 _M_trailing_empty.
3127 * testsuite/std/ranges/adaptors/100479.cc (test03): Expect two
3128 split parts instead of one.
3129 * testsuite/std/ranges/adaptors/split.cc (test11): New test.
3130
3131 2021-06-20 Patrick Palka <ppalka@redhat.com>
3132
3133 * include/std/ranges (split_view::_InnerIter::base): Define as
3134 per P2210.
3135
3136 2021-06-19 Patrick Palka <ppalka@redhat.com>
3137
3138 * include/std/ranges (transform_view::_Iterator::_S_iter_concept):
3139 Consider _Base instead of _Vp as per LWG 3555.
3140 (elements_view::_Iterator::_S_iter_concept): Likewise.
3141
3142 2021-06-19 Patrick Palka <ppalka@redhat.com>
3143
3144 * include/std/ranges (split_view::_OuterIter::value_type::begin):
3145 Remove the non-const overload, and remove the copyable constraint
3146 on the const overload as per LWG 3553.
3147
3148 2021-06-19 Patrick Palka <ppalka@redhat.com>
3149
3150 * include/bits/stl_iterator.h
3151 (__detail::__common_iter_use_postfix_proxy): Add
3152 move_constructible constraint as per LWG 3546.
3153 (common_iterator::__postfix_proxy): Adjust initializer of
3154 _M_keep as per LWG 3546.
3155
3156 2021-06-18 Patrick Palka <ppalka@redhat.com>
3157
3158 PR libstdc++/100387
3159 * include/bits/ranges_algo.h (__minmax_fn::operator()): Rewrite
3160 to limit comparison complexity to 3*N/2.
3161 (__minmax_element_fn::operator()): Likewise.
3162 (shift_right): Avoid premature std::move of __result.
3163 * testsuite/25_algorithms/minmax/constrained.cc (test04, test05):
3164 New tests.
3165 * testsuite/25_algorithms/minmax_element/constrained.cc (test02):
3166 Likewise.
3167
3168 2021-06-18 Patrick Palka <ppalka@redhat.com>
3169
3170 * include/std/concepts (convertible_to): Just use declval as per
3171 LWG 3557.
3172
3173 2021-06-18 Jonathan Wakely <jwakely@redhat.com>
3174
3175 PR libstdc++/95833
3176 * include/std/numeric (reduce(Iter, Iter, T, BinaryOp)): Replace
3177 incorrect static_assert with ones matching the 'Mandates'
3178 conditions in the standard.
3179 * testsuite/26_numerics/reduce/95833.cc: New test.
3180
3181 2021-06-18 Jonathan Wakely <jwakely@redhat.com>
3182
3183 * testsuite/21_strings/basic_string/cons/char/1.cc: Use
3184 diagnostic pragma to suppress -Wstringop-overread error.
3185
3186 2021-06-18 Patrick Palka <ppalka@redhat.com>
3187
3188 * include/bits/ranges_algo.h (__find_fn, find, __find_if_fn)
3189 (find_if, __find_if_not_fn, find_if_not, _in_in_result)
3190 (__mismatch_fn, mismatch, __search_fn, search): Move to ...
3191 * include/bits/ranges_util.h: ... here.
3192 * include/std/ranges (__detail::find, __detail::find_if)
3193 (__detail::find_if_not, __detail::mismatch): Remove.
3194 (filter_view): Use ranges::find_if instead.
3195 (drop_while_view): Use ranges::find_if_not instead.
3196 (split_view): Use ranges::find and ranges::mismatch instead.
3197
3198 2021-06-18 Patrick Palka <ppalka@redhat.com>
3199
3200 * include/bits/iterator_concepts.h (weakly_incrementable): Remove
3201 default_initializable requirement.
3202 * include/bits/ranges_base.h (ranges::view): Likewise.
3203 * include/bits/ranges_util.h (subrange): Constrain the default
3204 ctor.
3205 * include/bits/stl_iterator.h (back_insert_iterator): Remove the
3206 default ctor.
3207 (front_insert_iterator): Likewise.
3208 (insert_iterator): Likewise. Remove NSDMIs.
3209 (common_iterator): Constrain the default ctor.
3210 (counted_iterator): Likewise.
3211 * include/bits/stream_iterator.h (ostream_iterator): Remove the
3212 default ctor.
3213 * include/std/ranges (__detail::__box::operator=): Handle
3214 self-assignment in the primary template.
3215 (__detail::__box): In the partial specialization: adjust
3216 constraints as per P2325. Add specialized operator= for the
3217 case when the wrapped type is not copyable. Constrain the
3218 default ctor. Avoid list-initialization.
3219 (single_view): Constraint the default ctor.
3220 (iota_view): Relax semiregular constraint to copyable.
3221 Constrain the default ctor.
3222 (iota_view::_Iterator): Constraint the default ctor.
3223 (basic_istream_view): Remove the default ctor. Remove NSDMIs.
3224 Remove redundant checks for empty _M_stream.
3225 (basic_istream_view::_Iterator): Likewise.
3226 (ref_view): Remove the default ctor. Remove NSDMIs.
3227 (ref_view::_Iterator): Constrain the default ctor.
3228 (__detail::__non_propagating_cache::operator=): Define overload
3229 for assigning from a value of the underlying type.
3230 (filter_view): Likewise.
3231 (filter_view::_Iterator): Likewise.
3232 (transform_view): Likewise.
3233 (transform_view::_Iterator): Likewise.
3234 (take_view): Likewise.
3235 (take_view::_Iterator): Likewise.
3236 (take_while_view): Likewise.
3237 (take_while_view::_Iterator): Likewise.
3238 (drop_while_view): Likewise.
3239 (drop_while_view::_Iterator): Likewise.
3240 (join_view): Likewise.
3241 (split_view::_OuterIter::__current): Adjust after changing the
3242 type of _M_current.
3243 (split_view::_M_current): Wrap it in a __non_propagating_cache.
3244 (split_view::split_view): Constrain the default ctor.
3245 (common_view): Constrain the default ctor.
3246 (reverse_view): Likewise.
3247 (elements_view): Likewise.
3248 * include/std/span (enable_view<span<_ElementType, _Extent>>):
3249 Define this partial specialization to true unconditionally.
3250 * include/std/version (__cpp_lib_ranges): Adjust value.
3251 * testsuite/24_iterators/back_insert_iterator/constexpr.cc:
3252 Don't attempt to default construct a back_insert_iterator.
3253 * testsuite/24_iterators/front_insert_iterator/constexpr.cc:
3254 Don't attempt to default construct a front_insert_iterator.
3255 * testsuite/24_iterators/insert_iterator/constexpr.cc:
3256 Don't attempt to default construct an insert_iterator.
3257 * testsuite/24_iterators/ostream_iterator/requirements/constexpr.cc:
3258 Remove this test for default constructibility of ostream_iterator.
3259 * testsuite/std/ranges/97600.cc: Don't attempt to default
3260 construct a basic_istream_view.
3261 * testsuite/std/ranges/adaptors/detail/semiregular_box.cc:
3262 Rename to ...
3263 * testsuite/std/ranges/adaptors/detail/copyable_box.cc: ... this.
3264 (test02): Adjust now that __box is copyable-box not
3265 semiregular-box.
3266 (test03): New test.
3267 * testsuite/std/ranges/p2325.cc: New test.
3268 * testsuite/std/ranges/single_view.cc (test06): New test.
3269 * testsuite/std/ranges/view.cc: Adjust now that view doesn't
3270 require default_initializable.
3271
3272 2021-06-17 Jonathan Wakely <jwakely@redhat.com>
3273
3274 PR libstdc++/91488
3275 * include/bits/basic_string.h (__cpp_lib_constexpr_string): Only
3276 define when is_constant_evaluated is available.
3277 * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits):
3278 Likewise.
3279 (__constant_string_p, __constant_array_p): Remove.
3280 (char_traits): Use is_constant_evaluated directly.
3281 * include/std/version (__cpp_lib_constexpr_char_traits)
3282 (__cpp_lib_constexpr_string): Only define when
3283 is_constant_evaluated is available.
3284
3285 2021-06-17 Patrick Palka <ppalka@redhat.com>
3286
3287 PR libstdc++/100940
3288 * include/std/ranges (__adaptor::_Partial): For the "simple"
3289 forwarding partial specializations, also require that
3290 the extra arguments are trivially copyable.
3291 * testsuite/std/ranges/adaptors/100577.cc (test04): New test.
3292
3293 2021-06-17 Patrick Palka <ppalka@redhat.com>
3294
3295 PR libstdc++/100940
3296 * include/std/ranges (__adaptor::_RangeAdaptor): Document the
3297 template form of _S_has_simple_extra_args.
3298 (__adaptor::__adaptor_has_simple_extra_args): Add _Args template
3299 parameter pack. Try to treat _S_has_simple_extra_args as a
3300 variable template parameterized by _Args.
3301 (__adaptor::_Partial): Pass _Arg/_Args to the constraint
3302 __adaptor_has_simple_extra_args.
3303 (views::_Take::_S_has_simple_extra_args): Templatize according
3304 to the type of the extra argument.
3305 (views::_Drop::_S_has_simple_extra_args): Likewise.
3306 (views::_Split::_S_has_simple_extra_args): Define.
3307 * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
3308 Adjust after changes to _S_has_simple_extra_args mechanism.
3309 (test03): Define.
3310
3311 2021-06-16 Jonathan Wakely <jwakely@redhat.com>
3312
3313 * include/bits/iterator_concepts.h (__decay_copy): Name type.
3314
3315 2021-06-16 Jonathan Wakely <jwakely@redhat.com>
3316
3317 * include/bits/ranges_base.h (ranges::begin, ranges::end)
3318 (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
3319 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
3320 (ranges::empty, ranges::data, ranges::cdata): Remove final
3321 keywords and deleted operator& overloads.
3322 * testsuite/24_iterators/customization_points/iter_move.cc: Use
3323 new is_customization_point_object function.
3324 * testsuite/24_iterators/customization_points/iter_swap.cc:
3325 Likewise.
3326 * testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc:
3327 Likewise.
3328 * testsuite/std/ranges/access/begin.cc: Likewise.
3329 * testsuite/std/ranges/access/cbegin.cc: Likewise.
3330 * testsuite/std/ranges/access/cdata.cc: Likewise.
3331 * testsuite/std/ranges/access/cend.cc: Likewise.
3332 * testsuite/std/ranges/access/crbegin.cc: Likewise.
3333 * testsuite/std/ranges/access/crend.cc: Likewise.
3334 * testsuite/std/ranges/access/data.cc: Likewise.
3335 * testsuite/std/ranges/access/empty.cc: Likewise.
3336 * testsuite/std/ranges/access/end.cc: Likewise.
3337 * testsuite/std/ranges/access/rbegin.cc: Likewise.
3338 * testsuite/std/ranges/access/rend.cc: Likewise.
3339 * testsuite/std/ranges/access/size.cc: Likewise.
3340 * testsuite/std/ranges/access/ssize.cc: Likewise.
3341 * testsuite/util/testsuite_iterators.h
3342 (is_customization_point_object): New function.
3343
3344 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
3345
3346 * include/bits/ranges_base.h (ranges::begin, ranges::end)
3347 (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
3348 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
3349 (ranges::empty, ranges::data, ranges::cdata): Make types final.
3350 Add deleted operator& overloads.
3351 (ranges::advance, ranges::distance, ranges::next, ranges::prev):
3352 Likewise.
3353 * testsuite/std/ranges/headers/ranges/synopsis.cc: Replace
3354 ill-formed & expressions with using-declarations. Add checks for
3355 other function objects.
3356
3357 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
3358
3359 * include/bits/ranges_util.h (view_interface): Add noexcept to
3360 empty, operator bool, data and size members.
3361 (subrange): Add noexcept to constructors.
3362 * include/std/ranges (single_view, ref_view): Add noexcept to
3363 constructors.
3364 (views::single, views::all): Add noexcept.
3365 * testsuite/std/ranges/adaptors/all.cc: Check noexcept.
3366 * testsuite/std/ranges/single_view.cc: Likewise.
3367
3368 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
3369
3370 * include/bits/ranges_util.h (subrange): Add __size_type typedef
3371 and use it to simplify declarations.
3372 (subrange(i, s, n)): Remove assertion.
3373 * testsuite/std/ranges/subrange/constexpr.cc: New test.
3374
3375 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
3376
3377 * include/bits/iterator_concepts.h (__cust_access::__decay_copy):
3378 Replace with function object.
3379 (__cust_access::__member_begin, ___cust_access::_adl_begin): Use
3380 __decay_copy unqualified.
3381 * include/bits/ranges_base.h (__member_end, __adl_end):
3382 Likewise. Use __range_iter_t for type of ranges::begin.
3383 (__member_rend): Use correct value category for rbegin argument.
3384 (__member_data): Use __decay_copy unqualified.
3385 (__begin_data): Use __range_iter_t for type of ranges::begin.
3386
3387 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3388
3389 * include/bits/ranges_base.h (ranges::empty): Check whether
3390 conversion to bool can throw.
3391 * testsuite/std/ranges/access/empty.cc: Check for correct
3392 noexcept-specifier.
3393
3394 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3395
3396 PR libstdc++/100894
3397 * include/std/type_traits (__common_ref_impl<X&, Y&>): Only
3398 use the type if it's a reference.
3399 * testsuite/20_util/common_reference/100894.cc: New test.
3400
3401 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3402
3403 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
3404 Add dg-require-filesystem-ts directive.
3405
3406 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3407
3408 PR libstdc++/101034
3409 * include/std/any (any(in_place_t<T>, initializer_list<U>, A&&...))
3410 (any::emplace<T>(initializer_list<U>, A&&...)): Fix constraint
3411 to use lvalue.
3412 * testsuite/20_util/any/cons/101034.cc: New test.
3413
3414 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3415
3416 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Add
3417 -std=gnu++17 option.
3418
3419 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3420
3421 PR libstdc++/101056
3422 * libsupc++/compare (compare_partial_order_fallback): Add
3423 constraint using reversed parameter order, as per LWG 3465.
3424 * testsuite/18_support/comparisons/algorithms/fallback.cc:
3425 Adjust expected result.
3426
3427 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3428
3429 * libsupc++/compare (__decayed_same_as): New helper concept.
3430 (strong_order, weak_order, partial_order): Constrain with new
3431 concept instead of using static_assert.
3432 (compare_strong_order_fallback, compare_weak_order_fallback)
3433 (compare_partial_order_fallback): Likewise. Do not deduce return
3434 types. Remove redundant if-constexpr checks.
3435 * testsuite/18_support/comparisons/algorithms/fallback.cc: New test.
3436
3437 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
3438
3439 PR libstdc++/101055
3440 * include/std/tuple: Use reserved form of attribute name.
3441 * testsuite/17_intro/headers/c++2011/all_attributes.cc: Add
3442 check for no_unique_address.
3443 * testsuite/17_intro/headers/c++2014/all_attributes.cc:
3444 Likewise.
3445 * testsuite/17_intro/headers/c++2017/all_attributes.cc:
3446 Likewise.
3447
3448 2021-06-11 Jonathan Wakely <jwakely@redhat.com>
3449
3450 * include/bits/fs_path.h (operator==, operator<=>): Use new
3451 _S_compare function.
3452 (path::_S_compare): New function to call path::compare in a
3453 context where path::iterator is complete.
3454 * include/experimental/bits/fs_path.h (operator<, operator==):
3455 Define after path::iterator is complete.
3456 * testsuite/27_io/filesystem/path/native/conv_c++23.cc: New
3457 test.
3458 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
3459 New test.
3460
3461 2021-06-09 Thomas Rodgers <rodgert@appliantology.com>
3462
3463 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Guard
3464 test logic with constexpr check for is_always_lock_free.
3465
3466 2021-06-09 Jonathan Wakely <jwakely@redhat.com>
3467
3468 PR libstdc++/100982
3469 * include/std/optional (optional::operator=(const optional<U>&)):
3470 Fix value category used in is_assignable check.
3471 * testsuite/20_util/optional/assignment/100982.cc: New test.
3472
3473 2021-06-09 Jonathan Wakely <jwakely@redhat.com>
3474
3475 * include/bits/allocator.h (allocator::is_always_equal): Deprecate.
3476 * include/bits/iterator_concepts.h (indirectly_readable_traits):
3477 Add LWG issue number to comment.
3478 * include/std/memory_resource (polymorphic_allocator::release):
3479 Deprecate.
3480 * testsuite/20_util/allocator/requirements/typedefs.cc: Add
3481 dg-warning for deprecation. Also check std::allocator<void>.
3482
3483 2021-06-08 Thomas Rodgers <rodgert@appliantology.com>
3484
3485 PR libstdc++/100889
3486 * include/bits/atomic_base.h (atomic_ref<_Tp*>::wait):
3487 Change parameter type from _Tp to _Tp*.
3488 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Extend
3489 coverage of types tested.
3490
3491 2021-06-08 Thomas Rodgers <rodgert@appliantology.com>
3492
3493 * include/std/barrier (__tree_barrier::_M_arrive): Remove
3494 unnecessary hasher instantiation.
3495
3496 2021-06-08 Jonathan Wakely <jwakely@redhat.com>
3497
3498 * include/experimental/propagate_const (swap): Constrain.
3499 * testsuite/experimental/propagate_const/swap/lwg3413.cc: New test.
3500
3501 2021-06-07 Avi Kivity <avi@scylladb.com>
3502
3503 PR libstdc++/100900
3504 * include/std/ranges (elements_view::__iter_cat::_S_iter_cat):
3505 Add missing typename.
3506
3507 2021-06-07 Jonathan Wakely <jwakely@redhat.com>
3508
3509 PR libstdc++/98842
3510 * include/std/optional (operator<=>(const optional<T>& const U&)):
3511 Add missing constraint and add workaround for template
3512 recursion.
3513 * testsuite/20_util/optional/relops/three_way.cc: Check that
3514 type without equality comparison cannot be compared when wrapped
3515 in std::optional.
3516
3517 2021-06-05 Jonathan Wakely <jwakely@redhat.com>
3518
3519 PR libstdc++/100824
3520 * include/bits/ranges_base.h (_SSize): Return signed type.
3521 * testsuite/std/ranges/access/ssize.cc: Check with __int128.
3522
3523 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
3524
3525 * include/bits/ranges_base.h (_SSize): Return the result of
3526 ranges::size converted to the wider of make-signed-like-t<S> and
3527 ptrdiff_t, rather than the ranges different type.
3528 * testsuite/std/ranges/access/ssize.cc: Adjust expected result
3529 for an iota_view that uses an integer class type for its
3530 difference_type.
3531
3532 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
3533
3534 PR libstdc++/100824
3535 * include/bits/ranges_base.h (__member_data): Use __decay_copy.
3536 * testsuite/std/ranges/access/data.cc: Add testcase from PR.
3537
3538 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
3539
3540 PR libstdc++/100824
3541 * include/bits/iterator_concepts.h (__detail::__decay_copy)
3542 (__detail::__member_begin, __detail::__adl_begin): Move to
3543 namespace ranges::__cust_access.
3544 (__detail::__ranges_begin): Likewise, and rename to __begin.
3545 Remove redundant static assertion.
3546 * include/bits/ranges_base.h (_Begin, _End, _RBegin, _REnd):
3547 Use lvalue in noexcept specifier.
3548 (__as_const): Add non-deduced parameter for value category.
3549 (_CBegin, _CEnd, _CRBegin, _CREnd, _CData): Adjust uses of
3550 __as_const.
3551 (__member_size, __adl_size, __member_empty, __size0_empty):
3552 (__eq_iter_empty, __adl_data): Use lvalue objects in
3553 requirements.
3554 (__sentinel_size): Likewise. Add check for conversion to
3555 unsigned-like.
3556 (__member_data): Allow non-lvalue types to satisfy the concept,
3557 but use lvalue object in requirements.
3558 (_Size, _SSize): Remove forwarding to always use an lvalue.
3559 (_Data): Likewise. Add static assertion for arrays.
3560 * testsuite/std/ranges/access/cdata.cc: Adjust expected
3561 behaviour for rvalues. Add negative tests for ill-formed
3562 expressions.
3563 * testsuite/std/ranges/access/data.cc: Likewise.
3564 * testsuite/std/ranges/access/empty.cc: Adjust expected
3565 behaviour for rvalues.
3566 * testsuite/std/ranges/access/size.cc: Likewise.
3567
3568 2021-06-04 Tim Adye <Tim.Adye@cern.ch>
3569
3570 * include/std/any (any::_Manager::_S_access): New static
3571 function to access the contained value.
3572 (any::emplace, __any_caster): Use _S_access member of the
3573 manager type.
3574
3575 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
3576
3577 * doc/xml/manual/status_cxx2020.xml:
3578 * doc/html/*: Regenerate.
3579 * include/bits/hashtable.h (__cpp_lib_generic_unordered_lookup):
3580 Define.
3581 * include/std/version (__cpp_lib_generic_unordered_lookup):
3582 Define.
3583 * testsuite/23_containers/unordered_map/operations/1.cc: Check
3584 feature test macro.
3585 * testsuite/23_containers/unordered_set/operations/1.cc:
3586 Likewise.
3587
3588 2021-06-03 Patrick Palka <ppalka@redhat.com>
3589
3590 * include/bits/ranges_algo.h (__detail::__can_reread_output):
3591 Factor out this concept from ...
3592 (__unique_copy_fn::operator()): ... here. Use the concept
3593 throughout.
3594 * testsuite/std/ranges/range.cc: Remove now ill-formed use
3595 of range_value_t on an output_range.
3596 * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
3597 Define value_type, pointer and reference member types to void.
3598
3599 2021-06-03 Patrick Palka <ppalka@redhat.com>
3600
3601 PR libstdc++/100577
3602 * include/std/ranges (_RangeAdaptorClosure): Document
3603 _S_has_simple_call_op mechanism.
3604 (_RangeAdaptor): Document _S_has_simple_extra_args mechanism.
3605 (__closure_has_simple_call_op): New concept.
3606 (__adaptor_has_simple_extra_args): Likewise.
3607 (_Partial<_Adaptor, _Args...>): New partial specialization.
3608 (_Partial<_Adaptor, _Arg>): Likewise.
3609 (_Pipe<_Lhs, _Rhs>): Likewise.
3610 (views::_All::_S_has_simple_call_op): Define to true.
3611 (views::_Filter::_S_has_simple_extra_args): Likewise.
3612 (views::_Transform::_S_has_simple_extra_args): Likewise.
3613 (views::_Take::_S_has_simple_extra_args): Likewise.
3614 (views::_TakeWhile::_S_has_simple_extra_args): Likewise.
3615 (views::_Drop::_S_has_simple_extra_args): Likewise.
3616 (views::_DropWhile::_S_has_simple_extra_args): Likewise.
3617 (views::_Join::_S_has_simple_call_op): Likewise.
3618 (views::_Split): Document why we don't define
3619 _S_has_simple_extra_args to true for this adaptor.
3620 (views::_Common::_S_has_simple_call_op): Define to true.
3621 (views::_Reverse::_S_has_simple_call_op): Likewise.
3622 (views::_Elements::_S_has_simple_call_op): Likewise.
3623 * testsuite/std/ranges/adaptors/100577.cc: New test.
3624
3625 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
3626
3627 PR libstdc++/100863
3628 PR libstdc++/65816
3629 * include/bits/hashtable_policy.h (_Hashtable_ebo_helper):
3630 Value-initialize subobject.
3631 * testsuite/23_containers/unordered_map/allocator/default_init.cc:
3632 Remove XFAIL.
3633 * testsuite/23_containers/unordered_set/allocator/default_init.cc:
3634 Remove XFAIL.
3635
3636 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
3637
3638 PR libstdc++/96088
3639 * testsuite/23_containers/unordered_map/96088.cc: Adjust
3640 expected number of allocations.
3641 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
3642
3643 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
3644
3645 * doc/xml/manual/status_cxxis29124.xml: Improve punctuation.
3646 * doc/xml/manual/status_cxxtr1.xml: Likewise.
3647 * doc/xml/manual/status_cxxtr24733.xml: Likewise.
3648 * doc/html/*: Regenerate.
3649
3650 2021-06-01 Patrick Palka <ppalka@redhat.com>
3651
3652 PR c++/65816
3653 * testsuite/23_containers/deque/allocator/default_init.cc,
3654 testsuite/23_containers/forward_list/allocator/default_init.cc,
3655 testsuite/23_containers/list/allocator/default_init.cc,
3656 testsuite/23_containers/map/allocator/default_init.cc,
3657 testsuite/23_containers/set/allocator/default_init.cc,
3658 testsuite/23_containers/vector/allocator/default_init.cc,
3659 testsuite/23_containers/vector/bool/allocator/default_init.cc:
3660 Remove xfail.
3661
3662 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
3663
3664 * testsuite/23_containers/unordered_map/96088.cc: Change
3665 effective target to c++17.
3666 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
3667
3668 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
3669
3670 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Only test
3671 isblank for C++11 and later.
3672
3673 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
3674
3675 PR libstdc++/100833
3676 * include/bits/ranges_base.h (ranges::advance(iter, n, sentinel)):
3677 Fix return value for no-op case.
3678 * testsuite/24_iterators/range_operations/advance.cc: Test
3679 return values of three-argument overload.
3680
3681 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
3682
3683 PR libstdc++/99453
3684 * python/Makefile.am: Use archive name for printer hook if no
3685 dynamic library name is available.
3686 * python/Makefile.in: Regenerate.
3687
3688 2021-05-30 Gerald Pfeifer <gerald@pfeifer.com>
3689
3690 * doc/xml/manual/abi.xml: Remove dead reference to "Intel
3691 Compilers for Linux: Compatibility with GNU Compilers" article.
3692 * doc/html/manual/abi.html: Regenerate.
3693
3694 2021-05-26 François Dumont <fdumont@gcc.gnu.org>
3695
3696 * include/debug/formatter.h
3697 (_Error_formatter::_Parameter::_Named): New.
3698 (_Error_formatter::_Parameter::_Type): Inherit latter.
3699 (_Error_formatter::_Parameter::_M_integer): Likewise.
3700 (_Error_formatter::_Parameter::_M_string): Likewise.
3701 * src/c++11/debug.cc: Include <cstring>.
3702 (_Print_func_t): New.
3703 (print_raw(PrintContext&, const char*, ptrdiff_t)): New.
3704 (print_word): Use '%.*s' format in fprintf to render only expected number of chars.
3705 (pretty_print(PrintContext&, const char*, _Print_func_t)): New.
3706 (print_type): Rename in...
3707 (print_type_info): ...this. Use pretty_print.
3708 (print_address, print_integer): New.
3709 (print_named_name, print_iterator_constness, print_iterator_state): New.
3710 (print_iterator_seq_type): New.
3711 (print_named_field, print_type_field, print_instance_field, print_iterator_field): New.
3712 (print_field): Use latters.
3713 (print_quoted_named_name, print_type_type, print_type, print_instance): New.
3714 (print_string(PrintContext&, const char*, const _Parameter*, size_t)):
3715 Change signature to...
3716 (print_string(PrintContext&, const char*, ptrdiff_t, const _Parameter*, size_t)):
3717 ...this and adapt. Remove intermediate buffer to render input string.
3718 (print_string(PrintContext&, const char*, ptrdiff_t)): New.
3719
3720 2021-05-26 Jonathan Wakely <jwakely@redhat.com>
3721
3722 PR libstdc++/100768
3723 * include/bits/ranges_base.h (advance, distance, next, prev):
3724 Replace function templates with function objects.
3725 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
3726 Adjust for changes to function objects.
3727 * testsuite/std/ranges/adaptors/elements.cc: Add using
3728 declarations for names from namespace ranges.
3729 * testsuite/std/ranges/adaptors/transform.cc: Likewise.
3730 * testsuite/24_iterators/range_operations/100768.cc: New test.
3731
3732 2021-05-24 François Dumont <fdumont@gcc.gnu.org>
3733
3734 PR libstdc++/96088
3735 * include/bits/hashtable_policy.h (_Select2nd): New.
3736 (_NodeBuilder<>): New.
3737 (_ReuseOrAllocNode<>::operator()): Use variadic template args.
3738 (_AllocNode<>::operator()): Likewise.
3739 * include/bits/hashtable.h
3740 (_Hashtable<>::__node_builder_t): New.
3741 (_Hashtable<>::_M_insert_unique<>(_Kt&&, _Arg&&, const _NodeGenerator&)):
3742 New.
3743 (_Hashtable<>::_S_forward_key): New.
3744 (_Hashtable<>::_M_insert): Use latter.
3745 (_Hashtable<>::_M_insert(const_iterator, _Arg&&, const _NodeGenerator&, false_type)):
3746 Instantiate node first, compute hash code second.
3747 * testsuite/23_containers/unordered_map/96088.cc: New test.
3748 * testsuite/23_containers/unordered_multimap/96088.cc: New test.
3749 * testsuite/23_containers/unordered_multiset/96088.cc: New test.
3750 * testsuite/23_containers/unordered_set/96088.cc: New test.
3751 * testsuite/util/replacement_memory_operators.h
3752 (counter::_M_increment): New.
3753 (counter::_M_decrement): New.
3754 (counter::reset()): New.
3755
3756 2021-05-24 Patrick Palka <ppalka@redhat.com>
3757
3758 PR libstdc++/100479
3759 * include/std/ranges (__detail::__non_propagating_cache): Move
3760 definition up to before that of _CachedPosition. Make base
3761 class _Optional_base protected instead of private. Add const
3762 overload for operator*.
3763 (__detail::_CachedPosition): Rewrite the partial specialization
3764 for forward ranges as a derived class of __non_propagating_cache.
3765 Remove the size constraint on the partial specialization for
3766 random access ranges. Add copy/move/copy-assignment/move-assignment
3767 members to the offset partial specialization for random
3768 access ranges that propagate the cached value but additionally
3769 invalidate it in the source object on move.
3770 * testsuite/std/ranges/adaptors/100479.cc: New test.
3771
3772 2021-05-24 Jonathan Wakely <jwakely@redhat.com>
3773
3774 * testsuite/25_algorithms/inplace_merge/constrained.cc: Qualify
3775 call to ranges::next.
3776 * testsuite/25_algorithms/is_sorted/constrained.cc: Likewise.
3777 * testsuite/25_algorithms/is_sorted_until/constrained.cc:
3778 Likewise.
3779 * testsuite/25_algorithms/swap_ranges/1.cc: Qualify call to
3780 swap_ranges.
3781
3782 2021-05-21 Patrick Palka <ppalka@redhat.com>
3783
3784 PR libstdc++/100606
3785 * include/std/ranges (drop_while_view::begin): Assert the
3786 precondition added by LWG 3490.
3787
3788 2021-05-21 Patrick Palka <ppalka@redhat.com>
3789
3790 PR libstdc++/100690
3791 * include/std/ranges (iota_view::_Sentinel::_M_distance_from):
3792 Split out this member function from ...
3793 (iota_view::_Sentinel::operator-): ... here, for sake of access
3794 control.
3795 * testsuite/std/ranges/iota/iota_view.cc (test05): New test.
3796
3797 2021-05-20 Jonathan Wakely <jwakely@redhat.com>
3798
3799 * include/bits/random.tcc (__representable_as_double)
3800 (__p1_representable_as_double): Add "" to static asserts.
3801
3802 2021-05-20 Jonathan Wakely <jwakely@redhat.com>
3803
3804 PR libstdc++/100676
3805 * include/bits/c++config (__glibcxx_assert_1): Rename to ...
3806 (__glibcxx_constexpr_assert): ... this.
3807 (__glibcxx_assert_impl): Use __glibcxx_constexpr_assert.
3808 (__glibcxx_assert): Define as either __glibcxx_constexpr_assert
3809 or __glibcxx_assert_impl.
3810 (__glibcxx_assert_2): Remove
3811 * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): Use
3812 __glibcxx_constexpr_assert instead of __glibcxx_assert_1.
3813 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
3814 Adjust expected error.
3815 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
3816 Likewise.
3817 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
3818 Likewise.
3819 Likewise.
3820 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
3821 Likewise.
3822 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
3823 Likewise.
3824 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
3825 Likewise.
3826 * testsuite/23_containers/span/back_neg.cc: Likewise.
3827 * testsuite/23_containers/span/front_neg.cc: Likewise.
3828 * testsuite/23_containers/span/index_op_neg.cc: Likewise.
3829
3830 2021-05-20 Patrick Palka <ppalka@redhat.com>
3831
3832 PR libstdc++/100639
3833 * include/bits/stl_iterator.h (reverse_iterator::difference_type):
3834 In C++20 mode, define in terms of iter_difference_t as per P0896R4.
3835 (reverse_iterator::reference): Likewise, but with iter_reference_t.
3836 (reverse_iterator::value_type): Likewise, but with iter_value_t.
3837 * testsuite/std/ranges/adaptors/reverse.cc (test08): New test.
3838 * testsuite/24_iterators/reverse_iterator/100639.cc: New test.
3839
3840 2021-05-20 Joern Rennecke <joern.rennecke@riscy-ip.com>
3841
3842 PR libstdc++/100361
3843 * include/std/charconv (to_chars): Hide the overloads for
3844 floating-point types for 16 bit targets.
3845 * src/c++17/floating_to_chars.cc: Don't compile for 16 bit targets.
3846 * testsuite/20_util/to_chars/double.cc: Run this test only on
3847 size32plus targets.
3848 * testsuite/20_util/to_chars/float.cc: Likewise.
3849 * testsuite/20_util/to_chars/long_double.cc: Likewise.
3850
3851 2021-05-18 Patrick Palka <ppalka@redhat.com>
3852
3853 PR libstdc++/100631
3854 * include/std/ranges (elements_view::_Sentinel::operator-): Use
3855 _M_distance_from in the other operator- overload too.
3856 * testsuite/std/ranges/adaptors/elements.cc (test06): Augment test.
3857
3858 2021-05-18 Thomas Schwinge <thomas@codesourcery.com>
3859
3860 * testsuite/lib/prune.exp: Add note about 'dg-note'.
3861
3862 2021-05-18 Patrick Palka <ppalka@redhat.com>
3863
3864 PR libstdc++/100475
3865 * include/std/ranges (__box::__box): Use non-list-initialization
3866 in member initializer list of in-place constructor of the
3867 partial specialization for semiregular types.
3868 (__box::operator->): Use std::__addressof.
3869 * testsuite/std/ranges/adaptors/detail/semiregular_box.cc
3870 (test02): New test.
3871 * testsuite/std/ranges/single_view.cc (test04): New test.
3872
3873 2021-05-18 Patrick Palka <ppalka@redhat.com>
3874
3875 PR libstdc++/100621
3876 * include/std/ranges (reverse_view::_S_needs_cached_begin):
3877 Set to true if the underlying non-common random-access range
3878 doesn't have a sized sentinel.
3879
3880 2021-05-18 Patrick Palka <ppalka@redhat.com>
3881
3882 PR libstdc++/100631
3883 * include/std/ranges (elements_view::_Iterator): Also befriend
3884 _Sentinel<!_Const>.
3885 (elements_view::_Sentinel::_M_equal): Templatize.
3886 (elements_view::_Sentinel::_M_distance_from): Split out from ...
3887 (elements_view::_Sentinel::operator-): ... here. Depend on
3888 _Base2 instead of _Base in the return type.
3889 * testsuite/std/ranges/adaptors/elements.cc (test06, test07):
3890 New tests.
3891
3892 2021-05-17 Thomas Rodgers <rodgert@twrodgers.com>
3893
3894 * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): loop
3895 until value change observed.
3896 (__waiter_base::_M_laundered): New member.
3897 (__waiter_base::_M_notify): Check _M_laundered to determine
3898 whether to wake one or all.
3899 (__detail::__atomic_compare): Return true if call to
3900 __builtin_memcmp() == 0.
3901 (__waiter_base::_S_do_spin_v): Adjust predicate.
3902 * testsuite/29_atomics/atomic/wait_notify/100334.cc: New
3903 test.
3904
3905 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
3906
3907 PR libstdc++/100630
3908 * include/experimental/bits/fs_path.h (__is_constructible_from):
3909 Test construction from a const lvalue, not an rvalue.
3910 * testsuite/27_io/filesystem/path/construct/100630.cc: New test.
3911 * testsuite/experimental/filesystem/path/construct/100630.cc:
3912 New test.
3913
3914 2021-05-17 Antony Polukhin <antoshkka@gmail.com>
3915
3916 PR libstdc++/89728
3917 * include/bits/locale_facets.h (ctype<basic_string<C,T,A>>):
3918 Declare (but do not define) partial specialization.
3919 * testsuite/22_locale/ctype/is/string/89728_neg.cc: New test.
3920
3921 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
3922
3923 * include/std/thread (jthread::_S_create): Fix static assert
3924 message.
3925 * testsuite/30_threads/jthread/95989.cc: Re-enable test.
3926 * testsuite/30_threads/jthread/jthread.cc: Do not require
3927 pthread effective target.
3928 * testsuite/30_threads/jthread/2.cc: Moved to...
3929 * testsuite/30_threads/jthread/version.cc: ...here.
3930
3931 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
3932
3933 * doc/Makefile.am: Simplify doxygen recipes and use --latex_cmd.
3934 * doc/Makefile.in: Regenerate.
3935 * doc/doxygen/user.cfg.in (LATEX_CMD_NAME): Add placeholder
3936 value.
3937 * scripts/run_doxygen (print_usage): Always print to stdout and
3938 do not exit.
3939 (fail): New function for exiting on error.
3940 (parse_options): Handle --latex_cmd. Do not treat --help the
3941 same as errors. Simplify handling of required arguments.
3942
3943 2021-05-12 Jonathan Wakely <jwakely@redhat.com>
3944
3945 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
3946 Increase dg-timeout-factor to 4. Fix -Wunused-parameter
3947 warnings. Replace bitwise AND with logical AND in loop
3948 condition.
3949 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
3950 Replace bitwise AND with logical AND in loop condition.
3951 * testsuite/util/pstl/test_utils.h: Remove unused parameter
3952 names.
3953
3954 2021-05-11 Patrick Palka <ppalka@redhat.com>
3955
3956 * src/c++17/ryu/LOCAL_PATCHES: Update.
3957 * src/c++17/ryu/ryu_generic_128.h: Remove extern "C".
3958 Remove declarations for never-defined functions.
3959 * testsuite/20_util/to_chars/4.cc: New test.
3960
3961 2021-05-11 Jonathan Wakely <jwakely@redhat.com>
3962
3963 * testsuite/20_util/headers/memory/synopsis.cc: Define C++98
3964 alternative for macro.
3965 * testsuite/20_util/shared_ptr/creation/99006.cc: Add effective
3966 target keyword.
3967 * testsuite/25_algorithms/copy/debug/99402.cc: Avoid C++11
3968 syntax.
3969
3970 2021-05-11 Jonathan Wakely <jwakely@redhat.com>
3971
3972 * include/bits/allocator.h (allocator<void>) [C++20]: Add
3973 missing noexcept to constructor. Restore missing POCMA and
3974 is_always_equal_traits.
3975 [C++17]: Make construct and destroy members private and
3976 declare allocator_traits as a friend.
3977 * include/bits/memoryfwd.h (allocator_traits): Declare.
3978 * include/ext/malloc_allocator.h (malloc_allocator::allocate):
3979 Add nodiscard attribute. Add static assertion for LWG 3307.
3980 * include/ext/new_allocator.h (new_allocator::allocate): Add
3981 static assertion for LWG 3307.
3982 * testsuite/20_util/allocator/void.cc: Check that converting
3983 constructor is noexcept. Check for propagation traits and
3984 size_type and difference_type. Check that pointer and
3985 const_pointer are gone in C++20.
3986
3987 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3988
3989 * include/std/stop_token: Remove TODO comment.
3990
3991 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3992
3993 * include/bits/shared_ptr_base.h (__shared_count(unique_ptr&&)):
3994 Initialize a non-reference deleter from an rvalue, as per LWG
3995 3548.
3996 (__shared_ptr::_UniqCompatible): Add missing constraint.
3997 * testsuite/20_util/shared_ptr/cons/lwg3548.cc: New test.
3998 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc: Check
3999 constraints.
4000
4001 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4002
4003 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Remove
4004 -std=gnu++17 from dg-options directive.
4005 * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc:
4006 Likewise.
4007 * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc:
4008 Likewise.
4009 * testsuite/17_intro/headers/c++2017/operator_names.cc:
4010 Likewise.
4011 * testsuite/17_intro/headers/c++2017/parallel_mode.cc: Likewise.
4012 * testsuite/17_intro/headers/c++2017/stdc++.cc: Likewise.
4013 * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
4014 Likewise.
4015 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Likewise.
4016 * testsuite/18_support/byte/81076.cc: Likewise.
4017 * testsuite/18_support/byte/global_neg.cc: Likewise.
4018 * testsuite/18_support/byte/ops.cc: Likewise.
4019 * testsuite/18_support/byte/requirements.cc: Likewise.
4020 * testsuite/18_support/headers/cfloat/values_c++17.cc: Likewise.
4021 * testsuite/18_support/launder/1.cc: Likewise.
4022 * testsuite/18_support/launder/nodiscard.cc: Likewise.
4023 * testsuite/18_support/launder/requirements.cc: Likewise.
4024 * testsuite/18_support/launder/requirements_neg.cc: Likewise.
4025 * testsuite/18_support/new_aligned.cc: Likewise.
4026 * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
4027 Likewise.
4028 * testsuite/19_diagnostics/error_code/is_error_code_v.cc:
4029 Likewise.
4030 * testsuite/19_diagnostics/error_condition/hash.cc: Likewise.
4031 * testsuite/20_util/addressof/requirements/constexpr.cc:
4032 Likewise.
4033 * testsuite/20_util/as_const/1.cc: Likewise.
4034 * testsuite/20_util/as_const/rvalue_neg.cc: Likewise.
4035 * testsuite/20_util/bind/83427.cc: Likewise.
4036 * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
4037 * testsuite/20_util/bool_constant/requirements.cc: Likewise.
4038 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
4039 Likewise.
4040 * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
4041 Likewise.
4042 * testsuite/20_util/duration_cast/rounding.cc: Likewise.
4043 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
4044 Likewise.
4045 * testsuite/20_util/from_chars/1_neg.cc: Likewise.
4046 * testsuite/20_util/from_chars/requirements.cc: Likewise.
4047 * testsuite/20_util/function/91456.cc: Likewise.
4048 * testsuite/20_util/function/cons/deduction.cc: Likewise.
4049 * testsuite/20_util/function_objects/83607.cc: Likewise.
4050 * testsuite/20_util/function_objects/invoke/59768.cc: Likewise.
4051 * testsuite/20_util/function_objects/mem_fn/80478.cc: Likewise.
4052 * testsuite/20_util/function_objects/not_fn/1.cc: Likewise.
4053 * testsuite/20_util/function_objects/not_fn/87538.cc: Likewise.
4054 * testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc:
4055 Likewise.
4056 * testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc:
4057 Likewise.
4058 * testsuite/20_util/has_unique_object_representations/value.cc:
4059 Likewise.
4060 * testsuite/20_util/hash/nullptr.cc: Likewise.
4061 * testsuite/20_util/in_place/requirements.cc: Likewise.
4062 * testsuite/20_util/is_aggregate/incomplete_neg.cc: Likewise.
4063 * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
4064 Likewise.
4065 * testsuite/20_util/is_aggregate/requirements/typedefs.cc:
4066 Likewise.
4067 * testsuite/20_util/is_aggregate/value.cc: Likewise.
4068 * testsuite/20_util/is_invocable/83395.cc: Likewise.
4069 * testsuite/20_util/is_invocable/91456.cc: Likewise.
4070 * testsuite/20_util/is_invocable/requirements/explicit_instantiation.cc:
4071 Likewise.
4072 * testsuite/20_util/is_invocable/requirements/typedefs.cc:
4073 Likewise.
4074 * testsuite/20_util/is_invocable/value.cc: Likewise.
4075 * testsuite/20_util/is_literal_type/deprecated-1z.cc: Likewise.
4076 * testsuite/20_util/is_nothrow_constructible/94003.cc: Likewise.
4077 * testsuite/20_util/is_nothrow_invocable/83395.cc: Likewise.
4078 * testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation.cc:
4079 Likewise.
4080 * testsuite/20_util/is_nothrow_invocable/requirements/typedefs.cc: Likewise.
4081 * testsuite/20_util/is_nothrow_invocable/value.cc: Likewise.
4082 * testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc:
4083 Likewise.
4084 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
4085 Likewise.
4086 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
4087 * testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc:
4088 Likewise.
4089 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
4090 Likewise.
4091 * testsuite/20_util/is_nothrow_swappable_with/value.cc:
4092 Likewise.
4093 * testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc:
4094 Likewise.
4095 * testsuite/20_util/is_swappable/requirements/typedefs.cc:
4096 Likewise.
4097 * testsuite/20_util/is_swappable/value.cc: Likewise.
4098 * testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc:
4099 Likewise.
4100 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc:
4101 Likewise.
4102 * testsuite/20_util/is_swappable_with/value.cc: Likewise.
4103 * testsuite/20_util/logical_traits/83134.cc: Likewise.
4104 * testsuite/20_util/logical_traits/requirements/explicit_instantiation.cc:
4105 Likewise.
4106 * testsuite/20_util/logical_traits/requirements/typedefs.cc:
4107 Likewise.
4108 * testsuite/20_util/logical_traits/value.cc: Likewise.
4109 * testsuite/20_util/pair/cons/deduction.cc: Likewise.
4110 * testsuite/20_util/pair/swap_cxx17.cc: Likewise.
4111 * testsuite/20_util/ratio/requirements/ratio_equal_v.cc:
4112 Likewise.
4113 * testsuite/20_util/reference_wrapper/83427.cc: Likewise.
4114 * testsuite/20_util/reference_wrapper/deduction.cc: Likewise.
4115 * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
4116 * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
4117 * testsuite/20_util/shared_ptr/requirements/weak_type.cc:
4118 Likewise.
4119 * testsuite/20_util/time_point/arithmetic/constexpr.cc:
4120 Likewise.
4121 * testsuite/20_util/time_point_cast/rounding.cc: Likewise.
4122 * testsuite/20_util/to_chars/3.cc: Likewise.
4123 * testsuite/20_util/to_chars/chars_format.cc: Likewise.
4124 * testsuite/20_util/to_chars/lwg3266.cc: Likewise.
4125 * testsuite/20_util/to_chars/requirements.cc: Likewise.
4126 * testsuite/20_util/tuple/78939.cc: Likewise.
4127 * testsuite/20_util/tuple/apply/1.cc: Likewise.
4128 * testsuite/20_util/tuple/apply/2.cc: Likewise.
4129 * testsuite/20_util/tuple/cons/deduction.cc: Likewise.
4130 * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
4131 * testsuite/20_util/tuple/make_from_tuple/2.cc: Likewise.
4132 * testsuite/20_util/tuple/swap_cxx17.cc: Likewise.
4133 * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
4134 * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: Likewise.
4135 * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
4136 Likewise.
4137 * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
4138 * testsuite/20_util/void_t/1.cc: Likewise.
4139 * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
4140 * testsuite/24_iterators/container_access.cc: Likewise.
4141 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc:
4142 Likewise.
4143 * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc:
4144 Likewise.
4145 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
4146 Likewise.
4147 * testsuite/24_iterators/range_access/range_access_cpp17_neg.cc:
4148 Likewise.
4149 * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
4150 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc:
4151 Likewise.
4152 * testsuite/26_numerics/headers/cmath/hypot.cc: Likewise.
4153 * testsuite/26_numerics/headers/cmath/special_functions_global.cc:
4154 Likewise.
4155 * testsuite/26_numerics/lcm/1.cc: Likewise.
4156 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
4157 * testsuite/26_numerics/valarray/deduction.cc: Likewise.
4158 * testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc:
4159 Likewise.
4160 * testsuite/27_io/manipulators/standard/char/quoted_sv.cc:
4161 Likewise.
4162 * testsuite/27_io/manipulators/standard/wchar_t/quoted_sv.cc:
4163 Likewise.
4164 * testsuite/27_io/types/4.cc: Likewise.
4165 * testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise.
4166 * testsuite/libstdc++-prettyprinters/91997.cc: Likewise.
4167 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
4168
4169 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4170
4171 * testsuite/20_util/function_objects/searchers.cc: Remove
4172 -std=gnu++17 from dg-options directive.
4173 * testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc:
4174 Likewise.
4175 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
4176 Likewise.
4177 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc:
4178 Likewise.
4179 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94831.cc:
4180 Likewise.
4181 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc:
4182 Likewise.
4183 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
4184 Likewise.
4185 * testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc:
4186 Likewise.
4187 * testsuite/25_algorithms/clamp/1.cc: Likewise.
4188 * testsuite/25_algorithms/clamp/2.cc: Likewise.
4189 * testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
4190 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc:
4191 Likewise.
4192 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/pod.cc:
4193 Likewise.
4194 * testsuite/25_algorithms/for_each/for_each_n.cc: Likewise.
4195 * testsuite/25_algorithms/for_each/for_each_n_debug.cc:
4196 Likewise.
4197 * testsuite/25_algorithms/sample/1.cc: Likewise.
4198 * testsuite/25_algorithms/sample/2.cc: Likewise.
4199 * testsuite/25_algorithms/sample/3.cc: Likewise.
4200 * testsuite/25_algorithms/sample/81221.cc: Likewise.
4201 * testsuite/25_algorithms/search/searcher.cc: Likewise.
4202 * testsuite/26_numerics/exclusive_scan/1.cc: Likewise.
4203 * testsuite/26_numerics/inclusive_scan/1.cc: Likewise.
4204 * testsuite/26_numerics/reduce/1.cc: Likewise.
4205 * testsuite/26_numerics/reduce/2.cc: Likewise.
4206 * testsuite/26_numerics/transform_exclusive_scan/1.cc: Likewise.
4207 * testsuite/26_numerics/transform_inclusive_scan/1.cc: Likewise.
4208 * testsuite/26_numerics/transform_reduce/1.cc: Likewise.
4209
4210 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4211
4212 * testsuite/23_containers/array/cons/deduction.cc: Remove
4213 -std=gnu++17 from dg-options directive.
4214 * testsuite/23_containers/array/cons/deduction_neg.cc: Likewise.
4215 * testsuite/23_containers/array/element_access/constexpr_c++17.cc:
4216 Likewise.
4217 * testsuite/23_containers/array/requirements/constexpr_iter.cc:
4218 Likewise.
4219 * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
4220 Likewise.
4221 * testsuite/23_containers/deque/cons/deduction.cc: Likewise.
4222 * testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc:
4223 Likewise.
4224 * testsuite/23_containers/forward_list/cons/deduction.cc:
4225 Likewise.
4226 * testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc:
4227 Likewise.
4228 * testsuite/23_containers/list/cons/deduction.cc: Likewise.
4229 * testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc:
4230 Likewise.
4231 * testsuite/23_containers/map/cons/deduction.cc: Likewise.
4232 * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
4233 * testsuite/23_containers/map/modifiers/insert/83226.cc:
4234 Likewise.
4235 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
4236 Likewise.
4237 * testsuite/23_containers/map/modifiers/merge.cc: Likewise.
4238 * testsuite/23_containers/map/modifiers/try_emplace/1.cc:
4239 Likewise.
4240 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
4241 * testsuite/23_containers/multimap/modifiers/extract.cc:
4242 Likewise.
4243 * testsuite/23_containers/multimap/modifiers/merge.cc: Likewise.
4244 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
4245 * testsuite/23_containers/multiset/modifiers/extract.cc:
4246 Likewise.
4247 * testsuite/23_containers/multiset/modifiers/merge.cc: Likewise.
4248 * testsuite/23_containers/priority_queue/deduction.cc: Likewise.
4249 * testsuite/23_containers/queue/deduction.cc: Likewise.
4250 * testsuite/23_containers/queue/members/emplace_cxx17_return.cc:
4251 Likewise.
4252 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
4253 * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
4254 * testsuite/23_containers/set/modifiers/merge.cc: Likewise.
4255 * testsuite/23_containers/set/modifiers/node_swap.cc: Likewise.
4256 * testsuite/23_containers/stack/deduction.cc: Likewise.
4257 * testsuite/23_containers/stack/members/emplace_cxx17_return.cc:
4258 Likewise.
4259 * testsuite/23_containers/unordered_map/cons/deduction.cc:
4260 Likewise.
4261 * testsuite/23_containers/unordered_map/modifiers/extract.cc:
4262 Likewise.
4263 * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
4264 Likewise.
4265 * testsuite/23_containers/unordered_map/modifiers/merge.cc:
4266 Likewise.
4267 * testsuite/23_containers/unordered_map/modifiers/try_emplace.cc:
4268 Likewise.
4269 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
4270 Likewise.
4271 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
4272 Likewise.
4273 * testsuite/23_containers/unordered_multimap/modifiers/merge.cc:
4274 Likewise.
4275 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
4276 Likewise.
4277 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
4278 Likewise.
4279 * testsuite/23_containers/unordered_multiset/modifiers/merge.cc:
4280 Likewise.
4281 * testsuite/23_containers/unordered_set/cons/deduction.cc:
4282 Likewise.
4283 * testsuite/23_containers/unordered_set/modifiers/extract.cc:
4284 Likewise.
4285 * testsuite/23_containers/unordered_set/modifiers/merge.cc:
4286 Likewise.
4287 * testsuite/23_containers/vector/bool/emplace_cxx17_return.cc:
4288 Likewise.
4289 * testsuite/23_containers/vector/cons/89164_c++17.cc: Likewise.
4290 * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
4291 * testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc:
4292 Likewise.
4293
4294 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4295
4296 * testsuite/21_strings/basic_string/79162.cc: Remove
4297 -std=gnu++17 from dg-options directive.
4298 * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
4299 * testsuite/21_strings/basic_string/cons/char/79162.cc:
4300 Likewise.
4301 * testsuite/21_strings/basic_string/cons/char/86138.cc:
4302 Likewise.
4303 * testsuite/21_strings/basic_string/cons/char/9.cc: Likewise.
4304 * testsuite/21_strings/basic_string/cons/char/deduction.cc:
4305 Likewise.
4306 * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc:
4307 Likewise.
4308 * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
4309 * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc:
4310 Likewise.
4311 * testsuite/21_strings/basic_string/cons/wchar_t/86138.cc:
4312 Likewise.
4313 * testsuite/21_strings/basic_string/cons/wchar_t/9.cc: Likewise.
4314 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
4315 Likewise.
4316 * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
4317 Likewise.
4318 * testsuite/21_strings/basic_string/hash/hash.cc: Likewise.
4319 * testsuite/21_strings/basic_string/lwg2758.cc: Likewise.
4320 * testsuite/21_strings/basic_string/lwg2946.cc: Likewise.
4321 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
4322 Likewise.
4323 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
4324 Likewise.
4325 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
4326 Likewise.
4327 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
4328 Likewise.
4329 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
4330 Likewise.
4331 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
4332 Likewise.
4333 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
4334 Likewise.
4335 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
4336 Likewise.
4337 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
4338 Likewise.
4339 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
4340 Likewise.
4341 * testsuite/21_strings/basic_string/operations/data/char/2.cc:
4342 Likewise.
4343 * testsuite/21_strings/basic_string/operations/data/char/86169.cc:
4344 Likewise.
4345 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc:
4346 Likewise.
4347 * testsuite/21_strings/basic_string/operations/find/char/5.cc:
4348 Likewise.
4349 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
4350 Likewise.
4351 * testsuite/21_strings/basic_string/operators/char/5.cc:
4352 Likewise.
4353 * testsuite/21_strings/basic_string/operators/wchar_t/5.cc:
4354 Likewise.
4355 * testsuite/21_strings/basic_string_view/capacity/1.cc:
4356 Likewise.
4357 * testsuite/21_strings/basic_string_view/capacity/empty_neg.cc:
4358 Likewise.
4359 * testsuite/21_strings/basic_string_view/cons/char/1.cc:
4360 Likewise.
4361 * testsuite/21_strings/basic_string_view/cons/char/2.cc:
4362 Likewise.
4363 * testsuite/21_strings/basic_string_view/cons/char/3.cc:
4364 Likewise.
4365 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
4366 Likewise.
4367 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
4368 Likewise.
4369 * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc:
4370 Likewise.
4371 * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc:
4372 Likewise.
4373 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
4374 Likewise.
4375 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
4376 Likewise.
4377 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
4378 Likewise.
4379 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
4380 Likewise.
4381 * testsuite/21_strings/basic_string_view/element_access/char/constexpr.cc:
4382 Likewise.
4383 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
4384 Likewise.
4385 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
4386 Likewise.
4387 * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
4388 Likewise.
4389 * testsuite/21_strings/basic_string_view/element_access/char/front_back_constexpr.cc:
4390 Likewise.
4391 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
4392 Likewise.
4393 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
4394 Likewise.
4395 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
4396 Likewise.
4397 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
4398 Likewise.
4399 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr.cc:
4400 Likewise.
4401 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
4402 Likewise.
4403 * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
4404 Likewise.
4405 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
4406 Likewise.
4407 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
4408 Likewise.
4409 * testsuite/21_strings/basic_string_view/include.cc: Likewise.
4410 * testsuite/21_strings/basic_string_view/inserters/94051.cc:
4411 Likewise.
4412 * testsuite/21_strings/basic_string_view/inserters/char/1.cc:
4413 Likewise.
4414 * testsuite/21_strings/basic_string_view/inserters/char/2.cc:
4415 Likewise.
4416 * testsuite/21_strings/basic_string_view/inserters/char/3.cc:
4417 Likewise.
4418 * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
4419 Likewise.
4420 * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
4421 Likewise.
4422 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
4423 Likewise.
4424 * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
4425 Likewise.
4426 * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
4427 Likewise.
4428 * testsuite/21_strings/basic_string_view/literals/types.cc:
4429 Likewise.
4430 * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
4431 Likewise.
4432 * testsuite/21_strings/basic_string_view/literals/values.cc:
4433 Likewise.
4434 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
4435 Likewise.
4436 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
4437 Likewise.
4438 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
4439 Likewise.
4440 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
4441 Likewise.
4442 * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
4443 Likewise.
4444 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
4445 Likewise.
4446 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
4447 Likewise.
4448 * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
4449 Likewise.
4450 * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
4451 Likewise.
4452 * testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc:
4453 Likewise.
4454 * testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc:
4455 Likewise.
4456 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
4457 Likewise.
4458 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
4459 Likewise.
4460 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc:
4461 Likewise.
4462 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
4463 Likewise.
4464 * testsuite/21_strings/basic_string_view/operations/copy/char/2.cc:
4465 Likewise.
4466 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
4467 Likewise.
4468 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc:
4469 Likewise.
4470 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
4471 Likewise.
4472 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
4473 Likewise.
4474 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
4475 Likewise.
4476 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
4477 Likewise.
4478 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
4479 Likewise.
4480 * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
4481 Likewise.
4482 * testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc:
4483 Likewise.
4484 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
4485 Likewise.
4486 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
4487 Likewise.
4488 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
4489 Likewise.
4490 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
4491 Likewise.
4492 * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
4493 Likewise.
4494 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
4495 Likewise.
4496 * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
4497 Likewise.
4498 * testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc:
4499 Likewise.
4500 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
4501 Likewise.
4502 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
4503 Likewise.
4504 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
4505 Likewise.
4506 * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
4507 Likewise.
4508 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
4509 Likewise.
4510 * testsuite/21_strings/basic_string_view/operations/substr/char/83511.cc:
4511 Likewise.
4512 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
4513 Likewise.
4514 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/83511.cc:
4515 Likewise.
4516 * testsuite/21_strings/basic_string_view/operators/char/2.cc:
4517 Likewise.
4518 * testsuite/21_strings/basic_string_view/operators/char/89446.cc:
4519 Likewise.
4520 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
4521 Likewise.
4522 * testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc:
4523 Likewise.
4524 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
4525 Likewise.
4526 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
4527 Likewise.
4528 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
4529 Likewise.
4530 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
4531 Likewise.
4532 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
4533 Likewise.
4534 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
4535 Likewise.
4536 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc:
4537 Likewise.
4538 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
4539 Likewise.
4540 * testsuite/21_strings/basic_string_view/requirements/traits_neg.cc:
4541 Likewise.
4542 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
4543 Likewise.
4544 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
4545 * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
4546 * testsuite/21_strings/char_traits/requirements/char/99181.cc:
4547 Likewise.
4548 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
4549
4550 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4551
4552 * testsuite/20_util/memory_resource/1.cc: Remove -std=gnu++17
4553 from dg-options directive.
4554 * testsuite/20_util/memory_resource/2.cc: Likewise.
4555 * testsuite/20_util/monotonic_buffer_resource/1.cc: Likewise.
4556 * testsuite/20_util/monotonic_buffer_resource/93208.cc:
4557 Likewise.
4558 * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
4559 Likewise.
4560 * testsuite/20_util/monotonic_buffer_resource/deallocate.cc:
4561 Likewise.
4562 * testsuite/20_util/monotonic_buffer_resource/release.cc:
4563 Likewise.
4564 * testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc:
4565 Likewise.
4566 * testsuite/20_util/polymorphic_allocator/1.cc: Likewise.
4567 * testsuite/20_util/polymorphic_allocator/construct_pair.cc:
4568 Likewise.
4569 * testsuite/20_util/polymorphic_allocator/resource.cc: Likewise.
4570 * testsuite/20_util/polymorphic_allocator/select.cc: Likewise.
4571 * testsuite/20_util/synchronized_pool_resource/allocate.cc:
4572 Likewise.
4573 * testsuite/20_util/synchronized_pool_resource/allocate_single.cc:
4574 Likewise.
4575 * testsuite/20_util/synchronized_pool_resource/cons.cc:
4576 Likewise.
4577 * testsuite/20_util/synchronized_pool_resource/cons_single.cc:
4578 Likewise.
4579 * testsuite/20_util/synchronized_pool_resource/is_equal.cc:
4580 Likewise.
4581 * testsuite/20_util/synchronized_pool_resource/multithreaded.cc:
4582 Likewise.
4583 * testsuite/20_util/synchronized_pool_resource/options.cc:
4584 Likewise.
4585 * testsuite/20_util/synchronized_pool_resource/release.cc:
4586 Likewise.
4587 * testsuite/20_util/synchronized_pool_resource/release_single.cc:
4588 Likewise.
4589 * testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc:
4590 Likewise.
4591 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
4592 Likewise.
4593 * testsuite/20_util/unsynchronized_pool_resource/cons.cc:
4594 Likewise.
4595 * testsuite/20_util/unsynchronized_pool_resource/is_equal.cc:
4596 Likewise.
4597 * testsuite/20_util/unsynchronized_pool_resource/options.cc:
4598 Likewise.
4599 * testsuite/20_util/unsynchronized_pool_resource/release.cc:
4600 Likewise.
4601 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
4602 Likewise.
4603 * testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise.
4604 * testsuite/23_containers/deque/types/pmr_typedefs_debug.cc:
4605 Likewise.
4606 * testsuite/23_containers/forward_list/pmr_typedefs.cc:
4607 Likewise.
4608 * testsuite/23_containers/forward_list/pmr_typedefs_debug.cc:
4609 Likewise.
4610 * testsuite/23_containers/list/pmr_typedefs.cc: Likewise.
4611 * testsuite/23_containers/list/pmr_typedefs_debug.cc: Likewise.
4612 * testsuite/23_containers/map/pmr_typedefs.cc: Likewise.
4613 * testsuite/23_containers/map/pmr_typedefs_debug.cc: Likewise.
4614 * testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise.
4615 * testsuite/23_containers/multimap/pmr_typedefs_debug.cc:
4616 Likewise.
4617 * testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise.
4618 * testsuite/23_containers/multiset/pmr_typedefs_debug.cc:
4619 Likewise.
4620 * testsuite/23_containers/set/pmr_typedefs.cc: Likewise.
4621 * testsuite/23_containers/set/pmr_typedefs_debug.cc: Likewise.
4622 * testsuite/23_containers/unordered_map/pmr_typedefs.cc:
4623 Likewise.
4624 * testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc:
4625 Likewise.
4626 * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc:
4627 Likewise.
4628 * testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc:
4629 Likewise.
4630 * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc:
4631 Likewise.
4632 * testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc:
4633 Likewise.
4634 * testsuite/23_containers/unordered_set/pmr_typedefs.cc:
4635 Likewise.
4636 * testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc:
4637 Likewise.
4638 * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise.
4639 * testsuite/23_containers/vector/types/pmr_typedefs_debug.cc:
4640 Likewise.
4641 * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
4642
4643 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4644
4645 * testsuite/29_atomics/atomic/69769.cc: Remove -std=gnu++17 from
4646 dg-options.
4647 * testsuite/29_atomics/atomic/is_always_lock_free.cc:
4648 * testsuite/29_atomics/atomic/requirements/typedefs.cc:
4649 * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc:
4650 * testsuite/29_atomics/atomic_integral/requirements/typedefs.cc:
4651 * testsuite/30_threads/lock_guard/cons/deduction.cc: Likewise.
4652 * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
4653 * testsuite/30_threads/scoped_lock/cons/deduction.cc: Likewise.
4654 * testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc:
4655 Likewise.
4656 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc:
4657 Likewise.
4658 * testsuite/30_threads/shared_lock/70766.cc: Likewise.
4659 * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
4660 * testsuite/30_threads/shared_mutex/cons/assign_neg.cc:
4661 Likewise.
4662 * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise.
4663 * testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
4664 Likewise.
4665 * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
4666 * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
4667 * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
4668 * testsuite/30_threads/unique_lock/cons/deduction.cc: Likewise.
4669
4670 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4671
4672 * testsuite/20_util/any/assign/1.cc: Remove -std=gnu++17 from
4673 dg-options directive.
4674 * testsuite/20_util/any/assign/2.cc: Likewise.
4675 * testsuite/20_util/any/assign/emplace.cc: Likewise.
4676 * testsuite/20_util/any/assign/exception.cc: Likewise.
4677 * testsuite/20_util/any/assign/self.cc: Likewise.
4678 * testsuite/20_util/any/cons/1.cc: Likewise.
4679 * testsuite/20_util/any/cons/2.cc: Likewise.
4680 * testsuite/20_util/any/cons/90415.cc: Likewise.
4681 * testsuite/20_util/any/cons/92156.cc: Likewise.
4682 * testsuite/20_util/any/cons/aligned.cc: Likewise.
4683 * testsuite/20_util/any/cons/explicit.cc: Likewise.
4684 * testsuite/20_util/any/cons/in_place.cc: Likewise.
4685 * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
4686 * testsuite/20_util/any/make_any.cc: Likewise.
4687 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
4688 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
4689 * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
4690 * testsuite/20_util/any/misc/swap.cc: Likewise.
4691 * testsuite/20_util/any/modifiers/1.cc: Likewise.
4692 * testsuite/20_util/any/modifiers/83658.cc: Likewise.
4693 * testsuite/20_util/any/modifiers/92156.cc: Likewise.
4694 * testsuite/20_util/any/observers/type.cc: Likewise.
4695 * testsuite/20_util/any/requirements.cc: Likewise.
4696 * testsuite/20_util/any/typedefs.cc: Likewise.
4697 * testsuite/20_util/optional/77288.cc: Likewise.
4698 * testsuite/20_util/optional/84601.cc: Likewise.
4699 * testsuite/20_util/optional/assignment/1.cc: Likewise.
4700 * testsuite/20_util/optional/assignment/2.cc: Likewise.
4701 * testsuite/20_util/optional/assignment/3.cc: Likewise.
4702 * testsuite/20_util/optional/assignment/4.cc: Likewise.
4703 * testsuite/20_util/optional/assignment/5.cc: Likewise.
4704 * testsuite/20_util/optional/assignment/6.cc: Likewise.
4705 * testsuite/20_util/optional/assignment/7.cc: Likewise.
4706 * testsuite/20_util/optional/assignment/8.cc: Likewise.
4707 * testsuite/20_util/optional/assignment/9.cc: Likewise.
4708 * testsuite/20_util/optional/bad_access.cc: Likewise.
4709 * testsuite/20_util/optional/cons/77727.cc: Likewise.
4710 * testsuite/20_util/optional/cons/85642.cc: Likewise.
4711 * testsuite/20_util/optional/cons/copy.cc: Likewise.
4712 * testsuite/20_util/optional/cons/deduction.cc: Likewise.
4713 * testsuite/20_util/optional/cons/default.cc: Likewise.
4714 * testsuite/20_util/optional/cons/move.cc: Likewise.
4715 * testsuite/20_util/optional/cons/trivial.cc: Likewise.
4716 * testsuite/20_util/optional/cons/value.cc: Likewise.
4717 * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
4718 * testsuite/20_util/optional/constexpr/cons/default.cc:
4719 Likewise.
4720 * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
4721 * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
4722 * testsuite/20_util/optional/constexpr/make_optional.cc:
4723 Likewise.
4724 * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
4725 * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
4726 * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
4727 * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
4728 * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
4729 * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
4730 * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
4731 * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
4732 * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
4733 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
4734 * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
4735 * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
4736 * testsuite/20_util/optional/hash.cc: Likewise.
4737 * testsuite/20_util/optional/in_place.cc: Likewise.
4738 * testsuite/20_util/optional/make_optional.cc: Likewise.
4739 * testsuite/20_util/optional/nullopt.cc: Likewise.
4740 * testsuite/20_util/optional/observers/1.cc: Likewise.
4741 * testsuite/20_util/optional/observers/2.cc: Likewise.
4742 * testsuite/20_util/optional/observers/3.cc: Likewise.
4743 * testsuite/20_util/optional/observers/4.cc: Likewise.
4744 * testsuite/20_util/optional/observers/5.cc: Likewise.
4745 * testsuite/20_util/optional/observers/6.cc: Likewise.
4746 * testsuite/20_util/optional/relops/1.cc: Likewise.
4747 * testsuite/20_util/optional/relops/2.cc: Likewise.
4748 * testsuite/20_util/optional/relops/3.cc: Likewise.
4749 * testsuite/20_util/optional/relops/4.cc: Likewise.
4750 * testsuite/20_util/optional/relops/5.cc: Likewise.
4751 * testsuite/20_util/optional/relops/6.cc: Likewise.
4752 * testsuite/20_util/optional/relops/7.cc: Likewise.
4753 * testsuite/20_util/optional/requirements.cc: Likewise.
4754 * testsuite/20_util/optional/swap/1.cc: Likewise.
4755 * testsuite/20_util/optional/swap/2.cc: Likewise.
4756 * testsuite/20_util/optional/typedefs.cc: Likewise.
4757 * testsuite/20_util/variant/80165.cc: Likewise.
4758 * testsuite/20_util/variant/85183.cc: Likewise.
4759 * testsuite/20_util/variant/86874.cc: Likewise.
4760 * testsuite/20_util/variant/87431.cc: Likewise.
4761 * testsuite/20_util/variant/87619.cc: Likewise.
4762 * testsuite/20_util/variant/91807.cc: Likewise.
4763 * testsuite/20_util/variant/any.cc: Likewise.
4764 * testsuite/20_util/variant/compile.cc: Likewise.
4765 * testsuite/20_util/variant/deduction.cc: Likewise.
4766 * testsuite/20_util/variant/exception_safety.cc: Likewise.
4767 * testsuite/20_util/variant/hash.cc: Likewise.
4768 * testsuite/20_util/variant/index_type.cc: Likewise.
4769 * testsuite/20_util/variant/relops/89851.cc: Likewise.
4770 * testsuite/20_util/variant/relops/90008.cc: Likewise.
4771 * testsuite/20_util/variant/run.cc: Likewise.
4772 * testsuite/20_util/variant/visit.cc: Likewise.
4773
4774 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4775
4776 * testsuite/27_io/basic_filebuf/open/char/path.cc: Remove
4777 -std=gnu++17 from dg-options directive.
4778 * testsuite/27_io/basic_fstream/cons/char/path.cc: Likewise.
4779 * testsuite/27_io/basic_fstream/open/char/path.cc: Likewise.
4780 * testsuite/27_io/basic_ifstream/cons/char/path.cc: Likewise.
4781 * testsuite/27_io/basic_ifstream/open/char/path.cc: Likewise.
4782 * testsuite/27_io/basic_ofstream/cons/char/path.cc: Likewise.
4783 * testsuite/27_io/basic_ofstream/open/char/path.cc: Likewise.
4784 * testsuite/27_io/filesystem/directory_entry/86597.cc: Likewise.
4785 * testsuite/27_io/filesystem/directory_entry/lwg3171.cc:
4786 Likewise.
4787 * testsuite/27_io/filesystem/file_status/1.cc: Likewise.
4788 * testsuite/27_io/filesystem/filesystem_error/cons.cc: Likewise.
4789 * testsuite/27_io/filesystem/filesystem_error/copy.cc: Likewise.
4790 * testsuite/27_io/filesystem/iterators/91067.cc: Likewise.
4791 * testsuite/27_io/filesystem/iterators/caching.cc: Likewise.
4792 * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
4793 Likewise.
4794 * testsuite/27_io/filesystem/iterators/pop.cc: Likewise.
4795 * testsuite/27_io/filesystem/iterators/recursion_pending.cc:
4796 Likewise.
4797 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
4798 Likewise.
4799 * testsuite/27_io/filesystem/operations/absolute.cc: Likewise.
4800 * testsuite/27_io/filesystem/operations/all.cc: Likewise.
4801 * testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
4802 * testsuite/27_io/filesystem/operations/copy.cc: Likewise.
4803 * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
4804 * testsuite/27_io/filesystem/operations/create_directories.cc:
4805 Likewise.
4806 * testsuite/27_io/filesystem/operations/create_directory.cc:
4807 Likewise.
4808 * testsuite/27_io/filesystem/operations/create_symlink.cc:
4809 Likewise.
4810 * testsuite/27_io/filesystem/operations/current_path.cc:
4811 Likewise.
4812 * testsuite/27_io/filesystem/operations/equivalent.cc: Likewise.
4813 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
4814 * testsuite/27_io/filesystem/operations/file_size.cc: Likewise.
4815 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
4816 * testsuite/27_io/filesystem/operations/last_write_time.cc:
4817 Likewise.
4818 * testsuite/27_io/filesystem/operations/permissions.cc:
4819 Likewise.
4820 * testsuite/27_io/filesystem/operations/proximate.cc: Likewise.
4821 * testsuite/27_io/filesystem/operations/read_symlink.cc:
4822 Likewise.
4823 * testsuite/27_io/filesystem/operations/relative.cc: Likewise.
4824 * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
4825 * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
4826 * testsuite/27_io/filesystem/operations/rename.cc: Likewise.
4827 * testsuite/27_io/filesystem/operations/resize_file.cc:
4828 Likewise.
4829 * testsuite/27_io/filesystem/operations/space.cc: Likewise.
4830 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
4831 * testsuite/27_io/filesystem/operations/symlink_status.cc:
4832 Likewise.
4833 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
4834 Likewise.
4835 * testsuite/27_io/filesystem/operations/weakly_canonical.cc:
4836 Likewise.
4837 * testsuite/27_io/filesystem/path/append/path.cc: Likewise.
4838 * testsuite/27_io/filesystem/path/append/source.cc: Likewise.
4839 * testsuite/27_io/filesystem/path/assign/assign.cc: Likewise.
4840 * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
4841 * testsuite/27_io/filesystem/path/compare/compare.cc: Likewise.
4842 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
4843 * testsuite/27_io/filesystem/path/compare/path.cc: Likewise.
4844 * testsuite/27_io/filesystem/path/compare/strings.cc: Likewise.
4845 * testsuite/27_io/filesystem/path/concat/92853.cc: Likewise.
4846 * testsuite/27_io/filesystem/path/concat/94063.cc: Likewise.
4847 * testsuite/27_io/filesystem/path/concat/path.cc: Likewise.
4848 * testsuite/27_io/filesystem/path/concat/strings.cc: Likewise.
4849 * testsuite/27_io/filesystem/path/construct/80762.cc: Likewise.
4850 * testsuite/27_io/filesystem/path/construct/90281.cc: Likewise.
4851 * testsuite/27_io/filesystem/path/construct/90634.cc: Likewise.
4852 * testsuite/27_io/filesystem/path/construct/copy.cc: Likewise.
4853 * testsuite/27_io/filesystem/path/construct/default.cc:
4854 Likewise.
4855 * testsuite/27_io/filesystem/path/construct/format.cc: Likewise.
4856 * testsuite/27_io/filesystem/path/construct/locale.cc: Likewise.
4857 * testsuite/27_io/filesystem/path/construct/range.cc: Likewise.
4858 * testsuite/27_io/filesystem/path/construct/string_view.cc:
4859 Likewise.
4860 * testsuite/27_io/filesystem/path/decompose/extension.cc:
4861 Likewise.
4862 * testsuite/27_io/filesystem/path/decompose/filename.cc:
4863 Likewise.
4864 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
4865 Likewise.
4866 * testsuite/27_io/filesystem/path/decompose/relative_path.cc:
4867 Likewise.
4868 * testsuite/27_io/filesystem/path/decompose/root_directory.cc:
4869 Likewise.
4870 * testsuite/27_io/filesystem/path/decompose/root_name.cc:
4871 Likewise.
4872 * testsuite/27_io/filesystem/path/decompose/root_path.cc:
4873 Likewise.
4874 * testsuite/27_io/filesystem/path/decompose/stem.cc: Likewise.
4875 * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc:
4876 Likewise.
4877 * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise.
4878 * testsuite/27_io/filesystem/path/generation/normal.cc:
4879 Likewise.
4880 * testsuite/27_io/filesystem/path/generation/normal2.cc:
4881 Likewise.
4882 * testsuite/27_io/filesystem/path/generation/proximate.cc:
4883 Likewise.
4884 * testsuite/27_io/filesystem/path/generation/relative.cc:
4885 Likewise.
4886 * testsuite/27_io/filesystem/path/generic/94242.cc: Likewise.
4887 * testsuite/27_io/filesystem/path/generic/generic_string.cc:
4888 Likewise.
4889 * testsuite/27_io/filesystem/path/generic/utf.cc: Likewise.
4890 * testsuite/27_io/filesystem/path/generic/wchar_t.cc: Likewise.
4891 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
4892 * testsuite/27_io/filesystem/path/itr/components.cc: Likewise.
4893 * testsuite/27_io/filesystem/path/itr/traversal.cc: Likewise.
4894 * testsuite/27_io/filesystem/path/modifiers/clear.cc: Likewise.
4895 * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
4896 Likewise.
4897 * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc:
4898 Likewise.
4899 * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
4900 Likewise.
4901 * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
4902 Likewise.
4903 * testsuite/27_io/filesystem/path/modifiers/swap.cc: Likewise.
4904 * testsuite/27_io/filesystem/path/native/alloc.cc: Likewise.
4905 * testsuite/27_io/filesystem/path/native/string-char8_t.cc:
4906 Likewise.
4907 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
4908 * testsuite/27_io/filesystem/path/nonmember/append.cc: Likewise.
4909 * testsuite/27_io/filesystem/path/nonmember/cmp.cc: Likewise.
4910 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
4911 Likewise.
4912 * testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
4913 * testsuite/27_io/filesystem/path/query/empty_neg.cc:
4914 * testsuite/27_io/filesystem/path/query/has_extension.cc:
4915 Likewise.
4916 * testsuite/27_io/filesystem/path/query/has_filename.cc:
4917 Likewise.
4918 * testsuite/27_io/filesystem/path/query/has_parent_path.cc:
4919 Likewise.
4920 * testsuite/27_io/filesystem/path/query/has_relative_path.cc:
4921 Likewise.
4922 * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
4923 Likewise.
4924 * testsuite/27_io/filesystem/path/query/has_root_name.cc:
4925 Likewise.
4926 * testsuite/27_io/filesystem/path/query/has_root_path.cc:
4927 Likewise.
4928 * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
4929 * testsuite/27_io/filesystem/path/query/is_absolute.cc:
4930 Likewise.
4931 * testsuite/27_io/filesystem/path/query/is_relative.cc:
4932 Likewise.
4933 * testsuite/experimental/filesystem/path/construct/string_view.cc:
4934 Likewise.
4935
4936 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4937
4938 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc:
4939 Remove -std=gnu++17 from dg-options.
4940 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
4941 Likewise.
4942 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc:
4943 Likewise.
4944 * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc:
4945 Likewise.
4946 * testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise.
4947 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
4948 Likewise.
4949 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
4950 Likewise.
4951 * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc:
4952 Likewise.
4953 * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc:
4954 Likewise.
4955 * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
4956 Likewise.
4957 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
4958 Likewise.
4959 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
4960 Likewise.
4961 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
4962 Likewise.
4963 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc:
4964 Likewise.
4965 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc:
4966 Likewise.
4967 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc:
4968 Likewise.
4969 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
4970 Likewise.
4971 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
4972 Likewise.
4973 * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc:
4974 Likewise.
4975 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
4976 Likewise.
4977 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc:
4978 Likewise.
4979 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
4980 Likewise.
4981 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
4982 Likewise.
4983 * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc:
4984 Likewise.
4985 * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc:
4986 Likewise.
4987 * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc:
4988 Likewise.
4989 * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc:
4990 Likewise.
4991 * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc:
4992 Likewise.
4993 * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc:
4994 Likewise.
4995 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
4996 Likewise.
4997 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
4998 Likewise.
4999 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc:
5000 Likewise.
5001 * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc:
5002 Likewise.
5003 * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
5004 Likewise.
5005 * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc:
5006 Likewise.
5007 * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
5008 Likewise.
5009 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc:
5010 Likewise.
5011 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
5012 Likewise.
5013 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
5014 Likewise.
5015 * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
5016 Likewise.
5017 * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: Likewise.
5018 * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc:
5019 Likewise.
5020 * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
5021 Likewise.
5022 * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
5023 Likewise.
5024 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc:
5025 Likewise.
5026 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
5027 Likewise.
5028 * testsuite/25_algorithms/pstl/alg_sorting/set.cc: Likewise.
5029 * testsuite/25_algorithms/pstl/alg_sorting/sort.cc: Likewise.
5030 * testsuite/25_algorithms/pstl/feature_test-2.cc: Likewise.
5031 * testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise.
5032 * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise.
5033 * testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise.
5034 * testsuite/25_algorithms/pstl/feature_test.cc: Likewise.
5035 * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc:
5036 Likewise.
5037 * testsuite/26_numerics/pstl/numeric_ops/reduce.cc: Likewise.
5038 * testsuite/26_numerics/pstl/numeric_ops/scan.cc: Likewise.
5039 * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
5040 Likewise.
5041 * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc:
5042 Likewise.
5043
5044 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
5045
5046 * testsuite/20_util/scoped_allocator/69293_neg.cc: Add dg-error
5047 for additional errors in C++20.
5048 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
5049 Likewise.
5050 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
5051 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
5052
5053 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
5054
5055 * testsuite/20_util/variant/compile.cc: Rename 'any' to avoid
5056 clash with std::any.
5057
5058 2021-05-07 Jonathan Wakely <jwakely@redhat.com>
5059
5060 * include/std/istream (__rvalue_stream_extraction_t): Replace
5061 use of __rval_streamable.
5062 * include/std/ostream (__rvalue_stream_insertion_t): Likewise.
5063 (__rval_streamable): Remove.
5064 (_Require_derived_from_ios_base, __derived_from_ios_base): New
5065 helper for checking constraints.
5066 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Fix
5067 reference to the wrong subclause of the standard.
5068 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
5069 Likewise.
5070 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
5071 Likewise.
5072 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
5073 Likewise.
5074 * testsuite/27_io/basic_ostream/inserters_other/char/99692.cc:
5075 New test.
5076 * testsuite/27_io/filesystem/path/io/dr2989.cc: Adjust pruned
5077 errors.
5078
5079 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
5080
5081 * include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
5082 Improve static_assert messages.
5083 * testsuite/25_algorithms/copy/58982.cc: Adjust expected output.
5084 * testsuite/25_algorithms/copy_n/58982.cc: Likewise.
5085
5086 2021-05-06 Patrick Palka <ppalka@redhat.com>
5087
5088 * include/std/ranges (filter_view::_Iterator::base): Make the
5089 const& overload unconstrained and return a const reference as
5090 per LWG 3533. Make unconditionally noexcept.
5091 (transform_view::_Iterator::base): Likewise.
5092 (elements_view::_Iterator::base): Likewise.
5093
5094 2021-05-06 Patrick Palka <ppalka@redhat.com>
5095
5096 * include/bits/stl_iterator.h (move_iterator::base): Make the
5097 const& overload unconstrained and return a const reference as
5098 per LWG 3391. Make unconditionally noexcept.
5099 (counted_iterator::base): Likewise.
5100 * testsuite/24_iterators/move_iterator/lwg3391.cc: New test.
5101 * testsuite/24_iterators/move_iterator/move_only.cc: Adjust
5102 has_member_base concept to decay-copy the result of base().
5103
5104 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
5105
5106 * include/std/type_traits (remove_cvref_t): Define in terms of
5107 remove_cvref.
5108 * testsuite/20_util/remove_cvref/value.cc: Check alias.
5109
5110 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
5111
5112 Revert:
5113 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
5114
5115 * include/std/charconv (__from_chars_alnum): Pass unsigned
5116 char to std::isdigit.
5117
5118 2021-05-05 Patrick Palka <ppalka@redhat.com>
5119
5120 * include/bits/ranges_util.h (enable_borrowed_range<subrange>):
5121 Remove constraints on this partial specialization.
5122 * include/std/ranges (enable_borrowed_range<iota_view>):
5123 Likewise.
5124
5125 2021-05-05 Patrick Palka <ppalka@redhat.com>
5126
5127 * include/std/ranges (transform_view::_Iterator::iter_swap):
5128 Remove as per LWG 3520.
5129 (join_view::_Iterator::iter_swap): Add indirectly_swappable
5130 constraint as per LWG 3517.
5131
5132 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
5133
5134 * testsuite/20_util/function_objects/invoke/3.cc: Check feature
5135 test macro.
5136 * testsuite/20_util/function_objects/invoke/version.cc: New test.
5137
5138 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
5139
5140 * include/std/charconv (__from_chars_alnum): Pass unsigned
5141 char to std::isdigit.
5142
5143 2021-05-05 Corentin Gay <gay@adacore.com>
5144
5145 * acinclude.m4: Add VxWorks-specific case for the
5146 configuration of ctypes.
5147 * configure: Regenerate.
5148 * config/locale/vxworks/ctype_members.cc: Add VxWorks-specific
5149 version.
5150 * config/os/vxworks/ctype_base.h: Adjust for VxWorks7+.
5151 * config/os/vxworks/ctype_configure_char.cc: Likewise.
5152 * config/os/vxworks/ctype_inline.h: Likewise.
5153 * testsuite/28_regex/traits/char/isctype.cc: Defines
5154 NEWLINE_IN_CLASS_BLANK if the target is VxWorks.
5155 * testsuite/28_regex/traits/wchar_t/isctype.cc: Likewise.
5156
5157 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
5158
5159 * include/std/future (promise::set_value): Check for existence
5160 of shared state before dereferncing it.
5161 (promise::set_exception, promise::set_value_at_thread_exit)
5162 (promise::set_exception_at_thread_exit): Likewise.
5163 (promise<R&>::set_value, promise<R&>::set_exception)
5164 (promise<R&>::set_value_at_thread_exit)
5165 (promise<R&>::set_exception_at_thread_exit): Likewise.
5166 (promise<void>::set_value, promise<void>::set_exception)
5167 (promise<void>::set_value_at_thread_exit)
5168 (promise<void>::set_exception_at_thread_exit): Likewise.
5169 * testsuite/30_threads/promise/members/at_thread_exit2.cc:
5170 Remove unused variable.
5171
5172 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
5173
5174 * include/bits/basic_string.h (basic_string(const CharT*, const A&)):
5175 Do not do arithmetic on null pointer.
5176
5177 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
5178
5179 * include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
5180 (find_key_pointer(key_const_reference, false_type))
5181 (find_key_pointer(key_const_reference, true_type)): Do not
5182 dereference null pointer.
5183
5184 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
5185
5186 * testsuite/20_util/from_chars/3.cc: Use unsigned type to avoid
5187 overflow.
5188 * testsuite/24_iterators/reverse_iterator/2.cc: Do not add
5189 non-zero value to null pointer.
5190 * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc:
5191 Use past-the-end iterator for result.
5192 * testsuite/25_algorithms/move_backward/69478.cc: Likewise.
5193 * testsuite/25_algorithms/move_backward/93872.cc: Likewise.
5194
5195 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
5196
5197 PR libstdc++/100384
5198 * include/std/variant (__get_t): New alias template yielding the
5199 return type of std::get<N> on a variant.
5200 (__visit_result_t): New alias template yielding the result of
5201 std::visit.
5202 (__same_types): Move into namespace __detail::__variant.
5203 (__check_visitor_results): Likewise. Use __invoke_result_t and
5204 __get_t.
5205 (__check_visitor_result): Remove.
5206 (visit): Use __visit_result_t for return type.
5207 * testsuite/20_util/variant/100384.cc: New test.
5208
5209 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
5210
5211 * acinclude.m4 (GLIBCXX_ENABLE_INT128_FLOAT128): Remove
5212 checks for __int128 and rename to GLIBCXX_ENABLE_FLOAT128.
5213 * config.h.in: Regenerate.
5214 * configure: Regenerate.
5215 * configure.ac: Adjust to use GLIBCXX_ENABLE_FLOAT128.
5216 * include/bits/random.h (_Select_uint_least_t<s, 1>):
5217 Use __SIZEOF_INT128__ to decide whether to use __int128.
5218 * include/std/charconv (__to_chars_unsigned_type): Likewise.
5219
5220 2021-05-03 Gerald Pfeifer <gerald@pfeifer.com>
5221
5222 * doc/xml/manual/ctype.xml: Move unix.org reference to https.
5223 * doc/html/manual/facets.html: Regenerate.
5224
5225 2021-04-30 Patrick Palka <ppalka@redhat.com>
5226
5227 * include/std/ranges (__detail::__non_propating_cache): Define
5228 as per P2328.
5229 (join_view): Remove constraints on the value and reference types
5230 of the wrapped iterator type as per P2328.
5231 (join_view::_Iterator::_M_satisfy): Adjust as per P2328.
5232 (join_view::_Iterator::operator++): Likewise.
5233 (join_view::_M_inner): Use __non_propating_cache as per P2328.
5234 Remove now-redundant use of __maybe_present_t.
5235 * testsuite/std/ranges/adaptors/join.cc: Include <array>.
5236 (test10): New test.
5237
5238 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
5239
5240 * include/bits/basic_string.h (__cpp_lib_constexpr_string):
5241 Only define for C++17 and later.
5242 * include/std/version (__cpp_lib_semaphore): Fix condition
5243 to match the one in <semaphore>.
5244
5245 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
5246
5247 * acinclude.m4 (GLIBCXX_CHECK_INT64_T): Delete.
5248 * config.h.in: Regenerate.
5249 * configure: Regenerate.
5250 * configure.ac: Do not use GLIBCXX_CHECK_INT64_T.
5251 * include/bits/postypes.h: Remove include of <stdint.h> and
5252 definition/undefinition of the __STDC_LIMIT_MACROS and
5253 __STDC_CONSTANT_MACROS macros.
5254 (streamoff): Use __INT64_TYPE__ if defined.
5255
5256 2021-04-30 Patrick Palka <ppalka@redhat.com>
5257
5258 * include/std/ranges (split_view::_InnerIter::operator++):
5259 Depend on _Base instead of _Vp directly, as per LWG 3532.
5260
5261 2021-04-30 Patrick Palka <ppalka@redhat.com>
5262
5263 * include/bits/ranges_util.h (subrange::subrange): Avoid
5264 list-initialization in delegating constructor.
5265 * include/std/ranges (single_view): Replace implicit guide
5266 with explicit deduction guide that decays its argument.
5267 (_Single::operator()): Avoid CTAD when constructing the
5268 single_view object.
5269 (_Iota::operator()): Avoid list-initialization.
5270 (__detail::__can_filter_view, _Filter::operator()): Likewise.
5271 (__detail::__can_transform_view, _Transform::operator()): Likewise.
5272 (take_view::begin): Likewise.
5273 (__detail::__can_take_view, _Take::operator()): Likewise.
5274 (__detail::__can_take_while_view, _TakeWhile::operator()): Likewise.
5275 (__detail::__can_drop_view, _Drop::operator()): Likewise.
5276 (__detail::__can_drop_while_view, _DropWhile::operator()): Likewise.
5277 (split_view::split_view): Use views::single when initializing
5278 _M_pattern.
5279 (__detail::__can_split_view, _Split::operator()): Avoid
5280 list-initialization.
5281 (_Counted::operator()): Likewise.
5282 * testsuite/std/ranges/p2367.cc: New test.
5283
5284 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
5285
5286 PR libstdc++/60497
5287 * include/bits/basic_ios.tcc (basic_ios::copyfmt): use
5288 std::addressof.
5289 * include/bits/basic_string.tcc (basic_string::swap)
5290 (basic_string::assign): Likewise.
5291 * include/bits/deque.tcc (deque::operator=(const deque&)):
5292 Likewise.
5293 * include/bits/stl_tree.h (_Rb_tree::operator=(const * _Rb_tree&)):
5294 Likewise.
5295 * include/bits/vector.tcc (vector::operator=(const vector&)):
5296 Likewise.
5297
5298 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
5299
5300 * include/std/istream (operator>>(Istream&&, x&)): Simplify, as
5301 per LWG 1203.
5302 * include/std/ostream (operator<<(Ostream&&, const x&)):
5303 Likewise.
5304 * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc:
5305 Adjust dg-error pattern.
5306 * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc:
5307 Likewise.
5308 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Define
5309 is_extractable trait to replace std::__is_extractable. Make it
5310 work with rvalue streams as well as lvalues, to replace f() and
5311 g() helper functions.
5312 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
5313 Likewise.
5314 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
5315 Define is_insertable trait to replace std::__is_insertable. Make
5316 it work with rvalue streams as well as lvalues, to replace f()
5317 and g() helper functions.
5318 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
5319 Likewise.
5320 * testsuite/27_io/filesystem/path/io/dr2989.cc: Prune additional
5321 errors from new constraints.
5322 * testsuite/27_io/rvalue_streams-2.cc: Remove PR 80675 checks,
5323 which are no longer expected to compile.
5324 * testsuite/27_io/rvalue_streams.cc: Adjust existing test.
5325 Verify LWG 1203 changes.
5326
5327 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
5328
5329 PR libstdc++/100285
5330 * include/experimental/socket (__basic_socket_impl::set_option)
5331 (__basic_socket_impl::get_option) [!_GLIBCXX_HAVE_SYS_SOCKET_H]:
5332 Just set error code.
5333 * testsuite/experimental/net/socket/socket_base.cc: CHeck
5334 for <sys/socket.h> not <socket.h>.
5335
5336 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
5337
5338 PR libstdc++/100180
5339 PR libstdc++/100286
5340 PR libstdc++/100351
5341 * testsuite/experimental/net/internet/address/v4/comparisons.cc:
5342 Use new effective-target keyword.
5343 * testsuite/experimental/net/internet/address/v4/cons.cc:
5344 Likewise.
5345 * testsuite/experimental/net/internet/address/v4/creation.cc:
5346 Likewise.
5347 * testsuite/experimental/net/internet/address/v4/members.cc:
5348 Likewise.
5349 * testsuite/experimental/net/internet/address/v6/members.cc:
5350 Likewise.
5351 * testsuite/experimental/net/internet/resolver/base.cc:
5352 Likewise.
5353 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
5354 Likewise.
5355 * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
5356 Likewise.
5357 * testsuite/experimental/net/internet/socket/opt.cc:
5358 Likewise.
5359 * testsuite/experimental/net/internet/tcp.cc:
5360 Likewise.
5361 * testsuite/experimental/net/internet/udp.cc:
5362 Likewise.
5363 * testsuite/lib/libstdc++.exp (check_effective_target_net_ts_ip):
5364 New proc to check net_ts_ip et.
5365
5366 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5367
5368 PR libstdc++/97930
5369 * testsuite/20_util/pair/requirements/structural.cc: New test.
5370
5371 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5372
5373 * include/bits/stl_pair.h (pair) [__cplusplus > 202002]: Add
5374 new definitions for constructors and assignment operators using
5375 concepts for constraints.
5376 * testsuite/20_util/pair/cons/99957.cc: Disable for C++20 and
5377 later.
5378 * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust
5379 expected error messages to also match C++20 errors.
5380
5381 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5382
5383 PR libstdc++/99957
5384 * include/bits/stl_pair.h (_PCC::_MoveCopyPair, _PCC::_CopyMovePair):
5385 Combine and replace with ...
5386 (_PCC::_DeprConsPair): New SFINAE helper function.
5387 (pair): Merge preprocessor blocks so that all C++03 members
5388 are defined together at the end.
5389 (pair::pair(const _T1&, _U2&&), pair::pair(_U1&&, const _T2&)):
5390 Replace _T1 and _T2 parameters with __null_ptr_constant and
5391 adjust constraints.
5392 * testsuite/20_util/pair/40925.cc: Use nullptr instead of 0.
5393 * testsuite/20_util/pair/cons/explicit_construct.cc: Likewise.
5394 * testsuite/20_util/pair/cons/99957.cc: New test.
5395
5396 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5397
5398 * include/bits/basic_string.h (__cpp_lib_constexpr_string): Define.
5399 * include/std/version (__cpp_lib_constexpr_string): Define.
5400 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
5401 Check for __cpp_lib_constexpr_string.
5402 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
5403 Likewise.
5404 * testsuite/21_strings/char_traits/requirements/version.cc: New test.
5405
5406 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5407
5408 * doc/Makefile.am (stamp-pdf-doxygen): Improve comment about
5409 dealing with errors. Use '@' to prevent shell command being
5410 echoed.
5411 * doc/Makefile.in: Regenerate.
5412
5413 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
5414
5415 PR libstdc++/100298
5416 * include/bits/std_thread.h (thread::hardware_concurrency): Add
5417 missing noexcept to inline definition for non-gthreads targets.
5418
5419 2021-04-28 Patrick Palka <ppalka@redhat.com>
5420
5421 PR libstdc++/100187
5422 PR libstdc++/100237
5423 PR libstdc++/100249
5424 PR libstdc++/100287
5425 * include/bits/ranges_algo.h (__search_n_fn::operator()): Give
5426 the __value_comp lambda an explicit bool return type.
5427 (__is_permutation_fn::operator()): Give the __proj_scan local
5428 variable auto&& return type. Give the __comp_scan lambda an
5429 explicit bool return type.
5430 (__remove_fn::operator()): Give the __pred lambda an explicit
5431 bool return type.
5432 (__partition_fn::operator()): Don't std::move __first twice
5433 when returning an empty subrange.
5434 (__min_fn::operator()): Don't std::move __comp.
5435 (__max_fn::operator()): Likewise.
5436 (__minmax_fn::operator()): Likewise.
5437
5438 2021-04-27 Patrick Palka <ppalka@redhat.com>
5439
5440 PR libstdc++/100290
5441 * include/std/ranges (join_view::_Iterator::operator++): Correct
5442 the return type of the lambda to avoid returning a copy of
5443 _M_parent->_M_inner.
5444 * testsuite/std/ranges/adaptors/join.cc (test10): New test.
5445
5446 2021-04-27 Jakub Jelinek <jakub@redhat.com>
5447
5448 Revert:
5449 2021-04-22 Jakub Jelinek <jakub@redhat.com>
5450
5451 PR target/100182
5452 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
5453 ia32.
5454 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
5455 ia32.
5456
5457 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
5458
5459 * include/experimental/internet (address_v6::bytes_type): Adjust
5460 formatting.
5461 (basic_endpoint): Define _M_is_v6() to put all checks for
5462 AF_INET6 in one place.
5463 (basic_endpoint::resize): Simplify.
5464 (operator==(const tcp&, const tcp&)): Add constexpr and noexcept.
5465 (operator!=(const tcp&, const tcp&)): Likewise.
5466 (operator==(const udp&, const udp&)): Likewise.
5467 (operator!=(const udp&, const udp&)): Likewise.
5468 * testsuite/experimental/net/internet/tcp.cc: New test.
5469 * testsuite/experimental/net/internet/udp.cc: New test.
5470
5471 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
5472
5473 PR libstdc++/100286
5474 * include/experimental/internet (resolver_errc, resolver_category())
5475 (make_error_code, make_error_condition): Define unconditionally,
5476 only make enumerators and use of gai_strerror depend on the
5477 availability of <netdb.h>.
5478 (address_v4::to_string): Use correct constant for string length.
5479 (address_v4::to_string, address_v6::to_string): Define
5480 unconditionally, throw if unsupported.
5481 (make_address_v4, make_address_v6): Define unconditionally.
5482 Return an error if unsupported.
5483 (tcp, udp, v6_only, unicast::hops, multicast::*): Define
5484 conditionally,
5485 * testsuite/experimental/net/internet/socket/opt.cc: Check for
5486 <netinet/in.h> and <netinet/tcp.h> before using types from
5487 namespace net::ip.
5488
5489 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
5490
5491 PR libstdc++/100285
5492 * include/experimental/internet (resolver_base::flags):
5493 Define overloaded operators as hidden friends.
5494 * include/experimental/socket (socket_base::message_flags):
5495 Likewise.
5496
5497 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
5498
5499 * include/experimental/internet (tcp::no_delay, v6_only)
5500 (unicast::hops, multicast::hops, multicast::enable_loopback):
5501 Change access of base class and static data members. Add
5502 using-declaration for __socket_crtp::operator=(_Tp).
5503 (multicast::__mcastopt): New type.
5504 (multicast::join_group, multicast::leave_group): Derive from
5505 __mcastopt for common implementation.
5506 * include/experimental/socket: Add comment.
5507 * testsuite/experimental/net/internet/socket/opt.cc: New test.
5508 * testsuite/experimental/net/socket/socket_base.cc: Check for
5509 protected constructor/destructor of socket_base. Check for
5510 explicit constructors of socket option classes.
5511
5512 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
5513
5514 * include/experimental/bits/net.h (__socket_base): Add
5515 bool template parameter to allow BooleanSocketOption and
5516 IntegerSocketOption to have different __socket_base<int>
5517 base classes.
5518 (__socket_base<bool>): Adjust base class.
5519 (__socket_base<int>): Add partial specialization.
5520 (__socket_crtp::operator=(_Tp)): Add noexcept-specifier.
5521 * include/experimental/socket (socket_base::broadcast)
5522 (socket_base::debug, socket_base::do_not_route)
5523 (socket_base::keep_alive, socket_base::linger)
5524 (socket_base::out_of_band_inline)
5525 (socket_base::receive_buffer_size)
5526 (socket_base::receive_low_watermark)
5527 (socket_base::reuse_address, socket_base::send_buffer_size)
5528 (socket_base::send_low_watermark): Add using-declaration for
5529 __socket_crtp::operator=(_Tp).
5530 * testsuite/experimental/net/socket/socket_base.cc: Check
5531 properties of socket option types.
5532
5533 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
5534
5535 * include/experimental/internet (resolver_base::flags): Remove
5536 enumerators. Initialize constants directly with desired values.
5537 Make all operators constexpr and noexcept.
5538 * testsuite/experimental/net/internet/resolver/base.cc: Use
5539 __gnu_test::test_bitmask_values for bitmask type. Check
5540 construction and destruction is protected.
5541
5542 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
5543
5544 * include/bits/semaphore_base.h: Include <exception> and <errno.h>.
5545
5546 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
5547
5548 PR libstdc++/100259
5549 * include/experimental/internet (net::ip::make_error_code)
5550 (net::ip::make_error_condition, net::ip::make_network_v4)
5551 (net::ip::operator==(const udp&, const udp&)): Add 'inline'.
5552
5553 2021-04-24 David Edelsohn <dje.gcc@gmail.com>
5554
5555 * testsuite/lib/dg-options.exp (atomic_link_flags): New.
5556 (add_options_for_libatomic): Use atomic_link_flags.
5557
5558 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
5559
5560 PR libstdc++/100180
5561 * include/experimental/io_context (io_context): Define
5562 dummy_pollfd type so that most member functions still compile
5563 without <poll.h> and struct pollfd.
5564
5565 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
5566
5567 * include/experimental/io_context (io_context::async_wait): Add
5568 comment.
5569 * include/experimental/socket (basic_socket::async_connect):
5570 Cast wait_type constant to int.
5571 (basic_datagram_socket::async_receive): Likewise.
5572 (basic_datagram_socket::async_receive_from): Likewise.
5573 (basic_datagram_socket::async_send): Likewise.
5574 (basic_datagram_socket::async_send_to): Likewise.
5575 (basic_stream_socket::async_receive): Likewise.
5576 (basic_stream_socket::async_send): Likewise. Use io_context
5577 parameter directly, instead of via an executor.
5578 (basic_socket_acceptor::async_accept): Likewise.
5579
5580 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
5581
5582 * include/experimental/socket (socket_base::shutdown_type):
5583 (socket_base::wait_type, socket_base::message_flags):
5584 Remove enumerators. Initialize constants directly with desired
5585 values.
5586 (socket_base::message_flags): Make all operators constexpr and
5587 noexcept.
5588 * testsuite/util/testsuite_common_types.h (test_bitmask_values):
5589 New test utility.
5590 * testsuite/experimental/net/socket/socket_base.cc: New test.
5591
5592 2021-04-22 David Edelsohn <dje.gcc@gmail.com>
5593
5594 * config/os/aix/atomicity.h: Delete.
5595
5596 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
5597
5598 * include/bits/atomic_timed_wait.h (__cond_wait_until_impl):
5599 Handle system_clock as well as steady_clock.
5600 * testsuite/30_threads/semaphore/try_acquire_for.cc: Re-enable.
5601 * testsuite/30_threads/semaphore/try_acquire_until.cc:
5602 Re-enable.
5603
5604 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
5605
5606 * testsuite/30_threads/semaphore/try_acquire_posix.cc: Add
5607 options for libatomic.
5608
5609 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
5610
5611 * config/os/gnu-linux/os_defines.h: Fix type in comment.
5612
5613 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
5614
5615 PR libstdc++/99006
5616 * include/bits/shared_ptr.h (allocate_shared): Assert that _Tp
5617 is not an array type.
5618 * include/bits/shared_ptr_base.h (__allocate_shared): Likewise.
5619 * testsuite/20_util/shared_ptr/creation/99006.cc: New test.
5620
5621 2021-04-22 Thomas Rodgers <rodgert@twrodgers.com>
5622
5623 * include/bits/atomic_wait.h: Always notify waiters in the
5624 case of 'bare' address notification.
5625
5626 2021-04-22 Jakub Jelinek <jakub@redhat.com>
5627
5628 PR target/100182
5629 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
5630 ia32.
5631 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
5632 ia32.
5633
5634 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
5635
5636 PR libstdc++/100179
5637 * include/bits/semaphore_base.h: Remove #error.
5638 * include/std/semaphore: Do not define anything unless one of
5639 the implementations is available.
5640
5641 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
5642
5643 * include/bits/semaphore_base.h: Always reload __old in
5644 __atomic_semaphore::_S_do_try_acquire().
5645 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
5646 re-enable testcase.
5647
5648 2021-04-21 Philippe Blain <levraiphilippeblain@gmail.com>
5649 Jonathan Wakely <jwakely@redhat.com>
5650
5651 PR libstdc++/99453
5652 * python/Makefile.am: Install libstdc++*-gdb.py more robustly.
5653 * python/Makefile.in: Regenerate.
5654
5655 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
5656
5657 * include/bits/semaphore_base.h: Add missing _M_try_acquire()
5658 member to __platform_wait.
5659
5660 2021-04-21 Jonathan Wakely <jwakely@redhat.com>
5661
5662 * include/std/latch: Replace tab characters in license text.
5663 * include/std/semaphore: Likewise.
5664
5665 2021-04-21 Jakub Jelinek <jakub@redhat.com>
5666
5667 PR libstdc++/100164
5668 * acinclude.m4: For POSIX semaphores AC_DEFINE HAVE_POSIX_SEMAPHORE
5669 rather than _GLIBCXX_HAVE_POSIX_SEMAPHORE.
5670 * configure: Regenerated.
5671 * config.h.in: Regenerated.
5672
5673 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
5674
5675 * testsuite/30_threads/semaphore/try_acquire_for.cc: Disable
5676 test for targets not using futexes for semaphores.
5677 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
5678 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
5679 Disable for all targets.
5680
5681 2021-04-20 Thomas Rodgers <trodgers@redhat.com>
5682
5683 * include/Makefile.am: Add new <bits/this_thread_sleep.h> header.
5684 * include/Makefile.in: Regenerate.
5685 * include/bits/this_thread_sleep.h: New file.
5686 * include/bits/atomic_base.h: Adjust all calls
5687 to __atomic_wait/__atomic_notify for new call signatures.
5688 * include/bits/atomic_timed_wait.h: Extensive rewrite.
5689 * include/bits/atomic_wait.h: Likewise.
5690 * include/bits/semaphore_base.h: Adjust all calls
5691 to __atomic_wait/__atomic_notify for new call signatures.
5692 * include/std/atomic: Likewise.
5693 * include/std/barrier: Likewise.
5694 * include/std/latch: Likewise.
5695 * include/std/semaphore: Likewise.
5696 * include/std/thread (this_thread::sleep_for)
5697 (this_thread::sleep_until): Move to new header.
5698 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Simplify
5699 test.
5700 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
5701 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
5702 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
5703 * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
5704 * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
5705 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Likewise.
5706
5707 2021-04-20 Patrick Palka <ppalka@redhat.com>
5708
5709 PR libstdc++/95983
5710 * include/bits/stl_iterator.h (__detail::__move_iter_cat):
5711 Define.
5712 (move_iterator): Derive from the above in C++20 in order to
5713 conditionally define iterator_category as per P2259.
5714 (move_iterator::__base_cat): No longer used, so remove.
5715 (move_iterator::iterator_category): Remove in C++20.
5716 (__detail::__common_iter_use_postfix_proxy): Define.
5717 (common_iterator::_Proxy): Rename to ...
5718 (common_iterator:__arrow_proxy): ... this.
5719 (common_iterator::__postfix_proxy): Define as per P2259.
5720 (common_iterator::operator->): Adjust.
5721 (common_iterator::operator++): Adjust as per P2259.
5722 (iterator_traits<common_iterator>::_S_iter_cat): Define.
5723 (iterator_traits<common_iterator>::iterator_category): Change as
5724 per P2259.
5725 (__detail::__counted_iter_value_type): Define.
5726 (__detail::__counted_iter_concept): Define.
5727 (__detail::__counted_iter_cat): Define.
5728 (counted_iterator): Derive from the above three classes in order
5729 to conditionally define value_type, iterator_concept and
5730 iterator category respectively as per P2259.
5731 (counted_iterator::operator->): Define as per P2259.
5732 (incrementable_traits<counted_iterator>): Remove as per P2259.
5733 (iterator_traits<counted_iterator>): Adjust as per P2259.
5734 * include/std/ranges (__detail::__iota_view_iter_cat): Define.
5735 (iota_view::_Iterator): Derive from the above in order to
5736 conditionally define iterator_category as per P2259.
5737 (iota_view::_S_iter_cat): Rename to ...
5738 (iota_view::_S_iter_concept): ... this.
5739 (iota_view::iterator_concept): Use it to apply LWG 3291 changes.
5740 (iota_view::iterator_category): Remove.
5741 (__detail::__filter_view_iter_cat): Define.
5742 (filter_view::_Iterator): Derive from the above in order to
5743 conditionally define iterator_category as per P2259.
5744 (filter_view::_Iterator): Move to struct __filter_view_iter_cat.
5745 (filter_view::_Iterator::iterator_category): Remove.
5746 (transform_view::_Base): Define.
5747 (transform_view::__iter_cat): Define.
5748 (transform_view::_Iterator): Derive from the above in order to
5749 conditionally define iterator_category as per P2259.
5750 (transform_view::_Iterator::_Base): Just alias
5751 transform_view::_Base.
5752 (transform_view::_Iterator::_S_iter_cat): Move to struct
5753 transform_view::__iter_cat.
5754 (transform_view::_Iterator::iterator_category): Remove.
5755 (transform_view::_Sentinel::_Base): Just alias
5756 transform_view::_Base.
5757 (join_view::_Base): Define.
5758 (join_view::_Outer_iter): Define.
5759 (join_view::_Inner_iter): Define.
5760 (join_view::_S_ref_is_glvalue): Define.
5761 (join_view::__iter_cat): Define.
5762 (join_view::_Iterator): Derive from it in order to conditionally
5763 define iterator_category as per P2259.
5764 (join_view::_Iterator::_Base): Just alias join_view::_Base.
5765 (join_view::_Iterator::_S_ref_is_glvalue): Just alias
5766 join_view::_S_ref_is_glvalue.
5767 (join_view::_Iterator::_S_iter_cat): Move to struct
5768 transform_view::__iter_cat.
5769 (join_view::_Iterator::_Outer_iter): Just alias
5770 join_view::_Outer_iter.
5771 (join_view::_Iterator::_Inner_iter): Just alias
5772 join_view::_Inner_iter.
5773 (join_view::_Iterator::iterator_category): Remove.
5774 (join_view::_Sentinel::_Base): Just alias join_view::_Base.
5775 (__detail::__split_view_outer_iter_cat): Define.
5776 (__detail::__split_view_inner_iter_cat): Define.
5777 (split_view::_Base): Define.
5778 (split_view::_Outer_iter): Derive from __split_view_outer_iter_cat
5779 in order to conditionally define iterator_category as per P2259.
5780 (split_view::_Outer_iter::iterator_category): Remove.
5781 (split_view::_Inner_iter): Derive from __split_view_inner_iter_cat
5782 in order to conditionally define iterator_category as per P2259.
5783 (split_view::_Inner_iter::_S_iter_cat): Move to
5784 __split_view_inner_iter_cat.
5785 (split_view::_Inner_iter::iterator_category): Remove.
5786 (elements_view::_Base): Define.
5787 (elements_view::__iter_cat): Define.
5788 (elements_view::_Iterator): Derive from the above in order to
5789 conditionall define iterator_category as per P2259.
5790 (elements_view::_Iterator::_Base): Just alias
5791 elements_view::_Base.
5792 (elements_view::_Iterator::_S_iter_concept)
5793 (elements_view::_Iterator::iterator_concept): Define as per
5794 P2259.
5795 (elements_view::_Iterator::iterator_category): Remove.
5796 (elements_view::_Sentinel::_Base): Just alias
5797 elements_view::_Base.
5798 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
5799 Adjust constraints on iterator_traits<counted_iterator>.
5800 * testsuite/std/ranges/p2259.cc: New test.
5801
5802 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
5803
5804 PR libstdc++/100146
5805 * include/std/charconv (__cpp_lib_to_chars): Define
5806 conditionally.
5807 * include/std/version (__cpp_lib_to_chars): Likewise..
5808 * testsuite/20_util/from_chars/4.cc: Only check feature test
5809 macro, not _GLIBCXX_HAVE_USELOCALE.
5810 * testsuite/20_util/from_chars/5.cc: Likewise.
5811 * testsuite/20_util/from_chars/6.cc: Likewise.
5812 * testsuite/20_util/to_chars/long_double.cc: Likewise.
5813
5814 2021-04-20 Jakub Jelinek <jakub@redhat.com>
5815
5816 * testsuite/util/testsuite_abi.cc (compare_symbols): If any symbol
5817 versions with _IEEE128_ substring are found, set ieee_version_found
5818 to true. Ignore missing symbols with _IEEE128_ in version name if
5819 !ieee_version_found. Use i->first as version_name instead of
5820 i->second.version_name if the latter is empty.
5821 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
5822
5823 2021-04-19 H.J. Lu <hjl.tools@gmail.com>
5824
5825 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
5826 Updated.
5827
5828 2021-04-17 Jakub Jelinek <jakub@redhat.com>
5829
5830 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
5831 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
5832
5833 2021-04-17 Jakub Jelinek <jakub@redhat.com>
5834
5835 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
5836 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
5837 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
5838 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
5839 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
5840 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
5841
5842 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
5843
5844 * testsuite/lib/dg-options.exp (add_options_for_libatomic): Also
5845 add libatomic options for 32-bit sparc*-*-linux-gnu.
5846
5847 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
5848
5849 PR libstdc++/96657
5850 * libsupc++/Makefile.am: Add atomicity.cc here.
5851 * src/c++98/Makefile.am: Remove it from here.
5852 * libsupc++/Makefile.in: Regenerate.
5853 * src/c++98/Makefile.in: Regenerate.
5854 * testsuite/18_support/exception_ptr/96657.cc: New test.
5855
5856 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
5857
5858 PR libstdc++/100060
5859 * include/std/bit: Only include <ext/numeric_traits.h> for
5860 hosted build, use <limits> otherwise.
5861
5862 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
5863
5864 * doc/xml/manual/backwards_compatibility.xml: Remove porting
5865 notes for libg++ and libstdc++-v2, and bibliography.
5866 * doc/html/*: Regenerated.
5867
5868 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
5869
5870 PR libstdc++/100044
5871 * include/bits/ranges_util.h (__detail::__iterator_sentinel_pair):
5872 Remove helper concept.
5873 (subrange(_Pr), subrange(Pr, __make_unsigned_like<...>)): Remove
5874 deduction guides, as per LWG 3404.
5875 * testsuite/std/ranges/subrange/lwg3282_neg.cc: Check that class
5876 template argument deduction fails.
5877
5878 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
5879
5880 * testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc:
5881 Adjust expected error for C++20 mode.
5882 * testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc:
5883 Likewise.
5884
5885 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
5886
5887 PR libstdc++/99995
5888 * testsuite/17_intro/headers/c++1998/49745.cc: Include all
5889 standard headers and XFAIL for effective-target c++20.
5890
5891 2021-04-09 François Dumont <fdumont@gcc.gnu.org>
5892
5893 PR libstdc++/99402
5894 * include/debug/helper_functions.h (__can_advance(_InputIterator,
5895 const std::pair<_Diff, _Distance_precision>&, int)): New.
5896 (__can_advance(const _Safe_iterator<>&,
5897 const std::pair<_Diff, _Distance_precision>&, int)): New.
5898 * include/debug/macros.h (__glibcxx_check_can_increment_dist): New,
5899 use latter.
5900 (__glibcxx_check_can_increment_range): Adapt to use latter.
5901 (__glibcxx_check_can_decrement_range): Likewise.
5902 * include/debug/safe_iterator.h
5903 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
5904 int)): New.
5905 (__can_advance(const _Safe_iterator<>&,
5906 const std::pair<_Diff, _Distance_precision>&, int)): New.
5907 * include/debug/safe_iterator.tcc
5908 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
5909 int)): New.
5910 (_Safe_iterator<>::_M_valid_range(const _Safe_iterator<>&,
5911 std::pair<difference_type, _Distance_precision>&, bool)): Adapt for
5912 __dp_sign_max_size.
5913 (__copy_move_a): Adapt to use __glibcxx_check_can_increment_dist.
5914 (__copy_move_backward_a): Likewise.
5915 (__equal_aux): Likewise.
5916 * include/debug/stl_iterator.h (__can_advance(const std::reverse_iterator<>&,
5917 const std::pair<_Diff, _Distance_precision>&, int)): New.
5918 (__can_advance(const std::move_iterator<>&,
5919 const std::pair<_Diff, _Distance_precision>&, int)): New.
5920 * testsuite/25_algorithms/copy/debug/99402.cc: New test.
5921
5922 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
5923
5924 PR libstdc++/99985
5925 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()): Fix
5926 to be a valid constexpr function in C++11.
5927 * testsuite/23_containers/unordered_set/cons/99985.cc: New test.
5928
5929 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
5930
5931 * include/bits/fs_fwd.h: Fix doxygen group command.
5932 * include/bits/streambuf_iterator.h: Likewise.
5933 * include/bits/uses_allocator_args.h: Likewise.
5934 * include/std/memory: Likewise.
5935 * include/tr1/complex: Likewise.
5936
5937 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
5938
5939 * include/bits/basic_string.h: Tweak doxygen comment.
5940
5941 2021-04-08 Patrick Palka <ppalka@redhat.com>
5942
5943 * include/std/ranges (__detail::find): Define.
5944 (split_view::_OuterIter::operator++): Apply proposed resolution
5945 of LWG 3505.
5946 * testsuite/std/ranges/adaptors/split.cc (test10): New test.
5947
5948 2021-04-08 Patrick Palka <ppalka@redhat.com>
5949
5950 * include/std/ranges (__detail::find_if): Simplify.
5951 (__detail::find_if_not): Likewise.
5952 (__detail::min): Remove.
5953 (__detail::mismatch): Simplify.
5954 (take_view::size): Use std::min instead of __detail::min.
5955
5956 2021-04-08 Patrick Palka <ppalka@redhat.com>
5957
5958 * include/std/ranges (__detail::__returnable_element): New
5959 concept.
5960 (elements_view): Use this concept in its constraints. Add
5961 missing private access specifier.
5962 (elements_view::_S_get_element): Define as per LWG 3502.
5963 (elements_view::operator*, elements_view::operator[]): Use
5964 _S_get_element.
5965 (elements_view::operator++): Remove unnecessary constraint
5966 as per LWG 3492.
5967 * testsuite/std/ranges/adaptors/elements.cc (test05): New test.
5968
5969 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
5970
5971 * doc/Makefile.am (stamp-pdf-doxygen): Also grep for
5972 out-of-memory error in log file.
5973 * doc/Makefile.in: Regenerate.
5974
5975 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
5976
5977 * configure: Regenerate.
5978
5979 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
5980
5981 * include/bits/random.h: Fix doxygen group commands.
5982 * include/bits/regex_constants.h: Likewise.
5983 * include/tr1/random.h: Likewise.
5984
5985 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
5986
5987 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()):
5988 New function to determine noexcept-specifier for move
5989 constructors.
5990 (_Hashtable): Use _S_nothrow_move() on move constructors.
5991 * testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc:
5992 Correct static assertion message.
5993 * testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc:
5994 Likewise.
5995 * testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc:
5996 Likewise.
5997 * testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc:
5998 Likewise.
5999
6000 2021-04-08 Patrick Palka <ppalka@redhat.com>
6001
6002 PR libstdc++/98384
6003 * testsuite/20_util/to_chars/long_double.cc: Don't run the test
6004 on targets without a large long double. XFAIL the execution on
6005 targets with a non-conforming printf.
6006
6007 2021-04-08 Patrick Palka <ppalka@redhat.com>
6008
6009 PR libstdc++/99433
6010 * include/std/ranges (__adaptor::__maybe_refwrap): Remove.
6011 (__adaptor::__adaptor_invocable): New concept.
6012 (__adaptor::__adaptor_partial_app_viable): New concept.
6013 (__adaptor::_RangeAdaptorClosure): Rewrite, turning it into a
6014 non-template base class.
6015 (__adaptor::_RangeAdaptor): Rewrite, turning it into a CRTP base
6016 class template.
6017 (__adaptor::_Partial): New class template that represents
6018 partial application of a range adaptor non-closure.
6019 (__adaptor::__pipe_invocable): New concept.
6020 (__adaptor::_Pipe): New class template.
6021 (__detail::__can_ref_view): New concept.
6022 (__detail::__can_subrange): New concept.
6023 (all): Replace the lambda here with ...
6024 (_All): ... this functor. Add appropriate constraints.
6025 (__detail::__can_filter_view): New concept.
6026 (filter, _Filter): As in all/_All.
6027 (__detail::__can_transform): New concept.
6028 (transform, _Transform): As in all/_All.
6029 (__detail::__can_take_view): New concept.
6030 (take, _Take): As in all/_All.
6031 (__detail::__can_take_while_view): New concept.
6032 (take_while, _TakeWhile): As in all/_All.
6033 (__detail::__can_drop_view): New concept.
6034 (drop, _Drop): As in all/_All.
6035 (__detail::__can_drop_while_view): New concept.
6036 (drop_while, _DropWhile): As in all/_All.
6037 (__detail::__can_join_view): New concept.
6038 (join, _Join): As in all/_All.
6039 (__detail::__can_split_view): New concept.
6040 (split, _Split): As in all/_All. Rename template parameter
6041 _Fp to _Pattern.
6042 (__detail::__already_common): New concept.
6043 (__detail::__can_common_view): New concept.
6044 (common, _Common): As in all/_All.
6045 (__detail::__can_reverse_view): New concept.
6046 (reverse, _Reverse): As in all/_All.
6047 (__detail::__can_elements_view): New concept.
6048 (elements, _Elements): As in all/_All.
6049 (keys, values): Adjust.
6050 * testsuite/std/ranges/adaptors/99433.cc: New test.
6051 * testsuite/std/ranges/adaptors/all.cc: No longer expect that
6052 adding empty range adaptor closure objects to a pipeline doesn't
6053 increase the size of the pipeline.
6054 (test05): New test.
6055 * testsuite/std/ranges/adaptors/common.cc (test03): New test.
6056 * testsuite/std/ranges/adaptors/drop.cc (test09): New test.
6057 * testsuite/std/ranges/adaptors/drop_while.cc (test04): New test.
6058 * testsuite/std/ranges/adaptors/elements.cc (test04): New test.
6059 * testsuite/std/ranges/adaptors/filter.cc (test06): New test.
6060 * testsuite/std/ranges/adaptors/join.cc (test09): New test.
6061 * testsuite/std/ranges/adaptors/p2281.cc: New test.
6062 * testsuite/std/ranges/adaptors/reverse.cc (test07): New test.
6063 * testsuite/std/ranges/adaptors/split.cc (test01, test04):
6064 Adjust.
6065 (test09): New test.
6066 * testsuite/std/ranges/adaptors/split_neg.cc (test01): Adjust
6067 expected error message.
6068 (test02): Likewise. Extend test.
6069 * testsuite/std/ranges/adaptors/take.cc (test06): New test.
6070 * testsuite/std/ranges/adaptors/take_while.cc (test05): New test.
6071 * testsuite/std/ranges/adaptors/transform.cc (test07, test08):
6072 New test.
6073
6074 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
6075
6076 * include/std/string_view: Adjust Doxygen @file comment.
6077
6078 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
6079
6080 * include/std/type_traits (is_scoped_enum<T>): Constrain partial
6081 specialization to not match incomplete enum types. Use a
6082 requires-expression instead of instantiating is_convertible.
6083 (is_scoped_enum<const T>): Add as workaround for PR c++/99968.
6084 * testsuite/20_util/is_scoped_enum/value.cc: Check with
6085 incomplete types and opaque-enum-declarations.
6086
6087 2021-04-07 Jonathan Wakely <jwakely@redhat.com>
6088
6089 PR libstdc++/99805
6090 * src/c++17/fs_path.cc (path::_M_split_cmpts): Do not call
6091 non-const member on _M_pathname, to avoid copy-on-write.
6092 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
6093 Check construction from strings that might be shared.
6094
6095 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
6096
6097 * include/bits/move.h (forward, move, move_if_noexcept)
6098 (addressof): Add _GLIBCXX_NODISCARD.
6099 * include/bits/ranges_cmp.h (identity::operator()): Add
6100 nodiscard attribute.
6101 * include/c_global/cstddef (to_integer): Likewise.
6102 * include/std/bit (bit_cast): Likewise.
6103 * include/std/utility (as_const, to_underlying): Likewise.
6104
6105 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
6106
6107 * include/bits/move.h (forward): Change static_assert message
6108 to be unambiguous about what must be true.
6109 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
6110 * testsuite/20_util/forward/f_neg.cc: Likewise.
6111
6112 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
6113
6114 * include/bits/alloc_traits.h: Use markdown for code font.
6115 * include/bits/basic_string.h: Fix @param names.
6116 * include/bits/max_size_type.h: Remove period after @file.
6117 * include/bits/regex.h: Fix duplicate @retval names, and rename.
6118 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp: Add
6119 group open to match existing group close.
6120 * include/ext/pb_ds/priority_queue.hpp: Add blank line before group
6121 open.
6122
6123 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
6124
6125 * include/bits/atomic_base.h: Fix doxygen group close.
6126 * include/bits/basic_ios.h: Likewise.
6127 * include/bits/forward_list.h: Likewise.
6128 * include/bits/fs_dir.h: Likewise.
6129 * include/bits/fs_ops.h: Likewise.
6130 * include/bits/fs_path.h: Likewise.
6131 * include/bits/functional_hash.h: Likewise.
6132 * include/bits/gslice.h: Likewise.
6133 * include/bits/gslice_array.h: Likewise.
6134 * include/bits/hashtable_policy.h: Likewise.
6135 * include/bits/indirect_array.h: Likewise.
6136 * include/bits/locale_classes.h: Likewise.
6137 * include/bits/locale_facets.h: Likewise.
6138 * include/bits/locale_facets_nonio.h: Likewise.
6139 * include/bits/mask_array.h: Likewise.
6140 * include/bits/refwrap.h: Likewise.
6141 * include/bits/regex.h: Likewise.
6142 * include/bits/regex_automaton.h: Likewise.
6143 * include/bits/regex_compiler.h: Likewise.
6144 * include/bits/regex_constants.h: Likewise.
6145 * include/bits/regex_error.h: Likewise.
6146 * include/bits/regex_executor.h: Likewise.
6147 * include/bits/regex_scanner.h: Likewise.
6148 * include/bits/shared_ptr.h: Likewise.
6149 * include/bits/shared_ptr_atomic.h: Likewise.
6150 * include/bits/shared_ptr_base.h: Likewise.
6151 * include/bits/slice_array.h: Likewise.
6152 * include/bits/specfun.h: Likewise.
6153 * include/bits/std_function.h: Likewise.
6154 * include/bits/std_mutex.h: Likewise.
6155 * include/bits/stl_deque.h: Likewise.
6156 * include/bits/stl_iterator.h: Likewise.
6157 * include/bits/stl_iterator_base_types.h: Likewise.
6158 * include/bits/stl_map.h: Likewise.
6159 * include/bits/stl_multimap.h: Likewise.
6160 * include/bits/stl_multiset.h: Likewise.
6161 * include/bits/stl_numeric.h: Likewise.
6162 * include/bits/stl_pair.h: Likewise.
6163 * include/bits/stl_set.h: Likewise.
6164 * include/bits/stl_uninitialized.h: Likewise.
6165 * include/bits/stream_iterator.h: Likewise.
6166 * include/bits/streambuf_iterator.h: Likewise.
6167 * include/bits/unique_ptr.h: Likewise.
6168 * include/bits/unordered_map.h: Likewise.
6169 * include/bits/unordered_set.h: Likewise.
6170 * include/decimal/decimal: Likewise.
6171 * include/experimental/any: Likewise.
6172 * include/experimental/array: Likewise.
6173 * include/experimental/bits/fs_dir.h: Likewise.
6174 * include/experimental/bits/fs_fwd.h: Likewise.
6175 * include/experimental/bits/fs_ops.h: Likewise.
6176 * include/experimental/bits/fs_path.h: Likewise.
6177 * include/experimental/buffer: Likewise.
6178 * include/experimental/internet: Likewise.
6179 * include/experimental/optional: Likewise.
6180 * include/experimental/propagate_const: Likewise.
6181 * include/experimental/socket: Likewise.
6182 * include/ext/pb_ds/assoc_container.hpp: Likewise.
6183 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp:
6184 Likewise.
6185 * include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp: Likewise.
6186 * include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp: Likewise.
6187 * include/ext/pb_ds/detail/types_traits.hpp: Likewise.
6188 * include/ext/pb_ds/exception.hpp: Likewise.
6189 * include/ext/pb_ds/priority_queue.hpp: Likewise.
6190 * include/ext/pb_ds/tag_and_trait.hpp: Likewise.
6191 * include/ext/random: Likewise.
6192 * include/std/any: Likewise.
6193 * include/std/atomic: Likewise.
6194 * include/std/bitset: Likewise.
6195 * include/std/chrono: Likewise.
6196 * include/std/complex: Likewise.
6197 * include/std/condition_variable: Likewise.
6198 * include/std/fstream: Likewise.
6199 * include/std/future: Likewise.
6200 * include/std/iostream: Likewise.
6201 * include/std/istream: Likewise.
6202 * include/std/mutex: Likewise.
6203 * include/std/numeric: Likewise.
6204 * include/std/ostream: Likewise.
6205 * include/std/ratio: Likewise.
6206 * include/std/shared_mutex: Likewise.
6207 * include/std/stdexcept: Likewise.
6208 * include/std/streambuf: Likewise.
6209 * include/std/system_error: Likewise.
6210 * include/std/thread: Likewise.
6211 * include/std/valarray: Likewise.
6212 * include/std/variant: Likewise.
6213 * include/tr1/cmath: Likewise.
6214 * include/tr1/regex: Likewise.
6215 * include/tr2/dynamic_bitset: Likewise.
6216 * libsupc++/atomic_lockfree_defines.h: Likewise.
6217 * libsupc++/exception: Likewise.
6218 * libsupc++/exception.h: Likewise.
6219 * libsupc++/exception_ptr.h: Likewise.
6220 * libsupc++/nested_exception.h: Likewise.
6221
6222 2021-03-31 Alexandre Oliva <oliva@adacore.com>
6223
6224 * testsuite/30_threads/future/members/poll.cc: Use faster
6225 after-ready call in the calibration loop.
6226
6227 2021-03-29 Jonathan Wakely <jwakely@redhat.com>
6228
6229 * doc/xml/manual/status_cxx2017.xml: Adjust link for PSTL.
6230 * doc/html/manual/status.html: Regenerate.
6231
6232 2021-03-28 François Dumont <fdumont@gcc.gnu.org>
6233
6234 * include/debug/forward_list
6235 (forward_list(forward_list&&, const allocator_type&)): Add noexcept qualification.
6236 * include/debug/list (list(list&&, const allocator_type&)): Likewise and add
6237 call to safe container allocator aware move constructor.
6238 * include/debug/vector (vector(vector&&, const allocator_type&)):
6239 Fix noexcept qualification.
6240 * testsuite/23_containers/forward_list/cons/noexcept_move_construct.cc:
6241 Add allocator-extended move constructor noexceot qualification check.
6242 * testsuite/23_containers/list/cons/noexcept_move_construct.cc: Likewise.
6243
6244 2021-03-26 Jonathan Wakely <jwakely@redhat.com>
6245
6246 * src/c++11/random.cc (USE_LCG): Define when a pseudo-random
6247 fallback is needed.
6248 [USE_LCG] (bad_seed, construct_lcg_at, destroy_lcg_at, __lcg):
6249 New helper functions and callback.
6250 (random_device::_M_init): Add 'prng' and 'all' enumerators.
6251 Replace switch with fallthrough with a series of 'if' statements.
6252 [USE_LCG]: Construct an lcg_type engine and use __lcg when cpuid
6253 checks fail.
6254 (random_device::_M_init_pretr1) [USE_MT19937]: Accept "prng"
6255 token.
6256 (random_device::_M_getval): Check for callback unconditionally
6257 and always pass _M_file pointer.
6258 * testsuite/26_numerics/random/random_device/85494.cc: Remove
6259 effective-target check. Use new random_device_available helper.
6260 * testsuite/26_numerics/random/random_device/94087.cc: Likewise.
6261 * testsuite/26_numerics/random/random_device/cons/default-cow.cc:
6262 Remove effective-target check.
6263 * testsuite/26_numerics/random/random_device/cons/default.cc:
6264 Likewise.
6265 * testsuite/26_numerics/random/random_device/cons/token.cc: Use
6266 new random_device_available helper. Test "prng" token.
6267 * testsuite/util/testsuite_random.h (random_device_available):
6268 New helper function.
6269
6270 2021-03-25 François Dumont <fdumont@gcc.gnu.org>
6271
6272 * include/debug/string
6273 (basic_string(const basic_string&, const _Alloc&)): Define even if !_GLIBCXX_USE_CXX11_ABI.
6274 (basic_string(basic_string&&, const _Alloc&)): Likewise and add noexcept qualification.
6275 (basic_string<>::erase): Adapt to take __const_iterator.
6276 (basic_string(const _CharT*, const _Allocator&)): Remove assign call.
6277 (basic_string<>::insert(const_iterator, _InputIte, _InputIte)): Try to
6278 remove iterator debug layer even if !_GLIBCXX_USE_CXX11_ABI.
6279 [_GLIBCXX_USE_CHAR8_T] (__gnu_debug::u8string): New.
6280 (__gnu_debug::u16string, __gnu_debug::u32string): New.
6281 (std::hash<__gnu_debug::basic_string<>>): New partial specialization.
6282 (std::__is_fast_hash<__gnu_debug::basic_string<>>): Likewise.
6283 * testsuite/util/exception/safety.h
6284 (erase_base<__gnu_debug::basic_string<>>): New partial specialization.
6285 (insert_base<__gnu_debug::basic_string<>>): Likewise.
6286 * testsuite/util/testsuite_container_traits.h (traits<__gnu_debug::basic_string<>>):
6287 New partial specialization.
6288 * testsuite/21_strings/basic_string/hash/debug.cc: New test.
6289 * testsuite/21_strings/basic_string/requirements/citerators.cc:
6290 Add test on __gnu_debug::string.
6291 * testsuite/21_strings/basic_string/requirements/dr438/constructor.cc: Likewise.
6292 * testsuite/21_strings/basic_string/requirements/exception/basic.cc: Likewise.
6293 * testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc:
6294 Likewise.
6295 * testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc:
6296 Likewise.
6297 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
6298 Likewise.
6299 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
6300 Likewise.
6301 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
6302 Likewise.
6303 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
6304 Likewise.
6305 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
6306 Likewise.
6307 * testsuite/21_strings/basic_string/requirements/typedefs.cc: Likewise.
6308
6309 2021-03-25 Jakub Jelinek <jakub@redhat.com>
6310
6311 PR c++/99672
6312 * testsuite/18_support/source_location/consteval.cc (main): Adjust
6313 expected column numbers.
6314 * testsuite/18_support/source_location/1.cc (main): Likewise.
6315
6316 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
6317
6318 * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare malloc.
6319
6320 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
6321
6322 * testsuite/util/exception/safety.h (setup_base::generate):
6323 Support seeding random engine.
6324 (erase_point, erase_range): Adjust range of random numbers to
6325 ensure dereferenceable iterators are used where required.
6326 (generation_prohibited::run): Do not try to erase from empty
6327 containers.
6328 * testsuite/util/testsuite_containergen.h (test_containers):
6329 Support seeding random engine.
6330
6331 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
6332
6333 * testsuite/std/ranges/adaptors/reverse.cc: Replace duplicated
6334 line with a check that uses the const being/end overloads.
6335
6336 2021-03-23 Moritz Sichert <sichert@in.tum.de>
6337
6338 * include/std/ranges (reverse_view::begin, reverse_view::end):
6339 Qualify make_reverse_iterator calls to avoid ADL.
6340 * testsuite/std/ranges/adaptors/reverse.cc: Test that
6341 views::reverse works when make_reverse_iterator is defined
6342 in an associated namespace.
6343
6344 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
6345
6346 * include/bits/c++config (_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT):
6347 Do not define when compiling with Clang.
6348
6349 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
6350
6351 * include/std/string_view (basic_string_view(Range&&)): Define new
6352 constructor and deduction guide.
6353 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: New test.
6354 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: New test.
6355
6356 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
6357
6358 * include/bits/range_access.h (begin(T (&)[N]), end(T (&)[N])):
6359 Add missing 'noexcept' as per LWG 2280.
6360 (rbegin(T (&)[N]), rend(T (&)[N]), rbegin(initializer_list<T>))
6361 (rend(initializer_list<T>)): Add 'noexcept' as per LWG 3537.
6362 * testsuite/24_iterators/range_access/range_access.cc: Check for
6363 expected noexcept specifiers. Check result types of generic
6364 std::begin and std::end overloads.
6365 * testsuite/24_iterators/range_access/range_access_cpp14.cc:
6366 Check for expected noexcept specifiers.
6367 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
6368 Likewise.
6369
6370 2021-03-19 Jonathan Wakely <jwakely@redhat.com>
6371
6372 * include/std/type_traits (is_scoped_enum): Define.
6373 * include/std/version (__cpp_lib_is_scoped_enum): Define.
6374 * testsuite/20_util/is_scoped_enum/value.cc: New test.
6375 * testsuite/20_util/is_scoped_enum/version.cc: New test.
6376
6377 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
6378
6379 PR libstdc++/99341
6380 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Remove
6381 std::once_flag symbols.
6382 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Likewise.
6383 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
6384 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
6385 Likewise.
6386 * config/abi/pre/gnu.ver: Likewise.
6387 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
6388 (struct __once_flag_compat): Remove.
6389 (_ZNSt9once_flag11_M_activateEv): Remove.
6390 (_ZNSt9once_flag9_M_finishEb): Remove.
6391
6392 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
6393
6394 PR libstdc++/99341
6395 * include/std/mutex [_GLIBCXX_HAVE_LINUX_FUTEX] (once_flag):
6396 Revert to pthread_once_t implementation.
6397 [_GLIBCXX_HAVE_LINUX_FUTEX] (call_once): Likewise.
6398 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
6399 (struct __once_flag_compat): New type matching the reverted
6400 implementation of once_flag using futexes.
6401 (once_flag::_M_activate): Remove, replace with ...
6402 (_ZNSt9once_flag11_M_activateEv): ... alias symbol.
6403 (once_flag::_M_finish): Remove, replace with ...
6404 (_ZNSt9once_flag9_M_finishEb): ... alias symbol.
6405 * testsuite/30_threads/call_once/66146.cc: Removed.
6406
6407 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
6408
6409 * testsuite/17_intro/names.cc: Exclude j from the list
6410 of test symbols for Darwin.
6411
6412 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
6413
6414 * config/os/bsd/darwin/ppc-extra.ver: Add matching for
6415 to_chars and from_chars for long double.
6416
6417 2021-03-15 Patrick Palka <ppalka@redhat.com>
6418
6419 * include/bits/max_size_type.h (__max_size_type::operator _Tp):
6420 Fix formatting.
6421 (__max_size_type::operator++): Define.
6422 (__max_size_type::operator--): Likewise.
6423 (__max_size_type::operator<=>): Conditionally define (in place
6424 of the other comparison operators).
6425 (__max_diff_type::operator _Tp): Fix formatting.
6426 (__max_diff_type::operator++): Define.
6427 (__max_diff_type::operator--): Likewise.
6428 (__max_diff_type::operator<=>): Conditionally define (in place
6429 of the other comparison operators).
6430 * testsuite/std/ranges/iota/max_size_type.cc (test01): Test
6431 these operator overloads.
6432
6433 2021-03-15 Caroline Tice <cmtice@google.com>
6434
6435 PR libstdc++/99172
6436 * src/Makefile.am (AM_CXXFLAGS_PRE, AM_CXXFLAGS): Add
6437 AM_CXXFLAGS_PRE with the old definition of AM_CXXFLAGS; make
6438 AM_CXXFLAGS to be AM_CXXFLAGS_PRE with '-fvtable-verify=std'
6439 filtered out.
6440 * src/Makefile.in: Regenerate.
6441
6442 2021-03-11 Patrick Palka <ppalka@redhat.com>
6443
6444 * src/c++17/floating_to_chars.cc: Simplify the file as if
6445 __SIZEOF_INT128__ is always defined.
6446 [!defined __SIZEOF_INT128__]: Include "uint128_t.h". Define
6447 a base-10 to_chars overload for the uint128_t class type.
6448 * src/c++17/uint128_t.h: New file.
6449 * testsuite/20_util/to_chars/long_double.cc: No longer expect an
6450 execution FAIL on targets that have a large long double type
6451 but lack __int128.
6452
6453 2021-03-11 Patrick Palka <ppalka@redhat.com>
6454
6455 * src/c++17/ryu/LOCAL_PATCHES: Update.
6456 * src/c++17/ryu/d2s_intrinsics.h: Don't define uint128_t.
6457 * src/c++17/ryu/generic_128.h: Likewise.
6458 * src/c++17/ryu/ryu_generic_128.h (struct floating_decimal_128):
6459 Use uint128_t instead of __uint128_t.
6460 (generic_binary_to_decimal): Likewise.
6461
6462 2021-03-11 Patrick Palka <ppalka@redhat.com>
6463
6464 * src/c++17/ryu/LOCAL_PATCHES: New file.
6465
6466 2021-03-11 Patrick Palka <ppalka@redhat.com>
6467
6468 * src/c++17/floating_to_chars.cc (uint128_t): New conditionally
6469 defined alias of unsigned __int128.
6470 (floating_type_traits_binary128::mantissa_t): Use uint128_t
6471 instead of unsigned __int128.
6472 (floating_type_traits<long double>::mantissa_t)
6473 [LONG_DOUBLE_KIND == LDK_IBM128]: Likewise.
6474 (get_ieee_repr): Likewise. Make casts from uint_t to mantissa_t
6475 and uint32_t explicit. Simplify the extraction of mantissa,
6476 exponent and sign bit.
6477
6478 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
6479
6480 * include/std/barrier (barrier::arrival_token): New move-only
6481 class that encapsulates the underlying token value.
6482
6483 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
6484
6485 * python/libstdcxx/v6/printers.py (find_type): Use tag attribute
6486 instead of unqualified() method.
6487
6488 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
6489
6490 PR libstdc++/99537
6491 * include/std/stop_token (_Stop_state_t::_M_release_ownership):
6492 Use acq_rel memory ordering.
6493
6494 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
6495
6496 PR libstdc++/99533
6497 * src/c++17/fs_dir.cc (recursive_directory_iterator): Use new
6498 helper function to check for permission denied errors.
6499 * src/filesystem/dir.cc (recursive_directory_iterator):
6500 Likewise.
6501 * src/filesystem/dir-common.h (is_permission_denied_error): New
6502 helper function.
6503
6504 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
6505
6506 PR libstdc++/99536
6507 * include/bits/random.h (normal_distribution): Use
6508 default-initializer for _M_saved and _M_saved_available.
6509
6510 2021-03-10 John David Anglin <danglin@gcc.gnu.org>
6511
6512 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Add options to
6513 link with libatomic.
6514 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
6515 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
6516 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
6517 * testsuite/30_threads/barrier/arrive.cc: Likewise.
6518 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
6519 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
6520 * testsuite/30_threads/barrier/completion.cc: Likewise.
6521 * testsuite/30_threads/latch/3.cc: Likewise.
6522 * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
6523 * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
6524 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
6525
6526 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
6527
6528 PR libstdc++/99413
6529 * include/bits/align.h: Include debug/assertions.h.
6530 * include/bits/codecvt.h: Include bits/c++config.h.
6531 * include/bits/enable_special_members.h: Likewise.
6532 * include/bits/erase_if.h: Likewise.
6533 * include/bits/functional_hash.h: Include <type_traits>.
6534 * include/bits/invoke.h: Include bits/move.h.
6535 * include/bits/ostream_insert.h: Include bits/exception_defines.h.
6536 * include/bits/parse_numbers.h: Include <type_traits>.
6537 * include/bits/predefined_ops.h: Include bits/c++config.h.
6538 * include/bits/range_access.h: Include bits/stl_iterator.h.
6539 * include/bits/stl_bvector.h: Do not include bits/stl_vector.h.
6540 * include/bits/stl_iterator.h: Include bits/stl_iterator_base_types.h.
6541 * include/bits/stl_uninitialized.h: Include bits/stl_algobase.h.
6542 * include/bits/uniform_int_dist.h: Include bits/concept_check.h.
6543 * include/bits/unique_lock.h: Include bits/std_mutex.h.
6544 * include/debug/assertions.h: Include bits/c++config.h.
6545
6546 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
6547
6548 * include/bits/ranges_cmp.h (__eq_builtin_ptr_cmp): Remove.
6549 (ranges::equal_to, ranges::not_equal_to): Do not constrain
6550 with __eq_builtin_ptr_cmp.
6551 (ranges::less, ranges::greater, ranges::less_equal)
6552 (ranges::greater_equal): Do not constrain with
6553 __less_builtin_ptr_cmp.
6554 * libsupc++/compare (compare_three_way): Do not constrain with
6555 __3way_builtin_ptr_cmp.
6556 * testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc: Moved to...
6557 * testsuite/18_support/comparisons/object/lwg3530.cc: ...here.
6558 * testsuite/20_util/function_objects/range.cmp/lwg3530.cc: New test.
6559
6560 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
6561
6562 * testsuite/std/time/syn_c++20.cc: Enable synopsis checks for
6563 C++20 calendar types.
6564
6565 2021-03-06 Jakub Jelinek <jakub@redhat.com>
6566
6567 PR libstdc++/99396
6568 * include/std/bit (__rotl, __rotr): Add optimized variants for power of
6569 two _Nd which the compiler can pattern match the rotates.
6570
6571 2021-03-04 Jonathan Wakely <jwakely@redhat.com>
6572
6573 PR libstdc++/99382
6574 * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
6575 Make storage larger than required. Verify no write to the last
6576 element.
6577 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
6578 Likewise.
6579
6580 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6581
6582 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
6583 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
6584 Likewise.
6585 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
6586 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
6587 Likewise.
6588
6589 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6590
6591 * include/experimental/bits/simd.h: Replace reserved _X, _B by
6592 _Xp, _Bp.
6593 * include/experimental/bits/simd_builtin.h: Likewise.
6594 * include/experimental/bits/simd_x86.h: Likewise.
6595
6596 2021-02-27 Jonathan Wakely <jwakely@redhat.com>
6597
6598 PR libstdc++/99301
6599 * include/std/chrono (year_month_day::_M_days_since_epoch()):
6600 Convert chrono::month and chrono::day to unsigned before
6601 converting to uint32_t.
6602
6603 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
6604
6605 * include/std/chrono (year_month_day::_S_from_days): Perform
6606 all calculations with type uint32_t.
6607
6608 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
6609
6610 * doc/xml/manual/abi.xml: Document versioning for GCC 11.
6611 * doc/html/manual/abi.html: Regenerate.
6612
6613 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
6614
6615 PR libstdc++/99270
6616 * testsuite/27_io/headers/cstdio/types_std.cc: Use pointer to
6617 FILE instead of FILE.
6618
6619 2021-02-25 Andreas Schwab <schwab@suse.de>
6620
6621 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
6622 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
6623 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
6624 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
6625
6626 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
6627
6628 PR libstdc++/99265
6629 * include/std/chrono (year_month_day::_S_from_days): Cast long
6630 to int explicitly.
6631
6632 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
6633
6634 * include/std/utility (to_underlying): Define.
6635 * include/std/version (__cpp_lib_to_underlying): Define.
6636 * testsuite/20_util/to_underlying/1.cc: New test.
6637 * testsuite/20_util/to_underlying/version.cc: New test.
6638
6639 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
6640
6641 PR libstdc++/99261
6642 * src/c++17/floating_to_chars.cc (sprintf_ld): Add extra args
6643 before value to be printed.
6644
6645 2021-02-24 Patrick Palka <ppalka@redhat.com>
6646
6647 * src/c++17/floating_to_chars.cc (__floating_to_chars_precision):
6648 Relax the condition that guards the printf code path to accept
6649 F128_type as well as long double.
6650
6651 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
6652
6653 * include/std/chrono (year_month_day_last:day): New
6654 implementation.
6655
6656 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
6657
6658 * include/std/chrono (year::is_leap): New implementation.
6659 * testsuite/std/time/year/2.cc: New test.
6660
6661 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
6662
6663 * include/std/chrono (year_month_day::_M_days_since_epoch):
6664 New implementation.
6665 * testsuite/std/time/year_month_day/4.cc: New test.
6666
6667 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
6668
6669 * include/std/chrono (year_month_day::_S_from_days): New
6670 implementation.
6671 * testsuite/std/time/year_month_day/3.cc: New test.
6672
6673 2021-02-24 Patrick Palka <ppalka@redhat.com>
6674
6675 PR libstdc++/98384
6676 * testsuite/20_util/to_chars/long_double.cc: Include <optional>.
6677 (test01): Simplify verifying the nearby values by using a
6678 2-iteration loop and a dedicated output buffer to check that the
6679 nearby values are different. Factor out the printf-based
6680 verification into a local function, and check that the leading
6681 hex digits agree before comparing to the output of printf. Also
6682 verify the output by round-tripping it through from_chars.
6683
6684 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
6685
6686 PR libstdc++/98389
6687 * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Do not match to_chars
6688 symbols for long double arguments mangled as 'g'.
6689 * config/os/gnu-linux/ldbl-extra.ver: Likewise.
6690 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Likewise.
6691 * src/c++17/Makefile.am [GLIBCXX_LDBL_ALT128_COMPAT_TRUE]:
6692 Use -mabi=ibmlongdouble for floating_to_chars.cc.
6693 * src/c++17/Makefile.in: Regenerate.
6694 * src/c++17/floating_to_chars.cc (floating_type_traits_binary128):
6695 New type defining type traits of IEEE binary128 format.
6696 (floating_type_traits<__float128>): Define specialization.
6697 (floating_type_traits<long double>): Define in terms of
6698 floating_type_traits_binary128 when appropriate.
6699 (floating_to_shortest_scientific): Handle __float128.
6700 (sprintf_ld): New function template for printing a long double
6701 or __ieee128 value using sprintf.
6702 (__floating_to_chars_shortest, __floating_to_chars_precision):
6703 Use sprintf_ld.
6704 (to_chars): Define overloads for __float128.
6705
6706 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
6707
6708 * testsuite/17_intro/names.cc: Undefine 'u' on powerpc*-linux*.
6709
6710 2021-02-23 Martin Sebor <msebor@redhat.com>
6711
6712 PR c++/99074
6713 * libsupc++/dyncast.cc (__dynamic_cast): Return null when
6714 first argument is null.
6715
6716 2021-02-23 Jakub Jelinek <jakub@redhat.com>
6717
6718 PR libstdc++/99181
6719 * testsuite/21_strings/char_traits/requirements/char/99181.cc: New
6720 test.
6721
6722 2021-02-23 Jakub Jelinek <jakub@redhat.com>
6723
6724 PR libstdc++/99181
6725 * include/bits/char_traits.h (char_traits<char>::compare): For
6726 constexpr evaluation don't call
6727 __gnu_cxx::char_traits<char_type>::compare but do the comparison loop
6728 directly.
6729
6730 2021-02-23 Jakub Jelinek <jakub@redhat.com>
6731
6732 PR libstdc++/97549
6733 * include/pstl/parallel_backend_serial.h: Remove __pstl::__par_backend.
6734
6735 2021-02-23 Patrick Palka <ppalka@redhat.com>
6736
6737 PR libstdc++/98384
6738 * src/c++17/floating_to_chars.cc (get_ieee_repr): Extract
6739 the high- and low-order parts from an IBM long double value
6740 in an endian-agnostic way.
6741
6742 2021-02-19 Jonathan Wakely <jwakely@redhat.com>
6743
6744 * include/bits/atomic_wait.h (__thread_relax()): Call
6745 __thread_yield() not __gthread_yield().
6746
6747 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
6748
6749 * include/bits/atomic_wait.h (__thread_yield()): Check
6750 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
6751 (__thread_relax()): Use __thread_yield() instead of repeating
6752 the preprocessor checks for __gthread_yield.
6753
6754 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
6755
6756 * include/std/mutex (once_flag::_M_activate()): Add explicit
6757 return statement for passive case.
6758 (once_flag::_M_finish(bool)): Use reserved name for parameter.
6759
6760 2021-02-14 Jonathan Wakely <jwakely@redhat.com>
6761
6762 PR libstdc++/99096
6763 * testsuite/util/testsuite_fs.h: Always include <unistd.h>.
6764
6765 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6766
6767 PR libstdc++/88881
6768 * src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround.
6769
6770 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6771
6772 * doc/xml/manual/status_cxx2014.xml: Document implementation
6773 specific properties of std::experimental::filesystem::rename.
6774 * doc/xml/manual/status_cxx2017.xml: Document implementation
6775 specific properties of std::filesystem::rename.
6776 * doc/html/*: Regenerate.
6777 * src/c++17/fs_ops.cc (fs::rename): Implement correct behaviour
6778 for directories on Windows.
6779 * src/filesystem/ops-common.h (__gnu_posix::rename): Use
6780 MoveFileExW on Windows.
6781 * testsuite/27_io/filesystem/operations/rename.cc: New test.
6782 * testsuite/experimental/filesystem/operations/rename.cc: New test.
6783
6784 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6785
6786 * testsuite/util/testsuite_fs.h (nonexistent_path): Add
6787 random number to the path.
6788
6789 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6790
6791 * include/experimental/internet (address_v6::to_string): Include
6792 scope ID in string.
6793 * testsuite/experimental/net/internet/address/v6/members.cc:
6794 Test to_string() results.
6795
6796 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6797
6798 * include/experimental/internet (address_v6::any): Avoid using
6799 memcpy in constexpr function.
6800 (address_v6::loopback): Likewise.
6801 (make_address_v6): Fix missing return statements on error paths.
6802 * include/experimental/io_context: Avoid -Wdangling-else
6803 warning.
6804 * testsuite/experimental/net/internet/address/v4/members.cc:
6805 Remove unused variables.
6806 * testsuite/experimental/net/internet/address/v6/members.cc:
6807 New test.
6808
6809 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6810
6811 * include/bits/shared_ptr_base.h (__shared_ptr::_M_get_deleter):
6812 Add unused attribute to parameter.
6813 * src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq):
6814 Likewise.
6815
6816 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6817
6818 * testsuite/27_io/basic_ostream/emit/1.cc: Expect test to fail
6819 if -fno-rtti is used.
6820 * testsuite/30_threads/async/forced_unwind.cc: Expect test
6821 to abort if -fno-rtti is used.
6822
6823 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6824
6825 * testsuite/util/testsuite_allocator.h (memory_resource):
6826 Remove requirement for RTTI and exceptions to be enabled.
6827
6828 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6829
6830 * testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Use
6831 static_cast when RTTI is disabled.
6832 * testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc:
6833 Likewise.
6834 * testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc:
6835 Likewise.
6836 * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc:
6837 Likewise.
6838 * testsuite/27_io/basic_stringstream/str/char/2.cc:
6839 Likewise.
6840 * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc:
6841 Likewise.
6842
6843 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6844
6845 * include/std/ostream (__syncbuf_base::_S_get): Mark parameter
6846 as unused and only use dynamic_cast when RTTI is enabled.
6847
6848 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6849
6850 PR libstdc++/99077
6851 * src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)):
6852 Change int parameter to error_code, to match std::ios_failure.
6853 (__throw_ios_failure(const char*, int)): Construct error_code
6854 from int parameter.
6855
6856 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
6857
6858 * libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define
6859 new macro.
6860 * libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new
6861 macro instead of _GLIBCXX_EH_PTR_COMPAT.
6862 (operator==): Likewise.
6863
6864 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
6865
6866 PR libstdc++/99058
6867 * doc/xml/manual/status_cxx2011.xml: Document when support
6868 became stable.
6869 * doc/xml/manual/status_cxx2014.xml: Likewise.
6870 * doc/xml/manual/status_cxx2017.xml: Likewise.
6871 * doc/html/manual/status.html: Regenerate.
6872
6873 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
6874
6875 PR libstdc++/88881
6876 * src/c++17/fs_ops.cc (fs::status): Re-enable workaround.
6877
6878 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
6879
6880 * src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent)
6881 (fs::remove): Use std::system_category() for error codes from
6882 GetLastError().
6883 * src/filesystem/ops.cc (fs::create_hard_link, fs::remove):
6884 Likewise.
6885
6886 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
6887
6888 * testsuite/27_io/filesystem/operations/proximate.cc: Fix typo
6889 in __MINGW32__ macro name.
6890 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
6891 * testsuite/27_io/filesystem/path/generation/proximate.cc:
6892 Likewise.
6893 * testsuite/27_io/filesystem/path/generation/relative.cc:
6894 Likewise.
6895 * testsuite/util/testsuite_fs.h: Likewise.
6896
6897 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
6898
6899 * include/bits/stl_tree.h
6900 (__has_is_transparent, __has_is_transparent_t): Move...
6901 * include/bits/stl_function.h: ...here.
6902 * include/bits/hashtable_policy.h (_Hash_code_base<>::_M_hash_code_tr): New..
6903 (_Hashtable_base<>::_M_equals_tr): New.
6904 * include/bits/hashtable.h (_Hashtable<>::_M_find_tr, _Hashtable<>::_M_count_tr,
6905 _Hashtable<>::_M_equal_range_tr): New member function templates to perform
6906 heterogeneous lookup.
6907 (_Hashtable<>::_M_find_before_node_tr): New.
6908 (_Hashtable<>::_M_find_node_tr): New.
6909 * include/bits/unordered_map.h (unordered_map::find<>, unordered_map::count<>,
6910 unordered_map::contains<>, unordered_map::equal_range<>): New member function
6911 templates to perform heterogeneous lookup.
6912 (unordered_multimap::find<>, unordered_multimap::count<>,
6913 unordered_multimap::contains<>, unordered_multimap::equal_range<>): Likewise.
6914 * include/bits/unordered_set.h (unordered_set::find<>, unordered_set::count<>,
6915 unordered_set::contains<>, unordered_set::equal_range<>): Likewise.
6916 (unordered_multiset::find<>, unordered_multiset::count<>,
6917 unordered_multiset::contains<>, unordered_multiset::equal_range<>): Likewise.
6918 * include/debug/unordered_map
6919 (unordered_map::find<>, unordered_map::equal_range<>): Likewise.
6920 (unordered_multimap::find<>, unordered_multimap::equal_range<>): Likewise.
6921 * include/debug/unordered_set
6922 (unordered_set::find<>, unordered_set::equal_range<>): Likewise.
6923 (unordered_multiset::find<>, unordered_multiset::equal_range<>): Likewise.
6924 * testsuite/23_containers/unordered_map/operations/1.cc: New test.
6925 * testsuite/23_containers/unordered_multimap/operations/1.cc: New test.
6926 * testsuite/23_containers/unordered_multiset/operations/1.cc: New test.
6927 * testsuite/23_containers/unordered_set/operations/1.cc: New test.
6928
6929 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
6930
6931 * include/bits/stl_deque.h
6932 (std::operator-(deque::iterator, deque::iterator)): Replace if/then with
6933 a null pointer test.
6934
6935 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
6936
6937 * testsuite/27_io/filesystem/operations/remove_all.cc: Remove
6938 test directory after making it writable again.
6939 * testsuite/experimental/filesystem/operations/remove_all.cc:
6940 Likewise.
6941
6942 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
6943
6944 PR libstdc++/99021
6945 * include/std/coroutine (coroutine_handle<P>::from_address): Add
6946 noexcept.
6947
6948 2021-02-09 Vladimir Vishnevsky <vv.os.swe@gmail.com>
6949
6950 * include/ext/stdio_sync_filebuf.h: Remove unused <unistd.h>.
6951 * src/c++17/fs_ops.cc (fs::permissions): Qualify mode_t.
6952
6953 2021-02-09 Jakub Jelinek <jakub@redhat.com>
6954
6955 PR middle-end/98465
6956 * include/bits/basic_string.tcc (basic_string::_M_replace): When __s
6957 points to the characters moved by earlier _S_move, compute the source
6958 address using expression based on the __p pointer rather than __s
6959 pointer.
6960
6961 2021-02-03 Jonathan Wakely <jwakely@redhat.com>
6962
6963 * testsuite/19_diagnostics/error_code/operators/not_equal.cc:
6964 Add comparison with same category and different values.
6965 * testsuite/19_diagnostics/error_code/operators/less.cc:
6966 Likewise. Fix comparison involving different categories.
6967 * testsuite/19_diagnostics/error_code/operators/three_way.cc:
6968 Likewise.
6969 * testsuite/19_diagnostics/error_condition/operators/less.cc:
6970 Add comment.
6971 * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
6972 Likewise.
6973
6974 2021-02-03 yaozhongxiao <yaozhongxiao@linux.alibaba.com>
6975
6976 * include/experimental/bits/simd_neon.h: Replace repeated vpadd
6977 calls with a single vaddv for aarch64.
6978
6979 2021-02-03 Matthias Kretz <kretz@kde.org>
6980
6981 * testsuite/Makefile.am: Warn about the workaround. Add
6982 -fno-tree-vrp to CXXFLAGS passed to the check_simd script.
6983 Improve initial user feedback from make check-simd.
6984 * testsuite/Makefile.in: Regenerated.
6985
6986 2021-02-03 Matthias Kretz <kretz@kde.org>
6987
6988 * include/experimental/bits/simd.h: Add __detail::_Minimum and
6989 __detail::_Maximum to use them as _BinaryOperation to _S_reduce.
6990 Add hmin and hmax overloads for simd and const_where_expression.
6991 * include/experimental/bits/simd_scalar.h
6992 (_SimdImplScalar::_S_reduce): Make unused _BinaryOperation
6993 parameter const-ref to allow calling _S_reduce with an rvalue.
6994 * testsuite/experimental/simd/tests/reductions.cc: Add tests for
6995 hmin and hmax. Since the compiler statically determined that all
6996 tests pass, repeat the test after a call to make_value_unknown.
6997
6998 2021-02-03 Matthias Kretz <kretz@kde.org>
6999
7000 * testsuite/experimental/simd/tests/bits/verify.h (verify): Add
7001 instruction pointer data member. Ensure that the `if (m_failed)`
7002 branch is always inlined into the calling code. The body of the
7003 conditional can still be a function call. Move the get_ip call
7004 into the verify ctor to simplify the ctor calls.
7005 (COMPARE): Don't mention the use of all_of for reduction of a
7006 simd_mask. It only distracts from the real issue.
7007
7008 2021-02-03 Matthias Kretz <kretz@kde.org>
7009
7010 * testsuite/experimental/simd/driver.sh: Abstract reading test
7011 options into read_src_option function. Read skip, only,
7012 expensive, and xfail via read_src_option. Add timeout and
7013 timeout-factor options and adjust timeout variable accordingly.
7014 * testsuite/experimental/simd/tests/loadstore.cc: Set
7015 timeout-factor 2.
7016
7017 2021-02-03 Matthias Kretz <kretz@kde.org>
7018
7019 * testsuite/experimental/simd/driver.sh: When handling the pipe
7020 to log (and on verbose to stdout) count the lines. If it exceeds
7021 1000 log the issue and exit 125, which is then handled as a
7022 failure.
7023
7024 2021-02-03 Matthias Kretz <kretz@kde.org>
7025
7026 * testsuite/experimental/simd/tests/hypot3_fma.cc: Add skip:
7027 markup for long double on powerpc64*.
7028
7029 2021-02-03 Matthias Kretz <kretz@kde.org>
7030
7031 * include/experimental/bits/simd.h: Add __have_power10vec
7032 conditional on _ARCH_PWR10.
7033 * include/experimental/bits/simd_builtin.h: Forward declare
7034 _MaskImplPpc and use it as _MaskImpl when __ALTIVEC__ is
7035 defined.
7036 (_MaskImplBuiltin::_S_some_of): Call _S_popcount from the
7037 _SuperImpl for optimizations and correctness.
7038 * include/experimental/bits/simd_ppc.h: Add _MaskImplPpc.
7039 (_MaskImplPpc::_S_popcount): Implement via vec_cntm for POWER10.
7040 Otherwise, for >=int use -vec_sums divided by a sizeof factor.
7041 For <int use -vec_sums(vec_sum4s(...)) to sum all mask entries.
7042
7043 2021-02-03 Matthias Kretz <kretz@kde.org>
7044
7045 * testsuite/experimental/simd/driver.sh: Remove executable on
7046 SIGINT. Process compiler and test executable output: In verbose
7047 mode print messages immediately, limited to 1000 lines and
7048 breaking long lines to below $COLUMNS (or 1024 if not set).
7049 Communicating the exit status of the compiler / test with the
7050 necessary pipe is done via a message through stdout/-in.
7051
7052 2021-02-03 Matthias Kretz <kretz@kde.org>
7053
7054 * testsuite/Makefile.am: Ensure .simd.summary is empty before
7055 collecting a new summary.
7056 * testsuite/Makefile.in: Regenerate.
7057
7058 2021-02-03 Matthias Kretz <kretz@kde.org>
7059
7060 * testsuite/experimental/simd/generate_makefile.sh: Use
7061 different variables internally than documented for user
7062 overrides. This makes internal append/prepend work as intended.
7063
7064 2021-02-03 Matthias Kretz <kretz@kde.org>
7065
7066 * testsuite/experimental/simd/driver.sh (verify_test): Print
7067 test output on run xfail. Do not repeat lines from the log that
7068 were already printed on stdout.
7069 (test_selector): Make the compiler flags pattern usable as a
7070 substring selector.
7071 (toplevel): Trap on SIGINT and remove the log and sum files.
7072 Call timout with --foreground to quickly terminate on SIGINT.
7073 * testsuite/experimental/simd/generate_makefile.sh: Simplify run
7074 targets via target patterns. Default DRIVEROPTS to -v for run
7075 targets. Remove log and sum files after completion of the run
7076 target (so that it's always recompiled).
7077 Place help text into text file for reasonable 'make help'
7078 performance.
7079
7080 2021-02-03 Matthias Kretz <kretz@kde.org>
7081
7082 * include/experimental/bits/simd.h: Remove unnecessary static
7083 assertion. Allow sizeof(8) integer __intrinsic_type to enable
7084 the necessary mask type.
7085
7086 2021-02-03 Matthias Kretz <kretz@kde.org>
7087
7088 * include/experimental/bits/simd.h: Let __intrinsic_type<long
7089 double, N> be valid if sizeof(long double) == sizeof(double) and
7090 use a __vector double as member type.
7091
7092 2021-02-03 Matthias Kretz <kretz@kde.org>
7093
7094 * include/experimental/bits/simd.h (__is_intrinsic_type): New
7095 internal type trait. Alias for __is_vector_type on x86.
7096 (_VectorTraitsImpl): Enable for __intrinsic_type in addition for
7097 __vector_type.
7098 (__intrin_bitcast): Allow casting to & from vector & intrinsic
7099 types.
7100 (__intrinsic_type): Explicitly specialize for NEON intrinsic
7101 vector types.
7102
7103 2021-02-03 Matthias Kretz <kretz@kde.org>
7104
7105 * testsuite/experimental/simd/driver.sh: Implement skip, only,
7106 expensive, and xfail markers. They can select on type, ABI tag
7107 subset number, target-triplet, and compiler flags.
7108 * testsuite/experimental/simd/generate_makefile.sh: The summary
7109 now includes lines for unexpected passes and expected failures.
7110 If the skip or only markers are only conditional on the type, do
7111 not generate rules for those types.
7112 * testsuite/experimental/simd/tests/abs.cc: Mark test expensive
7113 for ABI tag subsets 1-9.
7114 * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
7115 * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
7116 * testsuite/experimental/simd/tests/casts.cc: Ditto.
7117 * testsuite/experimental/simd/tests/generator.cc: Ditto.
7118 * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
7119 * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
7120 * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
7121 * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
7122 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
7123 * testsuite/experimental/simd/tests/mask_loadstore.cc: Ditto.
7124 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
7125 * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
7126 * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
7127 * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
7128 * testsuite/experimental/simd/tests/operators.cc: Ditto.
7129 * testsuite/experimental/simd/tests/reductions.cc: Ditto.
7130 * testsuite/experimental/simd/tests/simd.cc: Ditto.
7131 * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
7132 * testsuite/experimental/simd/tests/splits.cc: Ditto.
7133 * testsuite/experimental/simd/tests/where.cc: Ditto.
7134 * testsuite/experimental/simd/tests/fpclassify.cc: Ditto. In
7135 addition replace "test only floattypes" marker by unconditional
7136 "float|double|ldouble" only marker.
7137 * testsuite/experimental/simd/tests/frexp.cc: Ditto.
7138 * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
7139 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
7140 Ditto.
7141 * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
7142 * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
7143 * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
7144 * testsuite/experimental/simd/tests/remqo.cc: Ditto.
7145 * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
7146 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
7147 * testsuite/experimental/simd/tests/sincos.cc: Ditto. In
7148 addition, xfail on run because the reference data is missing.
7149
7150 2021-02-02 Jonathan Wakely <jwakely@redhat.com>
7151
7152 * doc/xml/manual/status_cxx2011.xml: Remove stray table cell.
7153 * doc/xml/manual/status_cxx2014.xml: Likewise.
7154 * doc/xml/manual/status_cxx2017.xml: Likewise.
7155 * doc/html/manual/status.html: Regenerate.
7156
7157 2021-02-01 François Dumont <fdumont@gcc.gnu.org>
7158
7159 PR libstdc++/70303
7160 * include/bits/stl_deque.h (std::deque<>::operator-(iterator, iterator)):
7161 Return 0 if both iterators are value-initialized.
7162 * testsuite/23_containers/deque/70303.cc: New test.
7163 * testsuite/23_containers/vector/70303.cc: New test.
7164
7165 2021-02-01 Jonathan Wakely <jwakely@redhat.com>
7166
7167 * doc/xml/manual/status_cxx2011.xml: Update std::call_once
7168 status.
7169 * doc/xml/manual/status_cxx2014.xml: Likewise.
7170 * doc/xml/manual/status_cxx2017.xml: Likewise. Update
7171 std::from_chars and std::to_chars status. Fix formatting.
7172 * doc/html/manual/status.html: Regenerate.
7173
7174 2021-01-28 Jonathan Wakely <jwakely@redhat.com>
7175
7176 * include/experimental/bits/numeric_traits.h: Update copyright
7177 dates.
7178 * include/experimental/bits/simd.h: Likewise.
7179 * include/experimental/bits/simd_builtin.h: Likewise.
7180 * include/experimental/bits/simd_converter.h: Likewise.
7181 * include/experimental/bits/simd_detail.h: Likewise.
7182 * include/experimental/bits/simd_fixed_size.h: Likewise.
7183 * include/experimental/bits/simd_math.h: Likewise.
7184 * include/experimental/bits/simd_neon.h: Likewise.
7185 * include/experimental/bits/simd_ppc.h: Likewise.
7186 * include/experimental/bits/simd_scalar.h: Likewise.
7187 * include/experimental/bits/simd_x86.h: Likewise.
7188 * include/experimental/bits/simd_x86_conversions.h: Likewise.
7189 * include/experimental/simd: Likewise.
7190 * testsuite/experimental/simd/*: Likewise.
7191
7192 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
7193
7194 * doc/xml/manual/status_cxx2017.xml: Replace invalid entity.
7195 * doc/html/*: Regenerate.
7196
7197 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
7198
7199 * testsuite/experimental/simd/generate_makefile.sh: Use printf
7200 instead of echo when printing escape characters.
7201
7202 2021-01-27 Matthias Kretz <kretz@kde.org>
7203
7204 * scripts/check_simd: New file. This script is called from the
7205 the check-simd target. It determines a set of compiler flags and
7206 simulator setups for calling generate_makefile.sh and passes the
7207 information back to the check-simd target, which recurses to the
7208 generated Makefiles.
7209 * scripts/create_testsuite_files: Remove files below simd/tests/
7210 from testsuite_files and place them in testsuite_files_simd.
7211 * testsuite/Makefile.am: Add testsuite_files_simd. Add
7212 check-simd target.
7213 * testsuite/Makefile.in: Regenerate.
7214 * testsuite/experimental/simd/driver.sh: New file. This script
7215 compiles and runs a given simd test, logging its output and
7216 status. It uses the timeout command to implement compile and
7217 test timeouts.
7218 * testsuite/experimental/simd/generate_makefile.sh: New file.
7219 This script generates a Makefile which uses driver.sh to compile
7220 and run the tests and collect the logs into a single log file.
7221 * testsuite/experimental/simd/tests/abs.cc: New file. Tests
7222 abs(simd).
7223 * testsuite/experimental/simd/tests/algorithms.cc: New file.
7224 Tests min/max(simd, simd).
7225 * testsuite/experimental/simd/tests/bits/conversions.h: New
7226 file. Contains functions to support tests involving conversions.
7227 * testsuite/experimental/simd/tests/bits/make_vec.h: New file.
7228 Support functions make_mask and make_vec.
7229 * testsuite/experimental/simd/tests/bits/mathreference.h: New
7230 file. Support functions to supply precomputed math function
7231 reference data.
7232 * testsuite/experimental/simd/tests/bits/metahelpers.h: New
7233 file. Support code for SFINAE testing.
7234 * testsuite/experimental/simd/tests/bits/simd_view.h: New file.
7235 * testsuite/experimental/simd/tests/bits/test_values.h: New
7236 file. Test functions to easily drive a test with simd objects
7237 initialized from a given list of values and a range of random
7238 values.
7239 * testsuite/experimental/simd/tests/bits/ulp.h: New file.
7240 Support code to determine the ULP distance of simd objects.
7241 * testsuite/experimental/simd/tests/bits/verify.h: New file.
7242 Test framework for COMPARE'ing simd objects and instantiating
7243 the test templates with value_type and ABI tag.
7244 * testsuite/experimental/simd/tests/broadcast.cc: New file. Test
7245 simd broadcasts.
7246 * testsuite/experimental/simd/tests/casts.cc: New file. Test
7247 simd casts.
7248 * testsuite/experimental/simd/tests/fpclassify.cc: New file.
7249 Test floating-point classification functions.
7250 * testsuite/experimental/simd/tests/frexp.cc: New file. Test
7251 frexp(simd).
7252 * testsuite/experimental/simd/tests/generator.cc: New file. Test
7253 simd generator constructor.
7254 * testsuite/experimental/simd/tests/hypot3_fma.cc: New file.
7255 Test 3-arg hypot(simd,simd,simd) and fma(simd,simd,sim).
7256 * testsuite/experimental/simd/tests/integer_operators.cc: New
7257 file. Test integer operators.
7258 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
7259 New file. Test ldexp(simd), scalbn(simd), scalbln(simd), and
7260 modf(simd).
7261 * testsuite/experimental/simd/tests/loadstore.cc: New file. Test
7262 (converting) simd loads and stores.
7263 * testsuite/experimental/simd/tests/logarithm.cc: New file. Test
7264 log*(simd).
7265 * testsuite/experimental/simd/tests/mask_broadcast.cc: New file.
7266 Test simd_mask broadcasts.
7267 * testsuite/experimental/simd/tests/mask_conversions.cc: New
7268 file. Test simd_mask conversions.
7269 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: New
7270 file. Test simd_mask implicit conversions.
7271 * testsuite/experimental/simd/tests/mask_loadstore.cc: New file.
7272 Test simd_mask loads and stores.
7273 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: New
7274 file. Test simd_mask operators convert as specified.
7275 * testsuite/experimental/simd/tests/mask_operators.cc: New file.
7276 Test simd_mask compares, subscripts, and negation.
7277 * testsuite/experimental/simd/tests/mask_reductions.cc: New
7278 file. Test simd_mask reductions.
7279 * testsuite/experimental/simd/tests/math_1arg.cc: New file. Test
7280 1-arg math functions on simd.
7281 * testsuite/experimental/simd/tests/math_2arg.cc: New file. Test
7282 2-arg math functions on simd.
7283 * testsuite/experimental/simd/tests/operator_cvt.cc: New file.
7284 Test implicit conversions on simd binary operators behave as
7285 specified.
7286 * testsuite/experimental/simd/tests/operators.cc: New file. Test
7287 simd compares, subscripts, not, unary minus, plus, minus,
7288 multiplies, divides, increment, and decrement.
7289 * testsuite/experimental/simd/tests/reductions.cc: New file.
7290 Test reduce(simd).
7291 * testsuite/experimental/simd/tests/remqo.cc: New file. Test
7292 remqo(simd).
7293 * testsuite/experimental/simd/tests/simd.cc: New file. Basic
7294 sanity checks of simd types.
7295 * testsuite/experimental/simd/tests/sincos.cc: New file. Test
7296 sin(simd) and cos(simd).
7297 * testsuite/experimental/simd/tests/split_concat.cc: New file.
7298 Test split(simd) and concat(simd, simd).
7299 * testsuite/experimental/simd/tests/splits.cc: New file. Test
7300 split(simd_mask).
7301 * testsuite/experimental/simd/tests/trigonometric.cc: New file.
7302 Test remaining trigonometric functions on simd.
7303 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: New
7304 file. Test trunc(simd), ceil(simd), and floor(simd).
7305 * testsuite/experimental/simd/tests/where.cc: New file. Test
7306 masked operations using where.
7307
7308 2021-01-27 Matthias Kretz <kretz@kde.org>
7309
7310 * doc/xml/manual/status_cxx2017.xml: Add implementation status
7311 of the Parallelism TS 2. Document implementation-defined types
7312 and behavior.
7313 * include/Makefile.am: Add new headers.
7314 * include/Makefile.in: Regenerate.
7315 * include/experimental/simd: New file. New header for
7316 Parallelism TS 2.
7317 * include/experimental/bits/numeric_traits.h: New file.
7318 Implementation of P1841R1 using internal naming. Addition of
7319 missing IEC559 functionality query.
7320 * include/experimental/bits/simd.h: New file. Definition of the
7321 public simd interfaces and general implementation helpers.
7322 * include/experimental/bits/simd_builtin.h: New file.
7323 Implementation of the _VecBuiltin simd_abi.
7324 * include/experimental/bits/simd_converter.h: New file. Generic
7325 simd conversions.
7326 * include/experimental/bits/simd_detail.h: New file. Internal
7327 macros for the simd implementation.
7328 * include/experimental/bits/simd_fixed_size.h: New file. Simd
7329 fixed_size ABI specific implementations.
7330 * include/experimental/bits/simd_math.h: New file. Math
7331 overloads for simd.
7332 * include/experimental/bits/simd_neon.h: New file. Simd NEON
7333 specific implementations.
7334 * include/experimental/bits/simd_ppc.h: New file. Implement bit
7335 shifts to avoid invalid results for integral types smaller than
7336 int.
7337 * include/experimental/bits/simd_scalar.h: New file. Simd scalar
7338 ABI specific implementations.
7339 * include/experimental/bits/simd_x86.h: New file. Simd x86
7340 specific implementations.
7341 * include/experimental/bits/simd_x86_conversions.h: New file.
7342 x86 specific conversion optimizations. The conversion patterns
7343 work around missing conversion patterns in the compiler and
7344 should be removed as soon as PR85048 is resolved.
7345 * testsuite/experimental/simd/standard_abi_usable.cc: New file.
7346 Test that all (not all fixed_size<N>, though) standard simd and
7347 simd_mask types are usable.
7348 * testsuite/experimental/simd/standard_abi_usable_2.cc: New
7349 file. As above but with -ffast-math.
7350 * testsuite/libstdc++-dg/conformance.exp: Don't build simd tests
7351 from the standard test loop. Instead use
7352 check_vect_support_and_set_flags to build simd tests with the
7353 relevant machine flags.
7354
7355 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
7356
7357 PR libstdc++/66414
7358 * include/bits/string_view.tcc
7359 (basic_string_view::find(const CharT*, size_type, size_type)):
7360 Optimize.
7361
7362 2021-01-27 Paul Fee <paul.f.fee@gmail.com>
7363
7364 * include/bits/basic_string.h (basic_string::contains): New
7365 member functions.
7366 * include/std/string_view (basic_string_view::contains):
7367 Likewise.
7368 * include/std/version (__cpp_lib_string_contains): Define.
7369 * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
7370 Remove trailing whitespace.
7371 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
7372 Likewise.
7373 * testsuite/21_strings/basic_string/operations/contains/char/1.cc: New test.
7374 * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc: New test.
7375 * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc: New test.
7376 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: New test.
7377 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc: New test.
7378
7379 2021-01-21 Jonathan Wakely <jwakely@redhat.com>
7380
7381 * src/c++17/Makefile.in: Regenerate.
7382
7383 2021-01-20 David Edelsohn <dje.gcc@gmail.com>
7384
7385 * config/os/aix/ctype_inline.h (bool ctype<char>:: is): Cast
7386 _OBJ_DATA subscript to unsigned char. Add _THREAD_SAFE access to
7387 __lc_type.
7388 (const char* ctype<char>:: is): Same.
7389
7390 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
7391
7392 PR libstdc++/98725
7393 * testsuite/20_util/unique_ptr/io/lwg2948.cc: Do not try to
7394 write to a wide character stream if wide character support is
7395 disabled in the library.
7396
7397 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
7398
7399 * testsuite/27_io/basic_stringstream/cons/char/1.cc: Use
7400 stringbuf not wstringbuf.
7401
7402 2021-01-18 Jakub Jelinek <jakub@redhat.com>
7403
7404 PR debug/98708
7405 * src/c++11/Makefile.am (cxx11-ios_failure-lt.s, cxx11-ios_failure.s):
7406 Compile with -gno-as-loc-support.
7407 * src/c++11/Makefile.in: Regenerated.
7408
7409 2021-01-16 H.J. Lu <hjl.tools@gmail.com>
7410
7411 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
7412 Add -fcf-protection=none to -march=i486.
7413
7414 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
7415
7416 * testsuite/23_containers/deque/debug/98466.cc: Make it pre-C++11
7417 compliant.
7418
7419 2021-01-14 Alexandre Oliva <oliva@adacore.com>
7420
7421 * testsuite/30_threads/future/members/poll.cc: Calibrate
7422 iteration count.
7423
7424 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
7425
7426 PR libstdc++/98466
7427 * include/bits/hashtable_policy.h (_Node_iterator_base()): Set _M_cur to nullptr.
7428 (_Node_iterator()): Make default.
7429 (_Node_const_iterator()): Make default.
7430 * include/debug/macros.h (__glibcxx_check_erae_range_after): Add _M_singular
7431 iterator checks.
7432 * include/debug/safe_iterator.h
7433 (_GLIBCXX_DEBUG_VERIFY_OPERANDS): Accept if both iterator are value initialized.
7434 * include/debug/safe_local_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
7435 Likewise.
7436 * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range): Add
7437 _M_singular checks on input iterators.
7438 * src/c++11/debug.cc (_Safe_iterator_base::_M_can_compare): Remove _M_singular
7439 checks.
7440 * testsuite/23_containers/deque/debug/98466.cc: New test.
7441 * testsuite/23_containers/unordered_map/debug/98466.cc: New test.
7442
7443 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
7444
7445 PR libstdc++/98471
7446 * include/bits/fs_path.h (__throw_conversion_error): New
7447 function to throw or abort on character conversion errors.
7448 (__wstr_from_utf8): Move definition after filesystem_error has
7449 been defined. Use __throw_conversion_error.
7450 (path::_S_convert<_EcharT>): Use __throw_conversion_error.
7451 (path::_S_str_convert<_CharT, _Traits, _Allocator>): Likewise.
7452 (path::u8string): Likewise.
7453
7454 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
7455
7456 * include/std/barrier: Update copyright years. Fix whitespace.
7457 * include/std/version: Fix whitespace.
7458 * testsuite/30_threads/barrier/1.cc: Update copyright years.
7459 * testsuite/30_threads/barrier/2.cc: Likewise.
7460 * testsuite/30_threads/barrier/arrive.cc: Likewise.
7461 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
7462 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
7463 * testsuite/30_threads/barrier/completion.cc: Likewise.
7464
7465 2021-01-13 Jonathan Wakely <jwakely@redhat.com>
7466
7467 * doc/doxygen/user.cfg.in (INPUT): Remove include/debug/array.
7468
7469 2021-01-10 David Edelsohn <dje.gcc@gmail.com>
7470
7471 PR libstdc++/98613
7472 * testsuite/ext/vstring/cons/moveable.cc: Suppress false positive
7473 warning.
7474 * testsuite/ext/vstring/modifiers/assign/move_assign.cc: Same.
7475
7476 2021-01-08 Olivier Hainque <hainque@adacore.com>
7477
7478 * testsuite/20_util/bind/ref_neg.cc: Tweak the
7479 dg-prune-output regex for out-of-build-tree contexts.
7480
7481 2021-01-07 Thomas Rodgers <trodgers@redhat.com>
7482
7483 * doc/doxygen/user.cfg.in: Add new header.
7484 * include/Makefile.am (std_headers): likewise.
7485 * include/Makefile.in: Regenerate.
7486 * include/precompiled/stdc++.h: Add new header.
7487 * include/std/barrier: New file.
7488 * include/std/version: Add __cpp_lib_barrier feature test macro.
7489 * testsuite/30_threads/barrier/1.cc: New test.
7490 * testsuite/30_threads/barrier/2.cc: Likewise.
7491 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
7492 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
7493 * testsuite/30_threads/barrier/arrive.cc: Likewise.
7494 * testsuite/30_threads/barrier/completion.cc: Likewise.
7495
7496 2021-01-07 Patrick Palka <ppalka@redhat.com>
7497
7498 PR libstdc++/98384
7499 * testsuite/20_util/to_chars/long_double.cc: Use nexttowardl
7500 instead of the non-standard nextupl and nextdownl.
7501
7502 2021-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
7503
7504 * configure: Re-generate.
7505
7506 2021-01-05 Ed Smith-Rowland <3dw4rd@verizon.net>
7507
7508 * include/precompiled/stdc++.h: Add <source_location> to C++20 section.
7509
7510 2021-01-01 Jakub Jelinek <jakub@redhat.com>
7511
7512 * ChangeLog-2020: Rotate ChangeLog. New file.
7513
7514 \f
7515 Copyright (C) 2021 Free Software Foundation, Inc.
7516
7517 Copying and distribution of this file, with or without modification,
7518 are permitted in any medium without royalty provided the copyright
7519 notice and this notice are preserved.