ChangeLog revision 1.1.1.24 1 2024-06-20 Release Manager
2
3 * GCC 12.4.0 released.
4
5 2024-06-17 Jonathan Wakely <jwakely (a] redhat.com>
6
7 Backported from master:
8 2024-06-14 Jonathan Wakely <jwakely (a] redhat.com>
9
10 * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Fix declaration of
11 posix_memalign.
12
13 2024-06-11 Tianqiang Shuai <1101282468 (a] qq.com>
14
15 Backported from master:
16 2023-07-06 Tianqiang Shuai <1101282468 (a] qq.com>
17
18 * config/io/basic_file_stdio.cc (xwrite) [USE_STDIO_PURE]: Fix
19 first argument.
20
21 2024-06-11 Jonathan Wakely <jwakely (a] redhat.com>
22
23 Backported from master:
24 2023-03-22 Jonathan Wakely <jwakely (a] 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
30 2024-06-11 Jonathan Wakely <jwakely (a] redhat.com>
31
32 Backported from master:
33 2023-02-16 Jonathan Wakely <jwakely (a] 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
50 2024-06-11 Jonathan Wakely <jwakely (a] redhat.com>
51
52 Backported from master:
53 2024-02-02 Jonathan Wakely <jwakely (a] 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
62 2024-06-11 Jonathan Wakely <jwakely (a] redhat.com>
63
64 Backported from master:
65 2023-06-09 Jonathan Wakely <jwakely (a] 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
73 2024-06-11 Jonathan Wakely <jwakely (a] redhat.com>
74
75 Backported from master:
76 2023-07-05 Jonathan Wakely <jwakely (a] 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
82 2024-06-11 Jonathan Wakely <jwakely (a] redhat.com>
83
84 Backported from master:
85 2024-04-10 Jonathan Wakely <jwakely (a] 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
91 2024-06-11 Jonathan Wakely <jwakely (a] redhat.com>
92
93 Backported from master:
94 2024-03-19 Jonathan Wakely <jwakely (a] 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
101 2024-06-11 Jonathan Wakely <jwakely (a] redhat.com>
102
103 Backported from master:
104 2024-03-19 Jonathan Wakely <jwakely (a] 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
110 2024-06-11 Jonathan Wakely <jwakely (a] redhat.com>
111
112 Backported from master:
113 2024-04-03 Jonathan Wakely <jwakely (a] 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
120 2024-06-11 Jonathan Wakely <jwakely (a] redhat.com>
121
122 Backported from master:
123 2024-03-22 Jonathan Wakely <jwakely (a] 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
147 2024-06-01 Jonathan Wakely <jwakely (a] redhat.com>
148
149 Backported from master:
150 2024-06-01 Jonathan Wakely <jwakely (a] 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
157 2024-05-08 Matthias Kretz <m.kretz (a] gsi.de>
158
159 Backported from master:
160 2024-04-22 Matthias Kretz <m.kretz (a] 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
169 2024-05-08 Matthias Kretz <m.kretz (a] gsi.de>
170
171 Backported from master:
172 2024-04-22 Matthias Kretz <m.kretz (a] 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
181 2024-05-08 Matthias Kretz <m.kretz (a] gsi.de>
182
183 Backported from master:
184 2024-04-17 Matthias Kretz <m.kretz (a] gsi.de>
185
186 * include/experimental/bits/numeric_traits.h: Add include guard.
187
188 2024-05-08 Matthias Kretz <m.kretz (a] gsi.de>
189
190 Backported from master:
191 2024-04-17 Matthias Kretz <m.kretz (a] 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
198 2024-05-08 Matthias Kretz <m.kretz (a] gsi.de>
199
200 Backported from master:
201 2024-03-27 Matthias Kretz <m.kretz (a] 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
208 2024-05-08 Matthias Kretz <m.kretz (a] gsi.de>
209
210 Backported from master:
211 2024-03-27 Matthias Kretz <m.kretz (a] 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
217 2024-05-08 Matthias Kretz <m.kretz (a] gsi.de>
218
219 Backported from master:
220 2023-06-06 Matthias Kretz <m.kretz (a] 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
227 2024-05-08 Matthias Kretz <m.kretz (a] gsi.de>
228
229 Backported from master:
230 2023-06-06 Matthias Kretz <m.kretz (a] 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
240 2024-05-08 Matthias Kretz <m.kretz (a] gsi.de>
241
242 Backported from master:
243 2023-06-06 Matthias Kretz <m.kretz (a] gsi.de>
244
245 * include/experimental/bits/simd.h (__bit_cast): Use
246 __gnu__::__vector_size__ instead of gnu::vector_size.
247
248 2024-04-21 Iain Sandoe <iain (a] sandoe.co.uk>
249
250 Backported from master:
251 2024-02-19 Iain Sandoe <iain (a] sandoe.co.uk>
252 Jonathan Wakely <jwakely (a] 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
261 2024-04-21 Iain Sandoe <iain (a] sandoe.co.uk>
262
263 Backported from master:
264 2024-03-19 Iain Sandoe <iain (a] 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
269 2024-04-21 Iain Sandoe <iain (a] sandoe.co.uk>
270
271 Backported from master:
272 2024-03-19 Iain Sandoe <iain (a] 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
277 2024-04-18 Iain Sandoe <iain (a] sandoe.co.uk>
278
279 Backported from master:
280 2022-12-04 Iain Sandoe <iain (a] 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
286 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
287
288 Backported from master:
289 2023-05-12 Jonathan Wakely <jwakely (a] redhat.com>
290
291 * testsuite/experimental/feat-cxx14.cc: Remove dependency on
292 _GLIBCXX_USE_C99_STDINT_TR1.
293
294 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
295
296 Backported from master:
297 2023-05-12 Jonathan Wakely <jwakely (a] 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
303 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
304
305 Backported from master:
306 2023-09-11 Jonathan Wakely <jwakely (a] 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
313 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
314
315 Backported from master:
316 2023-06-26 Jonathan Wakely <jwakely (a] 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
324 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
325
326 Backported from master:
327 2023-04-27 Jonathan Wakely <jwakely (a] 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
347 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
348
349 Backported from master:
350 2022-11-19 Jonathan Wakely <jwakely (a] redhat.com>
351
352 * include/bits/ptr_traits.h (pointer_traits::pointer_to): Rename
353 parameter.
354
355 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
356
357 Backported from master:
358 2022-11-21 Jonathan Wakely <jwakely (a] redhat.com>
359
360 * include/std/tuple: Add better Doxygen comments.
361
362 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
363
364 Backported from master:
365 2022-11-08 Jonathan Wakely <jwakely (a] 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
394 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
395
396 Backported from master:
397 2022-09-21 Jonathan Wakely <jwakely (a] redhat.com>
398
399 * testsuite/20_util/headers/memory/synopsis.cc: Add declarations
400 from C++11 and later.
401
402 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
403
404 Backported from master:
405 2022-11-08 Jonathan Wakely <jwakely (a] 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
417 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
418
419 Backported from master:
420 2022-05-13 Jonathan Wakely <jwakely (a] 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
430 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
431
432 Backported from master:
433 2022-05-13 Jonathan Wakely <jwakely (a] 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
443 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
444
445 Backported from master:
446 2022-05-13 Jonathan Wakely <jwakely (a] 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
455 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
456
457 Backported from master:
458 2022-05-13 Jonathan Wakely <jwakely (a] 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
467 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
468
469 Backported from master:
470 2022-05-13 Jonathan Wakely <jwakely (a] 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
479 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
480
481 Backported from master:
482 2022-05-13 Jonathan Wakely <jwakely (a] 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
491 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
492
493 Backported from master:
494 2022-05-17 Jonathan Wakely <jwakely (a] 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
510 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
511
512 Backported from master:
513 2022-05-13 Jonathan Wakely <jwakely (a] 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
527 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
528
529 Backported from master:
530 2022-05-13 Jonathan Wakely <jwakely (a] redhat.com>
531
532 * doc/doxygen/user.cfg.in (GROUP_NESTED_COMPOUNDS): Set to NO.
533 (CLASS_DIAGRAMS): Remove obsolete option.
534
535 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
536
537 Backported from master:
538 2022-06-27 Jonathan Wakely <jwakely (a] redhat.com>
539
540 * include/bits/fs_path.h (__is_path_iter_src): Replace class
541 template with variable template.
542
543 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
544
545 Backported from master:
546 2022-09-26 Jonathan Wakely <jwakely (a] 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
556 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
557
558 Backported from master:
559 2022-09-24 Jonathan Wakely <jwakely (a] 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
575 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
576
577 Backported from master:
578 2022-05-13 Jonathan Wakely <jwakely (a] redhat.com>
579
580 * include/bits/ptr_traits.h: Add some doxygen comments.
581
582 2024-03-18 Xi Ruoyao <xry111 (a] xry111.site>
583
584 Backported from master:
585 2022-06-24 Xi Ruoyao <xry111 (a] xry111.site>
586
587 * scripts/extract_symvers.in: Use grep -E instead of egrep.
588 * scripts/run_doxygen: Likewise.
589
590 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
591
592 Backported from master:
593 2022-10-28 Jonathan Wakely <jwakely (a] 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
603 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
604
605 Backported from master:
606 2023-02-02 Jonathan Wakely <jwakely (a] 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
625 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
626
627 Backported from master:
628 2023-09-07 Jonathan Wakely <jwakely (a] 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
645 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
646
647 Backported from master:
648 2023-08-09 Jonathan Wakely <jwakely (a] 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
655 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
656
657 Backported from master:
658 2023-11-11 Jonathan Wakely <jwakely (a] 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
664 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
665
666 Backported from master:
667 2023-09-15 Jonathan Wakely <jwakely (a] redhat.com>
668
669 PR libstdc++/111172
670 * include/std/variant (get<T>): Remove !is_void static
671 assertions.
672
673 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
674
675 Backported from master:
676 2023-10-26 Jonathan Wakely <jwakely (a] 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
683 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
684
685 Backported from master:
686 2024-02-29 Jonathan Wakely <jwakely (a] 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
696 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
697
698 Backported from master:
699 2023-02-28 Jonathan Wakely <jwakely (a] 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
714 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
715
716 Backported from master:
717 2023-03-22 Jonathan Wakely <jwakely (a] 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
724 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
725
726 Backported from master:
727 2023-03-22 Jonathan Wakely <jwakely (a] 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
733 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
734
735 Backported from master:
736 2023-02-28 Jonathan Wakely <jwakely (a] redhat.com>
737
738 * src/c++11/codecvt.cc: Add [[likely]] and [[unlikely]]
739 attributes.
740
741 2024-03-18 Dimitrij Mijoski <dmjpp (a] hotmail.com>
742
743 Backported from master:
744 2023-01-13 Dimitrij Mijoski <dmjpp (a] 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
759 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
760
761 Backported from master:
762 2023-07-26 Jonathan Wakely <jwakely (a] 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
774 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
775
776 Backported from master:
777 2023-05-11 Jonathan Wakely <jwakely (a] 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
784 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
785
786 Backported from master:
787 2023-05-12 Jonathan Wakely <jwakely (a] 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
793 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
794
795 Backported from master:
796 2023-05-31 Jonathan Wakely <jwakely (a] 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
804 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
805
806 Backported from master:
807 2023-06-01 Jonathan Wakely <jwakely (a] redhat.com>
808
809 * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
810 Add const to equality operator.
811
812 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
813
814 Backported from master:
815 2023-06-09 Jonathan Wakely <jwakely (a] 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
836 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
837
838 Backported from master:
839 2023-07-03 Jonathan Wakely <jwakely (a] 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
845 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
846
847 Backported from master:
848 2023-07-19 Jonathan Wakely <jwakely (a] 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
867 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
868
869 Backported from master:
870 2023-09-11 Jonathan Wakely <jwakely (a] 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
881 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
882
883 Backported from master:
884 2023-08-16 Jonathan Wakely <jwakely (a] 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
892 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
893
894 Backported from master:
895 2023-03-22 Jonathan Wakely <jwakely (a] 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
903 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
904
905 Backported from master:
906 2023-08-09 Jonathan Wakely <jwakely (a] 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
917 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
918
919 Backported from master:
920 2023-09-08 Jonathan Wakely <jwakely (a] 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
926 2024-03-18 Alexey Lapshin <alexey.lapshin (a] espressif.com>
927
928 Backported from master:
929 2023-09-08 Alexey Lapshin <alexey.lapshin (a] espressif.com>
930
931 * src/libbacktrace/Makefile.am: Remove -Werror.
932 * src/libbacktrace/Makefile.in: Regenerate.
933
934 2024-03-18 Nathaniel Shead <nathanieloshead (a] gmail.com>
935
936 Backported from master:
937 2023-09-29 Nathaniel Shead <nathanieloshead (a] 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
946 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
947
948 Backported from master:
949 2023-11-02 Jonathan Wakely <jwakely (a] redhat.com>
950
951 * acinclude.m4 (GLIBCXX_ENABLE_C99): Fix snprintf checks.
952 * configure: Regenerate.
953
954 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
955
956 Backported from master:
957 2023-11-21 Jonathan Wakely <jwakely (a] 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
963 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
964
965 Backported from master:
966 2023-11-14 Jonathan Wakely <jwakely (a] 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
972 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
973
974 Backported from master:
975 2023-11-23 Jonathan Wakely <jwakely (a] redhat.com>
976
977 * testsuite/util/testsuite_allocator.h (uneq_allocator): Fix
978 equality operator for heterogeneous comparisons.
979
980 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
981
982 Backported from master:
983 2024-03-14 Jonathan Wakely <jwakely (a] 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
992 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
993
994 Backported from master:
995 2024-03-13 Jonathan Wakely <jwakely (a] redhat.com>
996
997 * testsuite/libstdc++-prettyprinters/cxx11.cc: Move custom_cat
998 to namespace scope.
999
1000 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
1001
1002 Backported from master:
1003 2024-02-28 Jonathan Wakely <jwakely (a] redhat.com>
1004
1005 * doc/xml/manual/appendix_contributing.xml: Change URLs to use
1006 https.
1007 * doc/html/manual/*: Regenerate.
1008
1009 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
1010
1011 Backported from master:
1012 2024-02-28 Jonathan Wakely <jwakely (a] 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
1018 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
1019
1020 Backported from master:
1021 2022-11-04 Jonathan Wakely <jwakely (a] 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
1029 2024-03-18 Jonathan Wakely <jwakely (a] redhat.com>
1030
1031 Backported from master:
1032 2024-03-04 Jonathan Wakely <jwakely (a] 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
1040 2024-03-13 Cassio Neri <cassio.neri (a] gmail.com>
1041
1042 Backported from master:
1043 2024-01-05 Cassio Neri <cassio.neri (a] 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
1051 2024-03-13 Cassio Neri <cassio.neri (a] gmail.com>
1052
1053 Backported from master:
1054 2023-11-14 Cassio Neri <cassio.neri (a] gmail.com>
1055
1056 * include/std/chrono (operator-(const weekday&, const weekday&)):
1057 Optimize.
1058
1059 2024-03-13 Cassio Neri <cassio.neri (a] gmail.com>
1060
1061 Backported from master:
1062 2023-11-14 Cassio Neri <cassio.neri (a] gmail.com>
1063
1064 * include/std/chrono (year::is_leap): Clear code.
1065
1066 2024-03-13 Cassio Neri <cassio.neri (a] gmail.com>
1067
1068 Backported from master:
1069 2023-11-14 Cassio Neri <cassio.neri (a] gmail.com>
1070
1071 * include/std/chrono (year_month_day_last::day): Remove &1.
1072
1073 2024-03-13 Cassio Neri <cassio.neri (a] gmail.com>
1074
1075 Backported from master:
1076 2023-11-14 Cassio Neri <cassio.neri (a] 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
1081 2024-03-13 Jonathan Wakely <jwakely (a] redhat.com>
1082
1083 Backported from master:
1084 2023-08-09 Jonathan Wakely <jwakely (a] redhat.com>
1085
1086 * include/bits/list.tcc (list::sort(Cmp)): Fix -Wsign-compare
1087 warning for loop condition.
1088
1089 2024-03-13 Jonathan Wakely <jwakely (a] redhat.com>
1090
1091 Backported from master:
1092 2023-06-09 Jonathan Wakely <jwakely (a] 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
1101 2024-02-08 Jonathan Wakely <jwakely (a] redhat.com>
1102
1103 Backported from master:
1104 2024-02-02 Jonathan Wakely <jwakely (a] 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
1114 2024-02-08 Jonathan Wakely <jwakely (a] redhat.com>
1115
1116 Backported from master:
1117 2024-02-02 Jonathan Wakely <jwakely (a] 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
1123 2024-02-08 Jonathan Wakely <jwakely (a] redhat.com>
1124
1125 Backported from master:
1126 2024-02-02 Jonathan Wakely <jwakely (a] redhat.com>
1127
1128 * include/std/syncstream (basic_osyncstream::operator=): Remove
1129 noexcept, as per LWG 3867.
1130
1131 2024-02-08 Jonathan Wakely <jwakely (a] redhat.com>
1132
1133 Backported from master:
1134 2024-01-13 Jonathan Wakely <jwakely (a] 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
1145 2024-02-08 Jonathan Wakely <jwakely (a] redhat.com>
1146
1147 Backported from master:
1148 2024-01-11 Jonathan Wakely <jwakely (a] redhat.com>
1149
1150 PR libstdc++/113258
1151 * libsupc++/new_opa.cc: Prefer to use posix_memalign if
1152 available.
1153
1154 2024-02-02 Jonathan Wakely <jwakely (a] 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
1160 2024-01-11 Jonathan Wakely <jwakely (a] redhat.com>
1161
1162 Backported from master:
1163 2024-01-05 Jonathan Wakely <jwakely (a] 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
1172 2024-01-11 Ken Matsui <kmatsui (a] gcc.gnu.org>
1173
1174 Backported from master:
1175 2024-01-11 Ken Matsui <kmatsui (a] 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
1185 2024-01-03 Patrick Palka <ppalka (a] redhat.com>
1186
1187 Backported from master:
1188 2024-01-03 Patrick Palka <ppalka (a] 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
1195 2023-12-16 Jakub Jelinek <jakub (a] redhat.com>
1196
1197 Backported from master:
1198 2023-10-13 Jakub Jelinek <jakub (a] 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
1205 2023-12-06 Jonathan Wakely <jwakely (a] redhat.com>
1206
1207 Backported from master:
1208 2023-11-02 Jonathan Wakely <jwakely (a] 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
1218 2023-12-06 Jonathan Wakely <jwakely (a] redhat.com>
1219
1220 Backported from master:
1221 2023-11-17 Jonathan Wakely <jwakely (a] redhat.com>
1222
1223 * include/std/utility (in_range): Rename _Up parameter to _Res.
1224
1225 2023-11-15 Jonathan Wakely <jwakely (a] redhat.com>
1226
1227 Backported from master:
1228 2023-11-15 Jonathan Wakely <jwakely (a] 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
1236 2023-11-15 Jonathan Wakely <jwakely (a] redhat.com>
1237
1238 Backported from master:
1239 2023-11-15 Jonathan Wakely <jwakely (a] 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
1246 2023-11-14 Jonathan Wakely <jwakely (a] redhat.com>
1247
1248 Backported from master:
1249 2023-11-14 Jonathan Wakely <jwakely (a] 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
1256 2023-11-14 Jonathan Wakely <jwakely (a] redhat.com>
1257
1258 Backported from master:
1259 2023-11-14 Jonathan Wakely <jwakely (a] 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
1266 2023-11-13 Tom Tromey <tromey (a] adacore.com>
1267
1268 Backported from master:
1269 2023-10-04 Tom Tromey <tromey (a] adacore.com>
1270
1271 * python/libstdcxx/v6/printers.py
1272 (StdExpAnyPrinter.__init__): Qualify call to
1273 _string_types.
1274
1275 2023-11-13 Tom Tromey <tromey (a] adacore.com>
1276
1277 Backported from master:
1278 2023-10-04 Tom Tromey <tromey (a] 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
1285 2023-11-13 Tom Tromey <tromey (a] adacore.com>
1286
1287 Backported from master:
1288 2023-09-28 Tom Tromey <tromey (a] 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
1295 2023-11-13 Tom Tromey <tromey (a] adacore.com>
1296
1297 Backported from master:
1298 2023-10-04 Tom Tromey <tromey (a] adacore.com>
1299
1300 * python/libstdcxx/v6/xmethods.py (_versioned_namespace):
1301 Define.
1302
1303 2023-11-13 Jonathan Wakely <jwakely (a] redhat.com>
1304
1305 Backported from master:
1306 2023-09-28 Jonathan Wakely <jwakely (a] 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
1317 2023-11-13 Jonathan Wakely <jwakely (a] redhat.com>
1318
1319 Backported from master:
1320 2023-09-28 Jonathan Wakely <jwakely (a] 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
1332 2023-11-13 Jonathan Wakely <jwakely (a] redhat.com>
1333
1334 Backported from master:
1335 2023-09-28 Jonathan Wakely <jwakely (a] redhat.com>
1336
1337 * python/libstdcxx/v6/printers.py: Format docstrings according
1338 to PEP 257.
1339 * python/libstdcxx/v6/xmethods.py: Likewise.
1340
1341 2023-11-13 Jonathan Wakely <jwakely (a] redhat.com>
1342
1343 Backported from master:
1344 2023-09-12 Jonathan Wakely <jwakely (a] redhat.com>
1345
1346 * python/libstdcxx/v6/printers.py: Reformat.
1347 * python/libstdcxx/v6/xmethods.py: Likewise.
1348
1349 2023-11-06 Ian Lance Taylor <iant (a] 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
1357 2023-10-25 Jonathan Wakely <jwakely (a] redhat.com>
1358
1359 Backported from master:
1360 2023-10-25 Jonathan Wakely <jwakely (a] 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
1367 2023-10-23 Franois Dumont <fdumont (a] 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
1378 2023-10-03 Jonathan Wakely <jwakely (a] 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
1384 2023-10-03 Jonathan Wakely <jwakely (a] redhat.com>
1385
1386 Backported from master:
1387 2023-09-01 Jonathan Wakely <jwakely (a] redhat.com>
1388
1389 * testsuite/27_io/filesystem/path/108636.cc: Add dg-require for
1390 filesystem support.
1391
1392 2023-10-03 Jonathan Wakely <jwakely (a] redhat.com>
1393
1394 Backported from master:
1395 2023-06-06 Jonathan Wakely <jwakely (a] 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
1403 2023-10-03 Jonathan Wakely <jwakely (a] redhat.com>
1404
1405 Backported from master:
1406 2023-06-06 Jonathan Wakely <jwakely (a] redhat.com>
1407
1408 * src/filesystem/ops-common.h (do_copy_file) [O_CLOEXEC]: Set
1409 close-on-exec flag on file descriptors.
1410
1411 2023-10-03 Jonathan Wakely <jwakely (a] redhat.com>
1412
1413 Backported from master:
1414 2023-03-20 Jonathan Wakely <jwakely (a] redhat.com>
1415
1416 * src/filesystem/ops-common.h (get_temp_directory_from_env): Fix
1417 formatting.
1418
1419 2023-10-03 Jonathan Wakely <jwakely (a] redhat.com>
1420
1421 Backported from master:
1422 2023-02-02 Jonathan Wakely <jwakely (a] redhat.com>
1423
1424 * src/filesystem/ops-common.h [AVR] (__unsupported): Always use
1425 errc::function_not_supported instead of errc::not_supported.
1426
1427 2023-10-02 Tim Song <t.canens.cpp (a] gmail.com>
1428
1429 Backported from master:
1430 2023-09-28 Tim Song <t.canens.cpp (a] 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
1437 2023-09-27 Jonathan Wakely <jwakely (a] redhat.com>
1438
1439 Backported from master:
1440 2023-08-09 Jonathan Wakely <jwakely (a] 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
1447 2023-09-26 Jonathan Wakely <jwakely (a] redhat.com>
1448
1449 Backported from master:
1450 2023-09-25 Jonathan Wakely <jwakely (a] 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
1457 2023-09-18 Jonathan Wakely <jwakely (a] redhat.com>
1458
1459 Backported from master:
1460 2023-09-18 Jonathan Wakely <jwakely (a] 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
1466 2023-09-14 Jonathan Wakely <jwakely (a] redhat.com>
1467
1468 Backported from master:
1469 2023-09-14 Jonathan Wakely <jwakely (a] 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
1475 2023-07-12 Jonathan Wakely <jwakely (a] redhat.com>
1476
1477 Backported from master:
1478 2023-07-12 Jonathan Wakely <jwakely (a] 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
1486 2023-07-06 Jonathan Wakely <jwakely (a] redhat.com>
1487
1488 Backported from master:
1489 2023-07-06 Jonathan Wakely <jwakely (a] 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
1496 2023-06-23 Jonathan Wakely <jwakely (a] redhat.com>
1497
1498 Backported from master:
1499 2023-06-01 Jonathan Wakely <jwakely (a] 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
1505 2023-06-21 Jason Merrill <jason (a] 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
1511 2023-05-30 Alexandre Oliva <oliva (a] adacore.com>
1512
1513 Backported from master:
1514 2023-05-30 Alexandre Oliva <oliva (a] 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
1521 2023-05-30 Alexandre Oliva <oliva (a] adacore.com>
1522
1523 Backported from master:
1524 2023-05-25 Alexandre Oliva <oliva (a] adacore.com>
1525
1526 * testsuite/20_util/to_chars/long_double.cc: Expect execution
1527 fail on x86-vxworks.
1528
1529 2023-05-30 Alexandre Oliva <oliva (a] adacore.com>
1530
1531 Backported from master:
1532 2023-05-05 Alexandre Oliva <oliva (a] 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
1539 2023-05-30 Matthias Kretz <m.kretz (a] gsi.de>
1540
1541 Backported from master:
1542 2023-05-30 Matthias Kretz <m.kretz (a] 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
1552 2023-05-30 Matthias Kretz <m.kretz (a] gsi.de>
1553
1554 Backported from master:
1555 2023-05-30 Matthias Kretz <m.kretz (a] 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
1561 2023-05-30 Matthias Kretz <m.kretz (a] gsi.de>
1562
1563 Backported from master:
1564 2023-05-30 Matthias Kretz <m.kretz (a] 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
1570 2023-05-30 Matthias Kretz <m.kretz (a] gsi.de>
1571
1572 Backported from master:
1573 2023-05-26 Matthias Kretz <m.kretz (a] gsi.de>
1574
1575 * include/experimental/bits/simd_ppc.h (_S_bit_shift_left):
1576 Negative __y is UB, so prefer signed compare.
1577
1578 2023-05-24 Matthias Kretz <m.kretz (a] gsi.de>
1579
1580 Backported from master:
1581 2023-05-24 Matthias Kretz <m.kretz (a] 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
1591 2023-05-24 Matthias Kretz <m.kretz (a] gsi.de>
1592
1593 Backported from master:
1594 2023-05-24 Matthias Kretz <m.kretz (a] 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
1602 2023-05-24 Matthias Kretz <m.kretz (a] gsi.de>
1603
1604 Backported from master:
1605 2023-05-24 Matthias Kretz <m.kretz (a] 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
1612 2023-05-23 Matthias Kretz <m.kretz (a] gsi.de>
1613
1614 Backported from master:
1615 2023-05-23 Matthias Kretz <m.kretz (a] 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
1659 2023-05-23 Matthias Kretz <m.kretz (a] gsi.de>
1660
1661 Backported from master:
1662 2023-05-22 Matthias Kretz <m.kretz (a] 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
1675 2023-05-23 Matthias Kretz <m.kretz (a] gsi.de>
1676
1677 Backported from master:
1678 2023-03-28 Matthias Kretz <m.kretz (a] 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
1685 2023-05-23 Matthias Kretz <m.kretz (a] gsi.de>
1686
1687 Backported from master:
1688 2023-03-28 Matthias Kretz <m.kretz (a] 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
1694 2023-05-23 Matthias Kretz <m.kretz (a] gsi.de>
1695
1696 Backported from master:
1697 2023-03-21 Matthias Kretz <m.kretz (a] 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
1708 2023-05-23 Matthias Kretz <m.kretz (a] gsi.de>
1709
1710 Backported from master:
1711 2023-02-24 Matthias Kretz <m.kretz (a] 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
1722 2023-05-23 Matthias Kretz <m.kretz (a] gsi.de>
1723
1724 Backported from master:
1725 2023-02-24 Matthias Kretz <m.kretz (a] 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
1758 2023-05-23 Matthias Kretz <m.kretz (a] gsi.de>
1759
1760 Backported from master:
1761 2023-02-24 Matthias Kretz <m.kretz (a] 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
1772 2023-05-23 Matthias Kretz <m.kretz (a] gsi.de>
1773
1774 Backported from master:
1775 2023-02-23 Matthias Kretz <m.kretz (a] gsi.de>
1776
1777 * testsuite/experimental/simd/tests/reductions.cc: Introduce
1778 max_distance as the type-dependent max error.
1779
1780 2023-05-23 Matthias Kretz <m.kretz (a] gsi.de>
1781
1782 Backported from master:
1783 2023-02-23 Matthias Kretz <m.kretz (a] 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
1790 2023-05-23 Matthias Kretz <m.kretz (a] gsi.de>
1791
1792 Backported from master:
1793 2023-02-16 Matthias Kretz <m.kretz (a] 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
1807 2023-05-16 Jonathan Wakely <jwakely (a] redhat.com>
1808
1809 Backported from master:
1810 2022-11-28 Jonathan Wakely <jwakely (a] 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
1820 2023-05-11 Jonathan Wakely <jwakely (a] redhat.com>
1821
1822 Backported from master:
1823 2022-11-16 Jonathan Wakely <jwakely (a] redhat.com>
1824
1825 * python/libstdcxx/v6/printers.py (StdExpAnyPrinter): Make
1826 expansion of std::string in manager name more robust.
1827
1828 2023-05-08 Release Manager
1829
1830 * GCC 12.3.0 released.
1831
1832 2023-05-03 Kefu Chai <kefu.chai (a] scylladb.com>
1833
1834 Backported from master:
1835 2023-05-03 Kefu Chai <kefu.chai (a] scylladb.com>
1836 Jonathan Wakely <jwakely (a] redhat.com>
1837
1838 PR libstdc++/109703
1839 * include/bits/basic_string.h (basic_string(Iter, Iter, Alloc)):
1840 Initialize _M_string_length.
1841
1842 2023-05-03 Jonathan Wakely <jwakely (a] redhat.com>
1843
1844 Backported from master:
1845 2023-04-28 Jonathan Wakely <jwakely (a] redhat.com>
1846
1847 * doc/doxygen/user.cfg.in (STRIP_FROM_PATH): Remove prefixes
1848 from header paths.
1849
1850 2023-04-29 Patrick Palka <ppalka (a] redhat.com>
1851
1852 Backported from master:
1853 2023-04-12 Patrick Palka <ppalka (a] 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
1860 2023-04-29 Patrick Palka <ppalka (a] redhat.com>
1861
1862 Backported from master:
1863 2023-03-14 Patrick Palka <ppalka (a] 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
1873 2023-04-29 Patrick Palka <ppalka (a] redhat.com>
1874
1875 Backported from master:
1876 2023-03-09 Patrick Palka <ppalka (a] 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
1894 2023-04-28 Patrick Palka <ppalka (a] redhat.com>
1895
1896 Backported from master:
1897 2023-04-24 Patrick Palka <ppalka (a] 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
1906 2023-04-27 Jonathan Wakely <jwakely (a] redhat.com>
1907
1908 * include/std/atomic: Add missing @endcond doxygen comment.
1909
1910 2023-04-27 Jonathan Wakely <jwakely (a] redhat.com>
1911
1912 Backported from master:
1913 2022-11-25 Jonathan Wakely <jwakely (a] 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
1936 2023-04-27 Jonathan Wakely <jwakely (a] redhat.com>
1937
1938 Backported from master:
1939 2022-11-28 Jonathan Wakely <jwakely (a] redhat.com>
1940
1941 * testsuite/26_numerics/random/subtract_with_carry_engine/cons/lwg3809.cc:
1942 Replace non-ASCII character.
1943
1944 2023-04-27 Jonathan Wakely <jwakely (a] redhat.com>
1945
1946 Backported from master:
1947 2023-02-28 Jonathan Wakely <jwakely (a] 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
1956 2023-04-27 Jonathan Wakely <jwakely (a] redhat.com>
1957
1958 Backported from master:
1959 2023-03-31 Jonathan Wakely <jwakely (a] 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
1966 2023-04-27 Jonathan Wakely <jwakely (a] redhat.com>
1967
1968 Backported from master:
1969 2022-11-28 Jonathan Wakely <jwakely (a] 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
1981 2023-04-27 Jonathan Wakely <jwakely (a] redhat.com>
1982
1983 Backported from master:
1984 2023-04-27 Jonathan Wakely <jwakely (a] redhat.com>
1985
1986 * include/bits/mofunc_impl.h: Fix typo in doxygen comment.
1987
1988 2023-04-27 Jonathan Wakely <jwakely (a] redhat.com>
1989
1990 Backported from master:
1991 2023-04-27 Jonathan Wakely <jwakely (a] 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
2008 2023-04-21 Jonathan Wakely <jwakely (a] 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
2017 2023-04-20 Jonathan Wakely <jwakely (a] redhat.com>
2018
2019 Backported from master:
2020 2022-11-29 Jonathan Wakely <jwakely (a] 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
2030 2023-04-20 Jonathan Wakely <jwakely (a] redhat.com>
2031
2032 Backported from master:
2033 2023-04-04 Jonathan Wakely <jwakely (a] 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
2039 2023-04-20 Jonathan Wakely <jwakely (a] redhat.com>
2040
2041 Backported from master:
2042 2023-04-05 Jonathan Wakely <jwakely (a] redhat.com>
2043
2044 * include/bits/regex.h (sub_match::swap): New function.
2045 * testsuite/28_regex/sub_match/lwg3204.cc: New test.
2046
2047 2023-04-20 Jonathan Wakely <jwakely (a] redhat.com>
2048
2049 Backported from master:
2050 2023-03-28 Jonathan Wakely <jwakely (a] 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
2060 2023-04-20 Jonathan Wakely <jwakely (a] redhat.com>
2061
2062 Backported from master:
2063 2023-01-15 Jonathan Wakely <jwakely (a] redhat.com>
2064
2065 * testsuite/30_threads/jthread/jthread.cc: Remove -pthread from
2066 dg-options.
2067
2068 2023-04-20 Jonathan Wakely <jwakely (a] redhat.com>
2069
2070 Backported from master:
2071 2023-03-22 Jonathan Wakely <jwakely (a] 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
2078 2023-04-20 Jonathan Wakely <jwakely (a] redhat.com>
2079
2080 Backported from master:
2081 2023-03-29 Jonathan Wakely <jwakely (a] 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
2087 2023-04-20 Jonathan Wakely <jwakely (a] redhat.com>
2088
2089 Backported from master:
2090 2023-02-02 Jonathan Wakely <jwakely (a] 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
2096 2023-04-12 Patrick Palka <ppalka (a] redhat.com>
2097
2098 Backported from master:
2099 2023-04-12 Patrick Palka <ppalka (a] redhat.com>
2100
2101 * src/c++17/floating_from_chars.cc: Include <algorithm>,
2102 <iterator>, <limits> and <cstdint>.
2103
2104 2023-03-30 Jonathan Wakely <jwakely (a] redhat.com>
2105
2106 Backported from master:
2107 2023-03-29 Jonathan Wakely <jwakely (a] 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
2113 2023-03-28 Jonathan Wakely <jwakely (a] redhat.com>
2114
2115 Backported from master:
2116 2022-12-16 Jonathan Wakely <jwakely (a] 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
2123 2023-03-28 Jonathan Wakely <jwakely (a] redhat.com>
2124
2125 Backported from master:
2126 2022-11-03 Jonathan Wakely <jwakely (a] 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
2133 2023-03-28 Bjrn Schpers <bjoern (a] hazardy.de>
2134
2135 Backported from master:
2136 2023-01-14 Bjrn Schpers <bjoern (a] hazardy.de>
2137
2138 * include/std/stacktrace (stacktrace_entry::_S_demangle): Use
2139 raw __name if __cxa_demangle could not demangle it.
2140
2141 2023-03-28 Jonathan Wakely <jwakely (a] redhat.com>
2142
2143 Backported from master:
2144 2022-12-12 Jonathan Wakely <jwakely (a] redhat.com>
2145
2146 * include/std/stacktrace (operator<<): Only output to narrow
2147 ostreams (LWG 3515).
2148 * testsuite/19_diagnostics/stacktrace/synopsis.cc:
2149
2150 2023-03-28 Jonathan Wakely <jwakely (a] redhat.com>
2151
2152 Backported from master:
2153 2022-12-09 Jonathan Wakely <jwakely (a] 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
2160 2023-03-28 Jonathan Wakely <jwakely (a] redhat.com>
2161
2162 Backported from master:
2163 2022-12-09 Jonathan Wakely <jwakely (a] redhat.com>
2164
2165 * include/bits/chrono.h (duration, time_point): Change 'struct'
2166 to 'class'.
2167
2168 2023-03-28 Jonathan Wakely <jwakely (a] redhat.com>
2169
2170 Backported from master:
2171 2023-01-26 Jonathan Wakely <jwakely (a] 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
2180 2023-03-28 Jonathan Wakely <jwakely (a] redhat.com>
2181
2182 Backported from master:
2183 2022-09-23 Jonathan Wakely <jwakely (a] redhat.com>
2184
2185 * include/std/bitset (bitset::_M_copy_to_string): Find set bits
2186 instead of iterating over individual bits.
2187
2188 2023-03-28 Jonathan Wakely <jwakely (a] redhat.com>
2189
2190 Backported from master:
2191 2022-09-15 Jonathan Wakely <jwakely (a] 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
2204 2023-03-28 Jonathan Wakely <jwakely (a] redhat.com>
2205
2206 Backported from master:
2207 2022-09-14 Jonathan Wakely <jwakely (a] 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
2216 2023-03-28 Jonathan Wakely <jwakely (a] redhat.com>
2217
2218 Backported from master:
2219 2022-05-17 Jonathan Wakely <jwakely (a] 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
2229 2023-03-28 Jonathan Wakely <jwakely (a] redhat.com>
2230
2231 Backported from master:
2232 2022-09-14 Jonathan Wakely <jwakely (a] 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
2240 2023-03-28 Jonathan Wakely <jwakely (a] redhat.com>
2241
2242 Backported from master:
2243 2022-09-08 Jonathan Wakely <jwakely (a] 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
2249 2023-03-28 Jonathan Wakely <jwakely (a] redhat.com>
2250
2251 Backported from master:
2252 2022-09-08 Jonathan Wakely <jwakely (a] 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
2264 2023-03-28 Jonathan Wakely <jwakely (a] redhat.com>
2265
2266 Backported from master:
2267 2022-05-17 Jonathan Wakely <jwakely (a] 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
2282 2023-03-28 Jonathan Wakely <jwakely (a] redhat.com>
2283
2284 Backported from master:
2285 2022-05-13 Jonathan Wakely <jwakely (a] 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
2292 2023-03-28 Jonathan Wakely <jwakely (a] redhat.com>
2293
2294 Backported from master:
2295 2022-05-13 Jonathan Wakely <jwakely (a] redhat.com>
2296
2297 * include/std/system_error: Improve doxygen comments.
2298
2299 2023-03-28 Jonathan Wakely <jwakely (a] redhat.com>
2300
2301 Backported from master:
2302 2023-02-16 Jonathan Wakely <jwakely (a] redhat.com>
2303
2304 * include/ext/throw_allocator.h: Use reserved names for
2305 parameters.
2306
2307 2023-03-28 Jonathan Wakely <jwakely (a] redhat.com>
2308
2309 Backported from master:
2310 2022-11-25 Jonathan Wakely <jwakely (a] 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
2316 2023-03-28 Jonathan Wakely <jwakely (a] redhat.com>
2317
2318 Backported from master:
2319 2023-01-12 Jonathan Wakely <jwakely (a] redhat.com>
2320
2321 * doc/xml/manual/abi.xml: Add latest library versions.
2322 * doc/html/manual/abi.html: Regenerate.
2323
2324 2023-03-28 Jonathan Wakely <jwakely (a] redhat.com>
2325
2326 Backported from master:
2327 2023-03-28 Jonathan Wakely <jwakely (a] 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
2333 2023-03-28 Jonathan Wakely <jwakely (a] redhat.com>
2334
2335 Backported from master:
2336 2023-03-28 Jonathan Wakely <jwakely (a] 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
2342 2023-03-28 Jonathan Wakely <jwakely (a] redhat.com>
2343
2344 Backported from master:
2345 2023-03-01 Jonathan Wakely <jwakely (a] redhat.com>
2346
2347 * include/bits/cow_string.h: Fix typo in comment.
2348
2349 2023-03-28 Jonathan Wakely <jwakely (a] redhat.com>
2350
2351 Backported from master:
2352 2023-02-16 Jonathan Wakely <jwakely (a] redhat.com>
2353
2354 * include/experimental/optional: Fix header name in comment.
2355
2356 2023-03-28 Jonathan Wakely <jwakely (a] redhat.com>
2357
2358 Backported from master:
2359 2023-01-16 Jonathan Wakely <jwakely (a] 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
2366 2023-03-21 Matthias Kretz <m.kretz (a] gsi.de>
2367
2368 Backported from master:
2369 2023-03-21 Matthias Kretz <m.kretz (a] 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
2375 2023-03-21 Matthias Kretz <m.kretz (a] gsi.de>
2376
2377 Backported from master:
2378 2023-03-21 Matthias Kretz <m.kretz (a] 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
2385 2023-03-21 Matthias Kretz <m.kretz (a] gsi.de>
2386
2387 Backported from master:
2388 2023-03-21 Matthias Kretz <m.kretz (a] gsi.de>
2389
2390 * testsuite/experimental/simd/tests/operators.cc: Clang doesn't
2391 define __GCC_IEC_559. Use __STDC_IEC_559__ instead.
2392
2393 2023-03-20 Franois Dumont <fdumont (a] gcc.gnu.org>
2394
2395 Backported from master:
2396 2022-11-16 Franois Dumont <fdumont (a] 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
2406 2023-03-20 Franois Dumont <fdumont (a] gcc.gnu.org>
2407
2408 Backported from master:
2409 2022-10-03 Franois Dumont <fdumont (a] 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
2427 2023-03-20 Franois Dumont <fdumont (a] gcc.gnu.org>
2428
2429 Backported from master:
2430 2022-09-22 Franois Dumont <fdumont (a] 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
2436 2023-03-20 Jonathan Wakely <jwakely (a] redhat.com>
2437
2438 Backported from master:
2439 2023-03-10 Jonathan Wakely <jwakely (a] 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
2447 2023-03-20 Jonathan Wakely <jwakely (a] redhat.com>
2448
2449 PR libstdc++/109182
2450 * include/std/expected (expected<void>::expected(in_place_t)):
2451 Remove template-head.
2452
2453 2023-03-20 Jonathan Wakely <jwakely (a] 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
2459 2023-03-10 Thomas W Rodgers <rodgert (a] twrodgers.com>
2460
2461 Backported from master:
2462 2023-02-14 Thomas W Rodgers <rodgert (a] 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
2472 2023-02-23 Matthias Kretz <m.kretz (a] gsi.de>
2473
2474 Backported from master:
2475 2023-02-23 Matthias Kretz <m.kretz (a] 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
2483 2023-02-23 Matthias Kretz <m.kretz (a] gsi.de>
2484
2485 Backported from master:
2486 2023-02-23 Matthias Kretz <m.kretz (a] 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
2491 2023-02-23 Matthias Kretz <m.kretz (a] gsi.de>
2492
2493 Backported from master:
2494 2023-02-23 Matthias Kretz <m.kretz (a] 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
2500 2023-02-23 Matthias Kretz <m.kretz (a] gsi.de>
2501
2502 Backported from master:
2503 2023-02-20 Matthias Kretz <m.kretz (a] gsi.de>
2504
2505 * include/experimental/bits/simd.h (__extract_part, split):
2506 Use reserved name for template parameter.
2507
2508 2023-02-21 Jonathan Wakely <jwakely (a] redhat.com>
2509
2510 Backported from master:
2511 2022-08-31 Jonathan Wakely <jwakely (a] 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
2517 2023-02-21 Jonathan Wakely <jwakely (a] redhat.com>
2518
2519 Backported from master:
2520 2023-02-02 Jonathan Wakely <jwakely (a] 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
2529 2023-02-16 Matthias Kretz <m.kretz (a] gsi.de>
2530
2531 Backported from master:
2532 2023-02-16 Matthias Kretz <m.kretz (a] 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
2538 2023-02-16 Matthias Kretz <m.kretz (a] gsi.de>
2539
2540 Backported from master:
2541 2023-02-16 Matthias Kretz <m.kretz (a] 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
2548 2023-02-16 Matthias Kretz <m.kretz (a] gsi.de>
2549
2550 Backported from master:
2551 2023-02-16 Matthias Kretz <m.kretz (a] gsi.de>
2552
2553 * testsuite/experimental/simd/tests/bits/verify.h
2554 (verify::verify): Use %zx for size_t in format string.
2555
2556 2023-02-16 Matthias Kretz <m.kretz (a] gsi.de>
2557
2558 Backported from master:
2559 2023-02-16 Matthias Kretz <m.kretz (a] gsi.de>
2560
2561 * testsuite/experimental/simd/README.md: Document the timeout
2562 and timeout-factor directives. Minor typo fixed.
2563
2564 2023-02-16 Matthias Kretz <m.kretz (a] gsi.de>
2565
2566 Backported from master:
2567 2023-02-16 Matthias Kretz <m.kretz (a] 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
2574 2023-02-14 Thomas W Rodgers <rodgert (a] twrodgers.com>
2575
2576 Backported from master:
2577 2023-02-14 Thomas W Rodgers <rodgert (a] 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
2587 2023-02-10 Jakub Jelinek <jakub (a] redhat.com>
2588
2589 Backported from master:
2590 2022-11-24 Jakub Jelinek <jakub (a] 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
2596 2023-02-10 Jakub Jelinek <jakub (a] redhat.com>
2597
2598 Backported from master:
2599 2022-11-07 Jakub Jelinek <jakub (a] 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
2606 2023-02-02 Jonathan Wakely <jwakely (a] redhat.com>
2607
2608 Backported from master:
2609 2023-02-01 Jonathan Wakely <jwakely (a] 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
2615 2023-02-02 Jonathan Wakely <jwakely (a] redhat.com>
2616
2617 Backported from master:
2618 2023-02-01 Jonathan Wakely <jwakely (a] 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
2631 2023-02-02 Patrick Palka <ppalka (a] redhat.com>
2632
2633 Backported from master:
2634 2022-11-06 Patrick Palka <ppalka (a] 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
2665 2023-01-18 Jonathan Wakely <jwakely (a] redhat.com>
2666
2667 Backported from master:
2668 2022-12-22 Jonathan Wakely <jwakely (a] 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
2675 2023-01-16 Jonathan Wakely <jwakely (a] redhat.com>
2676
2677 Backported from master:
2678 2022-08-04 Jonathan Wakely <jwakely (a] 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
2689 2023-01-05 Jonathan Wakely <jwakely (a] redhat.com>
2690
2691 Backported from master:
2692 2023-01-05 Jonathan Wakely <jwakely (a] 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
2700 2022-12-21 Jonathan Wakely <jwakely (a] redhat.com>
2701
2702 Backported from master:
2703 2022-11-23 Jonathan Wakely <jwakely (a] 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
2709 2022-12-21 Jonathan Wakely <jwakely (a] redhat.com>
2710
2711 Backported from master:
2712 2022-12-16 Jonathan Wakely <jwakely (a] 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
2727 2022-12-14 Jonathan Wakely <jwakely (a] redhat.com>
2728
2729 Backported from master:
2730 2022-12-14 Jonathan Wakely <jwakely (a] 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
2736 2022-11-24 Jonathan Wakely <jwakely (a] redhat.com>
2737
2738 Backported from master:
2739 2022-09-15 Jonathan Wakely <jwakely (a] redhat.com>
2740
2741 * include/std/memory: Do not include <bits/stl_algobase.h>.
2742
2743 2022-11-24 Jonathan Wakely <jwakely (a] redhat.com>
2744
2745 Backported from master:
2746 2022-11-11 Jonathan Wakely <jwakely (a] 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
2753 2022-11-24 Jonathan Wakely <jwakely (a] redhat.com>
2754
2755 Backported from master:
2756 2022-11-02 Jonathan Wakely <jwakely (a] redhat.com>
2757
2758 * include/std/expected (expected::_M_invalid): Remove.
2759
2760 2022-11-24 Jonathan Wakely <jwakely (a] redhat.com>
2761
2762 Backported from master:
2763 2022-11-21 Jonathan Wakely <jwakely (a] redhat.com>
2764
2765 * include/bits/chrono.h (duration): Check preconditions on
2766 template arguments before using them.
2767
2768 2022-11-24 Jonathan Wakely <jwakely (a] redhat.com>
2769
2770 Backported from master:
2771 2022-10-28 Jonathan Wakely <jwakely (a] redhat.com>
2772
2773 * include/bits/fs_path.h (path::filename()): Fix dangling
2774 reference.
2775
2776 2022-11-24 Jonathan Wakely <jwakely (a] redhat.com>
2777
2778 Backported from master:
2779 2022-09-14 Jonathan Wakely <jwakely (a] redhat.com>
2780
2781 * doc/xml/manual/intro.xml: Document LWG 1203.
2782 * doc/html/*: Regenerate.
2783
2784 2022-11-24 Jonathan Wakely <jwakely (a] redhat.com>
2785
2786 Backported from master:
2787 2022-09-07 Jonathan Wakely <jwakely (a] redhat.com>
2788
2789 * include/std/barrier: Add missing runtime exception.
2790
2791 2022-11-24 Jonathan Wakely <jwakely (a] redhat.com>
2792
2793 Backported from master:
2794 2022-08-04 Jonathan Wakely <jwakely (a] 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
2813 2022-11-24 Jonathan Wakely <jwakely (a] redhat.com>
2814
2815 Backported from master:
2816 2022-09-23 Jonathan Wakely <jwakely (a] 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
2830 2022-11-22 Jonathan Wakely <jwakely (a] 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
2840 2022-11-22 Jonathan Wakely <jwakely (a] redhat.com>
2841
2842 Backported from master:
2843 2022-11-22 Jonathan Wakely <jwakely (a] 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
2849 2022-11-14 Jonathan Wakely <jwakely (a] 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
2856 2022-11-14 Jonathan Wakely <jwakely (a] redhat.com>
2857
2858 Backported from master:
2859 2022-11-11 Jonathan Wakely <jwakely (a] 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
2879 2022-11-14 Nathaniel Shead <nathanieloshead (a] gmail.com>
2880
2881 Backported from master:
2882 2022-11-11 Nathaniel Shead <nathanieloshead (a] 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
2888 2022-11-08 Jonathan Wakely <jwakely (a] redhat.com>
2889
2890 Backported from master:
2891 2022-11-08 Jonathan Wakely <jwakely (a] 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
2897 2022-10-19 Alexandre Oliva <oliva (a] adacore.com>
2898
2899 Backported from master:
2900 2022-06-22 Alexandre Oliva <oliva (a] adacore.com>
2901
2902 * libsupc++/eh_globals.cc [!_GLIBCXX_HAVE_TLS]
2903 (__eh_globals_init::~__eh_globals_init): Clear _S_init first.
2904
2905 2022-09-29 Jonathan Wakely <jwakely (a] redhat.com>
2906
2907 Backported from master:
2908 2022-09-28 Jonathan Wakely <jwakely (a] 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
2926 2022-09-16 Jonathan Wakely <jwakely (a] redhat.com>
2927
2928 * doc/xml/manual/abi.xml: Document GLIBCXX_3.4.30 version.
2929 * doc/html/manual/abi.html: Regenerate.
2930
2931 2022-09-12 Patrick Palka <ppalka (a] redhat.com>
2932
2933 Backported from master:
2934 2022-09-12 Patrick Palka <ppalka (a] redhat.com>
2935
2936 PR libstdc++/106320
2937 * testsuite/std/ranges/adaptors/join.cc (test13): New test.
2938
2939 2022-09-07 Jonathan Wakely <jwakely (a] redhat.com>
2940
2941 Backported from master:
2942 2022-08-22 Jonathan Wakely <jwakely (a] 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
2954 2022-09-07 Jonathan Wakely <jwakely (a] redhat.com>
2955
2956 Backported from master:
2957 2022-08-22 Jonathan Wakely <jwakely (a] 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
2965 2022-08-24 Jonathan Wakely <jwakely (a] redhat.com>
2966
2967 Backported from master:
2968 2022-08-23 Jonathan Wakely <jwakely (a] 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
2975 2022-08-23 Jonathan Wakely <jwakely (a] redhat.com>
2976
2977 Backported from master:
2978 2022-08-22 Jonathan Wakely <jwakely (a] 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
2986 2022-08-19 Release Manager
2987
2988 * GCC 12.2.0 released.
2989
2990 2022-08-05 Jonathan Wakely <jwakely (a] redhat.com>
2991
2992 Backported from master:
2993 2022-08-04 Jonathan Wakely <jwakely (a] 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
3002 2022-08-05 Jonathan Wakely <jwakely (a] redhat.com>
3003
3004 Backported from master:
3005 2022-08-04 Jonathan Wakely <jwakely (a] redhat.com>
3006
3007 * include/std/expected (unexpected::_M_val): Rename to _M_unex.
3008 (bad_expected_access::_M_val): Likewise.
3009
3010 2022-08-05 Jonathan Wakely <jwakely (a] redhat.com>
3011
3012 Backported from master:
3013 2022-08-04 Jonathan Wakely <jwakely (a] 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
3023 2022-08-03 Jonathan Wakely <jwakely (a] redhat.com>
3024
3025 Backported from master:
3026 2022-06-28 Jonathan Wakely <jwakely (a] 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
3037 2022-08-03 Jonathan Wakely <jwakely (a] redhat.com>
3038
3039 Backported from master:
3040 2022-07-29 Jonathan Wakely <jwakely (a] redhat.com>
3041
3042 PR libstdc++/104443
3043 * include/bits/stl_iterator.h (common_iterator::operator->):
3044 Change return type to just auto.
3045
3046 2022-08-03 Jonathan Wakely <jwakely (a] redhat.com>
3047
3048 Backported from master:
3049 2022-07-12 Jonathan Wakely <jwakely (a] 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
3059 2022-08-03 Jonathan Wakely <jwakely (a] redhat.com>
3060
3061 Backported from master:
3062 2022-07-01 Jonathan Wakely <jwakely (a] 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
3091 2022-08-03 Jonathan Wakely <jwakely (a] redhat.com>
3092
3093 Backported from master:
3094 2022-06-16 Jonathan Wakely <jwakely (a] 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
3101 2022-08-03 Jonathan Wakely <jwakely (a] redhat.com>
3102
3103 Backported from master:
3104 2022-06-14 Jonathan Wakely <jwakely (a] redhat.com>
3105
3106 * include/bits/new_allocator.h: Fix indentation.
3107 * include/ext/malloc_allocator.h: Likewise.
3108
3109 2022-08-03 Jonathan Wakely <jwakely (a] redhat.com>
3110
3111 Backported from master:
3112 2022-06-14 Jonathan Wakely <jwakely (a] 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
3119 2022-08-03 Jonathan Wakely <jwakely (a] redhat.com>
3120
3121 Backported from master:
3122 2022-06-10 Jonathan Wakely <jwakely (a] 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
3140 2022-07-26 Thomas Rodgers <trodgers (a] redhat.com>
3141
3142 Backported from master:
3143 2022-07-26 Thomas Rodgers <trodgers (a] redhat.com>
3144
3145 * include/bits/atomic_wait.h (__atomic_spin): Merge spin loops.
3146
3147 2022-07-22 Jonathan Wakely <jwakely (a] redhat.com>
3148
3149 Backported from master:
3150 2022-06-28 Jonathan Wakely <jwakely (a] 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
3157 2022-07-22 Alexandre Oliva <oliva (a] adacore.com>
3158
3159 Backported from master:
3160 2022-06-27 Alexandre Oliva <oliva (a] adacore.com>
3161
3162 * src/c++17/fs_dir.cc (dir_and_pathname): Use dirfd if
3163 _GLIBCXX_HAVE_OPENAT.
3164
3165 2022-07-22 Alexandre Oliva <oliva (a] adacore.com>
3166
3167 Backported from master:
3168 2022-06-24 Alexandre Oliva <oliva (a] 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
3178 2022-07-22 Jonathan Wakely <jwakely (a] redhat.com>
3179
3180 Backported from master:
3181 2022-05-06 Jonathan Wakely <jwakely (a] redhat.com>
3182
3183 * include/std/stacktrace: Do not include <cxxabi.h>.
3184 (__cxa_demangle): Declare.
3185
3186 2022-07-21 Jonathan Wakely <jwakely (a] redhat.com>
3187
3188 Backported from master:
3189 2022-07-20 Jonathan Wakely <jwakely (a] 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
3200 2022-07-21 Jonathan Wakely <jwakely (a] redhat.com>
3201
3202 Backported from master:
3203 2022-07-20 Jonathan Wakely <jwakely (a] 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
3211 2022-07-21 Nathan Sidwell <nathan (a] acm.org>
3212
3213 Backported from master:
3214 2022-05-26 Nathan Sidwell <nathan (a] 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
3221 2022-07-21 Jonathan Wakely <jwakely (a] redhat.com>
3222
3223 Backported from master:
3224 2022-06-30 Jonathan Wakely <jwakely (a] redhat.com>
3225
3226 * include/bits/utility.h: Fix comment typos.
3227
3228 2022-07-21 Jonathan Wakely <jwakely (a] redhat.com>
3229
3230 Backported from master:
3231 2022-06-28 Jonathan Wakely <jwakely (a] redhat.com>
3232
3233 * testsuite/20_util/from_chars/4.cc: Only use log2 if C99 math
3234 functions are available.
3235
3236 2022-07-21 Jonathan Wakely <jwakely (a] redhat.com>
3237
3238 Backported from master:
3239 2022-06-23 Jonathan Wakely <jwakely (a] redhat.com>
3240
3241 * testsuite/26_numerics/random/random_device/entropy.cc: Use
3242 numeric_limits<unsigned>::digits.
3243
3244 2022-07-21 Marco Falke <falke.marco (a] gmail.com>
3245
3246 Backported from master:
3247 2022-07-19 Marco Falke <falke.marco (a] 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
3253 2022-07-21 Jonathan Wakely <jwakely (a] redhat.com>
3254
3255 Backported from master:
3256 2022-06-30 Jonathan Wakely <jwakely (a] 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
3267 2022-07-21 Jonathan Wakely <jwakely (a] redhat.com>
3268
3269 Backported from master:
3270 2022-06-10 Jonathan Wakely <jwakely (a] 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
3279 2022-07-07 Jonathan Wakely <jwakely (a] redhat.com>
3280
3281 Backported from master:
3282 2022-07-01 Jonathan Wakely <jwakely (a] 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
3289 2022-07-07 Jonathan Wakely <jwakely (a] redhat.com>
3290
3291 Backported from master:
3292 2022-06-23 Jonathan Wakely <jwakely (a] 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
3299 2022-06-14 Jonathan Wakely <jwakely (a] redhat.com>
3300
3301 Backported from master:
3302 2022-06-13 Jonathan Wakely <jwakely (a] 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
3308 2022-06-14 Mark Mentovai <mark (a] mentovai.com>
3309
3310 Backported from master:
3311 2022-06-13 Mark Mentovai <mark (a] 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
3317 2022-06-08 Jonathan Wakely <jwakely (a] redhat.com>
3318
3319 Backported from master:
3320 2022-05-27 Jonathan Wakely <jwakely (a] redhat.com>
3321
3322 PR libstdc++/105671
3323 * include/std/sstream (basic_stringbuf::_M_high_mark): Add
3324 always_inline attribute.
3325
3326 2022-06-08 Jonathan Wakely <jwakely (a] redhat.com>
3327
3328 Backported from master:
3329 2022-05-26 Jonathan Wakely <jwakely (a] 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
3338 2022-06-08 Jonathan Wakely <jwakely (a] redhat.com>
3339
3340 Backported from master:
3341 2022-05-19 Jonathan Wakely <jwakely (a] 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
3347 2022-05-27 Jonathan Wakely <jwakely (a] redhat.com>
3348
3349 Backported from master:
3350 2022-05-26 Jonathan Wakely <jwakely (a] 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
3356 2022-05-27 Franois Dumont <fdumont (a] gcc.gnu.org>
3357
3358 Backported from master:
3359 2022-05-26 Franois Dumont <fdumont (a] gcc.gnu.org>
3360
3361 * python/libstdcxx/v6/printers.py (StdSpanPrinter.__init__):
3362 Strip typename from version namespace.
3363
3364 2022-05-27 Jonathan Wakely <jwakely (a] redhat.com>
3365
3366 Backported from master:
3367 2022-05-26 Jonathan Wakely <jwakely (a] redhat.com>
3368
3369 * python/libstdcxx/v6/printers.py (SharedPointerPrinter): Strip
3370 versioned namespace from the template argument too.
3371
3372 2022-05-27 Jonathan Wakely <jwakely (a] redhat.com>
3373
3374 Backported from master:
3375 2022-05-26 Jonathan Wakely <jwakely (a] 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
3381 2022-05-27 Jonathan Wakely <jwakely (a] redhat.com>
3382
3383 Backported from master:
3384 2022-05-19 Jonathan Wakely <jwakely (a] 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
3390 2022-05-27 Jonathan Wakely <jwakely (a] redhat.com>
3391
3392 Backported from master:
3393 2022-05-20 Jonathan Wakely <jwakely (a] 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
3410 2022-05-27 Jonathan Wakely <jwakely (a] redhat.com>
3411
3412 Backported from master:
3413 2022-05-17 Jonathan Wakely <jwakely (a] 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
3419 2022-05-27 Jonathan Wakely <jwakely (a] redhat.com>
3420
3421 Backported from master:
3422 2022-05-13 Jonathan Wakely <jwakely (a] redhat.com>
3423
3424 * include/bits/mofunc_impl.h: Fix doxygen command.
3425
3426 2022-05-27 Jonathan Wakely <jwakely (a] redhat.com>
3427
3428 Backported from master:
3429 2022-05-13 Jonathan Wakely <jwakely (a] redhat.com>
3430
3431 * include/std/future (launch): Make operators noexcept.
3432
3433 2022-05-16 Jonathan Wakely <jwakely (a] redhat.com>
3434
3435 Backported from master:
3436 2022-05-16 Jonathan Wakely <jwakely (a] redhat.com>
3437
3438 * doc/xml/manual/prerequisites.xml: Fix attributes for external
3439 hyperlink.
3440 * doc/html/manual/setup.html: Regenerate.
3441
3442 2022-05-16 Jonathan Wakely <jwakely (a] redhat.com>
3443
3444 Backported from master:
3445 2022-05-16 Jonathan Wakely <jwakely (a] redhat.com>
3446
3447 * doc/xml/manual/status_cxx2023.xml: Update with gcc-12 support.
3448 * doc/html/*: Regenerate.
3449
3450 2022-05-16 Jonathan Wakely <jwakely (a] redhat.com>
3451
3452 Backported from master:
3453 2022-05-16 Jonathan Wakely <jwakely (a] 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
3460 2022-05-16 Jonathan Wakely <jwakely (a] redhat.com>
3461
3462 Backported from master:
3463 2022-05-16 Jonathan Wakely <jwakely (a] 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
3469 2022-05-13 Alexandre Oliva <oliva (a] adacore.com>
3470
3471 Backported from master:
3472 2022-05-06 Alexandre Oliva <oliva (a] 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
3480 2022-05-10 Jonathan Wakely <jwakely (a] redhat.com>
3481
3482 Backported from master:
3483 2022-05-10 Jonathan Wakely <jwakely (a] 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
3496 2022-05-10 Jonathan Wakely <jwakely (a] redhat.com>
3497
3498 Backported from master:
3499 2022-05-10 Jonathan Wakely <jwakely (a] 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
3509 2022-05-09 Jonathan Wakely <jwakely (a] redhat.com>
3510
3511 Backported from master:
3512 2022-05-06 Jonathan Wakely <jwakely (a] 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
3518 2022-05-06 Jonathan Wakely <jwakely (a] redhat.com>
3519
3520 Backported from master:
3521 2022-05-06 Jonathan Wakely <jwakely (a] 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
3530 2022-05-06 Patrick Palka <ppalka (a] redhat.com>
3531
3532 Backported from master:
3533 2022-05-02 Patrick Palka <ppalka (a] 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
3541 2022-05-06 Alexandre Oliva <oliva (a] adacore.com>
3542
3543 Backported from master:
3544 2022-05-03 Alexandre Oliva <oliva (a] 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
3550 2022-05-06 Release Manager
3551
3552 * GCC 12.1.0 released.
3553
3554 2022-05-02 Patrick Palka <ppalka (a] redhat.com>
3555
3556 Backported from master:
3557 2022-05-02 Patrick Palka <ppalka (a] 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
3564 2022-04-29 Jonathan Wakely <jwakely (a] redhat.com>
3565
3566 Backported from master:
3567 2022-04-29 Jonathan Wakely <jwakely (a] 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
3576 2022-04-29 Rainer Orth <ro (a] 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
3585 2022-04-28 Jonathan Wakely <jwakely (a] 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
3597 2022-04-28 Jonathan Wakely <jwakely (a] 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
3608 2022-04-28 Franois Dumont <fdumont (a] gcc.gnu.org>
3609
3610 * config/abi/pre/gnu-versioned-namespace.ver: Remove
3611 std::random_device::* pattern.
3612
3613 2022-04-27 Jakub Jelinek <jakub (a] 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
3624 2022-04-27 Jonathan Wakely <jwakely (a] 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
3634 2022-04-26 Jonathan Wakely <jwakely (a] 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
3641 2022-04-26 Jonathan Wakely <jwakely (a] 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
3647 2022-04-25 Jonathan Wakely <jwakely (a] 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
3666 2022-04-25 Jonathan Wakely <jwakely (a] 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
3672 2022-04-25 Philipp Fent <fent (a] 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
3681 2022-04-22 Thomas W Rodgers <trodgers (a] 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
3695 2022-04-21 Patrick Palka <ppalka (a] 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
3705 2022-04-21 Patrick Palka <ppalka (a] 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
3712 2022-04-21 Jonathan Wakely <jwakely (a] 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
3719 2022-04-20 Jonathan Wakely <jwakely (a] redhat.com>
3720
3721 * testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc:
3722 Check correct feature test macro.
3723
3724 2022-04-20 Jonathan Wakely <jwakely (a] 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
3733 2022-04-19 Patrick Palka <ppalka (a] 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
3742 2022-04-19 Philipp Fent <fent (a] in.tum.de>
3743
3744 * python/libstdcxx/v6/printers.py (StdSpanPrinter): Define.
3745 * testsuite/libstdc++-prettyprinters/cxx20.cc: Test it.
3746
3747 2022-04-19 Jonathan Wakely <jwakely (a] redhat.com>
3748
3749 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Fix shell operators.
3750 * configure: Regenerate.
3751
3752 2022-04-18 Patrick Palka <ppalka (a] 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
3758 2022-04-15 Patrick Palka <ppalka (a] 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
3765 2022-04-15 Patrick Palka <ppalka (a] 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
3784 2022-04-14 Palmer Dabbelt <palmer (a] rivosinc.com>
3785
3786 * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Force auto to mutex
3787 for RISC-V.
3788 * configure: Regenerate.
3789
3790 2022-04-14 Jonathan Wakely <jwakely (a] redhat.com>
3791
3792 * doc/xml/manual/intro.xml: Fix comment.
3793
3794 2022-04-14 Jonathan Wakely <jwakely (a] redhat.com>
3795
3796 * include/precompiled/stdc++.h: Include <stacktrace> and
3797 <stdatomic.h> for C++23.
3798
3799 2022-04-14 Jonathan Wakely <jwakely (a] 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
3824 2022-04-12 Jonathan Wakely <jwakely (a] redhat.com>
3825
3826 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Check for mmap.
3827 * config.h.in: Regenerate.
3828 * configure: Regenerate.
3829
3830 2022-04-12 Jonathan Wakely <jwakely (a] 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
3836 2022-04-12 Jonathan Wakely <jwakely (a] 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
3851 2022-04-12 Jonathan Wakely <jwakely (a] 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
3858 2022-04-12 Jonathan Wakely <jwakely (a] 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
3873 2022-04-11 Jonathan Wakely <jwakely (a] redhat.com>
3874
3875 * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
3876 Change [[unlikely]] attribute to [[likely]].
3877
3878 2022-04-11 Jonathan Wakely <jwakely (a] 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
3893 2022-04-11 Jonathan Wakely <jwakely (a] 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
3907 2022-04-11 Jonathan Wakely <jwakely (a] 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
3916 2022-04-11 Jonathan Wakely <jwakely (a] redhat.com>
3917
3918 * include/experimental/bits/fs_path.h (path): Define special
3919 members after path::_Cmpt is complete.
3920
3921 2022-04-08 Jonathan Wakely <jwakely (a] 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
3928 2022-04-08 Jonathan Wakely <jwakely (a] 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
3936 2022-04-08 Jonathan Wakely <jwakely (a] 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
3943 2022-04-07 Hans-Peter Nilsson <hp (a] axis.com>
3944
3945 * testsuite/20_util/expected/requirements.cc: Correct minimal-size
3946 test.
3947
3948 2022-04-02 Jakub Jelinek <jakub (a] 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
3954 2022-04-01 Jonathan Wakely <jwakely (a] 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
3963 2022-04-01 Jonathan Wakely <jwakely (a] 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
3970 2022-04-01 Timm Bder <tbaeder (a] redhat.com>
3971
3972 * include/bits/fs_ops.h: Fix filename in Doxygen comment.
3973 * include/experimental/bits/fs_ops.h: Likewise.
3974
3975 2022-03-31 Jonathan Wakely <jwakely (a] redhat.com>
3976
3977 * libsupc++/new_opa.cc (aligned_alloc): Add comment.
3978
3979 2022-03-29 Jonathan Wakely <jwakely (a] 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
3985 2022-03-29 Jonathan Wakely <jwakely (a] redhat.com>
3986
3987 * libsupc++/compare (_Strong_order) [!__cpp_using_enum]: Add
3988 static data members for _Fp_fmt enumerators.
3989
3990 2022-03-29 Jonathan Wakely <jwakely (a] 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
3996 2022-03-28 Jonathan Wakely <jwakely (a] 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
4007 2022-03-27 Jonathan Wakely <jwakely (a] 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
4027 2022-03-25 Jonathan Wakely <jwakely (a] redhat.com>
4028
4029 * include/std/bit (bit_cast, byteswap, endian): Add doxygen
4030 comments.
4031
4032 2022-03-23 Jonathan Wakely <jwakely (a] 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
4038 2022-03-23 Jonathan Wakely <jwakely (a] 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
4057 2022-03-23 Jonathan Wakely <jwakely (a] 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
4063 2022-03-22 Hans-Peter Nilsson <hp (a] axis.com>
4064
4065 * testsuite/20_util/from_chars/6.cc (test01) [FE_DOWNWARD]:
4066 Conditionalize call to fesetround.
4067
4068 2022-03-21 Jakub Jelinek <jakub (a] 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
4074 2022-03-18 Jonathan Wakely <jwakely (a] 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
4080 2022-03-18 Jonathan Wakely <jwakely (a] 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
4151 2022-03-17 Jonathan Wakely <jwakely (a] 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
4157 2022-03-17 Jonathan Wakely <jwakely (a] 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
4164 2022-03-17 Jonathan Wakely <jwakely (a] redhat.com>
4165
4166 * testsuite/util/testsuite_character.h: Fix comment.
4167
4168 2022-03-16 Jonathan Wakely <jwakely (a] 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
4177 2022-03-16 Jonathan Wakely <jwakely (a] 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
4191 2022-03-14 Jonathan Wakely <jwakely (a] 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
4197 2022-03-10 Jonathan Wakely <jwakely (a] 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
4203 2022-03-10 Detlef Vollmann <dv (a] 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
4209 2022-03-10 Jonathan Wakely <jwakely (a] redhat.com>
4210
4211 * libsupc++/compare (_Strong_order::_S_fp_cmp) [__vax__]:
4212 Handle NaN.
4213
4214 2022-03-10 Jonathan Wakely <jwakely (a] redhat.com>
4215
4216 * libsupc++/compare (_Strong_ordering::_S_fp_cmp) [__vax__]: Use
4217 <=> comparison.
4218
4219 2022-03-09 Patrick Palka <ppalka (a] 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
4226 2022-03-08 Jonathan Wakely <jwakely (a] redhat.com>
4227
4228 * include/bits/uses_allocator_args.h: Remove incorrect copyright
4229 notice.
4230
4231 2022-03-07 Jonathan Wakely <jwakely (a] 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
4238 2022-03-07 Rasmus Villemoes <rasmus.villemoes (a] prevas.dk>
4239
4240 * config/locale/vxworks/ctype_members.cc: Remove <iostream>
4241 include.
4242
4243 2022-03-05 Jonathan Wakely <jwakely (a] redhat.com>
4244
4245 * include/bits/c++config (__glibcxx_assert_fail): Add visibility
4246 attribute.
4247 (__terminate): Likewise.
4248
4249 2022-03-04 Jonathan Wakely <jwakely (a] redhat.com>
4250
4251 * libsupc++/compare (strong_order::_S_fp_cmp): Move typedef
4252 inside #if condition.
4253
4254 2022-03-03 Jonathan Wakely <jwakely (a] redhat.com>
4255
4256 PR libstdc++/104748
4257 * testsuite/std/ranges/adaptors/all.cc: Use non-debug vector for
4258 constexpr test.
4259
4260 2022-03-03 Jonathan Wakely <jwakely (a] redhat.com>
4261
4262 * testsuite/17_intro/names.cc (func): Undef on AIX.
4263
4264 2022-03-03 Jonathan Wakely <jwakely (a] 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
4272 2022-03-01 Jonathan Wakely <jwakely (a] redhat.com>
4273
4274 PR middle-end/103984
4275 * include/bits/regex_compiler.h (_BracketMatcher::_M_char): Use
4276 default member initializer.
4277
4278 2022-02-24 Jonathan Wakely <jwakely (a] redhat.com>
4279
4280 PR libstdc++/104602
4281 * include/std/source_location (source_location::current): Use
4282 deduced type of __builtin_source_location().
4283
4284 2022-02-22 Patrick Palka <ppalka (a] 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
4305 2022-02-17 Jonathan Wakely <jwakely (a] 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
4316 2022-02-17 Jonathan Wakely <jwakely (a] 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
4325 2022-02-15 Jonathan Wakely <jwakely (a] 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
4333 2022-02-14 Jonathan Wakely <jwakely (a] 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
4345 2022-02-14 Jonathan Wakely <jwakely (a] 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
4353 2022-02-14 Jonathan Wakely <jwakely (a] redhat.com>
4354
4355 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
4356 Fix typo.
4357
4358 2022-02-14 Jonathan Wakely <jwakely (a] 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
4363 2022-02-11 Jonathan Wakely <jwakely (a] redhat.com>
4364
4365 * testsuite/20_util/temporary_buffer.cc: Fix dg-warning target
4366 selector.
4367
4368 2022-02-11 Jonathan Wakely <jwakely (a] 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
4377 2022-02-10 Thomas Rodgers <rodgert (a] 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
4383 2022-02-10 Jonathan Wakely <jwakely (a] 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
4391 2022-02-10 Jonathan Wakely <jwakely (a] 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
4397 2022-02-09 Thomas Rodgers <rodgert (a] 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
4404 2022-02-08 Jonathan Wakely <jwakely (a] 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
4412 2022-02-08 Jonathan Wakely <jwakely (a] redhat.com>
4413
4414 * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Add comment about
4415 checking for CAS on correct word size.
4416
4417 2022-02-08 Jonathan Wakely <jwakely (a] redhat.com>
4418
4419 * testsuite/experimental/filesystem/operations/create_directories.cc:
4420 Adjust expected results for Windows.
4421
4422 2022-02-08 Jonathan Wakely <jwakely (a] 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
4433 2022-02-04 Jonathan Wakely <jwakely (a] redhat.com>
4434
4435 * src/filesystem/dir-common.h (_Dir_base::openat): Change return
4436 type to use portable posix::DIR alias.
4437
4438 2022-02-04 Jonathan Wakely <jwakely (a] redhat.com>
4439
4440 * include/c_compatibility/stdatomic.h [__clang__]: Use
4441 #include_next <stdatomic.h>.
4442
4443 2022-02-04 Jonathan Wakely <jwakely (a] 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
4453 2022-02-04 Jonathan Wakely <jwakely (a] 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
4504 2022-02-04 Jonathan Wakely <jwakely (a] 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
4511 2022-02-02 Jonathan Wakely <jwakely (a] 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
4518 2022-02-02 Jonathan Wakely <jwakely (a] 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
4525 2022-02-02 Jonathan Wakely <jwakely (a] redhat.com>
4526
4527 * include/bits/boost_concept_check.h (_OutputIteratorConcept):
4528 Change member function to data member of function pointer type.
4529
4530 2022-02-02 Martin Sebor <msebor (a] 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
4541 2022-02-02 Jonathan Wakely <jwakely (a] 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
4548 2022-02-01 Jonathan Wakely <jwakely (a] 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
4556 2022-02-01 Jonathan Wakely <jwakely (a] 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
4568 2022-02-01 Jonathan Wakely <jwakely (a] redhat.com>
4569
4570 * include/bits/fs_fwd.h (filesystem::perms): Fix comment.
4571
4572 2022-02-01 Jonathan Wakely <jwakely (a] 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
4579 2022-02-01 Thomas Rodgers <rodgert (a] 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
4585 2022-01-31 Martin Liska <mliska (a] suse.cz>
4586
4587 * acinclude.m4: Detect *_ld_is_mold and use it.
4588 * configure: Regenerate.
4589
4590 2022-01-30 Hans-Peter Nilsson <hp (a] 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
4596 2022-01-27 Jonathan Wakely <jwakely (a] 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
4603 2022-01-27 Jonathan Wakely <jwakely (a] 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
4610 2022-01-27 Martin Liska <mliska (a] suse.cz>
4611
4612 PR libstdc++/104259
4613 * acinclude.m4: Fix typo.
4614 * configure: Regenerate.
4615
4616 2022-01-25 Jonathan Wakely <jwakely (a] 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
4624 2022-01-25 Jonathan Wakely <jwakely (a] 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
4631 2022-01-25 Jonathan Wakely <jwakely (a] 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
4654 2022-01-23 Jonathan Wakely <jwakely (a] 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
4663 2022-01-23 Jonathan Wakely <jwakely (a] 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
4676 2022-01-23 Jonathan Wakely <jwakely (a] 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
4683 2022-01-23 Jonathan Wakely <jwakely (a] 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
4689 2022-01-21 Jonathan Wakely <jwakely (a] redhat.com>
4690
4691 * testsuite/20_util/shared_ptr/cons/array.cc: Fix comment.
4692
4693 2022-01-21 Jonathan Wakely <jwakely (a] 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
4750 2022-01-21 Jonathan Wakely <jwakely (a] redhat.com>
4751
4752 * include/std/version (__cpp_lib_shared_ptr_arrays): Fix
4753 condition for C++17 definition.
4754
4755 2022-01-21 Jonathan Wakely <jwakely (a] 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
4764 2022-01-20 Jonathan Wakely <jwakely (a] 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
4772 2022-01-20 Jonathan Wakely <jwakely (a] 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
4777 2022-01-19 Jonathan Wakely <jwakely (a] redhat.com>
4778
4779 * configure.ac (GLIBCXX_ENABLE_DEBUG_FLAGS): Remove -gdwarf-4
4780 from default flags.
4781 * configure: Regenerate.
4782
4783 2022-01-19 Jonathan Wakely <jwakely (a] redhat.com>
4784
4785 PR libstdc++/104123
4786 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Include
4787 <stddef.h>.
4788
4789 2022-01-19 Jonathan Wakely <jwakely (a] 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
4799 2022-01-19 Matthias Kretz <m.kretz (a] 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
4804 2022-01-19 Jonathan Wakely <jwakely (a] 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
4810 2022-01-19 Jonathan Wakely <jwakely (a] redhat.com>
4811
4812 * include/bits/stl_tempbuf.h (get_temporary_buffer): Change
4813 _GLIBCXX14_DEPRECATED to _GLIBCXX17_DEPRECATED.
4814
4815 2022-01-19 Jonathan Wakely <jwakely (a] redhat.com>
4816
4817 * include/bits/stl_pair.h (_PCC::_DeprConsPair): Remove unused
4818 function.
4819
4820 2022-01-19 Jonathan Wakely <jwakely (a] 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
4826 2022-01-18 Jonathan Wakely <jwakely (a] 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
4842 2022-01-18 Jonathan Wakely <jwakely (a] redhat.com>
4843
4844 PR libstdc++/104098
4845 * include/bits/stl_iterator.h (reverse_iterator): Check
4846 __cpp_lib_concepts instead of __cplusplus.
4847
4848 2022-01-18 Jonathan Wakely <jwakely (a] 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
4857 2022-01-18 Jonathan Wakely <jwakely (a] redhat.com>
4858
4859 * include/bits/stl_function.h (ptr_fun): Fix suggestion for
4860 non-deprecated alternative.
4861
4862 2022-01-18 Tom Honermann <tom (a] 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
4876 2022-01-18 Jonathan Wakely <jwakely (a] 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
4883 2022-01-18 Jonathan Wakely <jwakely (a] 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
4890 2022-01-18 Jonathan Wakely <jwakely (a] 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
4897 2022-01-18 Jonathan Wakely <jwakely (a] 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
4904 2022-01-18 Jonathan Wakely <jwakely (a] redhat.com>
4905
4906 * acinclude.m4 (GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING): Improve
4907 comments.
4908 * configure: Regenerate.
4909
4910 2022-01-17 Patrick Palka <ppalka (a] 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
4918 2022-01-17 Patrick Palka <ppalka (a] 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
4925 2022-01-17 Patrick Palka <ppalka (a] 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
4930 2022-01-17 Patrick Palka <ppalka (a] 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
4939 2022-01-17 Patrick Palka <ppalka (a] 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
4949 2022-01-17 Jonathan Wakely <jwakely (a] 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
4983 2022-01-17 Jonathan Wakely <jwakely (a] 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
4989 2022-01-17 Jonathan Wakely <jwakely (a] 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
4996 2022-01-17 Matthias Kretz <m.kretz (a] 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
5001 2022-01-17 Jonathan Wakely <jwakely (a] redhat.com>
5002
5003 * include/bits/shared_ptr_atomic.h (_Sp_atomic): Add typename
5004 to qualified-id for dependent type.
5005
5006 2022-01-17 Jonathan Wakely <jwakely (a] redhat.com>
5007
5008 * doc/xml/manual/status_cxx2020.xml: Update.
5009 * doc/html/manual/status.html: Regenerate.
5010
5011 2022-01-17 Jonathan Wakely <jwakely (a] redhat.com>
5012 Thomas Rodgers <trodgers (a] 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
5026 2022-01-15 Matthias Kretz <m.kretz (a] 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
5055 2022-01-14 Uro Bizjak <ubizjak (a] 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
5061 2022-01-14 Jonathan Wakely <jwakely (a] 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
5257 2022-01-14 Jonathan Wakely <jwakely (a] 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
5286 2022-01-14 Jonathan Wakely <jwakely (a] 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
5293 2022-01-14 Jonathan Wakely <jwakely (a] 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
5301 2022-01-14 Jonathan Wakely <jwakely (a] 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
5307 2022-01-12 Patrick Palka <ppalka (a] redhat.com>
5308
5309 * testsuite/20_util/to_chars/103955.cc: Add explicit dg-do
5310 directive.
5311
5312 2022-01-12 Patrick Palka <ppalka (a] 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
5323 2022-01-11 Jonathan Wakely <jwakely (a] 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
5332 2022-01-11 Jonathan Wakely <jwakely (a] redhat.com>
5333
5334 * include/std/ranges (ranges::lazy_split_view::_InnerIter::end()):
5335 Add neoxcept (LWG 3593).
5336
5337 2022-01-11 Jonathan Wakely <jwakely (a] 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
5344 2022-01-11 Jonathan Wakely <jwakely (a] 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
5354 2022-01-11 Jonathan Wakely <jwakely (a] 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
5360 2022-01-11 Jonathan Wakely <jwakely (a] 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
5370 2022-01-11 Jonathan Wakely <jwakely (a] 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
5378 2022-01-10 Jakub Jelinek <jakub (a] 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
5417 2022-01-10 Jonathan Wakely <jwakely (a] 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
5443 2022-01-10 Jonathan Wakely <jwakely (a] 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
5451 2022-01-10 Jonathan Wakely <jwakely (a] redhat.com>
5452
5453 * doc/xml/manual/using.xml: Update documentation around default
5454 -std option.
5455 * doc/html/*: Regenerate.
5456
5457 2022-01-10 Jonathan Wakely <jwakely (a] 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
5463 2022-01-09 Sandra Loosemore <sandra (a] codesourcery.com>
5464
5465 * testsuite/18_support/type_info/constexpr.cc: Add explicit
5466 -fdelete-null-pointer-checks option.
5467
5468 2022-01-06 Pavel I. Kryukov <pavel.kryukov (a] phystech.edu>
5469 Jonathan Wakely <jwakely (a] 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
5476 2022-01-06 Jonathan Wakely <jwakely (a] redhat.com>
5477
5478 * include/bits/regex.h (basic_regex, match_results): Qualify
5479 name in friend declaration, to work around Clang bug.
5480
5481 2022-01-06 Jonathan Wakely <jwakely (a] redhat.com>
5482
5483 * testsuite/ext/rope/pthread7-rope.cc: Add dg-timeout-factor.
5484
5485 2022-01-06 Jonathan Wakely <jwakely (a] 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
5494 2022-01-05 Franois Dumont <fdumont (a] 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
5521 2022-01-05 Jonathan Wakely <jwakely (a] 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
5530 2022-01-05 Jonathan Wakely <jwakely (a] 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
5546 2022-01-05 Jonathan Wakely <jwakely (a] 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
5556 2022-01-05 Jonathan Wakely <jwakely (a] redhat.com>
5557
5558 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Strip
5559 versioned namespace from the type name that is printed.
5560
5561 2022-01-05 Jonathan Wakely <jwakely (a] redhat.com>
5562
5563 * python/libstdcxx/v6/printers.py (StdRegexStatePrinter): New
5564 printer for std::regex NFA states.
5565
5566 2022-01-05 Jonathan Wakely <jwakely (a] 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
5583 2022-01-05 Jonathan Wakely <jwakely (a] redhat.com>
5584
5585 PR libstdc++/103848
5586 * include/bits/stl_deque.h (operator-): Do not use 0 as null
5587 pointer constant.
5588
5589 2022-01-05 Jonathan Wakely <jwakely (a] redhat.com>
5590
5591 * include/bits/alloc_traits.h (allocator_traits<allocator<void>>):
5592 Use std::_Construct for construct.
5593
5594 2022-01-05 Jonathan Wakely <jwakely (a] 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
5600 2022-01-05 Jonathan Wakely <jwakely (a] 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
5617 2022-01-05 Jonathan Wakely <jwakely (a] redhat.com>
5618
5619 * testsuite/util/testsuite_regex.h (regex_match_debug): Compare
5620 results even if the match failed.
5621
5622 2022-01-05 Jonathan Wakely <jwakely (a] 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
5635 Copyright (C) 2022 Free Software Foundation, Inc.
5636
5637 Copying and distribution of this file, with or without modification,
5638 are permitted in any medium without royalty provided the copyright
5639 notice and this notice are preserved.
5640