12024-06-20  Release Manager
2
3          * GCC 12.4.0 released.
4
52024-06-17  Jonathan Wakely  <jwakely@redhat.com>
6
7          Backported from master:
8          2024-06-14  Jonathan Wakely  <jwakely@redhat.com>
9
10          * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Fix declaration of
11          posix_memalign.
12
132024-06-11  Tianqiang Shuai  <1101282468@qq.com>
14
15          Backported from master:
16          2023-07-06  Tianqiang Shuai  <1101282468@qq.com>
17
18          * config/io/basic_file_stdio.cc (xwrite) [USE_STDIO_PURE]: Fix
19          first argument.
20
212024-06-11  Jonathan Wakely  <jwakely@redhat.com>
22
23          Backported from master:
24          2023-03-22  Jonathan Wakely  <jwakely@redhat.com>
25
26          * include/std/utility (__cpp_lib_constexpr_algorithms): Define,
27          as per LWG 3792.
28          * testsuite/20_util/exchange/constexpr.cc: Check for it.
29
302024-06-11  Jonathan Wakely  <jwakely@redhat.com>
31
32          Backported from master:
33          2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
34
35          * include/bits/fs_ops.h (create_directory): Use reserved name
36          for parameter.
37          * include/bits/regex_automaton.h (_State_base::_M_print):
38          Likewise.
39          * include/bits/regex_automaton.tcc(_State_base::_M_print):
40          Likewise.
41          * include/bits/regex_scanner.tcc(_Scanner::_M_print): Likewise.
42          * include/experimental/bits/fs_ops.h (create_directory):
43          Likewise.
44          * include/std/mutex (timed_mutex::_M_clocklock): Likewise.
45          (recursive_timed_mutex:_M_clocklock): Likewise.
46          * libsupc++/cxxabi_init_exception.h
47          (__cxa_init_primary_exception): Likewise.
48          * testsuite/17_intro/names.cc: Add checks.
49
502024-06-11  Jonathan Wakely  <jwakely@redhat.com>
51
52          Backported from master:
53          2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
54
55          * include/experimental/internet (network_v6::network): Define.
56          (network_v6::hosts): Finish implementing.
57          (network_v6::to_string): Do not concatenate std::string to
58          arbitrary std::basic_string specialization.
59          * testsuite/experimental/net/internet/network/v6/cons.cc: New
60          test.
61
622024-06-11  Jonathan Wakely  <jwakely@redhat.com>
63
64          Backported from master:
65          2023-06-09  Jonathan Wakely  <jwakely@redhat.com>
66
67          PR libstdc++/100285
68          * include/experimental/internet [IPPROTO_TCP || IPPROTO_UDP]
69          (basic_endpoint, basic_resolver_entry, resolver_base)
70          (basic_resolver_results, basic_resolver): Only define if the tcp
71          or udp protocols will be defined.
72
732024-06-11  Jonathan Wakely  <jwakely@redhat.com>
74
75          Backported from master:
76          2023-07-05  Jonathan Wakely  <jwakely@redhat.com>
77
78          PR libstdc++/110542
79          * include/bits/stl_uninitialized.h (__uninitialized_default_n):
80          Do not use std::fill_n during constant evaluation.
81
822024-06-11  Jonathan Wakely  <jwakely@redhat.com>
83
84          Backported from master:
85          2024-04-10  Jonathan Wakely  <jwakely@redhat.com>
86
87          * testsuite/27_io/manipulators/extended/get_time/char/2.cc:
88          Adjust input string so that it matches %a with or without a
89          trailing period.
90
912024-06-11  Jonathan Wakely  <jwakely@redhat.com>
92
93          Backported from master:
94          2024-03-19  Jonathan Wakely  <jwakely@redhat.com>
95
96          PR libstdc++/114359
97          * include/bits/random.tcc (binomial_distribution::param_type):
98          Ensure arithmetic is done as type double.
99          * testsuite/26_numerics/random/binomial_distribution/114359.cc: New test.
100
1012024-06-11  Jonathan Wakely  <jwakely@redhat.com>
102
103          Backported from master:
104          2024-03-19  Jonathan Wakely  <jwakely@redhat.com>
105
106          PR libstdc++/114367
107          * include/bits/stl_bvector.h (_M_allocate): Use allocator's
108          construct function to begin lifetime of words.
109
1102024-06-11  Jonathan Wakely  <jwakely@redhat.com>
111
112          Backported from master:
113          2024-04-03  Jonathan Wakely  <jwakely@redhat.com>
114
115          PR libstdc++/104606
116          * include/std/optional (operator<=>(const optional<T>&, const U&)):
117          Reverse order of three_way_comparable_with template arguments.
118          * testsuite/20_util/optional/relops/104606.cc: New test.
119
1202024-06-11  Jonathan Wakely  <jwakely@redhat.com>
121
122          Backported from master:
123          2024-03-22  Jonathan Wakely  <jwakely@redhat.com>
124
125          PR libstdc++/114401
126          * include/bits/hashtable.h (_Hashtable::_M_reinsert_node): Call
127          release() on node handle instead of just zeroing its pointer.
128          (_Hashtable::_M_reinsert_node_multi): Likewise.
129          (_Hashtable::_M_merge_unique): Likewise.
130          (_Hashtable::_M_merge_multi): Likewise.
131          * include/bits/node_handle.h (_Node_handle_common::release()):
132          New member function.
133          (_Node_handle_common::_Optional_alloc::_M_empty): Remove
134          unnecessary union member.
135          (_Node_handle_common): Declare _Hashtable as a friend.
136          * include/bits/stl_tree.h (_Rb_tree::_M_reinsert_node_unique):
137          Call release() on node handle instead of just zeroing its
138          pointer.
139          (_Rb_tree::_M_reinsert_node_equal): Likewise.
140          (_Rb_tree::_M_reinsert_node_hint_unique): Likewise.
141          (_Rb_tree::_M_reinsert_node_hint_equal): Likewise.
142          * testsuite/23_containers/multiset/modifiers/114401.cc: New test.
143          * testsuite/23_containers/set/modifiers/114401.cc: New test.
144          * testsuite/23_containers/unordered_multiset/modifiers/114401.cc: New test.
145          * testsuite/23_containers/unordered_set/modifiers/114401.cc: New test.
146
1472024-06-01  Jonathan Wakely  <jwakely@redhat.com>
148
149          Backported from master:
150          2024-06-01  Jonathan Wakely  <jwakely@redhat.com>
151
152          PR libstdc++/115269
153          * doc/xml/manual/using.xml: Replace link to gcc-4.3.2 docs.
154          Replace list of -std=... options with a single entry for -std.
155          * doc/html/manual/using.html: Regenerate.
156
1572024-05-08  Matthias Kretz  <m.kretz@gsi.de>
158
159          Backported from master:
160          2024-04-22  Matthias Kretz  <m.kretz@gsi.de>
161
162          PR libstdc++/114803
163          * include/experimental/bits/simd_builtin.h
164          (_SimdBase2::operator __vector_type_t): There is no __builtin()
165          function in _SimdWrapper, instead use its conversion operator.
166          * testsuite/experimental/simd/pr114803_vecbuiltin_cvt.cc: New
167          test.
168
1692024-05-08  Matthias Kretz  <m.kretz@gsi.de>
170
171          Backported from master:
172          2024-04-22  Matthias Kretz  <m.kretz@gsi.de>
173
174          * include/experimental/bits/simd.h: Ignore -Wnarrowing for
175          arm_neon.h.
176          (__int_for_sizeof): Replace tautological compare with checking
177          for invalid template parameter value.
178          * include/experimental/bits/simd_builtin.h (__extract_part):
179          Remove tautological compare by combining two static_assert.
180
1812024-05-08  Matthias Kretz  <m.kretz@gsi.de>
182
183          Backported from master:
184          2024-04-17  Matthias Kretz  <m.kretz@gsi.de>
185
186          * include/experimental/bits/numeric_traits.h: Add include guard.
187
1882024-05-08  Matthias Kretz  <m.kretz@gsi.de>
189
190          Backported from master:
191          2024-04-17  Matthias Kretz  <m.kretz@gsi.de>
192
193          PR libstdc++/114750
194          * include/experimental/bits/simd_builtin.h
195          (_SimdImplBuiltin::_S_load, _S_store): Fall back to copying
196          scalars if the memory type cannot be vectorized for the target.
197
1982024-05-08  Matthias Kretz  <m.kretz@gsi.de>
199
200          Backported from master:
201          2024-03-27  Matthias Kretz  <m.kretz@gsi.de>
202
203          * include/experimental/bits/simd_x86.h (_S_masked_unary):
204          Cast inputs < 16 bytes to 16 byte vectors before calling the
205          right subtraction builtin. Before returning, truncate to the
206          return vector type.
207
2082024-05-08  Matthias Kretz  <m.kretz@gsi.de>
209
210          Backported from master:
211          2024-03-27  Matthias Kretz  <m.kretz@gsi.de>
212
213          * include/experimental/bits/simd_x86.h (_S_masked_unary): Call
214          the 4- and 8-byte variants of __builtin_ia32_subp[ds] without
215          rounding direction argument.
216
2172024-05-08  Matthias Kretz  <m.kretz@gsi.de>
218
219          Backported from master:
220          2023-06-06  Matthias Kretz  <m.kretz@gsi.de>
221
222          PR libstdc++/109822
223          * include/experimental/bits/simd_builtin.h (_S_store): Rewrite
224          to avoid casts to other vector types. Implement store as
225          succession of power-of-2 sized memcpy to avoid PR90424.
226
2272024-05-08  Matthias Kretz  <m.kretz@gsi.de>
228
229          Backported from master:
230          2023-06-06  Matthias Kretz  <m.kretz@gsi.de>
231
232          PR libstdc++/110054
233          * include/experimental/bits/simd_builtin.h (_S_masked_store):
234          Call into deduced ABI's SimdImpl after conversion.
235          * include/experimental/bits/simd_x86.h (_S_masked_store_nocvt):
236          Don't use _mm_maskmoveu_si128. Use the generic fall-back
237          implementation. Also fix masked stores without SSE2, which
238          were not doing anything before.
239
2402024-05-08  Matthias Kretz  <m.kretz@gsi.de>
241
242          Backported from master:
243          2023-06-06  Matthias Kretz  <m.kretz@gsi.de>
244
245          * include/experimental/bits/simd.h (__bit_cast): Use
246          __gnu__::__vector_size__ instead of gnu::vector_size.
247
2482024-04-21  Iain Sandoe  <iain@sandoe.co.uk>
249
250          Backported from master:
251          2024-02-19  Iain Sandoe  <iain@sandoe.co.uk>
252                        Jonathan Wakely  <jwakely@redhat.com>
253
254          PR target/112397
255          * configure: Regenerate.
256          * configure.ac: Detect if we are building for Darwin.
257          * libsupc++/Makefile.am: If we are building for Darwin, then
258          suppress hot/cold partitioning for the array allocators.
259          * libsupc++/Makefile.in: Regenerated.
260
2612024-04-21  Iain Sandoe  <iain@sandoe.co.uk>
262
263          Backported from master:
264          2024-03-19  Iain Sandoe  <iain@sandoe.co.uk>
265
266          * testsuite/lib/dg-options.exp (atomic_link_flags): Emit a -B
267          option for the path to the uninstalled libatomic.
268
2692024-04-21  Iain Sandoe  <iain@sandoe.co.uk>
270
271          Backported from master:
272          2024-03-19  Iain Sandoe  <iain@sandoe.co.uk>
273
274          * testsuite/lib/libstdc++.exp (v3_target_compile): Instead of
275          /dev/null, use a temporary file for test executables on Darwin.
276
2772024-04-18  Iain Sandoe  <iain@sandoe.co.uk>
278
279          Backported from master:
280          2022-12-04  Iain Sandoe  <iain@sandoe.co.uk>
281
282          * config/os/bsd/darwin/os_defines.h
283          (_GTHREAD_USE_RECURSIVE_MUTEX_INIT_FUNC): Limit use of this macro
284          to OS versions that need it.
285
2862024-03-18  Jonathan Wakely  <jwakely@redhat.com>
287
288          Backported from master:
289          2023-05-12  Jonathan Wakely  <jwakely@redhat.com>
290
291          * testsuite/experimental/feat-cxx14.cc: Remove dependency on
292          _GLIBCXX_USE_C99_STDINT_TR1.
293
2942024-03-18  Jonathan Wakely  <jwakely@redhat.com>
295
296          Backported from master:
297          2023-05-12  Jonathan Wakely  <jwakely@redhat.com>
298
299          * testsuite/21_strings/basic_string_view/typedefs.cc: Remove
300          dependency on _GLIBCXX_USE_C99_STDINT_TR1.
301          * testsuite/experimental/string_view/typedefs.cc: Likewise.
302
3032024-03-18  Jonathan Wakely  <jwakely@redhat.com>
304
305          Backported from master:
306          2023-09-11  Jonathan Wakely  <jwakely@redhat.com>
307
308          * src/c++11/Makefile.am: Add new file.
309          * src/c++11/Makefile.in: Regenerate.
310          * src/c++11/debug.cc (__glibcxx_assert_fail): Move to ...
311          * src/c++11/assert_fail.cc: New file.
312
3132024-03-18  Jonathan Wakely  <jwakely@redhat.com>
314
315          Backported from master:
316          2023-06-26  Jonathan Wakely  <jwakely@redhat.com>
317
318          * include/bits/iterator_concepts.h (projected): Replace class
319          template with alias template denoting an ADL-proofed helper.
320          (incremental_traits<projected<Iter, Proj>>): Remove.
321          * testsuite/24_iterators/indirect_callable/projected-adl.cc:
322          New test.
323
3242024-03-18  Jonathan Wakely  <jwakely@redhat.com>
325
326          Backported from master:
327          2023-04-27  Jonathan Wakely  <jwakely@redhat.com>
328
329          PR libstdc++/40380
330          * include/bits/basic_string.h: Improve doxygen comments.
331          * include/bits/cow_string.h: Likewise.
332          * include/bits/forward_list.h: Likewise.
333          * include/bits/fs_dir.h: Likewise.
334          * include/bits/fs_path.h: Likewise.
335          * include/bits/quoted_string.h: Likewise.
336          * include/bits/stl_bvector.h: Likewise.
337          * include/bits/stl_map.h: Likewise.
338          * include/bits/stl_multimap.h: Likewise.
339          * include/bits/stl_multiset.h: Likewise.
340          * include/bits/stl_set.h: Likewise.
341          * include/bits/stl_vector.h: Likewise.
342          * include/bits/unordered_map.h: Likewise.
343          * include/bits/unordered_set.h: Likewise.
344          * include/std/filesystem: Likewise.
345          * include/std/iomanip: Likewise.
346
3472024-03-18  Jonathan Wakely  <jwakely@redhat.com>
348
349          Backported from master:
350          2022-11-19  Jonathan Wakely  <jwakely@redhat.com>
351
352          * include/bits/ptr_traits.h (pointer_traits::pointer_to): Rename
353          parameter.
354
3552024-03-18  Jonathan Wakely  <jwakely@redhat.com>
356
357          Backported from master:
358          2022-11-21  Jonathan Wakely  <jwakely@redhat.com>
359
360          * include/std/tuple: Add better Doxygen comments.
361
3622024-03-18  Jonathan Wakely  <jwakely@redhat.com>
363
364          Backported from master:
365          2022-11-08  Jonathan Wakely  <jwakely@redhat.com>
366
367          * testsuite/18_support/new_nothrow.cc: Add missing noexcept
368          to operator delete replacements.
369          * testsuite/20_util/any/cons/92156.cc: Disable
370          -Winit-list-lifetime warnings from instantiating invalid
371          specialization of manager function.
372          * testsuite/20_util/any/modifiers/92156.cc: Likewise.
373          * testsuite/20_util/default_delete/void_neg.cc: Prune additional
374          diagnostics.
375          * testsuite/20_util/headers/memory/synopsis.cc: Add missing
376          noexcept.
377          * testsuite/20_util/shared_ptr/cons/void_neg.cc: Prune
378          additional diagnostic.
379          * testsuite/20_util/unique_ptr/creation/for_overwrite.cc: Add
380          missing noexcept to operator delete replacements.
381          * testsuite/21_strings/basic_string/cons/char/103919.cc:
382          Likewise.
383          * testsuite/23_containers/map/modifiers/emplace/92300.cc:
384          Likewise.
385          * testsuite/23_containers/map/modifiers/insert/92300.cc:
386          Likewise.
387          * testsuite/24_iterators/headers/iterator/range_access_c++11.cc:
388          Add missing noexcept to synopsis declarations.
389          * testsuite/24_iterators/headers/iterator/range_access_c++14.cc:
390          Likewise.
391          * testsuite/24_iterators/headers/iterator/range_access_c++17.cc:
392          Likewise.
393
3942024-03-18  Jonathan Wakely  <jwakely@redhat.com>
395
396          Backported from master:
397          2022-09-21  Jonathan Wakely  <jwakely@redhat.com>
398
399          * testsuite/20_util/headers/memory/synopsis.cc: Add declarations
400          from C++11 and later.
401
4022024-03-18  Jonathan Wakely  <jwakely@redhat.com>
403
404          Backported from master:
405          2022-11-08  Jonathan Wakely  <jwakely@redhat.com>
406
407          * include/bits/stl_tempbuf.h (_Temporary_buffer): Disable
408          warnings about get_temporary_buffer being deprecated.
409          * include/ext/functional (mem_fun1, mem_fun1_ref): Disable
410          warnings about mem_fun1_t, const_mem_fun1_t, mem_fun1_ref_t and
411          const_mem_fun1_ref_t being deprecated.
412          * include/std/spanstream (basic_spanbuf::setbuf): Add assertion
413          and adjust to avoid narrowing warning.
414          * libsupc++/exception_ptr.h [!__cpp_rtti && !__cpp_exceptions]
415          (make_exception_ptr): Add missing inline specifier.
416
4172024-03-18  Jonathan Wakely  <jwakely@redhat.com>
418
419          Backported from master:
420          2022-05-13  Jonathan Wakely  <jwakely@redhat.com>
421
422          * doc/doxygen/user.cfg.in (PREDEFINED): Define
423          _GTHREAD_USE_MUTEX_TIMEDLOCK macro.
424          * include/bits/std_mutex.h (mutex, lock_guard): Use @since and
425          @headerfile.
426          * include/bits/unique_lock.h (unique_lock): Likewise.
427          * include/std/mutex (recursive_mutex, timed_mutex)
428          (recursive_timed_mutex, scoped_lock): Likewise.
429
4302024-03-18  Jonathan Wakely  <jwakely@redhat.com>
431
432          Backported from master:
433          2022-05-13  Jonathan Wakely  <jwakely@redhat.com>
434
435          * doc/doxygen/user.cfg.in (PREDEFINED): Define
436          _GLIBCXX23_CONSTEXPR macro.
437          * include/backward/auto_ptr.h (auto_ptr): Use @deprecated.
438          * include/bits/unique_ptr.h (default_delete): Use @since and
439          @headerfile.
440          * include/std/scoped_allocator: Remove @ingroup from @file
441          block.
442
4432024-03-18  Jonathan Wakely  <jwakely@redhat.com>
444
445          Backported from master:
446          2022-05-13  Jonathan Wakely  <jwakely@redhat.com>
447
448          * include/bits/ostream_insert.h: Mark helper functions as
449          undocumented by Doxygen.
450          * include/bits/stl_algo.h: Use markdown for formatting and mark
451          helper functions as undocumented.
452          * include/bits/stl_numeric.h:  Likewise.
453          * include/bits/stl_pair.h (pair): Add @headerfile.
454
4552024-03-18  Jonathan Wakely  <jwakely@redhat.com>
456
457          Backported from master:
458          2022-05-13  Jonathan Wakely  <jwakely@redhat.com>
459
460          * doc/doxygen/user.cfg.in (PREDEFINED): Define __allocator_base
461          so that Doxygen shows the right base-class for std::allocator.
462          * include/bits/alloc_traits.h: Improve doxygen docs.
463          * include/bits/allocator.h: Likewise.
464          * include/bits/new_allocator.h: Likewise.
465          * include/ext/new_allocator.h: Likewise.
466
4672024-03-18  Jonathan Wakely  <jwakely@redhat.com>
468
469          Backported from master:
470          2022-05-13  Jonathan Wakely  <jwakely@redhat.com>
471
472          * doc/doxygen/user.cfg.in (PREDEFINED): Define macro
473          _GLIBCXX_DOXYGEN_ONLY to expand its argument.
474          * include/bits/c++config (_GLIBCXX_DOXYGEN_ONLY): Define.
475          * include/bits/regex.h: Improve doxygen docs.
476          * include/bits/regex_constants.h: Likewise.
477          * include/bits/regex_error.h: Likewise.
478
4792024-03-18  Jonathan Wakely  <jwakely@redhat.com>
480
481          Backported from master:
482          2022-05-13  Jonathan Wakely  <jwakely@redhat.com>
483
484          * include/std/atomic: Suppress doxygen docs for
485          implementation details.
486          * include/bits/atomic_base.h: Likewise.
487          * include/bits/shared_ptr_atomic.h: Use markdown. Fix grouping
488          so that std::atomic is not added to the pointer abstractions
489          group.
490
4912024-03-18  Jonathan Wakely  <jwakely@redhat.com>
492
493          Backported from master:
494          2022-05-17  Jonathan Wakely  <jwakely@redhat.com>
495
496          * src/Makefile.am [ENABLE_SYMVERS_GNU_NAMESPACE] (cxx11_sources):
497          Do not build the compatibility*-c++0x.cc objects.
498          * src/Makefile.in: Regenerate.
499          * src/c++11/compatibility-c++0x.cc [_GLIBCXX_INLINE_VERSION]:
500          Refuse to build for the versioned namespace.
501          * src/c++11/compatibility-chrono.cc: Likewise.
502          * src/c++11/compatibility-condvar.cc: Likewise.
503          * src/c++11/compatibility-thread-c++0x.cc: Likewise.
504          * src/c++11/chrono.cc (system_clock, steady_clock):
505          Use macros to define in inline namespace _V2, matching the
506          declarations in <system_error>.
507          * src/c++11/system_error.cc (system_category, generic_category):
508          Likewise.
509
5102024-03-18  Jonathan Wakely  <jwakely@redhat.com>
511
512          Backported from master:
513          2022-05-13  Jonathan Wakely  <jwakely@redhat.com>
514
515          * doc/doxygen/user.cfg.in (PREDEFINED): Expand new macros to
516          nothing.
517          * include/bits/c++config (_GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE)
518          (_GLIBCXX_END_INLINE_ABI_NAMESPACE): Define new macros.
519          * include/bits/algorithmfwd.h (_V2::__rotate): Use new macros
520          for the namespace.
521          * include/bits/chrono.h (chrono::_V2::system_clock): Likewise.
522          * include/bits/stl_algo.h (_V2::__rotate): Likewise.
523          * include/std/condition_variable (_V2::condition_variable_any):
524          Likewise.
525          * include/std/system_error (_V2::error_category): Likewise.
526
5272024-03-18  Jonathan Wakely  <jwakely@redhat.com>
528
529          Backported from master:
530          2022-05-13  Jonathan Wakely  <jwakely@redhat.com>
531
532          * doc/doxygen/user.cfg.in (GROUP_NESTED_COMPOUNDS): Set to NO.
533          (CLASS_DIAGRAMS): Remove obsolete option.
534
5352024-03-18  Jonathan Wakely  <jwakely@redhat.com>
536
537          Backported from master:
538          2022-06-27  Jonathan Wakely  <jwakely@redhat.com>
539
540          * include/bits/fs_path.h (__is_path_iter_src): Replace class
541          template with variable template.
542
5432024-03-18  Jonathan Wakely  <jwakely@redhat.com>
544
545          Backported from master:
546          2022-09-26  Jonathan Wakely  <jwakely@redhat.com>
547
548          * include/bits/ptr_traits.h (__ptr_traits_elem) [__cpp_concepts]:
549          Also define the __ptr_traits_elem class template for the
550          concepts case.
551          (pointer_traits<Ptr>): Remove constrained partial
552          specialization.
553          * testsuite/20_util/pointer_traits/lwg3545.cc: Check for
554          ambiguitiy with program-defined partial specialization.
555
5562024-03-18  Jonathan Wakely  <jwakely@redhat.com>
557
558          Backported from master:
559          2022-09-24  Jonathan Wakely  <jwakely@redhat.com>
560
561          * include/bits/alloc_traits.h (allocator_traits::is_always_equal):
562          Only instantiate is_empty if needed.
563          * include/bits/ptr_traits.h (__ptr_traits_impl::difference_type)
564          (__ptr_traits_impl::rebind): Use __detected_or.
565          * include/experimental/type_traits (is_same_v): Add a partial
566          specialization instead of instantiating the std::is_same class
567          template.
568          (detected_t): Redefine in terms of detected_or_t.
569          (is_detected, is_detected_v): Redefine in terms of detected_t.
570          * include/std/type_traits [__cpp_concepts] (__detected_or): Add
571          new definition using concepts.
572          (__detector::value_t): Rename to __is_detected.
573          * testsuite/17_intro/names.cc: Check value_t isn't used.
574
5752024-03-18  Jonathan Wakely  <jwakely@redhat.com>
576
577          Backported from master:
578          2022-05-13  Jonathan Wakely  <jwakely@redhat.com>
579
580          * include/bits/ptr_traits.h: Add some doxygen comments.
581
5822024-03-18  Xi Ruoyao  <xry111@xry111.site>
583
584          Backported from master:
585          2022-06-24  Xi Ruoyao  <xry111@xry111.site>
586
587          * scripts/extract_symvers.in: Use grep -E instead of egrep.
588          * scripts/run_doxygen: Likewise.
589
5902024-03-18  Jonathan Wakely  <jwakely@redhat.com>
591
592          Backported from master:
593          2022-10-28  Jonathan Wakely  <jwakely@redhat.com>
594
595          PR libstdc++/107376
596          * include/bits/regex_executor.h (_Executor::_Executor): Use same
597          allocator for _M_cur_results and _M_results.
598          * include/bits/regex_executor.tcc (_Executor::_M_main_dispatch):
599          Prevent possibly incorrect allocator propagating to
600          _M_cur_results.
601          * testsuite/28_regex/algorithms/regex_match/107376.cc: New test.
602
6032024-03-18  Jonathan Wakely  <jwakely@redhat.com>
604
605          Backported from master:
606          2023-02-02  Jonathan Wakely  <jwakely@redhat.com>
607
608          * include/std/sstream  (basic_stringbuf::view): Define for old
609          std::string ABI.
610          (basic_istringstream::view, basic_stringstream::view)
611          (basic_stringstream::view): Likewise.
612          * testsuite/27_io/basic_istringstream/view/char/1.cc: Remove
613          { dg-require-effective-target cxx11_abi }.
614          * testsuite/27_io/basic_istringstream/view/wchar_t/1.cc:
615          Likewise.
616          * testsuite/27_io/basic_ostringstream/view/char/1.cc: Likewise.
617          * testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc:
618          Likewise.
619          * testsuite/27_io/basic_stringbuf/view/char/1.cc: Likewise.
620          * testsuite/27_io/basic_stringbuf/view/wchar_t/1.cc: Likewise.
621          * testsuite/27_io/basic_stringstream/view/char/1.cc: Likewise.
622          * testsuite/27_io/basic_stringstream/view/wchar_t/1.cc:
623          Likewise.
624
6252024-03-18  Jonathan Wakely  <jwakely@redhat.com>
626
627          Backported from master:
628          2023-09-07  Jonathan Wakely  <jwakely@redhat.com>
629
630          * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for mkdir,
631          chmod, chdir, and getcwd.
632          * config.h.in: Regenerate.
633          * configure: Regenerate.
634          * src/c++17/fs_ops.cc (create_dir): Use USE_MKDIR macro.
635          (fs::current_path): Use USE_GETCWD and USE_CHDIR macros.
636          (fs::permissions): Use USE_CHMOD macro.
637          * src/filesystem/ops-common.h [FILESYSTEM_IS_WINDOWS]
638          (chmod, mkdir, getcwd, chdir): Define new macros.
639          [FILESYSTEM_IS_WINDOWS] (chmod, mkdir, getcwd, chdir): Use
640          new macros.
641          * src/filesystem/ops.cc (create_dir): Use USE_MKDIR macro.
642          (fs::current_path): Use USE_GETCWD and USE_CHDIR macros.
643          (fs::permissions): Use USE_CHMOD macro.
644
6452024-03-18  Jonathan Wakely  <jwakely@redhat.com>
646
647          Backported from master:
648          2023-08-09  Jonathan Wakely  <jwakely@redhat.com>
649
650          * include/bits/new_allocator.h (__new_allocator): Define copy
651          assignment operator as defaulted.
652          * include/std/complex (complex<float>, complex<double>)
653          (complex<long double>): Define copy constructor as defaulted.
654
6552024-03-18  Jonathan Wakely  <jwakely@redhat.com>
656
657          Backported from master:
658          2023-11-11  Jonathan Wakely  <jwakely@redhat.com>
659
660          PR libstdc++/112473
661          * include/bits/utility.h (integer_sequence): Add static_assert.
662          * testsuite/20_util/integer_sequence/112473.cc: New test.
663
6642024-03-18  Jonathan Wakely  <jwakely@redhat.com>
665
666          Backported from master:
667          2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
668
669          PR libstdc++/111172
670          * include/std/variant (get<T>): Remove !is_void static
671          assertions.
672
6732024-03-18  Jonathan Wakely  <jwakely@redhat.com>
674
675          Backported from master:
676          2023-10-26  Jonathan Wakely  <jwakely@redhat.com>
677
678          PR libstdc++/112089
679          * include/std/shared_mutex (shared_lock::unlock): Change errc
680          constant to operation_not_permitted.
681          * testsuite/30_threads/shared_lock/locking/112089.cc: New test.
682
6832024-03-18  Jonathan Wakely  <jwakely@redhat.com>
684
685          Backported from master:
686          2024-02-29  Jonathan Wakely  <jwakely@redhat.com>
687
688          PR libstdc++/113960
689          * include/bits/stl_algobase.h (__is_byte_iter): Replace with ...
690          (__memcmp_ordered_with): New concept.
691          (lexicographical_compare_three_way): Use __memcmp_ordered_with
692          instead of __is_byte_iter. Use correct length for memcmp.
693          * testsuite/25_algorithms/lexicographical_compare_three_way/113960.cc:
694          New test.
695
6962024-03-18  Jonathan Wakely  <jwakely@redhat.com>
697
698          Backported from master:
699          2023-02-28  Jonathan Wakely  <jwakely@redhat.com>
700
701          PR libstdc++/108846
702          * include/bits/stl_algobase.h (__copy_move<false, false, RA>)
703          Add __assign_one static member function.
704          (__copy_move<true, false, RA>): Likewise.
705          (__copy_move<IsMove, true, RA>): Do not use memmove for a single
706          value.
707          (__copy_move_backward<IsMove, true, RA>): Likewise.
708          * testsuite/25_algorithms/copy/108846.cc: New test.
709          * testsuite/25_algorithms/copy_backward/108846.cc: New test.
710          * testsuite/25_algorithms/copy_n/108846.cc: New test.
711          * testsuite/25_algorithms/move/108846.cc: New test.
712          * testsuite/25_algorithms/move_backward/108846.cc: New test.
713
7142024-03-18  Jonathan Wakely  <jwakely@redhat.com>
715
716          Backported from master:
717          2023-03-22  Jonathan Wakely  <jwakely@redhat.com>
718
719          * include/bits/stream_iterator.h (istream_iterator): Add
720          constexpr to copy constructor, as per LWG 3600.
721          * testsuite/24_iterators/istream_iterator/cons/constexpr.cc:
722          Check copy construction.
723
7242024-03-18  Jonathan Wakely  <jwakely@redhat.com>
725
726          Backported from master:
727          2023-03-22  Jonathan Wakely  <jwakely@redhat.com>
728
729          * include/bits/regex.h (match_results): Add allocator-extended
730          copy and move constructors, as per LWG 2195.
731          * testsuite/28_regex/match_results/ctors/char/alloc.cc: New test.
732
7332024-03-18  Jonathan Wakely  <jwakely@redhat.com>
734
735          Backported from master:
736          2023-02-28  Jonathan Wakely  <jwakely@redhat.com>
737
738          * src/c++11/codecvt.cc: Add [[likely]] and [[unlikely]]
739          attributes.
740
7412024-03-18  Dimitrij Mijoski  <dmjpp@hotmail.com>
742
743          Backported from master:
744          2023-01-13  Dimitrij Mijoski  <dmjpp@hotmail.com>
745
746          PR libstdc++/86419
747          * src/c++11/codecvt.cc (read_utf8_code_point): Correctly detect
748          errors in incomplete multibyte sequences.
749          (utf16_in): Remove surrogates parameter. Fix conditions for
750          returning partial.
751          (utf16_out): Fix condition for returning partial.
752          (ucs2_in): Do not pass surrogates argument to utf16_in.
753          * testsuite/22_locale/codecvt/codecvt_unicode.cc: New test.
754          * testsuite/22_locale/codecvt/codecvt_unicode.h: New header for
755          tests.
756          * testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc: New
757          test.
758
7592024-03-18  Jonathan Wakely  <jwakely@redhat.com>
760
761          Backported from master:
762          2023-07-26  Jonathan Wakely  <jwakely@redhat.com>
763
764          * include/bits/algorithmfwd.h (random_shuffle): Add deprecated
765          attribute.
766          * include/bits/stl_algo.h (random_shuffle): Correct comments.
767          * testsuite/25_algorithms/random_shuffle/1.cc: Disable
768          deprecated warnings.
769          * testsuite/25_algorithms/random_shuffle/59603.cc: Likewise.
770          * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise.
771          * testsuite/25_algorithms/random_shuffle/deprecated.cc: New
772          test.
773
7742024-03-18  Jonathan Wakely  <jwakely@redhat.com>
775
776          Backported from master:
777          2023-05-11  Jonathan Wakely  <jwakely@redhat.com>
778
779          PR libstdc++/109758
780          * include/bits/std_abs.h (abs(__float128)): Handle negative NaN
781          and negative zero correctly.
782          * testsuite/26_numerics/headers/cmath/109758.cc: New test.
783
7842024-03-18  Jonathan Wakely  <jwakely@redhat.com>
785
786          Backported from master:
787          2023-05-12  Jonathan Wakely  <jwakely@redhat.com>
788
789          * acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Use a non-null pointer
790          to check for nan, nanf, and nanl.
791          * configure: Regenerate.
792
7932024-03-18  Jonathan Wakely  <jwakely@redhat.com>
794
795          Backported from master:
796          2023-05-31  Jonathan Wakely  <jwakely@redhat.com>
797
798          * include/std/scoped_allocator (scoped_allocator_adaptor): Add
799          noexcept to all constructors except the default constructor.
800          (scoped_allocator_adaptor::inner_allocator): Add noexcept.
801          (scoped_allocator_adaptor::outer_allocator): Likewise.
802          * testsuite/20_util/scoped_allocator/noexcept.cc: New test.
803
8042024-03-18  Jonathan Wakely  <jwakely@redhat.com>
805
806          Backported from master:
807          2023-06-01  Jonathan Wakely  <jwakely@redhat.com>
808
809          * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
810          Add const to equality operator.
811
8122024-03-18  Jonathan Wakely  <jwakely@redhat.com>
813
814          Backported from master:
815          2023-06-09  Jonathan Wakely  <jwakely@redhat.com>
816
817          * testsuite/23_containers/deque/modifiers/emplace/52799.cc:
818          Removed.
819          * testsuite/23_containers/deque/modifiers/emplace/const_iterator.cc:
820          Removed.
821          * testsuite/23_containers/list/modifiers/emplace/52799.cc:
822          Removed.
823          * testsuite/23_containers/list/modifiers/emplace/const_iterator.cc:
824          Removed.
825          * testsuite/23_containers/vector/modifiers/emplace/52799.cc:
826          Removed.
827          * testsuite/23_containers/vector/modifiers/emplace/const_iterator.cc:
828          Removed.
829          * testsuite/23_containers/deque/modifiers/emplace/1.cc: New
830          test.
831          * testsuite/23_containers/list/modifiers/emplace/1.cc: New
832          test.
833          * testsuite/23_containers/vector/modifiers/emplace/1.cc: New
834          test.
835
8362024-03-18  Jonathan Wakely  <jwakely@redhat.com>
837
838          Backported from master:
839          2023-07-03  Jonathan Wakely  <jwakely@redhat.com>
840
841          * include/bits/alloc_traits.h (_Destroy): Qualify call.
842          * include/bits/stl_construct.h (_Destroy, _Destroy_n): Likewise.
843          * testsuite/23_containers/vector/cons/destroy-adl.cc: New test.
844
8452024-03-18  Jonathan Wakely  <jwakely@redhat.com>
846
847          Backported from master:
848          2023-07-19  Jonathan Wakely  <jwakely@redhat.com>
849
850          PR libstdc++/110593
851          * include/bits/chrono.h (duration): Improve static assert
852          messages.
853          (__is_ratio): Move to ...
854          * include/std/ratio (__is_ratio): ... here.
855          (__is_ratio_v): New variable template and partial
856          specialization.
857          (__are_both_ratios): New function template.
858          (__ratio_multiply, ratio_equal, ratio_less, __ratio_add):
859          Add static assertion.
860          * testsuite/20_util/ratio/requirements/type_constraints.cc:
861          New test.
862          * testsuite/20_util/duration/requirements/typedefs_neg1.cc:
863          Adjust expected error.
864          * testsuite/20_util/duration/requirements/typedefs_neg2.cc:
865          Likewise.
866
8672024-03-18  Jonathan Wakely  <jwakely@redhat.com>
868
869          Backported from master:
870          2023-09-11  Jonathan Wakely  <jwakely@redhat.com>
871
872          * src/c++11/debug.cc (acquire_sequence_ptr_for_lock): New
873          function.
874          (reset_sequence_ptr): New function.
875          (_Safe_iterator_base::_M_detach)
876          (_Safe_local_iterator_base::_M_detach): Replace bare atomic_load
877          with acquire_sequence_ptr_for_lock.
878          (_Safe_iterator_base::_M_reset): Replace bare atomic_store with
879          reset_sequence_ptr.
880
8812024-03-18  Jonathan Wakely  <jwakely@redhat.com>
882
883          Backported from master:
884          2023-08-16  Jonathan Wakely  <jwakely@redhat.com>
885
886          * include/bits/basic_string.tcc (resize_and_overwrite): Invoke
887          the callable with the same size as resize_and_overwrite was
888          called with.
889          * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
890          Check with small values for the new size.
891
8922024-03-18  Jonathan Wakely  <jwakely@redhat.com>
893
894          Backported from master:
895          2023-03-22  Jonathan Wakely  <jwakely@redhat.com>
896
897          * include/bits/basic_string.tcc (basic_string::resize_and_overwrite):
898          Pass rvalues to the callback, as now allowed by LWG 3645.
899          Enforce preconditions on the return value.
900          * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
901          Adjust.
902
9032024-03-18  Jonathan Wakely  <jwakely@redhat.com>
904
905          Backported from master:
906          2023-08-09  Jonathan Wakely  <jwakely@redhat.com>
907
908          * include/bits/shared_ptr_atomic.h (atomic): Change class-head
909          to struct.
910          * include/bits/stl_tree.h (_Rb_tree_merge_helper): Change
911          class-head to struct in friend declaration.
912          * include/std/future (_Task_state_base, _Task_state): Likewise.
913          * include/std/scoped_allocator (__inner_type_impl): Likewise.
914          * include/std/valarray (_BinClos, _SClos, _GClos, _IClos)
915          (_ValFunClos, _RefFunClos): Change class-head to struct.
916
9172024-03-18  Jonathan Wakely  <jwakely@redhat.com>
918
919          Backported from master:
920          2023-09-08  Jonathan Wakely  <jwakely@redhat.com>
921
922          * doc/xml/manual/test.xml: Update reference to -std=gnu++14 as
923          the default.
924          * doc/html/manual/test.html: Regenerate.
925
9262024-03-18  Alexey Lapshin  <alexey.lapshin@espressif.com>
927
928          Backported from master:
929          2023-09-08  Alexey Lapshin  <alexey.lapshin@espressif.com>
930
931          * src/libbacktrace/Makefile.am: Remove -Werror.
932          * src/libbacktrace/Makefile.in: Regenerate.
933
9342024-03-18  Nathaniel Shead  <nathanieloshead@gmail.com>
935
936          Backported from master:
937          2023-09-29  Nathaniel Shead  <nathanieloshead@gmail.com>
938
939          * include/bits/basic_string.h: (basic_string(basic_string&&)):
940          Activate _M_local_buf when needed.
941          (basic_string(basic_string&&, const _Alloc&)): Likewise.
942          * include/bits/basic_string.tcc: (basic_string::swap): Likewise.
943          * include/std/variant: (__detail::__variant::__construct_n): New.
944          (__detail::__variant::__emplace): Use __construct_n.
945
9462024-03-18  Jonathan Wakely  <jwakely@redhat.com>
947
948          Backported from master:
949          2023-11-02  Jonathan Wakely  <jwakely@redhat.com>
950
951          * acinclude.m4 (GLIBCXX_ENABLE_C99): Fix snprintf checks.
952          * configure: Regenerate.
953
9542024-03-18  Jonathan Wakely  <jwakely@redhat.com>
955
956          Backported from master:
957          2023-11-21  Jonathan Wakely  <jwakely@redhat.com>
958
959          * include/tr2/dynamic_bitset (dynamic_bitset): Pass zero and one
960          characters to _M_copy_from_string.
961          * testsuite/tr2/dynamic_bitset/string.cc: New test.
962
9632024-03-18  Jonathan Wakely  <jwakely@redhat.com>
964
965          Backported from master:
966          2023-11-14  Jonathan Wakely  <jwakely@redhat.com>
967
968          * include/std/charconv (__from_chars_pow2_base): Convert base to
969          unsigned for call to __countr_zero.
970          (__from_chars_alnum): Likewise for call to __bit_width.
971
9722024-03-18  Jonathan Wakely  <jwakely@redhat.com>
973
974          Backported from master:
975          2023-11-23  Jonathan Wakely  <jwakely@redhat.com>
976
977          * testsuite/util/testsuite_allocator.h (uneq_allocator): Fix
978          equality operator for heterogeneous comparisons.
979
9802024-03-18  Jonathan Wakely  <jwakely@redhat.com>
981
982          Backported from master:
983          2024-03-14  Jonathan Wakely  <jwakely@redhat.com>
984
985          PR libstdc++/66146
986          * doc/xml/manual/status_cxx2011.xml: Remove mention of Linux in
987          note about std::call_once.
988          * doc/xml/manual/status_cxx2014.xml: Likewise.
989          * doc/xml/manual/status_cxx2017.xml: Likewise.
990          * doc/html/manual/status.html: Regenerate.
991
9922024-03-18  Jonathan Wakely  <jwakely@redhat.com>
993
994          Backported from master:
995          2024-03-13  Jonathan Wakely  <jwakely@redhat.com>
996
997          * testsuite/libstdc++-prettyprinters/cxx11.cc: Move custom_cat
998          to namespace scope.
999
10002024-03-18  Jonathan Wakely  <jwakely@redhat.com>
1001
1002          Backported from master:
1003          2024-02-28  Jonathan Wakely  <jwakely@redhat.com>
1004
1005          * doc/xml/manual/appendix_contributing.xml: Change URLs to use
1006          https.
1007          * doc/html/manual/*: Regenerate.
1008
10092024-03-18  Jonathan Wakely  <jwakely@redhat.com>
1010
1011          Backported from master:
1012          2024-02-28  Jonathan Wakely  <jwakely@redhat.com>
1013
1014          * doc/xml/manual/appendix_contributing.xml: Replace outdated
1015          info on ChangeLog entries.
1016          * doc/html/manual/appendix_contributing.html: Regenerate.
1017
10182024-03-18  Jonathan Wakely  <jwakely@redhat.com>
1019
1020          Backported from master:
1021          2022-11-04  Jonathan Wakely  <jwakely@redhat.com>
1022
1023          PR libstdc++/107500
1024          * libsupc++/eh_globals.cc (eh_globals): Remove immortalizing
1025          wrapper.
1026          (__cxxabiv1::__cxa_get_globals_fast): Adjust.
1027          (__cxxabiv1::__cxa_get_globals): Adjust.
1028
10292024-03-18  Jonathan Wakely  <jwakely@redhat.com>
1030
1031          Backported from master:
1032          2024-03-04  Jonathan Wakely  <jwakely@redhat.com>
1033
1034          PR libstdc++/114147
1035          * include/std/tuple (tuple::tuple(allocator_arg_t, const Alloc&)):
1036          Add missing overload of allocator-extended default constructor.
1037          (tuple<T1,T2>::tuple(allocator_arg_t, const Alloc&)): Likewise.
1038          * testsuite/20_util/tuple/cons/114147.cc: New test.
1039
10402024-03-13  Cassio Neri  <cassio.neri@gmail.com>
1041
1042          Backported from master:
1043          2024-01-05  Cassio Neri  <cassio.neri@gmail.com>
1044
1045          * include/std/chrono: Fix + and - for months and weekdays.
1046          * testsuite/std/time/month/1.cc: Add constexpr tests against overflow.
1047          * testsuite/std/time/month/2.cc: New test for extreme values.
1048          * testsuite/std/time/weekday/1.cc: Add constexpr tests against overflow.
1049          * testsuite/std/time/weekday/2.cc: New test for extreme values.
1050
10512024-03-13  Cassio Neri  <cassio.neri@gmail.com>
1052
1053          Backported from master:
1054          2023-11-14  Cassio Neri  <cassio.neri@gmail.com>
1055
1056          * include/std/chrono (operator-(const weekday&, const weekday&)):
1057          Optimize.
1058
10592024-03-13  Cassio Neri  <cassio.neri@gmail.com>
1060
1061          Backported from master:
1062          2023-11-14  Cassio Neri  <cassio.neri@gmail.com>
1063
1064          * include/std/chrono (year::is_leap): Clear code.
1065
10662024-03-13  Cassio Neri  <cassio.neri@gmail.com>
1067
1068          Backported from master:
1069          2023-11-14  Cassio Neri  <cassio.neri@gmail.com>
1070
1071          * include/std/chrono (year_month_day_last::day): Remove &1.
1072
10732024-03-13  Cassio Neri  <cassio.neri@gmail.com>
1074
1075          Backported from master:
1076          2023-11-14  Cassio Neri  <cassio.neri@gmail.com>
1077
1078          * include/std/chrono (weekday::_S_from_days): Fix UB.
1079          * testsuite/std/time/weekday/1.cc: Add test for overflow.
1080
10812024-03-13  Jonathan Wakely  <jwakely@redhat.com>
1082
1083          Backported from master:
1084          2023-08-09  Jonathan Wakely  <jwakely@redhat.com>
1085
1086          * include/bits/list.tcc (list::sort(Cmp)): Fix -Wsign-compare
1087          warning for loop condition.
1088
10892024-03-13  Jonathan Wakely  <jwakely@redhat.com>
1090
1091          Backported from master:
1092          2023-06-09  Jonathan Wakely  <jwakely@redhat.com>
1093
1094          PR libstdc++/110167
1095          * include/std/array (to_array): Initialize arrays of trivial
1096          types using memcpy. For non-trivial types, use lambda
1097          expressions instead of a separate helper function.
1098          (__to_array): Remove.
1099          * testsuite/23_containers/array/creation/110167.cc: New test.
1100
11012024-02-08  Jonathan Wakely  <jwakely@redhat.com>
1102
1103          Backported from master:
1104          2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
1105
1106          * include/std/string_view (basic_string_view(R&&)): Remove
1107          constraint that traits_type must be the same, as per LWG 3857.
1108          * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc:
1109          Explicit conversion between different specializations should be
1110          allowed.
1111          * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc:
1112          Likewise.
1113
11142024-02-08  Jonathan Wakely  <jwakely@redhat.com>
1115
1116          Backported from master:
1117          2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
1118
1119          PR libstdc++/90276
1120          * testsuite/util/pstl/test_utils.h (reverse_invoker): Do not use
1121          perfect forwarding for iterator arguments.
1122
11232024-02-08  Jonathan Wakely  <jwakely@redhat.com>
1124
1125          Backported from master:
1126          2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
1127
1128          * include/std/syncstream (basic_osyncstream::operator=): Remove
1129          noexcept, as per LWG 3867.
1130
11312024-02-08  Jonathan Wakely  <jwakely@redhat.com>
1132
1133          Backported from master:
1134          2024-01-13  Jonathan Wakely  <jwakely@redhat.com>
1135
1136          PR libstdc++/107466
1137          * include/bits/random.tcc (subtract_with_carry_engine::seed):
1138          Implement proposed resolution of LWG 4014.
1139          * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1140          line number.
1141          * testsuite/26_numerics/random/subtract_with_carry_engine/cons/lwg3809.cc:
1142          Check for expected result of 64-bit engine with seed that
1143          doesn't fit in 32-bits.
1144
11452024-02-08  Jonathan Wakely  <jwakely@redhat.com>
1146
1147          Backported from master:
1148          2024-01-11  Jonathan Wakely  <jwakely@redhat.com>
1149
1150          PR libstdc++/113258
1151          * libsupc++/new_opa.cc: Prefer to use posix_memalign if
1152          available.
1153
11542024-02-02  Jonathan Wakely  <jwakely@redhat.com>
1155
1156          PR libstdc++/108636
1157          * include/bits/shared_ptr_base.h (__shared_ptr::operator bool):
1158          Add always_inline attribute for C++20 and later.
1159
11602024-01-11  Jonathan Wakely  <jwakely@redhat.com>
1161
1162          Backported from master:
1163          2024-01-05  Jonathan Wakely  <jwakely@redhat.com>
1164
1165          PR libstdc++/113200
1166          * include/bits/char_traits.h (__gnu_cxx::char_traits::move): Use
1167          __builtin_constant_p to check for unrelated pointers that cannot
1168          be compared during constant evaluation.
1169          * testsuite/21_strings/char_traits/requirements/113200.cc: New
1170          test.
1171
11722024-01-11  Ken Matsui  <kmatsui@gcc.gnu.org>
1173
1174          Backported from master:
1175          2024-01-11  Ken Matsui  <kmatsui@gcc.gnu.org>
1176
1177          PR libstdc++/113250
1178          * src/c++17/fs_ops.cc (fs::equivalent): Use || instead of &&.
1179          * src/filesystem/ops.cc (fs::equivalent): Likewise.
1180          * testsuite/27_io/filesystem/operations/equivalent.cc: Handle
1181          error codes.
1182          * testsuite/experimental/filesystem/operations/equivalent.cc:
1183          Likewise.
1184
11852024-01-03  Patrick Palka  <ppalka@redhat.com>
1186
1187          Backported from master:
1188          2024-01-03  Patrick Palka  <ppalka@redhat.com>
1189
1190          PR testsuite/113175
1191          * testsuite/std/ranges/iota/max_size_type.cc (test02): Reduce
1192          'limit' to 100 from 1000 and adjust 'log2_limit' accordingly.
1193          (test03): Likewise.
1194
11952023-12-16  Jakub Jelinek  <jakub@redhat.com>
1196
1197          Backported from master:
1198          2023-10-13  Jakub Jelinek  <jakub@redhat.com>
1199
1200          * testsuite/tr1/8_c_compatibility/cstdio/functions.cc (test01):
1201          Initialize stream to va_arg(ap, FILE*) rather than 0.
1202          * testsuite/tr1/8_c_compatibility/cwchar/functions.cc (test01):
1203          Likewise.
1204
12052023-12-06  Jonathan Wakely  <jwakely@redhat.com>
1206
1207          Backported from master:
1208          2023-11-02  Jonathan Wakely  <jwakely@redhat.com>
1209
1210          PR libstdc++/112314
1211          * include/std/string_view (string_view::remove_suffix): Add
1212          debug assertion.
1213          * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/debug.cc:
1214          New test.
1215          * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/debug.cc:
1216          New test.
1217
12182023-12-06  Jonathan Wakely  <jwakely@redhat.com>
1219
1220          Backported from master:
1221          2023-11-17  Jonathan Wakely  <jwakely@redhat.com>
1222
1223          * include/std/utility (in_range): Rename _Up parameter to _Res.
1224
12252023-11-15  Jonathan Wakely  <jwakely@redhat.com>
1226
1227          Backported from master:
1228          2023-11-15  Jonathan Wakely  <jwakely@redhat.com>
1229
1230          PR libstdc++/112491
1231          * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.index):
1232          Correctly handle unused capacity at the start of the first node.
1233          * testsuite/libstdc++-xmethods/deque.cc: Check index operator
1234          when elements have been removed from the front.
1235
12362023-11-15  Jonathan Wakely  <jwakely@redhat.com>
1237
1238          Backported from master:
1239          2023-11-15  Jonathan Wakely  <jwakely@redhat.com>
1240
1241          * include/std/stacktrace (basic_stacktrace::at): Fix class name
1242          in exception message.
1243          * testsuite/19_diagnostics/stacktrace/hash.cc: Do not fail if
1244          current() returns a non-empty stacktrace.
1245
12462023-11-14  Jonathan Wakely  <jwakely@redhat.com>
1247
1248          Backported from master:
1249          2023-11-14  Jonathan Wakely  <jwakely@redhat.com>
1250
1251          PR libstdc++/112348
1252          * include/std/stacktrace (hash<basic_stacktrace<Alloc>>): Fix
1253          type of hash function for entries.
1254          * testsuite/19_diagnostics/stacktrace/hash.cc: New test.
1255
12562023-11-14  Jonathan Wakely  <jwakely@redhat.com>
1257
1258          Backported from master:
1259          2023-11-14  Jonathan Wakely  <jwakely@redhat.com>
1260
1261          PR libstdc++/112491
1262          * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.size): Fix
1263          calculation to use _M_start._M_cur.
1264          * testsuite/libstdc++-xmethods/deque.cc: Check failing cases.
1265
12662023-11-13  Tom Tromey  <tromey@adacore.com>
1267
1268          Backported from master:
1269          2023-10-04  Tom Tromey  <tromey@adacore.com>
1270
1271          * python/libstdcxx/v6/printers.py
1272          (StdExpAnyPrinter.__init__): Qualify call to
1273          _string_types.
1274
12752023-11-13  Tom Tromey  <tromey@adacore.com>
1276
1277          Backported from master:
1278          2023-10-04  Tom Tromey  <tromey@adacore.com>
1279
1280          * python/libstdcxx/v6/printers.py: Assume that
1281          _versioned_namespace is non-None.
1282          * python/libstdcxx/v6/xmethods.py (is_specialization_of):
1283          Assume that _versioned_namespace is non-None.
1284
12852023-11-13  Tom Tromey  <tromey@adacore.com>
1286
1287          Backported from master:
1288          2023-09-28  Tom Tromey  <tromey@adacore.com>
1289
1290          * python/libstdcxx/v6/printers.py (Printer.add_version)
1291          (add_one_template_type_printer)
1292          (FilteringTypePrinter.add_one_type_printer): Use Python
1293          "not in" operator.
1294
12952023-11-13  Tom Tromey  <tromey@adacore.com>
1296
1297          Backported from master:
1298          2023-10-04  Tom Tromey  <tromey@adacore.com>
1299
1300          * python/libstdcxx/v6/xmethods.py (_versioned_namespace):
1301          Define.
1302
13032023-11-13  Jonathan Wakely  <jwakely@redhat.com>
1304
1305          Backported from master:
1306          2023-09-28  Jonathan Wakely  <jwakely@redhat.com>
1307
1308          * python/libstdcxx/v6/xmethods.py (is_specialization_of): Define
1309          new function.
1310          (ArrayMethodsMatcher, DequeMethodsMatcher)
1311          (ForwardListMethodsMatcher, ListMethodsMatcher)
1312          (VectorMethodsMatcher, AssociativeContainerMethodsMatcher)
1313          (UniquePtrGetWorker, UniquePtrMethodsMatcher)
1314          (SharedPtrSubscriptWorker, SharedPtrMethodsMatcher): Use
1315          is_specialization_of instead of re.match.
1316
13172023-11-13  Jonathan Wakely  <jwakely@redhat.com>
1318
1319          Backported from master:
1320          2023-09-28  Jonathan Wakely  <jwakely@redhat.com>
1321
1322          * python/libstdcxx/v6/printers.py: Break long lines. Use raw
1323          strings for regular expressions. Add whitespace around
1324          operators.
1325          (is_member_of_namespace): Use isinstance to check type.
1326          (is_specialization_of): Likewise. Adjust template_name
1327          for versioned namespace instead of duplicating the re.match
1328          call.
1329          (StdExpAnyPrinter._string_types): New static method.
1330          (StdExpAnyPrinter.to_string): Use _string_types.
1331
13322023-11-13  Jonathan Wakely  <jwakely@redhat.com>
1333
1334          Backported from master:
1335          2023-09-28  Jonathan Wakely  <jwakely@redhat.com>
1336
1337          * python/libstdcxx/v6/printers.py: Format docstrings according
1338          to PEP 257.
1339          * python/libstdcxx/v6/xmethods.py: Likewise.
1340
13412023-11-13  Jonathan Wakely  <jwakely@redhat.com>
1342
1343          Backported from master:
1344          2023-09-12  Jonathan Wakely  <jwakely@redhat.com>
1345
1346          * python/libstdcxx/v6/printers.py: Reformat.
1347          * python/libstdcxx/v6/xmethods.py: Likewise.
1348
13492023-11-06  Ian Lance Taylor  <iant@golang.org>
1350
1351          PR libbacktrace/111315
1352          PR libbacktrace/112263
1353          * acinclude.m4: Set -D_GNU_SOURCE in BACKTRACE_CPPFLAGS and when
1354          grepping link.h for dl_iterate_phdr.
1355          * configure: Regenerate.
1356
13572023-10-25  Jonathan Wakely  <jwakely@redhat.com>
1358
1359          Backported from master:
1360          2023-10-25  Jonathan Wakely  <jwakely@redhat.com>
1361
1362          PR libstdc++/111936
1363          * src/libbacktrace/Makefile.am: Add -prefer-pic to libtool
1364          compile commands.
1365          * src/libbacktrace/Makefile.in: Regenerate.
1366
13672023-10-23  François Dumont  <fdumont@gcc.gnu.org>
1368
1369          * include/bits/hashtable_policy.h
1370          (_Hash_code_base::_M_hash_code(const _Hash&, const _Hash_node_value<>&)): Remove.
1371          (_Hash_code_base::_M_hash_code<_H2>(const _H2&, const _Hash_node_value<>&)): Remove.
1372          * include/bits/hashtable.h
1373          (_M_src_hash_code<_H2>(const _H2&, const key_type&, const __node_value_type&)): New.
1374          (_M_merge_unique<>, _M_merge_multi<>): Use latter.
1375          * testsuite/23_containers/unordered_map/modifiers/merge.cc
1376          (test04, test05, test06): New test cases.
1377
13782023-10-03  Jonathan Wakely  <jwakely@redhat.com>
1379
1380          * include/bits/fs_dir.h (directory_iterator::operator==):
1381          Define without using a non-exported shared_ptr symbol.
1382          (recursive_directory_iterator::operator==): Likewise.
1383
13842023-10-03  Jonathan Wakely  <jwakely@redhat.com>
1385
1386          Backported from master:
1387          2023-09-01  Jonathan Wakely  <jwakely@redhat.com>
1388
1389          * testsuite/27_io/filesystem/path/108636.cc: Add dg-require for
1390          filesystem support.
1391
13922023-10-03  Jonathan Wakely  <jwakely@redhat.com>
1393
1394          Backported from master:
1395          2023-06-06  Jonathan Wakely  <jwakely@redhat.com>
1396
1397          PR libstdc++/108178
1398          * src/filesystem/ops-common.h (do_copy_file): Check for empty
1399          files by trying to read a character.
1400          * testsuite/27_io/filesystem/operations/copy_file_108178.cc:
1401          New test.
1402
14032023-10-03  Jonathan Wakely  <jwakely@redhat.com>
1404
1405          Backported from master:
1406          2023-06-06  Jonathan Wakely  <jwakely@redhat.com>
1407
1408          * src/filesystem/ops-common.h (do_copy_file) [O_CLOEXEC]: Set
1409          close-on-exec flag on file descriptors.
1410
14112023-10-03  Jonathan Wakely  <jwakely@redhat.com>
1412
1413          Backported from master:
1414          2023-03-20  Jonathan Wakely  <jwakely@redhat.com>
1415
1416          * src/filesystem/ops-common.h (get_temp_directory_from_env): Fix
1417          formatting.
1418
14192023-10-03  Jonathan Wakely  <jwakely@redhat.com>
1420
1421          Backported from master:
1422          2023-02-02  Jonathan Wakely  <jwakely@redhat.com>
1423
1424          * src/filesystem/ops-common.h [AVR] (__unsupported): Always use
1425          errc::function_not_supported instead of errc::not_supported.
1426
14272023-10-02  Tim Song  <t.canens.cpp@gmail.com>
1428
1429          Backported from master:
1430          2023-09-28  Tim Song  <t.canens.cpp@gmail.com>
1431
1432          PR libstdc++/111050
1433          * include/bits/hashtable_policy.h
1434          (_Hash_node_value_base<>::_M_valptr(), _Hash_node_value_base<>::_M_v())
1435          Add [[__gnu__::__always_inline__]].
1436
14372023-09-27  Jonathan Wakely  <jwakely@redhat.com>
1438
1439          Backported from master:
1440          2023-08-09  Jonathan Wakely  <jwakely@redhat.com>
1441
1442          * include/experimental/bits/fs_path.h (path::string): Use
1443          _GLIBCXX17_CONSTEXPR not _GLIBCXX_CONSTEXPR for 'if constexpr'.
1444          * include/std/charconv (__to_chars_8): Initialize variable for
1445          C++17 constexpr rules.
1446
14472023-09-26  Jonathan Wakely  <jwakely@redhat.com>
1448
1449          Backported from master:
1450          2023-09-25  Jonathan Wakely  <jwakely@redhat.com>
1451
1452          PR libstdc++/111511
1453          PR c++/111512
1454          * include/std/array (to_array): Qualify calls to __to_array.
1455          * testsuite/23_containers/array/creation/111512.cc: New test.
1456
14572023-09-18  Jonathan Wakely  <jwakely@redhat.com>
1458
1459          Backported from master:
1460          2023-09-18  Jonathan Wakely  <jwakely@redhat.com>
1461
1462          * doc/xml/manual/configure.xml: Use conventional option name.
1463          * doc/xml/manual/status_cxx2020.xml: Update.
1464          * doc/html/*: Regenerate.
1465
14662023-09-14  Jonathan Wakely  <jwakely@redhat.com>
1467
1468          Backported from master:
1469          2023-09-14  Jonathan Wakely  <jwakely@redhat.com>
1470
1471          PR c++/111357
1472          * include/bits/utility.h (make_integer_sequence): Add cast.
1473          * testsuite/20_util/integer_sequence/pr111357.cc: New test.
1474
14752023-07-12  Jonathan Wakely  <jwakely@redhat.com>
1476
1477          Backported from master:
1478          2023-07-12  Jonathan Wakely  <jwakely@redhat.com>
1479
1480          PR libstdc++/95048
1481          * testsuite/27_io/filesystem/path/construct/95048.cc: Check
1482          conversions to wide strings.
1483          * testsuite/experimental/filesystem/path/construct/95048.cc:
1484          Likewise.
1485
14862023-07-06  Jonathan Wakely  <jwakely@redhat.com>
1487
1488          Backported from master:
1489          2023-07-06  Jonathan Wakely  <jwakely@redhat.com>
1490
1491          PR libstdc++/104299
1492          * doc/xml/manual/configure.xml: Describe stdio_pure argument to
1493          --enable-cstdio.
1494          * doc/html/manual/configure.html: Regenerate.
1495
14962023-06-23  Jonathan Wakely  <jwakely@redhat.com>
1497
1498          Backported from master:
1499          2023-06-01  Jonathan Wakely  <jwakely@redhat.com>
1500
1501          * doc/xml/manual/evolution.xml: Document removal of implicit
1502          allocator rebinding extensions in strict mode and for C++20.
1503          * doc/html/*: Regenerate.
1504
15052023-06-21  Jason Merrill  <jason@redhat.com>
1506
1507          PR tree-optimization/105651
1508          * include/bits/basic_string.tcc (_M_replace): Add an assert
1509          to avoid -Wrestrict false positive.
1510
15112023-05-30  Alexandre Oliva  <oliva@adacore.com>
1512
1513          Backported from master:
1514          2023-05-30  Alexandre Oliva  <oliva@adacore.com>
1515
1516          * testsuite/20_util/from_chars/4.cc: Skip long double test06
1517          on x86_64-vxworks.
1518          * testsuite/20_util/to_chars/long_double.cc: Xfail run on
1519          x86_64-vxworks.
1520
15212023-05-30  Alexandre Oliva  <oliva@adacore.com>
1522
1523          Backported from master:
1524          2023-05-25  Alexandre Oliva  <oliva@adacore.com>
1525
1526          * testsuite/20_util/to_chars/long_double.cc: Expect execution
1527          fail on x86-vxworks.
1528
15292023-05-30  Alexandre Oliva  <oliva@adacore.com>
1530
1531          Backported from master:
1532          2023-05-05  Alexandre Oliva  <oliva@adacore.com>
1533
1534          * testsuite/20_util/from_chars/4.cc: Skip long double test06
1535          on aarch64-vxworks.
1536          * testsuite/20_util/to_chars/long_double.cc: Xfail run on
1537          aarch64-vxworks.
1538
15392023-05-30  Matthias Kretz  <m.kretz@gsi.de>
1540
1541          Backported from master:
1542          2023-05-30  Matthias Kretz  <m.kretz@gsi.de>
1543
1544          PR libstdc++/109822
1545          * include/experimental/bits/simd.h (to_native): Use int NTTP
1546          as specified in PTS2.
1547          (to_compatible): Likewise. Add missing tag to call mask
1548          generator ctor.
1549          * testsuite/experimental/simd/pr109822_cast_functions.cc: New
1550          test.
1551
15522023-05-30  Matthias Kretz  <m.kretz@gsi.de>
1553
1554          Backported from master:
1555          2023-05-30  Matthias Kretz  <m.kretz@gsi.de>
1556
1557          * testsuite/experimental/simd/tests/integer_operators.cc:
1558          Compute expected value differently to avoid getting turned into
1559          a vector shift.
1560
15612023-05-30  Matthias Kretz  <m.kretz@gsi.de>
1562
1563          Backported from master:
1564          2023-05-30  Matthias Kretz  <m.kretz@gsi.de>
1565
1566          * testsuite/experimental/simd/tests/operator_cvt.cc: Make long
1567          double <-> (u)long conversion tests conditional on sizeof(long
1568          double) and sizeof(long).
1569
15702023-05-30  Matthias Kretz  <m.kretz@gsi.de>
1571
1572          Backported from master:
1573          2023-05-26  Matthias Kretz  <m.kretz@gsi.de>
1574
1575          * include/experimental/bits/simd_ppc.h (_S_bit_shift_left):
1576          Negative __y is UB, so prefer signed compare.
1577
15782023-05-24  Matthias Kretz  <m.kretz@gsi.de>
1579
1580          Backported from master:
1581          2023-05-24  Matthias Kretz  <m.kretz@gsi.de>
1582
1583          PR libstdc++/109949
1584          * include/experimental/bits/simd.h (__intrinsic_type): If
1585          __ALTIVEC__ is defined, map gnu::vector_size types to their
1586          corresponding __vector T types without losing unsignedness of
1587          integer types. Also prefer long long over long.
1588          * include/experimental/bits/simd_ppc.h (_S_popcount): Cast mask
1589          object to the expected unsigned vector type.
1590
15912023-05-24  Matthias Kretz  <m.kretz@gsi.de>
1592
1593          Backported from master:
1594          2023-05-24  Matthias Kretz  <m.kretz@gsi.de>
1595
1596          PR libstdc++/109261
1597          * include/experimental/bits/simd.h (__intrinsic_type):
1598          Specialize __intrinsic_type<double, 8> and
1599          __intrinsic_type<double, 16> in any case, but provide the member
1600          type only with __aarch64__.
1601
16022023-05-24  Matthias Kretz  <m.kretz@gsi.de>
1603
1604          Backported from master:
1605          2023-05-24  Matthias Kretz  <m.kretz@gsi.de>
1606
1607          PR libstdc++/109261
1608          * include/experimental/bits/simd_neon.h (_S_reduce): Add
1609          constexpr and make NEON implementation conditional on
1610          not __builtin_is_constant_evaluated.
1611
16122023-05-23  Matthias Kretz  <m.kretz@gsi.de>
1613
1614          Backported from master:
1615          2023-05-23  Matthias Kretz  <m.kretz@gsi.de>
1616
1617          PR libstdc++/109261
1618          * include/experimental/bits/simd.h (_SimdWrapper::_M_set):
1619          Avoid vector builtin subscripting in constant expressions.
1620          (resizing_simd_cast): Avoid memcpy if constant_evaluated.
1621          (const_where_expression, where_expression, where)
1622          (__extract_part, simd_mask, _SimdIntOperators, simd): Add either
1623          _GLIBCXX_SIMD_CONSTEXPR (on public APIs), or constexpr (on
1624          internal APIs).
1625          * include/experimental/bits/simd_builtin.h (__vector_permute)
1626          (__vector_shuffle, __extract_part, _GnuTraits::_SimdCastType1)
1627          (_GnuTraits::_SimdCastType2, _SimdImplBuiltin)
1628          (_MaskImplBuiltin::_S_store): Add constexpr.
1629          (_CommonImplBuiltin::_S_store_bool_array)
1630          (_SimdImplBuiltin::_S_load, _SimdImplBuiltin::_S_store)
1631          (_SimdImplBuiltin::_S_reduce, _MaskImplBuiltin::_S_load): Add
1632          constant_evaluated case.
1633          * include/experimental/bits/simd_fixed_size.h
1634          (_S_masked_load): Reword comment.
1635          (__tuple_element_meta, __make_meta, _SimdTuple::_M_apply_r)
1636          (_SimdTuple::_M_subscript_read, _SimdTuple::_M_subscript_write)
1637          (__make_simd_tuple, __optimize_simd_tuple, __extract_part)
1638          (__autocvt_to_simd, _Fixed::__traits::_SimdBase)
1639          (_Fixed::__traits::_SimdCastType, _SimdImplFixedSize): Add
1640          constexpr.
1641          (_SimdTuple::operator[], _M_set): Add constexpr and add
1642          constant_evaluated case.
1643          (_MaskImplFixedSize::_S_load): Add constant_evaluated case.
1644          * include/experimental/bits/simd_scalar.h: Add constexpr.
1645          * include/experimental/bits/simd_x86.h (_CommonImplX86): Add
1646          constexpr and add constant_evaluated case.
1647          (_SimdImplX86::_S_equal_to, _S_not_equal_to, _S_less)
1648          (_S_less_equal): Value-initialize to satisfy constexpr
1649          evaluation.
1650          (_MaskImplX86::_S_load): Add constant_evaluated case.
1651          (_MaskImplX86::_S_store): Add constexpr and constant_evaluated
1652          case. Value-initialize local variables.
1653          (_MaskImplX86::_S_logical_and, _S_logical_or, _S_bit_not)
1654          (_S_bit_and, _S_bit_or, _S_bit_xor): Add constant_evaluated
1655          case.
1656          * testsuite/experimental/simd/pr109261_constexpr_simd.cc: New
1657          test.
1658
16592023-05-23  Matthias Kretz  <m.kretz@gsi.de>
1660
1661          Backported from master:
1662          2023-05-22  Matthias Kretz  <m.kretz@gsi.de>
1663
1664          * include/experimental/bits/simd_builtin.h (_S_fpclassify): Move
1665          __infn into #ifdef'ed block.
1666          * testsuite/experimental/simd/tests/fpclassify.cc: Declare
1667          constants only when used.
1668          * testsuite/experimental/simd/tests/frexp.cc: Likewise.
1669          * testsuite/experimental/simd/tests/logarithm.cc: Likewise.
1670          * testsuite/experimental/simd/tests/trunc_ceil_floor.cc:
1671          Likewise.
1672          * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
1673          Move totest and expect1 into #ifdef'ed block.
1674
16752023-05-23  Matthias Kretz  <m.kretz@gsi.de>
1676
1677          Backported from master:
1678          2023-03-28  Matthias Kretz  <m.kretz@gsi.de>
1679
1680          * include/experimental/bits/simd.h (is_simd_flag_type): New.
1681          (_IsSimdFlagType): New.
1682          (copy_from, copy_to, load ctors): Constrain _Flags using
1683          _IsSimdFlagType.
1684
16852023-05-23  Matthias Kretz  <m.kretz@gsi.de>
1686
1687          Backported from master:
1688          2023-03-28  Matthias Kretz  <m.kretz@gsi.de>
1689
1690          * include/experimental/bits/simd_x86.h (_SimdImplX86): Use
1691          _Base::_S_divides if the optimized _S_divides function is hidden
1692          via the preprocessor.
1693
16942023-05-23  Matthias Kretz  <m.kretz@gsi.de>
1695
1696          Backported from master:
1697          2023-03-21  Matthias Kretz  <m.kretz@gsi.de>
1698
1699          * include/experimental/bits/simd_detail.h: Don't declare the
1700          simd API as constexpr with Clang.
1701          * include/experimental/bits/simd_x86.h (__movm): New.
1702          (_S_blend_avx512): Resolve FIXME. Implement blend using __movm
1703          and ?:.
1704          (_SimdImplX86::_S_masked_unary): Clang does not implement the
1705          same builtins. Implement the function using __movm, ?:, and -
1706          operators on vector_size types instead.
1707
17082023-05-23  Matthias Kretz  <m.kretz@gsi.de>
1709
1710          Backported from master:
1711          2023-02-24  Matthias Kretz  <m.kretz@gsi.de>
1712
1713          * include/experimental/bits/simd.h: Line breaks and indenting
1714          fixed to follow the libstdc++ standard.
1715          * include/experimental/bits/simd_builtin.h: Likewise.
1716          * include/experimental/bits/simd_fixed_size.h: Likewise.
1717          * include/experimental/bits/simd_neon.h: Likewise.
1718          * include/experimental/bits/simd_ppc.h: Likewise.
1719          * include/experimental/bits/simd_scalar.h: Likewise.
1720          * include/experimental/bits/simd_x86.h: Likewise.
1721
17222023-05-23  Matthias Kretz  <m.kretz@gsi.de>
1723
1724          Backported from master:
1725          2023-02-24  Matthias Kretz  <m.kretz@gsi.de>
1726
1727          PR libstdc++/108030
1728          * include/experimental/bits/simd_fixed_size.h
1729          (_SimdImplFixedSize::_S_broadcast): Replace inline with
1730          _GLIBCXX_SIMD_INTRINSIC.
1731          (_SimdImplFixedSize::_S_generate): Likewise.
1732          (_SimdImplFixedSize::_S_load): Likewise.
1733          (_SimdImplFixedSize::_S_masked_load): Likewise.
1734          (_SimdImplFixedSize::_S_store): Likewise.
1735          (_SimdImplFixedSize::_S_masked_store): Likewise.
1736          (_SimdImplFixedSize::_S_min): Likewise.
1737          (_SimdImplFixedSize::_S_max): Likewise.
1738          (_SimdImplFixedSize::_S_complement): Likewise.
1739          (_SimdImplFixedSize::_S_unary_minus): Likewise.
1740          (_SimdImplFixedSize::_S_plus): Likewise.
1741          (_SimdImplFixedSize::_S_minus): Likewise.
1742          (_SimdImplFixedSize::_S_multiplies): Likewise.
1743          (_SimdImplFixedSize::_S_divides): Likewise.
1744          (_SimdImplFixedSize::_S_modulus): Likewise.
1745          (_SimdImplFixedSize::_S_bit_and): Likewise.
1746          (_SimdImplFixedSize::_S_bit_or): Likewise.
1747          (_SimdImplFixedSize::_S_bit_xor): Likewise.
1748          (_SimdImplFixedSize::_S_bit_shift_left): Likewise.
1749          (_SimdImplFixedSize::_S_bit_shift_right): Likewise.
1750          (_SimdImplFixedSize::_S_remquo): Add inline keyword (to be
1751          explicit about not always-inline, yet).
1752          (_SimdImplFixedSize::_S_isinf): Likewise.
1753          (_SimdImplFixedSize::_S_isfinite): Likewise.
1754          (_SimdImplFixedSize::_S_isnan): Likewise.
1755          (_SimdImplFixedSize::_S_isnormal): Likewise.
1756          (_SimdImplFixedSize::_S_signbit): Likewise.
1757
17582023-05-23  Matthias Kretz  <m.kretz@gsi.de>
1759
1760          Backported from master:
1761          2023-02-24  Matthias Kretz  <m.kretz@gsi.de>
1762
1763          PR libstdc++/108856
1764          * include/experimental/bits/simd_builtin.h
1765          (_SimdImplBuiltin::_S_masked_unary): More efficient
1766          implementation of masked inc-/decrement for integers and floats
1767          without AVX2.
1768          * include/experimental/bits/simd_x86.h
1769          (_SimdImplX86::_S_masked_unary): New. Use AVX512 masked subtract
1770          builtins for masked inc-/decrement.
1771
17722023-05-23  Matthias Kretz  <m.kretz@gsi.de>
1773
1774          Backported from master:
1775          2023-02-23  Matthias Kretz  <m.kretz@gsi.de>
1776
1777          * testsuite/experimental/simd/tests/reductions.cc: Introduce
1778          max_distance as the type-dependent max error.
1779
17802023-05-23  Matthias Kretz  <m.kretz@gsi.de>
1781
1782          Backported from master:
1783          2023-02-23  Matthias Kretz  <m.kretz@gsi.de>
1784
1785          PR libstdc++/108030
1786          * include/experimental/bits/simd_detail.h
1787          (_GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA): Define as empty for
1788          __clang__.
1789
17902023-05-23  Matthias Kretz  <m.kretz@gsi.de>
1791
1792          Backported from master:
1793          2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
1794
1795          PR libstdc++/108030
1796          * include/experimental/bits/simd_detail.h: Define
1797          _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA.
1798          * include/experimental/bits/simd.h: Annotate lambdas with
1799          _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA.
1800          * include/experimental/bits/simd_builtin.h: Ditto.
1801          * include/experimental/bits/simd_converter.h: Ditto.
1802          * include/experimental/bits/simd_fixed_size.h: Ditto.
1803          * include/experimental/bits/simd_math.h: Ditto.
1804          * include/experimental/bits/simd_neon.h: Ditto.
1805          * include/experimental/bits/simd_x86.h: Ditto.
1806
18072023-05-16  Jonathan Wakely  <jwakely@redhat.com>
1808
1809          Backported from master:
1810          2022-11-28  Jonathan Wakely  <jwakely@redhat.com>
1811
1812          PR libstdc++/107801
1813          * src/c++17/memory_resource.cc (chunk::_M_bytes): Change type
1814          from uint32_t to bitset::size_type. Adjust static assertion.
1815          (__pool_resource::_Pool::replenish): Cast to size_t after
1816          multiplication instead of before.
1817          (__pool_resource::_M_alloc_pools): Ensure both arguments to
1818          std::max have type size_t.
1819
18202023-05-11  Jonathan Wakely  <jwakely@redhat.com>
1821
1822          Backported from master:
1823          2022-11-16  Jonathan Wakely  <jwakely@redhat.com>
1824
1825          * python/libstdcxx/v6/printers.py (StdExpAnyPrinter): Make
1826          expansion of std::string in manager name more robust.
1827
18282023-05-08  Release Manager
1829
1830          * GCC 12.3.0 released.
1831
18322023-05-03  Kefu Chai  <kefu.chai@scylladb.com>
1833
1834          Backported from master:
1835          2023-05-03  Kefu Chai  <kefu.chai@scylladb.com>
1836                        Jonathan Wakely  <jwakely@redhat.com>
1837
1838          PR libstdc++/109703
1839          * include/bits/basic_string.h (basic_string(Iter, Iter, Alloc)):
1840          Initialize _M_string_length.
1841
18422023-05-03  Jonathan Wakely  <jwakely@redhat.com>
1843
1844          Backported from master:
1845          2023-04-28  Jonathan Wakely  <jwakely@redhat.com>
1846
1847          * doc/doxygen/user.cfg.in (STRIP_FROM_PATH): Remove prefixes
1848          from header paths.
1849
18502023-04-29  Patrick Palka  <ppalka@redhat.com>
1851
1852          Backported from master:
1853          2023-04-12  Patrick Palka  <ppalka@redhat.com>
1854
1855          * include/std/ranges (lazy_split_view::_OuterIter::_OuterIter):
1856          Propagate _M_trailing_empty in the const-converting constructor
1857          as per LWG 3904.
1858          * testsuite/std/ranges/adaptors/lazy_split.cc (test12): New test.
1859
18602023-04-29  Patrick Palka  <ppalka@redhat.com>
1861
1862          Backported from master:
1863          2023-03-14  Patrick Palka  <ppalka@redhat.com>
1864
1865          * include/bits/stl_iterator.h (move_iterator::_S_iter_concept):
1866          Define.
1867          (__cpp_lib_move_iterator_concept): Define for C++20.
1868          (move_iterator::iterator_concept): Strengthen as per P2520R0.
1869          * include/std/version (__cpp_lib_move_iterator_concept): Define
1870          for C++20.
1871          * testsuite/24_iterators/move_iterator/p2520r0.cc: New test.
1872
18732023-04-29  Patrick Palka  <ppalka@redhat.com>
1874
1875          Backported from master:
1876          2023-03-09  Patrick Palka  <ppalka@redhat.com>
1877
1878          PR libstdc++/108362
1879          * include/std/ranges (__detail::__can_single_view): New concept.
1880          (_Single::operator()): Constrain it.  Move [[nodiscard]] to the
1881          end of the function declarator.
1882          (__detail::__can_iota_view): New concept.
1883          (_Iota::operator()): Constrain it.  Move [[nodiscard]] to the
1884          end of the function declarator.
1885          (__detail::__can_istream_view): New concept.
1886          (_Istream::operator()): Constrain it.  Move [[nodiscard]] to the
1887          end of the function declarator.
1888          * testsuite/std/ranges/iota/lwg3292_neg.cc: Prune "in
1889          requirements" diagnostic.
1890          * testsuite/std/ranges/iota/iota_view.cc (test07): New test.
1891          * testsuite/std/ranges/istream_view.cc (test08): New test.
1892          * testsuite/std/ranges/single_view.cc (test07): New test.
1893
18942023-04-28  Patrick Palka  <ppalka@redhat.com>
1895
1896          Backported from master:
1897          2023-04-24  Patrick Palka  <ppalka@redhat.com>
1898
1899          * include/bits/max_size_type.h (__max_diff_type::operator>>=):
1900          Fix propagation of sign bit.
1901          * testsuite/std/ranges/iota/max_size_type.cc: Avoid using the
1902          non-standard 'signed typedef-name'.  Add some compile-time tests
1903          for right-shifting a negative __max_diff_type value by more than
1904          one.
1905
19062023-04-27  Jonathan Wakely  <jwakely@redhat.com>
1907
1908          * include/std/atomic: Add missing @endcond doxygen comment.
1909
19102023-04-27  Jonathan Wakely  <jwakely@redhat.com>
1911
1912          Backported from master:
1913          2022-11-25  Jonathan Wakely  <jwakely@redhat.com>
1914
1915          PR libstdc++/107850
1916          * include/bits/erase_if.h (__erase_nodes_if): Use non-const
1917          reference to the container.
1918          * include/experimental/map (erase_if): Likewise.
1919          * include/experimental/set (erase_if): Likewise.
1920          * include/experimental/unordered_map (erase_if): Likewise.
1921          * include/experimental/unordered_set (erase_if): Likewise.
1922          * include/std/map (erase_if): Likewise.
1923          * include/std/set (erase_if): Likewise.
1924          * include/std/unordered_map (erase_if): Likewise.
1925          * include/std/unordered_set (erase_if): Likewise.
1926          * testsuite/23_containers/map/erasure.cc: Check with
1927          const-incorrect predicate.
1928          * testsuite/23_containers/set/erasure.cc: Likewise.
1929          * testsuite/23_containers/unordered_map/erasure.cc: Likewise.
1930          * testsuite/23_containers/unordered_set/erasure.cc: Likewise.
1931          * testsuite/experimental/map/erasure.cc: Likewise.
1932          * testsuite/experimental/set/erasure.cc: Likewise.
1933          * testsuite/experimental/unordered_map/erasure.cc: Likewise.
1934          * testsuite/experimental/unordered_set/erasure.cc: Likewise.
1935
19362023-04-27  Jonathan Wakely  <jwakely@redhat.com>
1937
1938          Backported from master:
1939          2022-11-28  Jonathan Wakely  <jwakely@redhat.com>
1940
1941          * testsuite/26_numerics/random/subtract_with_carry_engine/cons/lwg3809.cc:
1942          Replace non-ASCII character.
1943
19442023-04-27  Jonathan Wakely  <jwakely@redhat.com>
1945
1946          Backported from master:
1947          2023-02-28  Jonathan Wakely  <jwakely@redhat.com>
1948
1949          PR libstdc++/108952
1950          * include/bits/uses_allocator_args.h
1951          (uses_allocator_construction_args): Implement LWG 3527.
1952          * testsuite/20_util/pair/astuple/get-2.cc: New test.
1953          * testsuite/20_util/scoped_allocator/108952.cc: New test.
1954          * testsuite/20_util/uses_allocator/lwg3527.cc: New test.
1955
19562023-04-27  Jonathan Wakely  <jwakely@redhat.com>
1957
1958          Backported from master:
1959          2023-03-31  Jonathan Wakely  <jwakely@redhat.com>
1960
1961          PR libstdc++/109339
1962          * include/std/stop_token (_Stop_state_ptr(const stop_source&)):
1963          Add attribute access with access-mode 'none'.
1964          * testsuite/30_threads/stop_token/stop_source/109339.cc: New test.
1965
19662023-04-27  Jonathan Wakely  <jwakely@redhat.com>
1967
1968          Backported from master:
1969          2022-11-28  Jonathan Wakely  <jwakely@redhat.com>
1970
1971          PR libstdc++/107466
1972          * include/bits/random.h (subtract_with_carry_engine): Use 32-bit
1973          type for default seed. Use 0u as default argument for
1974          subtract_with_carry_engine(result_type) constructor and
1975          seed(result_type) member function.
1976          * include/bits/random.tcc (subtract_with_carry_engine): Use
1977          32-bit type for default seed and engine used for initial state.
1978          * testsuite/26_numerics/random/subtract_with_carry_engine/cons/lwg3809.cc:
1979          New test.
1980
19812023-04-27  Jonathan Wakely  <jwakely@redhat.com>
1982
1983          Backported from master:
1984          2023-04-27  Jonathan Wakely  <jwakely@redhat.com>
1985
1986          * include/bits/mofunc_impl.h: Fix typo in doxygen comment.
1987
19882023-04-27  Jonathan Wakely  <jwakely@redhat.com>
1989
1990          Backported from master:
1991          2023-04-27  Jonathan Wakely  <jwakely@redhat.com>
1992
1993          * doc/doxygen/user.cfg.in (SOURCE_BROWSER): Only set to YES for
1994          HTML docs.
1995          * include/bits/gslice_array.h (_DEFINE_VALARRAY_OPERATOR): Omit
1996          from doxygen docs.
1997          * include/bits/indirect_array.h (_DEFINE_VALARRAY_OPERATOR):
1998          Likewise.
1999          * include/bits/mask_array.h (_DEFINE_VALARRAY_OPERATOR):
2000          Likewise.
2001          * include/bits/slice_array.h (_DEFINE_VALARRAY_OPERATOR):
2002          Likewise.
2003          * include/std/valarray (_DEFINE_VALARRAY_UNARY_OPERATOR)
2004          (_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT)
2005          (_DEFINE_VALARRAY_EXPR_AUGMENTED_ASSIGNMENT)
2006          (_DEFINE_BINARY_OPERATOR): Likewise.
2007
20082023-04-21  Jonathan Wakely  <jwakely@redhat.com>
2009
2010          PR libstdc++/103755
2011          * include/bits/locale_classes.tcc (try_facet, use_facet): Do not
2012          check array index or dynamic type when accessing required
2013          specializations of std::ctype, std::num_get, or std::num_put.
2014          * testsuite/22_locale/ctype/is/string/89728_neg.cc: Adjust
2015          expected errors.
2016
20172023-04-20  Jonathan Wakely  <jwakely@redhat.com>
2018
2019          Backported from master:
2020          2022-11-29  Jonathan Wakely  <jwakely@redhat.com>
2021
2022          PR libstdc++/107852
2023          PR libstdc++/106199
2024          PR libstdc++/100366
2025          * include/bits/vector.tcc (vector::_M_fill_insert): Copy
2026          _M_start and _M_finish members before allocating.
2027          (vector::_M_default_append): Likewise.
2028          (vector::_M_range_insert): Likewise.
2029
20302023-04-20  Jonathan Wakely  <jwakely@redhat.com>
2031
2032          Backported from master:
2033          2023-04-04  Jonathan Wakely  <jwakely@redhat.com>
2034
2035          * doc/xml/manual/extensions.xml: Remove std::bad_exception from
2036          example program.
2037          * doc/html/manual/ext_demangling.html: Regenerate.
2038
20392023-04-20  Jonathan Wakely  <jwakely@redhat.com>
2040
2041          Backported from master:
2042          2023-04-05  Jonathan Wakely  <jwakely@redhat.com>
2043
2044          * include/bits/regex.h (sub_match::swap): New function.
2045          * testsuite/28_regex/sub_match/lwg3204.cc: New test.
2046
20472023-04-20  Jonathan Wakely  <jwakely@redhat.com>
2048
2049          Backported from master:
2050          2023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2051
2052          PR libstdc++/103387
2053          * include/bits/istream.tcc (istream::_M_extract(ValueT&)): Use
2054          std::use_facet instead of cached _M_num_get facet.
2055          (istream::operator>>(short&)): Likewise.
2056          (istream::operator>>(int&)): Likewise.
2057          * include/bits/ostream.tcc (ostream::_M_insert(ValueT)): Use
2058          std::use_facet instead of cached _M_num_put facet.
2059
20602023-04-20  Jonathan Wakely  <jwakely@redhat.com>
2061
2062          Backported from master:
2063          2023-01-15  Jonathan Wakely  <jwakely@redhat.com>
2064
2065          * testsuite/30_threads/jthread/jthread.cc: Remove -pthread from
2066          dg-options.
2067
20682023-04-20  Jonathan Wakely  <jwakely@redhat.com>
2069
2070          Backported from master:
2071          2023-03-22  Jonathan Wakely  <jwakely@redhat.com>
2072
2073          * include/bits/shared_ptr_atomic.h (atomic::operator=(nullptr_t)):
2074          Add overload, as per LWG 3893.
2075          * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
2076          Check assignment from nullptr.
2077
20782023-04-20  Jonathan Wakely  <jwakely@redhat.com>
2079
2080          Backported from master:
2081          2023-03-29  Jonathan Wakely  <jwakely@redhat.com>
2082
2083          * include/std/expected (expected::value() &): Use const lvalue
2084          for unex member passed to bad_expected_access constructor, as
2085          per LWG 3843.
2086
20872023-04-20  Jonathan Wakely  <jwakely@redhat.com>
2088
2089          Backported from master:
2090          2023-02-02  Jonathan Wakely  <jwakely@redhat.com>
2091
2092          * include/std/variant (variant::operator=): Implement resolution
2093          of LWG 3585.
2094          * testsuite/20_util/variant/lwg3585.cc: New test.
2095
20962023-04-12  Patrick Palka  <ppalka@redhat.com>
2097
2098          Backported from master:
2099          2023-04-12  Patrick Palka  <ppalka@redhat.com>
2100
2101          * src/c++17/floating_from_chars.cc: Include <algorithm>,
2102          <iterator>, <limits> and <cstdint>.
2103
21042023-03-30  Jonathan Wakely  <jwakely@redhat.com>
2105
2106          Backported from master:
2107          2023-03-29  Jonathan Wakely  <jwakely@redhat.com>
2108
2109          PR libstdc++/109242
2110          * include/std/optional (transform): Use std::remove_cv_t.
2111          * testsuite/20_util/optional/monadic/pr109242.cc: New test.
2112
21132023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2114
2115          Backported from master:
2116          2022-12-16  Jonathan Wakely  <jwakely@redhat.com>
2117
2118          PR libstdc++/108118
2119          * include/bits/shared_ptr_base.h (weak_ptr::operator=):
2120          Implement as move-and-swap exactly as specified in the standard.
2121          * testsuite/20_util/weak_ptr/cons/self_move.cc: New test.
2122
21232023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2124
2125          Backported from master:
2126          2022-11-03  Jonathan Wakely  <jwakely@redhat.com>
2127
2128          * include/bits/ranges_algobase.h (__detail::__copy_or_move):
2129          Move output iterator.
2130          * testsuite/25_algorithms/copy/constrained.cc: Check copying to
2131          move-only output iterator.
2132
21332023-03-28  Björn Schäpers  <bjoern@hazardy.de>
2134
2135          Backported from master:
2136          2023-01-14  Björn Schäpers  <bjoern@hazardy.de>
2137
2138          * include/std/stacktrace (stacktrace_entry::_S_demangle): Use
2139          raw __name if __cxa_demangle could not demangle it.
2140
21412023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2142
2143          Backported from master:
2144          2022-12-12  Jonathan Wakely  <jwakely@redhat.com>
2145
2146          * include/std/stacktrace (operator<<): Only output to narrow
2147          ostreams (LWG 3515).
2148          * testsuite/19_diagnostics/stacktrace/synopsis.cc:
2149
21502023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2151
2152          Backported from master:
2153          2022-12-09  Jonathan Wakely  <jwakely@redhat.com>
2154
2155          * include/bits/chrono.h (duration_cast, floor, round, abs, ceil)
2156          (time_point_cast): Add [[nodiscard]] attribute and doxygen
2157          comments.
2158          (treat_as_floating_point): Add doxygen commen.
2159
21602023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2161
2162          Backported from master:
2163          2022-12-09  Jonathan Wakely  <jwakely@redhat.com>
2164
2165          * include/bits/chrono.h (duration, time_point): Change 'struct'
2166          to 'class'.
2167
21682023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2169
2170          Backported from master:
2171          2023-01-26  Jonathan Wakely  <jwakely@redhat.com>
2172
2173          PR libstdc++/108554
2174          * include/bits/stl_tree.h (_Rb_tree_insert_and_rebalance): Add
2175          nonnull attribute.
2176          (_Rb_tree_rebalance_for_erase): Add nonnull and returns_nonnull
2177          attributes.
2178          * testsuite/23_containers/map/modifiers/108554.cc: New test.
2179
21802023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2181
2182          Backported from master:
2183          2022-09-23  Jonathan Wakely  <jwakely@redhat.com>
2184
2185          * include/std/bitset (bitset::_M_copy_to_string): Find set bits
2186          instead of iterating over individual bits.
2187
21882023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2189
2190          Backported from master:
2191          2022-09-15  Jonathan Wakely  <jwakely@redhat.com>
2192
2193          * include/bits/shared_ptr_atomic.h (_GLIBCXX_TSAN_MUTEX_PRE_LOCK):
2194          Replace with ...
2195          (_GLIBCXX_TSAN_MUTEX_TRY_LOCK): ... this, add try_lock flag.
2196          (_GLIBCXX_TSAN_MUTEX_TRY_LOCK_FAILED): New macro using
2197          try_lock_failed flag
2198          (_GLIBCXX_TSAN_MUTEX_POST_LOCK): Rename to ...
2199          (_GLIBCXX_TSAN_MUTEX_LOCKED): ... this.
2200          (_GLIBCXX_TSAN_MUTEX_PRE_UNLOCK): Remove invalid flag.
2201          (_GLIBCXX_TSAN_MUTEX_POST_UNLOCK): Remove invalid flag.
2202          (_Sp_atomic::_Atomic_count::lock): Use new macros.
2203
22042023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2205
2206          Backported from master:
2207          2022-09-14  Jonathan Wakely  <jwakely@redhat.com>
2208
2209          * include/bits/shared_ptr_atomic.h (_GLIBCXX_TSAN_MUTEX_DESTROY)
2210          (_GLIBCXX_TSAN_MUTEX_PRE_LOCK, _GLIBCXX_TSAN_MUTEX_POST_LOCK)
2211          (_GLIBCXX_TSAN_MUTEX_PRE_UNLOCK, _GLIBCXX_TSAN_MUTEX_POST_UNLOCK)
2212          (_GLIBCXX_TSAN_MUTEX_PRE_SIGNAL, _GLIBCXX_TSAN_MUTEX_POST_SIGNAL):
2213          Define macros for TSan annotation functions.
2214          (_Sp_atomic::_Atomic_count): Add annotations.
2215
22162023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2217
2218          Backported from master:
2219          2022-05-17  Jonathan Wakely  <jwakely@redhat.com>
2220
2221          * include/std/memory_resource (new_delete_resource): Add
2222          nodiscard, returns_nonnull and const attributes.
2223          (null_memory_resource): Likewise.
2224          (set_default_resource, get_default_resource): Add returns_nonnull
2225          attribute.
2226          (memory_resource::is_equal): Add nodiscard attribute.
2227          (operator==, operator!=): Likewise.
2228
22292023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2230
2231          Backported from master:
2232          2022-09-14  Jonathan Wakely  <jwakely@redhat.com>
2233
2234          * include/std/future
2235          (_State_baseV2::__setter(exception_ptr&, promise&)): Add
2236          assertion for LWG 2276 precondition.
2237          * testsuite/30_threads/promise/members/set_exception_neg.cc:
2238          New test.
2239
22402023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2241
2242          Backported from master:
2243          2022-09-08  Jonathan Wakely  <jwakely@redhat.com>
2244
2245          * include/c_global/cstddef (byte): Add always_inline attribute
2246          to all operator overloads.
2247          (to_integer): Add always_inline attribute.
2248
22492023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2250
2251          Backported from master:
2252          2022-09-08  Jonathan Wakely  <jwakely@redhat.com>
2253
2254          * include/std/system_error (__adl_only::make_error_code): Add
2255          deleted function.
2256          (__adl_only::make_error_condition): Likewise.
2257          (error_code::error_code(ErrorCodeEnum)): Add using-declaration
2258          for deleted function.
2259          (error_condition::error_condition(ErrorConditionEnum)):
2260          Likewise.
2261          * testsuite/19_diagnostics/error_code/cons/lwg3629.cc: New test.
2262          * testsuite/19_diagnostics/error_condition/cons/lwg3629.cc: New test.
2263
22642023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2265
2266          Backported from master:
2267          2022-05-17  Jonathan Wakely  <jwakely@redhat.com>
2268
2269          * include/bits/ios_base.h (io_category): Add const and nodiscard
2270          attributes.
2271          (make_error_code, make_error_condition): Add nodiscard.
2272          * include/std/future (future_category): Add const and nodiscard.
2273          (make_error_code, make_error_condition): Add nodiscard.
2274          * include/std/system_error (generic_category system_category):
2275          Add nodiscard. Replace _GLIBCXX_CONST with C++11 attribute.
2276          (error_code::value, error_code::category, error_code::operator bool)
2277          (error_condition::value, error_condition::category)
2278          (error_condition::operator bool, make_error_code)
2279          (make_error_condition, operator==, operator!=, operator<=>): Add
2280          nodiscard.
2281
22822023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2283
2284          Backported from master:
2285          2022-05-13  Jonathan Wakely  <jwakely@redhat.com>
2286
2287          * include/bits/std_thread.h (thread, thread::id): Improve
2288          doxygen docs.
2289          * include/std/future: Likewise.
2290          * include/std/thread (jthread): Likewise.
2291
22922023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2293
2294          Backported from master:
2295          2022-05-13  Jonathan Wakely  <jwakely@redhat.com>
2296
2297          * include/std/system_error: Improve doxygen comments.
2298
22992023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2300
2301          Backported from master:
2302          2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
2303
2304          * include/ext/throw_allocator.h: Use reserved names for
2305          parameters.
2306
23072023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2308
2309          Backported from master:
2310          2022-11-25  Jonathan Wakely  <jwakely@redhat.com>
2311
2312          * acinclude.m4 (GLIBCXX_CHECK_UCHAR_H): Don't use AC_MSG_RESULT
2313          unless the AC_MSG_CHECKING happened.
2314          * configure: Regenerate.
2315
23162023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2317
2318          Backported from master:
2319          2023-01-12  Jonathan Wakely  <jwakely@redhat.com>
2320
2321          * doc/xml/manual/abi.xml: Add latest library versions.
2322          * doc/html/manual/abi.html: Regenerate.
2323
23242023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2325
2326          Backported from master:
2327          2023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2328
2329          * include/bits/char_traits.h (char_traits::copy): Return without
2330          using memcpy if n==0.
2331          (char_traits::assign): Likewise for memset.
2332
23332023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2334
2335          Backported from master:
2336          2023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2337
2338          PR libstdc++/109299
2339          * include/bits/basic_string.h (basic_string::_M_is_local()): Add
2340          hint for compiler that local strings fit in the local buffer.
2341
23422023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2343
2344          Backported from master:
2345          2023-03-01  Jonathan Wakely  <jwakely@redhat.com>
2346
2347          * include/bits/cow_string.h: Fix typo in comment.
2348
23492023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2350
2351          Backported from master:
2352          2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
2353
2354          * include/experimental/optional: Fix header name in comment.
2355
23562023-03-28  Jonathan Wakely  <jwakely@redhat.com>
2357
2358          Backported from master:
2359          2023-01-16  Jonathan Wakely  <jwakely@redhat.com>
2360
2361          PR libstdc++/108413
2362          * include/c_compatibility/stdatomic.h: Change copyright line to
2363          be consistent with other headers contributed under DCO terms.
2364          * include/std/expected: Add full stop to copyright line.
2365
23662023-03-21  Matthias Kretz  <m.kretz@gsi.de>
2367
2368          Backported from master:
2369          2023-03-21  Matthias Kretz  <m.kretz@gsi.de>
2370
2371          * include/experimental/bits/simd_x86.h
2372          (_SimdImplX86::_S_divides): Replace test for __GCC_IEC_559 == 0
2373          with __RECIPROCAL_MATH__.
2374
23752023-03-21  Matthias Kretz  <m.kretz@gsi.de>
2376
2377          Backported from master:
2378          2023-03-21  Matthias Kretz  <m.kretz@gsi.de>
2379
2380          * include/experimental/bits/simd_detail.h: Don't define
2381          _GLIBCXX_SIMD_WORKAROUND_PR90993 for Clang.
2382          * include/experimental/bits/simd_x86.h (_S_divides): Remove
2383          check for __clang__.
2384
23852023-03-21  Matthias Kretz  <m.kretz@gsi.de>
2386
2387          Backported from master:
2388          2023-03-21  Matthias Kretz  <m.kretz@gsi.de>
2389
2390          * testsuite/experimental/simd/tests/operators.cc: Clang doesn't
2391          define __GCC_IEC_559. Use __STDC_IEC_559__ instead.
2392
23932023-03-20  François Dumont  <fdumont@gcc.gnu.org>
2394
2395          Backported from master:
2396          2022-11-16  François Dumont  <fdumont@gcc.gnu.org>
2397
2398          * python/libstdcxx/v6/printers.py (FilteringTypePrinter): Rename 'match' field
2399          'template'. Add self.targ1 to specify the first template parameter of the instantiation
2400          to match.
2401          (add_one_type_printer): Add targ1 optional parameter, default to None.
2402          Use gdb.types.get_basic_type to compare the type to recognize and the type
2403          returned from the typedef lookup.
2404          (register_type_printers): Adapt calls to add_one_type_printers.
2405
24062023-03-20  François Dumont  <fdumont@gcc.gnu.org>
2407
2408          Backported from master:
2409          2022-10-03  François Dumont  <fdumont@gcc.gnu.org>
2410
2411          * python/libstdcxx/v6/printers.py (Printer.add_version): Do not add version
2412          namespace for __cxx11 symbols.
2413          (add_one_template_type_printer): Likewise.
2414          (add_one_type_printer): Likewise.
2415          (FilteringTypePrinter._recognizer.recognize): Add a workaround for std::string & al
2416          ambiguous typedef matching both std:: and std::__cxx11:: symbols.
2417          * testsuite/libstdc++-prettyprinters/cxx17.cc: Remove obsolete
2418          \#define _GLIBCXX_USE_CXX11_ABI 0.
2419          * testsuite/libstdc++-prettyprinters/simple.cc: Likewise. Adapt test to accept
2420          std::__cxx11::list.
2421          * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
2422          * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
2423          * testsuite/libstdc++-prettyprinters/80276.cc: Likewise and remove xfail for c++20
2424          and debug mode.
2425          * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
2426
24272023-03-20  François Dumont  <fdumont@gcc.gnu.org>
2428
2429          Backported from master:
2430          2022-09-22  François Dumont  <fdumont@gcc.gnu.org>
2431
2432          * python/libstdcxx/v6/printers.py: Remove ptinter registration for non-existing
2433          types std::__debug::unique_ptr, std::__debug::stack, std::__debug::queue,
2434          std::__debug::priority_queue.
2435
24362023-03-20  Jonathan Wakely  <jwakely@redhat.com>
2437
2438          Backported from master:
2439          2023-03-10  Jonathan Wakely  <jwakely@redhat.com>
2440
2441          PR libstdc++/109064
2442          * python/libstdcxx/v6/xmethods.py (SharedPtrUseCountWorker):
2443          Remove self-recursion in __init__. Add missing _supports.
2444          * testsuite/libstdc++-xmethods/shared_ptr.cc: Check use_count()
2445          and unique().
2446
24472023-03-20  Jonathan Wakely  <jwakely@redhat.com>
2448
2449          PR libstdc++/109182
2450          * include/std/expected (expected<void>::expected(in_place_t)):
2451          Remove template-head.
2452
24532023-03-20  Jonathan Wakely  <jwakely@redhat.com>
2454
2455          PR libstdc++/109165
2456          * include/std/coroutine (hash<>::operator()): Add const.
2457          * testsuite/18_support/coroutines/hash.cc: New test.
2458
24592023-03-10  Thomas W Rodgers  <rodgert@twrodgers.com>
2460
2461          Backported from master:
2462          2023-02-14  Thomas W Rodgers  <rodgert@twrodgers.com>
2463
2464          PR libstdc++/103934
2465          * include/std/atomic (atomic_flag_wait): Add.
2466          (atomic_flag_wait_explicit): Add.
2467          (atomic_flag_notify): Add.
2468          (atomic_flag_notify_explicit): Add.
2469          * testsuite/29_atomics/atomic_flag/wait_notify/1.cc:
2470          Add test case to cover missing atomic_flag free functions.
2471
24722023-02-23  Matthias Kretz  <m.kretz@gsi.de>
2473
2474          Backported from master:
2475          2023-02-23  Matthias Kretz  <m.kretz@gsi.de>
2476
2477          PR libstdc++/108030
2478          * include/experimental/bits/simd.h (__vector_broadcast):
2479          Implement via __vector_broadcast_impl instead of
2480          __call_with_n_evaluations + 2 lambdas.
2481          (__vector_broadcast_impl): New.
2482
24832023-02-23  Matthias Kretz  <m.kretz@gsi.de>
2484
2485          Backported from master:
2486          2023-02-23  Matthias Kretz  <m.kretz@gsi.de>
2487
2488          * include/experimental/bits/simd_builtin.h (_S_set): Compare as
2489          int. The actual range of these indexes is very small.
2490
24912023-02-23  Matthias Kretz  <m.kretz@gsi.de>
2492
2493          Backported from master:
2494          2023-02-23  Matthias Kretz  <m.kretz@gsi.de>
2495
2496          * include/experimental/bits/simd_x86.h (_S_bit_shift_left)
2497          (_S_bit_shift_right): Declare constexpr. The implementation was
2498          already expecting constexpr evaluation.
2499
25002023-02-23  Matthias Kretz  <m.kretz@gsi.de>
2501
2502          Backported from master:
2503          2023-02-20  Matthias Kretz  <m.kretz@gsi.de>
2504
2505          * include/experimental/bits/simd.h (__extract_part, split):
2506          Use reserved name for template parameter.
2507
25082023-02-21  Jonathan Wakely  <jwakely@redhat.com>
2509
2510          Backported from master:
2511          2022-08-31  Jonathan Wakely  <jwakely@redhat.com>
2512
2513          * include/bits/refwrap.h (reference_wrapper::operator()): Add
2514          noexcept-specifier and use __invoke_result instead of result_of.
2515          * testsuite/20_util/reference_wrapper/invoke-noexcept.cc: New test.
2516
25172023-02-21  Jonathan Wakely  <jwakely@redhat.com>
2518
2519          Backported from master:
2520          2023-02-02  Jonathan Wakely  <jwakely@redhat.com>
2521
2522          PR libstdc++/108636
2523          * include/bits/fs_path.h (path::path(string_view, _Type))
2524          (path::_Cmpt::_Cmpt(string_view, _Type, size_t)): Move inline
2525          definitions to ...
2526          * src/c++17/fs_path.cc: ... here.
2527          * testsuite/27_io/filesystem/path/108636.cc: New test.
2528
25292023-02-16  Matthias Kretz  <m.kretz@gsi.de>
2530
2531          Backported from master:
2532          2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
2533
2534          * include/experimental/bits/simd_math.h (__hypot): Bitcasting
2535          between scalars requires the __bit_cast helper function instead
2536          of simd_bit_cast.
2537
25382023-02-16  Matthias Kretz  <m.kretz@gsi.de>
2539
2540          Backported from master:
2541          2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
2542
2543          * include/experimental/bits/simd_x86.h
2544          (_SimdImplX86::_S_not_equal_to, _SimdImplX86::_S_less)
2545          (_SimdImplX86::_S_less_equal): Do not call
2546          __builtin_is_constant_evaluated in constexpr-if.
2547
25482023-02-16  Matthias Kretz  <m.kretz@gsi.de>
2549
2550          Backported from master:
2551          2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
2552
2553          * testsuite/experimental/simd/tests/bits/verify.h
2554          (verify::verify): Use %zx for size_t in format string.
2555
25562023-02-16  Matthias Kretz  <m.kretz@gsi.de>
2557
2558          Backported from master:
2559          2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
2560
2561          * testsuite/experimental/simd/README.md: Document the timeout
2562          and timeout-factor directives. Minor typo fixed.
2563
25642023-02-16  Matthias Kretz  <m.kretz@gsi.de>
2565
2566          Backported from master:
2567          2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
2568
2569          * include/experimental/bits/simd.h
2570          (_SimdWrapper::_M_is_constprop_none_of)
2571          (_SimdWrapper::_M_is_constprop_all_of): Return false unless the
2572          computed result still satisfies __builtin_constant_p.
2573
25742023-02-14  Thomas W Rodgers  <rodgert@twrodgers.com>
2575
2576          Backported from master:
2577          2023-02-14  Thomas W Rodgers  <rodgert@twrodgers.com>
2578
2579          PR libstdc++/103934
2580          * include/std/atomic (atomic_flag_test): Add.
2581          (atomic_flag_test_explicit): Add.
2582          * testsuite/29_atomics/atomic_flag/test/explicit.cc: Add
2583          test case to cover missing atomic_flag free functions.
2584          * testsuite/29_atomics/atomic_flag/test/implicit.cc:
2585          Likewise.
2586
25872023-02-10  Jakub Jelinek  <jakub@redhat.com>
2588
2589          Backported from master:
2590          2022-11-24  Jakub Jelinek  <jakub@redhat.com>
2591
2592          PR libstdc++/107468
2593          * src/c++17/fast_float/fast_float.h: Partial merge from fast_float
2594          2ef9abbcf6a11958b6fa685a89d0150022e82e78 commit.
2595
25962023-02-10  Jakub Jelinek  <jakub@redhat.com>
2597
2598          Backported from master:
2599          2022-11-07  Jakub Jelinek  <jakub@redhat.com>
2600
2601          PR libstdc++/107468
2602          * src/c++17/fast_float/fast_float.h: Partial merge from fast_float
2603          662497742fea7055f0e0ee27e5a7ddc382c2c38e commit.
2604          * testsuite/20_util/from_chars/pr107468.cc: New test.
2605
26062023-02-02  Jonathan Wakely  <jwakely@redhat.com>
2607
2608          Backported from master:
2609          2023-02-01  Jonathan Wakely  <jwakely@redhat.com>
2610
2611          * src/c++11/random.cc (random_device::_M_fini): Do not try to
2612          close the file handle if the target doesn't support the
2613          /dev/random and /dev/urandom files.
2614
26152023-02-02  Jonathan Wakely  <jwakely@redhat.com>
2616
2617          Backported from master:
2618          2023-02-01  Jonathan Wakely  <jwakely@redhat.com>
2619
2620          * config/os/generic/error_constants.h (errc::value_too_large)
2621          [__AVR__]: Define.
2622          * src/c++11/system_error.cc
2623          (system_category::default_error_condition) [__AVR__]: Only match
2624          recognize values equal to EDOM, ERANGE, ENOSYS and EINTR.
2625          * src/c++17/fs_ops.cc (fs::current_path) [__AVR__]: Do not check
2626          for ENOENT etc. in switch.
2627          (fs::remove_all) [__AVR__]: Likewise.
2628          * src/filesystem/ops-common.h [__AVR__]: Do not use POSIX open,
2629          close etc.
2630
26312023-02-02  Patrick Palka  <ppalka@redhat.com>
2632
2633          Backported from master:
2634          2022-11-06  Patrick Palka  <ppalka@redhat.com>
2635
2636          * include/bits/atomic_wait.h (_detail::__platform_wait_alignment):
2637          Declare inline.  Remove redundant static specifier.
2638          (__detail::__atomic_spin_count_relax): Declare inline.
2639          (__detail::__atomic_spin_count): Likewise.
2640          * include/bits/regex_automaton.h (__detail::_S_invalid_state_id):
2641          Declare inline for C++17.  Declare constexpr.  Remove
2642          redundant const and static specifiers.
2643          * include/bits/regex_error.h (regex_constants::error_collate):
2644          Declare inline for C++17 as per P0607R0.
2645          (regex_constants::error_ctype): Likewise.
2646          (regex_constants::error_escape): Likewise.
2647          (regex_constants::error_backref): Likewise.
2648          (regex_constants::error_brack): Likewise.
2649          (regex_constants::error_paren): Likewise.
2650          (regex_constants::error_brace): Likewise.
2651          (regex_constants::error_badbrace): Likewise.
2652          (regex_constants::error_range): Likewise.
2653          (regex_constants::error_space): Likewise.
2654          (regex_constants::error_badrepeat): Likewise.
2655          (regex_constants::error_complexity): Likewise.
2656          (regex_constants::error_stack): Likewise.
2657          * include/ext/concurrence.h (__gnu_cxx::__default_lock_policy):
2658          Likewise.  Remove redundant static specifier.
2659          * include/pstl/execution_defs.h (execution::seq): Declare inline
2660          for C++17 as per P0607R0.
2661          (execution::par): Likewise.
2662          (execution::par_unseq): Likewise.
2663          (execution::unseq): Likewise.
2664
26652023-01-18  Jonathan Wakely  <jwakely@redhat.com>
2666
2667          Backported from master:
2668          2022-12-22  Jonathan Wakely  <jwakely@redhat.com>
2669
2670          PR libstdc++/105730
2671          * src/c++11/compatibility-condvar.cc (__nothrow_wait_cv::wait):
2672          Access private data member of base class and call its wait
2673          member.
2674
26752023-01-16  Jonathan Wakely  <jwakely@redhat.com>
2676
2677          Backported from master:
2678          2022-08-04  Jonathan Wakely  <jwakely@redhat.com>
2679
2680          PR libstdc++/106183
2681          * include/bits/atomic_wait.h (__waiter_pool_base::_M_notify):
2682          Move increment of _M_ver here.
2683          [!_GLIBCXX_HAVE_PLATFORM_WAIT]: Lock mutex around increment.
2684          Use relaxed memory order and always notify all waiters.
2685          (__waiter_base::_M_do_wait) [!_GLIBCXX_HAVE_PLATFORM_WAIT]:
2686          Check value again after locking mutex.
2687          (__waiter_base::_M_notify): Remove increment of _M_ver.
2688
26892023-01-05  Jonathan Wakely  <jwakely@redhat.com>
2690
2691          Backported from master:
2692          2023-01-05  Jonathan Wakely  <jwakely@redhat.com>
2693
2694          PR libstdc++/108265
2695          * include/std/chrono (hh_mm_ss): Do not use chrono::abs if
2696          duration rep is unsigned. Remove incorrect noexcept-specifier.
2697          * testsuite/std/time/hh_mm_ss/1.cc: Check unsigned rep. Check
2698          floating-point representations. Check default construction.
2699
27002022-12-21  Jonathan Wakely  <jwakely@redhat.com>
2701
2702          Backported from master:
2703          2022-11-23  Jonathan Wakely  <jwakely@redhat.com>
2704
2705          PR libstdc++/107814
2706          * testsuite/experimental/filesystem/iterators/error_reporting.cc:
2707          Use a static buffer with space after it.
2708
27092022-12-21  Jonathan Wakely  <jwakely@redhat.com>
2710
2711          Backported from master:
2712          2022-12-16  Jonathan Wakely  <jwakely@redhat.com>
2713
2714          * include/std/expected (expected::_M_swap_val_unex): Guard the
2715          correct object.
2716          (expected::swap): Move is_swappable
2717          requirement from static_assert to constraint.
2718          (swap): Likewise.
2719          (operator==): Remove noexcept-specifier.
2720          * testsuite/20_util/expected/swap.cc: Check swapping of
2721          types without non-throwing move constructor. Check constraints
2722          on swap.
2723          * testsuite/20_util/expected/unexpected.cc: Check constraints on
2724          swap.
2725          * testsuite/20_util/expected/equality.cc: New test.
2726
27272022-12-14  Jonathan Wakely  <jwakely@redhat.com>
2728
2729          Backported from master:
2730          2022-12-14  Jonathan Wakely  <jwakely@redhat.com>
2731
2732          PR libstdc++/108097
2733          * include/std/stacktrace (basic_stracktrace::_Impl): Do not
2734          multiply N by sizeof(value_type) when allocating.
2735
27362022-11-24  Jonathan Wakely  <jwakely@redhat.com>
2737
2738          Backported from master:
2739          2022-09-15  Jonathan Wakely  <jwakely@redhat.com>
2740
2741          * include/std/memory: Do not include <bits/stl_algobase.h>.
2742
27432022-11-24  Jonathan Wakely  <jwakely@redhat.com>
2744
2745          Backported from master:
2746          2022-11-11  Jonathan Wakely  <jwakely@redhat.com>
2747
2748          * testsuite/20_util/tuple/swap.cc (MoveOnly::operator==): Add
2749          const qualifier.
2750          * testsuite/26_numerics/valarray/87641.cc (X::operator==):
2751          Likewise.
2752
27532022-11-24  Jonathan Wakely  <jwakely@redhat.com>
2754
2755          Backported from master:
2756          2022-11-02  Jonathan Wakely  <jwakely@redhat.com>
2757
2758          * include/std/expected (expected::_M_invalid): Remove.
2759
27602022-11-24  Jonathan Wakely  <jwakely@redhat.com>
2761
2762          Backported from master:
2763          2022-11-21  Jonathan Wakely  <jwakely@redhat.com>
2764
2765          * include/bits/chrono.h (duration): Check preconditions on
2766          template arguments before using them.
2767
27682022-11-24  Jonathan Wakely  <jwakely@redhat.com>
2769
2770          Backported from master:
2771          2022-10-28  Jonathan Wakely  <jwakely@redhat.com>
2772
2773          * include/bits/fs_path.h (path::filename()): Fix dangling
2774          reference.
2775
27762022-11-24  Jonathan Wakely  <jwakely@redhat.com>
2777
2778          Backported from master:
2779          2022-09-14  Jonathan Wakely  <jwakely@redhat.com>
2780
2781          * doc/xml/manual/intro.xml: Document LWG 1203.
2782          * doc/html/*: Regenerate.
2783
27842022-11-24  Jonathan Wakely  <jwakely@redhat.com>
2785
2786          Backported from master:
2787          2022-09-07  Jonathan Wakely  <jwakely@redhat.com>
2788
2789          * include/std/barrier: Add missing runtime exception.
2790
27912022-11-24  Jonathan Wakely  <jwakely@redhat.com>
2792
2793          Backported from master:
2794          2022-08-04  Jonathan Wakely  <jwakely@redhat.com>
2795
2796          * include/bits/fs_dir.h (directory_iterator): Add comparison
2797          with std::default_sentinel_t. Remove redundant operator!= for
2798          C++20.
2799          * (recursive_directory_iterator): Likewise.
2800          * include/bits/iterator_concepts.h [!__cpp_lib_concepts]
2801          (default_sentinel_t, default_sentinel): Define even if concepts
2802          are not supported.
2803          * include/bits/regex.h (regex_iterator): Add comparison with
2804          std::default_sentinel_t. Remove redundant operator!= for C++20.
2805          (regex_token_iterator): Likewise.
2806          (regex_token_iterator::_M_end_of_seq()): Add noexcept.
2807          * testsuite/27_io/filesystem/iterators/lwg3719.cc: New test.
2808          * testsuite/28_regex/iterators/regex_iterator/lwg3719.cc:
2809          New test.
2810          * testsuite/28_regex/iterators/regex_token_iterator/lwg3719.cc:
2811          New test.
2812
28132022-11-24  Jonathan Wakely  <jwakely@redhat.com>
2814
2815          Backported from master:
2816          2022-09-23  Jonathan Wakely  <jwakely@redhat.com>
2817
2818          PR libstdc++/91456
2819          * include/std/type_traits (__is_nothrow_invocable): Remove.
2820          (__is_invocable_impl::__nothrow_type): New member type which
2821          checks if the conversion can throw.
2822          (__is_nt_invocable_impl): Replace class template with alias
2823          template to __is_nt_invocable_impl::__nothrow_type.
2824          * testsuite/20_util/is_nothrow_invocable/91456.cc: New test.
2825          * testsuite/20_util/is_nothrow_convertible/value.cc: Remove
2826          macro used by value_ext.cc test.
2827          * testsuite/20_util/is_nothrow_convertible/value_ext.cc: Remove
2828          test for non-standard __is_nothrow_invocable trait.
2829
28302022-11-22  Jonathan Wakely  <jwakely@redhat.com>
2831
2832          PR libstdc++/106201
2833          * include/bits/fs_path.h (filesystem::swap(path&, path&)):
2834          Replace with abbreviated function template.
2835          * include/experimental/bits/fs_path.h (filesystem::swap):
2836          Likewise.
2837          * testsuite/27_io/filesystem/iterators/106201.cc: New test.
2838          * testsuite/experimental/filesystem/iterators/106201.cc: New test.
2839
28402022-11-22  Jonathan Wakely  <jwakely@redhat.com>
2841
2842          Backported from master:
2843          2022-11-22  Jonathan Wakely  <jwakely@redhat.com>
2844
2845          PR libstdc++/107801
2846          * src/c++17/memory_resource.cc (pool_sizes): Disable large pools
2847          for targets with 16-bit int.
2848
28492022-11-14  Jonathan Wakely  <jwakely@redhat.com>
2850
2851          * include/bits/mofunc_impl.h (move_only_function::__param_t):
2852          Use __is_scalar instead of is_trivially_copyable.
2853          * testsuite/20_util/move_only_function/call.cc: Check parameters
2854          involving incomplete types.
2855
28562022-11-14  Jonathan Wakely  <jwakely@redhat.com>
2857
2858          Backported from master:
2859          2022-11-11  Jonathan Wakely  <jwakely@redhat.com>
2860
2861          PR libstdc++/95048
2862          * include/bits/fs_path.h (path::_Codecvt): New class template
2863          that selects the kind of code conversion done.
2864          (path::_Codecvt<wchar_t>): Select based on sizeof(wchar_t).
2865          (_GLIBCXX_CONV_FROM_UTF8): New macro to allow the same code to
2866          be used for Windows and POSIX.
2867          (path::_S_convert(const EcharT*, const EcharT*)): Simplify by
2868          using _Codecvt and _GLIBCXX_CONV_FROM_UTF8 abstractions.
2869          (path::_S_str_convert(basic_string_view<value_type>, const A&)):
2870          Simplify nested conditions.
2871          * include/experimental/bits/fs_path.h (path::_Cvt): Define
2872          nested typedef controlling type of code conversion done.
2873          (path::_Cvt::_S_wconvert): Use new typedef.
2874          (path::string(const A&)): Likewise.
2875          * testsuite/27_io/filesystem/path/construct/95048.cc: New test.
2876          * testsuite/experimental/filesystem/path/construct/95048.cc: New
2877          test.
2878
28792022-11-14  Nathaniel Shead  <nathanieloshead@gmail.com>
2880
2881          Backported from master:
2882          2022-11-11  Nathaniel Shead  <nathanieloshead@gmail.com>
2883
2884          PR libstdc++/103295
2885          * include/bits/basic_string.h (_M_use_local_data): Set active
2886          member to _M_local_buf.
2887
28882022-11-08  Jonathan Wakely  <jwakely@redhat.com>
2889
2890          Backported from master:
2891          2022-11-08  Jonathan Wakely  <jwakely@redhat.com>
2892
2893          * doc/xml/authors.xml: Remove empty author element.
2894          * doc/xml/manual/spine.xml: Likewise.
2895          * doc/html/manual/index.html: Regenerate.
2896
28972022-10-19  Alexandre Oliva  <oliva@adacore.com>
2898
2899          Backported from master:
2900          2022-06-22  Alexandre Oliva  <oliva@adacore.com>
2901
2902          * libsupc++/eh_globals.cc [!_GLIBCXX_HAVE_TLS]
2903          (__eh_globals_init::~__eh_globals_init): Clear _S_init first.
2904
29052022-09-29  Jonathan Wakely  <jwakely@redhat.com>
2906
2907          Backported from master:
2908          2022-09-28  Jonathan Wakely  <jwakely@redhat.com>
2909
2910          * doc/xml/manual/evolution.xml: Document std::bind API
2911          changes.
2912          * doc/xml/manual/intro.xml: Document LWG 2487 status.
2913          * doc/xml/manual/using.xml: Clarify default value of
2914          _GLIBCXX_USE_DEPRECATED.
2915          * doc/html/*: Regenerate.
2916          * include/std/functional (_Bind::operator()(Args&&...) volatile)
2917          (_Bind::operator()(Args&&...) const volatile)
2918          (_Bind_result::operator()(Args&&...) volatile)
2919          (_Bind_result::operator()(Args&&...) const volatile): Replace
2920          with deleted overload for C++20 and later.
2921          * testsuite/20_util/bind/cv_quals.cc: Check for deprecated
2922          warnings in C++17.
2923          * testsuite/20_util/bind/cv_quals_2.cc: Likewise, and check for
2924          ill-formed in C++20.
2925
29262022-09-16  Jonathan Wakely  <jwakely@redhat.com>
2927
2928          * doc/xml/manual/abi.xml: Document GLIBCXX_3.4.30 version.
2929          * doc/html/manual/abi.html: Regenerate.
2930
29312022-09-12  Patrick Palka  <ppalka@redhat.com>
2932
2933          Backported from master:
2934          2022-09-12  Patrick Palka  <ppalka@redhat.com>
2935
2936          PR libstdc++/106320
2937          * testsuite/std/ranges/adaptors/join.cc (test13): New test.
2938
29392022-09-07  Jonathan Wakely  <jwakely@redhat.com>
2940
2941          Backported from master:
2942          2022-08-22  Jonathan Wakely  <jwakely@redhat.com>
2943
2944          PR libstdc++/106695
2945          * include/bits/std_thread.h (thread::_State_impl): Forward
2946          individual arguments to _Invoker constructor.
2947          (thread::_Invoker): Add constructor. Delete copies.
2948          * include/std/future (__future_base::_Deferred_state): Forward
2949          individual arguments to _Invoker constructor.
2950          (__future_base::_Async_state_impl): Likewise.
2951          * testsuite/30_threads/async/106695.cc: New test.
2952          * testsuite/30_threads/thread/106695.cc: New test.
2953
29542022-09-07  Jonathan Wakely  <jwakely@redhat.com>
2955
2956          Backported from master:
2957          2022-08-22  Jonathan Wakely  <jwakely@redhat.com>
2958
2959          PR libstdc++/106607
2960          * include/bits/regex_compiler.tcc (_Compiler::_M_cur_int_value):
2961          Use built-ins to check for integer overflow in back-reference
2962          number.
2963          * testsuite/28_regex/basic_regex/106607.cc: New test.
2964
29652022-08-24  Jonathan Wakely  <jwakely@redhat.com>
2966
2967          Backported from master:
2968          2022-08-23  Jonathan Wakely  <jwakely@redhat.com>
2969
2970          PR libstdc++/106589
2971          * include/std/variant (__do_visit): Handle is_void<R> for zero
2972          argument case.
2973          * testsuite/20_util/variant/visit_r.cc: Check std::visit<void>(v).
2974
29752022-08-23  Jonathan Wakely  <jwakely@redhat.com>
2976
2977          Backported from master:
2978          2022-08-22  Jonathan Wakely  <jwakely@redhat.com>
2979
2980          PR libstdc++/105678
2981          * doc/xml/manual/using.xml: Document -lstdc++_libbacktrace
2982          requirement for using std::stacktrace. Also adjust -frtti and
2983          -fexceptions to document non-default (i.e. negative) forms.
2984          * doc/html/*: Regenerate.
2985
29862022-08-19  Release Manager
2987
2988          * GCC 12.2.0 released.
2989
29902022-08-05  Jonathan Wakely  <jwakely@redhat.com>
2991
2992          Backported from master:
2993          2022-08-04  Jonathan Wakely  <jwakely@redhat.com>
2994
2995          * include/std/string_view (basic_string_view(Range&&)): Add
2996          explicit as per P2499R0.
2997          * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc:
2998          Adjust implicit conversions. Check implicit conversions fail.
2999          * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc:
3000          Likewise.
3001
30022022-08-05  Jonathan Wakely  <jwakely@redhat.com>
3003
3004          Backported from master:
3005          2022-08-04  Jonathan Wakely  <jwakely@redhat.com>
3006
3007          * include/std/expected (unexpected::_M_val): Rename to _M_unex.
3008          (bad_expected_access::_M_val): Likewise.
3009
30102022-08-05  Jonathan Wakely  <jwakely@redhat.com>
3011
3012          Backported from master:
3013          2022-08-04  Jonathan Wakely  <jwakely@redhat.com>
3014
3015          * include/bits/ios_base.h (__cpp_lib_ios_noreplace): Update
3016          value to 202207L.
3017          * include/std/version (__cpp_lib_ios_noreplace): Likewise.
3018          * testsuite/27_io/basic_ofstream/open/char/noreplace.cc: Check
3019          for new value.
3020          * testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc:
3021          Likewise.
3022
30232022-08-03  Jonathan Wakely  <jwakely@redhat.com>
3024
3025          Backported from master:
3026          2022-06-28  Jonathan Wakely  <jwakely@redhat.com>
3027
3028          * src/c++17/fs_dir.cc (_Dir::dir_and_pathname):: Replace with
3029          current() returning _At_path.
3030          (_Dir::_Dir, _Dir::open_subdir, _Dir::do_unlink): Adjust.
3031          * src/filesystem/dir-common.h (_Dir_base::_At_path): New class.
3032          (_Dir_base::_Dir_Base, _Dir_base::openat): Use _At_path.
3033          * src/filesystem/dir.cc (_Dir::dir_and_pathname): Replace with
3034          current() returning _At_path.
3035          (_Dir::_Dir, _Dir::open_subdir): Adjust.
3036
30372022-08-03  Jonathan Wakely  <jwakely@redhat.com>
3038
3039          Backported from master:
3040          2022-07-29  Jonathan Wakely  <jwakely@redhat.com>
3041
3042          PR libstdc++/104443
3043          * include/bits/stl_iterator.h (common_iterator::operator->):
3044          Change return type to just auto.
3045
30462022-08-03  Jonathan Wakely  <jwakely@redhat.com>
3047
3048          Backported from master:
3049          2022-07-12  Jonathan Wakely  <jwakely@redhat.com>
3050
3051          PR libstdc++/106248
3052          * include/std/istream [C++17] (operator>>(istream&, char*)):
3053          Set eofbit if we stopped extracting at EOF.
3054          * testsuite/27_io/basic_istream/extractors_character/char/pr106248.cc:
3055          New test.
3056          * testsuite/27_io/basic_istream/extractors_character/wchar_t/pr106248.cc:
3057          New test.
3058
30592022-08-03  Jonathan Wakely  <jwakely@redhat.com>
3060
3061          Backported from master:
3062          2022-07-01  Jonathan Wakely  <jwakely@redhat.com>
3063
3064          * include/bits/fs_ops.h: Add nodiscard to all pure functions.
3065          * include/experimental/bits/fs_ops.h: Likewise.
3066          * testsuite/27_io/filesystem/operations/all.cc: Do not discard
3067          results of absolute and canonical.
3068          * testsuite/27_io/filesystem/operations/absolute.cc: Cast
3069          discarded result to void.
3070          * testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
3071          * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
3072          * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
3073          * testsuite/27_io/filesystem/operations/read_symlink.cc:
3074          Likewise.
3075          * testsuite/27_io/filesystem/operations/status.cc: Likewise.
3076          * testsuite/27_io/filesystem/operations/symlink_status.cc:
3077          Likewise.
3078          * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
3079          Likewise.
3080          * testsuite/experimental/filesystem/operations/canonical.cc:
3081          Likewise.
3082          * testsuite/experimental/filesystem/operations/exists.cc:
3083          Likewise.
3084          * testsuite/experimental/filesystem/operations/is_empty.cc:
3085          Likewise.
3086          * testsuite/experimental/filesystem/operations/read_symlink.cc:
3087          Likewise.
3088          * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
3089          Likewise.
3090
30912022-08-03  Jonathan Wakely  <jwakely@redhat.com>
3092
3093          Backported from master:
3094          2022-06-16  Jonathan Wakely  <jwakely@redhat.com>
3095
3096          PR libstdc++/105995
3097          * include/bits/basic_string.h (_M_use_local_data): Initialize
3098          the entire SSO buffer.
3099          * testsuite/21_strings/basic_string/cons/char/105995.cc: New test.
3100
31012022-08-03  Jonathan Wakely  <jwakely@redhat.com>
3102
3103          Backported from master:
3104          2022-06-14  Jonathan Wakely  <jwakely@redhat.com>
3105
3106          * include/bits/new_allocator.h: Fix indentation.
3107          * include/ext/malloc_allocator.h: Likewise.
3108
31092022-08-03  Jonathan Wakely  <jwakely@redhat.com>
3110
3111          Backported from master:
3112          2022-06-14  Jonathan Wakely  <jwakely@redhat.com>
3113
3114          PR libstdc++/105957
3115          * include/bits/allocator.h (allocator::allocate): Check for
3116          overflow in constexpr allocation.
3117          * testsuite/20_util/allocator/105975.cc: New test.
3118
31192022-08-03  Jonathan Wakely  <jwakely@redhat.com>
3120
3121          Backported from master:
3122          2022-06-10  Jonathan Wakely  <jwakely@redhat.com>
3123
3124          PR libstdc++/105844
3125          * include/experimental/numeric (experimental::gcd): Simplify
3126          assertions. Use __abs_r instead of __absu.
3127          (experimental::lcm): Likewise. Remove use of __detail::__lcm so
3128          overflow can be detected.
3129          * include/std/numeric (__detail::__absu): Rename to __abs_r and
3130          change to allow signed result type, so overflow can be detected.
3131          (__detail::__lcm): Remove.
3132          (gcd): Simplify assertions. Use __abs_r instead of __absu.
3133          (lcm): Likewise. Remove use of __detail::__lcm so overflow can
3134          be detected.
3135          * testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error lines.
3136          * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
3137          * testsuite/26_numerics/gcd/105844.cc: New test.
3138          * testsuite/26_numerics/lcm/105844.cc: New test.
3139
31402022-07-26  Thomas Rodgers  <trodgers@redhat.com>
3141
3142          Backported from master:
3143          2022-07-26  Thomas Rodgers  <trodgers@redhat.com>
3144
3145          * include/bits/atomic_wait.h (__atomic_spin): Merge spin loops.
3146
31472022-07-22  Jonathan Wakely  <jwakely@redhat.com>
3148
3149          Backported from master:
3150          2022-06-28  Jonathan Wakely  <jwakely@redhat.com>
3151
3152          * src/c++17/fs_dir.cc (_Dir::_Dir) [!_GLIBCXX_HAVE_OPENAT]:
3153          Always store pathname if we don't have openat or unlinkat,
3154          because the full path is needed to open sub-directories and
3155          remove entries.
3156
31572022-07-22  Alexandre Oliva  <oliva@adacore.com>
3158
3159          Backported from master:
3160          2022-06-27  Alexandre Oliva  <oliva@adacore.com>
3161
3162          * src/c++17/fs_dir.cc (dir_and_pathname): Use dirfd if
3163          _GLIBCXX_HAVE_OPENAT.
3164
31652022-07-22  Alexandre Oliva  <oliva@adacore.com>
3166
3167          Backported from master:
3168          2022-06-24  Alexandre Oliva  <oliva@adacore.com>
3169
3170          * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for
3171          openat.
3172          * configure, config.h.in: Rebuilt.
3173          * src/filesystem/dir-common.h (openat): Use ::openat if
3174          _GLIBCXX_HAVE_OPENAT.
3175          * src/filesystem/dir.cc (dir_and_pathname): Use dirfd if
3176          _GLIBCXX_HAVE_OPENAT.
3177
31782022-07-22  Jonathan Wakely  <jwakely@redhat.com>
3179
3180          Backported from master:
3181          2022-05-06  Jonathan Wakely  <jwakely@redhat.com>
3182
3183          * include/std/stacktrace: Do not include <cxxabi.h>.
3184          (__cxa_demangle): Declare.
3185
31862022-07-21  Jonathan Wakely  <jwakely@redhat.com>
3187
3188          Backported from master:
3189          2022-07-20  Jonathan Wakely  <jwakely@redhat.com>
3190
3191          PR libstdc++/100823
3192          * include/bits/stl_iterator.h (common_iterator): Define move
3193          constructor and move assignment operator.
3194          (common_iterator::_M_assign): New function implementing
3195          assignment.
3196          (common_iterator::operator=): Use _M_assign.
3197          (common_iterator::_S_valueless): New constant.
3198          * testsuite/24_iterators/common_iterator/100823.cc: New test.
3199
32002022-07-21  Jonathan Wakely  <jwakely@redhat.com>
3201
3202          Backported from master:
3203          2022-07-20  Jonathan Wakely  <jwakely@redhat.com>
3204
3205          * include/bits/stl_iterator.h (common_iterator): Fix incorrect
3206          uses of is_nothrow_assignable_v. Fix inconsistent constraints on
3207          friend declaration. Do not move argument in copy constructor.
3208          * testsuite/24_iterators/common_iterator/1.cc: Check for
3209          noexcept constructibnle/assignable.
3210
32112022-07-21  Nathan Sidwell  <nathan@acm.org>
3212
3213          Backported from master:
3214          2022-05-26  Nathan Sidwell  <nathan@acm.org>
3215
3216          * include/bits/hashtable.h: Include required headers.
3217          * include/bits/hashtable_policy.h: Likewise.
3218          * include/bits/stl_heap.h: Likewise.
3219          * include/bits/stl_iterator_base_funcs.h: Likewise.
3220
32212022-07-21  Jonathan Wakely  <jwakely@redhat.com>
3222
3223          Backported from master:
3224          2022-06-30  Jonathan Wakely  <jwakely@redhat.com>
3225
3226          * include/bits/utility.h: Fix comment typos.
3227
32282022-07-21  Jonathan Wakely  <jwakely@redhat.com>
3229
3230          Backported from master:
3231          2022-06-28  Jonathan Wakely  <jwakely@redhat.com>
3232
3233          * testsuite/20_util/from_chars/4.cc: Only use log2 if C99 math
3234          functions are available.
3235
32362022-07-21  Jonathan Wakely  <jwakely@redhat.com>
3237
3238          Backported from master:
3239          2022-06-23  Jonathan Wakely  <jwakely@redhat.com>
3240
3241          * testsuite/26_numerics/random/random_device/entropy.cc: Use
3242          numeric_limits<unsigned>::digits.
3243
32442022-07-21  Marco Falke  <falke.marco@gmail.com>
3245
3246          Backported from master:
3247          2022-07-19  Marco Falke  <falke.marco@gmail.com>
3248
3249          * include/std/charconv (__from_chars_alnum_to_val): Replace
3250          implicit conversion from int to unsigned char with explicit
3251          cast.
3252
32532022-07-21  Jonathan Wakely  <jwakely@redhat.com>
3254
3255          Backported from master:
3256          2022-06-30  Jonathan Wakely  <jwakely@redhat.com>
3257
3258          PR libstdc++/88881
3259          * src/filesystem/ops.cc (has_trailing_slash): New helper
3260          function.
3261          (fs::status): Strip trailing slashes.
3262          (fs::symlink_status): Likewise.
3263          * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
3264          Clean the environment before each test and use TMP instead of
3265          TMPDIR so the test passes on Windows.
3266
32672022-07-21  Jonathan Wakely  <jwakely@redhat.com>
3268
3269          Backported from master:
3270          2022-06-10  Jonathan Wakely  <jwakely@redhat.com>
3271
3272          PR libstdc++/105880
3273          * libsupc++/eh_globals.cc (eh_globals): Ensure constant init and
3274          prevent destruction during termination.
3275          (__eh_globals_init::_M_init): Replace with static member _S_init.
3276          (__cxxabiv1::__cxa_get_globals_fast): Update.
3277          (__cxxabiv1::__cxa_get_globals): Likewise.
3278
32792022-07-07  Jonathan Wakely  <jwakely@redhat.com>
3280
3281          Backported from master:
3282          2022-07-01  Jonathan Wakely  <jwakely@redhat.com>
3283
3284          PR libstdc++/106162
3285          * include/Makefile.am (largefile-config.h): Add
3286          stamp-${host_alias} prerequisite.
3287          * include/Makefile.in: Regenerate.
3288
32892022-07-07  Jonathan Wakely  <jwakely@redhat.com>
3290
3291          Backported from master:
3292          2022-06-23  Jonathan Wakely  <jwakely@redhat.com>
3293
3294          * testsuite/27_io/filesystem/iterators/error_reporting.cc: Use
3295          rmdir to remove directories.
3296          * testsuite/experimental/filesystem/iterators/error_reporting.cc:
3297          Likewise.
3298
32992022-06-14  Jonathan Wakely  <jwakely@redhat.com>
3300
3301          Backported from master:
3302          2022-06-13  Jonathan Wakely  <jwakely@redhat.com>
3303
3304          * include/std/atomic (__atomic_val_t): Use __type_identity_t
3305          instead of atomic<T>::value_type, as per LWG 3220.
3306          * testsuite/29_atomics/atomic/lwg3220.cc: New test.
3307
33082022-06-14  Mark Mentovai  <mark@mentovai.com>
3309
3310          Backported from master:
3311          2022-06-13  Mark Mentovai  <mark@mentovai.com>
3312
3313          * include/experimental/bits/fs_path.h (__detail::__null_terminated):
3314          Rename to __nul_terminated to avoid colliding with a macro in
3315          Apple's SDK.
3316
33172022-06-08  Jonathan Wakely  <jwakely@redhat.com>
3318
3319          Backported from master:
3320          2022-05-27  Jonathan Wakely  <jwakely@redhat.com>
3321
3322          PR libstdc++/105671
3323          * include/std/sstream (basic_stringbuf::_M_high_mark): Add
3324          always_inline attribute.
3325
33262022-06-08  Jonathan Wakely  <jwakely@redhat.com>
3327
3328          Backported from master:
3329          2022-05-26  Jonathan Wakely  <jwakely@redhat.com>
3330
3331          PR libstdc++/105681
3332          * include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp:
3333          Limit ga_sizes array to values that fit in size_t.
3334          * include/ext/random [__SIZE_WIDTH < 32] (sfmt86243)
3335          (sfmt86243_64, sfmt132049, sfmt132049_64, sfmt216091)
3336          (sfmt216091_64): Do not declare.
3337
33382022-06-08  Jonathan Wakely  <jwakely@redhat.com>
3339
3340          Backported from master:
3341          2022-05-19  Jonathan Wakely  <jwakely@redhat.com>
3342
3343          * include/bits/basic_string.h: Do not include <ext/atomicity.h>
3344          here.
3345          * include/bits/cow_string.h: Include it here.
3346
33472022-05-27  Jonathan Wakely  <jwakely@redhat.com>
3348
3349          Backported from master:
3350          2022-05-26  Jonathan Wakely  <jwakely@redhat.com>
3351
3352          * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Make
3353          lookup for ios_errc and future_errc check versioned namespace.
3354          (StdAtomicPrinter): Strip versioned namespace from typename.
3355
33562022-05-27  François Dumont  <fdumont@gcc.gnu.org>
3357
3358          Backported from master:
3359          2022-05-26  François Dumont  <fdumont@gcc.gnu.org>
3360
3361          * python/libstdcxx/v6/printers.py (StdSpanPrinter.__init__):
3362          Strip typename from version namespace.
3363
33642022-05-27  Jonathan Wakely  <jwakely@redhat.com>
3365
3366          Backported from master:
3367          2022-05-26  Jonathan Wakely  <jwakely@redhat.com>
3368
3369          * python/libstdcxx/v6/printers.py (SharedPointerPrinter): Strip
3370          versioned namespace from the template argument too.
3371
33722022-05-27  Jonathan Wakely  <jwakely@redhat.com>
3373
3374          Backported from master:
3375          2022-05-26  Jonathan Wakely  <jwakely@redhat.com>
3376
3377          * include/bits/stl_iterator.h (counted_iterator::operator++(int)):
3378          Add 'constexpr' as per LWG 3643.
3379          * testsuite/24_iterators/counted_iterator/lwg3643.cc: New test.
3380
33812022-05-27  Jonathan Wakely  <jwakely@redhat.com>
3382
3383          Backported from master:
3384          2022-05-19  Jonathan Wakely  <jwakely@redhat.com>
3385
3386          * include/std/memory_resource (polymorphic_allocator): Add
3387          non-template equality operator, as proposed for LWG 3683.
3388          * testsuite/20_util/polymorphic_allocator/lwg3683.cc: New test.
3389
33902022-05-27  Jonathan Wakely  <jwakely@redhat.com>
3391
3392          Backported from master:
3393          2022-05-20  Jonathan Wakely  <jwakely@redhat.com>
3394
3395          * testsuite/26_numerics/random/bernoulli_distribution/operators/values.cc:
3396          Run fewer iterations for simulator targets.
3397          * testsuite/26_numerics/random/binomial_distribution/operators/values.cc:
3398          Likewise.
3399          * testsuite/26_numerics/random/discrete_distribution/operators/values.cc:
3400          Likewise.
3401          * testsuite/26_numerics/random/geometric_distribution/operators/values.cc:
3402          Likewise.
3403          * testsuite/26_numerics/random/negative_binomial_distribution/operators/values.cc:
3404          Likewise.
3405          * testsuite/26_numerics/random/poisson_distribution/operators/values.cc:
3406          Likewise.
3407          * testsuite/26_numerics/random/uniform_int_distribution/operators/values.cc:
3408          Likewise.
3409
34102022-05-27  Jonathan Wakely  <jwakely@redhat.com>
3411
3412          Backported from master:
3413          2022-05-17  Jonathan Wakely  <jwakely@redhat.com>
3414
3415          * testsuite/20_util/expected/synopsis.cc: Skip for versioned
3416          namespace.
3417          * testsuite/27_io/headers/iosfwd/synopsis.cc: Likewise.
3418
34192022-05-27  Jonathan Wakely  <jwakely@redhat.com>
3420
3421          Backported from master:
3422          2022-05-13  Jonathan Wakely  <jwakely@redhat.com>
3423
3424          * include/bits/mofunc_impl.h: Fix doxygen command.
3425
34262022-05-27  Jonathan Wakely  <jwakely@redhat.com>
3427
3428          Backported from master:
3429          2022-05-13  Jonathan Wakely  <jwakely@redhat.com>
3430
3431          * include/std/future (launch): Make operators noexcept.
3432
34332022-05-16  Jonathan Wakely  <jwakely@redhat.com>
3434
3435          Backported from master:
3436          2022-05-16  Jonathan Wakely  <jwakely@redhat.com>
3437
3438          * doc/xml/manual/prerequisites.xml: Fix attributes for external
3439          hyperlink.
3440          * doc/html/manual/setup.html: Regenerate.
3441
34422022-05-16  Jonathan Wakely  <jwakely@redhat.com>
3443
3444          Backported from master:
3445          2022-05-16  Jonathan Wakely  <jwakely@redhat.com>
3446
3447          * doc/xml/manual/status_cxx2023.xml: Update with gcc-12 support.
3448          * doc/html/*: Regenerate.
3449
34502022-05-16  Jonathan Wakely  <jwakely@redhat.com>
3451
3452          Backported from master:
3453          2022-05-16  Jonathan Wakely  <jwakely@redhat.com>
3454
3455          * doc/xml/manual/intro.xml: Include new chapter.
3456          * doc/xml/manual/status_cxx2020.xml: Tweak release numbers.
3457          * doc/xml/manual/status_cxx2023.xml: New file.
3458          * doc/html/*: Regenerate.
3459
34602022-05-16  Jonathan Wakely  <jwakely@redhat.com>
3461
3462          Backported from master:
3463          2022-05-16  Jonathan Wakely  <jwakely@redhat.com>
3464
3465          * doc/html/manual/status.html: Regenerate.
3466          * doc/xml/manual/status_cxx2020.xml: Fix supported version for
3467          C++20 bit operations.
3468
34692022-05-13  Alexandre Oliva  <oliva@adacore.com>
3470
3471          Backported from master:
3472          2022-05-06  Alexandre Oliva  <oliva@adacore.com>
3473
3474          * include/experimental/bits/simd.h [__ALTIVEC__]: Require VSX
3475          for double, long long, and 64-bit long intrinsic types.
3476          [__ALTIVEC__] (__intrinsic_type): Mention 128-bit in
3477          preexisting long double diagnostic, adjust no-VSX double
3478          diagnostic to cover 64-bit long double as well.
3479
34802022-05-10  Jonathan Wakely  <jwakely@redhat.com>
3481
3482          Backported from master:
3483          2022-05-10  Jonathan Wakely  <jwakely@redhat.com>
3484
3485          PR libstdc++/105284
3486          * include/std/iosfwd: Add declarations for <spanstream> class
3487          templates and typedefs.
3488          * include/std/spanstream (basic_spanbuf, basic_ispanstream)
3489          (basic_ospanstream, basic_spanstream): Remove default template
3490          arguments.
3491          * testsuite/27_io/headers/iosfwd/synopsis.cc: Add <spanstream>
3492          declarations.
3493          * testsuite/27_io/headers/iosfwd/types.cc: Check <spanstream>
3494          default arguments.
3495
34962022-05-10  Jonathan Wakely  <jwakely@redhat.com>
3497
3498          Backported from master:
3499          2022-05-10  Jonathan Wakely  <jwakely@redhat.com>
3500
3501          PR libstdc++/105284
3502          * include/std/iosfwd: Add declarations for <synstream> class
3503          templates and typedefs.
3504          * include/std/syncstream (basic_syncbuf, basic_osyncstream):
3505          Remove default template arguments.
3506          * testsuite/27_io/headers/iosfwd/synopsis.cc: New test.
3507          * testsuite/27_io/headers/iosfwd/types.cc: New test.
3508
35092022-05-09  Jonathan Wakely  <jwakely@redhat.com>
3510
3511          Backported from master:
3512          2022-05-06  Jonathan Wakely  <jwakely@redhat.com>
3513
3514          PR libstdc++/104731
3515          * testsuite/27_io/filesystem/iterators/error_reporting.cc:
3516          Use a trailing char array as storage for dirent::d_name.
3517
35182022-05-06  Jonathan Wakely  <jwakely@redhat.com>
3519
3520          Backported from master:
3521          2022-05-06  Jonathan Wakely  <jwakely@redhat.com>
3522
3523          PR libstdc++/105502
3524          * include/bits/random.tcc
3525          (operator>>(basic_istream<C,T>&, normal_distribution<R>&)):
3526          Update state when __state_avail is false.
3527          * testsuite/26_numerics/random/normal_distribution/operators/serialize.cc:
3528          Check that deserialized object equals serialized one.
3529
35302022-05-06  Patrick Palka  <ppalka@redhat.com>
3531
3532          Backported from master:
3533          2022-05-02  Patrick Palka  <ppalka@redhat.com>
3534
3535          PR libstdc++/103911
3536          * src/c++17/floating_from_chars.cc (find_end_of_float): Accept
3537          two delimeters for the exponent part in the form of a possibly
3538          NULL string of length two.  Don't use std::tolower.
3539          (pattern): Adjust calls to find_end_of_float accordingly.
3540
35412022-05-06  Alexandre Oliva  <oliva@adacore.com>
3542
3543          Backported from master:
3544          2022-05-03  Alexandre Oliva  <oliva@adacore.com>
3545
3546          PR c++/105324
3547          * testsuite/20_util/from_chars/pr105324.cc: Guard test body
3548          with conditional for floating-point overloads of from_char.
3549
35502022-05-06  Release Manager
3551
3552          * GCC 12.1.0 released.
3553
35542022-05-02  Patrick Palka  <ppalka@redhat.com>
3555
3556          Backported from master:
3557          2022-05-02  Patrick Palka  <ppalka@redhat.com>
3558
3559          PR libstdc++/105441
3560          * src/c++17/floating_from_chars.cc (__floating_from_chars_hex):
3561          Also accept 'P' as the start of the exponent.
3562          * testsuite/20_util/from_chars/7.cc: Add corresponding testcase.
3563
35642022-04-29  Jonathan Wakely  <jwakely@redhat.com>
3565
3566          Backported from master:
3567          2022-04-29  Jonathan Wakely  <jwakely@redhat.com>
3568
3569          PR libstdc++/105417
3570          * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
3571          Regenerate.
3572          * src/c++11/compatibility-ldbl-alt128.cc [_GLIBCXX_USE_DUAL_ABI]:
3573          Define __gnu_ieee128::num_get<C>::_M_extract_int[abi:cxx11]<I>
3574          symbols as aliases for corresponding symbols without abi-tag.
3575
35762022-04-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3577
3578          * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
3579          * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
3580          Likewise.
3581          * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
3582          * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
3583          Likewise.
3584
35852022-04-28  Jonathan Wakely  <jwakely@redhat.com>
3586
3587          * doc/xml/manual/status_cxx1998.xml: Refer to GCC 12 not
3588          mainline.
3589          * doc/xml/manual/status_cxx2011.xml: Likewise.
3590          * doc/xml/manual/status_cxx2014.xml: Likewise.
3591          * doc/xml/manual/status_cxx2017.xml: Likewise.
3592          * doc/xml/manual/status_cxx2020.xml: Likewise.
3593          * doc/xml/manual/status_cxxtr1.xml: Likewise.
3594          * doc/xml/manual/status_cxxtr24733.xml: Likewise.
3595          * doc/html/manual/status.html: Regenerate.
3596
35972022-04-28  Jonathan Wakely  <jwakely@redhat.com>
3598
3599          PR libstdc++/99290
3600          * src/c++17/fs_ops.cc (fs::copy): Pass error_code to
3601          directory_iterator constructor, and check on each iteration.
3602          * src/filesystem/ops.cc (fs::copy): Likewise.
3603          * testsuite/27_io/filesystem/operations/copy.cc: Check for
3604          errors during recursion.
3605          * testsuite/experimental/filesystem/operations/copy.cc:
3606          Likewise.
3607
36082022-04-28  François Dumont  <fdumont@gcc.gnu.org>
3609
3610          * config/abi/pre/gnu-versioned-namespace.ver: Remove
3611          std::random_device::* pattern.
3612
36132022-04-27  Jakub Jelinek  <jakub@redhat.com>
3614
3615          * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
3616          * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
3617          * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
3618          * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
3619          * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
3620          * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
3621          * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
3622          * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
3623
36242022-04-27  Jonathan Wakely  <jwakely@redhat.com>
3625
3626          * python/libstdcxx/v6/printers.py (SharedPointerPrinter): Add
3627          support for atomic<shared_ptr<T>> and atomic<weak_ptr<T>>.
3628          (StdAtomicPrinter): New printer.
3629          (build_libstdcxx_dictionary): Register new printer.
3630          * testsuite/libstdc++-prettyprinters/cxx11.cc: Test std::atomic.
3631          * testsuite/libstdc++-prettyprinters/cxx20.cc: Test atomic smart
3632          pointers.
3633
36342022-04-26  Jonathan Wakely  <jwakely@redhat.com>
3635
3636          * include/bits/shared_ptr_atomic.h (atomic<shared_ptr>): Add
3637          constructor for constant initialization from nullptr_t.
3638          * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
3639          Check for new constructor.
3640
36412022-04-26  Jonathan Wakely  <jwakely@redhat.com>
3642
3643          * include/bits/fs_path.h (hash<filesystem::path>): Define.
3644          * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
3645          Check std::hash specialization.
3646
36472022-04-25  Jonathan Wakely  <jwakely@redhat.com>
3648
3649          * include/bits/ptr_traits.h (__cpp_lib_constexpr_memory): Define
3650          conditionally.
3651          * include/bits/unique_ptr.h (__cpp_lib_constexpr_memory):
3652          Define for C++23.
3653          (default_delete, default_delete<T[]>, __uniq_ptr_impl)
3654          (unique_ptr, unique_ptr<T[], D>): Add constexpr to all member
3655          functions.
3656          * include/std/version (__cpp_lib_constexpr_memory): Define new
3657          value for C++23.
3658          * testsuite/20_util/unique_ptr/assign/constexpr.cc: New test.
3659          * testsuite/20_util/unique_ptr/comparison/constexpr.cc: New test.
3660          * testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc: New test.
3661          * testsuite/20_util/unique_ptr/creation/constexpr.cc: New test.
3662          * testsuite/20_util/unique_ptr/modifiers/constexpr.cc: New test.
3663          * testsuite/20_util/unique_ptr/specialized_algorithms/constexpr.cc:
3664          New test.
3665
36662022-04-25  Jonathan Wakely  <jwakely@redhat.com>
3667
3668          PR libstdc++/105375
3669          * include/std/future (packaged_task): Add deduction guides.
3670          * testsuite/30_threads/packaged_task/cons/deduction.cc: New test.
3671
36722022-04-25  Philipp Fent  <fent@in.tum.de>
3673
3674          * python/libstdcxx/v6/printers.py (StdSpanPrinter._iterator):
3675          Rename as iterator.
3676          (StdInitializerListPrinter): Define new printer.
3677          (build_libstdcxx_dictionary): Register new printer.
3678          * testsuite/libstdc++-prettyprinters/cxx11.cc: Check printer for
3679          initializer_list.
3680
36812022-04-22  Thomas W Rodgers  <trodgers@redhat.com>
3682
3683          PR libstdc++/102994
3684          * include/bits/atomic_base.h (atomic_flag::notify_one,
3685          notify_all): Remove const qualification.
3686          (__atomic_base::notify_one, notify_all): Likewise.
3687          * include/std/atomic (atomic<bool>::notify_one, notify_all):
3688          Likewise.
3689          (atomic::notify_one, notify_all): Likewise.
3690          (atomic<T*>::notify_one, notify_all): Likewise.
3691          (atomic_notify_one, atomic_notify_all): Likewise.
3692          * testsuite/29_atomics/atomic/wait_notify/102994.cc: Adjust test
3693          to account for change in notify_one/notify_all signature.
3694
36952022-04-21  Patrick Palka  <ppalka@redhat.com>
3696
3697          * include/std/charconv (__from_chars_alnum_to_val_table):
3698          Simplify initialization of __lower/__upper_letters.
3699          (__from_chars_alnum_to_val): Default the template parameter to
3700          false.
3701          * src/c++17/floating_from_chars.cc (starts_with_ci): Don't
3702          assume the uppercase and lowercase letters are contiguous.
3703          (__floating_from_chars_hex): Likewise.
3704
37052022-04-21  Patrick Palka  <ppalka@redhat.com>
3706
3707          PR c++/105297
3708          PR c++/105322
3709          * include/std/charconv (__from_chars_alnum_to_val): Make
3710          initializer for __table dependent in an artificial way.
3711
37122022-04-21  Jonathan Wakely  <jwakely@redhat.com>
3713
3714          PR libstdc++/105324
3715          * src/c++17/floating_from_chars.cc (buffer_resource::do_allocate):
3716          Remove assertion.
3717          * testsuite/20_util/from_chars/pr105324.cc: New test.
3718
37192022-04-20  Jonathan Wakely  <jwakely@redhat.com>
3720
3721          * testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc:
3722          Check correct feature test macro.
3723
37242022-04-20  Jonathan Wakely  <jwakely@redhat.com>
3725
3726          PR libstdc++/93602
3727          * doc/xml/manual/prerequisites.xml: Document libiconv
3728          workarounds.
3729          * doc/html/manual/setup.html: Regenerate.
3730          * src/Makefile.am (CXXLINK): Add $(LTLIBICONV).
3731          * src/Makefile.in: Regenerate.
3732
37332022-04-19  Patrick Palka  <ppalka@redhat.com>
3734
3735          * src/c++17/floating_to_chars.cc (_GLIBCXX_ASSERTIONS): Don't
3736          define.
3737          (__floating_to_chars_shortest): Add __builtin_unreachable calls to
3738          squelch false-positive -Wmaybe-uninitialized and -Wreturn-type
3739          warnings.
3740          (__floating_to_chars_precision): Likewise.
3741
37422022-04-19  Philipp Fent  <fent@in.tum.de>
3743
3744          * python/libstdcxx/v6/printers.py (StdSpanPrinter): Define.
3745          * testsuite/libstdc++-prettyprinters/cxx20.cc: Test it.
3746
37472022-04-19  Jonathan Wakely  <jwakely@redhat.com>
3748
3749          * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Fix shell operators.
3750          * configure: Regenerate.
3751
37522022-04-18  Patrick Palka  <ppalka@redhat.com>
3753
3754          * include/std/charconv (__from_chars_pow2_base): Manually
3755          unroll the first iteration of the main loop and simplify
3756          accordingly.
3757
37582022-04-15  Patrick Palka  <ppalka@redhat.com>
3759
3760          PR libstdc++/104858
3761          * include/bits/ranges_algo.h (__minmax_fn): Avoid dereferencing
3762          __first twice at the start.
3763          * testsuite/25_algorithms/minmax/constrained.cc (test06): New test.
3764
37652022-04-15  Patrick Palka  <ppalka@redhat.com>
3766
3767          * include/std/charconv (__from_chars_alnum_to_val_table): Define.
3768          (__from_chars_alnum_to_val): Define.
3769          (__from_chars_binary): Rename to ...
3770          (__from_chars_pow2_base): ... this.  Generalize to handle any
3771          power-of-two base using __from_chars_alnum_to_val.
3772          (__from_chars_digit): Optimize digit recognition to a single
3773          test instead of two tests.  Use [[__unlikely___]] attribute.
3774          (__from_chars_alpha_to_num): Remove.
3775          (__from_chars_alnum): Use __from_chars_alnum_to_val.  Use a
3776          nested loop for the overflow case.  Maintain a lower bound
3777          on the number of available bits in the result and use it to
3778          omit the overflow check.
3779          (from_chars): Adjust appropriately.
3780          * src/c++17/floating_from_chars.cc (ascii_to_hexit): Remove.
3781          (__floating_from_chars_hex): Use __from_chars_alnum_to_val
3782          to recognize a hex digit instead.
3783
37842022-04-14  Palmer Dabbelt  <palmer@rivosinc.com>
3785
3786          * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Force auto to mutex
3787          for RISC-V.
3788          * configure: Regenerate.
3789
37902022-04-14  Jonathan Wakely  <jwakely@redhat.com>
3791
3792          * doc/xml/manual/intro.xml: Fix comment.
3793
37942022-04-14  Jonathan Wakely  <jwakely@redhat.com>
3795
3796          * include/precompiled/stdc++.h: Include <stacktrace> and
3797          <stdatomic.h> for C++23.
3798
37992022-04-14  Jonathan Wakely  <jwakely@redhat.com>
3800
3801          PR libstdc++/105269
3802          * include/bits/stl_vector.h (__cpp_lib_constexpr_vector):
3803          Define.
3804          * include/c_compatibility/stdatomic.h (__cpp_lib_stdatomic_h):
3805          Define.
3806          * include/std/optional (__cpp_lib_optional): Define new value
3807          for C++23.
3808          (__cpp_lib_monadic_optional): Remove.
3809          * include/std/version (__cpp_lib_constexpr_vector): Define.
3810          (__cpp_lib_stdatomic_h): Define.
3811          (__cpp_lib_optional): Define new value for C++23.
3812          (__cpp_lib_monadic_optional): Remove.
3813          * testsuite/20_util/optional/monadic/and_then.cc: Adjust.
3814          * testsuite/20_util/optional/requirements.cc: Adjust for C++23.
3815          * testsuite/20_util/optional/version.cc: Likewise.
3816          * testsuite/23_containers/vector/cons/constexpr.cc: Check
3817          feature test macro.
3818          * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
3819          Likewise.
3820          * testsuite/20_util/optional/monadic/version.cc: Removed.
3821          * testsuite/23_containers/vector/requirements/version.cc: New test.
3822          * testsuite/29_atomics/headers/stdatomic.h/version.cc: New test.
3823
38242022-04-12  Jonathan Wakely  <jwakely@redhat.com>
3825
3826          * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Check for mmap.
3827          * config.h.in: Regenerate.
3828          * configure: Regenerate.
3829
38302022-04-12  Jonathan Wakely  <jwakely@redhat.com>
3831
3832          * include/std/stacktrace (basic_stacktrace::current): Reallocate
3833          a smaller container if the unused capacity is larger than the
3834          used size.
3835
38362022-04-12  Jonathan Wakely  <jwakely@redhat.com>
3837
3838          * include/std/stacktrace (basic_stacktrace): Use _Impl::_M_clone
3839          or _Impl::_M_assign to initialize elements in allocated storage.
3840          (basic_stacktrace::_M_clear()): Use _Impl::_M_resize instead of
3841          _Impl::_M_destroy.
3842          (basic_stacktrace::_Impl::_M_destroy()): Replace with ...
3843          (basic_stacktrace::_Impl::_M_resize(size_type, allocator&)): New
3844          function.
3845          (basic_stacktrace::_Impl::_M_push_back): Use _M_xclone. Construct
3846          new element using allocator.
3847          (basic_stacktrace::_Impl::_M_clone): New function.
3848          (basic_stacktrace::_Impl::_M_xclone): New function.
3849          (basic_stacktrace::_Impl::_M_assign): New function.
3850
38512022-04-12  Jonathan Wakely  <jwakely@redhat.com>
3852
3853          * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
3854          Use nothrow new instead of try block for std::allocator.
3855          (basic_stacktrace::_Impl::_M_deallocate): Use delete for
3856          std::allocator.
3857
38582022-04-12  Jonathan Wakely  <jwakely@redhat.com>
3859
3860          * include/std/stacktrace (basic_stacktrace::current): Replace
3861          calls to _M_reserve and _S_curr_cb with call to _M_prepare.
3862          Check return value of backtrace_simple when max depth given.
3863          (basic_stacktrace::_M_reserve): Remove.
3864          (basic_stacktrace::_S_curr_cb): Remove.
3865          (basic_stacktrace::_M_prepare(size_type)): New function to
3866          reserve initial capacity and return callback.
3867          (basic_stacktrace::_Impl::_M_allocate): Remove check for 0 < n
3868          and remove redundant zeroing of _M_frames and _M_capacity.
3869          (basic_stacktrace::_Impl::_M_push_back): Add [[unlikely]]
3870          attribute. Assign _Impl instead of swapping.
3871          * testsuite/19_diagnostics/stacktrace/current.cc: New test.
3872
38732022-04-11  Jonathan Wakely  <jwakely@redhat.com>
3874
3875          * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
3876          Change [[unlikely]] attribute to [[likely]].
3877
38782022-04-11  Jonathan Wakely  <jwakely@redhat.com>
3879
3880          PR libstdc++/105031
3881          * include/std/stacktrace (basic_stacktrace::basic_stacktrace):
3882          Fix allocator usage in constructors.
3883          (basic_stacktrace::operator=(const basic_stacktrace&)): Do not
3884          try to reallocate using const allocator.
3885          (basic_stacktrace::operator=(basic_stacktrace&&)): Fix
3886          if-constexpr with non-constant condition. Do not allocate new
3887          storage if allocator propagates. Do not set _M_size if
3888          allocation fails.
3889          (basic_stacktrace::swap(basic_stacktrace&)): Fix typo. Add
3890          assertion that non-propagating allocators are equal.
3891          * testsuite/19_diagnostics/stacktrace/stacktrace.cc: New test.
3892
38932022-04-11  Jonathan Wakely  <jwakely@redhat.com>
3894
3895          * include/std/stacktrace (basic_stacktrace::current): Duplicate
3896          implementation into each overload. Add noinline attribute and
3897          skip current frame.
3898          (basic_stacktrace::max_size()): Call _Impl::_S_max_size.
3899          (basic_stacktrace::_S_curr_cb()): New function defining lambda.
3900          (basic_stacktrace::_Impl::_S_max_size): New function defining
3901          maximum size in terms of allocator and size_type.
3902          (basic_stacktrace::_Impl::_M_allocate): Check against
3903          max_size().
3904          * testsuite/19_diagnostics/stacktrace/entry.cc: Call function
3905          for non-constexpr checks. Check line number is correct.
3906
39072022-04-11  Jonathan Wakely  <jwakely@redhat.com>
3908
3909          * testsuite/20_util/stacktrace/entry.cc: Moved to...
3910          * testsuite/19_diagnostics/stacktrace/entry.cc: ...here.
3911          * testsuite/20_util/stacktrace/synopsis.cc: Moved to...
3912          * testsuite/19_diagnostics/stacktrace/synopsis.cc: ...here.
3913          * testsuite/20_util/stacktrace/version.cc: Moved to...
3914          * testsuite/19_diagnostics/stacktrace/version.cc: ...here.
3915
39162022-04-11  Jonathan Wakely  <jwakely@redhat.com>
3917
3918          * include/experimental/bits/fs_path.h (path): Define special
3919          members after path::_Cmpt is complete.
3920
39212022-04-08  Jonathan Wakely  <jwakely@redhat.com>
3922
3923          PR libstdc++/105153
3924          * include/std/expected
3925          (expected<void,E>::expected(expected<U,G>&&)): Fix constraints.
3926          * testsuite/20_util/expected/cons.cc: Check constructor.
3927
39282022-04-08  Jonathan Wakely  <jwakely@redhat.com>
3929
3930          PR libstdc++/105154
3931          * include/std/expected (expected<void, E>::swap): Set
3932          _M_has_value to false for objects that previously had a value.
3933          * testsuite/20_util/expected/swap.cc: Fix test to check void
3934          specialization.
3935
39362022-04-08  Jonathan Wakely  <jwakely@redhat.com>
3937
3938          PR libstdc++/105146
3939          * include/std/expected (bad_expected_access): Move constructor
3940          parameter.
3941          * testsuite/20_util/expected/bad.cc: New test.
3942
39432022-04-07  Hans-Peter Nilsson  <hp@axis.com>
3944
3945          * testsuite/20_util/expected/requirements.cc: Correct minimal-size
3946          test.
3947
39482022-04-02  Jakub Jelinek  <jakub@redhat.com>
3949
3950          PR libstdc++/105128
3951          * include/std/source_location (std::source_location::__impl): Move
3952          definition before using __builtin_ret_type.
3953
39542022-04-01  Jonathan Wakely  <jwakely@redhat.com>
3955
3956          * include/std/utility (unreachable): Define for C++23.
3957          * include/std/version (__cpp_lib_unreachable): Define.
3958          * src/c++11/debug.cc (__glibcxx_assert_fail): Check for valid
3959          arguments. Handle only the function being given.
3960          * testsuite/20_util/unreachable/1.cc: New test.
3961          * testsuite/20_util/unreachable/version.cc: New test.
3962
39632022-04-01  Jonathan Wakely  <jwakely@redhat.com>
3964
3965          * include/experimental/bits/fs_fwd.h (copy_file): Remove
3966          incorrect noexcept from declaration.
3967          * include/experimental/bits/fs_path.h (path::begin, path::end):
3968          Add noexcept to declarations, to match definitions.
3969
39702022-04-01  Timm Bäder  <tbaeder@redhat.com>
3971
3972          * include/bits/fs_ops.h: Fix filename in Doxygen comment.
3973          * include/experimental/bits/fs_ops.h: Likewise.
3974
39752022-03-31  Jonathan Wakely  <jwakely@redhat.com>
3976
3977          * libsupc++/new_opa.cc (aligned_alloc): Add comment.
3978
39792022-03-29  Jonathan Wakely  <jwakely@redhat.com>
3980
3981          * testsuite/18_support/exception/38732.cc: Disable for C++23.
3982          * testsuite/18_support/headers/exception/synopsis.cc: Likewise.
3983          * testsuite/18_support/unexpected_handler.cc: Likewise.
3984
39852022-03-29  Jonathan Wakely  <jwakely@redhat.com>
3986
3987          * libsupc++/compare (_Strong_order) [!__cpp_using_enum]: Add
3988          static data members for _Fp_fmt enumerators.
3989
39902022-03-29  Jonathan Wakely  <jwakely@redhat.com>
3991
3992          * include/std/version (__cpp_lib_variant): Fix conditions to
3993          match <variant>.
3994          (__cpp_lib_expected): Fix condition to match <expected>.
3995
39962022-03-28  Jonathan Wakely  <jwakely@redhat.com>
3997
3998          * testsuite/20_util/optional/monadic/and_then.cc: Fix typo.
3999          * testsuite/20_util/optional/monadic/transform.cc: Likewise.
4000          * testsuite/22_locale/codecvt/always_noconv/char/1.cc: Likewise.
4001          * testsuite/22_locale/codecvt/encoding/char/1.cc: Likewise.
4002          * testsuite/22_locale/codecvt/in/char/1.cc: Likewise.
4003          * testsuite/22_locale/codecvt/max_length/char/1.cc: Likewise.
4004          * testsuite/22_locale/codecvt/out/char/1.cc: Likewise.
4005          * testsuite/22_locale/codecvt/unshift/char/1.cc: Likewise.
4006
40072022-03-27  Jonathan Wakely  <jwakely@redhat.com>
4008
4009          * doc/doxygen/user.cfg.in: Add new header.
4010          * include/Makefile.am: Likewise.
4011          * include/Makefile.in: Regenerate.
4012          * include/precompiled/stdc++.h: Add new header.
4013          * include/std/version (__cpp_lib_expected): Define.
4014          * libsupc++/exception [__cplusplus > 202002] (unexpected)
4015          (unexpected_handler, set_unexpected): Do not declare for C++23.
4016          * include/std/expected: New file.
4017          * testsuite/20_util/expected/assign.cc: New test.
4018          * testsuite/20_util/expected/cons.cc: New test.
4019          * testsuite/20_util/expected/illformed_neg.cc: New test.
4020          * testsuite/20_util/expected/observers.cc: New test.
4021          * testsuite/20_util/expected/requirements.cc: New test.
4022          * testsuite/20_util/expected/swap.cc: New test.
4023          * testsuite/20_util/expected/synopsis.cc: New test.
4024          * testsuite/20_util/expected/unexpected.cc: New test.
4025          * testsuite/20_util/expected/version.cc: New test.
4026
40272022-03-25  Jonathan Wakely  <jwakely@redhat.com>
4028
4029          * include/std/bit (bit_cast, byteswap, endian): Add doxygen
4030          comments.
4031
40322022-03-23  Jonathan Wakely  <jwakely@redhat.com>
4033
4034          PR libstdc++/105027
4035          * include/std/bit (bit_cast): Add constraints.
4036          * testsuite/26_numerics/bit/bit.cast/105027.cc: New test.
4037
40382022-03-23  Jonathan Wakely  <jwakely@redhat.com>
4039
4040          * include/std/version [!_GLIBCXX_HOSTED]
4041          (__cpp_lib_hardware_interference_size): Define for freestanding.
4042          (__cpp_lib_bit_cast): Likewise.
4043          (__cpp_lib_is_layout_compatible): Likewise.
4044          (__cpp_lib_is_pointer_interconvertible): Likewise.
4045          (__cpp_lib_adaptor_iterator_pair_constructor): Do not define for
4046          freestanding.
4047          (__cpp_lib_invoke_r): Likewise.
4048          (__cpp_lib_ios_noreplace): Likewise.
4049          (__cpp_lib_monadic_optional): Likewise.
4050          (__cpp_lib_move_only_function): Likewise.
4051          (__cpp_lib_spanstream): Likewise.
4052          (__cpp_lib_stacktrace): Likewise.
4053          (__cpp_lib_string_contains): Likewise.
4054          (__cpp_lib_string_resize_and_overwrite): Likewise.
4055          (__cpp_lib_to_underlying): Likewise.
4056
40572022-03-23  Jonathan Wakely  <jwakely@redhat.com>
4058
4059          PR libstdc++/105021
4060          * include/bits/atomic_base.h [!_GLIBCXX_HOSTED]: Do not include
4061          <bits/atomic_wait.h> for freestanding.
4062
40632022-03-22  Hans-Peter Nilsson  <hp@axis.com>
4064
4065          * testsuite/20_util/from_chars/6.cc (test01) [FE_DOWNWARD]:
4066          Conditionalize call to fesetround.
4067
40682022-03-21  Jakub Jelinek  <jakub@redhat.com>
4069
4070          PR libstdc++/104990
4071          * include/bits/locale_facets_nonio.tcc (get): Don't check if do_get
4072          isn't overloaded if __clang__ is defined.
4073
40742022-03-18  Jonathan Wakely  <jwakely@redhat.com>
4075
4076          PR libstdc++/104242
4077          * include/std/any (any(T&&)): Revert change to constraints.
4078          * testsuite/20_util/any/cons/104242.cc: New test.
4079
40802022-03-18  Jonathan Wakely  <jwakely@redhat.com>
4081
4082          PR libstdc++/92546
4083          * include/pstl/glue_algorithm_defs.h: Replace <functional> with
4084          <bits/stl_pair.h>.
4085          * include/pstl/utils.h: Replace <iterator> with <type_traits>.
4086          (__pstl::__internal::__except_handler): Use std::__terminate
4087          instead of std::terminate.
4088          * src/c++17/fs_path.cc: Include <array>.
4089          * testsuite/25_algorithms/adjacent_find/constexpr.cc: Include
4090          <functional>.
4091          * testsuite/25_algorithms/binary_search/constexpr.cc: Likewise.
4092          * testsuite/25_algorithms/clamp/constrained.cc: Likewise.
4093          * testsuite/25_algorithms/equal/constrained.cc: Likewise.
4094          * testsuite/25_algorithms/for_each/constrained.cc: Likewise.
4095          * testsuite/25_algorithms/includes/constrained.cc: Likewise.
4096          * testsuite/25_algorithms/is_heap/constexpr.cc: Likewise.
4097          * testsuite/25_algorithms/is_heap_until/constexpr.cc: Likewise.
4098          * testsuite/25_algorithms/is_permutation/constrained.cc: Include
4099          <iterator>.
4100          * testsuite/25_algorithms/is_sorted/constexpr.cc: Include
4101          <functional>.
4102          * testsuite/25_algorithms/is_sorted_until/constexpr.cc:
4103          Likewise.
4104          * testsuite/25_algorithms/lexicographical_compare/constexpr.cc:
4105          Likewise.
4106          * testsuite/25_algorithms/lexicographical_compare/constrained.cc:
4107          Likewise.
4108          * testsuite/25_algorithms/lexicographical_compare_three_way/1.cc:
4109          Include <array>.
4110          * testsuite/25_algorithms/lower_bound/constexpr.cc: Include
4111          <functional>.
4112          * testsuite/25_algorithms/max/constrained.cc: Likewise.
4113          * testsuite/25_algorithms/max_element/constrained.cc: Likewise.
4114          * testsuite/25_algorithms/min/constrained.cc: Likewise.
4115          * testsuite/25_algorithms/min_element/constrained.cc: Likewise.
4116          * testsuite/25_algorithms/minmax_element/constrained.cc:
4117          Likewise.
4118          * testsuite/25_algorithms/mismatch/constexpr.cc: Likewise.
4119          * testsuite/25_algorithms/move/93872.cc: Likewise.
4120          * testsuite/25_algorithms/move_backward/93872.cc: Include
4121          <iterator>.
4122          * testsuite/25_algorithms/nth_element/constexpr.cc: Include
4123          <functional>.
4124          * testsuite/25_algorithms/partial_sort/constexpr.cc: Likewise.
4125          * testsuite/25_algorithms/partial_sort_copy/constexpr.cc:
4126          Likewise.
4127          * testsuite/25_algorithms/search/constexpr.cc: Likewise.
4128          * testsuite/25_algorithms/search_n/constrained.cc: Likewise.
4129          * testsuite/25_algorithms/set_difference/constexpr.cc: Likewise.
4130          * testsuite/25_algorithms/set_difference/constrained.cc:
4131          Likewise.
4132          * testsuite/25_algorithms/set_intersection/constexpr.cc:
4133          Likewise.
4134          * testsuite/25_algorithms/set_intersection/constrained.cc:
4135          Likewise.
4136          * testsuite/25_algorithms/set_symmetric_difference/constexpr.cc:
4137          Likewise.
4138          * testsuite/25_algorithms/set_union/constexpr.cc: Likewise.
4139          * testsuite/25_algorithms/set_union/constrained.cc: Likewise.
4140          * testsuite/25_algorithms/sort/constexpr.cc: Likewise.
4141          * testsuite/25_algorithms/sort_heap/constexpr.cc: Likewise.
4142          * testsuite/25_algorithms/transform/constrained.cc: Likewise.
4143          * testsuite/25_algorithms/unique/constexpr.cc: Likewise.
4144          * testsuite/25_algorithms/unique/constrained.cc: Likewise.
4145          * testsuite/25_algorithms/unique_copy/constexpr.cc: Likewise.
4146          * testsuite/25_algorithms/upper_bound/constexpr.cc: Likewise.
4147          * testsuite/std/ranges/adaptors/elements.cc: Include <vector>.
4148          * testsuite/std/ranges/adaptors/lazy_split.cc: Likewise.
4149          * testsuite/std/ranges/adaptors/split.cc: Likewise.
4150
41512022-03-17  Jonathan Wakely  <jwakely@redhat.com>
4152
4153          PR libstdc++/92546
4154          * include/bits/fs_path.h (path::make_preferred): Use
4155          handwritten loop instead of std::replace.
4156
41572022-03-17  Jonathan Wakely  <jwakely@redhat.com>
4158
4159          PR middle-end/104966
4160          * include/bits/locale_facets_nonio.tcc
4161          (__moneypunct_cache::_M_cache): Replace try-catch with RAII and
4162          make all string copies before any stores to *this.
4163
41642022-03-17  Jonathan Wakely  <jwakely@redhat.com>
4165
4166          * testsuite/util/testsuite_character.h: Fix comment.
4167
41682022-03-16  Jonathan Wakely  <jwakely@redhat.com>
4169
4170          PR libstdc++/103407
4171          * config/abi/pre/gnu.ver: Make version for std::from_chars
4172          depend on HAVE_USELOCALE macro.
4173          * testsuite/util/testsuite_abi.cc (compare_symbols): Treat
4174          std::from_chars for floating-point types as undesignated if
4175          not found in the baseline symbols file.
4176
41772022-03-16  Jonathan Wakely  <jwakely@redhat.com>
4178
4179          * include/std/charconv (__cpp_lib_to_chars): Only define when
4180          both from_chars and to_chars are supported for floating-point
4181          types.
4182          (from_chars, to_chars): Adjust preprocessor conditions guarding
4183          declarations.
4184          * include/std/version (__cpp_lib_to_chars): Adjust condition to
4185          match <charconv> definition.
4186          * src/c++17/floating_from_chars.cc (from_chars_strtod): New
4187          function template.
4188          (from_chars): Simplify preprocessor checks and use
4189          from_chars_strtod when appropriate.
4190
41912022-03-14  Jonathan Wakely  <jwakely@redhat.com>
4192
4193          PR libstdc++/104875
4194          * src/c++11/codecvt.cc (read_utf8_code_point): Use char32_t to
4195          hold octets that will be left-shifted.
4196
41972022-03-10  Jonathan Wakely  <jwakely@redhat.com>
4198
4199          PR libstdc++/104870
4200          * src/c++17/floating_from_chars.cc: Check __SIZE_WIDTH__ >= 32
4201          before using fast_float.
4202
42032022-03-10  Detlef Vollmann  <dv@vollmann.ch>
4204
4205          PR libstdc++/104866
4206          * include/bits/this_thread_sleep.h: Fix order of #endif and
4207          closing brace of namespace.
4208
42092022-03-10  Jonathan Wakely  <jwakely@redhat.com>
4210
4211          * libsupc++/compare (_Strong_order::_S_fp_cmp) [__vax__]:
4212          Handle NaN.
4213
42142022-03-10  Jonathan Wakely  <jwakely@redhat.com>
4215
4216          * libsupc++/compare (_Strong_ordering::_S_fp_cmp) [__vax__]: Use
4217          <=> comparison.
4218
42192022-03-09  Patrick Palka  <ppalka@redhat.com>
4220
4221          PR libstdc++/104859
4222          * src/c++17/floating_to_chars.cc (__floating_to_chars_hex):
4223          Be explicit when narrowing the shifted effective_mantissa,
4224          since it may have an integer-class type.
4225
42262022-03-08  Jonathan Wakely  <jwakely@redhat.com>
4227
4228          * include/bits/uses_allocator_args.h: Remove incorrect copyright
4229          notice.
4230
42312022-03-07  Jonathan Wakely  <jwakely@redhat.com>
4232
4233          PR libstdc++/104807
4234          * include/bits/c++config (__terminate, __glibcxx_assert_fail):
4235          Replace _GLIBCXX_VISIBILITY on function with visibility pragma.
4236          (__is_constant_evaluated): Add visibility pragma.
4237
42382022-03-07  Rasmus Villemoes  <rasmus.villemoes@prevas.dk>
4239
4240          * config/locale/vxworks/ctype_members.cc: Remove <iostream>
4241            include.
4242
42432022-03-05  Jonathan Wakely  <jwakely@redhat.com>
4244
4245          * include/bits/c++config (__glibcxx_assert_fail): Add visibility
4246          attribute.
4247          (__terminate): Likewise.
4248
42492022-03-04  Jonathan Wakely  <jwakely@redhat.com>
4250
4251          * libsupc++/compare (strong_order::_S_fp_cmp): Move typedef
4252          inside #if condition.
4253
42542022-03-03  Jonathan Wakely  <jwakely@redhat.com>
4255
4256          PR libstdc++/104748
4257          * testsuite/std/ranges/adaptors/all.cc: Use non-debug vector for
4258          constexpr test.
4259
42602022-03-03  Jonathan Wakely  <jwakely@redhat.com>
4261
4262          * testsuite/17_intro/names.cc (func): Undef on AIX.
4263
42642022-03-03  Jonathan Wakely  <jwakely@redhat.com>
4265
4266          PR libstdc++/96526
4267          * libsupc++/compare (strong_order): Add missing support for
4268          floating-point types.
4269          * testsuite/18_support/comparisons/algorithms/strong_order_floats.cc:
4270          New test.
4271
42722022-03-01  Jonathan Wakely  <jwakely@redhat.com>
4273
4274          PR middle-end/103984
4275          * include/bits/regex_compiler.h (_BracketMatcher::_M_char): Use
4276          default member initializer.
4277
42782022-02-24  Jonathan Wakely  <jwakely@redhat.com>
4279
4280          PR libstdc++/104602
4281          * include/std/source_location (source_location::current): Use
4282          deduced type of __builtin_source_location().
4283
42842022-02-22  Patrick Palka  <ppalka@redhat.com>
4285
4286          * include/bits/ranges_base.h (__detail::__is_initializer_list):
4287          Define.
4288          (viewable_range): Adjust as per P2415R2.
4289          * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
4290          * include/std/ranges (owning_view): Define as per P2415R2.
4291          (enable_borrowed_range<owning_view>): Likewise.
4292          (views::__detail::__can_subrange): Replace with ...
4293          (views::__detail::__can_owning_view): ... this.
4294          (views::_All::_S_noexcept): Sync with operator().
4295          (views::_All::operator()): Use owning_view instead of subrange
4296          as per P2415R2.
4297          * include/std/version (__cpp_lib_ranges): Adjust value.
4298          * testsuite/std/ranges/adaptors/all.cc (test06): Adjust now that
4299          views::all uses owning_view instead of subrange.
4300          (test08): New test.
4301          * testsuite/std/ranges/adaptors/lazy_split.cc (test09): Adjust
4302          now that rvalue non-view non-borrowed ranges are viewable.
4303          * testsuite/std/ranges/adaptors/split.cc (test06): Likewise.
4304
43052022-02-17  Jonathan Wakely  <jwakely@redhat.com>
4306
4307          PR libstdc++/104559
4308          * doc/xml/manual/evolution.xml: Document deprecation.
4309          * doc/html/manual/api.html: Regenerate.
4310          * include/bits/stl_bvector.h (insert(const_iterator, const bool&)):
4311          Remove default argument.
4312          (insert(const_iterator)): New overload with deprecated attribute.
4313          * testsuite/23_containers/vector/bool/modifiers/insert/104559.cc:
4314          New test.
4315
43162022-02-17  Jonathan Wakely  <jwakely@redhat.com>
4317
4318          * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Replace
4319          code that call cat->name() on std::error_category objects.
4320          Identify known categories by symbol name and use a hardcoded
4321          name. Print error code values as enumerators where appopriate.
4322          * testsuite/libstdc++-prettyprinters/cxx11.cc: Adjust expected
4323          name of custom category. Check io_errc and future_errc errors.
4324
43252022-02-15  Jonathan Wakely  <jwakely@redhat.com>
4326
4327          PR libstdc++/104542
4328          * include/bits/uses_allocator_args.h (make_obj_using_allocator)
4329          (uninitialized_construct_using_allocator): Add constexpr.
4330          * testsuite/20_util/uses_allocator/make_obj.cc: Check constexpr.
4331          * testsuite/20_util/uses_allocator/uninitialized_construct.cc: New test.
4332
43332022-02-14  Jonathan Wakely  <jwakely@redhat.com>
4334
4335          PR libstdc++/100912
4336          * config/locale/gnu/c_locale.h (__convert_from_v): Use inline
4337          namespace for IEEE128 long double mode.
4338          * config/os/gnu-linux/ldbl-ieee128-extra.ver: Add new symbol
4339          version and export __gnu_cxx_ieee128::__convert_from_v.
4340          * include/bits/locale_facets_nonio.tcc (money_put::__do_put):
4341          Make __ibm128 overload use snprintf directly
4342          * testsuite/util/testsuite_abi.cc: Add new symbol version.
4343          Remove stable IEEE128/LDBL versions.
4344
43452022-02-14  Jonathan Wakely  <jwakely@redhat.com>
4346
4347          PR libstdc++/103891
4348          * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
4349          Remove.
4350          * include/std/variant: Check feature test macros instead.
4351          * include/std/version: Likewise.
4352
43532022-02-14  Jonathan Wakely  <jwakely@redhat.com>
4354
4355          * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
4356          Fix typo.
4357
43582022-02-14  Jonathan Wakely  <jwakely@redhat.com>
4359
4360          * src/c++17/floating_to_chars.cc (FLOAT128_TO_CHARS): Depend on
4361          LONG_DOUBLE_ALT128_COMPAT instead of USE_FLOAT128.
4362
43632022-02-11  Jonathan Wakely  <jwakely@redhat.com>
4364
4365          * testsuite/20_util/temporary_buffer.cc: Fix dg-warning target
4366          selector.
4367
43682022-02-11  Jonathan Wakely  <jwakely@redhat.com>
4369
4370          * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
4371          Ignore -Walloc-larger-than warning.
4372          * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
4373          Likewise.
4374          * testsuite/29_atomics/atomic/cons/user_pod.cc: Compile with -O1
4375          to avoid linker error for __atomic_is_lock_free.
4376
43772022-02-10  Thomas Rodgers  <rodgert@appliantology.com>
4378
4379          * include/bits/atomic_wait.h (__waiter_base::_S_do_spin,
4380          __waiter_base::_S_do_spin_v): Change memory order from relaxed
4381          to acquire.
4382
43832022-02-10  Jonathan Wakely  <jwakely@redhat.com>
4384
4385          * include/c_compatibility/stdatomic.h (atomic_fetch_xor): Add
4386          using-declaration.
4387          (atomic_fetch_xor_explicit): Likewise.
4388          * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Check
4389          arithmetic and logical operations for atomic_int.
4390
43912022-02-10  Jonathan Wakely  <jwakely@redhat.com>
4392
4393          * src/filesystem/dir-common.h (_GLIBCXX_HAVE_DIRFD): Undefine
4394          when <dirent.h> is not available.
4395          (_GLIBCXX_HAVE_UNLINKAT):  Likewise.
4396
43972022-02-09  Thomas Rodgers  <rodgert@appliantology.com>
4398
4399          PR libstdc++/104442
4400          * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): Move spin
4401           loop inside do loop so that threads failing the wait, reload
4402           _M_ver.
4403
44042022-02-08  Jonathan Wakely  <jwakely@redhat.com>
4405
4406          * src/c++17/fs_dir.cc (_Dir(DIR*, const path&)): Change first
4407          parameter to _Dir_base&&.
4408          * src/filesystem/dir-common.h (_Dir_base(DIR*)): Remove.
4409          * src/filesystem/dir.cc (_Dir(DIR*, const path&)): Change first
4410          parameter to _Dir_base&&.
4411
44122022-02-08  Jonathan Wakely  <jwakely@redhat.com>
4413
4414          * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Add comment about
4415          checking for CAS on correct word size.
4416
44172022-02-08  Jonathan Wakely  <jwakely@redhat.com>
4418
4419          * testsuite/experimental/filesystem/operations/create_directories.cc:
4420          Adjust expected results for Windows.
4421
44222022-02-08  Jonathan Wakely  <jwakely@redhat.com>
4423
4424          PR libstdc++/104161
4425          * src/c++17/fs_dir.cc (fs::recursive_directory_iterator::__erase):
4426          [i_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Refresh entry._M_type member,
4427          instead of checking for errno values indicating a directory.
4428          * src/c++17/fs_ops.cc (fs::remove_all(const path&)): Use similar
4429          logic to non-throwing overload.
4430          (fs::remove_all(const path&, error_code&)): Add comments.
4431          * src/filesystem/ops-common.h: Likewise.
4432
44332022-02-04  Jonathan Wakely  <jwakely@redhat.com>
4434
4435          * src/filesystem/dir-common.h (_Dir_base::openat): Change return
4436          type to use portable posix::DIR alias.
4437
44382022-02-04  Jonathan Wakely  <jwakely@redhat.com>
4439
4440          * include/c_compatibility/stdatomic.h [__clang__]: Use
4441          #include_next <stdatomic.h>.
4442
44432022-02-04  Jonathan Wakely  <jwakely@redhat.com>
4444
4445          * include/experimental/bits/fs_ops.h (fs::copy_file): Remove
4446          noexcept.
4447          (fs::create_directories): Likewise.
4448          (fs::remove_all): Likewise.
4449          * src/filesystem/ops.cc (fs::copy_file): Remove noexcept.
4450          (fs::create_directories): Likewise.
4451          (fs::remove_all): Likewise.
4452
44532022-02-04  Jonathan Wakely  <jwakely@redhat.com>
4454
4455          PR libstdc++/104161
4456          * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for dirfd
4457          and unlinkat.
4458          * config.h.in: Regenerate.
4459          * configure: Regenerate.
4460          * include/bits/fs_dir.h (recursive_directory_iterator): Declare
4461          remove_all overloads as friends.
4462          (recursive_directory_iterator::__erase): Declare new member
4463          function.
4464          * include/bits/fs_fwd.h (remove, remove_all): Declare.
4465          * src/c++17/fs_dir.cc (_Dir): Add filename_only parameter to
4466          constructor. Pass file descriptor argument to base constructor.
4467          (_Dir::dir_and_pathname, _Dir::open_subdir, _Dir::do_unlink)
4468          (_Dir::unlink, _Dir::rmdir): Define new member functions.
4469          (directory_iterator): Pass filename_only argument to _Dir
4470          constructor.
4471          (recursive_directory_iterator::_Dir_stack): Adjust constructor
4472          parameters to take a _Dir rvalue instead of creating one.
4473          (_Dir_stack::orig): Add data member for storing original path.
4474          (_Dir_stack::report_error): Define new member function.
4475          (__directory_iterator_nofollow): Move here from dir-common.h and
4476          fix value to be a power of two.
4477          (__directory_iterator_filename_only): Define new constant.
4478          (recursive_directory_iterator): Construct _Dir object and move
4479          into _M_dirs stack. Pass skip_permission_denied argument to first
4480          advance call.
4481          (recursive_directory_iterator::increment): Use _Dir::open_subdir.
4482          (recursive_directory_iterator::__erase): Define new member
4483          function.
4484          * src/c++17/fs_ops.cc (ErrorReporter, do_remove_all): Remove.
4485          (fs::remove_all): Use new recursive_directory_iterator::__erase
4486          member function.
4487          * src/filesystem/dir-common.h (_Dir_base): Add int parameter to
4488          constructor and use openat to implement nofollow semantics.
4489          (_Dir_base::fdcwd, _Dir_base::set_close_on_exec, _Dir_base::openat):
4490          Define new member functions.
4491          (__directory_iterator_nofollow): Move to fs_dir.cc.
4492          * src/filesystem/dir.cc (_Dir): Pass file descriptor argument to
4493          base constructor.
4494          (_Dir::dir_and_pathname, _Dir::open_subdir): Define new member
4495          functions.
4496          (recursive_directory_iterator::_Dir_stack): Adjust constructor
4497          parameters to take a _Dir rvalue instead of creating one.
4498          (recursive_directory_iterator): Check for new nofollow option.
4499          Construct _Dir object and move into _M_dirs stack. Pass
4500          skip_permission_denied argument to first advance call.
4501          (recursive_directory_iterator::increment): Use _Dir::open_subdir.
4502          * src/filesystem/ops.cc (fs::remove_all): Use C++17 remove_all.
4503
45042022-02-04  Jonathan Wakely  <jwakely@redhat.com>
4505
4506          * include/bits/allocator.h: Qualify std::allocator_traits in
4507          deprecated warnings.
4508          * libsupc++/exception (uncaught_exception): Add suggestion to
4509          deprecated warning.
4510
45112022-02-02  Jonathan Wakely  <jwakely@redhat.com>
4512
4513          * src/c++17/fs_dir.cc (fs::recursive_directory_iterator::pop):
4514          Add [[maybe_unused]] attribute.
4515          * src/filesystem/dir.cc (fs::recursive_directory_iterator::pop):
4516          Likewise.
4517
45182022-02-02  Jonathan Wakely  <jwakely@redhat.com>
4519
4520          * testsuite/23_containers/multiset/operators/cmp_c++20.cc: Use
4521          custom comparison function for multiset.
4522          * testsuite/23_containers/set/operators/cmp_c++20.cc: Use custom
4523          comparison function for set.
4524
45252022-02-02  Jonathan Wakely  <jwakely@redhat.com>
4526
4527          * include/bits/boost_concept_check.h (_OutputIteratorConcept):
4528          Change member function to data member of function pointer type.
4529
45302022-02-02  Martin Sebor  <msebor@redhat.com>
4531
4532          PR libstdc++/101831
4533          * include/std/array (begin): Declare const member function attribute
4534          const.
4535          (end, rbegin, rend, size, max_size, empty, data): Same.
4536          * testsuite/23_containers/array/capacity/empty.cc: Add test cases.
4537          * testsuite/23_containers/array/capacity/max_size.cc: Same.
4538          * testsuite/23_containers/array/capacity/size.cc: Same.
4539          * testsuite/23_containers/array/iterators/begin_end.cc: New test.
4540
45412022-02-02  Jonathan Wakely  <jwakely@redhat.com>
4542
4543          * testsuite/27_io/filesystem/iterators/error_reporting.cc: Use
4544          autoconf macro to check whether d_type is present.
4545          * testsuite/experimental/filesystem/iterators/error_reporting.cc:
4546          Likewise.
4547
45482022-02-01  Jonathan Wakely  <jwakely@redhat.com>
4549
4550          * testsuite/27_io/filesystem/iterators/97731.cc: New test.
4551          * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
4552          Check follow_directory_symlink option.
4553          * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc:
4554          Likewise.
4555
45562022-02-01  Jonathan Wakely  <jwakely@redhat.com>
4557
4558          * src/c++17/fs_dir.cc (recursive_directory_iterator::increment):
4559          Reset state to past-the-end iterator on error.
4560          (fs::recursive_directory_iterator::pop(error_code&)): Likewise.
4561          (fs::recursive_directory_iterator::pop()): Check _M_dirs before
4562          it might get reset.
4563          * src/filesystem/dir.cc (recursive_directory_iterator): Likewise,
4564          for the TS implementation.
4565          * testsuite/27_io/filesystem/iterators/error_reporting.cc: New test.
4566          * testsuite/experimental/filesystem/iterators/error_reporting.cc: New test.
4567
45682022-02-01  Jonathan Wakely  <jwakely@redhat.com>
4569
4570          * include/bits/fs_fwd.h (filesystem::perms): Fix comment.
4571
45722022-02-01  Jonathan Wakely  <jwakely@redhat.com>
4573
4574          PR libstdc++/104301
4575          * acinclude.m4 (GLIBCXX_ENABLE_CSTDIO): Print different messages
4576          for stdio_pure and stdio_posix options.
4577          * configure: Regenerate.
4578
45792022-02-01  Thomas Rodgers  <rodgert@appliantology.com>
4580
4581          * include/bits/atomic_wait.h: Change memory order from
4582          Acquire/Release with relaxed loads to SeqCst+Release for
4583          accesses to the waiter's count.
4584
45852022-01-31  Martin Liska  <mliska@suse.cz>
4586
4587          * acinclude.m4: Detect *_ld_is_mold and use it.
4588          * configure: Regenerate.
4589
45902022-01-30  Hans-Peter Nilsson  <hp@axis.com>
4591
4592          * testsuite/27_io/basic_istream/get/char/lwg3464.cc: Don't run on
4593          simulator targets.
4594          * testsuite/27_io/basic_istream/get/wchar_t/lwg3464.cc: Likewise.
4595
45962022-01-27  Jonathan Wakely  <jwakely@redhat.com>
4597
4598          PR libstdc++/100516
4599          * include/bits/deque.tcc (_M_range_initialize<ForwardIterator>):
4600          Add __builtin_unreachable to loop.
4601          * testsuite/23_containers/deque/100516.cc: New test.
4602
46032022-01-27  Jonathan Wakely  <jwakely@redhat.com>
4604
4605          * include/bits/ranges_base.h (ranges::advance): Avoid signed
4606          overflow. Do nothing if already equal to desired result.
4607          * testsuite/24_iterators/range_operations/advance_overflow.cc:
4608          New test.
4609
46102022-01-27  Martin Liska  <mliska@suse.cz>
4611
4612          PR libstdc++/104259
4613          * acinclude.m4: Fix typo.
4614          * configure: Regenerate.
4615
46162022-01-25  Jonathan Wakely  <jwakely@redhat.com>
4617
4618          PR libstdc++/104019
4619          * include/bits/istream.tcc (basic_istream::sentry): Add braces
4620          around try-block.
4621          * include/bits/shared_ptr_base.h (_Sp_counted_array_base::_M_init):
4622          Add pragmas to disable bogus warnings from PR 61596.
4623
46242022-01-25  Jonathan Wakely  <jwakely@redhat.com>
4625
4626          PR libstdc++/104217
4627          * src/c++17/fs_ops.cc (_GNU_SOURCE): Define.
4628          * src/filesystem/dir.cc (_GNU_SOURCE): Define.
4629          * src/filesystem/ops.cc (_GNU_SOURCE): Define.
4630
46312022-01-25  Jonathan Wakely  <jwakely@redhat.com>
4632
4633          PR libstdc++/104161
4634          * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for
4635          fdopendir.
4636          * config.h.in: Regenerate.
4637          * configure: Regenerate.
4638          * src/c++17/fs_dir.cc (_Dir): Add nofollow flag to constructor
4639          and pass it to base class constructor.
4640          (directory_iterator): Pass nofollow flag to _Dir constructor.
4641          (fs::recursive_directory_iterator::increment): Likewise.
4642          * src/c++17/fs_ops.cc (do_remove_all): Use nofollow option for
4643          directory_iterator constructor. Move error check outside loop.
4644          * src/filesystem/dir-common.h (_Dir_base): Add nofollow flag to
4645          constructor and when it's set use ::open with O_NOFOLLOW and
4646          O_DIRECTORY.
4647          * src/filesystem/dir.cc (_Dir): Add nofollow flag to constructor
4648          and pass it to base class constructor.
4649          (directory_iterator): Pass nofollow flag to _Dir constructor.
4650          (fs::recursive_directory_iterator::increment): Likewise.
4651          * src/filesystem/ops.cc (remove_all): Use nofollow option for
4652          directory_iterator constructor. Move error check outside loop.
4653
46542022-01-23  Jonathan Wakely  <jwakely@redhat.com>
4655
4656          PR libstdc++/104032
4657          * include/std/spanstream (basic_spanbuf(basic_spanbuf&&)): Use
4658          mem-initializer for _M_buf.
4659          (basic_spanbuf::Operator=(basic_spanbuf&&)): Fix ill-formed
4660          member access.
4661          * testsuite/27_io/spanstream/2.cc: New test.
4662
46632022-01-23  Jonathan Wakely  <jwakely@redhat.com>
4664
4665          * src/c++17/floating_from_chars.cc (USE_STRTOD_FOR_FROM_CHARS):
4666          Define macro for case where std::from_chars is implemented in
4667          terms of strtod, strtof or strtold.
4668          (buffer_resource, valid_fmt, find_end_of_float, pattern)
4669          (from_chars_impl, make_result, reserve_string): Do not define
4670          unless USE_STRTOD_FOR_FROM_CHARS is defined.
4671          (from_chars): Define when at least one of USE_LIB_FAST_FLOAT and
4672          USE_STRTOD_FOR_FROM_CHARS is defined, instead of
4673          _GLIBCXX_HAVE_USELOCALE. Use fast_float for long double when it
4674          is binary64.
4675
46762022-01-23  Jonathan Wakely  <jwakely@redhat.com>
4677
4678          PR libstdc++/104174
4679          * include/bits/hashtable_policy.h (_Map_base): Add partial
4680          specialization for maps with const key types.
4681          * testsuite/23_containers/unordered_map/104174.cc: New test.
4682
46832022-01-23  Jonathan Wakely  <jwakely@redhat.com>
4684
4685          PR libstdc++/104019
4686          * include/bits/shared_ptr_base.h (_Sp_counted_base<>::_M_release):
4687          Set members to zero without type punning.
4688
46892022-01-21  Jonathan Wakely  <jwakely@redhat.com>
4690
4691          * testsuite/20_util/shared_ptr/cons/array.cc: Fix comment.
4692
46932022-01-21  Jonathan Wakely  <jwakely@redhat.com>
4694
4695          PR libstdc++/87193
4696          PR libstdc++/104019
4697          * include/bits/alloc_traits.h (__cpp_lib_allocator_traits_is_always_equal):
4698          Define as type long.
4699          * include/bits/allocator.h (__cpp_lib_incomplete_container_elements):
4700          Likewise.
4701          * include/bits/basic_string.h (__cpp_lib_string_udls): Likewise.
4702          * include/bits/chrono.h (__cpp_lib_chrono): Likewise.
4703          (__cpp_lib_chrono_udls): Likewise.
4704          * include/bits/move.h (__cpp_lib_addressof_constexpr): Likewise.
4705          * include/bits/node_handle.h (__cpp_lib_node_extract): Likewise.
4706          * include/bits/range_access.h (__cpp_lib_nonmember_container_access):
4707          Likewise.
4708          * include/bits/shared_ptr.h (__cpp_lib_enable_shared_from_this):
4709          Likewise.
4710          * include/bits/stl_algo.h (__cpp_lib_clamp): Likewise.
4711          (__cpp_lib_sample): Likewise.
4712          * include/bits/stl_algobase.h (__cpp_lib_robust_nonmodifying_seq_ops):
4713          Likewise.
4714          * include/bits/stl_function.h (__cpp_lib_transparent_operators):
4715          Likewise.
4716          * include/bits/stl_iterator.h (__cpp_lib_make_reverse_iterator):
4717          Likewise.
4718          * include/bits/stl_map.h (__cpp_lib_map_try_emplace):
4719          Likewise.
4720          * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup):
4721          Likewise.
4722          * include/bits/unique_ptr.h (__cpp_lib_make_unique):
4723          Likewise.
4724          * include/bits/unordered_map.h (__cpp_lib_unordered_map_try_emplace):
4725          Likewise.
4726          * include/c_global/cmath (__cpp_lib_hypot): Likewise.
4727          * include/c_global/cstddef (__cpp_lib_byte): Likewise.
4728          * include/std/atomic (__cpp_lib_atomic_is_always_lock_free):
4729          Likewise.
4730          * include/std/complex (__cpp_lib_complex_udls): Likewise.
4731          * include/std/filesystem (__cpp_lib_filesystem): Likewise.
4732          * include/std/functional (__cpp_lib_not_fn): Likewise.
4733          (__cpp_lib_boyer_moore_searcher): Likewise.
4734          * include/std/iomanip (__cpp_lib_quoted_string_io): Likewise.
4735          * include/std/mutex (__cpp_lib_scoped_lock): Likewise.
4736          * include/std/numeric (__cpp_lib_gcd_lcm): Likewise.
4737          (__cpp_lib_gcd, __cpp_lib_lcm): Likewise.
4738          * include/std/tuple (__cpp_lib_apply): Likewise.
4739          (__cpp_lib_make_from_tuple): Likewise.
4740          * include/std/type_traits (__cpp_lib_integral_constant_callable)
4741          (__cpp_lib_bool_constant, __cpp_lib_logical_traits)
4742          (__cpp_lib_is_null_pointer, __cpp_lib_transformation_trait_aliases)
4743          (__cpp_lib_result_of_sfinae, __cpp_lib_void_t)
4744          (__cpp_lib_is_swappable, __cpp_lib_is_invocable)
4745          (__cpp_lib_has_unique_object_representations)
4746          (__cpp_lib_is_aggregate): Likewise.
4747          * include/std/version: Likewise.
4748          * libsupc++/new (__cpp_lib_launder): Likewise.
4749
47502022-01-21  Jonathan Wakely  <jwakely@redhat.com>
4751
4752          * include/std/version (__cpp_lib_shared_ptr_arrays): Fix
4753          condition for C++17 definition.
4754
47552022-01-21  Jonathan Wakely  <jwakely@redhat.com>
4756
4757          * include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count):
4758          Add constexpr.
4759          (_Sp_atomic::_M_ptr): Add default member-initializer.
4760          * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
4761          Check constant initialization.
4762          * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: Likewise.
4763
47642022-01-20  Jonathan Wakely  <jwakely@redhat.com>
4765
4766          * src/c++11/cxx11-ios_failure.cc (__constinit): Define as
4767          equivalent attribute for Clang.
4768          * src/c++11/future.cc (__constinit): Likewise.
4769          * src/c++11/system_error.cc (__constinit): Likewise.
4770          * src/c++17/memory_resource.cc (__constinit): Likewise.
4771
47722022-01-20  Jonathan Wakely  <jwakely@redhat.com>
4773
4774          * scripts/testsuite_flags.in: Only add src/filesystem/.libs and
4775          src/libbacktrace/.libs to LDFLAGS if those directories exist.
4776
47772022-01-19  Jonathan Wakely  <jwakely@redhat.com>
4778
4779          * configure.ac (GLIBCXX_ENABLE_DEBUG_FLAGS): Remove -gdwarf-4
4780          from default flags.
4781          * configure: Regenerate.
4782
47832022-01-19  Jonathan Wakely  <jwakely@redhat.com>
4784
4785          PR libstdc++/104123
4786          * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Include
4787          <stddef.h>.
4788
47892022-01-19  Jonathan Wakely  <jwakely@redhat.com>
4790
4791          * scripts/testsuite_flags.in: Add src/libbacktrace/.libs to
4792          linker search paths.
4793          * src/Makefile.am: Fix src/debug/libbacktrace build.
4794          * src/Makefile.in: Regenerate.
4795          * src/libbacktrace/Makefile.am: Use per-library CPPFLAGS
4796          variable. Use symlinks for the source files.
4797          * src/libbacktrace/Makefile.in: Regenerate.
4798
47992022-01-19  Matthias Kretz  <m.kretz@gsi.de>
4800
4801          * include/experimental/bits/simd.h (__floating_point_flags): Do
4802          not rely on math_errhandling to expand to a constant expression.
4803
48042022-01-19  Jonathan Wakely  <jwakely@redhat.com>
4805
4806          * doc/xml/manual/evolution.xml: Document deprecations.
4807          * doc/xml/manual/status_cxx2017.xml: Update status.
4808          * doc/html/*: Regenerate.
4809
48102022-01-19  Jonathan Wakely  <jwakely@redhat.com>
4811
4812          * include/bits/stl_tempbuf.h (get_temporary_buffer): Change
4813          _GLIBCXX14_DEPRECATED to _GLIBCXX17_DEPRECATED.
4814
48152022-01-19  Jonathan Wakely  <jwakely@redhat.com>
4816
4817          * include/bits/stl_pair.h (_PCC::_DeprConsPair): Remove unused
4818          function.
4819
48202022-01-19  Jonathan Wakely  <jwakely@redhat.com>
4821
4822          PR libstdc++/104101
4823          * include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count::lock):
4824          Only use __thread_relax if __cpp_lib_atomic_wait is defined.
4825
48262022-01-18  Jonathan Wakely  <jwakely@redhat.com>
4827
4828          PR libstdc++/104099
4829          * include/bits/basic_string.h (basic_string(nullptr_t)): Only
4830          define for C++23.
4831          (operator=(nullptr_t)): Likewise.
4832          * include/bits/cow_string.h: Likewise.
4833          * include/std/string_view (basic_string_view(nullptr_t)):
4834          Likewise.
4835          * testsuite/21_strings/basic_string/cons/char/nullptr.cc: Adjust
4836          expected error. Add examples that become ill-formed in C++23.
4837          * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
4838          Adjust expected errors.
4839          * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
4840          Likewise.
4841
48422022-01-18  Jonathan Wakely  <jwakely@redhat.com>
4843
4844          PR libstdc++/104098
4845          * include/bits/stl_iterator.h (reverse_iterator): Check
4846          __cpp_lib_concepts instead of __cplusplus.
4847
48482022-01-18  Jonathan Wakely  <jwakely@redhat.com>
4849
4850          PR libstdc++/101124
4851          * include/bits/stl_pair.h (pair): Adjust constraints on
4852          deprecated constructors accepting literal zero as null pointer
4853          constant. Improve wording of deprecated attribute.
4854          * testsuite/20_util/pair/cons/99957.cc: Check that deprecated
4855          constructors do not cause ambiguities for copyable types.
4856
48572022-01-18  Jonathan Wakely  <jwakely@redhat.com>
4858
4859          * include/bits/stl_function.h (ptr_fun): Fix suggestion for
4860          non-deprecated alternative.
4861
48622022-01-18  Tom Honermann  <tom@honermann.net>
4863
4864          * acinclude.m4: Define config macros if uchar.h provides
4865          c8rtomb() and mbrtoc8().
4866          * config.h.in: Regenerate.
4867          * configure: Regenerate.
4868          * include/c_compatibility/uchar.h (c8rtomb, mbrtoc8): Define.
4869          * include/c_global/cuchar (c8rtomb, mbrtoc8): Likewise.
4870          * include/c_std/cuchar (c8rtomb, mbrtoc8): Likewise.
4871          * testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc:
4872          New test.
4873          * testsuite/21_strings/headers/cuchar/functions_std_fchar8_t.cc:
4874          New test.
4875
48762022-01-18  Jonathan Wakely  <jwakely@redhat.com>
4877
4878          * include/Makefile.am: Install new header.
4879          * include/Makefile.in: Regenerate.
4880          * include/c_compatibility/stdatomic.h: New file.
4881          * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: New test.
4882
48832022-01-18  Jonathan Wakely  <jwakely@redhat.com>
4884
4885          PR libstdc++/104080
4886          * src/c++17/fast_float/LOCAL_PATCHES: Update.
4887          * src/c++17/fast_float/fast_float.h (FASTFLOAT_IS_BIG_ENDIAN):
4888          Define in terms of __BYTE_ORDER__.
4889
48902022-01-18  Jonathan Wakely  <jwakely@redhat.com>
4891
4892          PR libstdc++/104080
4893          * src/c++17/fast_float/LOCAL_PATCHES: UPDATE.
4894          * src/c++17/fast_float/fast_float.h (round): Use explicit
4895          template argument list for std::min.
4896
48972022-01-18  Jonathan Wakely  <jwakely@redhat.com>
4898
4899          * doc/xml/manual/status_cxx2017.xml: Update C++17 status.
4900          * doc/xml/manual/status_cxx2020.xml: Use 12.1 instead of 12 for
4901          upcoming release.
4902          * doc/html/manual/status.html: Regenerate.
4903
49042022-01-18  Jonathan Wakely  <jwakely@redhat.com>
4905
4906          * acinclude.m4 (GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING): Improve
4907          comments.
4908          * configure: Regenerate.
4909
49102022-01-17  Patrick Palka  <ppalka@redhat.com>
4911
4912          * src/c++17/floating_from_chars.cc: (USE_LIB_FAST_FLOAT):
4913          Conditionally define, and use it to conditionally include
4914          fast_float.
4915          (from_chars): Use fast_float for float and double when
4916          USE_LIB_FAST_FLOAT.
4917
49182022-01-17  Patrick Palka  <ppalka@redhat.com>
4919
4920          * src/c++17/fast_float/LOCAL_PATCHES: Update.
4921          * src/c++17/fast_float/fast_float.h (from_chars_advanced): In
4922          case of over/underflow, return errc::result_out_of_range and don't
4923          modify 'value'.
4924
49252022-01-17  Patrick Palka  <ppalka@redhat.com>
4926
4927          * src/c++17/fast_float/LOCAL_PATCHES: Update.
4928          * src/c++17/fast_float/fast_float.h: Apply local modifications.
4929
49302022-01-17  Patrick Palka  <ppalka@redhat.com>
4931
4932          * src/c++17/fast_float/LOCAL_PATCHES: New file.
4933          * src/c++17/fast_float/MERGE: New file.
4934          * src/c++17/fast_float/README.md: New file, copied from the
4935          fast_float repository.
4936          * src/c++17/fast_float/fast_float.h: New file, an amalgamation
4937          of the fast_float library.
4938
49392022-01-17  Patrick Palka  <ppalka@redhat.com>
4940
4941          * src/c++17/floating_from_chars.cc: Include <bit>.
4942          (ascii_to_hexit, starts_with_ci): Conditionally define.
4943          (__floating_from_chars_hex):  Conditionally define.
4944          (from_chars): Use __floating_from_chars_hex for
4945          chars_format::hex parsing of binary32/64 float/double.
4946          (testsuite/20_util/from_chars/7.cc): New test.
4947          * testsuite/20_util/from_chars/7.cc: New file.
4948
49492022-01-17  Jonathan Wakely  <jwakely@redhat.com>
4950
4951          * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): New macro.
4952          * configure.ac: Use GLIBCXX_ENABLE_BACKTRACE.
4953          * include/Makefile.am: Add new header.
4954          * include/Makefile.in: Regenerate.
4955          * include/std/stacktrace: New header.
4956          * include/std/version (__cpp_lib_stacktrace): Define.
4957          * Makefile.in: Regenerate.
4958          * config.h.in: Regenerate.
4959          * configure: Regenerate.
4960          * doc/Makefile.in: Regenerate.
4961          * libsupc++/Makefile.in: Regenerate.
4962          * po/Makefile.in: Regenerate.
4963          * python/Makefile.in: Regenerate.
4964          * src/Makefile.am: Regenerate.
4965          * src/Makefile.in: Regenerate.
4966          * src/c++11/Makefile.in: Regenerate.
4967          * src/c++17/Makefile.in: Regenerate.
4968          * src/c++20/Makefile.in: Regenerate.
4969          * src/c++98/Makefile.in: Regenerate.
4970          * src/filesystem/Makefile.in: Regenerate.
4971          * testsuite/Makefile.in: Regenerate.
4972          * src/libbacktrace/Makefile.am: New file.
4973          * src/libbacktrace/Makefile.in: New file.
4974          * src/libbacktrace/backtrace-rename.h: New file.
4975          * src/libbacktrace/backtrace-supported.h.in: New file.
4976          * src/libbacktrace/config.h.in: New file.
4977          * testsuite/lib/libstdc++.exp (check_effective_target_stacktrace):
4978          New proc.
4979          * testsuite/20_util/stacktrace/entry.cc: New test.
4980          * testsuite/20_util/stacktrace/synopsis.cc: New test.
4981          * testsuite/20_util/stacktrace/version.cc: New test.
4982
49832022-01-17  Jonathan Wakely  <jwakely@redhat.com>
4984
4985          * doc/xml/manual/status_cxx2020.xml: Use final C++20 option
4986          names.
4987          * doc/html/manual/status.html: Regenerate.
4988
49892022-01-17  Jonathan Wakely  <jwakely@redhat.com>
4990
4991          PR libstdc++/103650
4992          * include/Makefile.am: Rename LT_OBJDIR and STDC_HEADERS.
4993          * include/Makefile.in: Regenerate.
4994          * testsuite/17_intro/headers/c++1998/103650.cc: New test.
4995
49962022-01-17  Matthias Kretz  <m.kretz@gsi.de>
4997
4998          * include/experimental/bits/simd.h (__floating_point_flags): Do
4999          not rely on the presence of the math_errhandling macro.
5000
50012022-01-17  Jonathan Wakely  <jwakely@redhat.com>
5002
5003          * include/bits/shared_ptr_atomic.h (_Sp_atomic): Add typename
5004          to qualified-id for dependent type.
5005
50062022-01-17  Jonathan Wakely  <jwakely@redhat.com>
5007
5008          * doc/xml/manual/status_cxx2020.xml: Update.
5009          * doc/html/manual/status.html: Regenerate.
5010
50112022-01-17  Jonathan Wakely  <jwakely@redhat.com>
5012              Thomas Rodgers  <trodgers@redhat.com>
5013
5014          * include/bits/shared_ptr_atomic.h (__cpp_lib_atomic_shared_ptr):
5015          New macro.
5016          (_Sp_atomic): New class template.
5017          (atomic<shared_ptr<T>>, atomic<weak_ptr<T>>): New partial
5018          specializations.
5019          * include/bits/shared_ptr_base.h (__shared_count, __weak_count)
5020          (__shared_ptr, __weak_ptr): Declare _Sp_atomic as a friend.
5021          * include/std/version (__cpp_lib_atomic_shared_ptr): New macro.
5022          * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc: New
5023          test.
5024          * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: New test.
5025
50262022-01-15  Matthias Kretz  <m.kretz@gsi.de>
5027
5028          * include/experimental/bits/simd.h: Move feature detection bools
5029          and add __have_avx512bitalg, __have_avx512vbmi2,
5030          __have_avx512vbmi, __have_avx512ifma, __have_avx512cd,
5031          __have_avx512vnni, __have_avx512vpopcntdq.
5032          (__detail::__machine_flags): New function which returns a unique
5033          uint64 depending on relevant -m and -f flags.
5034          (__detail::__odr_helper): New type alias for either an anonymous
5035          type or a type specialized with the __machine_flags number.
5036          (_SimdIntOperators): Change template parameters from _Impl to
5037          _Tp, _Abi because _Impl now has an __odr_helper parameter which
5038          may be _OdrEnforcer from the anonymous namespace, which makes
5039          for a bad base class.
5040          (many): Either add __odr_helper template parameter or mark as
5041          always_inline.
5042          * include/experimental/bits/simd_detail.h: Add defines for
5043          AVX512BITALG, AVX512VBMI2, AVX512VBMI, AVX512IFMA, AVX512CD,
5044          AVX512VNNI, AVX512VPOPCNTDQ, and AVX512VP2INTERSECT.
5045          * include/experimental/bits/simd_builtin.h: Add __odr_helper
5046          template parameter or mark as always_inline.
5047          * include/experimental/bits/simd_fixed_size.h: Ditto.
5048          * include/experimental/bits/simd_math.h: Ditto.
5049          * include/experimental/bits/simd_scalar.h: Ditto.
5050          * include/experimental/bits/simd_neon.h: Add __odr_helper
5051          template parameter.
5052          * include/experimental/bits/simd_ppc.h: Ditto.
5053          * include/experimental/bits/simd_x86.h: Ditto.
5054
50552022-01-14  Uroš Bizjak  <ubizjak@gmail.com>
5056
5057          * testsuite/22_locale/numpunct/members/char/3.cc:
5058          Require pt_PT locale instead of nl_NL.
5059          (test02): Use pt_PT locale instead of nl_NL.
5060
50612022-01-14  Jonathan Wakely  <jwakely@redhat.com>
5062
5063          PR libstdc++/91260
5064          PR libstdc++/91383
5065          PR libstdc++/95065
5066          * include/backward/binders.h (bind1st, bind2nd): Add deprecated
5067          attribute.
5068          * include/bits/refwrap.h (_Maybe_unary_or_binary_function):
5069          Disable deprecated warnings for base classes.
5070          (_Reference_wrapper_base): Likewise.
5071          * include/bits/shared_ptr_base.h (_Sp_owner_less): Likewise.
5072          * include/bits/stl_bvector.h (_Bit_iterator_base): Likewise.
5073          * include/bits/stl_function.h (unary_function, binary_function):
5074          Add deprecated attribute.
5075          (unary_negate, not1, binary_negate, not2, ptr_fun)
5076          (pointer_to_unary_function, pointer_to_binary_function)
5077          (mem_fun_t, const_mem_fun_t, mem_fun_ref_t, const_mem_fun_ref_t)
5078          (mem_fun1_t, const_mem_fun1_t, mem_fun_ref1_t)
5079          (const_mem_fun1_ref_t, mem_fun, mem_fun_ref): Add deprecated
5080          attributes.
5081          * include/bits/stl_iterator.h: Disable deprecated warnings for
5082          std::iterator base classes.
5083          * include/bits/stl_iterator_base_types.h (iterator): Add
5084          deprecated attribute.
5085          * include/bits/stl_map.h (map::value_compare): Disable
5086          deprecated warnings for base class.
5087          * include/bits/stl_multimap.h (multimap::value_compare):
5088          Likewise.
5089          * include/bits/stl_raw_storage_iter.h (raw_storage_iterator):
5090          Add deprecated attribute.
5091          * include/bits/stl_tempbuf.h (get_temporary_buffer): Likewise.
5092          * include/bits/stream_iterator.h: Disable deprecated warnings.
5093          * include/bits/streambuf_iterator.h: Likewise.
5094          * include/ext/bitmap_allocator.h: Remove unary_function base
5095          classes.
5096          * include/ext/functional: Disable deprecated warnings.
5097          * include/ext/rope: Likewise.
5098          * include/ext/throw_allocator.h: Likewise.
5099          * include/std/type_traits (result_of): Add deprecated attribute.
5100          * include/tr1/functional: Disable deprecated warnings.
5101          * include/tr1/functional_hash.h: Likewise.
5102          * testsuite/20_util/function_objects/binders/1.cc: Add
5103          -Wno-disable-deprecations.
5104          * testsuite/20_util/function_objects/binders/3113.cc: Likewise.
5105          * testsuite/20_util/function_objects/constexpr.cc: Add
5106          dg-warning.
5107          * testsuite/20_util/raw_storage_iterator/base.cc: Likewise.
5108          * testsuite/20_util/raw_storage_iterator/dr2127.cc: Likewise.
5109          * testsuite/20_util/raw_storage_iterator/requirements/base_classes.cc:
5110          Likewise.
5111          * testsuite/20_util/raw_storage_iterator/requirements/explicit_instantiation/1.cc:
5112          Likewise.
5113          * testsuite/20_util/raw_storage_iterator/requirements/typedefs.cc:
5114          Likewise.
5115          * testsuite/20_util/reference_wrapper/24803.cc:
5116          Likewise.
5117          * testsuite/20_util/reference_wrapper/typedefs.cc: Enable for
5118          C++20 and check for absence of nested types.
5119          * testsuite/20_util/shared_ptr/comparison/less.cc: Remove
5120          std::binary_function base class.
5121          * testsuite/20_util/temporary_buffer.cc: Add dg-warning.
5122          * testsuite/21_strings/basic_string/cons/char/69092.cc: Remove
5123          std::iterator base class.
5124          * testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc:
5125          Likewise.
5126          * testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc:
5127          Likewise.
5128          * testsuite/24_iterators/insert_iterator/requirements/base_classes.cc:
5129          Likewise.
5130          * testsuite/24_iterators/istream_iterator/requirements/base_classes.cc:
5131          Likewise.
5132          * testsuite/24_iterators/istreambuf_iterator/92285.cc:
5133          Likewise.
5134          * testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc:
5135          Likewise.
5136          * testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc:
5137          Likewise.
5138          * testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc:
5139          Likewise.
5140          * testsuite/24_iterators/reverse_iterator/requirements/base_classes.cc:
5141          Likewise.
5142          * testsuite/25_algorithms/copy/34595.cc:
5143          Likewise.
5144          * testsuite/25_algorithms/minmax/3.cc: Remove std::binary_function
5145          base class.
5146          * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/2.cc:
5147          Disable deprecated warnings.
5148          * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/pod.cc:
5149          Likewise.
5150          * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/2.cc:
5151          Likewise.
5152          * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/pod.cc:
5153          Likewise.
5154          * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/2.cc:
5155          Likewise.
5156          * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/pod.cc:
5157          Likewise.
5158          * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/2.cc:
5159          Likewise.
5160          * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/pod.cc:
5161          Likewise.
5162          * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/2.cc:
5163          Likewise.
5164          * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/pod.cc:
5165          Likewise.
5166          * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/2.cc:
5167          Likewise.
5168          * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/pod.cc:
5169          Likewise.
5170          * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/2.cc:
5171          Likewise.
5172          * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/pod.cc:
5173          Likewise.
5174          * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/2.cc:
5175          Likewise.
5176          * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/pod.cc:
5177          Likewise.
5178          * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/2.cc:
5179          Likewise.
5180          * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/pod.cc:
5181          Likewise.
5182          * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/2.cc:
5183          Likewise.
5184          * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/pod.cc:
5185          Likewise.
5186          * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/2.cc:
5187          Likewise.
5188          * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/pod.cc:
5189          Likewise.
5190          * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/2.cc:
5191          Likewise.
5192          * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/pod.cc:
5193          Likewise.
5194          * testsuite/25_algorithms/partition/requirements/explicit_instantiation/2.cc:
5195          Likewise.
5196          * testsuite/25_algorithms/partition/requirements/explicit_instantiation/pod.cc:
5197          Likewise.
5198          * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/2.cc:
5199          Likewise.
5200          * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/pod.cc:
5201          Likewise.
5202          * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/2.cc:
5203          Likewise.
5204          * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/pod.cc:
5205          Likewise.
5206          * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
5207          Likewise.
5208          * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
5209          Likewise.
5210          * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/2.cc:
5211          Likewise.
5212          * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/pod.cc:
5213          Likewise.
5214          * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/2.cc:
5215          Likewise.
5216          * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/pod.cc:
5217          Likewise.
5218          * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/2.cc:
5219          Likewise.
5220          * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/pod.cc:
5221          Likewise.
5222          * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/2.cc:
5223          Likewise.
5224          * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/pod.cc:
5225          Likewise.
5226          * testsuite/25_algorithms/search/requirements/explicit_instantiation/2.cc:
5227          Likewise.
5228          * testsuite/25_algorithms/search/requirements/explicit_instantiation/pod.cc:
5229          Likewise.
5230          * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/2.cc:
5231          Likewise.
5232          * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/pod.cc:
5233          Likewise.
5234          * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc:
5235          Likewise.
5236          * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc:
5237          Likewise.
5238          * testsuite/25_algorithms/transform/requirements/explicit_instantiation/2.cc:
5239          Likewise.
5240          * testsuite/25_algorithms/transform/requirements/explicit_instantiation/pod.cc:
5241          Likewise.
5242          * testsuite/27_io/basic_filebuf/underflow/wchar_t/9178.cc: Add
5243          dg-warning.
5244          * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
5245          Likewise.
5246          * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
5247          Likewise.
5248          * testsuite/tr1/3_function_objects/reference_wrapper/typedefs.cc:
5249          Disable deprecated warnings.
5250          * testsuite/tr1/6_containers/hash/requirements/base_classes.cc:
5251          Likewise.
5252          * testsuite/util/regression/trait/erase_if_fn.hpp: Remove
5253          std::unary_function base classes.
5254          * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
5255          Remove std::iterator base classes.
5256
52572022-01-14  Jonathan Wakely  <jwakely@redhat.com>
5258
5259          * include/bits/shared_ptr.h (__cpp_lib_shared_ptr_weak_type):
5260          Correct type of macro value.
5261          (shared_ptr): Add additional friend declarations.
5262          (make_shared, allocate_shared): Constrain existing overloads and
5263          remove static_assert.
5264          * include/bits/shared_ptr_base.h (__cpp_lib_smart_ptr_for_overwrite):
5265          New macro.
5266          (_Sp_counted_ptr_inplace<T, Alloc, Lp>): New partial
5267          specialization for use with make_shared_for_overwrite.
5268          (__cpp_lib_shared_ptr_arrays): Update value for C++20.
5269          (_Sp_counted_array_base): New class template.
5270          (_Sp_counted_array): New class template.
5271          (__shared_count(_Tp*&, const _Sp_counted_array_base&, _Init)):
5272          New constructor for allocating shared arrays.
5273          (__shared_ptr(const _Sp_counted_array_base&, _Init)): Likewise.
5274          * include/std/version (__cpp_lib_shared_ptr_weak_type): Correct
5275          type.
5276          (__cpp_lib_shared_ptr_arrays): Update value for C++20.
5277          (__cpp_lib_smart_ptr_for_overwrite): New macro.
5278          * testsuite/20_util/shared_ptr/creation/99006.cc: Adjust
5279          expected errors.
5280          * testsuite/20_util/shared_ptr/creation/array.cc: New test.
5281          * testsuite/20_util/shared_ptr/creation/overwrite.cc: New test.
5282          * testsuite/20_util/shared_ptr/creation/version.cc: New test.
5283          * testsuite/20_util/unique_ptr/creation/for_overwrite.cc: Check
5284          feature test macro. Test non-trivial default-initialization.
5285
52862022-01-14  Jonathan Wakely  <jwakely@redhat.com>
5287
5288          * include/bits/stl_construct.h (_Construct, _Construct_novalue):
5289          Also cast away cv-qualifiers when converting pointer to void.
5290          * testsuite/20_util/allocator/void.cc: Test construct function
5291          with cv-qualified types.
5292
52932022-01-14  Jonathan Wakely  <jwakely@redhat.com>
5294
5295          PR libstdc++/103992
5296          * include/bits/stl_iterator.h (common_iterator): Use
5297          std::construct_at instead of placement new.
5298          * testsuite/24_iterators/common_iterator/1.cc: Check copy
5299          construction is usable in constant expressions.
5300
53012022-01-14  Jonathan Wakely  <jwakely@redhat.com>
5302
5303          * doc/xml/manual/status_cxx2011.xml: Document new tokens
5304          accepted by std::random_device constructor.
5305          * doc/html/manual/status.html: Regenerate.
5306
53072022-01-12  Patrick Palka  <ppalka@redhat.com>
5308
5309          * testsuite/20_util/to_chars/103955.cc: Add explicit dg-do
5310          directive.
5311
53122022-01-12  Patrick Palka  <ppalka@redhat.com>
5313
5314          PR libstdc++/103955
5315          * src/c++17/floating_to_chars.cc (__floating_to_chars_hex):
5316          Track the excess precision separately from the effective
5317          precision.  Avoid overflow in bounds check by splitting it into
5318          two checks.
5319          (__floating_to_chars_precision): Avoid overflow in bounds checks
5320          similarly.
5321          * testsuite/20_util/to_chars/103955.cc: New test.
5322
53232022-01-11  Jonathan Wakely  <jwakely@redhat.com>
5324
5325          PR libstdc++/103726
5326          * include/Makefile.am: Install <source_location> for
5327          freestanding.
5328          * include/Makefile.in: Regenerate.
5329          * include/std/version (__cpp_lib_source_location): Define for
5330          freestanding.
5331
53322022-01-11  Jonathan Wakely  <jwakely@redhat.com>
5333
5334          * include/std/ranges (ranges::lazy_split_view::_InnerIter::end()):
5335          Add neoxcept (LWG 3593).
5336
53372022-01-11  Jonathan Wakely  <jwakely@redhat.com>
5338
5339          * include/std/ranges (ranges::__detail::__box): Add constexpr to
5340          assignment operators (LWG 3572).
5341          * testsuite/std/ranges/adaptors/filter.cc: Check assignment of a
5342          view that uses copyable-box.
5343
53442022-01-11  Jonathan Wakely  <jwakely@redhat.com>
5345
5346          PR libstdc++/103726
5347          * include/Makefile.am: Install <coroutine> for freestanding.
5348          * include/Makefile.in: Regenerate.
5349          * include/std/coroutine: Adjust headers and preprocessor
5350          conditions.
5351          (__coroutine_traits_impl): Use concepts when available.
5352          [_GLIBCXX_HOSTED] (hash<coroutine_handle>): Define.
5353
53542022-01-11  Jonathan Wakely  <jwakely@redhat.com>
5355
5356          * include/std/ostream (operator<<(basic_ostream&, charT)):
5357          Use unformatted input if no padding is needed.
5358          (operator<<(basic_ostream<char>&, char)): Likewise.
5359
53602022-01-11  Jonathan Wakely  <jwakely@redhat.com>
5361
5362          PR libstdc++/103891
5363          * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
5364          Define.
5365          * include/std/variant (__cpp_lib_variant): Only define C++20
5366          value when the compiler is known to support conditionally
5367          trivial destructors.
5368          * include/std/version (__cpp_lib_variant): Likewise.
5369
53702022-01-11  Jonathan Wakely  <jwakely@redhat.com>
5371
5372          * include/bits/stl_iterator.h (common_iterator): Add constexpr
5373          to all member functions (LWG 3574).
5374          * testsuite/24_iterators/common_iterator/1.cc: Evaluate some
5375          tests as constant expressions.
5376          * testsuite/24_iterators/common_iterator/2.cc: Likewise.
5377
53782022-01-10  Jakub Jelinek  <jakub@redhat.com>
5379
5380          PR libstdc++/77760
5381          * include/bits/locale_facets_nonio.h (__time_get_state): New struct.
5382          (time_get::_M_extract_via_format): Declare new method with
5383          __time_get_state& as an extra argument.
5384          * include/bits/locale_facets_nonio.tcc (_M_extract_via_format): Add
5385          __state argument, set various fields in it while parsing.  Handle %j,
5386          %U, %w and %W, fix up handling of %y, %Y and %C, don't adjust tm_hour
5387          for %p immediately.  Add a wrapper around the method without the
5388          __state argument for backwards compatibility.
5389          (_M_extract_num): Remove all __len == 4 special cases.
5390          (time_get::do_get_time, time_get::do_get_date, time_get::do_get): Zero
5391          initialize __state, pass it to _M_extract_via_format and finalize it
5392          at the end.
5393          (do_get_year): For 1-2 digit parsed years, map 0-68 to 2000-2068,
5394          69-99 to 1969-1999.  For 3-4 digit parsed years use that as year.
5395          (get): If do_get isn't overloaded from the locale_facets_nonio.tcc
5396          version, don't call do_get but call _M_extract_via_format instead to
5397          pass around state.
5398          * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export _M_extract_via_format
5399          with extra __time_get_state and __time_get_state::_M_finalize_state.
5400          * src/c++98/locale_facets.cc (is_leap, day_of_the_week,
5401          day_of_the_year): New functions in anon namespace.
5402          (mon_yday): New var in anon namespace.
5403          (__time_get_state::_M_finalize_state): Define.
5404          * testsuite/22_locale/time_get/get/char/4.cc: New test.
5405          * testsuite/22_locale/time_get/get/wchar_t/4.cc: New test.
5406          * testsuite/22_locale/time_get/get_year/char/1.cc (test01): Parse 197
5407          as year 197AD instead of error.
5408          * testsuite/22_locale/time_get/get_year/char/5.cc (test01): Parse 1 as
5409          year 2001 instead of error.
5410          * testsuite/22_locale/time_get/get_year/char/6.cc: New test.
5411          * testsuite/22_locale/time_get/get_year/wchar_t/1.cc (test01): Parse
5412          197 as year 197AD instead of error.
5413          * testsuite/22_locale/time_get/get_year/wchar_t/5.cc (test01): Parse
5414          1 as year 2001 instead of error.
5415          * testsuite/22_locale/time_get/get_year/wchar_t/6.cc: New test.
5416
54172022-01-10  Jonathan Wakely  <jwakely@redhat.com>
5418
5419          PR libstdc++/103866
5420          * acinclude.m4 (GLIBCXX_COMPUTE_STDIO_INTEGER_CONSTANTS): Do
5421          nothing for freestanding builds.
5422          (GLIBCXX_ENABLE_HOSTED): Define FREESTANDING_FLAGS.
5423          * configure.ac: Do not use AC_LIBTOOL_DLOPEN when configured
5424          with --without-headers.  Do not use GCC_HEADER_STDINT for
5425          freestanding builds.
5426          * libsupc++/Makefile.am (HOSTED_CXXFLAGS): Use -ffreestanding
5427          for freestanding builds.
5428          * configure: Regenerate.
5429          * Makefile.in: Regenerate.
5430          * doc/Makefile.in: Regenerate.
5431          * include/Makefile.in: Regenerate.
5432          * libsupc++/Makefile.in: Regenerate.
5433          * po/Makefile.in: Regenerate.
5434          * python/Makefile.in: Regenerate.
5435          * src/Makefile.in: Regenerate.
5436          * src/c++11/Makefile.in: Regenerate.
5437          * src/c++17/Makefile.in: Regenerate.
5438          * src/c++20/Makefile.in: Regenerate.
5439          * src/c++98/Makefile.in: Regenerate.
5440          * src/filesystem/Makefile.in: Regenerate.
5441          * testsuite/Makefile.in: Regenerate.
5442
54432022-01-10  Jonathan Wakely  <jwakely@redhat.com>
5444
5445          * testsuite/28_regex/algorithms/regex_replace/char/103664.cc:
5446          Add dg-timeout-factor directive.
5447          * testsuite/28_regex/basic_regex/84110.cc: Likewise.
5448          * testsuite/28_regex/basic_regex/ctors/char/other.cc: Likewise.
5449          * testsuite/28_regex/match_results/102667.cc: Likewise.
5450
54512022-01-10  Jonathan Wakely  <jwakely@redhat.com>
5452
5453          * doc/xml/manual/using.xml: Update documentation around default
5454          -std option.
5455          * doc/html/*: Regenerate.
5456
54572022-01-10  Jonathan Wakely  <jwakely@redhat.com>
5458
5459          PR libstdc++/100017
5460          * src/c++17/Makefile.am (AM_CXXFLAGS): Add -nostdinc++.
5461          * src/c++17/Makefile.in: Regenerate.
5462
54632022-01-09  Sandra Loosemore  <sandra@codesourcery.com>
5464
5465          * testsuite/18_support/type_info/constexpr.cc: Add explicit
5466          -fdelete-null-pointer-checks option.
5467
54682022-01-06  Pavel I. Kryukov  <pavel.kryukov@phystech.edu>
5469              Jonathan Wakely  <jwakely@redhat.com>
5470
5471          PR libstdc++/103853
5472          * include/bits/forward_list.tcc (forward_list::merge): Check for
5473          self-merge.
5474          * testsuite/23_containers/forward_list/operations/merge.cc: New test.
5475
54762022-01-06  Jonathan Wakely  <jwakely@redhat.com>
5477
5478          * include/bits/regex.h (basic_regex, match_results): Qualify
5479          name in friend declaration, to work around Clang bug.
5480
54812022-01-06  Jonathan Wakely  <jwakely@redhat.com>
5482
5483          * testsuite/ext/rope/pthread7-rope.cc: Add dg-timeout-factor.
5484
54852022-01-06  Jonathan Wakely  <jwakely@redhat.com>
5486
5487          PR libstdc++/103911
5488          * include/std/charconv (__from_chars_alpha_to_num): Return
5489          char instead of unsigned char. Change invalid return value to
5490          127 instead of using numeric trait.
5491          (__from_chars_alnum): Fix comment. Do not use std::isdigit.
5492          Change type of variable to char.
5493
54942022-01-05  François Dumont  <fdumont@gcc.gnu.org>
5495
5496          PR libstdc++/68303
5497          * include/bits/hashtable_policy.h
5498          (_Hashtable_hash_traits<_Hash>): New.
5499          (_Hash_code_base<>::_M_hash_code(const _Hash_node_value<>&)): New.
5500          (_Hashtable_base<>::_M_key_equals): New.
5501          (_Hashtable_base<>::_M_equals): Use latter.
5502          (_Hashtable_base<>::_M_key_equals_tr): New.
5503          (_Hashtable_base<>::_M_equals_tr): Use latter.
5504          * include/bits/hashtable.h
5505          (_Hashtable<>::__small_size_threshold()): New, use _Hashtable_hash_traits.
5506          (_Hashtable<>::find): Loop through elements to look for key if size is lower
5507          than __small_size_threshold().
5508          (_Hashtable<>::_M_emplace(true_type, _Args&&...)): Likewise.
5509          (_Hashtable<>::_M_insert_unique(_Kt&&, _Args&&, const _NodeGenerator&)): Likewise.
5510          (_Hashtable<>::_M_compute_hash_code(const_iterator, const key_type&)): New.
5511          (_Hashtable<>::_M_emplace(const_iterator, false_type, _Args&&...)): Use latter.
5512          (_Hashtable<>::_M_find_before_node(const key_type&)): New.
5513          (_Hashtable<>::_M_erase(true_type, const key_type&)): Use latter.
5514          (_Hashtable<>::_M_erase(false_type, const key_type&)): Likewise.
5515          * src/c++11/hashtable_c++0x.cc: Include <bits/functional_hash.h>.
5516          * testsuite/util/testsuite_performance.h
5517          (report_performance): Use 9 width to display memory.
5518          * testsuite/performance/23_containers/insert_erase/unordered_small_size.cc:
5519          New performance test case.
5520
55212022-01-05  Jonathan Wakely  <jwakely@redhat.com>
5522
5523          PR libstdc++/103919
5524          * include/bits/basic_string.h (basic_string(const T&, size_t, size_t)):
5525          Relax constraints on string_view parameter.
5526          * include/bits/cow_string.h (basic_string(const T&, size_t, size_t)):
5527          Likewise.
5528          * testsuite/21_strings/basic_string/cons/char/103919.cc: New test.
5529
55302022-01-05  Jonathan Wakely  <jwakely@redhat.com>
5531
5532          * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export new symbol for
5533          ARM EABI.
5534          * include/bits/c++config (_GLIBCXX23_CONSTEXPR): Define.
5535          * include/std/version (__cpp_lib_constexpr_typeinfo): Define.
5536          * libsupc++/tinfo.cc: Add #error to ensure non-inline definition
5537          is emitted.
5538          (type_info::__equal): Define alias symbol.
5539          * libsupc++/typeinfo (type_info::before): Combine different
5540          implementations into one.
5541          (type_info::operator==): Likewise. Use address equality for
5542          constant evaluation. Call __equal for targets that require the
5543          definition to be non-inline.
5544          * testsuite/18_support/type_info/constexpr.cc: New test.
5545
55462022-01-05  Jonathan Wakely  <jwakely@redhat.com>
5547
5548          * src/c++11/cxx11-ios_failure.cc (io_error_category): Define
5549          class and virtual functions as 'final'.
5550          (io_category_instance): Use constinit union to make the object
5551          immortal.
5552          * src/c++11/future.cc (future_error_category): Define class and
5553          virtual functions as 'final'.
5554          (future_category_instance): Use constinit union.
5555
55562022-01-05  Jonathan Wakely  <jwakely@redhat.com>
5557
5558          * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Strip
5559          versioned namespace from the type name that is printed.
5560
55612022-01-05  Jonathan Wakely  <jwakely@redhat.com>
5562
5563          * python/libstdcxx/v6/printers.py (StdRegexStatePrinter): New
5564          printer for std::regex NFA states.
5565
55662022-01-05  Jonathan Wakely  <jwakely@redhat.com>
5567
5568          * testsuite/23_containers/forward_list/operations/1.cc: Fill in
5569          placeholders in comments.
5570          * testsuite/23_containers/forward_list/operations/2.cc:
5571          Likewise.
5572          * testsuite/23_containers/forward_list/operations/3.cc:
5573          Likewise.
5574          * testsuite/23_containers/forward_list/operations/4.cc:
5575          Likewise.
5576          * testsuite/23_containers/forward_list/operations/5.cc:
5577          Likewise.
5578          * testsuite/23_containers/forward_list/operations/6.cc:
5579          Likewise.
5580          * testsuite/23_containers/forward_list/operations/7.cc:
5581          Likewise.
5582
55832022-01-05  Jonathan Wakely  <jwakely@redhat.com>
5584
5585          PR libstdc++/103848
5586          * include/bits/stl_deque.h (operator-): Do not use 0 as null
5587          pointer constant.
5588
55892022-01-05  Jonathan Wakely  <jwakely@redhat.com>
5590
5591          * include/bits/alloc_traits.h (allocator_traits<allocator<void>>):
5592          Use std::_Construct for construct.
5593
55942022-01-05  Jonathan Wakely  <jwakely@redhat.com>
5595
5596          PR libstdc++/103877
5597          * doc/xml/faq.xml: Add '-x c++' to preprocessor command.
5598          * doc/html/faq.html: Regenerate.
5599
56002022-01-05  Jonathan Wakely  <jwakely@redhat.com>
5601
5602          * include/bits/regex.h (__regex_algo_impl): Change __policy and
5603          __match_mode template parameters to be function parameters.
5604          (regex_match, regex_search): Pass policy and match mode as
5605          function arguments.
5606          * include/bits/regex.tcc (__regex_algo_impl): Change template
5607          parameters to function parameters.
5608          * include/bits/regex_compiler.h (_RegexTranslatorBase): Use
5609          'if constexpr' for conditions using template parameters.
5610          (_RegexTranslator): Likewise.
5611          * include/bits/regex_executor.tcc (_Executor::_M_handle_accept):
5612          Likewise.
5613          * testsuite/util/testsuite_regex.h (regex_match_debug)
5614          (regex_search_debug): Move template arguments to function
5615          arguments.
5616
56172022-01-05  Jonathan Wakely  <jwakely@redhat.com>
5618
5619          * testsuite/util/testsuite_regex.h (regex_match_debug): Compare
5620          results even if the match failed.
5621
56222022-01-05  Jonathan Wakely  <jwakely@redhat.com>
5623
5624          * include/bits/regex_compiler.tcc: Adjust all calls to
5625          __throw_regex_error.
5626          * include/bits/regex_error.h (__throw_regex_error): Add noreturn
5627          attribute.
5628          * include/bits/regex_scanner.tcc: Likewise.
5629          * src/c++11/regex.cc (desc): New helper function.
5630          (regex_error::regex_error(error_type)): Use desc to get a string
5631          corresponding to the error code.
5632
5633
5634Copyright (C) 2022 Free Software Foundation, Inc.
5635
5636Copying and distribution of this file, with or without modification,
5637are permitted in any medium without royalty provided the copyright
5638notice and this notice are preserved.
5639