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