ChangeLog revision 1.1.1.27 1 2026-06-26 Release Manager
2
3 * GCC 14.4.0 released.
4
5 2026-06-23 Jonathan Wakely <jwakely (a] redhat.com>
6
7 Backported from master:
8 2026-06-23 Jonathan Wakely <jwakely (a] redhat.com>
9
10 * include/bits/chrono.h (std::chrono_literals): Fix typo in
11 comment.
12
13 2026-06-23 Jonathan Wakely <jwakely (a] redhat.com>
14
15 Backported from master:
16 2026-06-23 Jonathan Wakely <jwakely (a] redhat.com>
17
18 * doc/xml/manual/debug_mode.xml: Remove 404 link to stlport
19 website and modernise some text about debug modes in other
20 implementations.
21 * doc/html/manual/debug_mode_design.html: Regenerate.
22
23 2026-06-10 Jakub Jelinek <jakub (a] redhat.com>
24
25 Backported from master:
26 2026-03-18 Jakub Jelinek <jakub (a] redhat.com>
27
28 * include/bits/regex_compiler.h (_Compiler::_M_pop): Uglify ret
29 variable name.
30
31 2026-05-21 Jonathan Wakely <jwakely (a] redhat.com>
32
33 Backported from master:
34 2025-09-26 Jonathan Wakely <jwakely (a] redhat.com>
35
36 PR libstdc++/122062
37 * include/bits/random.tcc (__detail::__normalize): Use void cast
38 for operands of comma operator.
39 (piecewise_linear_distribution): Likewise.
40 * testsuite/26_numerics/random/piecewise_linear_distribution/cons/122062.cc:
41 New test.
42
43 2026-05-21 Xi Ruoyao <xry111 (a] xry111.site>
44
45 Backported from master:
46 2026-02-12 Xi Ruoyao <xry111 (a] xry111.site>
47 Jonathan Wakely <jwakely (a] redhat.com>
48
49 * testsuite/17_intro/badnames.cc (__unused): Do not define.
50 * testsuite/17_intro/names.cc [glibc == 2.43] (__unused): Undef.
51
52 2026-05-21 Jonathan Wakely <jwakely (a] redhat.com>
53
54 Backported from master:
55 2026-05-19 Jonathan Wakely <jwakely (a] redhat.com>
56
57 * src/c++20/tzdata.zi: Import new file from 2026b release.
58
59 2026-05-21 Jonathan Wakely <jwakely (a] redhat.com>
60
61 Backported from master:
62 2026-05-19 Jonathan Wakely <jwakely (a] redhat.com>
63
64 PR libstdc++/125369
65 * include/bits/chrono_io.h (__detail::_Parser::operator()):
66 Check for errors when parsing digits for a %z format.
67 * testsuite/std/time/parse/125369.cc: New test.
68
69 2026-05-14 Jonathan Wakely <jwakely (a] redhat.com>
70
71 Backported from master:
72 2026-04-24 Jonathan Wakely <jwakely (a] redhat.com>
73
74 * include/std/chrono (chrono::__detail::__get_leap_second_info):
75 Update expiry date for leap seconds list.
76 * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds):
77 Likewise.
78 * src/c++20/tzdata.zi: Import new file from 2026a release.
79
80 2026-05-14 Jonathan Wakely <jwakely (a] redhat.com>
81
82 Backported from master:
83 2025-12-16 Jonathan Wakely <jwakely (a] redhat.com>
84
85 * include/std/chrono (chrono::__detail::__get_leap_second_info):
86 Update expiry date for leap seconds list.
87 * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds):
88 Likewise.
89 * src/c++20/tzdata.zi: Import new file from 2025c release.
90
91 2026-05-14 Jonathan Wakely <jwakely (a] redhat.com>
92
93 Backported from master:
94 2025-06-11 Jonathan Wakely <jwakely (a] redhat.com>
95
96 PR libstdc++/120390
97 * include/bits/stl_construct.h (_Destroy_aux::__destroy_n): New
98 static member function.
99 (_Destroy_aux<true>::__destroy_n): Likewise.
100 (_Destroy_n_aux): Remove.
101 (_Destroy(ForwardIterator, ForwardIterator)): Remove
102 static_assert. Use is_trivially_destructible instead of
103 __has_trivial_destructor.
104 (_Destroy_n): Likewise. Use _Destroy_aux::__destroy_n instead of
105 _Destroy_n_aux::__destroy_n.
106 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
107 Adjust dg-error strings. Move destroy_n tests to ...
108 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_n_neg.cc:
109 New test.
110 * testsuite/23_containers/vector/cons/destructible_debug_neg.cc:
111 Adjust dg-error strings.
112 * testsuite/23_containers/vector/cons/destructible_neg.cc:
113 Likewise.
114
115 2026-05-14 Jonathan Wakely <jwakely (a] redhat.com>
116
117 Backported from master:
118 2024-12-02 Jonathan Wakely <jwakely (a] redhat.com>
119
120 * include/bits/stl_construct.h (_Destroy(FwdIter, FwdIter)): Use
121 'if constexpr' instead of dispatching to a member function of a
122 class template.
123 (_Destroy_n(FwdIter, Size)): Likewise.
124 (_Destroy_aux, _Destroy_n_aux): Only define for C++98.
125
126 2026-05-14 Jonathan Wakely <jwakely (a] redhat.com>
127
128 Backported from master:
129 2024-12-09 Jonathan Wakely <jwakely (a] redhat.com>
130
131 PR libstdc++/102259
132 * config/io/basic_file_stdio.cc (basic_file::xsgetn): Limit n to
133 _GLIBCXX_MAX_READ_SIZE if that macro is defined.
134 * config/os/bsd/darwin/os_defines.h (_GLIBCXX_MAX_READ_SIZE):
135 Define to INT_MAX-1.
136 * config/os/bsd/freebsd/os_defines.h (_GLIBCXX_MAX_READ_SIZE):
137 Likewise.
138
139 2026-05-14 Jonathan Wakely <jwakely (a] redhat.com>
140
141 Backported from master:
142 2026-03-20 Jonathan Wakely <jwakely (a] redhat.com>
143
144 * src/c++17/fs_path.cc (path::operator+=): Use pointer
145 comparison to detect aliasing instead of a loop.
146
147 2026-05-14 Jonathan Wakely <jwakely (a] redhat.com>
148
149 Backported from master:
150 2025-05-06 Jonathan Wakely <jwakely (a] redhat.com>
151
152 PR libstdc++/120029
153 * src/c++17/fs_path.cc (path::operator+=(const path&)): Handle
154 parameters that alias the path or one of its components.
155 * testsuite/27_io/filesystem/path/concat/120029.cc: New test.
156 * testsuite/experimental/filesystem/path/concat/120029.cc: New
157 test.
158
159 2026-05-14 Jonathan Wakely <jwakely (a] redhat.com>
160
161 * testsuite/std/time/clock/local/io.cc: Call test_format.
162
163 2026-05-14 Jonathan Wakely <jwakely (a] redhat.com>
164
165 Backported from master:
166 2025-05-19 Jonathan Wakely <jwakely (a] redhat.com>
167
168 PR libstdc++/120293
169 * include/bits/chrono_io.h (_M_format_to_ostream): Add special
170 case for local_time convertible to local_days.
171 * testsuite/std/time/clock/local/io.cc: Check formatting of
172 chrono::local_days.
173
174 2026-05-14 Jonathan Wakely <jwakely (a] redhat.com>
175
176 Backported from master:
177 2024-09-06 Jonathan Wakely <jwakely (a] redhat.com>
178
179 * include/bits/chrono_io.h (from_stream): Fix conversions in
180 overloads for gps_time and tai_time.
181 * testsuite/std/time/clock/file/io.cc: Test round tripping using
182 chrono::parse. Add additional std::format tests.
183 * testsuite/std/time/clock/gps/io.cc: Likewise.
184 * testsuite/std/time/clock/local/io.cc: Likewise.
185 * testsuite/std/time/clock/tai/io.cc: Likewise.
186 * testsuite/std/time/clock/utc/io.cc: Likewise.
187
188 2026-05-14 Jonathan Wakely <jwakely (a] redhat.com>
189
190 Backported from master:
191 2024-07-30 Jonathan Wakely <jwakely (a] redhat.com>
192
193 * include/bits/chrono_io.h (__local_fmt_t): Remove unused
194 declaration.
195 (__formatter_chrono::_M_format_to_ostream): Add explicit
196 handling for specializations of __local_time_fmt, including the
197 time zone abbreviation in the output if __is_neg is true.
198 (formatter<chrono::tai_time<D>>::format): Add comment.
199 (formatter<chrono::gps_time<D>>::format): Likewise.
200 (formatter<chrono::__detail::__local_time_fmt::format): Call
201 _M_format with true for the __is_neg flag.
202 * testsuite/std/time/clock/gps/io.cc: Remove unused variable.
203 * testsuite/std/time/clock/local/io.cc: Fix test error that
204 checked tai_time instead of local_time. Add tests for
205 local-time-format-t formatting.
206 * testsuite/std/time/clock/system/io.cc: Check empty
207 chrono-specs.
208 * testsuite/std/time/clock/tai/io.cc: Likewise.
209 * testsuite/std/time/zoned_time/io.cc: Likewise.
210
211 2026-05-14 Jonathan Wakely <jwakely (a] redhat.com>
212
213 Backported from master:
214 2026-02-13 Jonathan Wakely <jwakely (a] redhat.com>
215
216 PR libstdc++/121771
217 * include/std/tuple (tuple::tuple(const Elements&...)): Use
218 type_identity_t to prevent constructor being used for CTAD.
219 (tuple::tuple(allocator_arg_t, const A&, const Elements&...)):
220 Likewise.
221 * testsuite/20_util/tuple/cons/121771.cc: New test.
222
223 2026-05-14 Jonathan Wakely <jwakely (a] redhat.com>
224
225 Backported from master:
226 2026-03-20 Jonathan Wakely <jwakely (a] redhat.com>
227
228 PR libstdc++/122567
229 * src/c++20/tzdb.cc (tzdb::current_zone): Loop over all trailing
230 components of /etc/localtime path. Use readlink instead of
231 std::filesystem::read_symlink.
232
233 2026-05-14 Jonathan Wakely <jwakely (a] redhat.com>
234
235 Backported from master:
236 2026-01-07 Jonathan Wakely <jwakely (a] redhat.com>
237
238 PR libstdc++/123100
239 * include/std/sstream (basic_stringbuf::str()&&): Handle the
240 case where _M_string is not being used for the buffer.
241 * testsuite/27_io/basic_stringbuf/str/char/123100.cc: New test.
242
243 2026-05-14 Jonathan Wakely <jwakely (a] redhat.com>
244
245 Backported from master:
246 2026-05-05 Jonathan Wakely <jwakely (a] redhat.com>
247
248 PR libstdc++/109965
249 * doc/doxygen/mainpage.html: Link to topics.html instead of
250 modules.html
251
252 2026-05-14 Jonathan Wakely <jwakely (a] redhat.com>
253
254 Backported from master:
255 2024-12-18 Jonathan Wakely <jwakely (a] redhat.com>
256
257 PR libstdc++/118088
258 * include/bits/stl_queue.h (priority_queue(priority_queue&&)):
259 Clear the source object after moving from it.
260 (priority_queue(priority_queue&&, const Alloc&)): Likewise.
261 (operator=(priority_queue&&)): Likewise.
262 * testsuite/23_containers/priority_queue/118088.cc: New test.
263
264 2026-04-22 Tomasz Kamiski <tkaminsk (a] redhat.com>
265
266 Backported from master:
267 2026-04-14 Tomasz Kamiski <tkaminsk (a] redhat.com>
268
269 * include/bits/version.def (stdbit_h, stdckdint_h): Define.
270 * include/bits/version.h: Regenerate.
271 * include/c_compatibility/stdbit.h (__cpp_lib_stdbit_h): Define
272 and use it in guards.
273 * include/c_compatibility/stdckdint.h (__cpp_lib_stdckdint_h):
274 Define and use it in guards.
275
276 2026-03-30 Patrick Palka <ppalka (a] redhat.com>
277
278 Backported from master:
279 2025-11-28 Patrick Palka <ppalka (a] redhat.com>
280
281 PR libstdc++/122842
282 * include/bits/ranges_base.h (__access:_CBegin): Define in
283 terms of const_iterator directly, not const_iterator_t.
284 (__access::_CEnd): Likewise in terms of const_sentinel vs
285 const_sentinel_t.
286 (const_iterator_t): Move down definition and define in terms
287 of ranges::cbegin as per LWG 3946.
288 (const_sentinel_t): Likewise in terms of ranges::cend.
289 * testsuite/24_iterators/const_iterator/1.cc (test02): Correct
290 test for int[], std::array and std::vector. Also test
291 std::string.
292
293 2026-03-20 Jonathan Wakely <jwakely (a] redhat.com>
294
295 Backported from master:
296 2026-03-20 Jonathan Wakely <jwakely (a] redhat.com>
297
298 * src/c++20/tzdb.cc [_AIX]: Change #ifndef to #ifdef.
299
300 2026-03-20 Jonathan Wakely <jwakely (a] redhat.com>
301
302 Backported from master:
303 2026-03-20 Jonathan Wakely <jwakely (a] redhat.com>
304
305 PR libstdc++/124568
306 * testsuite/24_iterators/istreambuf_iterator/105580.cc: Add
307 no_pch option.
308
309 2026-03-16 Tomasz Kamiski <tkaminsk (a] redhat.com>
310
311 Backported from master:
312 2026-03-05 Tomasz Kamiski <tkaminsk (a] redhat.com>
313
314 PR libstdc++/124124
315 * testsuite/29_atomics/atomic/cons/zero_padding.cc: Limit size of
316 test types to four bytes.
317
318 2026-03-16 Tomasz Kamiski <tkaminsk (a] redhat.com>
319
320 PR libstdc++/105580
321 * include/std/streambuf (streambuf::gptr, streambuf::egptr)
322 (streambuf::gbump): Surround with pragma disabling -Wnull-dereference.
323 * testsuite/24_iterators/istreambuf_iterator/105580.cc: New test.
324 (cherry picked from commits
325 8758503918a91dacff4dbc7126eced21787fbfc9
326 bfc2b87f8244a13ab00e8e3fe2af1d6d18fcaa36
327 a523d1ecc89dcb7ea205e3de22d00443d4a0d91d)
328
329 2026-03-13 Patrick Palka <ppalka (a] redhat.com>
330
331 Backported from master:
332 2026-02-12 Patrick Palka <ppalka (a] redhat.com>
333
334 PR libstdc++/114865
335 * include/std/atomic (atomic<_Tp>::atomic(_Tp)) [C++11]:
336 Enable __builtin_clear_padding logic.
337 * testsuite/29_atomics/atomic/compare_exchange_padding.cc: Enable
338 this test in earlier modes, including C++11.
339 * testsuite/29_atomics/atomic/cons/zero_padding.cc [C++11]:
340 Enable tests verifying cleared padding bits for a non-static-init
341 std::atomic object.
342
343 2026-03-04 Jonathan Wakely <jwakely (a] redhat.com>
344
345 Backported from master:
346 2026-03-04 Jonathan Wakely <jwakely (a] redhat.com>
347
348 PR libstdc++/124363
349 * include/std/string_view: Adjust comment on #endif to match #if
350 condition. Likewise for header guard.
351
352 2026-02-26 Tomasz Kamiski <tkaminsk (a] redhat.com>
353
354 PR libstdc++/123875
355 * include/bits/atomic_base.h (__atomic_impl::__clear_padding):
356 Use if constexpr unconditionally.
357 (__atomic_float<_Fp>::__atomic_float(_Fp)): Skip __clear_padding
358 call for constant evaluation.
359 * include/std/atomic (atomic<_Tp>::atomic(_Tp)): Likewise.
360 * testsuite/29_atomics/atomic/cons/zero_padding.cc: New test.
361 * testsuite/29_atomics/atomic_float/zero_padding.cc: New test.
362 (cherry picked from commits
363 6b550d69fe7cb62ea6e240ce7a4ba29ce33aa1b1
364 682c95b808724e6f876ea709b873ac6771704d7b
365 060d7c2a9c1fe16d23d98a74287fdb7c73ddb784
366 f3ba5ad088cebe117f857329a35b95d18d97a808)
367
368 2026-02-10 Jonathan Wakely <jwakely (a] redhat.com>
369
370 Backported from master:
371 2025-11-24 Jonathan Wakely <jwakely (a] redhat.com>
372
373 * python/libstdcxx/v6/xmethods.py (ListMethodsMatcher.match):
374 Fix lookup for node type.
375
376 2026-02-10 Jonathan Wakely <jwakely (a] redhat.com>
377
378 Backported from master:
379 2025-11-24 Jonathan Wakely <jwakely (a] redhat.com>
380
381 PR libstdc++/122821
382 * python/libstdcxx/v6/xmethods.py (_versioned_namespace): Remove
383 global variable.
384 (is_specialization_of): Do not use _versioned_namespace. Add
385 __debug:: to regex.
386
387 2026-02-10 Jonathan Wakely <jwakely (a] redhat.com>
388
389 Backported from master:
390 2026-02-10 Jonathan Wakely <jwakely (a] redhat.com>
391
392 PR libstdc++/123991
393 * include/bits/basic_string.h (compare(size_type, size_type, T)):
394 Remove noexcept-specifier.
395 (compare(size_type, size_type, T, size_type, size_type)):
396 Likewise.
397 * include/bits/cow_string.h (compare(size_type, size_type, T)):
398 Remove noexcept-specifier.
399 (compare(size_type, size_type, T, size_type, size_type)):
400 Likewise.
401 * testsuite/21_strings/basic_string/operations/compare/char/123991.cc:
402 New test.
403 * testsuite/21_strings/basic_string/operations/compare/wchar_t/123991.cc:
404 New test.
405
406 2026-02-09 Jonathan Wakely <jwakely (a] redhat.com>
407
408 Backported from master:
409 2026-02-09 Jonathan Wakely <jwakely (a] redhat.com>
410
411 PR libstdc++/124024
412 * include/bits/out_ptr.h (out_ptr): Fix doxygen comment to refer
413 to the right function.
414 (inout_ptr): Improve markup in doxygen comment.
415
416 2026-02-06 Tomasz Kamiski <tkaminsk (a] redhat.com>
417
418 Backported from master:
419 2025-08-26 Tomasz Kamiski <tkaminsk (a] redhat.com>
420
421 PR libstdc++/90192
422 * include/bits/stl_vector.h (vector<T>::_M_fill_append): Declare.
423 (vector<T>::fill): Use _M_fill_append instead of _M_fill_insert.
424 * include/bits/vector.tcc (vector<T>::_M_fill_append): Define
425 (vector<T>::_M_fill_insert): Delegate to _M_fill_append when
426 elements are appended.
427 * testsuite/23_containers/vector/modifiers/moveable.cc: Updated
428 copycount for inserting at the end (appending).
429 * testsuite/23_containers/vector/modifiers/resize.cc: New test.
430 * testsuite/backward/hash_set/check_construct_destroy.cc: Updated
431 copycount, the hash_set constructor uses insert to fill buckets
432 with nullptrs.
433
434 2026-02-05 Tomasz Kamiski <tkaminsk (a] redhat.com>
435
436 Backported from master:
437 2026-01-19 Tomasz Kamiski <tkaminsk (a] redhat.com>
438
439 PR libstdc++/114153
440 * include/bits/ranges_cmp.h (__detail::__less_builtin_ptr_cmp):
441 Add __not_overloaded_spaceship spaceship check.
442 * include/bits/stl_function.h (greater<void>::operator())
443 (less<void>::operator(), greater_equal<void>::operator())
444 (less_equal<void>::operator()): Implement using if constexpr.
445 (greater<void>::__S_cmp, less<void>::__S_cmp)
446 (greater_equal<void>::__ptr_comp, less_equal<void>::S_cmp):
447 Remove.
448 (greater<void>::__ptr_cmp, less<void>::__ptr_cmp)
449 (greater_equal<void>::__ptr_comp, less_equal<void>::ptr_cmp): Change
450 tostatic constexpr variable. Define in terms of requires expressions
451 and __not_overloaded_spaceship check.
452 * include/std/concepts: (__detail::__not_overloaded_spaceship):
453 Define.
454 * libsupc++/compare: (__detail::__3way_builtin_ptr_cmp): Use
455 __not_overloaded_spaceship concept.
456 * testsuite/20_util/function_objects/comparisons_pointer_spaceship.cc: New test.
457
458 2026-01-26 Jonathan Wakely <jwakely (a] redhat.com>
459
460 Backported from master:
461 2025-03-13 Jonathan Wakely <jwakely (a] redhat.com>
462
463 * include/Makefile.am: Add stdckdint.h.
464 * include/Makefile.in: Regenerate.
465 * include/c_compatibility/stdckdint.h: New file.
466 * testsuite/26_numerics/stdckdint/1.cc: New test.
467 * testsuite/26_numerics/stdckdint/2_neg.cc: New test.
468
469 2026-01-26 Jonathan Wakely <jwakely (a] redhat.com>
470
471 Backported from master:
472 2025-03-13 Jonathan Wakely <jwakely (a] redhat.com>
473
474 * include/Makefile.am: Add stdbit.h.
475 * include/Makefile.in: Regenerate.
476 * include/c_compatibility/stdbit.h: New file.
477 * testsuite/20_util/stdbit/1.cc: New test.
478 * testsuite/20_util/stdbit/2_neg.cc: New test.
479
480 2026-01-26 Jonathan Wakely <jwakely (a] redhat.com>
481
482 Backported from master:
483 2024-11-27 Jonathan Wakely <jwakely (a] redhat.com>
484
485 PR libstdc++/105857
486 * config/locale/dragonfly/codecvt_members.cc (do_length): Limit
487 size of alloca buffer to 4k.
488 * config/locale/gnu/codecvt_members.cc (do_length): Likewise.
489 * testsuite/22_locale/codecvt/length/wchar_t/105857.cc: New
490 test.
491
492 2026-01-23 Wang Jinghao <zheng.xianyuwang (a] gmail.com>
493
494 Backported from master:
495 2026-01-10 Wang Jinghao <zheng.xianyuwang (a] gmail.com>
496
497 * src/c++11/system_error.cc (system_error_category) [_WIN32]:
498 Use FormatMessageA function instead of FormatMessage macro.
499 * testsuite/19_diagnostics/error_category/system_category.cc:
500 Fix typo in __MINGW32__ macro name. Adjust behavior on the
501 mingw32 target.
502
503 2026-01-22 Jonathan Wakely <jwakely (a] redhat.com>
504
505 Backported from master:
506 2025-12-19 Jonathan Wakely <jwakely (a] redhat.com>
507
508 PR libstdc++/123147
509 * include/bits/chrono_io.h (_Parser::operator()) <%S>: Use a
510 buffer of narrow characters to be parsed by std::from_chars.
511 * testsuite/std/time/parse/parse.cc: Check wchar_t parsing.
512
513 2026-01-22 Jonathan Wakely <jwakely (a] redhat.com>
514
515 Backported from master:
516 2025-12-06 Jonathan Wakely <jwakely (a] redhat.com>
517
518 * include/bits/atomic_wait.h (__detail::__atomic_compare): Use
519 std::addressof instead of &.
520 * include/std/atomic (atomic::wait, atomic::notify_one)
521 (atomic::notify_all): Likewise.
522
523 2025-11-18 Jonathan Wakely <jwakely (a] redhat.com>
524
525 Backported from master:
526 2025-11-17 Jonathan Wakely <jwakely (a] redhat.com>
527
528 PR libstdc++/122726
529 * src/filesystem/ops-common.h [_GLIBCXX_FILESYSTEM_IS_WINDOWS]
530 (rename): Use __last_system_error to set errno accurately.
531 * testsuite/27_io/filesystem/operations/rename.cc: Test
532 error_code matches errc::no_such_file_or_directory.
533
534 2025-11-14 Jonathan Wakely <jwakely (a] redhat.com>
535
536 * include/std/any: Add diagnostic pragmas to disable warning
537 about std::aligned_storage being deprecated.
538
539 2025-11-14 Jonathan Wakely <jwakely (a] redhat.com>
540
541 Backported from master:
542 2024-09-27 Jonathan Wakely <jwakely (a] redhat.com>
543
544 * include/bits/atomic_base.h (__atomic_base<T*>::_M_type_size):
545 Replace overloaded functions with static _S_type_size.
546 * include/std/atomic (atomic<T*>): Use is_object_v instead of
547 is_object.
548 * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
549 Add dg-warning for -Wpointer-arith warning.
550
551 2025-11-14 Jonathan Wakely <jwakely (a] redhat.com>
552
553 Backported from master:
554 2024-09-27 Jonathan Wakely <jwakely (a] redhat.com>
555
556 * testsuite/20_util/bind/dangling_ref.cc: Add an additional
557 dg-warning for -Wreturn-local-addr warning.
558 * testsuite/30_threads/packaged_task/cons/dangling_ref.cc:
559 Likewise.
560
561 2025-11-14 Jonathan Wakely <jwakely (a] redhat.com>
562
563 Backported from master:
564 2025-11-13 Jonathan Wakely <jwakely (a] redhat.com>
565
566 PR libstdc++/122661
567 * include/bits/forward_list.h (forward_list::assign(I, I)): Fix
568 value category in is_assignable check.
569 * testsuite/23_containers/forward_list/modifiers/122661.cc:
570 New test.
571
572 2025-11-14 Jonathan Wakely <jwakely (a] redhat.com>
573
574 Backported from master:
575 2025-07-08 Jonathan Wakely <jwakely (a] redhat.com>
576
577 PR libstdc++/118681
578 * src/c++17/memory_resource.cc (choose_block_size): New
579 function.
580 (synchronized_pool_resource::do_allocate): Use choose_block_size
581 to determine appropriate block size.
582 (synchronized_pool_resource::do_deallocate): Likewise
583 (unsynchronized_pool_resource::do_allocate): Likewise.
584 (unsynchronized_pool_resource::do_deallocate): Likewise
585 * testsuite/20_util/synchronized_pool_resource/118681.cc: New
586 test.
587 * testsuite/20_util/unsynchronized_pool_resource/118681.cc: New
588 test.
589
590 2025-10-20 Jonathan Wakely <jwakely (a] redhat.com>
591
592 Backported from master:
593 2025-10-20 Jonathan Wakely <jwakely (a] redhat.com>
594
595 PR libstdc++/122322
596 * configure.ac (with_newlib) <*-rtems*>: Remove
597 HAVE_SYS_IOCT4YL_H, _GLIBCXX_USE_LINK, _GLIBCXX_USE_READLINK,
598 _GLIBCXX_USE_SYMLINK, _GLIBCXX_USE_TRUNCATE, and
599 _GLIBCXX_USE_FDOPENDIR. Remove duplicates.
600 * configure: Regenerate.
601
602 2025-10-15 Joel Sherrill <joel (a] rtems.org>
603
604 * configure: Regenerate.
605 * configure.ac (newlib, *-rtems*): Add HAVE_SYS_IOCTL_H,
606 HAVE_SYS_STAT_H, HAVE_SYS_TYPES_H, HAVE_S_ISREG, HAVE_UNISTD_H,
607 HAVE_UNLINKAT, _GLIBCXX_USE_CHMOD, _GLIBCXX_USE_MKDIR,
608 _GLIBCXX_USE_CHDIR, _GLIBCXX_USE_GETCWD, _GLIBCXX_USE_UTIME,
609 _GLIBCXX_USE_LINK, _GLIBCXX_USE_READLINK, _GLIBCXX_USE_SYMLINK,
610 _GLIBCXX_USE_TRUNCATE and _GLIBCXX_USE_FDOPENDIR.
611
612 2025-10-14 Jakub Jelinek <jakub (a] redhat.com>
613
614 Backported from master:
615 2025-09-08 Jakub Jelinek <jakub (a] redhat.com>
616
617 PR libstdc++/121827
618 * include/precompiled/extc++.h: Don't include ext/cast.h which is an
619 internal header.
620 * include/ext/pointer.h: Include bits/c++config.h before
621 #if _GLIBCXX_HOSTED.
622
623 2025-10-06 Jonathan Wakely <jwakely (a] redhat.com>
624
625 PR libstdc++/122168
626 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Add
627 dg-error for additional error seen with -Wsystem-headers.
628
629 2025-10-01 Patrick Palka <ppalka (a] redhat.com>
630
631 Backported from master:
632 2025-09-24 Patrick Palka <ppalka (a] redhat.com>
633
634 * testsuite/17_intro/names.cc: Undefine 'u' on s390*-linux.
635
636 2025-10-01 Patrick Palka <ppalka (a] redhat.com>
637
638 Backported from master:
639 2025-09-17 Patrick Palka <ppalka (a] redhat.com>
640
641 * testsuite/20_util/bind/dangling_ref.cc: Compile with
642 -Wsystem-headers.
643 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
644 * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
645 Likewise.
646 * testsuite/30_threads/packaged_task/cons/dangling_ref.cc:
647 Likewise.
648
649 2025-09-15 Jonathan Wakely <jwakely (a] redhat.com>
650
651 Backported from master:
652 2025-09-12 Jonathan Wakely <jwakely (a] redhat.com>
653
654 PR libstdc++/117276
655 * include/pstl/parallel_backend_tbb.h (__func_task::finalize):
656 Make deallocation unconditional.
657
658 2025-09-15 Jonathan Wakely <jwakely (a] redhat.com>
659
660 Backported from master:
661 2025-09-10 Jonathan Wakely <jwakely (a] redhat.com>
662
663 * include/bits/unique_ptr.h: Remove blank line.
664
665 2025-09-09 Tomasz Kamiski <tkaminsk (a] redhat.com>
666
667 Backported from master:
668 2025-09-05 Tomasz Kamiski <tkaminsk (a] redhat.com>
669
670 * doc/html/manual/status.html: Regenerate.
671 * doc/xml/manual/status_cxx2011.xml: Add entry for bad_function_call.
672 * doc/xml/manual/status_cxx2017.xml: Add entries for bad_any_cast
673 and nullptr_t output. Update entry for sf.cmath. Fix stable name for
674 mem.res.
675
676 2025-09-09 Tomasz Kamiski <tkaminsk (a] redhat.com>
677
678 Backported from master:
679 2025-09-05 Tomasz Kamiski <tkaminsk (a] redhat.com>
680
681 * doc/html/manual/status.html: Regenerate the file.
682 * doc/xml/manual/status_cxx2017.xml: Addd more entires.
683
684 2025-09-08 Jonathan Wakely <jwakely (a] redhat.com>
685
686 Backported from master:
687 2025-09-08 Jonathan Wakely <jwakely (a] redhat.com>
688
689 PR libstdc++/120698
690 * doc/xml/manual/configure.xml: Do not claim that vtv is enabled
691 by default.
692 * doc/html/manual/configure.html: Regenerate.
693
694 2025-09-04 Jonathan Wakely <jwakely (a] redhat.com>
695
696 Backported from master:
697 2025-09-03 Jonathan Wakely <jwakely (a] redhat.com>
698
699 PR libstdc++/110853
700 * include/bits/stl_pair.h [C++20] (pair(const T1&, const T2&)):
701 Use std::type_identity_t<T1> for first parameter.
702 * testsuite/20_util/pair/cons/110853.cc: New test.
703
704 2025-09-04 Jonathan Wakely <jwakely (a] redhat.com>
705
706 Backported from master:
707 2025-09-03 Jonathan Wakely <jwakely (a] redhat.com>
708
709 PR libstdc++/121745
710 * include/bits/stl_pair.h (get): Use forward instead of move in
711 std::get<T> overloads for rvalue pairs.
712 * testsuite/20_util/pair/astuple/get_by_type.cc: Check all value
713 categories and cv-qualification.
714
715 2025-09-04 Yihan Wang <yronglin777 (a] gmail.com>
716
717 Backported from master:
718 2025-09-03 Yihan Wang <yronglin777 (a] gmail.com>
719
720 * include/std/expected (expected(U&&)): Add missing constraint
721 as per LWG 4222.
722 * testsuite/20_util/expected/lwg4222.cc: New test.
723
724 2025-09-04 Jonathan Wakely <jwakely (a] redhat.com>
725
726 Backported from master:
727 2024-07-25 Jonathan Wakely <jwakely (a] redhat.com>
728
729 * include/std/expected (expected): Constrain constructors to
730 prevent problematic bool conversions, as per LWG 3836.
731 * testsuite/20_util/expected/lwg3836.cc: New test.
732
733 2025-09-03 Jonathan Wakely <jwakely (a] redhat.com>
734
735 Backported from master:
736 2024-11-01 Jonathan Wakely <jwakely (a] redhat.com>
737
738 * testsuite/23_containers/unordered_set/pr115285.cc: Include
739 missing header for std::vector.
740
741 2025-09-03 Jonathan Wakely <jwakely (a] redhat.com>
742
743 * include/bits/regex_compiler.h (_Compiler::_S_validate): Add
744 diagnostic pragma to disable -Wswitch warning.
745
746 2025-09-03 Jonathan Wakely <jwakely (a] redhat.com>
747
748 Backported from master:
749 2025-08-21 Jonathan Wakely <jwakely (a] redhat.com>
750
751 PR libstdc++/121496
752 * include/std/mutex (__timed_mutex_impl::_M_try_wait_until):
753 Change preprocessor condition to use #if instead of #ifdef.
754 (recursive_timed_mutex::_M_clocklock): Likewise.
755 * testsuite/30_threads/timed_mutex/121496.cc: New test.
756
757 2025-09-03 Jonathan Wakely <jwakely (a] redhat.com>
758
759 Backported from master:
760 2025-08-21 Jonathan Wakely <jwakely (a] redhat.com>
761
762 PR libstdc++/121374
763 * include/std/limits (numeric_limits<__float128>::max_digits10):
764 Fix value.
765 * testsuite/18_support/numeric_limits/128bit.cc: Check value.
766
767 2025-09-03 Jonathan Wakely <jwakely (a] redhat.com>
768
769 Backported from master:
770 2025-07-17 Jonathan Wakely <jwakely (a] redhat.com>
771
772 PR libstdc++/121097
773 * include/c_global/cmath (hypot): Use __promote_3 instead of
774 __promoted.
775
776 2025-06-11 Jonathan Wakely <jwakely (a] redhat.com>
777
778 Backported from master:
779 2025-06-05 Jonathan Wakely <jwakely (a] redhat.com>
780
781 PR libstdc++/120548
782 * include/std/format (__formatter_fp::_M_localize): Do not
783 include a leading sign character in the string to be grouped.
784 * testsuite/std/format/functions/format.cc: Check grouping when
785 sign is present in the output.
786
787 2025-06-11 Jonathan Wakely <jwakely (a] redhat.com>
788
789 Backported from master:
790 2024-09-14 Jonathan Wakely <jwakely (a] redhat.com>
791
792 * include/std/format (__formatter_fp::_M_localize): Add comments
793 and micro-optimize string copy.
794
795 2025-06-11 Jonathan Wakely <jwakely (a] redhat.com>
796
797 Backported from master:
798 2025-06-04 Jonathan Wakely <jwakely (a] redhat.com>
799
800 PR libstdc++/99832
801 * include/bits/chrono.h (system_clock::to_time_t): Add
802 always_inline attribute to be agnostic to the underlying type of
803 time_t.
804 (system_clock::from_time_t): Add always_inline for consistency
805 with to_time_t.
806 * testsuite/20_util/system_clock/99832.cc: New test.
807
808 2025-06-10 Jonathan Wakely <jwakely (a] redhat.com>
809
810 Backported from master:
811 2025-05-20 Jonathan Wakely <jwakely (a] redhat.com>
812
813 * doc/xml/faq.xml: Update URL for archived SGI STL docs.
814 * doc/xml/manual/containers.xml: Likewise.
815 * doc/xml/manual/extensions.xml: Likewise.
816 * doc/xml/manual/using.xml: Likewise.
817 * doc/xml/manual/utilities.xml: Likewise.
818 * doc/html/*: Regenerate.
819
820 2025-06-05 Giuseppe D'Angelo <giuseppe.dangelo (a] kdab.com>
821
822 Backported from master:
823 2025-03-14 Giuseppe D'Angelo <giuseppe.dangelo (a] kdab.com>
824
825 * include/bits/shared_ptr_base.h (lock): Fixed a compile error
826 when calling lock() on a weak_ptr<T[]>, by removing an
827 erroneous usage of element_type from within lock().
828 * testsuite/20_util/shared_ptr/requirements/explicit_instantiation/1.cc:
829 Add more tests for array types.
830 * testsuite/20_util/weak_ptr/requirements/explicit_instantiation/1.cc:
831 Likewise.
832 * testsuite/20_util/shared_ptr/requirements/1.cc: New test.
833 * testsuite/20_util/weak_ptr/requirements/1.cc: New test.
834
835 2025-05-23 Release Manager
836
837 * GCC 14.3.0 released.
838
839 2025-05-13 Jonathan Wakely <jwakely (a] redhat.com>
840
841 Backported from master:
842 2025-05-12 Jonathan Wakely <jwakely (a] redhat.com>
843
844 PR libstdc++/120198
845 * include/bits/version.def (scoped_lock): Do not depend on
846 gthreads or hosted.
847 * include/bits/version.h: Regenerate.
848 * include/std/mutex (scoped_lock): Update comment.
849 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc:
850 Remove dg-require-gthreads and use custom lockable type instead
851 of std::mutex. Check that typedef is only present for a single
852 template argument.
853
854 2025-05-12 Jonathan Wakely <jwakely (a] redhat.com>
855
856 * doc/xml/manual/status_cxx2023.xml: Update status of proposal
857 implemented after GCC 14.2 release.
858 * doc/html/manual/status.html: Regenerate.
859
860 2025-05-06 Dhruv Chawla <dhruvc (a] nvidia.com>
861
862 Backported from master:
863 2025-05-02 Dhruv Chawla <dhruvc (a] nvidia.com>
864
865 * include/std/memory: Define __glibcxx_want_addressof_constexpr.
866 * testsuite/20_util/headers/memory/version.cc: Test for macro
867 value.
868
869 2025-04-30 Franois Dumont <frs.dumont (a] gmail.com>
870
871 Backported from master:
872 2025-04-30 Franois Dumont <frs.dumont (a] gmail.com>
873 Jonathan Wakely <jwakely (a] redhat.com>
874
875 * testsuite/lib/libstdc++.exp (v3_target_compile): Strip version namespace
876 from compiler output.
877 * testsuite/20_util/function/cons/70692.cc: Remove now useless __8 namespace
878 pattern.
879 * testsuite/23_containers/map/48101_neg.cc: Likewise.
880 * testsuite/23_containers/multimap/48101_neg.cc: Likewise.
881
882 2025-04-29 Patrick Palka <ppalka (a] redhat.com>
883
884 Backported from master:
885 2025-02-28 Patrick Palka <ppalka (a] redhat.com>
886
887 PR libstdc++/104606
888 * include/std/optional (operator<=>): Revert r14-9771 change.
889 Add constraint checking the validity of the return type
890 compare_three_way_result_t before the three_way_comparable_with
891 constraint.
892
893 2025-04-29 Patrick Palka <ppalka (a] redhat.com>
894
895 Backported from master:
896 2025-02-26 Patrick Palka <ppalka (a] redhat.com>
897
898 PR libstdc++/118083
899 * include/bits/ranges_base.h
900 (ranges::__access::__possibly_const_range): Mention LWG 4027.
901
902 2025-04-29 Patrick Palka <ppalka (a] redhat.com>
903
904 Backported from master:
905 2025-02-25 Patrick Palka <ppalka (a] redhat.com>
906
907 PR libstdc++/118083
908 * include/bits/ranges_base.h
909 (ranges::__access::__possibly_const_range): Adjust logic as per
910 LWG 4027. Add missing input_range constraint.
911 * testsuite/std/ranges/access/cbegin.cc (test05): Verify LWG
912 4027 testcases.
913 * testsuite/std/ranges/access/cdata.cc: Adjust, simplify and
914 consolidate some tests after the above.
915 * testsuite/std/ranges/access/cend.cc: Likewise.
916 * testsuite/std/ranges/access/crbegin.cc: Likewise.
917 * testsuite/std/ranges/access/crend.cc: Likewise.
918 * testsuite/std/ranges/adaptors/join.cc: Likewise.
919 * testsuite/std/ranges/adaptors/take_while.cc: Likewise.
920 * testsuite/std/ranges/adaptors/transform.cc: Likewise.
921
922 2025-04-17 Tomasz Kamiski <tkaminsk (a] redhat.com>
923
924 Backported from master:
925 2025-03-12 Tomasz Kamiski <tkaminsk (a] redhat.com>
926
927 * include/std/format (formatter<_Float16, _CharT>): Define only if
928 _GLIBCXX_FLOAT_IS_IEEE_BINARY32 macro is defined.
929 (formatter<_Float16, _CharT>): As above.
930 (formatter<__gnu_cxx::__bfloat16_t, _CharT>): As above.
931 (formatter<_Float64, _CharT>): Define only if
932 _GLIBCXX_DOUBLE_IS_IEEE_BINARY64 is defined.
933 (basic_format_arg::_S_to_arg_type): Normalize _Float32 and _Float64
934 only to float and double respectivelly.
935 (basic_format_arg::_S_to_enum): Remove handling of _Float32 and _Float64.
936
937 2025-04-16 Jonathan Wakely <jwakely (a] redhat.com>
938
939 * include/std/numeric: Only mention ranges::iota in comment.
940
941 2025-04-16 Jonathan Wakely <jwakely (a] redhat.com>
942
943 * testsuite/17_intro/names.cc: Check ranges is not used as an
944 identifier before C++20.
945
946 2025-04-16 Jonathan Wakely <jwakely (a] redhat.com>
947
948 Backported from master:
949 2025-04-15 Jonathan Wakely <jwakely (a] redhat.com>
950
951 * include/std/ranges (__glibcxx_want_ranges_iota): Do not
952 define.
953
954 2025-04-16 Michael Levine <mlevine55 (a] bloomberg.net>
955
956 Backported from master:
957 2024-06-08 Michael Levine <mlevine55 (a] bloomberg.net>
958
959 PR libstdc++/108760
960 * include/bits/ranges_algo.h (ranges::out_value_result)
961 (ranges::iota_result, ranges::__iota_fn, ranges::iota): Move to
962 <bits/ranges_algobase.h>.
963 * include/bits/ranges_algobase.h (ranges::out_value_result):
964 (ranges::iota_result, ranges::__iota_fn, ranges::iota): Move to
965 here.
966 * include/std/numeric: Include <bits/ranges_algobase.h>.
967 * testsuite/25_algorithms/iota/1.cc: Renamed to ...
968 * testsuite/26_numerics/iota/2.cc: ... here.
969
970 2025-04-16 Jonathan Wakely <jwakely (a] redhat.com>
971
972 Backported from master:
973 2025-02-28 Jonathan Wakely <jwakely (a] redhat.com>
974
975 PR libstdc++/105609
976 * include/bits/ranges_algobase.h (__detail::__assign_one): New
977 helper function.
978 (__copy_or_move, __copy_or_move_backward): Use new function
979 instead of std::__assign_one.
980 * testsuite/25_algorithms/move/constrained.cc: Check that
981 ADL iter_move is used in preference to std::move.
982 * testsuite/25_algorithms/move_backward/constrained.cc:
983 Likewise.
984
985 2025-04-16 Jonathan Wakely <jwakely (a] redhat.com>
986
987 Backported from master:
988 2024-10-18 Jonathan Wakely <jwakely (a] redhat.com>
989
990 * include/bits/ranges_algobase.h (ranges::__assign_one): Remove.
991 (__copy_or_move, __copy_or_move_backward): Use std::__assign_one
992 instead of ranges::__assign_one.
993
994 2025-04-16 Jonathan Wakely <jwakely (a] redhat.com>
995
996 Backported from master:
997 2024-10-13 Jonathan Wakely <jwakely (a] redhat.com>
998
999 PR libstdc++/117121
1000 * include/bits/ranges_algobase.h (copy_backward): Decrement
1001 output iterator before assigning one element through it.
1002 * testsuite/25_algorithms/copy/108846.cc: Ensure the algorithm's
1003 effects are correct for a single memcpyable element.
1004 * testsuite/25_algorithms/copy_backward/108846.cc: Likewise.
1005 * testsuite/25_algorithms/copy_n/108846.cc: Likewise.
1006
1007 2025-04-16 Giuseppe D'Angelo <giuseppe.dangelo (a] kdab.com>
1008
1009 Backported from master:
1010 2024-09-13 Giuseppe D'Angelo <giuseppe.dangelo (a] kdab.com>
1011
1012 PR libstdc++/108846
1013 PR libstdc++/116471
1014 * include/bits/ranges_algobase.h (__assign_one): New helper
1015 function.
1016 (__copy_or_move): Remove a spurious static_assert; use
1017 __assign_one for memcpyable ranges of length 1.
1018 (__copy_or_move_backward): Likewise.
1019 * testsuite/25_algorithms/copy/108846.cc: Extend to range-based
1020 algorithms, and cover both memcpyable and non-memcpyable
1021 cases.
1022 * testsuite/25_algorithms/copy_backward/108846.cc: Likewise.
1023 * testsuite/25_algorithms/copy_n/108846.cc: Likewise.
1024 * testsuite/25_algorithms/move/108846.cc: Likewise.
1025 * testsuite/25_algorithms/move_backward/108846.cc: Likewise.
1026
1027 2025-04-16 Jonathan Wakely <jwakely (a] redhat.com>
1028
1029 Backported from master:
1030 2024-06-07 Jonathan Wakely <jwakely (a] redhat.com>
1031
1032 * include/bits/ranges_algobase.h: Include <bits/stl_algobase.h>.
1033
1034 2025-04-15 Jonathan Wakely <jwakely (a] redhat.com>
1035
1036 Backported from master:
1037 2025-04-14 Jonathan Wakely <jwakely (a] redhat.com>
1038
1039 PR libstdc++/21334
1040 * doc/xml/manual/using.xml: Document that container data race
1041 avoidance rules do not apply to COW std::string.
1042 * doc/html/*: Regenerate.
1043
1044 2025-04-10 Jonathan Wakely <jwakely (a] redhat.com>
1045
1046 Backported from master:
1047 2024-11-07 Jonathan Wakely <jwakely (a] redhat.com>
1048
1049 PR libstdc++/115285
1050 * include/bits/hashtable.h (_Hashtable::_S_forward_key): Remove.
1051 (_Hashtable::_M_insert_unique_aux): Replace _S_forward_key with
1052 a static_cast to a type defined using conditional_t.
1053 (_Hashtable::_M_insert): Replace _ConvertToValueType with a
1054 static_cast to a type defined using conditional_t.
1055 * include/bits/hashtable_policy.h (_ConvertToValueType): Remove.
1056 * testsuite/23_containers/unordered_map/insert/115285.cc: New test.
1057 * testsuite/23_containers/unordered_set/insert/115285.cc: New test.
1058 * testsuite/23_containers/unordered_set/96088.cc: Adjust
1059 expected number of allocations.
1060
1061 2025-04-10 Jonathan Wakely <jwakely (a] redhat.com>
1062
1063 Backported from master:
1064 2024-11-07 Jonathan Wakely <jwakely (a] redhat.com>
1065
1066 * include/bits/stl_pair.h (__is_pair): Define for C++11 and
1067 C++14 as well.
1068
1069 2025-04-10 Franois Dumont <frs.dumont (a] gmail.com>
1070
1071 Backported from master:
1072 2024-10-24 Franois Dumont <frs.dumont (a] gmail.com>
1073
1074 * testsuite/23_containers/unordered_map/96088.cc (test03): Fix increments
1075 value when _GLIBCXX_USE_CXX11_ABI is equal to 0.
1076
1077 2025-04-10 Franois Dumont <frs.dumont (a] gmail.com>
1078
1079 Backported from master:
1080 2024-10-23 Franois Dumont <frs.dumont (a] gmail.com>
1081
1082 PR libstdc++/115285
1083 * include/bits/hashtable.h (_S_forward_key<_Kt>): Always return a temporary
1084 key_type instance.
1085 * testsuite/23_containers/unordered_map/96088.cc: Adapt to additional instanciation.
1086 Also check that mapped_type is not instantiated when there is no insertion.
1087 * testsuite/23_containers/unordered_multimap/96088.cc: Adapt to additional
1088 instanciation.
1089 * testsuite/23_containers/unordered_multiset/96088.cc: Likewise.
1090 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
1091 * testsuite/23_containers/unordered_set/pr115285.cc: New test case.
1092
1093 2025-04-09 Patrick Palka <ppalka (a] redhat.com>
1094
1095 Backported from master:
1096 2025-04-09 Patrick Palka <ppalka (a] redhat.com>
1097
1098 PR libstdc++/115046
1099 PR libstdc++/112490
1100 * include/bits/stl_iterator.h (basic_const_iterator::operator-):
1101 Replace non-dependent basic_const_iterator function parameter with
1102 a dependent one of type basic_const_iterator<_It2> where _It2
1103 matches _It.
1104 * testsuite/std/ranges/adaptors/as_const/1.cc (test04): New test.
1105
1106 2025-04-08 Jonathan Wakely <jwakely (a] redhat.com>
1107
1108 Backported from master:
1109 2025-04-08 Jonathan Wakely <jwakely (a] redhat.com>
1110
1111 PR libstdc++/119671
1112 * include/std/format (__formatter_fp::format): Do not invalidate
1113 __wstr unless _M_localized returns a valid string.
1114 * testsuite/std/format/functions/format.cc: Check wide string
1115 formatting of floating-point types with classic locale.
1116
1117 2025-04-08 Jonathan Wakely <jwakely (a] redhat.com>
1118
1119 Backported from master:
1120 2025-04-07 Jonathan Wakely <jwakely (a] redhat.com>
1121
1122 * doc/doxygen/user.cfg.in (INPUT): Add text_encoding.
1123
1124 2025-04-08 Jonathan Wakely <jwakely (a] redhat.com>
1125
1126 Backported from master:
1127 2025-04-04 Jonathan Wakely <jwakely (a] redhat.com>
1128
1129 PR libstdc++/101587
1130 * include/bits/ranges_uninitialized.h (__detail::__mindist):
1131 Remove.
1132 (ranges::uninitialized_copy, ranges::uninitialized_copy_n)
1133 (ranges::uninitialized_move, ranges::uninitialized_move_n): Use
1134 comparison and assignment instead of __mindist.
1135 * testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc:
1136 Check with ranges that use integer-like class type for
1137 difference type.
1138 * testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc:
1139 Likewise.
1140
1141 2025-04-08 Jonathan Wakely <jwakely (a] redhat.com>
1142
1143 Backported from master:
1144 2025-03-27 Jonathan Wakely <jwakely (a] redhat.com>
1145
1146 PR libstdc++/101587
1147 * include/bits/ranges_uninitialized.h (__detail::__mindist):
1148 New function object.
1149 (ranges::uninitialized_copy, ranges::uninitialized_copy_n)
1150 (ranges::uninitialized_move, ranges::uninitialized_move_n): Use
1151 __mindist instead of std::min.
1152 * testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc:
1153 Check ranges with difference difference types.
1154 * testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc:
1155 Likewise.
1156
1157 2025-04-07 Patrick Palka <ppalka (a] redhat.com>
1158
1159 Backported from master:
1160 2025-03-13 Patrick Palka <ppalka (a] redhat.com>
1161
1162 PR libstdc++/116440
1163 * include/std/tuple (tuple::tuple(const _Elements&...))
1164 [C++20]: Turn into a template.
1165 * testsuite/20_util/tuple/116440.C: New test.
1166
1167 2025-04-03 Tomasz Kamiski <tkaminsk (a] redhat.com>
1168
1169 Backported from master:
1170 2025-04-03 Tomasz Kamiski <tkaminsk (a] redhat.com>
1171
1172 * testsuite/std/format/functions/format.cc: Restored line.
1173
1174 2025-04-03 Tomasz Kamiski <tkaminsk (a] redhat.com>
1175
1176 PR libstdc++/119593
1177 * include/bits/unicode.h
1178 (__unicode::__literal_encoding_is_unicode<_CharT>):
1179 Corrected handing for UTF-16 and UTF-32 with "LE" or "BE" suffix.
1180 * include/std/format (__formatter_str::_S_character_width):
1181 Define.
1182 (__formatter_str::_S_character_width): Updated passed char
1183 length.
1184 * testsuite/std/format/functions/format.cc: Test for wchar_t.
1185
1186 2025-04-02 Jonathan Wakely <jwakely (a] redhat.com>
1187
1188 Backported from master:
1189 2025-03-27 Jonathan Wakely <jwakely (a] redhat.com>
1190
1191 PR libstdc++/119469
1192 * include/bits/iterator_concepts.h (_IterMove::__result): Use
1193 decltype-specifier instead of an explicit type.
1194 * testsuite/24_iterators/customization_points/iter_move.cc:
1195 Check results for function references.
1196
1197 2025-04-02 Jonathan Wakely <jwakely (a] redhat.com>
1198
1199 Backported from master:
1200 2025-02-28 Jonathan Wakely <jwakely (a] redhat.com>
1201
1202 PR libstdc++/106612
1203 * include/bits/iterator_concepts.h (_IterMove::__iter_ref_t):
1204 New alias template.
1205 (_IterMove::__result): Use __iter_ref_t instead of
1206 std::iter_reference_t.
1207 (_IterMove::__type): Remove incorrect __dereferenceable
1208 constraint.
1209 (_IterMove::operator()): Likewise. Add correct constraints. Use
1210 __iter_ref_t instead of std::iter_reference_t. Forward parameter
1211 as correct value category.
1212 (iter_swap): Add comments.
1213 * testsuite/24_iterators/customization_points/iter_move.cc: Test
1214 that iter_move is found by ADL and that rvalue arguments are
1215 handled correctly.
1216
1217 2025-04-02 Jonathan Wakely <jwakely (a] redhat.com>
1218
1219 Backported from master:
1220 2025-03-31 Jonathan Wakely <jwakely (a] redhat.com>
1221
1222 PR libstdc++/110498
1223 * include/bits/vector.tcc (vector<bool, A>::_M_reallocate):
1224 Hoist loads of begin() and end() before allocation and use them
1225 to state an unreachable condition.
1226 * testsuite/23_containers/vector/bool/capacity/110498.cc: New
1227 test.
1228
1229 2025-04-02 Jonathan Wakely <jwakely (a] redhat.com>
1230
1231 Backported from master:
1232 2025-03-31 Jonathan Wakely <jwakely (a] redhat.com>
1233
1234 PR libstdc++/114758
1235 * include/bits/vector.tcc (vector<bool, A>::_M_fill_insert):
1236 Hoist loads of begin() and end() before allocation.
1237 * testsuite/23_containers/vector/bool/capacity/114758.cc: New
1238 test.
1239
1240 2025-04-02 Jonathan Wakely <jwakely (a] redhat.com>
1241
1242 Backported from master:
1243 2025-03-28 Jonathan Wakely <jwakely (a] redhat.com>
1244
1245 PR libstdc++/117983
1246 * include/bits/vector.tcc (vector::_M_range_insert): Add
1247 unreachable condition to tell the compiler begin() <= end().
1248 * testsuite/23_containers/vector/modifiers/insert/117983.cc: New
1249 test.
1250
1251 2025-04-02 Jonathan Wakely <jwakely (a] redhat.com>
1252
1253 Backported from master:
1254 2025-04-01 Jonathan Wakely <jwakely (a] redhat.com>
1255
1256 PR libstdc++/114945
1257 * include/bits/vector.tcc (vector::_M_default_append): Add
1258 unreachable condition so the compiler knows that _M_finish is
1259 not null.
1260 * testsuite/23_containers/vector/capacity/114945.cc: New test.
1261
1262 2025-04-01 Jonathan Wakely <jwakely (a] redhat.com>
1263
1264 PR libstdc++/116212
1265 * testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc:
1266 Use unsigned for vector size.
1267
1268 2025-04-01 Jonathan Wakely <jwakely (a] redhat.com>
1269
1270 Backported from master:
1271 2024-06-13 Jonathan Wakely <jwakely (a] redhat.com>
1272
1273 * include/bits/ranges_base.h (range_common_reference_t): New
1274 alias template, as per LWG 3860.
1275 * testsuite/std/ranges/range.cc: Check it.
1276
1277 2025-04-01 Jonathan Wakely <jwakely (a] redhat.com>
1278
1279 Backported from master:
1280 2025-01-16 Jonathan Wakely <jwakely (a] redhat.com>
1281
1282 * include/bits/stl_map.h: Check __glibcxx_node_extract instead
1283 of __cplusplus.
1284 * include/bits/stl_multimap.h: Likewise.
1285 * include/bits/stl_multiset.h: Likewise.
1286 * include/bits/stl_set.h: Likewise.
1287 * include/bits/stl_tree.h: Likewise.
1288
1289 2025-04-01 Jonathan Wakely <jwakely (a] redhat.com>
1290
1291 Backported from master:
1292 2025-03-12 Jonathan Wakely <jwakely (a] redhat.com>
1293
1294 * include/std/future (packaged_task::packaged_task(F&&)): Add
1295 static_assert.
1296 * testsuite/30_threads/packaged_task/cons/dangling_ref.cc: Add
1297 dg-error for new static assertion.
1298 * testsuite/30_threads/packaged_task/cons/lwg4154_neg.cc: New
1299 test.
1300
1301 2025-04-01 Jonathan Wakely <jwakely (a] redhat.com>
1302
1303 Backported from master:
1304 2025-03-25 Jonathan Wakely <jwakely (a] redhat.com>
1305
1306 PR libstdc++/118699
1307 * testsuite/27_io/filesystem/operations/copy.cc: Check copying a
1308 file to a directory.
1309
1310 2025-03-31 Jonathan Wakely <jwakely (a] redhat.com>
1311
1312 Backported from master:
1313 2025-03-24 Jonathan Wakely <jwakely (a] redhat.com>
1314
1315 PR libstdc++/101527
1316 * testsuite/24_iterators/common_iterator/101527.cc: New test.
1317 * testsuite/24_iterators/counted_iterator/101527.cc: New test.
1318
1319 2025-03-31 Jonathan Wakely <jwakely (a] redhat.com>
1320
1321 Backported from master:
1322 2025-03-04 Jonathan Wakely <jwakely (a] redhat.com>
1323
1324 * doc/xml/manual/test.xml: Remove stray comma.
1325 * doc/html/manual/test.html: Regenerate.
1326
1327 2025-03-31 Jonathan Wakely <jwakely (a] redhat.com>
1328
1329 Backported from master:
1330 2025-03-07 Jonathan Wakely <jwakely (a] redhat.com>
1331
1332 * include/std/forward_list (erase): Change lambda to have
1333 explicit return type and const parameter type.
1334 * include/std/list (erase): Likewise.
1335 * testsuite/23_containers/forward_list/erasure.cc: Check lambda
1336 is correct.
1337 * testsuite/23_containers/list/erasure.cc: Likewise.
1338
1339 2025-03-31 Jonathan Wakely <jwakely (a] redhat.com>
1340
1341 Backported from master:
1342 2025-03-24 Jonathan Wakely <jwakely (a] redhat.com>
1343
1344 * doc/xml/manual/policy_data_structures_biblio.xml: Fix two
1345 broken links.
1346 * doc/html/manual/policy_data_structures.html: Regenerate.
1347
1348 2025-03-31 Jonathan Wakely <jwakely (a] redhat.com>
1349
1350 Backported from master:
1351 2025-03-25 Jonathan Wakely <jwakely (a] redhat.com>
1352
1353 PR libstdc++/108487
1354 * include/bits/stl_vector.h (vector(initializer_list)): Call
1355 _M_range_initialize_n instead of _M_range_initialize.
1356 (vector(InputIterator, InputIterator)): Use _M_range_initialize_n
1357 for C++20 sized sentinels and forward iterators.
1358 (vector::_M_range_initialize(FwIt, FwIt, forward_iterator_tag)):
1359 Use _M_range_initialize_n.
1360 (vector::_M_range_initialize_n): New function.
1361 * testsuite/23_containers/vector/cons/108487.cc: New test.
1362
1363 2025-03-31 Jonathan Wakely <jwakely (a] redhat.com>
1364
1365 Backported from master:
1366 2025-03-27 Jonathan Wakely <jwakely (a] redhat.com>
1367
1368 * src/c++20/tzdata.zi: Import new file from 2025b release.
1369
1370 2025-03-31 Jonathan Wakely <jwakely (a] redhat.com>
1371
1372 Backported from master:
1373 2025-03-12 Jonathan Wakely <jwakely (a] redhat.com>
1374
1375 * include/std/chrono (__detail::__get_leap_second_info): Update
1376 expiry date for leap seconds list.
1377 * src/c++20/tzdata.zi: Import new file from 2025a release.
1378 * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds)
1379 Update expiry date for leap seconds list.
1380
1381 2025-03-26 Jonathan Wakely <jwakely (a] redhat.com>
1382
1383 Backported from master:
1384 2025-03-25 Jonathan Wakely <jwakely (a] redhat.com>
1385
1386 * include/std/ranges (ranges::to): Allow unions as well as
1387 non-union class types.
1388 * testsuite/std/ranges/conv/lwg4229.cc: New test.
1389
1390 2025-03-26 Jonathan Wakely <jwakely (a] redhat.com>
1391
1392 Backported from master:
1393 2025-02-28 Jonathan Wakely <jwakely (a] redhat.com>
1394
1395 PR libstdc++/112803
1396 * include/std/ranges (ranges::to): Add static assertions to
1397 enforce Mandates conditions.
1398 * testsuite/std/ranges/conv/112803.cc: New test.
1399
1400 2025-03-26 Jonathan Wakely <jwakely (a] redhat.com>
1401
1402 Backported from master:
1403 2025-03-25 Jonathan Wakely <jwakely (a] redhat.com>
1404
1405 PR libstdc++/119429
1406 * include/std/format (__format::_Scanner::_Scanner): Cast
1407 default argument to size_t.
1408
1409 2025-03-26 Jonathan Wakely <jwakely (a] redhat.com>
1410
1411 Backported from master:
1412 2024-08-23 Jonathan Wakely <jwakely (a] redhat.com>
1413
1414 PR libstdc++/115939
1415 * include/bits/hashtable_policy.h (_Node_iterator): Add
1416 operator== and operator!=.
1417 (_Node_const_iterator): Likewise.
1418 * testsuite/23_containers/unordered_map/115939.cc: New test.
1419
1420 2025-03-25 Patrick Palka <ppalka (a] redhat.com>
1421
1422 Backported from master:
1423 2025-03-13 Patrick Palka <ppalka (a] redhat.com>
1424
1425 PR libstdc++/119135
1426 * include/std/ranges: Include <utility>.
1427 (views::__detail::__is_ref_view): Replace with ...
1428 (views::__detail::__is_constable_ref_view): ... this.
1429 (views::_AsConst::operator()): Replace bogus use of element_type
1430 in the ref_view branch.
1431 * testsuite/std/ranges/adaptors/as_const/1.cc (test03): Extend
1432 test.
1433
1434 2025-03-21 Jonathan Wakely <jwakely (a] redhat.com>
1435
1436 Backported from master:
1437 2025-03-19 Jonathan Wakely <jwakely (a] redhat.com>
1438
1439 * doc/xml/manual/test.xml: Fix default for -std option.
1440 * doc/html/manual/test.html: Regenerate.
1441
1442 2025-03-21 Jakub Jelinek <jakub (a] redhat.com>
1443
1444 Backported from master:
1445 2025-03-20 Jakub Jelinek <jakub (a] redhat.com>
1446
1447 * testsuite/18_support/numeric_limits/traps.cc (main): Fix comment
1448 typo.
1449
1450 2025-03-21 Jonathan Wakely <jwakely (a] redhat.com>
1451
1452 Backported from master:
1453 2025-03-19 Jonathan Wakely <jwakely (a] redhat.com>
1454
1455 * include/bits/locale_facets_nonio.tcc (time_put::do_put): Fix
1456 typo in comment.
1457
1458 2025-03-18 Patrick Palka <ppalka (a] redhat.com>
1459
1460 Backported from master:
1461 2025-02-28 Patrick Palka <ppalka (a] redhat.com>
1462
1463 PR libstdc++/112490
1464 * include/bits/stl_iterator.h (basic_const_iterator::operator<):
1465 Replace non-dependent basic_const_iterator function parameter with
1466 a dependent one of type basic_const_iterator<_It3> where _It3
1467 matches _It.
1468 (basic_const_iterator::operator>): Likewise.
1469 (basic_const_iterator::operator<=): Likewise.
1470 (basic_const_iterator::operator>=): Likewise.
1471 * testsuite/24_iterators/const_iterator/112490.cc: New test.
1472
1473 2025-03-05 Tomasz Kamiski <tkaminsk (a] redhat.com>
1474
1475 Backported from master:
1476 2025-03-05 Tomasz Kamiski <tkaminsk (a] redhat.com>
1477
1478 PR libstdc++/119121
1479 * include/bits/ranges_util.h (__detail::__pair_like_convertible_from):
1480 Use `_Tp` in `is_reference_v` check
1481 * testsuite/std/ranges/subrange/tuple_like.cc: New tests for
1482 pair-like conversion
1483
1484 2025-02-28 Jonathan Wakely <jwakely (a] redhat.com>
1485
1486 Backported from master:
1487 2025-02-20 Jonathan Wakely <jwakely (a] redhat.com>
1488
1489 PR libstdc++/118811
1490 * src/c++20/tzdb.cc (tzdb_list::_Node): Move definitions of
1491 static data members to new header.
1492 * src/c++20/tzdb_globals.h: New header. Use init_priority
1493 attribute on static data members.
1494 * testsuite/std/time/tzdb_list/pr118811.cc: New test.
1495
1496 2025-02-28 Jonathan Wakely <jwakely (a] redhat.com>
1497
1498 Backported from master:
1499 2024-08-23 Jonathan Wakely <jwakely (a] redhat.com>
1500
1501 * include/std/tuple: Do not include implementation details in
1502 Doxygen documentation.
1503
1504 2025-02-28 Jonathan Wakely <jwakely (a] redhat.com>
1505
1506 Backported from master:
1507 2025-02-27 Jonathan Wakely <jwakely (a] redhat.com>
1508
1509 * include/std/stacktrace (_Impl::_M_allocate): Fix outdated
1510 comment.
1511
1512 2025-02-28 Jonathan Wakely <jwakely (a] redhat.com>
1513
1514 Backported from master:
1515 2024-06-03 Jonathan Wakely <jwakely (a] redhat.com>
1516
1517 * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
1518 Use __detail::__get_temporary_buffer.
1519 (basic_stacktrace::_Impl::_M_deallocate): Use
1520 __detail::__return_temporary_buffer.
1521
1522 2025-02-28 Jonathan Wakely <jwakely (a] redhat.com>
1523
1524 Backported from master:
1525 2024-06-03 Jonathan Wakely <jwakely (a] redhat.com>
1526
1527 * include/std/string_view (starts_with(basic_string_view)):
1528 Compare lengths first and then call traits_type::compare
1529 directly.
1530
1531 2025-02-28 Jonathan Wakely <jwakely (a] redhat.com>
1532
1533 Backported from master:
1534 2024-06-28 Jonathan Wakely <jwakely (a] redhat.com>
1535
1536 PR libstdc++/104395
1537 * include/bits/new_allocator.h: Disable extended alignment
1538 support in C++98 mode.
1539 * include/bits/stl_tempbuf.h: Likewise.
1540 * include/ext/bitmap_allocator.h: Likewise.
1541 * include/ext/malloc_allocator.h: Likewise.
1542 * include/ext/mt_allocator.h: Likewise.
1543 * include/ext/pool_allocator.h: Likewise.
1544 * testsuite/ext/104395.cc: New test.
1545
1546 2025-02-28 Jonathan Wakely <jwakely (a] redhat.com>
1547
1548 Backported from master:
1549 2024-06-19 Jonathan Wakely <jwakely (a] redhat.com>
1550
1551 * include/bits/stl_tempbuf.h (__get_temporary_buffer): Cast
1552 argument to size_t to handle negative values and suppress
1553 -Wsign-compare warning.
1554 (_Temporary_buffer): Move diagnostic pragmas to new location of
1555 call to std::get_temporary_buffer.
1556
1557 2025-02-28 Jonathan Wakely <jwakely (a] redhat.com>
1558
1559 Backported from master:
1560 2024-06-03 Jonathan Wakely <jwakely (a] redhat.com>
1561
1562 PR libstdc++/105258
1563 * include/bits/stl_tempbuf.h (__detail::__get_temporary_buffer):
1564 New function to do allocation for get_temporary_buffer, with
1565 extended alignment support.
1566 (__detail::__return_temporary_buffer): Support extended
1567 alignment.
1568 (get_temporary_buffer): Use __get_temporary_buffer.
1569 (return_temporary_buffer): Support extended alignment. Add
1570 deprecated attribute.
1571 (_Temporary_buffer): Move allocation and deallocation into a
1572 subobject and remove try-catch block in constructor.
1573 (__uninitialized_construct_buf): Use argument deduction for
1574 value type.
1575 * testsuite/20_util/temporary_buffer.cc: Add dg-warning for new
1576 deprecated warning.
1577 * testsuite/25_algorithms/stable_sort/overaligned.cc: New test.
1578
1579 2025-02-28 Giuseppe D'Angelo <giuseppe.dangelo (a] kdab.com>
1580
1581 Backported from master:
1582 2025-02-07 Giuseppe D'Angelo <giuseppe.dangelo (a] kdab.com>
1583
1584 PR libstdc++/118160
1585 PR libstdc++/100249
1586 * include/bits/ranges_algo.h (__is_permutation_fn): Avoid a
1587 dangling reference by storing the result of the iterator
1588 dereference and the result of the projection in two distinct
1589 variables, in order to lifetime-extend each one.
1590 Forward the projected value to the predicate.
1591 * testsuite/25_algorithms/is_permutation/constrained.cc: Add a
1592 test with a range returning prvalues. Test it in a constexpr
1593 context, in order to rely on the compiler to catch UB.
1594
1595 2025-02-28 Jonathan Wakely <jwakely (a] redhat.com>
1596
1597 Backported from master:
1598 2024-06-21 Jonathan Wakely <jwakely (a] redhat.com>
1599
1600 * include/bits/stl_uninitialized.h (uninitialized_default_construct)
1601 (uninitialized_default_construct_n, uninitialized_value_construct)
1602 (uninitialized_value_construct_n): Qualify calls to prevent ADL.
1603
1604 2025-02-28 Jonathan Wakely <jwakely (a] redhat.com>
1605
1606 Backported from master:
1607 2024-12-18 Jonathan Wakely <jwakely (a] redhat.com>
1608
1609 * include/bits/basic_string.h (__to_wstring_numeric): Add 'i'
1610 and 'I' to mapping.
1611
1612 2025-02-28 Jonathan Wakely <jwakely (a] redhat.com>
1613
1614 Backported from master:
1615 2024-12-09 Jonathan Wakely <jwakely (a] redhat.com>
1616
1617 PR libstdc++/117921
1618 * testsuite/23_containers/set/modifiers/swap/adl.cc: Add
1619 equality comparison for Allocator.
1620 * testsuite/23_containers/unordered_set/modifiers/swap-2.cc:
1621 Likewise.
1622
1623 2025-02-28 Jonathan Wakely <jwakely (a] redhat.com>
1624
1625 Backported from master:
1626 2024-12-05 Jonathan Wakely <jwakely (a] redhat.com>
1627
1628 PR libstdc++/117921
1629 * include/bits/hashtable_policy.h (_Hash_code_base::_M_swap):
1630 Use ADL swap for Hash members.
1631 (_Hashtable_base::_M_swap): Use ADL swap for _Equal members.
1632 * include/bits/stl_tree.h (_Rb_tree::swap): Use ADL swap for
1633 _Compare members.
1634 * testsuite/23_containers/set/modifiers/swap/adl.cc: New test.
1635 * testsuite/23_containers/unordered_set/modifiers/swap-2.cc: New
1636 test.
1637
1638 2025-02-28 Jonathan Wakely <jwakely (a] redhat.com>
1639
1640 Backported from master:
1641 2024-11-27 Jonathan Wakely <jwakely (a] redhat.com>
1642
1643 * include/bits/forward_list.h (forward_list::front): Add
1644 non-empty assertions.
1645 * include/bits/stl_list.h (list::front, list::back): Add
1646 non-empty assertions.
1647
1648 2025-02-28 Jonathan Wakely <jwakely (a] redhat.com>
1649
1650 Backported from master:
1651 2025-01-16 Jonathan Wakely <jwakely (a] redhat.com>
1652
1653 PR libstdc++/118158
1654 * src/c++17/fs_ops.cc (fs::equivalent): Remove error reporting
1655 for is_other(s1) && is_other(s2) case, as per LWG 2937.
1656 * testsuite/27_io/filesystem/operations/pr118158.cc: New test.
1657
1658 2025-01-29 Patrick Palka <ppalka (a] redhat.com>
1659
1660 Backported from master:
1661 2025-01-29 Patrick Palka <ppalka (a] redhat.com>
1662
1663 PR libstdc++/118413
1664 * include/std/ranges (views::__adaptor::_Partial): Adjust
1665 constraints on the "simple" partial specializations to require
1666 is_trivially_copy_constructible_v instead of
1667 is_trivially_copyable_v.
1668 * testsuite/std/ranges/adaptors/adjacent_transform/1.cc (test04):
1669 Extend P2494R2 test.
1670 * testsuite/std/ranges/adaptors/transform.cc (test09): Likewise.
1671
1672 2025-01-27 Giuseppe D'Angelo <giuseppe.dangelo (a] kdab.com>
1673
1674 Backported from master:
1675 2025-01-20 Giuseppe D'Angelo <giuseppe.dangelo (a] kdab.com>
1676
1677 PR libstdc++/118185
1678 PR libstdc++/100249
1679 * include/bits/ranges_algo.h (__clamp_fn): Correctly forward the
1680 projected value to the comparator.
1681 * testsuite/25_algorithms/clamp/118185.cc: New test.
1682
1683 2025-01-16 Jonathan Wakely <jwakely (a] redhat.com>
1684
1685 Backported from master:
1686 2025-01-15 Jonathan Wakely <jwakely (a] redhat.com>
1687
1688 PR libstdc++/109849
1689 * include/bits/vector.tcc (vector::_M_range_insert): Fix
1690 reversed args in length calculation.
1691
1692 2025-01-16 Jonathan Wakely <jwakely (a] redhat.com>
1693
1694 Backported from master:
1695 2024-09-27 Jonathan Wakely <jwakely (a] redhat.com>
1696
1697 * include/bits/istream.tcc: Add diagnostic pragmas around uses
1698 of long long and extern template.
1699 * include/bits/locale_facets.h: Likewise.
1700 * include/bits/locale_facets.tcc: Likewise.
1701 * include/bits/locale_facets_nonio.tcc: Likewise.
1702 * include/bits/ostream.tcc: Likewise.
1703 * include/bits/stl_algobase.h: Likewise.
1704 * include/c_global/cstdlib: Likewise.
1705 * include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp:
1706 Likewise.
1707 * include/ext/pointer.h: Likewise.
1708 * include/ext/stdio_sync_filebuf.h: Likewise.
1709 * include/std/istream: Likewise.
1710 * include/std/ostream: Likewise.
1711 * include/tr1/cmath: Likewise.
1712 * include/tr1/type_traits: Likewise.
1713 * include/tr1/functional_hash.h: Likewise. Remove semi-colons
1714 at namespace scope that aren't needed after macro expansion.
1715 * include/tr1/tuple: Remove semi-colon at namespace scope.
1716 * include/bits/vector.tcc: Change LL suffix to just L.
1717
1718 2025-01-16 Jonathan Wakely <jwakely (a] redhat.com>
1719
1720 Backported from master:
1721 2025-01-08 Jonathan Wakely <jwakely (a] redhat.com>
1722
1723 PR libstdc++/90389
1724 * include/bits/deque.tcc (_M_insert_aux): Rename variadic
1725 overload to _M_emplace_aux.
1726 * include/bits/stl_deque.h (_M_insert_aux): Define inline.
1727 (_M_emplace_aux): Declare.
1728 * testsuite/23_containers/deque/modifiers/emplace/90389.cc: New
1729 test.
1730
1731 2025-01-12 Torbjrn SVENSSON <torbjorn.svensson (a] foss.st.com>
1732
1733 Backported from master:
1734 2025-01-12 Torbjrn SVENSSON <torbjorn.svensson (a] foss.st.com>
1735
1736 * testsuite/27_io/print/1.cc: Allow both LF and CRLF in test.
1737 * testsuite/27_io/print/3.cc: Likewise.
1738
1739 2025-01-12 Torbjrn SVENSSON <torbjorn.svensson (a] foss.st.com>
1740
1741 Backported from master:
1742 2025-01-12 Torbjrn SVENSSON <torbjorn.svensson (a] foss.st.com>
1743
1744 * testsuite/29_atomics/atomic_float/compare_exchange_padding.cc:
1745 Use effective-target libatomic_available.
1746
1747 2025-01-10 Tamar Christina <tamar.christina (a] arm.com>
1748
1749 * include/bits/hashtable.h (find): Add inline keyword.
1750
1751 2025-01-09 Jonathan Wakely <jwakely (a] redhat.com>
1752
1753 Backported from master:
1754 2024-12-10 Jonathan Wakely <jwakely (a] redhat.com>
1755
1756 * include/bits/memory_resource.h (polymoprhic_allocator): Use
1757 feature test macro for P0339R6 features.
1758
1759 2025-01-09 Jonathan Wakely <jwakely (a] redhat.com>
1760
1761 Backported from master:
1762 2024-08-23 Jonathan Wakely <jwakely (a] redhat.com>
1763
1764 * include/bits/alloc_traits.h: Improve doxygen docs for
1765 allocator_traits specializations.
1766 * include/bits/memory_resource.h: Likewise.
1767
1768 2025-01-09 Jonathan Wakely <jwakely (a] redhat.com>
1769
1770 Backported from master:
1771 2024-06-21 Jonathan Wakely <jwakely (a] redhat.com>
1772
1773 * include/bits/memory_resource.h (polymorphic_allocator::destroy):
1774 Remove deprecated attribute.
1775
1776 2025-01-09 Jonathan Wakely <jwakely (a] redhat.com>
1777
1778 Backported from master:
1779 2024-05-15 Jonathan Wakely <jwakely (a] redhat.com>
1780
1781 PR libstdc++/89624
1782 * include/bits/atomic_base.h (memory_order): Use int as
1783 underlying type.
1784 * testsuite/29_atomics/atomic/89624.cc: New test.
1785
1786 2025-01-09 Jonathan Wakely <jwakely (a] redhat.com>
1787
1788 Backported from master:
1789 2024-12-12 Jonathan Wakely <jwakely (a] redhat.com>
1790
1791 * src/c++17/fs_dir.cc: Fix typo in comment.
1792
1793 2025-01-09 Jonathan Wakely <jwakely (a] redhat.com>
1794
1795 Backported from master:
1796 2024-12-11 Jonathan Wakely <jwakely (a] redhat.com>
1797
1798 * include/std/ostream (println): Pass stream's locale to
1799 std::format, as per LWG 4088.
1800 * testsuite/27_io/basic_ostream/print/1.cc: Check std::println
1801 with custom locale. Remove unused brit_punc class.
1802
1803 2025-01-09 Jonathan Wakely <jwakely (a] redhat.com>
1804
1805 Backported from master:
1806 2024-10-30 Jonathan Wakely <jwakely (a] redhat.com>
1807
1808 * doc/xml/manual/using_exceptions.xml: Fix typos and grammatical
1809 errors.
1810 * doc/html/manual/using_exceptions.html: Regenerate.
1811
1812 2025-01-09 Jonathan Wakely <jwakely (a] redhat.com>
1813
1814 Backported from master:
1815 2024-05-14 Jonathan Wakely <jwakely (a] redhat.com>
1816
1817 * doc/xml/manual/strings.xml: Clarify that GCC 4.5 added
1818 std::string::shrink_to_fit.
1819 * doc/html/manual/strings.html: Regenerate.
1820
1821 2025-01-09 Jonathan Wakely <jwakely (a] redhat.com>
1822
1823 Backported from master:
1824 2024-11-27 Jonathan Wakely <jwakely (a] redhat.com>
1825
1826 * include/bits/c++config (__glibcxx_assert): Remove useless
1827 __builtin_expect from constexpr-only assertion. Improve
1828 comments.
1829
1830 2025-01-09 Jonathan Wakely <jwakely (a] redhat.com>
1831
1832 Backported from master:
1833 2024-12-03 Jonathan Wakely <jwakely (a] redhat.com>
1834
1835 PR libstdc++/108236
1836 * include/pstl/glue_numeric_impl.h (exclusive_scan): Pass __init
1837 as rvalue.
1838 * include/pstl/numeric_impl.h (__brick_transform_scan): Do not
1839 write through __result until after reading through __first. Move
1840 __init into return value.
1841 (__pattern_transform_scan): Pass __init as rvalue.
1842 * include/std/numeric (exclusive_scan): Move construct instead
1843 of copy constructing.
1844 * testsuite/26_numerics/exclusive_scan/2.cc: New test.
1845 * testsuite/26_numerics/pstl/numeric_ops/108236.cc: New test.
1846
1847 2025-01-09 Jonathan Wakely <jwakely (a] redhat.com>
1848
1849 Backported from master:
1850 2024-12-09 Jonathan Wakely <jwakely (a] redhat.com>
1851
1852 PR libstdc++/117962
1853 * include/debug/safe_container.h: Make allocator-extended move
1854 constructor a no-op during constant evaluation.
1855
1856 2025-01-09 Jonathan Wakely <jwakely (a] redhat.com>
1857
1858 Backported from master:
1859 2024-12-11 Jonathan Wakely <jwakely (a] redhat.com>
1860
1861 PR libstdc++/109517
1862 PR libstdc++/109976
1863 * include/debug/helper_functions.h (__valid_range_aux): Treat
1864 all input iterator ranges as valid during constant evaluation.
1865
1866 2025-01-09 Jonathan Wakely <jwakely (a] redhat.com>
1867
1868 Backported from master:
1869 2024-12-11 Jonathan Wakely <jwakely (a] redhat.com>
1870
1871 PR libstdc++/106212
1872 * include/std/array (operator==): Use std::__equal_aux1 instead
1873 of std::equal.
1874 * testsuite/23_containers/array/comparison_operators/106212.cc:
1875 New test.
1876
1877 2025-01-09 Jonathan Wakely <jwakely (a] redhat.com>
1878
1879 Backported from master:
1880 2024-12-11 Jonathan Wakely <jwakely (a] redhat.com>
1881
1882 PR libstdc++/117966
1883 * include/std/span (span(T (&)[N])): Do not delegate to
1884 constructor that performs redundant checks.
1885 (span(array<T, N>&), span(const array<T, N>&)): Likewise.
1886 (span(Range&&), span(const span<T, N>&)): Likewise.
1887 * testsuite/23_containers/span/117966.cc: New test.
1888
1889 2025-01-09 Jonathan Wakely <jwakely (a] redhat.com>
1890
1891 Backported from master:
1892 2024-12-17 Jonathan Wakely <jwakely (a] redhat.com>
1893
1894 PR libstdc++/118035
1895 * include/bits/deque.tcc (_M_range_insert_aux): Return
1896 immediately if inserting an empty range.
1897 * testsuite/23_containers/deque/modifiers/insert/118035.cc: New
1898 test.
1899
1900 2025-01-09 Patrick Palka <ppalka (a] redhat.com>
1901
1902 Backported from master:
1903 2024-12-13 Patrick Palka <ppalka (a] redhat.com>
1904
1905 PR libstdc++/112349
1906 * include/bits/ranges_algo.h (__min_fn::operator()): Turn local
1907 object __tmp into a reference.
1908 * include/bits/ranges_util.h (__max_fn::operator()): Likewise.
1909 * testsuite/25_algorithms/max/constrained.cc (test04): New test.
1910 * testsuite/25_algorithms/min/constrained.cc (test04): New test.
1911
1912 2025-01-09 Patrick Palka <ppalka (a] redhat.com>
1913
1914 Backported from master:
1915 2024-11-14 Patrick Palka <ppalka (a] redhat.com>
1916
1917 * include/std/ranges (keys_view): Adjust as per LWG 3563.
1918 (values_view): Likewise.
1919 * testsuite/std/ranges/adaptors/elements.cc (test08): New test.
1920
1921 2025-01-09 Patrick Palka <ppalka (a] redhat.com>
1922
1923 Backported from master:
1924 2024-10-29 Patrick Palka <ppalka (a] redhat.com>
1925
1926 PR libstdc++/112641
1927 * include/std/ranges (drop_view::begin): Reimplement const
1928 overload so that it's O(1) always.
1929 * testsuite/std/ranges/adaptors/drop.cc (test10): New test.
1930
1931 2025-01-09 Gerald Pfeifer <gerald (a] pfeifer.com>
1932
1933 Backported from master:
1934 2024-08-17 Gerald Pfeifer <gerald (a] pfeifer.com>
1935
1936 * doc/xml/manual/abi.xml: Update reference to
1937 gcc.gnu.org/onlinedocs.
1938 * doc/xml/manual/concurrency_extensions.xml (interface): Ditto.
1939 * doc/xml/manual/extensions.xml: Ditto.
1940 * doc/xml/manual/parallel_mode.xml: Ditto.
1941 * doc/xml/manual/shared_ptr.xml: Ditto.
1942 * doc/xml/manual/using_exceptions.xml: Ditto. And change GNU GCC
1943 to GCC.
1944 * doc/html/index.html: Regenerate.
1945 * doc/html/manual/abi.html: Ditto.
1946 * doc/html/manual/ext_concurrency_impl.html: Ditto.
1947 * doc/html/manual/ext_demangling.html: Ditto.
1948 * doc/html/manual/memory.html: Ditto.
1949 * doc/html/manual/parallel_mode_design.html: Ditto.
1950 * doc/html/manual/parallel_mode_using.html: Ditto.
1951 * doc/html/manual/using_exceptions.html: Ditto.
1952
1953 2025-01-09 Jonathan Wakely <jwakely (a] redhat.com>
1954
1955 Backported from master:
1956 2025-01-08 Jonathan Wakely <jwakely (a] redhat.com>
1957
1958 PR libstdc++/118093
1959 * include/bits/atomic_futex.h (_M_load_and_test_until_impl):
1960 Return false for times before the epoch.
1961 * src/c++11/futex.cc (_M_futex_wait_until): Extend check for
1962 negative times to check for subsecond times. Add unlikely
1963 attribute.
1964 (_M_futex_wait_until_steady): Likewise.
1965 * testsuite/30_threads/future/members/118093.cc: New test.
1966
1967 2025-01-09 Jonathan Wakely <jwakely (a] redhat.com>
1968
1969 Backported from master:
1970 2025-01-08 Jonathan Wakely <jwakely (a] redhat.com>
1971
1972 * include/bits/move.h (forward, move, move_if_noexcept, addressof):
1973 Add @since to Doxygen comments.
1974 (forward_like): Add Doxygen comment.
1975
1976 2025-01-09 Jonathan Wakely <jwakely (a] redhat.com>
1977
1978 Backported from master:
1979 2025-01-08 Jonathan Wakely <jwakely (a] redhat.com>
1980
1981 * doc/xml/manual/evolution.xml: Replace invalid <variable>
1982 elements with <varname>.
1983 * doc/html/*: Regenerate.
1984
1985 2024-12-16 Jonathan Wakely <jwakely (a] redhat.com>
1986
1987 Backported from master:
1988 2024-12-07 Jonathan Wakely <jwakely (a] redhat.com>
1989
1990 * include/std/format: Fix typo in Doxygen comment.
1991
1992 2024-12-02 Jonathan Wakely <jwakely (a] redhat.com>
1993
1994 Backported from master:
1995 2024-09-22 Jonathan Wakely <jwakely (a] redhat.com>
1996
1997 * include/bits/stl_vector.h (operator<=>): Use constexpr
1998 instead of _GLIBCXX20_CONSTEXPR macro.
1999
2000 2024-12-02 Jason Merrill <jason (a] redhat.com>
2001
2002 Backported from master:
2003 2024-08-28 Jason Merrill <jason (a] redhat.com>
2004
2005 * include/std/istream: Add cast to avoid -Wsign-compare.
2006 * include/std/stacktrace: Likewise.
2007
2008 2024-12-02 Jason Merrill <jason (a] redhat.com>
2009
2010 Backported from master:
2011 2024-08-28 Jason Merrill <jason (a] redhat.com>
2012
2013 * testsuite/20_util/default_delete/void_neg.cc: Fix regexp quoting.
2014
2015 2024-12-02 Jason Merrill <jason (a] redhat.com>
2016
2017 Backported from master:
2018 2024-08-28 Jason Merrill <jason (a] redhat.com>
2019
2020 * include/std/coroutine (coroutine_handle): Use nullptr instead of
2021 0 as initializer for _M_fr_ptr.
2022
2023 2024-12-02 Jason Merrill <jason (a] redhat.com>
2024
2025 Backported from master:
2026 2024-08-28 Jason Merrill <jason (a] redhat.com>
2027
2028 * include/decimal/decimal.h (_DEFINE_DECIMAL_BINARY_OP_WITH_INT):
2029 Remove redundant semicolons.
2030
2031 2024-12-02 Jonathan Wakely <jwakely (a] redhat.com>
2032
2033 Backported from master:
2034 2024-08-28 Jonathan Wakely <jwakely (a] redhat.com>
2035
2036 * include/experimental/io_context: Remove name of unused
2037 parameter.
2038 * include/experimental/socket: Add [[maybe_unused]] attribute.
2039
2040 2024-12-02 Jonathan Wakely <jwakely (a] redhat.com>
2041
2042 Backported from master:
2043 2024-09-22 Jonathan Wakely <jwakely (a] redhat.com>
2044
2045 * src/c++11/cxx11-ios_failure.cc (__iosfail_type_info): Unhide
2046 the three-arg overload of __do_upcast.
2047
2048 2024-12-02 Jonathan Wakely <jwakely (a] redhat.com>
2049
2050 Backported from master:
2051 2024-09-22 Jonathan Wakely <jwakely (a] redhat.com>
2052
2053 * libsupc++/exception_ptr.h (__exception_ptr::_M_safe_bool_dummy):
2054 Remove __attribute__((const)) from function returning void.
2055
2056 2024-12-02 Jonathan Wakely <jwakely (a] redhat.com>
2057
2058 Backported from master:
2059 2024-08-28 Jonathan Wakely <jwakely (a] redhat.com>
2060
2061 * include/std/ranges (to): Remove unused typedef.
2062
2063 2024-12-02 Jonathan Wakely <jwakely (a] redhat.com>
2064
2065 Backported from master:
2066 2024-11-07 Jonathan Wakely <jwakely (a] redhat.com>
2067
2068 * include/bits/hashtable.h (_M_insert_unique_node): Improve
2069 comment.
2070
2071 2024-12-02 Jonathan Wakely <jwakely (a] redhat.com>
2072
2073 Backported from master:
2074 2024-11-14 Jonathan Wakely <jwakely (a] redhat.com>
2075
2076 * include/bits/ranges_util.h (subrange::begin): Fix constraint,
2077 as per LWG 3589.
2078 * testsuite/std/ranges/subrange/lwg3589.cc: New test.
2079
2080 2024-12-02 Jonathan Wakely <jwakely (a] redhat.com>
2081
2082 Backported from master:
2083 2024-11-01 Jonathan Wakely <jwakely (a] redhat.com>
2084
2085 * include/bits/unordered_map.h: Check __glibcxx_node_extract and
2086 __glibcxx_unordered_map_try_emplace instead of __cplusplus.
2087 * include/bits/unordered_set.h: Check __glibcxx_node_extract
2088 instead of __cplusplus.
2089
2090 2024-12-02 Jonathan Wakely <jwakely (a] redhat.com>
2091
2092 Backported from master:
2093 2024-10-11 Jonathan Wakely <jwakely (a] redhat.com>
2094
2095 * include/bits/cpp_type_traits.h (__is_byte<byte>): Guard with
2096 __glibcxx_byte macro instead of checking __cplusplus.
2097
2098 2024-12-02 Jonathan Wakely <jwakely (a] redhat.com>
2099
2100 Backported from master:
2101 2024-11-14 Jonathan Wakely <jwakely (a] redhat.com>
2102
2103 * include/bits/ranges_algo.h (__is_permutation_fn::operator()):
2104 Short-circuit for sized ranges with different sizes, as per LWG
2105 3560.
2106 * include/bits/ranges_algobase.h (__equal_fn::operator()):
2107 Likewise.
2108 * include/bits/stl_algo.h (__is_permutation): Use if-constexpr
2109 for random access iterator branches.
2110 * include/bits/stl_algobase.h (__equal4): Likewise.
2111 * testsuite/25_algorithms/equal/lwg3560.cc: New test.
2112 * testsuite/25_algorithms/is_permutation/lwg3560.cc: New test.
2113
2114 2024-12-02 Jonathan Wakely <jwakely (a] redhat.com>
2115
2116 Backported from master:
2117 2024-10-15 Jonathan Wakely <jwakely (a] redhat.com>
2118
2119 PR libstdc++/106676
2120 * include/bits/iterator_concepts.h (__cpp17_fwd_iterator): Use
2121 is_reference instead of is_value_reference.
2122 rvalue references.
2123 * include/std/ranges (transform_view:__iter_cat::_S_iter_cat):
2124 Likewise.
2125 (zip_transform_view::__iter_cat::_S_iter_cat): Likewise.
2126 (adjacent_transform_view::__iter_cat::_S_iter_cat): Likewise.
2127 (join_with_view::__iter_cat::_S_iter_cat): Likewise.
2128 * testsuite/std/ranges/adaptors/transform.cc: Check
2129 iterator_category when the transformation function returns an
2130 rvalue reference type.
2131
2132 2024-12-02 Jonathan Wakely <jwakely (a] redhat.com>
2133
2134 Backported from master:
2135 2024-09-27 Jonathan Wakely <jwakely (a] redhat.com>
2136
2137 * include/bits/basic_string.tcc (resize_for_overwrite): Fix
2138 -Wsign-compare warning.
2139 * include/bits/cow_string.h (resize_for_overwrite): Likewise.
2140
2141 2024-12-02 Jonathan Wakely <jwakely (a] redhat.com>
2142
2143 Backported from master:
2144 2024-10-27 Jonathan Wakely <jwakely (a] redhat.com>
2145
2146 * include/bits/stl_bvector.h (emplace_back, emplace): Forward
2147 parameter pack to preserve value category.
2148 * testsuite/23_containers/vector/bool/emplace_rvalue.cc: New
2149 test.
2150
2151 2024-12-02 Jonathan Wakely <jwakely (a] redhat.com>
2152
2153 Backported from master:
2154 2024-11-07 Jonathan Wakely <jwakely (a] redhat.com>
2155
2156 * include/bits/hashtable.h: Fix spelling in comment.
2157
2158 2024-12-02 Jonathan Wakely <jwakely (a] redhat.com>
2159
2160 Backported from master:
2161 2024-11-01 Jonathan Wakely <jwakely (a] redhat.com>
2162
2163 * include/bits/hashtable.h: Improve comments.
2164
2165 2024-12-02 Jonathan Wakely <jwakely (a] redhat.com>
2166
2167 Backported from master:
2168 2024-11-14 Jonathan Wakely <jwakely (a] redhat.com>
2169
2170 PR libstdc++/117560
2171 * include/bits/fs_dir.h (enable_borrowed_range, enable_view):
2172 Define specializations for directory iterators, as per LWG 3480.
2173 * testsuite/27_io/filesystem/iterators/lwg3480.cc: New test.
2174
2175 2024-12-02 Jonathan Wakely <jwakely (a] redhat.com>
2176
2177 Backported from master:
2178 2024-11-13 Jonathan Wakely <jwakely (a] redhat.com>
2179
2180 * testsuite/util/testsuite_performance.h (time_counter): Add
2181 comment about times.
2182 (time_counter::system_time): Use correct split value.
2183
2184 2024-12-02 Jonathan Wakely <jwakely (a] redhat.com>
2185
2186 Backported from master:
2187 2024-11-13 Jonathan Wakely <jwakely (a] redhat.com>
2188
2189 * testsuite/util/testsuite_performance.h: Use
2190 __gnu_cxx::__is_single_threaded instead of __gthread_active_p().
2191
2192 2024-12-02 Jonathan Wakely <jwakely (a] redhat.com>
2193
2194 Backported from master:
2195 2024-11-14 Jonathan Wakely <jwakely (a] redhat.com>
2196
2197 * include/bits/stl_iterator.h (operator+): Add constraint to
2198 move_iterator operator.
2199 * testsuite/24_iterators/move_iterator/rel_ops_c++20.cc:
2200
2201 2024-12-02 Jonathan Wakely <jwakely (a] redhat.com>
2202
2203 Backported from master:
2204 2024-11-28 Jonathan Wakely <jwakely (a] redhat.com>
2205
2206 PR libstdc++/117822
2207 * include/std/stacktrace (stacktrace(stacktrace&&, const A&)):
2208 Fix typo in qualified-id for is_always_equal trait.
2209 * testsuite/19_diagnostics/stacktrace/stacktrace.cc: Test
2210 allocator-extended constructors and allocator propagation.
2211
2212 2024-12-02 Jonathan Wakely <jwakely (a] redhat.com>
2213
2214 Backported from master:
2215 2024-09-26 Jonathan Wakely <jwakely (a] redhat.com>
2216
2217 * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
2218 Do not assume allocators only throw std::bad_alloc.
2219
2220 2024-11-12 Jonathan Wakely <jwakely (a] redhat.com>
2221
2222 * include/bits/unicode.h (_Utf_iterator::_M_read_utf16): Add
2223 parentheses.
2224
2225 2024-11-12 Jonathan Wakely <jwakely (a] redhat.com>
2226
2227 PR libstdc++/117520
2228 * include/std/text_encoding (aliases_view:_Iterator::operator+=):
2229 Fix typos that caused == to be used instead of =.
2230 (aliases_view::_Iterator): Fix friend declaration.
2231 * testsuite/std/text_encoding/members.cc: Adjust expected
2232 behaviour of invalid subscript. Add tests for other erroneous
2233 operations on iterators.
2234
2235 2024-11-11 Jonathan Wakely <jwakely (a] redhat.com>
2236
2237 Backported from master:
2238 2024-11-08 Jonathan Wakely <jwakely (a] redhat.com>
2239
2240 * include/bits/hashtable_policy.h (_Insert_base::try_emplace):
2241 Do not define for C++11 and C++14.
2242 * include/debug/map.h (try_emplace): Use feature test macro.
2243 * include/debug/unordered_map (try_emplace): Likewise.
2244 * testsuite/17_intro/names.cc: Define try_emplace before C++17.
2245
2246 2024-11-04 Jakub Jelinek <jakub (a] redhat.com>
2247
2248 Backported from master:
2249 2024-11-04 Jakub Jelinek <jakub (a] redhat.com>
2250
2251 PR libstdc++/117406
2252 * testsuite/26_numerics/headers/cmath/117406.cc: Use
2253 std::numeric_limits<int>::max() instead of INT_MAX.
2254
2255 2024-11-04 Jakub Jelinek <jakub (a] redhat.com>
2256
2257 Backported from master:
2258 2024-11-02 Jakub Jelinek <jakub (a] redhat.com>
2259
2260 PR libstdc++/117406
2261 * include/c_global/cmath (std::ilogb(_Float16), std::llrint(_Float16),
2262 std::llround(_Float16), std::lrint(_Float16), std::lround(_Float16)):
2263 Don't cast __builtin_* return to _Float16.
2264 (std::ilogb(__gnu_cxx::__bfloat16_t),
2265 std::llrint(__gnu_cxx::__bfloat16_t),
2266 std::llround(__gnu_cxx::__bfloat16_t),
2267 std::lrint(__gnu_cxx::__bfloat16_t),
2268 std::lround(__gnu_cxx::__bfloat16_t)): Don't cast __builtin_* return to
2269 __gnu_cxx::__bfloat16_t.
2270 * testsuite/26_numerics/headers/cmath/117406.cc: New test.
2271
2272 2024-11-04 Jakub Jelinek <jakub (a] redhat.com>
2273
2274 Backported from master:
2275 2024-10-29 Jakub Jelinek <jakub (a] redhat.com>
2276
2277 PR libstdc++/117321
2278 * include/c_global/cmath (nextafter(_Float16, _Float16)): Use
2279 if consteval rather than if (std::__is_constant_evaluated()) around
2280 the __builtin_nextafterf16 call.
2281 (nextafter(__gnu_cxx::__bfloat16_t, __gnu_cxx::__bfloat16_t)): Use
2282 if consteval rather than if (std::__is_constant_evaluated()) around
2283 the __builtin_nextafterf16b call.
2284 * testsuite/26_numerics/headers/cmath/117321.cc: New test.
2285
2286 2024-10-22 Patrick Palka <ppalka (a] redhat.com>
2287
2288 Backported from master:
2289 2024-10-05 Patrick Palka <ppalka (a] redhat.com>
2290
2291 * include/bits/ranges_base.h (__distance_fn::operator()):
2292 Adjust iterator/sentinel overloads as per LWG 3664.
2293 * testsuite/24_iterators/range_operations/distance.cc:
2294 Test LWG 3664 example.
2295
2296 2024-10-22 Patrick Palka <ppalka (a] redhat.com>
2297
2298 Backported from master:
2299 2024-10-04 Patrick Palka <ppalka (a] redhat.com>
2300
2301 * include/std/ranges (single_view::empty): Define as per LWG 4035.
2302 (iota_view::empty): Define as per LWG 4001.
2303 (lazy_split_view::_OuterIter::value_type): Remove default
2304 constructor and make other constructor private as per LWG 4013.
2305 (common_view::begin): Disable non-const overload for simple
2306 views as per LWG 4012.
2307 (common_view::end): Likewise.
2308 (adjacent_view::base): Define as per LWG 3848.
2309 (adjacent_transform_view::base): Likewise.
2310 (chunk_view::_InnerIter::iter_move): Define as per LWG 3851.
2311 (chunk_view::_InnerIter::itep_swap): Likewise.
2312 (slide_view::base): Define as per LWG 3848.
2313 (repeat_view): Adjust deduction guide as per LWG 4053.
2314 (_Repeat::operator()): Adjust single-parameter overload as per
2315 LWG 4054.
2316 * testsuite/std/ranges/adaptors/adjacent/1.cc: Verify existence
2317 of base member function.
2318 * testsuite/std/ranges/adaptors/adjacent_transform/1.cc: Likewise.
2319 * testsuite/std/ranges/adaptors/chunk/1.cc: Test LWG 3851 example.
2320 * testsuite/std/ranges/adaptors/slide/1.cc: Verify existence of
2321 base member function.
2322 * testsuite/std/ranges/iota/iota_view.cc: Test LWG 4001 example.
2323 * testsuite/std/ranges/repeat/1.cc: Test LWG 4053/4054 examples.
2324
2325 2024-10-22 Patrick Palka <ppalka (a] redhat.com>
2326
2327 Backported from master:
2328 2024-08-22 Patrick Palka <ppalka (a] redhat.com>
2329
2330 * testsuite/25_algorithms/contains/1.cc: Verify value of
2331 __cpp_lib_ranges_contains.
2332 * testsuite/25_algorithms/find_last/1.cc: Verify value of
2333 __cpp_lib_ranges_find_last.
2334 * testsuite/25_algorithms/iota/1.cc: Verify value of
2335 __cpp_lib_ranges_iota.
2336
2337 2024-10-22 Patrick Palka <ppalka (a] redhat.com>
2338
2339 Backported from master:
2340 2024-08-22 Patrick Palka <ppalka (a] redhat.com>
2341
2342 * include/bits/iterator_concepts.h (indirectly_unary_invocable):
2343 Relax as per P2997R1.
2344 (indirectly_regular_unary_invocable): Likewise.
2345 (indirect_unary_predicate): Likewise.
2346 (indirect_binary_predicate): Likewise.
2347 (indirect_equivalence_relation): Likewise.
2348 (indirect_strict_weak_order): Likewise.
2349 * include/bits/version.def (ranges): Update value for C++26.
2350 * include/bits/version.h: Regenerate.
2351 * testsuite/24_iterators/indirect_callable/p2997r1.cc: New test.
2352 * testsuite/std/ranges/version_c++23.cc: Remove.
2353 * testsuite/std/ranges/headers/ranges/synopsis.cc: Refine the
2354 __cpp_lib_ranges checks.
2355
2356 2024-10-22 Patrick Palka <ppalka (a] redhat.com>
2357
2358 Backported from master:
2359 2024-08-22 Patrick Palka <ppalka (a] redhat.com>
2360
2361 * include/bits/iterator_concepts.h (__detail::__indirect_value):
2362 Define.
2363 (__indirect_value_t): Define as per P2609R3.
2364 (iter_common_reference_t): Adjust as per P2609R3.
2365 (indirectly_unary_invocable): Likewise.
2366 (indirectly_regular_unary_invocable): Likewise.
2367 (indirect_unary_predicate): Likewise.
2368 (indirect_binary_predicate): Likewise.
2369 (indirect_equivalence_relation): Likewise.
2370 (indirect_strict_weak_order): Likewise.
2371 (__detail::__projected::__type): Define member aliases
2372 __projected_Iter and __projected_Proj providing the
2373 template arguments of the current specialization.
2374 * include/bits/version.def (ranges): Update value.
2375 * include/bits/version.h: Regenerate.
2376 * testsuite/24_iterators/indirect_callable/p2609r3.cc: New test.
2377 * testsuite/std/ranges/version_c++23.cc: Update expected value
2378 of __cpp_lib_ranges macro.
2379
2380 2024-10-16 Jonathan Wakely <jwakely (a] redhat.com>
2381
2382 Backported from master:
2383 2024-10-16 Jonathan Wakely <jwakely (a] redhat.com>
2384
2385 * python/libstdcxx/v6/printers.py (strip_fundts_namespace): New.
2386 (StdExpAnyPrinter, StdExpOptionalPrinter): Use it.
2387
2388 2024-10-16 Jonathan Wakely <jwakely (a] redhat.com>
2389
2390 Backported from master:
2391 2024-06-26 Jonathan Wakely <jwakely (a] redhat.com>
2392
2393 PR libstdc++/90276
2394 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
2395 Increase timeout for debug mode.
2396 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
2397 Likewise.
2398 * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
2399 Likewise.
2400 * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
2401 Likewise.
2402 * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
2403 Likewise.
2404 * testsuite/25_algorithms/pstl/alg_sorting/set_symmetric_difference.cc:
2405 Likewise.
2406
2407 2024-10-15 Jonathan Wakely <jwakely (a] redhat.com>
2408
2409 Backported from master:
2410 2024-10-14 Jonathan Wakely <jwakely (a] redhat.com>
2411
2412 * include/std/ranges (transform_view:_Iterator): Use const F&
2413 to determine value_type and iterator_category of
2414 _Iterator<true>, as per LWG 3564.
2415 * testsuite/std/ranges/adaptors/transform.cc: Check value_type
2416 and iterator_category.
2417
2418 2024-10-15 Jonathan Wakely <jwakely (a] redhat.com>
2419
2420 Backported from master:
2421 2024-10-11 Jonathan Wakely <jwakely (a] redhat.com>
2422
2423 PR libstdc++/117085
2424 * include/bits/chrono_io.h (__formatter_chrono::_M_c): Add L
2425 option to format string.
2426 * testsuite/std/time/format.cc: Move to...
2427 * testsuite/std/time/format/format.cc: ...here.
2428 * testsuite/std/time/format/pr117085.cc: New test.
2429
2430 2024-10-15 Jonathan Wakely <jwakely (a] redhat.com>
2431
2432 Backported from master:
2433 2024-10-09 Jonathan Wakely <jwakely (a] redhat.com>
2434
2435 * include/bits/chrono_io.h (__formatter_chrono::_M_c): Add
2436 [[unlikely]] attribute to condition for missing %c format in
2437 locale. Use %T instead of %H:%M:%S in fallback.
2438
2439 2024-10-15 Jonathan Wakely <jwakely (a] redhat.com>
2440
2441 Backported from master:
2442 2024-10-14 Jonathan Wakely <jwakely (a] redhat.com>
2443
2444 PR libstdc++/117135
2445 * config/locale/generic/time_members.cc
2446 (__timepunct<wchar_t>::_M_initialize_timepunc): Set
2447 _M_date_time_format for C locale. Set %Ex formats to the same
2448 values as the %x formats.
2449
2450 2024-10-15 Jonathan Wakely <jwakely (a] redhat.com>
2451
2452 Backported from master:
2453 2024-10-14 Jonathan Wakely <jwakely (a] redhat.com>
2454
2455 PR libstdc++/117094
2456 * include/bits/ranges_algobase.h (__fill_fn): Use std::move for
2457 iterator that might not be copyable.
2458 * testsuite/25_algorithms/fill/constrained.cc: Check
2459 non-copyable iterator with sized sentinel.
2460
2461 2024-10-03 Jonathan Wakely <jwakely (a] redhat.com>
2462
2463 Backported from master:
2464 2024-08-23 Jonathan Wakely <jwakely (a] redhat.com>
2465
2466 PR c++/116369
2467 * include/debug/safe_base.h (_Safe_sequence_base::_M_iterators):
2468 Add mutable specifier.
2469 (_Safe_sequence_base::_M_const_iterators): Likewise.
2470
2471 2024-10-03 Kim Grsman <kim.grasman (a] gmail.com>
2472
2473 Backported from master:
2474 2024-08-28 Kim Grsman <kim.grasman (a] gmail.com>
2475
2476 * include/bits/cpp_type_traits.h: Improve doxygen file docs.
2477
2478 2024-10-03 Kim Grsman <kim.grasman (a] gmail.com>
2479
2480 Backported from master:
2481 2024-08-28 Kim Grsman <kim.grasman (a] gmail.com>
2482
2483 * config/cpu/aarch64/opt/ext/opt_random.h: Improve doxygen file
2484 docs.
2485 * config/cpu/i486/opt/ext/opt_random.h: Likewise.
2486
2487 2024-10-03 Jonathan Wakely <jwakely (a] redhat.com>
2488
2489 Backported from master:
2490 2024-08-28 Jonathan Wakely <jwakely (a] redhat.com>
2491
2492 * configure.ac: Fix check for O_NONBLOCK.
2493 * config.h.in: Regenerate.
2494 * configure: Regenerate.
2495
2496 2024-10-03 Jonathan Wakely <jwakely (a] redhat.com>
2497
2498 Backported from master:
2499 2024-09-26 Jonathan Wakely <jwakely (a] redhat.com>
2500
2501 PR libstdc++/116857
2502 * libsupc++/guard.cc (__cxa_guard_acquire): Remove
2503 _GLIBCXX_NOTHROW to match declaration in <cxxabi.h>.
2504
2505 2024-10-03 Jonathan Wakely <jwakely (a] redhat.com>
2506
2507 Backported from master:
2508 2024-06-27 Jonathan Wakely <jwakely (a] redhat.com>
2509
2510 PR libstdc++/37475
2511 * config/locale/gnu/codecvt_members.cc (Guard): New RAII type.
2512 (do_out, do_in): Return partial if the destination is empty but
2513 the source is not. Use Guard to restore locale on scope exit.
2514 Return immediately on any conversion error.
2515 (do_encoding, do_max_length, do_length): Use Guard.
2516 * testsuite/22_locale/codecvt/in/char/37475.cc: New test.
2517 * testsuite/22_locale/codecvt/in/wchar_t/37475.cc: New test.
2518 * testsuite/22_locale/codecvt/out/char/37475.cc: New test.
2519 * testsuite/22_locale/codecvt/out/wchar_t/37475.cc: New test.
2520
2521 2024-10-03 Jonathan Wakely <jwakely (a] redhat.com>
2522
2523 Backported from master:
2524 2024-10-02 Jonathan Wakely <jwakely (a] redhat.com>
2525
2526 * config/locale/dragonfly/time_members.cc
2527 (__timepunct<char>::_M_initialize_timepunc)
2528 (__timepunct<wchar_t>::_M_initialize_timepunc): Set
2529 _M_date_time_format for C locale. Set %Ex formats to the same
2530 values as the %x formats.
2531 * config/locale/generic/time_members.cc: Likewise.
2532 * config/locale/gnu/time_members.cc: Likewise.
2533 * testsuite/22_locale/time_get/get/char/5.cc: New test.
2534 * testsuite/22_locale/time_get/get/wchar_t/5.cc: New test.
2535
2536 2024-10-03 Jonathan Wakely <jwakely (a] redhat.com>
2537
2538 Backported from master:
2539 2024-09-26 Jonathan Wakely <jwakely (a] redhat.com>
2540
2541 * include/bits/cow_string.h (__resize_for_overwrite): Add
2542 inline keyword to function with always_inline attribute.
2543
2544 2024-10-03 Jonathan Wakely <jwakely (a] redhat.com>
2545
2546 Backported from master:
2547 2024-06-26 Jonathan Wakely <jwakely (a] redhat.com>
2548
2549 PR libstdc++/90276
2550 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc
2551 [_GLIBCXX_DEBUG]: Add xfail-run-if for debug mode.
2552 * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc
2553 [_GLIBCXX_DEBUG]: Reduce size of test data.
2554 * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
2555 Likewise.
2556 * testsuite/25_algorithms/pstl/alg_sorting/set_util.h:
2557 Likewise.
2558
2559 2024-10-03 Jonathan Wakely <jwakely (a] redhat.com>
2560
2561 Backported from master:
2562 2024-09-22 Jonathan Wakely <jwakely (a] redhat.com>
2563
2564 * include/std/format (__format::__is_formattable_integer): New
2565 variable template and specializations.
2566 (template<integral, __char> struct formatter): Replace
2567 constraints on first arg with __is_formattable_integer.
2568 * testsuite/std/format/formatter/requirements.cc: Check that
2569 std::formatter specializations for char8_t and const int are
2570 disabled.
2571
2572 2024-10-03 Jonathan Wakely <jwakely (a] redhat.com>
2573
2574 Backported from master:
2575 2024-09-22 Jonathan Wakely <jwakely (a] redhat.com>
2576
2577 PR libstdc++/116755
2578 * include/bits/chrono_io.h (formatter<duration<R,P>>::format):
2579 Cast negative integral durations to unsigned rep.
2580 * testsuite/20_util/duration/io.cc: Test the most negative
2581 integer durations.
2582
2583 2024-09-23 Jonathan Wakely <jwakely (a] redhat.com>
2584
2585 Backported from master:
2586 2024-09-20 Jonathan Wakely <jwakely (a] redhat.com>
2587
2588 PR libstdc++/116529
2589 * include/bits/unique_ptr.h (unique_ptr(auto_ptr<U>&&)):
2590 Use pointer instead of T*.
2591 * testsuite/20_util/unique_ptr/creation/116529.cc: New test.
2592
2593 2024-09-23 Jonathan Wakely <jwakely (a] redhat.com>
2594
2595 Backported from master:
2596 2024-09-22 Jonathan Wakely <jwakely (a] redhat.com>
2597
2598 PR libstdc++/116754
2599 * include/bits/ranges_algobase.h (__copy_or_move): Fix order of
2600 arguments to __memcpyable.
2601
2602 2024-09-23 Jonathan Wakely <jwakely (a] redhat.com>
2603
2604 Backported from master:
2605 2024-09-20 Jonathan Wakely <jwakely (a] redhat.com>
2606
2607 PR libstdc++/116777
2608 * doc/xml/manual/using.xml: Document features that are not
2609 supported for the gcc4-compatible ABI.
2610 * doc/html/manual/using_dual_abi.html: Regenerate.
2611
2612 2024-09-23 Jonathan Wakely <jwakely (a] redhat.com>
2613
2614 Backported from master:
2615 2024-08-23 Jonathan Wakely <jwakely (a] redhat.com>
2616
2617 PR libstdc++/108619
2618 * include/bits/alloc_traits.h (__allocator_traits_base): Add
2619 variable templates for detecting whether the allocator has a
2620 construct member, or if placement new can be used instead.
2621 (allocator_traits::__construct_helper): Remove.
2622 (allocator_traits::__has_construct): Remove.
2623 (allocator_traits::construct): Use 'if constexpr' instead of
2624 dispatching to overloads constrained with enable_if.
2625 (allocator_traits<allocator<T>>::construct): Use _Construct if
2626 construct_at is not supported. Use
2627 __is_nothrow_new_constructible for noexcept-specifier.
2628 (allocator_traits<allocator<void>>::construct): Use
2629 __is_nothrow_new_constructible for noexcept-specifier.
2630 * include/bits/new_allocator.h (construct): Likewise.
2631 * include/ext/malloc_allocator.h (construct): Likewise.
2632 * include/std/type_traits (__is_nothrow_new_constructible): New
2633 variable template.
2634 * testsuite/20_util/allocator/89510.cc: Adjust expected results.
2635 * testsuite/ext/malloc_allocator/89510.cc: Likewise.
2636 * testsuite/ext/new_allocator/89510.cc: Likewise.
2637 * testsuite/20_util/allocator_traits/members/108619.cc: New test.
2638
2639 2024-09-11 Jonathan Wakely <jwakely (a] redhat.com>
2640
2641 Backported from master:
2642 2024-09-10 Jonathan Wakely <jwakely (a] redhat.com>
2643
2644 PR libstdc++/116159
2645 * include/std/iostream (ios_base_library_init): Only define for
2646 ELF targets.
2647 * src/c++98/ios_init.cc (ios_base_library_init): Likewise.
2648
2649 2024-09-11 Jonathan Wakely <jwakely (a] redhat.com>
2650
2651 Backported from master:
2652 2024-09-10 Jonathan Wakely <jwakely (a] redhat.com>
2653
2654 PR libstdc++/116641
2655 * include/bits/basic_string.h (operator=(basic_string&&)): Call
2656 _M_assign instead of assign.
2657 * testsuite/21_strings/basic_string/allocator/116641.cc: New
2658 test.
2659
2660 2024-09-10 Jonathan Wakely <jwakely (a] redhat.com>
2661
2662 Backported from master:
2663 2024-06-26 Jonathan Wakely <jwakely (a] redhat.com>
2664
2665 * src/c++20/tzdb.cc (minmax_year, minmax_year2): Remove.
2666 (years_from_to): New class replacing minmax_year and
2667 minmax_year2.
2668 (format_abbrev_str, select_std_or_dst_abbrev): Move earlier in
2669 the file. Handle "-" for letters.
2670 (ZoneInfo::to): Use format_abbrev_str to expand %z.
2671 (ZoneInfo::set_abbrev): Remove exception. Change parameter from
2672 reference to value.
2673 (operator>>(istream&, Rule&)): Do not clear letters when it
2674 contains "-".
2675 (time_zone::_M_get_sys_info): Add missing logic to find the Rule
2676 in effect before the time point.
2677 * testsuite/std/time/tzdb/1.cc: Adjust for vanguard format using
2678 "GMT" as the Zone name, not as a Link to "Etc/GMT".
2679 * testsuite/std/time/time_zone/sys_info_abbrev.cc: New test.
2680
2681 2024-09-08 Patrick Palka <ppalka (a] redhat.com>
2682
2683 Backported from master:
2684 2024-08-03 Patrick Palka <ppalka (a] redhat.com>
2685
2686 * include/bits/move.h (__like_impl): New metafunction.
2687 (__like_t): Redefine in terms of __like_impl.
2688 (forward_like): Redefine in terms of __like_t.
2689 * testsuite/20_util/forward_like/2_neg.cc: Don't expect
2690 error outside the immediate context anymore.
2691
2692 2024-09-04 Jonathan Wakely <jwakely (a] redhat.com>
2693
2694 Backported from master:
2695 2024-09-03 Jonathan Wakely <jwakely (a] redhat.com>
2696
2697 * src/c++17/fs_ops.cc (auto_win_file_handle): Add error_code&
2698 member and set it if CreateFileW or GetFileInformationByHandle
2699 fails.
2700 (fs::equiv_files) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Simplify
2701 control flow.
2702 (fs::hard_link_count) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Clear ec
2703 on success.
2704 * testsuite/27_io/filesystem/operations/hard_link_count.cc:
2705 Check error handling.
2706
2707 2024-09-04 Jonathan Wakely <jwakely (a] redhat.com>
2708
2709 Backported from master:
2710 2024-07-30 Jonathan Wakely <jwakely (a] redhat.com>
2711
2712 * src/c++17/fs_ops.cc (auto_win_file_handle): Change constructor
2713 parameter from const path& to const wchar_t*.
2714 (fs::equiv_files): New function.
2715 (fs::equivalent): Use equiv_files.
2716 * src/filesystem/ops-common.h (fs::equiv_files): Declare.
2717 (do_copy_file): Use equiv_files.
2718 * src/filesystem/ops.cc (fs::equiv_files): Define.
2719 (fs::copy, fs::equivalent): Use equiv_files.
2720 * testsuite/27_io/filesystem/operations/copy.cc: Test
2721 overwriting directory contents recursively.
2722 * testsuite/27_io/filesystem/operations/copy_file.cc: Test
2723 overwriting existing files.
2724
2725 2024-09-04 Lennox Shou Hao Ho <lennoxhoe (a] gmail.com>
2726
2727 Backported from master:
2728 2024-07-30 Lennox Shou Hao Ho <lennoxhoe (a] gmail.com>
2729
2730 PR libstdc++/113663
2731 * src/c++17/fs_ops.cc (fs::equivalent): Moved helper class
2732 auto_handle to anonymous namespace as auto_win_file_handle.
2733 (fs::hard_link_count): Changed Windows implementation to use
2734 information provided by GetFileInformationByHandle which is more
2735 reliable.
2736 * testsuite/27_io/filesystem/operations/hard_link_count.cc: New
2737 test.
2738
2739 2024-09-04 Jonathan Wakely <jwakely (a] redhat.com>
2740
2741 Backported from master:
2742 2024-09-03 Jonathan Wakely <jwakely (a] redhat.com>
2743
2744 PR libstdc++/116549
2745 * include/bits/stl_iterator.h (disable_sized_sentinel_for):
2746 Define specialization for two move_iterator types, as per LWG
2747 3736.
2748 * testsuite/24_iterators/move_iterator/lwg3736.cc: New test.
2749
2750 2024-09-04 Dhruv Chawla <dhruvc (a] nvidia.com>
2751
2752 Backported from master:
2753 2024-09-03 Dhruv Chawla <dhruvc (a] nvidia.com>
2754
2755 * include/std/deque: Define macro
2756 __glibcxx_want_allocator_traits_is_always_equal.
2757 * include/std/forward_list: Likewise.
2758 * include/std/list: Likewise.
2759 * include/std/map: Likewise.
2760 * include/std/scoped_allocator: Likewise.
2761 * include/std/set: Likewise.
2762 * include/std/string: Likewise.
2763 * include/std/unordered_map: Likewise.
2764 * include/std/unordered_set: Likewise.
2765 * include/std/vector: Likewise.
2766 * testsuite/20_util/headers/memory/version.cc: New test.
2767 * testsuite/20_util/scoped_allocator/version.cc: Likewise.
2768 * testsuite/21_strings/headers/string/version.cc: Likewise.
2769 * testsuite/23_containers/deque/version.cc: Likewise.
2770 * testsuite/23_containers/forward_list/version.cc: Likewise.
2771 * testsuite/23_containers/list/version.cc: Likewise.
2772 * testsuite/23_containers/map/version.cc: Likewise.
2773 * testsuite/23_containers/set/version.cc: Likewise.
2774 * testsuite/23_containers/unordered_map/version.cc: Likewise.
2775 * testsuite/23_containers/unordered_set/version.cc: Likewise.
2776 * testsuite/23_containers/vector/version.cc: Likewise.
2777
2778 2024-09-04 Jonathan Wakely <jwakely (a] redhat.com>
2779
2780 Backported from master:
2781 2024-08-21 Jonathan Wakely <jwakely (a] redhat.com>
2782
2783 PR libstdc++/116381
2784 * include/std/variant (variant): Fix conditions for
2785 static_assert to match the spec.
2786 * testsuite/20_util/variant/types_neg.cc: New test.
2787
2788 2024-08-03 Jonathan Wakely <jwakely (a] redhat.com>
2789
2790 Backported from master:
2791 2024-06-21 Jonathan Wakely <jwakely (a] redhat.com>
2792
2793 * include/bits/version.def (chrono): Add cxx11abi = yes.
2794 * include/bits/version.h: Regenerate.
2795 * testsuite/std/time/syn_c++20.cc: Adjust expected value for
2796 the feature test macro.
2797
2798 2024-08-02 Patrick Palka <ppalka (a] redhat.com>
2799
2800 Backported from master:
2801 2024-07-25 Patrick Palka <ppalka (a] redhat.com>
2802
2803 PR libstdc++/116038
2804 * include/std/functional (_Bind_front::operator()): Use __like_t
2805 instead of std::forward when forwarding __self.
2806 (_Bind_back::operator()): Likewise.
2807 * include/std/ranges (_Partial::operator()): Likewise.
2808 (_Pipe::operator()): Likewise.
2809 * testsuite/20_util/function_objects/bind_back/116038.cc: New test.
2810 * testsuite/20_util/function_objects/bind_front/116038.cc: New test.
2811 * testsuite/std/ranges/adaptors/116038.cc: New test.
2812
2813 2024-08-01 Jonathan Wakely <jwakely (a] redhat.com>
2814
2815 Backported from master:
2816 2024-05-22 Jonathan Wakely <jwakely (a] redhat.com>
2817
2818 * include/bits/locale_classes.h (locale::combine)
2819 (locale::name, locale::operator==, locale::operator!=)
2820 (locale::operator(), locale::classic): Add nodiscard
2821 attribute.
2822 * include/bits/locale_classes.tcc (has_facet, use_facet):
2823 Likewise.
2824 * testsuite/22_locale/locale/cons/12438.cc: Add dg-warning for
2825 nodiscard diagnostic.
2826 * testsuite/22_locale/locale/cons/2.cc: Cast use_facet
2827 expression to void, to suppress diagnostic.
2828 * testsuite/22_locale/locale/cons/unicode.cc: Likewise.
2829 * testsuite/22_locale/locale/operations/2.cc: Add dg-warning.
2830
2831 2024-08-01 Deev Patel <dkp10000 (a] gmail.com>
2832
2833 Backported from master:
2834 2024-06-08 Deev Patel <dkp10000 (a] gmail.com>
2835 Jonathan Wakely <jwakely (a] redhat.com>
2836
2837 * include/bits/atomic_base.h (__atomic_impl::__clear_padding):
2838 Add missing constexpr specifier.
2839 * testsuite/29_atomics/atomic_float/constinit.cc: New test.
2840
2841 2024-08-01 Jonathan Wakely <jwakely (a] redhat.com>
2842
2843 Backported from master:
2844 2024-06-21 Jonathan Wakely <jwakely (a] redhat.com>
2845
2846 * testsuite/util/testsuite_allocator.h (tracker_allocator):
2847 Initialize base class in copy constructor.
2848
2849 2024-08-01 Jonathan Wakely <jwakely (a] redhat.com>
2850
2851 Backported from master:
2852 2024-06-12 Jonathan Wakely <jwakely (a] redhat.com>
2853
2854 PR libstdc++/115399
2855 * include/tr2/dynamic_bitset (operator>>=): Remove redundant
2856 call to _M_do_sanitize.
2857 * include/tr2/dynamic_bitset.tcc (_M_do_left_shift): Zero out
2858 low bits in words that should no longer be populated.
2859 (_M_do_right_shift): Likewise for high bits.
2860 * testsuite/tr2/dynamic_bitset/pr115399.cc: New test.
2861
2862 2024-08-01 Jonathan Wakely <jwakely (a] redhat.com>
2863
2864 Backported from master:
2865 2024-07-25 Jonathan Wakely <jwakely (a] redhat.com>
2866
2867 * include/std/format (basic_format_args): Remove default
2868 constructor, as per LWG 4106.
2869 * testsuite/std/format/arguments/args.cc: Check it isn't default
2870 constructible.
2871
2872 2024-08-01 Jonathan Wakely <jwakely (a] redhat.com>
2873
2874 Backported from master:
2875 2024-07-10 Jonathan Wakely <jwakely (a] redhat.com>
2876
2877 PR libstdc++/114387
2878 * include/std/format (basic_format_context): Define copy
2879 operations as deleted, as per LWG 4061.
2880 * testsuite/std/format/context.cc: New test.
2881
2882 2024-08-01 Jonathan Wakely <jwakely (a] redhat.com>
2883
2884 Backported from master:
2885 2024-06-21 Jonathan Wakely <jwakely (a] redhat.com>
2886
2887 * include/std/any (any_cast(any*), any_cast(const any*)): Add
2888 static assertion to reject void types, as per LWG 3305.
2889 * testsuite/20_util/any/misc/lwg3305.cc: New test.
2890
2891 2024-08-01 Jonathan Wakely <jwakely (a] redhat.com>
2892
2893 Backported from master:
2894 2024-06-08 Jonathan Wakely <jwakely (a] redhat.com>
2895
2896 * include/std/algorithm: Define __glibcxx_want_ranges.
2897 * testsuite/25_algorithms/headers/algorithm/synopsis.cc: Check
2898 feature test macro in C++20 mode.
2899
2900 2024-08-01 Jonathan Wakely <jwakely (a] redhat.com>
2901
2902 Backported from master:
2903 2024-07-10 Jonathan Wakely <jwakely (a] redhat.com>
2904
2905 PR libstdc++/115854
2906 * include/bits/stl_bvector.h (_Bvector_base): Convert allocator
2907 to rebound type explicitly.
2908 * testsuite/23_containers/vector/allocator/115854.cc: New test.
2909 * testsuite/23_containers/vector/bool/allocator/115854.cc: New test.
2910
2911 2024-08-01 Jonathan Wakely <jwakely (a] redhat.com>
2912
2913 Backported from master:
2914 2024-06-13 Jonathan Wakely <jwakely (a] redhat.com>
2915
2916 * include/bits/ranges_base.h (const_iterator_t): Change
2917 preprocessor condition to use __glibcxx_ranges_as_const.
2918 (const_sentinel_t, range_const_reference_t): Likewise.
2919 (__access::__possibly_const_range, cbegin, cend, crbegin)
2920 (crend, cdata): Likewise.
2921 * include/bits/stl_iterator.h (iter_const_reference_t)
2922 (basic_const_iterator, const_iterator, const_sentinel)
2923 (make_const_iterator): Likewise.
2924
2925 2024-08-01 Jonathan Wakely <jwakely (a] redhat.com>
2926
2927 Backported from master:
2928 2024-07-06 Jonathan Wakely <jwakely (a] redhat.com>
2929
2930 * include/std/variant (_Variant_storage::_M_reset): Use
2931 __unlikely__ form of attribute instead of unlikely.
2932
2933 2024-08-01 Jonathan Wakely <jwakely (a] redhat.com>
2934
2935 Backported from master:
2936 2024-07-24 Jonathan Wakely <jwakely (a] redhat.com>
2937
2938 PR libstdc++/116070
2939 * include/std/istream: Check feature test macro before using
2940 is_class_v and is_same_v.
2941 * include/std/ostream: Likewise.
2942
2943 2024-08-01 Jonathan Wakely <jwakely (a] redhat.com>
2944
2945 Backported from master:
2946 2024-07-24 Jonathan Wakely <jwakely (a] redhat.com>
2947
2948 PR libstdc++/116070
2949 * include/bits/stl_bvector.h: Check feature test macro before
2950 using is_default_constructible_v.
2951
2952 2024-08-01 Release Manager
2953
2954 * GCC 14.2.0 released.
2955
2956 2024-07-23 Jonathan Wakely <jwakely (a] redhat.com>
2957
2958 Backported from master:
2959 2024-07-23 Jonathan Wakely <jwakely (a] redhat.com>
2960
2961 * src/c++23/print.cc (__open_terminal): Use [[maybe_unused]] on
2962 parameter.
2963
2964 2024-07-23 Detlef Vollmann <dv (a] vollmann.ch>
2965
2966 Backported from master:
2967 2024-07-23 Detlef Vollmann <dv (a] vollmann.ch>
2968
2969 PR libstdc++/115482
2970 * src/c++23/print.cc (__open_terminal) [__AVR__]: Do not use
2971 isatty.
2972
2973 2024-07-12 Jonathan Wakely <jwakely (a] redhat.com>
2974
2975 Backported from master:
2976 2024-06-13 Jonathan Wakely <jwakely (a] redhat.com>
2977
2978 PR libstdc++/113376
2979 * include/pstl/pstl_config.h: Use #if instead of #ifdef to test
2980 the _PSTL_USAGE_WARNINGS macro.
2981
2982 2024-07-12 Jonathan Wakely <jwakely (a] redhat.com>
2983
2984 Backported from master:
2985 2024-06-21 Jonathan Wakely <jwakely (a] redhat.com>
2986
2987 PR libstdc++/115522
2988 * include/std/array (to_array): Workaround the fact that
2989 std::is_trivial is not sufficient to check that a type is
2990 trivially default constructible and assignable.
2991 * testsuite/23_containers/array/creation/115522.cc: New test.
2992
2993 2024-07-09 Jonathan Wakely <jwakely (a] redhat.com>
2994
2995 Backported from master:
2996 2024-07-08 Jonathan Wakely <jwakely (a] redhat.com>
2997
2998 PR libstdc++/115807
2999 * include/c_compatibility/stdatomic.h (_Atomic): Ensure it
3000 refers to std::atomic in the global namespace.
3001 * testsuite/29_atomics/headers/stdatomic.h/115807.cc: New test.
3002
3003 2024-07-09 Jonathan Wakely <jwakely (a] redhat.com>
3004
3005 Backported from master:
3006 2024-06-28 Jonathan Wakely <jwakely (a] redhat.com>
3007
3008 PR libstdc++/115585
3009 * src/c++11/assert_fail.cc (__glibcxx_assert_fail): Add
3010 definition for non-verbose builds.
3011
3012 2024-06-28 Jonathan Wakely <jwakely (a] redhat.com>
3013
3014 Backported from master:
3015 2024-06-27 Jonathan Wakely <jwakely (a] redhat.com>
3016
3017 PR libstdc++/115668
3018 * include/bits/chrono_io.h (formatter<duration<R,P, C>::format):
3019 Do not use chrono::abs.
3020 * testsuite/20_util/duration/io.cc: Check formatting a duration
3021 with unsigned rep.
3022
3023 2024-06-27 Jonathan Wakely <jwakely (a] redhat.com>
3024
3025 Backported from master:
3026 2024-06-25 Jonathan Wakely <jwakely (a] redhat.com>
3027
3028 * doc/xml/faq.xml: Replace viewcvs links with cgit links.
3029 * doc/xml/manual/allocator.xml: Likewise.
3030 * doc/xml/manual/mt_allocator.xml: Likewise.
3031 * doc/html/*: Regenerate.
3032
3033 2024-06-27 Alexandre Oliva <oliva (a] adacore.com>
3034
3035 Backported from master:
3036 2024-06-27 Alexandre Oliva <oliva (a] adacore.com>
3037
3038 PR libstdc++/115454
3039 * testsuite/experimental/simd/pr115454_find_last_set.cc: Defer
3040 to check_vect_support_and_set_flags's default dg-do action.
3041
3042 2024-06-25 Jonathan Wakely <jwakely (a] redhat.com>
3043
3044 * doc/xml/manual/status_cxx1998.xml: Remove confusing "not in
3045 any particular release" text.
3046 * doc/xml/manual/status_cxx2011.xml: Likewise.
3047 * doc/xml/manual/status_cxx2014.xml: Likewise.
3048 * doc/xml/manual/status_cxx2017.xml: Likewise.
3049 * doc/xml/manual/status_cxx2020.xml: Likewise.
3050 * doc/xml/manual/status_cxx2023.xml: Likewise.
3051 * doc/xml/manual/status_cxxtr1.xml: Likewise.
3052 * doc/xml/manual/status_cxxtr24733.xml: Likewise.
3053 * doc/html/manual/status.html: Regenerate.
3054
3055 2024-06-21 Matthias Kretz <m.kretz (a] gsi.de>
3056
3057 Backported from master:
3058 2024-06-21 Matthias Kretz <m.kretz (a] gsi.de>
3059
3060 PR libstdc++/115575
3061 * testsuite/experimental/simd/pr115454_find_last_set.cc: Require
3062 avx512f_runtime. Don't memcpy fixed_size masks.
3063
3064 2024-06-20 Matthias Kretz <m.kretz (a] gsi.de>
3065
3066 Backported from master:
3067 2024-06-20 Matthias Kretz <m.kretz (a] gsi.de>
3068
3069 PR libstdc++/115454
3070 * include/experimental/bits/simd_x86.h (_S_not_equal_to): Use
3071 neq comparison instead of bitwise negation after eq.
3072 (_S_find_last_set): Clear unused high bits before computing
3073 bit_width.
3074 * testsuite/experimental/simd/pr115454_find_last_set.cc: New
3075 test.
3076
3077 2024-06-14 Jonathan Wakely <jwakely (a] redhat.com>
3078
3079 Backported from master:
3080 2024-06-14 Jonathan Wakely <jwakely (a] redhat.com>
3081
3082 * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Fix declaration of
3083 posix_memalign.
3084
3085 2024-06-10 Matthias Kretz <m.kretz (a] gsi.de>
3086
3087 Backported from master:
3088 2024-06-04 Matthias Kretz <m.kretz (a] gsi.de>
3089
3090 PR libstdc++/115308
3091 * include/experimental/bits/simd.h (__int_for_sizeof): Remove
3092 special cases for __clang__.
3093 (_SimdWrapper): Change constructor overload set to allow
3094 conversion from vector types with integral conversions via bit
3095 reinterpretation.
3096
3097 2024-06-10 Matthias Kretz <m.kretz (a] gsi.de>
3098
3099 Backported from master:
3100 2024-05-29 Matthias Kretz <m.kretz (a] gsi.de>
3101
3102 PR libstdc++/115247
3103 * include/experimental/bits/simd.h (__as_vector): Don't use
3104 vector_size(8) on __i386__.
3105 (__vec_shuffle): Never return MMX vectors, widen to 16 bytes
3106 instead.
3107 (concat): Fix padding calculation to pick up widening logic from
3108 __as_vector.
3109
3110 2024-06-10 Matthias Kretz <m.kretz (a] gsi.de>
3111
3112 Backported from master:
3113 2024-05-13 Matthias Kretz <m.kretz (a] gsi.de>
3114
3115 PR libstdc++/114958
3116 * include/experimental/bits/simd.h (__as_vector): Return scalar
3117 simd as one-element vector. Return vector from single-vector
3118 fixed_size simd.
3119 (__vec_shuffle): New.
3120 (__extract_part): Adjust return type signature.
3121 (split): Use __extract_part for any split into non-fixed_size
3122 simds.
3123 (concat): If the return type stores a single vector, use
3124 __vec_shuffle (which calls __builtin_shufflevector) to produce
3125 the return value.
3126 * include/experimental/bits/simd_builtin.h
3127 (__shift_elements_right): Removed.
3128 (__extract_part): Return single elements directly. Use
3129 __vec_shuffle (which calls __builtin_shufflevector) to for all
3130 non-trivial cases.
3131 * include/experimental/bits/simd_fixed_size.h (__extract_part):
3132 Return single elements directly.
3133 * testsuite/experimental/simd/pr114958.cc: New test.
3134
3135 2024-06-04 Jonathan Wakely <jwakely (a] redhat.com>
3136
3137 Backported from master:
3138 2024-06-04 Jonathan Wakely <jwakely (a] redhat.com>
3139
3140 PR libstdc++/115335
3141 * include/std/span (span::at): Guard with feature test macro.
3142
3143 2024-06-04 Rainer Orth <ro (a] CeBiTec.Uni-Bielefeld.DE>
3144
3145 Backported from master:
3146 2024-05-29 Rainer Orth <ro (a] CeBiTec.Uni-Bielefeld.DE>
3147
3148 PR libstdc++/111641
3149 * src/libbacktrace/Makefile.am (AM_CFLAGS): Add -funwind-tables.
3150 * src/libbacktrace/Makefile.in: Regenerate.
3151 * testsuite/19_diagnostics/stacktrace/current.cc (dg-options): Add
3152 -funwind-tables.
3153 * testsuite/19_diagnostics/stacktrace/entry.cc: Likewise.
3154 * testsuite/19_diagnostics/stacktrace/hash.cc: Likewise.
3155 * testsuite/19_diagnostics/stacktrace/output.cc: Likewise.
3156 * testsuite/19_diagnostics/stacktrace/stacktrace.cc: Likewise.
3157
3158 2024-06-03 Franois Dumont <frs.dumont (a] gmail.com>
3159
3160 Backported from master:
3161 2024-06-03 Franois Dumont <frs.dumont (a] gmail.com>
3162
3163 PR libstdc++/109849
3164 * include/bits/vector.tcc
3165 (std::vector<>::_M_range_insert(iterator, _FwdIt, _FwdIt,
3166 forward_iterator_tag))[__cplusplus < 201103L]: Add __builtin_unreachable
3167 expression to tell the compiler that the allocated buffer is large enough to
3168 receive current elements plus the elements of the range to insert.
3169
3170 2024-06-01 Jonathan Wakely <jwakely (a] redhat.com>
3171
3172 Backported from master:
3173 2024-06-01 Jonathan Wakely <jwakely (a] redhat.com>
3174
3175 PR libstdc++/115269
3176 * doc/xml/manual/using.xml: Replace link to gcc-4.3.2 docs.
3177 Replace list of -std=... options with a single entry for -std.
3178 * doc/html/manual/using.html: Regenerate.
3179
3180 2024-05-28 Jonathan Wakely <jwakely (a] redhat.com>
3181
3182 Backported from master:
3183 2024-05-22 Jonathan Wakely <jwakely (a] redhat.com>
3184
3185 PR libstdc++/114940
3186 * include/bits/version.def (generator): Depend on
3187 __cpp_sized_deallocation.
3188 * include/bits/version.h: Regenerate.
3189 * include/std/stacktrace (_GLIBCXX_SIZED_DELETE): New macro.
3190 (basic_stacktrace::_Impl::_M_deallocate): Use it.
3191
3192 2024-05-22 Jonathan Wakely <jwakely (a] redhat.com>
3193
3194 Backported from master:
3195 2024-05-22 Jonathan Wakely <jwakely (a] redhat.com>
3196
3197 PR libstdc++/115099
3198 * include/bits/std_thread.h: Declare formatter as friend of
3199 thread::id.
3200 * include/std/thread (operator<<): Convert non-void pointers to
3201 void pointers for output.
3202 (formatter): Add constraint that thread::native_handle_type is a
3203 pointer or integer.
3204 (formatter::format): Reimplement without basic_ostringstream.
3205 * testsuite/30_threads/thread/id/output.cc: Check output
3206 compiles before <sstream> has been included.
3207
3208 2024-05-17 Jonathan Wakely <jwakely (a] redhat.com>
3209
3210 Backported from master:
3211 2024-05-17 Jonathan Wakely <jwakely (a] redhat.com>
3212
3213 PR libstdc++/115119
3214 * include/bits/unicode.h (_Iterator::operator++(int)): Fix typo
3215 in increment expression.
3216 * testsuite/ext/unicode/grapheme_view.cc: Check post-increment
3217 on view's iterator.
3218
3219 2024-05-14 Jonathan Wakely <jwakely (a] redhat.com>
3220
3221 PR libstdc++/115015
3222 * src/c++23/print.cc (__open_terminal(streambuf*)) [!__cpp_rtti]:
3223 Do not use dynamic_cast.
3224
3225 2024-05-14 Jonathan Wakely <jwakely (a] redhat.com>
3226
3227 Backported from master:
3228 2024-05-14 Jonathan Wakely <jwakely (a] redhat.com>
3229
3230 PR libstdc++/115063
3231 * include/std/stacktrace (basic_stacktrace::max_size): Fix typo
3232 in reference to _M_alloc member.
3233 * testsuite/19_diagnostics/stacktrace/stacktrace.cc: Check
3234 max_size() compiles.
3235
3236 2024-05-14 Jonathan Wakely <jwakely (a] redhat.com>
3237
3238 Backported from master:
3239 2024-05-01 Jonathan Wakely <jwakely (a] redhat.com>
3240
3241 PR libstdc++/114891
3242 * include/std/generator: Check feature test macro before using
3243 is_pointer_interconvertible_v.
3244
3245 2024-05-14 Jonathan Wakely <jwakely (a] redhat.com>
3246
3247 Backported from master:
3248 2024-05-07 Jonathan Wakely <jwakely (a] redhat.com>
3249
3250 * testsuite/util/testsuite_abi.cc: Update latest versions to
3251 new versions that should be used in future.
3252
3253 2024-05-14 Jonathan Wakely <jwakely (a] redhat.com>
3254
3255 Backported from master:
3256 2024-05-07 Jonathan Wakely <jwakely (a] redhat.com>
3257
3258 * include/bits/unicode.h (_Unicode_view::_M_read_utf8): Ensure
3259 count of characters consumed is correct when the end of the
3260 input is reached unexpectedly.
3261 * testsuite/ext/unicode/view.cc: Test incomplete UTF-8
3262 sequences.
3263
3264 2024-05-14 Jonathan Wakely <jwakely (a] redhat.com>
3265
3266 Backported from master:
3267 2024-05-07 Jonathan Wakely <jwakely (a] redhat.com>
3268
3269 PR libstdc++/114866
3270 * include/bits/out_ptr.h [!_GLIBCXX_HOSTED]: Don't refer to
3271 shared_ptr, __shared_ptr or __is_shred_ptr.
3272 * testsuite/20_util/headers/memory/114866.cc: New test.
3273
3274 2024-05-07 Release Manager
3275
3276 * GCC 14.1.0 released.
3277
3278 2024-05-03 Andreas Schwab <schwab (a] linux-m68k.org>
3279
3280 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
3281 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
3282
3283 2024-04-30 Jonathan Wakely <jwakely (a] redhat.com>
3284
3285 Backported from master:
3286 2024-04-30 Jonathan Wakely <jwakely (a] redhat.com>
3287
3288 PR libstdc++/114863
3289 * include/std/format (__formatter_fp::format): Only use
3290 _M_localized for finite values.
3291 * testsuite/std/format/functions/format.cc: Check localized
3292 formatting of NaN and initiny.
3293
3294 2024-04-29 Rainer Orth <ro (a] CeBiTec.Uni-Bielefeld.DE>
3295
3296 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
3297 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
3298 Likewise.
3299 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
3300 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
3301 Likewise.
3302
3303 2024-04-29 Rainer Orth <ro (a] CeBiTec.Uni-Bielefeld.DE>
3304
3305 Backported from master:
3306 2024-04-29 Rainer Orth <ro (a] CeBiTec.Uni-Bielefeld.DE>
3307
3308 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
3309 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
3310 Likewise.
3311 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
3312 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
3313 Likewise.
3314
3315 2024-04-26 Jonathan Wakely <jwakely (a] redhat.com>
3316
3317 * doc/html/manual/status.html: Regenerate.
3318 * doc/xml/manual/status_cxx1998.xml: Replace references to
3319 mainline GCC.
3320 * doc/xml/manual/status_cxx2011.xml: Likewise.
3321 * doc/xml/manual/status_cxx2014.xml: Likewise.
3322 * doc/xml/manual/status_cxx2017.xml: Likewise.
3323 * doc/xml/manual/status_cxx2020.xml: Likewise.
3324 * doc/xml/manual/status_cxx2023.xml: Likewise.
3325 * doc/xml/manual/status_cxxtr1.xml: Likewise.
3326 * doc/xml/manual/status_cxxtr24733.xml: Likewise.
3327
3328 2024-04-25 Jonathan Wakely <jwakely (a] redhat.com>
3329
3330 * scripts/run_doxygen: Rename man pages for nested types.
3331
3332 2024-04-25 Jonathan Wakely <jwakely (a] redhat.com>
3333
3334 * include/std/chrono (tzdb_list): Fix typo in Doxygen comment.
3335
3336 2024-04-25 Jonathan Wakely <jwakely (a] redhat.com>
3337
3338 * scripts/run_doxygen: Adjust sed pattern to match '\fR' for
3339 new man output that Doxygen 1.10 generates.
3340
3341 2024-04-25 Jonathan Wakely <jwakely (a] redhat.com>
3342
3343 * doc/doxygen/stdheader.cc (init_map): Add missing headers.
3344 * doc/doxygen/user.cfg.in (EXCLUDE): Exclude generated files for
3345 std::format and std::text_encoding.
3346
3347 2024-04-25 Jonathan Wakely <jwakely (a] redhat.com>
3348
3349 * include/std/variant: Add comment to #include.
3350
3351 2024-04-22 Matthias Kretz <m.kretz (a] gsi.de>
3352
3353 PR libstdc++/114803
3354 * include/experimental/bits/simd_builtin.h
3355 (_SimdBase2::operator __vector_type_t): There is no __builtin()
3356 function in _SimdWrapper, instead use its conversion operator.
3357 * testsuite/experimental/simd/pr114803_vecbuiltin_cvt.cc: New
3358 test.
3359
3360 2024-04-22 Matthias Kretz <m.kretz (a] gsi.de>
3361
3362 * include/experimental/bits/simd.h: Ignore -Wnarrowing for
3363 arm_neon.h.
3364 (__int_for_sizeof): Replace tautological compare with checking
3365 for invalid template parameter value.
3366 * include/experimental/bits/simd_builtin.h (__extract_part):
3367 Remove tautological compare by combining two static_assert.
3368
3369 2024-04-22 Jakub Jelinek <jakub (a] redhat.com>
3370
3371 * testsuite/17_intro/names.cc (d, f): Undefine on s390*-linux*.
3372 * testsuite/17_intro/headers/c++1998/all_attributes.cc (packed): Don't
3373 define on s390.
3374 * testsuite/17_intro/headers/c++2011/all_attributes.cc (packed):
3375 Likewise.
3376 * testsuite/17_intro/headers/c++2014/all_attributes.cc (packed):
3377 Likewise.
3378 * testsuite/17_intro/headers/c++2017/all_attributes.cc (packed):
3379 Likewise.
3380 * testsuite/17_intro/headers/c++2020/all_attributes.cc (packed):
3381 Likewise.
3382
3383 2024-04-19 Jonathan Wakely <jwakely (a] redhat.com>
3384
3385 * include/bits/refwrap.h (operator<=>): Simplify constraints.
3386
3387 2024-04-19 Jonathan Wakely <jwakely (a] redhat.com>
3388
3389 PR libstdc++/114770
3390 * src/c++20/tzdb.cc (do_locate_zone): Support links that have
3391 another link as their target.
3392 * testsuite/std/time/tzdb/1.cc: Check that all zones and links
3393 can be found by locate_zone.
3394 * testsuite/std/time/tzdb/links.cc: New test.
3395
3396 2024-04-18 Alexandre Oliva <oliva (a] adacore.com>
3397
3398 * testsuite/29_atomics/atomic/compare_exchange_padding.cc:
3399 Disable SRA.
3400
3401 2024-04-18 Alexandre Oliva <oliva (a] adacore.com>
3402
3403 * testsuite/20_util/from_chars/8.cc: Skip float128_t testing
3404 on aarch64-vxworks.
3405 * testsuite/20_util/to_chars/float128_c++23.cc: Xfail run on
3406 aarch64-vxworks.
3407
3408 2024-04-18 Alexandre Oliva <oliva (a] adacore.com>
3409
3410 * src/c++20/tzdb.cc (__gnu_cxx::zoneinfo_dir_override): Define
3411 on VxWorks non-RTP.
3412
3413 2024-04-17 Jonathan Wakely <jwakely (a] redhat.com>
3414
3415 * include/std/ostream (println(ostream&)): Define new overload.
3416 * include/std/print (println(FILE*), println()): Likewise.
3417 * testsuite/27_io/basic_ostream/print/2.cc: New test.
3418 * testsuite/27_io/print/1.cc: Remove unused header.
3419 * testsuite/27_io/print/3.cc: New test.
3420
3421 2024-04-17 Matthias Kretz <m.kretz (a] gsi.de>
3422
3423 * include/experimental/bits/numeric_traits.h: Add include guard.
3424
3425 2024-04-17 Matthias Kretz <m.kretz (a] gsi.de>
3426
3427 PR libstdc++/114750
3428 * include/experimental/bits/simd_builtin.h
3429 (_SimdImplBuiltin::_S_load, _S_store): Fall back to copying
3430 scalars if the memory type cannot be vectorized for the target.
3431
3432 2024-04-16 Jonathan Wakely <jwakely (a] redhat.com>
3433
3434 * config/locale/dragonfly/numeric_members.cc: Fix typos in
3435 comments.
3436 * config/locale/gnu/numeric_members.cc: Likewise.
3437
3438 2024-04-15 Jonathan Wakely <jwakely (a] redhat.com>
3439
3440 * doc/xml/manual/abi.xml: Replace "<next>" with "14.1.0".
3441 * doc/html/manual/abi.html: Regenerate.
3442
3443 2024-04-15 Jonathan Wakely <jwakely (a] redhat.com>
3444
3445 * include/bits/refwrap.h (reference_wrapper): Add comparison
3446 operators as proposed by P2944R3.
3447 * include/bits/version.def (reference_wrapper): Define.
3448 * include/bits/version.h: Regenerate.
3449 * include/std/functional: Enable feature test macro.
3450 * testsuite/20_util/reference_wrapper/compare.cc: New test.
3451
3452 2024-04-15 Jonathan Wakely <jwakely (a] redhat.com>
3453
3454 PR libstdc++/113386
3455 * include/bits/stl_pair.h (operator==, operator<=>): Support
3456 heterogeneous comparisons, as per LWG 3865.
3457 * testsuite/20_util/pair/comparison_operators/lwg3865.cc: New
3458 test.
3459
3460 2024-04-15 Jonathan Wakely <jwakely (a] redhat.com>
3461
3462 PR libstdc++/93672
3463 * src/c++98/istream.cc (istream::ignore(streamsize, int_type)):
3464 Treat all negative delimiter values as eof().
3465 * testsuite/27_io/basic_istream/ignore/char/93672.cc: New test.
3466 * testsuite/27_io/basic_istream/ignore/wchar_t/93672.cc: New
3467 test.
3468
3469 2024-04-15 Andreas Schwab <schwab (a] suse.de>
3470
3471 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
3472
3473 2024-04-13 H.J. Lu <hjl.tools (a] gmail.com>
3474
3475 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
3476 Updated.
3477
3478 2024-04-11 Jakub Jelinek <jakub (a] redhat.com>
3479
3480 * doc/xml/manual/abi.xml: Add latest library versions.
3481 * doc/html/manual/abi.html: Regenerate.
3482
3483 2024-04-11 Jakub Jelinek <jakub (a] redhat.com>
3484
3485 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
3486 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
3487 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
3488 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
3489 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
3490 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
3491 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
3492 * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: Update.
3493 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
3494
3495 2024-04-11 Jonathan Wakely <jwakely (a] redhat.com>
3496
3497 PR libstdc++/114692
3498 * config/abi/pre/gnu.ver (GLIBCXX_3.4.32): Move new exports for
3499 __basic_file::native_handle to ...
3500 (GLIBCXX_3.4.33): ... here. Adjust to not match wchar_t
3501 specialization, which isn't used.
3502 * testsuite/util/testsuite_abi.cc: Add GLIBCXX_3.4.33 and update
3503 latest version check.
3504
3505 2024-04-11 Jakub Jelinek <jakub (a] redhat.com>
3506
3507 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
3508 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
3509 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
3510 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
3511 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
3512 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
3513 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
3514 * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: Update.
3515 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
3516
3517 2024-04-10 Jonathan Wakely <jwakely (a] redhat.com>
3518
3519 * testsuite/27_io/manipulators/extended/get_time/char/2.cc:
3520 Adjust input string so that it matches %a with or without a
3521 trailing period.
3522 * testsuite/std/time/year_month_day/io.cc: Adjust expected
3523 format for %x in the fr_FR locale.
3524
3525 2024-04-10 Jonathan Wakely <jwakely (a] redhat.com>
3526
3527 * src/c++17/fs_ops.cc (remove_all) [__FreeBSD__ || __DragonFly__]:
3528 Check for EMLINK as well as ELOOP.
3529 [__NetBSD__]: Check for EFTYPE as well as ELOOP.
3530
3531 2024-04-09 Jonathan Wakely <jwakely (a] redhat.com>
3532
3533 PR libstdc++/114633
3534 * include/bits/chrono_io.h (_Parser::operator()) <'S'>: Use
3535 stream extraction if std::from_chars is not available.
3536
3537 2024-04-08 Jonathan Wakely <jwakely (a] redhat.com>
3538
3539 PR libstdc++/114519
3540 * include/bits/unicode.h (_Utf8_view) [!__cpp_char8_t]: Define
3541 using char instead of char8_t.
3542 * testsuite/ext/unicode/view.cc: Use u8""sv literals to create
3543 string views, instead of std::u8string_view.
3544
3545 2024-04-08 Jonathan Wakely <jwakely (a] redhat.com>
3546
3547 * testsuite/20_util/integer_comparisons/equal_neg.cc: Use
3548 no-opts selector for errors that depend on -fchar8_t.
3549 * testsuite/20_util/integer_comparisons/greater_equal_neg.cc:
3550 Likewise.
3551 * testsuite/20_util/integer_comparisons/greater_neg.cc:
3552 Likewise.
3553 * testsuite/20_util/integer_comparisons/in_range_neg.cc:
3554 Likewise.
3555 * testsuite/20_util/integer_comparisons/less_equal_neg.cc:
3556 Likewise.
3557 * testsuite/20_util/integer_comparisons/less_neg.cc: Likewise.
3558 * testsuite/20_util/integer_comparisons/not_equal_neg.cc:
3559 Likewise.
3560 * testsuite/21_strings/basic_string/hash/hash_char8_t.cc: Skip
3561 if -fno-char8_t is used.
3562 * testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc:
3563 Likewise.
3564 * testsuite/27_io/basic_ostream/inserters_character/char/deleted.cc:
3565 Likewise.
3566 * testsuite/27_io/basic_ostream/inserters_character/wchar_t/deleted.cc:
3567 Likewise.
3568 * testsuite/27_io/filesystem/path/factory/u8path-depr.cc: Use
3569 char for u8 literal if char8_t is not available.
3570 * testsuite/27_io/headers/iosfwd/synopsis.cc: Check
3571 __cpp_char8_t.
3572 * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
3573 * testsuite/29_atomics/headers/atomic/types_std_c++20_neg.cc:
3574 Remove check for _GLIBCXX_USE_CHAR8_T.
3575
3576 2024-04-08 Jonathan Wakely <jwakely (a] redhat.com>
3577
3578 * testsuite/20_util/from_chars/1_neg.cc: Add char8_t cases,
3579 using a struct of that name if -fno-char8_t is active.
3580 * testsuite/20_util/from_chars/1_c++20_neg.cc: Removed.
3581
3582 2024-04-03 Jonathan Wakely <jwakely (a] redhat.com>
3583
3584 PR libstdc++/104606
3585 * include/std/optional (operator<=>(const optional<T>&, const U&)):
3586 Reverse order of three_way_comparable_with template arguments.
3587 * testsuite/20_util/optional/relops/104606.cc: New test.
3588
3589 2024-04-02 Jonathan Wakely <jwakely (a] redhat.com>
3590
3591 PR libstdc++/114519
3592 * include/bits/unicode.h (_Utf8_view): Guard with check for
3593 char8_t being enabled.
3594 (__literal_encoding_is_unicode): Guard use of char8_t with check
3595 for it being enabled.
3596 * testsuite/std/format/functions/114519.cc: New test.
3597
3598 2024-04-02 Patrick Palka <ppalka (a] redhat.com>
3599
3600 * include/std/ranges (ranges::__detail::_Empty): Rename to ...
3601 (ranges::__detail::_Absent): ... this. Turn into a template
3602 parameterized by the absent type _Tp and discriminator _Disc.
3603 (ranges::__detail::__maybe_present_t): Add an optional
3604 discriminator parameter.
3605 (slide_view::_M_cached_begin): Pass a discriminator argument to
3606 __maybe_present_t.
3607 (slide_view::_M_cached_end): Likewise.
3608 * testsuite/std/ranges/adaptors/sizeof.cc: Verify the size of
3609 slide_view<V> is 3 instead 4 pointers.
3610
3611 2024-04-02 Jakub Jelinek <jakub (a] redhat.com>
3612
3613 * acinclude.m4: Fix duplicated words; file file -> file can.
3614 * configure.host: Fix duplicated words; the the -> the.
3615
3616 2024-03-29 Arsen Arsenovi <arsen (a] aarsen.me>
3617
3618 * testsuite/24_iterators/range_generators/01.cc: Drop GCC
3619 Runtime Library Exception.
3620 * testsuite/24_iterators/range_generators/02.cc: Drop GCC
3621 Runtime Library Exception.
3622 * testsuite/24_iterators/range_generators/copy.cc: Drop GCC
3623 Runtime Library Exception.
3624 * testsuite/24_iterators/range_generators/except.cc: Drop GCC
3625 Runtime Library Exception.
3626 * testsuite/24_iterators/range_generators/subrange.cc: Drop GCC
3627 Runtime Library Exception.
3628 * testsuite/24_iterators/range_generators/synopsis.cc: Drop GCC
3629 Runtime Library Exception.
3630 * testsuite/24_iterators/range_generators/iter_deref_return.cc:
3631 Drop GCC Runtime Library Exception from the "You should have
3632 received a copy" paragraph.
3633
3634 2024-03-27 Matthias Kretz <m.kretz (a] gsi.de>
3635
3636 * include/experimental/bits/simd_x86.h (_S_masked_unary):
3637 Cast inputs < 16 bytes to 16 byte vectors before calling the
3638 right subtraction builtin. Before returning, truncate to the
3639 return vector type.
3640
3641 2024-03-27 Matthias Kretz <m.kretz (a] gsi.de>
3642
3643 * include/experimental/bits/simd_x86.h (_S_masked_unary): Call
3644 the 4- and 8-byte variants of __builtin_ia32_subp[ds] without
3645 rounding direction argument.
3646
3647 2024-03-27 Srinivas Yadav Singanaboina <vasu.srinivasvasu.14 (a] gmail.com>
3648
3649 * include/Makefile.am: Add simd_sve.h.
3650 * include/Makefile.in: Add simd_sve.h.
3651 * include/experimental/bits/simd.h: Add new SveAbi.
3652 * include/experimental/bits/simd_builtin.h: Use
3653 __no_sve_deduce_t to support existing Neon Abi.
3654 * include/experimental/bits/simd_converter.h: Convert
3655 sequentially when sve is available.
3656 * include/experimental/bits/simd_detail.h: Define sve
3657 specific macro.
3658 * include/experimental/bits/simd_math.h: Fallback frexp
3659 to execute sequntially when sve is available, to handle
3660 fixed_size_simd return type that always uses sve.
3661 * include/experimental/simd: Include bits/simd_sve.h.
3662 * testsuite/experimental/simd/tests/bits/main.h: Enable
3663 testing for sve128, sve256, sve512.
3664 * include/experimental/bits/simd_sve.h: New file.
3665
3666 2024-03-26 Arsen Arsenovi <arsen (a] aarsen.me>
3667
3668 * include/std/generator (generator::_Iterator::operator*): Fix
3669 return type.
3670 * testsuite/24_iterators/range_generators/iter_deref_return.cc:
3671 New test.
3672
3673 2024-03-26 Arsen Arsenovi <arsen (a] aarsen.me>
3674
3675 * include/std/generator: Fix _V badname.
3676
3677 2024-03-26 Jonathan Wakely <jwakely (a] redhat.com>
3678
3679 * testsuite/19_diagnostics/stacktrace/current.cc: Check for
3680 __cpp_lib_stacktrace instead of check for stacktrace ET.
3681 * testsuite/19_diagnostics/stacktrace/entry.cc: Likewise.
3682 * testsuite/19_diagnostics/stacktrace/hash.cc: Likewise.
3683 * testsuite/19_diagnostics/stacktrace/output.cc: Likewise.
3684 * testsuite/19_diagnostics/stacktrace/stacktrace.cc: Likewise.
3685 * testsuite/19_diagnostics/stacktrace/synopsis.cc: Likewise.
3686 * testsuite/19_diagnostics/stacktrace/version.cc: Likewise.
3687 * testsuite/23_containers/vector/debug/assign4_backtrace_neg.cc:
3688 Likewise.
3689 * testsuite/lib/libstdc++.exp (check_effective_target_stacktrace):
3690 Remove.
3691
3692 2024-03-26 Jonathan Wakely <jwakely (a] redhat.com>
3693
3694 * testsuite/lib/dg-options.exp (dg-require-cpp-feature-test):
3695 New proc.
3696 * testsuite/lib/libstdc++.exp (check_v3_target_cpp_feature_test):
3697 New proc.
3698 * testsuite/std/text_encoding/cons.cc: Use new directive to skip
3699 the test if the __cpp_lib_text_encoding feature test macro is
3700 not defined.
3701 * testsuite/std/text_encoding/requirements.cc: Likewise.
3702
3703 2024-03-25 Jonathan Wakely <jwakely (a] redhat.com>
3704
3705 * testsuite/std/text_encoding/requirements.cc: #undef the
3706 correct macro.
3707
3708 2024-03-23 Jonathan Wakely <jwakely (a] redhat.com>
3709
3710 * include/std/format (formatter): Disable specializations that
3711 would allow sequences of narrow characters to be formatted as
3712 wchar_t without conversion, as per LWG 3944.
3713 * testsuite/std/format/formatter/lwg3944.cc: New test.
3714
3715 2024-03-23 Jonathan Wakely <jwakely (a] redhat.com>
3716
3717 * include/bits/utility.h (__is_in_place_index_v): New variable
3718 template.
3719 * include/std/variant (__not_in_place_tag): Define in terms of
3720 variable templates not a class template.
3721
3722 2024-03-23 Jonathan Wakely <jwakely (a] redhat.com>
3723
3724 PR libstdc++/114400
3725 * include/std/string_view (operator==): Use std::type_identity_t
3726 in C++20 instead of our own __type_identity_t.
3727
3728 2024-03-22 Jonathan Wakely <jwakely (a] redhat.com>
3729
3730 PR libstdc++/114401
3731 * include/bits/hashtable.h (_Hashtable::_M_reinsert_node): Call
3732 release() on node handle instead of just zeroing its pointer.
3733 (_Hashtable::_M_reinsert_node_multi): Likewise.
3734 (_Hashtable::_M_merge_unique): Likewise.
3735 (_Hashtable::_M_merge_multi): Likewise.
3736 * include/bits/node_handle.h (_Node_handle_common::release()):
3737 New member function.
3738 (_Node_handle_common::_Optional_alloc::_M_empty): Remove
3739 unnecessary union member.
3740 (_Node_handle_common): Declare _Hashtable as a friend.
3741 * include/bits/stl_tree.h (_Rb_tree::_M_reinsert_node_unique):
3742 Call release() on node handle instead of just zeroing its
3743 pointer.
3744 (_Rb_tree::_M_reinsert_node_equal): Likewise.
3745 (_Rb_tree::_M_reinsert_node_hint_unique): Likewise.
3746 (_Rb_tree::_M_reinsert_node_hint_equal): Likewise.
3747 * testsuite/23_containers/multiset/modifiers/114401.cc: New test.
3748 * testsuite/23_containers/set/modifiers/114401.cc: New test.
3749 * testsuite/23_containers/unordered_multiset/modifiers/114401.cc: New test.
3750 * testsuite/23_containers/unordered_set/modifiers/114401.cc: New test.
3751
3752 2024-03-22 Jonathan Wakely <jwakely (a] redhat.com>
3753
3754 PR libstdc++/113841
3755 * include/bits/allocator.h (allocator<cv T>): Add default
3756 constructor to partial specializations for cv-qualified types.
3757 * include/bits/stl_vector.h (_Vector_impl::_Vector_impl()):
3758 Constrain so that it's only present if the allocator is default
3759 constructible.
3760 * include/bits/stl_bvector.h (_Bvector_impl::_Bvector_impl()):
3761 Likewise.
3762 * testsuite/23_containers/vector/cons/113841.cc: New test.
3763
3764 2024-03-22 Jonathan Wakely <jwakely (a] redhat.com>
3765
3766 * include/bits/stl_construct.h (destroy_at, construct_at): Guard
3767 with feature test macros instead of just __cplusplus.
3768
3769 2024-03-22 Jonathan Wakely <jwakely (a] redhat.com>
3770
3771 * include/bits/version.def (generator, tuple_like): Move earlier
3772 in the file.
3773 * include/bits/version.h: Regenerate.
3774
3775 2024-03-22 Jonathan Wakely <jwakely (a] redhat.com>
3776
3777 PR libstdc++/114394
3778 * include/std/functional (bind): Use __invoke_result_t instead
3779 of result_of::type.
3780 * include/std/type_traits (__invoke_result_t): New alias
3781 template.
3782 * testsuite/20_util/bind/ref_neg.cc: Adjust prune pattern.
3783
3784 2024-03-20 Franois Dumont <fdumont (a] gcc.gnu.org>
3785
3786 * include/bits/version.def (null_iterators): Remove extra_cond.
3787 * include/bits/version.h: Regenerate.
3788
3789 2024-03-19 Jonathan Wakely <jwakely (a] redhat.com>
3790
3791 PR libstdc++/114359
3792 * include/bits/random.tcc (binomial_distribution::param_type):
3793 Ensure arithmetic is done as type double.
3794 * testsuite/26_numerics/random/binomial_distribution/114359.cc: New test.
3795
3796 2024-03-19 Jonathan Wakely <jwakely (a] redhat.com>
3797
3798 PR libstdc++/101228
3799 * include/pstl/parallel_backend_tbb.h (TBB_SUPPRESS_DEPRECATED_MESSAGES):
3800 Define before including <tbb/task.h> then undef afterwards.
3801
3802 2024-03-19 Jonathan Wakely <jwakely (a] redhat.com>
3803
3804 * include/Makefile.am [MAINTAINER_MODE]: Add target to
3805 automatically update <bits/version.h>.
3806 * include/Makefile.in: Regenerate.
3807
3808 2024-03-19 Jonathan Wakely <jwakely (a] redhat.com>
3809
3810 * doc/xml/manual/build_hacking.xml: Document generated files.
3811 Update list of convenience libraries and sub-directories under
3812 the src directory.
3813 * doc/html/*: Regenerate.
3814
3815 2024-03-19 Jonathan Wakely <jwakely (a] redhat.com>
3816
3817 * include/bits/text_encoding-data.h: Regenerate.
3818 * include/bits/unicode-data.h: Regenerate.
3819 * scripts/gen_text_encoding_data.py: Fix header of generated
3820 file to name the correct script.
3821
3822 2024-03-19 Jonathan Wakely <jwakely (a] redhat.com>
3823
3824 * testsuite/util/pstl/test_utils.h: Fix typos in comments.
3825
3826 2024-03-19 Jonathan Wakely <jwakely (a] redhat.com>
3827
3828 PR libstdc++/114367
3829 * include/bits/stl_bvector.h (_M_allocate): Use allocator's
3830 construct function to begin lifetime of words.
3831
3832 2024-03-19 Iain Sandoe <iain (a] sandoe.co.uk>
3833
3834 * testsuite/lib/dg-options.exp (atomic_link_flags): Emit a -B
3835 option for the path to the uninstalled libatomic.
3836
3837 2024-03-19 Iain Sandoe <iain (a] sandoe.co.uk>
3838
3839 * testsuite/lib/libstdc++.exp (v3_target_compile): Instead of
3840 /dev/null, use a temporary file for test executables on Darwin.
3841
3842 2024-03-18 Franois Dumont <fdumont (a] gcc.gnu.org>
3843
3844 * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_can_advance):
3845 Accept 0 offset advance on value-initialized iterator.
3846 * testsuite/23_containers/vector/debug/n3644.cc: New test case.
3847
3848 2024-03-18 Franois Dumont <fdumont (a] gcc.gnu.org>
3849
3850 * include/debug/safe_local_iterator.tcc
3851 (_Safe_local_iterator::_M_valid_range): Add _M_value_initialized and
3852 _M_singular checks.
3853 * testsuite/23_containers/unordered_set/debug/114316.cc: New test case.
3854
3855 2024-03-17 Franois Dumont <fdumont (a] gcc.gnu.org>
3856
3857 PR libstdc++/114316
3858 * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range):
3859 First check if both iterators are value-initialized before checking if
3860 singular.
3861 * testsuite/23_containers/set/debug/114316.cc: New test case.
3862 * testsuite/23_containers/vector/debug/114316.cc: New test case.
3863
3864 2024-03-14 Jonathan Wakely <jwakely (a] redhat.com>
3865
3866 PR libstdc++/114325
3867 * include/std/format (_Scanner::_M_scan): Pass correct length to
3868 __to_chars_10_impl.
3869 * testsuite/std/format/functions/format.cc: Check negative
3870 integers with empty format-spec.
3871
3872 2024-03-14 Jonathan Wakely <jwakely (a] redhat.com>
3873
3874 * include/bits/stl_algo.h (find_end, all_of, none_of, any_of)
3875 (find_if_not, is_partitioned, partition_point, remove)
3876 (remove_if, unique, lower_bound, upper_bound, equal_range)
3877 (binary_search, includes, is_sorted, is_sorted_until, minmax)
3878 (minmax_element, is_permutation, clamp, find_if, find_first_of)
3879 (adjacent_find, count, count_if, search, search_n, min_element)
3880 (max_element): Add nodiscard attribute.
3881 * include/bits/stl_algobase.h (min, max, lower_bound, equal)
3882 (lexicographical_compare, lexicographical_compare_three_way)
3883 (mismatch): Likewise.
3884 * include/bits/stl_heap.h (is_heap, is_heap_until): Likewise.
3885 * testsuite/25_algorithms/equal/debug/1_neg.cc: Add dg-warning.
3886 * testsuite/25_algorithms/equal/debug/2_neg.cc: Likewise.
3887 * testsuite/25_algorithms/equal/debug/3_neg.cc: Likewise.
3888 * testsuite/25_algorithms/find_first_of/concept_check_1.cc:
3889 Likewise.
3890 * testsuite/25_algorithms/is_permutation/2.cc: Likewise.
3891 * testsuite/25_algorithms/lexicographical_compare/71545.cc:
3892 Likewise.
3893 * testsuite/25_algorithms/lower_bound/33613.cc: Likewise.
3894 * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc:
3895 Likewise.
3896 * testsuite/25_algorithms/lower_bound/debug/partitioned_neg.cc:
3897 Likewise.
3898 * testsuite/25_algorithms/lower_bound/debug/partitioned_pred_neg.cc:
3899 Likewise.
3900 * testsuite/25_algorithms/minmax/3.cc: Likewise.
3901 * testsuite/25_algorithms/search/78346.cc: Likewise.
3902 * testsuite/25_algorithms/search_n/58358.cc: Likewise.
3903 * testsuite/25_algorithms/unique/1.cc: Likewise.
3904 * testsuite/25_algorithms/unique/11480.cc: Likewise.
3905 * testsuite/25_algorithms/upper_bound/33613.cc: Likewise.
3906 * testsuite/25_algorithms/upper_bound/debug/partitioned_neg.cc:
3907 Likewise.
3908 * testsuite/25_algorithms/upper_bound/debug/partitioned_pred_neg.cc:
3909 Likewise.
3910 * testsuite/ext/concept_checks.cc: Likewise.
3911 * testsuite/ext/is_heap/47709.cc: Likewise.
3912 * testsuite/ext/is_sorted/cxx0x.cc: Likewise.
3913
3914 2024-03-14 xndcn <xndchn (a] gmail.com>
3915
3916 * include/bits/atomic_base.h (__atomic_float::__atomic_float(Fp)):
3917 Clear padding.
3918 * testsuite/29_atomics/atomic_float/compare_exchange_padding.cc:
3919 New test.
3920
3921 2024-03-14 Jonathan Wakely <jwakely (a] redhat.com>
3922
3923 PR libstdc++/66146
3924 * doc/xml/manual/status_cxx2011.xml: Remove mention of Linux in
3925 note about std::call_once.
3926 * doc/xml/manual/status_cxx2014.xml: Likewise.
3927 * doc/xml/manual/status_cxx2017.xml: Likewise.
3928 * doc/html/manual/status.html: Regenerate.
3929
3930 2024-03-14 Jonathan Wakely <jwakely (a] redhat.com>
3931
3932 * doc/xml/manual/status_cxx2023.xml: Update C++23 status table.
3933 * doc/html/manual/status.html: Regenerate.
3934 * include/bits/version.def: Fix typo in comment.
3935
3936 2024-03-13 Jonathan Wakely <jwakely (a] redhat.com>
3937
3938 * testsuite/libstdc++-prettyprinters/cxx11.cc: Move custom_cat
3939 to namespace scope.
3940
3941 2024-03-13 Jonathan Wakely <jwakely (a] redhat.com>
3942
3943 * doc/xml/manual/debug.xml: Improve docs on debug builds and
3944 using ASan. Mention _GLIBCXX_ASSERTIONS. Reorder sections to put
3945 the most relevant ones first.
3946 * doc/xml/manual/using.xml: Add comma.
3947 * doc/html/*: Regenerate.
3948
3949 2024-03-13 Jonathan Wakely <jwakely (a] redhat.com>
3950
3951 * doc/xml/manual/debug.xml: Document that concept checking might
3952 be removed in future.
3953 * doc/xml/manual/extensions.xml: Likewise.
3954
3955 2024-03-09 Jonathan Wakely <jwakely (a] redhat.com>
3956
3957 PR libstdc++/114240
3958 * include/bits/chrono_io.h (_Parser::operator()): Assume
3959 hours(0) for a time_point, so that a time is not required
3960 to be present.
3961 * testsuite/std/time/parse/114240.cc: New test.
3962
3963 2024-03-09 Jonathan Wakely <jwakely (a] redhat.com>
3964
3965 PR libstdc++/114279
3966 * include/bits/chrono_io.h (_Parser::_M_is_leap_second): New
3967 data member.
3968 (_Parser::_M_reserved): Reserve padding bits for future use.
3969 (_Parser::operator()): Set _M_is_leap_second if %S reads 60s.
3970 (from_stream): Only allow _M_is_leap_second for utc_time and
3971 local_time. Adjust arithmetic for utc_time so that leap seconds
3972 are preserved. Use time_point_cast to convert to a possibly
3973 lower-precision result type.
3974 * testsuite/std/time/parse.cc: Move to ...
3975 * testsuite/std/time/parse/parse.cc: ... here.
3976 * testsuite/std/time/parse/114279.cc: New test.
3977
3978 2024-03-07 Jonathan Wakely <jwakely (a] redhat.com>
3979
3980 * include/bits/chrono_io.h (_Parser::operator()): Use
3981 std::from_chars to parse fractional seconds.
3982
3983 2024-03-07 Jonathan Wakely <jwakely (a] redhat.com>
3984
3985 PR libstdc++/114244
3986 * include/bits/chrono_io.h (_Parser::operator()): Remove
3987 redundant uses of duration_cast. Use chrono::round to convert
3988 long double value to durations with integer representations.
3989 Check represenation type when deciding whether to skip parsing
3990 fractional seconds.
3991 * testsuite/20_util/duration/114244.cc: New test.
3992 * testsuite/20_util/duration/io.cc: Check that a floating-point
3993 duration with ratio<1> precision can be parsed.
3994
3995 2024-03-07 Jonathan Wakely <jwakely (a] redhat.com>
3996
3997 PR libstdc++/114103
3998 * include/bits/version.def (atomic_lock_free_type_aliases): Add
3999 extra_cond to check for at least one always-lock-free type.
4000 * include/bits/version.h: Regenerate.
4001 * include/std/atomic (atomic_signed_lock_free)
4002 (atomic_unsigned_lock_free): Only use always-lock-free types.
4003 * src/c++20/tzdb.cc (time_zone::_Impl::RulesCounter): Don't use
4004 atomic counter if lock-free aliases aren't available.
4005 * testsuite/29_atomics/atomic/lock_free_aliases.cc: XFAIL for
4006 targets without lock-free word-size compare_exchange.
4007
4008 2024-03-07 Jonathan Wakely <jwakely (a] redhat.com>
4009
4010 * include/std/chrono (__get_leap_second_info): Update expiry
4011 time for hardcoded list of leap seconds.
4012 * testsuite/std/time/tzdb/leap_seconds.cc: Update comment.
4013
4014 2024-03-07 Jonathan Wakely <jwakely (a] redhat.com>
4015
4016 * testsuite/23_containers/deque/allocator/default_init.cc: Use
4017 std::memset instead of __builtin_memset.
4018 * testsuite/23_containers/forward_list/allocator/default_init.cc:
4019 Likewise.
4020 * testsuite/23_containers/list/allocator/default_init.cc:
4021 Likewise.
4022 * testsuite/23_containers/map/allocator/default_init.cc:
4023 Likewise.
4024 * testsuite/23_containers/set/allocator/default_init.cc:
4025 Likewise.
4026 * testsuite/23_containers/unordered_map/allocator/default_init.cc:
4027 Likewise.
4028 * testsuite/23_containers/unordered_set/allocator/default_init.cc:
4029 Likewise.
4030 * testsuite/23_containers/vector/allocator/default_init.cc:
4031 Likewise.
4032 * testsuite/23_containers/vector/bool/allocator/default_init.cc:
4033 Likewise.
4034 * testsuite/29_atomics/atomic/compare_exchange_padding.cc:
4035 Likewise.
4036 * testsuite/util/atomic/wait_notify_util.h: Likewise.
4037
4038 2024-03-07 Jonathan Wakely <jwakely (a] redhat.com>
4039
4040 * include/std/format (_Arg_store::_S_make_elt): Add two
4041 static_assert checks to give more user-friendly error messages.
4042 * testsuite/lib/prune.exp (libstdc++-dg-prune): Prune another
4043 form of "in requirements with" note.
4044 * testsuite/std/format/arguments/args_neg.cc: Check for
4045 user-friendly diagnostics for non-formattable types.
4046 * testsuite/std/format/string_neg.cc: Likewise.
4047
4048 2024-03-04 Jonathan Wakely <jwakely (a] redhat.com>
4049
4050 PR libstdc++/114147
4051 * include/std/tuple (tuple::tuple(allocator_arg_t, const Alloc&)):
4052 Add missing overload of allocator-extended default constructor.
4053 (tuple<T1,T2>::tuple(allocator_arg_t, const Alloc&)): Likewise.
4054 * testsuite/20_util/tuple/cons/114147.cc: New test.
4055
4056 2024-02-29 Jonathan Wakely <jwakely (a] redhat.com>
4057
4058 * include/std/format (basic_format_arg::handle::__maybe_const_t):
4059 Fix condition to check if const type is formattable.
4060 (basic_format_arg::handle::handle(T&)): Remove redundant
4061 static_assert.
4062 * testsuite/std/format/formatter/basic.cc: New test.
4063
4064 2024-02-29 Jonathan Wakely <jwakely (a] redhat.com>
4065
4066 PR libstdc++/113960
4067 * include/bits/stl_algobase.h (__is_byte_iter): Replace with ...
4068 (__memcmp_ordered_with): New concept.
4069 (lexicographical_compare_three_way): Use __memcmp_ordered_with
4070 instead of __is_byte_iter. Use correct length for memcmp.
4071 * testsuite/25_algorithms/lexicographical_compare_three_way/113960.cc:
4072 New test.
4073
4074 2024-02-28 Jonathan Wakely <jwakely (a] redhat.com>
4075
4076 PR libstdc++/114152
4077 * include/experimental/scope (scope_exit scope_fail): Make
4078 destructor unconditionally noexcept.
4079 (scope_sucess): Fix noexcept-specifier.
4080 * testsuite/experimental/scopeguard/114152.cc: New test.
4081
4082 2024-02-28 Jonathan Wakely <jwakely (a] redhat.com>
4083
4084 * doc/xml/manual/appendix_contributing.xml: Change URLs to use
4085 https.
4086 * doc/html/manual/*: Regenerate.
4087
4088 2024-02-28 Jonathan Wakely <jwakely (a] redhat.com>
4089
4090 * doc/xml/manual/appendix_contributing.xml: Replace outdated
4091 info on ChangeLog entries.
4092 * doc/html/manual/appendix_contributing.html: Regenerate.
4093
4094 2024-02-28 Jonathan Wakely <jwakely (a] redhat.com>
4095
4096 * include/bits/stl_bvector.h (vector<bool, A>::at): Add
4097 nodiscard.
4098 * include/bits/stl_vector.h (vector<T, A>::at): Likewise.
4099 (operator==, operator<=>, operator<, operator!=, operator>)
4100 (operator<=, operator>=): Likewise.
4101 * include/debug/vector (operator==, operator<=>, operator<)
4102 (operator!=, operator>, operator<=, operator>=): Likewise.
4103 * testsuite/23_containers/vector/nodiscard.cc: New test.
4104
4105 2024-02-28 Jonathan Wakely <jwakely (a] redhat.com>
4106
4107 * include/bits/atomic_base.h (operator|, operator&): Add
4108 noexcept.
4109 * include/bits/fs_fwd.h (operator&, operator|, operator^)
4110 (operator~): Add nodiscard to overloads for copy_options, perms,
4111 perm_options, and directory_options.
4112 * include/bits/ios_base.h (operator&, operator|, operator^)
4113 (operator~): Add nodiscard and noexcept to overloads for
4114 _Ios_Fmtflags, _Ios_Openmode, and _Ios_Iostate.
4115 (operator|=, operator&=, operator^=): Add constexpr for C++14.
4116 * include/bits/regex_constants.h (operator&, operator|, operator^)
4117 (operator~): Add nodiscard and noexcept to overloads for
4118 syntax_option_type and match_flag_type.
4119 (operator|=, operator&=, operator^=): Add noexcept.
4120 * include/std/charconv (operator&, operator|, operator^)
4121 (operator~): Add nodiscard to overloads for chars_format.
4122 * include/std/future (operator&, operator|, operator^)
4123 (operator~): Add nodiscard for overloads for launch.
4124 (operator&=, operator|=, operator^=): Add constexpr for C++14.
4125 * include/experimental/bits/fs_fwd.h (operator&, operator|)
4126 (operator^, operator~): Add nodiscard to overloads for
4127 copy_options, perms, and directory_options.
4128 * testsuite/27_io/ios_base/types/fmtflags/bitmask_operators.cc:
4129 Add dg-warning for nodiscard warnings.
4130 * testsuite/27_io/ios_base/types/iostate/bitmask_operators.cc:
4131 Likewise.
4132 * testsuite/27_io/ios_base/types/openmode/bitmask_operators.cc:
4133 Likewise.
4134 * testsuite/27_io/filesystem/operations/bitmask_types.cc:
4135 New test.
4136
4137 2024-02-28 Jonathan Wakely <jwakely (a] redhat.com>
4138
4139 * testsuite/27_io/basic_ostream/print/1.cc: Check error
4140 handling.
4141 * testsuite/27_io/print/1.cc: Likewise.
4142
4143 2024-02-28 Jonathan Wakely <jwakely (a] redhat.com>
4144
4145 * include/std/ostream (vprint_unicode) [__CYGWIN__]: Use POSIX
4146 code path for Cygwin instead of Windows.
4147 * include/std/print (vprint_unicode) [__CYGWIN__]: Likewise.
4148 * testsuite/27_io/basic_ostream/print/1.cc: Only add -lstdc++exp
4149 for *-*-mingw* targets.
4150 * testsuite/27_io/print/1.cc: Likewise.
4151
4152 2024-02-28 Jonathan Wakely <jwakely (a] redhat.com>
4153
4154 * include/bits/alloc_traits.h: Include <bits/stl_iterator.h> for
4155 __make_move_if_noexcept_iterator.
4156
4157 2024-02-28 Jonathan Wakely <jwakely (a] redhat.com>
4158
4159 * include/std/stacktrace: Add nodiscard attribute to all
4160 functions without side effects.
4161
4162 2024-02-20 Franois Dumont <fdumont (a] gcc.gnu.org>
4163
4164 * include/bits/stl_algobase.h (std::__niter_wrap): Add a call to
4165 std::__niter_base on res iterator.
4166
4167 2024-02-19 Iain Sandoe <iain (a] sandoe.co.uk>
4168 Jonathan Wakely <jwakely (a] redhat.com>
4169
4170 PR target/112397
4171 * configure: Regenerate.
4172 * configure.ac: Detect if we are building for Darwin.
4173 * libsupc++/Makefile.am: If we are building for Darwin, then
4174 suppress hot/cold partitioning for the array allocators.
4175 * libsupc++/Makefile.in: Regenerated.
4176
4177 2024-02-17 Franois Dumont <fdumont (a] gcc.gnu.org>
4178
4179 * include/bits/stl_algobase.h (std::__niter_base): Redefine the overload
4180 definitions for __gnu_debug::_Safe_iterator.
4181 * include/debug/safe_iterator.tcc (std::__niter_base): Adapt declarations.
4182
4183 2024-02-16 Jonathan Wakely <jwakely (a] redhat.com>
4184
4185 PR libstdc++/87744
4186 PR libstdc++/113961
4187 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
4188 line number.
4189
4190 2024-02-16 Jonathan Wakely <jwakely (a] redhat.com>
4191
4192 PR libstdc++/87744
4193 PR libstdc++/113931
4194 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
4195 line number.
4196
4197 2024-02-16 Jonathan Wakely <jwakely (a] redhat.com>
4198
4199 * doc/xml/manual/debug_mode.xml: Update docs for backtraces.
4200 * doc/html/manual/debug_mode_using.html: Regenerate.
4201
4202 2024-02-16 Jonathan Wakely <jwakely (a] redhat.com>
4203
4204 * doc/xml/manual/test.xml: Fix spelling of <envar> elements.
4205 * doc/html/manual/test.html: Regenerate.
4206
4207 2024-02-15 Jonathan Wakely <jwakely (a] redhat.com>
4208
4209 PR libstdc++/113806
4210 * include/std/bitset (bitset::operator>>=): Remove redundant
4211 call to _M_do_sanitize.
4212
4213 2024-02-15 Jonathan Wakely <jwakely (a] redhat.com>
4214
4215 PR libstdc++/113807
4216 * include/std/bitset (bitset::set()): Use memset instead of a
4217 loop over the individual words.
4218
4219 2024-02-15 Jonathan Wakely <jwakely (a] redhat.com>
4220
4221 PR libstdc++/113811
4222 * include/bits/stl_algo.h (__rotate): Use unsigned values for
4223 division.
4224
4225 2024-02-15 Jonathan Wakely <jwakely (a] redhat.com>
4226
4227 PR libstdc++/99117
4228 * include/std/valarray (valarray::operator=(const _Expr&)):
4229 Use loop to copy instead of __valarray_copy with _Array.
4230 * testsuite/26_numerics/valarray/99117.cc: New test.
4231
4232 2024-02-15 Jonathan Wakely <jwakely (a] redhat.com>
4233
4234 * src/c++20/tzdata.zi: Import new file from 2024a release.
4235 * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds)
4236 Update expiry date for leap seconds list.
4237
4238 2024-02-15 Jonathan Wakely <jwakely (a] redhat.com>
4239
4240 PR libstdc++/87744
4241 * include/bits/random.h [!__SIZEOF_INT128__] (_Select_uint_least_t):
4242 Define specialization for 64-bit generators with
4243 non-power-of-two modulus and large constants.
4244 (__mod): Use if constexpr unconditionally.
4245 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
4246 line number.
4247 * testsuite/26_numerics/random/linear_congruential_engine/87744.cc:
4248 New test.
4249
4250 2024-02-14 Gerald Pfeifer <gerald (a] pfeifer.com>
4251
4252 * doc/xml/manual/status_cxx2023.xml: Fix C++ item p2442 to be
4253 version 1.
4254 * doc/html/manual/status.html: Regenerate.
4255
4256 2024-02-12 Paul Keir <paul.keir (a] uws.ac.uk>
4257
4258 PR libstdc++/113294
4259 * include/bits/basic_string.h (basic_string::operator=): Use
4260 _M_use_local_data() instead of _M_local_buf on the moved-from
4261 string.
4262 * testsuite/21_strings/basic_string/modifiers/constexpr.cc
4263 (test_move): New test.
4264
4265 2024-02-09 Ken Matsui <kmatsui (a] gcc.gnu.org>
4266
4267 * include/bits/c++config (_GLIBCXX_HAVE_BUILTIN_IS_SAME):
4268 Removed.
4269 * include/std/type_traits (is_same): Use
4270 _GLIBCXX_USE_BUILTIN_TRAIT instead of
4271 _GLIBCXX_HAVE_BUILTIN_IS_SAME.
4272 (is_same_v): Likewise.
4273
4274 2024-02-08 Jonathan Wakely <jwakely (a] redhat.com>
4275
4276 * include/bits/shared_ptr_atomic.h: Fix typo in comment.
4277
4278 2024-02-08 Jonathan Wakely <jwakely (a] redhat.com>
4279
4280 PR libstdc++/100147
4281 * include/bits/gslice.h (operator=): Add comment about lack of
4282 self-assignment check.
4283
4284 2024-02-08 Jonathan Wakely <jwakely (a] redhat.com>
4285
4286 * include/tr2/type_traits (bases, direct_bases): Use
4287 __has_builtin to check if required built-ins are supported.
4288
4289 2024-02-07 Patrick Palka <ppalka (a] redhat.com>
4290
4291 PR testsuite/113710
4292 PR c++/113814
4293 * include/bits/stl_pair.h (tuple_element): Add forward
4294 declaration of the partial specialization for tuple.
4295
4296 2024-02-06 Torbjrn SVENSSON <torbjorn.svensson (a] foss.st.com>
4297
4298 * testsuite/lib/libstdc++.exp: Use "nul" for Windows, "/dev/null"
4299 for other environments.
4300
4301 2024-02-04 Jonathan Wakely <jwakely (a] redhat.com>
4302
4303 * include/std/format (__format::_Spec::_M_reserved): Define new
4304 bit-field members to reserve padding bits for future extensions.
4305
4306 2024-02-04 Jonathan Wakely <jwakely (a] redhat.com>
4307
4308 * src/experimental/Makefile.am: Use libstdc++fsconvenience.a
4309 instead of libstdc++fs.a.
4310 * src/experimental/Makefile.in: Regenerate.
4311 * src/filesystem/Makefile.am: Build libstdc++fsconvenience.a as
4312 well.
4313 * src/filesystem/Makefile.in: Regenerate.
4314
4315 2024-02-04 Jonathan Wakely <jwakely (a] redhat.com>
4316
4317 * include/bits/text_encoding-data.h: Regenerate.
4318 * include/bits/unicode-data.h: Regenerate.
4319 * scripts/gen_text_encoding_data.py: Add copyright and license
4320 text to the output.
4321
4322 2024-02-02 Jonathan Wakely <jwakely (a] redhat.com>
4323
4324 PR libstdc++/113335
4325 * include/bits/std_function.h (__function_guide_helper): Add
4326 partial specialization for explicit object member functions, as
4327 per LWG 3617.
4328 * testsuite/20_util/function/cons/deduction_c++23.cc: Check
4329 explicit object member functions.
4330 * testsuite/30_threads/packaged_task/cons/deduction_c++23.cc:
4331 Likewise.
4332
4333 2024-02-02 Jonathan Wakely <jwakely (a] redhat.com>
4334
4335 * testsuite/17_intro/names.cc [_AIX]: Undefine "u".
4336
4337 2024-02-02 Jonathan Wakely <jwakely (a] redhat.com>
4338
4339 * include/experimental/internet (network_v6::network): Define.
4340 (network_v6::hosts): Finish implementing.
4341 (network_v6::to_string): Do not concatenate std::string to
4342 arbitrary std::basic_string specialization.
4343 * testsuite/experimental/net/internet/network/v6/cons.cc: New
4344 test.
4345
4346 2024-02-02 Jonathan Wakely <jwakely (a] redhat.com>
4347
4348 PR libstdc++/90276
4349 * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc: Fix
4350 comparison function to use less-than instead of equality.
4351
4352 2024-02-02 Jonathan Wakely <jwakely (a] redhat.com>
4353
4354 PR libstdc++/90276
4355 * testsuite/util/pstl/test_utils.h (reverse_invoker): Do not use
4356 perfect forwarding for iterator arguments.
4357
4358 2024-02-02 Jonathan Wakely <jwakely (a] redhat.com>
4359
4360 * include/std/string_view (basic_string_view(R&&)): Remove
4361 constraint that traits_type must be the same, as per LWG 3857.
4362 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc:
4363 Explicit conversion between different specializations should be
4364 allowed.
4365 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc:
4366 Likewise.
4367
4368 2024-02-02 Jonathan Wakely <jwakely (a] redhat.com>
4369
4370 * include/std/syncstream (basic_osyncstream::operator=): Remove
4371 noexcept, as per LWG 3867.
4372
4373 2024-02-02 Jonathan Wakely <jwakely (a] redhat.com>
4374
4375 * include/std/generator (promise_type::yield_value): Remove
4376 noexcept from fourth overload, as per LWG 3894.
4377
4378 2024-02-01 Patrick Palka <ppalka (a] redhat.com>
4379
4380 PR libstdc++/113309
4381 PR libstdc++/109203
4382 * include/bits/ranges_util.h (__detail::__pair_like): Don't
4383 define in C++23 mode.
4384 (__detail::__pair_like_convertible_from): Adjust as per P2165R4.
4385 (__detail::__is_subrange<subrange>): Moved from <ranges>.
4386 (__detail::__is_tuple_like_v<subrange>): Likewise.
4387 * include/bits/stl_iterator.h: Include <bits/utility.h> for
4388 C++23.
4389 (__different_from): Move to <concepts>.
4390 (__iter_key_t): Adjust for C++23 as per P2165R4.
4391 (__iter_val_t): Likewise.
4392 * include/bits/stl_pair.h (pair, array): Forward declare.
4393 (get): Forward declare all overloads relevant to P2165R4
4394 tuple-like constructors.
4395 (__is_tuple_v): Define for C++23.
4396 (__is_tuple_like_v): Define for C++23.
4397 (__tuple_like): Define for C++23 as per P2165R4.
4398 (__pair_like): Define for C++23 as per P2165R4.
4399 (__eligibile_tuple_like): Define for C++23.
4400 (__eligibile_pair_like): Define for C++23.
4401 (pair::_S_constructible_from_pair_like): Define for C++23.
4402 (pair::_S_convertible_from_pair_like): Define for C++23.
4403 (pair::_S_dangles_from_pair_like): Define for C++23.
4404 (pair::pair): Define overloads taking a tuple-like type for
4405 C++23 as per P2165R4.
4406 (pair::_S_assignable_from_tuple_like): Define for C++23.
4407 (pair::_S_const_assignable_from_tuple_like): Define for C++23.
4408 (pair::operator=): Define overloads taking a tuple-like type for
4409 C++23 as per P2165R4.
4410 * include/bits/utility.h (ranges::__detail::__is_subrange):
4411 Moved from <ranges>.
4412 * include/bits/version.def (tuple_like): Define for C++23.
4413 * include/bits/version.h: Regenerate.
4414 * include/std/concepts (__different_from): Moved from
4415 <bits/stl_iterator.h>.
4416 (ranges::__swap::__adl_swap): Clarify which __detail namespace.
4417 * include/std/map (__cpp_lib_tuple_like): Define C++23.
4418 * include/std/ranges (__detail::__is_subrange): Moved to
4419 <bits/utility.h>.
4420 (__detail::__is_subrange<subrange>): Moved to <bits/ranges_util.h>
4421 (__detail::__has_tuple_element): Adjust for C++23 as per P2165R4.
4422 (__detail::__tuple_or_pair): Remove as per P2165R4. Replace all
4423 uses with plain tuple as per P2165R4.
4424 * include/std/tuple (__cpp_lib_tuple_like): Define for C++23.
4425 (__tuple_like_tag_t): Define for C++23.
4426 (__tuple_cmp): Forward declare for C++23.
4427 (_Tuple_impl::_Tuple_impl): Define overloads taking
4428 __tuple_like_tag_t and a tuple-like type for C++23.
4429 (_Tuple_impl::_M_assign): Likewise.
4430 (tuple::__constructible_from_tuple_like): Define for C++23.
4431 (tuple::__convertible_from_tuple_like): Define for C++23.
4432 (tuple::__dangles_from_tuple_like): Define for C++23.
4433 (tuple::tuple): Define overloads taking a tuple-like type for
4434 C++23 as per P2165R4.
4435 (tuple::__assignable_from_tuple_like): Define for C++23.
4436 (tuple::__const_assignable_from_tuple_like): Define for C++23.
4437 (tuple::operator=): Define overloads taking a tuple-like type
4438 for C++23 as per P2165R4.
4439 (tuple::__tuple_like_common_comparison_category): Define for C++23.
4440 (tuple::operator<=>): Define overload taking a tuple-like type
4441 for C++23 as per P2165R4.
4442 (array, get): Forward declarations moved to <bits/stl_pair.h>.
4443 (tuple_cat): Constrain with __tuple_like for C++23 as per P2165R4.
4444 (apply): Likewise.
4445 (make_from_tuple): Likewise.
4446 (__tuple_like_common_reference): Define for C++23.
4447 (basic_common_reference): Adjust as per P2165R4.
4448 (__tuple_like_common_type): Define for C++23.
4449 (common_type): Adjust as per P2165R4.
4450 * include/std/unordered_map (__cpp_lib_tuple_like): Define for
4451 C++23.
4452 * include/std/utility (__cpp_lib_tuple_like): Define for C++23.
4453 * testsuite/std/ranges/zip/1.cc (test01): Adjust to handle pair
4454 and 2-tuple interchangeably.
4455 (test05): New test.
4456 * testsuite/20_util/pair/p2165r4.cc: New test.
4457 * testsuite/20_util/tuple/p2165r4.cc: New test.
4458
4459 2024-02-01 Patrick Palka <ppalka (a] redhat.com>
4460
4461 * include/bits/stl_pair.h (pair::_S_const_assignable): Define,
4462 factored out from ...
4463 (pair::operator=): ... the constraints of the const overloads.
4464
4465 2024-02-01 Jonathan Wakely <jwakely (a] redhat.com>
4466
4467 * include/bits/version.tpl: Do not use def-file-line for each
4468 macro being defined.
4469 * include/bits/version.h: Regenerate.
4470
4471 2024-02-01 Jonathan Wakely <jwakely (a] redhat.com>
4472
4473 * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Adjust
4474 dg-error pattern.
4475 * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc:
4476 Likewise.
4477 * testsuite/25_algorithms/equal/debug/constexpr_neg.cc:
4478 Likewise.
4479 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc:
4480 Likewise.
4481 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc:
4482 Likewise.
4483 * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc:
4484 Likewise.
4485 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc:
4486 Likewise.
4487 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc:
4488 Likewise.
4489 * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc:
4490 Likewise.
4491
4492 2024-02-01 Jonathan Wakely <jwakely (a] redhat.com>
4493
4494 * include/experimental/internet (network_v4::to_string()):
4495 Remove lambda and use of resize_and_overwrite.
4496
4497 2024-01-31 Jonathan Wakely <jwakely (a] redhat.com>
4498
4499 * acinclude.m4 (GLIBCXX_CHECK_TEXT_ENCODING): Use <xlocale.h> if
4500 needed for newlocale.
4501 * configure: Regenerate.
4502 * src/c++26/text_encoding.cc: Use <xlocale.h>.
4503
4504 2024-01-31 Jonathan Wakely <jwakely (a] redhat.com>
4505 Ewan Higgs <ewan.higgs (a] gmail.com>
4506
4507 * include/bits/text_encoding-data.h: Regenerate.
4508 * scripts/gen_text_encoding_data.py: Add extra_aliases dict
4509 containing "ASCII".
4510 * testsuite/std/text_encoding/cons.cc: Check "ascii" is known.
4511
4512 2024-01-31 Jonathan Wakely <jwakely (a] redhat.com>
4513
4514 * doc/xml/manual/using.xml: Update tables of supported headers.
4515 * doc/html/*: Regenerate.
4516
4517 2024-01-31 Jonathan Wakely <jwakely (a] redhat.com>
4518
4519 * include/std/bitset (_Base_bitset::_M_do_to_ullong): Avoid
4520 -Wshift-count-overflow warning.
4521
4522 2024-01-30 Jonathan Wakely <jwakely (a] redhat.com>
4523
4524 * testsuite/std/time/clock/gps/io.cc: Fix expected result in
4525 assertion and call test_format() from main.
4526
4527 2024-01-29 Franois Dumont <fdumont (a] gcc.gnu.org>
4528
4529 * doc/xml/manual/debug_mode.xml: Link against libstdc++exp.a to use
4530 _GLIBCXX_DEBUG_BACKTRACE macro.
4531
4532 2024-01-24 Huanghui Nie <nnnjkk (a] gmail.com>
4533 Tho Papadopoulo <papadopoulo (a] gmail.com>
4534
4535 * include/bits/hashtable.h (_Hahstable<>::_M_remove_bucket_begin): Remove
4536 _M_before_begin check and cleanup implementation.
4537
4538 2024-01-22 Jonathan Wakely <jwakely (a] redhat.com>
4539
4540 * testsuite/std/time/clock/file/io.cc: Fix expected result in
4541 assertion and call test_format() from main.
4542
4543 2024-01-21 Jonathan Wakely <jwakely (a] redhat.com>
4544
4545 PR libstdc++/113500
4546 * include/bits/chrono_io.h (__formatter_chrono::_M_S): Fix
4547 printing of subseconds with floating-point rep.
4548 (__formatter_chrono::_M_format_to_ostream): Do not write
4549 time_point specializations directly to the ostream.
4550 (formatter<chrono::sys_time<D>, C>::parse): Do not allow an
4551 empty chrono-spec if the type fails to meet the constraints for
4552 writing to an ostream with operator<<.
4553 * testsuite/std/time/clock/file/io.cc: Check formatting
4554 non-integral times with empty chrono-specs.
4555 * testsuite/std/time/clock/gps/io.cc: Likewise.
4556 * testsuite/std/time/clock/utc/io.cc: Likewise.
4557 * testsuite/std/time/hh_mm_ss/io.cc: Likewise.
4558
4559 2024-01-21 Jonathan Wakely <jwakely (a] redhat.com>
4560
4561 * include/bits/chrono.h (__file_clock::from_sys)
4562 (__file_clock::to_sys, __file_clock::_S_from_sys)
4563 (__file_clock::_S_to_sys): Use common_type for return type.
4564 * testsuite/std/time/clock/file/members.cc: Check round trip
4565 conversion for time with lower precision that seconds.
4566
4567 2024-01-21 Jonathan Wakely <jwakely (a] redhat.com>
4568
4569 PR libstdc++/113512
4570 * include/std/format (__formatter_fp::format): Fix logic for
4571 alternate forms.
4572 * testsuite/std/format/functions/format.cc: Check buggy cases of
4573 alternate forms with g presentation type.
4574
4575 2024-01-20 Marek Polacek <polacek (a] redhat.com>
4576
4577 PR c++/111410
4578 * include/std/ranges: Add #pragma to disable -Wdangling-reference with
4579 std::ranges::views::__adaptor::operator|.
4580
4581 2024-01-19 Jonathan Wakely <jwakely (a] redhat.com>
4582
4583 * include/std/format (_Spec::_M_parse_fill_and_align): Do not
4584 use CTAD for _Utf32_view.
4585
4586 2024-01-19 Jonathan Wakely <jwakely (a] redhat.com>
4587
4588 PR libstdc++/108822
4589 * include/std/tuple (__glibcxx_no_dangling_refs) [C++17]: Fix
4590 wrong fold-operator.
4591 * testsuite/20_util/tuple/dangling_ref.cc: Check tuples with one
4592 element and three elements. Check allocator-extended
4593 constructors.
4594
4595 2024-01-19 Patrick Palka <ppalka (a] redhat.com>
4596
4597 * include/precompiled/stdc++.h [_GLIBCXX_HOSTED]: Include
4598 <print> and <text_encoding> for C++23 and C++26 respectively.
4599
4600 2024-01-18 Patrick Palka <ppalka (a] redhat.com>
4601
4602 * include/bits/stl_pair.h [__cplusplus > 202002L]:
4603 Guard P2321R2 changes with __glibcxx_ranges_zip instead.
4604
4605 2024-01-18 Patrick Palka <ppalka (a] redhat.com>
4606
4607 * include/std/tuple [__cplusplus > 202002L]: Guard P2321R2
4608 changes with __cpp_lib_ranges_zip instead.
4609
4610 2024-01-18 Patrick Palka <ppalka (a] redhat.com>
4611
4612 PR libstdc++/109536
4613 * include/debug/safe_base.h (_Safe_sequence_base::_M_swap):
4614 Remove _GLIBCXX20_CONSTEXPR from non-inline member function.
4615 * include/debug/safe_iterator.h
4616 (_GLIBCXX20_CONSTEXPR_NON_LITERAL_SCOPE_BEGIN): Define.
4617 (_GLIBCXX20_CONSTEXPR_NON_LITERAL_SCOPE_END): Define.
4618 (_Safe_iterator::operator=): Use them around the code path that
4619 defines a variable of type __gnu_cxx::__scoped_lock.
4620 (_Safe_iterator::operator++): Likewise.
4621 (_Safe_iterator::operator--): Likewise.
4622 (_Safe_iterator::operator+=): Likewise.
4623 (_Safe_iterator::operator-=): Likewise.
4624 * testsuite/23_containers/vector/element_access/constexpr.cc
4625 (test_iterators): Test more iterator operations.
4626 * testsuite/23_containers/vector/bool/element_access/constexpr.cc
4627 (test_iterators): Likewise.
4628 * testsuite/std/ranges/adaptors/all.cc (test08) [_GLIBCXX_DEBUG]:
4629 Remove.
4630
4631 2024-01-18 Jonathan Wakely <jwakely (a] redhat.com>
4632
4633 * include/bits/unicode.h (__charset_alias_match): Initialize
4634 __var_a and __var_b.
4635
4636 2024-01-18 Jonathan Wakely <jwakely (a] redhat.com>
4637
4638 PR libstdc++/113450
4639 * testsuite/std/format/functions/format.cc: Use signed char
4640 instead of int8_t.
4641
4642 2024-01-17 Jonathan Wakely <jwakely (a] redhat.com>
4643
4644 PR libstdc++/113318
4645 * acinclude.m4 (GLIBCXX_CONFIGURE): Add c++26 directory.
4646 (GLIBCXX_CHECK_TEXT_ENCODING): Define.
4647 * config.h.in: Regenerate.
4648 * configure: Regenerate.
4649 * configure.ac: Use GLIBCXX_CHECK_TEXT_ENCODING.
4650 * include/Makefile.am: Add new headers.
4651 * include/Makefile.in: Regenerate.
4652 * include/bits/locale_classes.h (locale::encoding): Declare new
4653 member function.
4654 * include/bits/unicode.h (__charset_alias_match): New function.
4655 * include/bits/text_encoding-data.h: New file.
4656 * include/bits/version.def (text_encoding): Define.
4657 * include/bits/version.h: Regenerate.
4658 * include/std/text_encoding: New file.
4659 * src/Makefile.am: Add new subdirectory.
4660 * src/Makefile.in: Regenerate.
4661 * src/c++26/Makefile.am: New file.
4662 * src/c++26/Makefile.in: New file.
4663 * src/c++26/text_encoding.cc: New file.
4664 * src/experimental/Makefile.am: Include c++26 convenience
4665 library.
4666 * src/experimental/Makefile.in: Regenerate.
4667 * python/libstdcxx/v6/printers.py (StdTextEncodingPrinter): New
4668 printer.
4669 * scripts/gen_text_encoding_data.py: New file.
4670 * testsuite/22_locale/locale/encoding.cc: New test.
4671 * testsuite/ext/unicode/charset_alias_match.cc: New test.
4672 * testsuite/std/text_encoding/cons.cc: New test.
4673 * testsuite/std/text_encoding/members.cc: New test.
4674 * testsuite/std/text_encoding/requirements.cc: New test.
4675
4676 2024-01-17 Jonathan Wakely <jwakely (a] redhat.com>
4677
4678 * include/bits/unicode.h (_Grapheme_cluster_view): Require view.
4679 Do not use CTAD for _Utf32_view.
4680 (__format_width, __truncate): Do not use CTAD.
4681 (enable_borrowed_range<_Utf_view<T, R>>): Define specialization.
4682 (enable_borrowed_range<_Grapheme_cluster_view<R>>): Likewise.
4683
4684 2024-01-17 Patrick Palka <ppalka (a] redhat.com>
4685
4686 * include/std/ranges (views::_CartesianProduct::operator()):
4687 Adjust identity case as per P2540R1.
4688 * testsuite/std/ranges/cartesian_product/1.cc (test01):
4689 Adjust expected result of the identity case.
4690
4691 2024-01-15 Patrick Palka <ppalka (a] redhat.com>
4692
4693 * include/std/variant (__detail::__variant::_Variadic_union):
4694 Add bool __trivially_destructible template parameter.
4695 (__detail::__variant::_Variadic_union::~_Variadic_union):
4696 Use __trivially_destructible in constraints instead.
4697 (__detail::__variant::_Variant_storage): Pass
4698 __trivially_destructible value to _Variadic_union.
4699
4700 2024-01-15 Patrick Palka <ppalka (a] redhat.com>
4701
4702 * include/bits/stl_iterator.h (const_iterator): Define conversion
4703 operators as per P2836R1.
4704 * include/bits/version.def (ranges_as_const): Update value.
4705 * include/bits/version.h: Regenerate.
4706 * testsuite/24_iterators/const_iterator/1.cc (test04): New test.
4707 * testsuite/std/ranges/adaptors/as_const/1.cc: Adjust expected
4708 value of __cpp_lib_ranges_as_const.
4709 * testsuite/std/ranges/version_c++23.cc: Likewise.
4710
4711 2024-01-15 Jonathan Wakely <jwakely (a] redhat.com>
4712
4713 PR libstdc++/108822
4714 * include/std/tuple (__assignable, __is_nothrow_assignable):
4715 Move pre-C++20 definitions adjacent to their use.
4716
4717 2024-01-15 Jonathan Wakely <jwakely (a] redhat.com>
4718
4719 PR testsuite/113366
4720 * include/std/format (basic_format_arg): Use __formattable
4721 variable template instead of __format::__formattable_with
4722 concept.
4723
4724 2024-01-15 Jonathan Wakely <jwakely (a] redhat.com>
4725
4726 * src/c++20/tzdata.zi: Import new file from 2023d release.
4727 * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds)
4728 Update expiry date for leap seconds list.
4729
4730 2024-01-13 Jonathan Wakely <jwakely (a] redhat.com>
4731
4732 PR libstdc++/108822
4733 * include/std/tuple (tuple): Add checks for dangling references.
4734 Reimplement constraints and constant expressions using C++20
4735 features.
4736 * include/std/type_traits [C++20]
4737 (__is_implicitly_default_constructible_v): Define.
4738 (__is_implicitly_default_constructible): Use variable template.
4739 * testsuite/20_util/tuple/dangling_ref.cc: New test.
4740
4741 2024-01-13 Patrick Palka <ppalka (a] redhat.com>
4742
4743 PR libstdc++/108827
4744 PR libstdc++/111327
4745 * include/bits/version.def (bind_back): Define.
4746 * include/bits/version.h: Regenerate.
4747 * include/std/functional (_Bind_back): Define for C++23.
4748 (bind_back): Likewise.
4749 * testsuite/20_util/function_objects/bind_back/1.cc: New test
4750 (adapted from corresponding bind_front test).
4751 * testsuite/20_util/function_objects/bind_back/111327.cc: Likewise.
4752
4753 2024-01-13 Patrick Palka <ppalka (a] redhat.com>
4754
4755 * include/std/functional (_Bind_front): Remove =default special
4756 member function declarations.
4757 (_Bind_front::operator()): Implement using C++23 deducing this
4758 when available.
4759 * testsuite/20_util/function_objects/bind_front/111327.cc:
4760 Adjust testcase to expect better errors in C++23 mode.
4761
4762 2024-01-13 Patrick Palka <ppalka (a] redhat.com>
4763
4764 * include/std/ranges (views::__adaptor::operator|): Perform
4765 perfect forwarding of arguments.
4766 (views::__adaptor::_RangeAdaptor::operator()): Pass dummy
4767 first argument to _Partial.
4768 (views::__adaptor::_Partial::_Partial): Likewise. Add dummy
4769 first parameter.
4770 (views::__adaptor::_Pipe::_Pipe): Perform perfect forwarding
4771 of arguments.
4772 (to): Pass dummy first argument to _Partial.
4773
4774 2024-01-13 Jonathan Wakely <jwakely (a] redhat.com>
4775
4776 PR libstdc++/107466
4777 * include/bits/random.tcc (subtract_with_carry_engine::seed):
4778 Implement proposed resolution of LWG 4014.
4779 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
4780 line number.
4781 * testsuite/26_numerics/random/subtract_with_carry_engine/cons/lwg3809.cc:
4782 Check for expected result of 64-bit engine with seed that
4783 doesn't fit in 32-bits.
4784
4785 2024-01-12 Jonathan Wakely <jwakely (a] redhat.com>
4786
4787 PR libstdc++/113320
4788 * include/std/format (__format::_Runtime_format_string): Add
4789 constructor and disable copy operations.
4790 (basic_format_string(_Runtime_format_string)): Add noexcept and
4791 take parameter by value not rvalue reference.
4792 (runtime_format): Add noexcept.
4793 * testsuite/std/format/runtime_format.cc: Check noexcept. Check
4794 that construction is only possible from prvalues, not xvalues.
4795
4796 2024-01-12 Jonathan Wakely <jwakely (a] redhat.com>
4797
4798 PR libstdc++/105505
4799 * include/bits/stl_pair.h (pair::pair(U1&&, U2&&)) [C++23]: Add
4800 default template arguments, as per P1951R1.
4801 * testsuite/20_util/pair/cons/default_tmpl_args.cc: New test.
4802
4803 2024-01-12 Jonathan Wakely <jwakely (a] redhat.com>
4804
4805 * include/std/format (__format::_Arg_store): Fix PR number in
4806 comment. Simplify preprocessor code.
4807
4808 2024-01-11 Jonathan Wakely <jwakely (a] redhat.com>
4809
4810 * doc/xml/manual/evolution.xml: Fix spelling.
4811 * doc/html/manual/api.html: Regenerate.
4812
4813 2024-01-11 Jonathan Wakely <jwakely (a] redhat.com>
4814
4815 * doc/xml/manual/evolution.xml: Document addition of
4816 libstdc++exp.a.
4817 * doc/html/*: Regenerate.
4818
4819 2024-01-11 Marcus Haehnel <marcus.haehnel (a] kernkonzept.com>
4820
4821 * libsupc++/eh_unex_handler.cc: Adjust definition type to
4822 declaration.
4823
4824 2024-01-11 Michael Levine <mlevine55 (a] bloomberg.net>
4825
4826 * include/std/ranges (__glibcxx_want_ranges_iota): Remove
4827 duplicate definition.
4828
4829 2024-01-11 Franois Dumont <fdumont (a] gcc.gnu.org>
4830
4831 PR libstdc++/112477
4832 * src/c++11/debug.cc
4833 (_Safe_iterator_base::_M_attach): Reset _M_version to 0 if attaching to null
4834 sequence.
4835 (_Safe_iterator_base::_M_attach_single): Likewise.
4836 (_Safe_local_iterator_base::_M_attach): Likewise.
4837 (_Safe_local_iterator_base::_M_attach_single): Likewise.
4838 * testsuite/23_containers/map/debug/112477.cc: New test case.
4839
4840 2024-01-11 Patrick Palka <ppalka (a] redhat.com>
4841
4842 * include/bits/move.h (__like_t): Define in C++23 mode.
4843 * include/std/ranges (views::__adaptor::Partial::operator()):
4844 Implement using C++23 deducing this when available.
4845 (views::__adaptor::_Pipe::operator()): Likewise.
4846 * testsuite/std/ranges/adaptors/100577.cc: Adjust testcase to
4847 accept new "no match for call" errors issued in C++23 mode.
4848 * testsuite/std/ranges/adaptors/lazy_split_neg.cc: Likewise.
4849
4850 2024-01-11 Jonathan Wakely <jwakely (a] redhat.com>
4851
4852 * python/libstdcxx/v6/printers.py (StdIntegralConstantPrinter):
4853 Add printer for std::integral_constant.
4854 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test it.
4855
4856 2024-01-11 Jonathan Wakely <jwakely (a] redhat.com>
4857
4858 PR libstdc++/113258
4859 * libsupc++/new_opa.cc: Prefer to use posix_memalign if
4860 available.
4861
4862 2024-01-11 Ken Matsui <kmatsui (a] gcc.gnu.org>
4863
4864 * src/filesystem/ops-common.h (stat_type): Use using.
4865
4866 2024-01-11 Ken Matsui <kmatsui (a] gcc.gnu.org>
4867
4868 PR libstdc++/113250
4869 * src/c++17/fs_ops.cc (fs::equivalent): Use || instead of &&.
4870 * src/filesystem/ops.cc (fs::equivalent): Likewise.
4871 * testsuite/27_io/filesystem/operations/equivalent.cc: Handle
4872 error codes.
4873 * testsuite/experimental/filesystem/operations/equivalent.cc:
4874 Likewise.
4875
4876 2024-01-11 Ken Matsui <kmatsui (a] gcc.gnu.org>
4877
4878 * include/std/type_traits (is_compound): Do not use __not_.
4879 (is_compound_v): Use is_fundamental_v instead.
4880
4881 2024-01-11 Patrick Palka <ppalka (a] redhat.com>
4882
4883 * include/bits/utility.h (_Nth_type): Use
4884 _GLIBCXX_USE_BUILTIN_TRAIT instead of __has_builtin.
4885
4886 2024-01-09 Jonathan Wakely <jwakely (a] redhat.com>
4887
4888 * include/bits/unicode-data.h: Regenerate.
4889 * include/bits/unicode.h (_Utf_iterator::operator++()): Fix off
4890 by one error.
4891 (__incb_property): Add missing check for values before the
4892 first edge.
4893 (__is_extended_pictographic): Invert return values to fix
4894 copy&pasted logic.
4895 (_Grapheme_cluster_view::_Iterator): Remove second iterator
4896 member and find end of cluster lazily.
4897 * testsuite/ext/unicode/grapheme_view.cc: New test.
4898 * testsuite/ext/unicode/properties.cc: New test.
4899 * testsuite/ext/unicode/view.cc: New test.
4900
4901 2024-01-09 Andreas Schwab <schwab (a] linux-m68k.org>
4902
4903 * scripts/extract_symvers.in: Require final colon to only match
4904 .dsynsym in the header of the dynamic symtab.
4905
4906 2024-01-09 Jonathan Wakely <jwakely (a] redhat.com>
4907
4908 * include/bits/chrono_io.h (__formatter_chrono::_M_F): Simplify
4909 handling of string returned from std::format.
4910 (__formatter_chrono::_M_R_T): Likewise.
4911
4912 2024-01-08 Jonathan Wakely <jwakely (a] redhat.com>
4913
4914 * include/bits/unicode.h (__null_sentinel): Remove.
4915 * testsuite/17_intro/names.cc: Add __null_sentinel.
4916
4917 2024-01-08 Jonathan Wakely <jwakely (a] redhat.com>
4918
4919 * include/std/format (__format::_Runtime_format_string): Define
4920 new class template.
4921 (basic_format_string): Add non-consteval constructor for runtime
4922 format strings.
4923 (runtime_format): Define new function for C++26.
4924 * testsuite/std/format/runtime_format.cc: New test.
4925
4926 2024-01-08 Jonathan Wakely <jwakely (a] redhat.com>
4927
4928 * include/bits/chrono_io.h (__formatter_chrono): Always use
4929 lvalue arguments to make_format_args.
4930 * include/std/format (make_format_args): Change parameter pack
4931 from forwarding references to lvalue references. Remove use of
4932 remove_reference_t which is now unnecessary.
4933 (format_to, formatted_size): Remove incorrect forwarding of
4934 arguments.
4935 * include/std/ostream (print): Remove forwarding of arguments.
4936 * include/std/print (print): Likewise.
4937 * testsuite/20_util/duration/io.cc: Use lvalues as arguments to
4938 make_format_args.
4939 * testsuite/std/format/arguments/args.cc: Likewise.
4940 * testsuite/std/format/arguments/lwg3810.cc: Likewise.
4941 * testsuite/std/format/functions/format.cc: Likewise.
4942 * testsuite/std/format/functions/vformat_to.cc: Likewise.
4943 * testsuite/std/format/string.cc: Likewise.
4944 * testsuite/std/time/day/io.cc: Likewise.
4945 * testsuite/std/time/month/io.cc: Likewise.
4946 * testsuite/std/time/weekday/io.cc: Likewise.
4947 * testsuite/std/time/year/io.cc: Likewise.
4948 * testsuite/std/time/year_month_day/io.cc: Likewise.
4949 * testsuite/std/format/arguments/args_neg.cc: New test.
4950
4951 2024-01-08 Jonathan Wakely <jwakely (a] redhat.com>
4952
4953 * include/Makefile.am: Add new headers.
4954 * include/Makefile.in: Regenerate.
4955 * include/bits/unicode.h: New file.
4956 * include/bits/unicode-data.h: New file.
4957 * include/std/format: Include <bits/unicode.h>.
4958 (__literal_encoding_is_utf8): Move to <bits/unicode.h>.
4959 (_Spec::_M_fill): Change type to char32_t.
4960 (_Spec::_M_parse_fill_and_align): Read a Unicode scalar value
4961 instead of a single character.
4962 (__write_padded): Change __fill_char parameter to char32_t and
4963 encode it into the output.
4964 (__formatter_str::format): Use new __unicode::__field_width and
4965 __unicode::__truncate functions.
4966 * include/std/ostream: Adjust namespace qualification for
4967 __literal_encoding_is_utf8.
4968 * include/std/print: Likewise.
4969 * src/c++23/print.cc: Add [[unlikely]] attribute to error path.
4970 * testsuite/ext/unicode/view.cc: New test.
4971 * testsuite/std/format/functions/format.cc: Add missing examples
4972 from the standard demonstrating alignment with non-ASCII
4973 characters. Add examples checking correct handling of extended
4974 grapheme clusters.
4975
4976 2024-01-08 Jonathan Wakely <jwakely (a] redhat.com>
4977
4978 * include/bits/version.def (format_uchar): Define.
4979 * include/bits/version.h: Regenerate.
4980 * include/std/format (formatter<C, C>::format): Check for
4981 _Pres_c and call _M_format_character directly. Cast C to its
4982 unsigned equivalent for formatting as an integer.
4983 (formatter<char, wchar_t>::format): Likewise.
4984 (basic_format_arg(T&)): Store char arguments as unsigned char
4985 for formatting to a wide string.
4986 * testsuite/std/format/functions/format.cc: Adjust test. Check
4987 formatting of
4988
4989 2024-01-07 Jonathan Wakely <jwakely (a] redhat.com>
4990
4991 PR libstdc++/112997
4992 * libsupc++/unwind-cxx.h (__cxa_call_terminate): Change first
4993 parameter to void*.
4994
4995 2024-01-07 Jonathan Wakely <jwakely (a] redhat.com>
4996
4997 * testsuite/20_util/variant/87619.cc: Remove dg-timeout-factor.
4998
4999 2024-01-07 Jonathan Wakely <jwakely (a] redhat.com>
5000
5001 * include/std/type_traits (is_trivially_destructible_v): Use
5002 built-in directly when concepts are supported.
5003 * testsuite/20_util/is_trivially_destructible/value_v.cc: New
5004 test.
5005
5006 2024-01-06 Gwenole Beauchesne <gb.devel (a] gmail.com>
5007
5008 * testsuite/tr1/8_c_compatibility/cinttypes/functions.cc: Use
5009 nonnull arguments to strtoimax() and wcstoimax() functions.
5010
5011 2024-01-05 Jonathan Wakely <jwakely (a] redhat.com>
5012
5013 * src/c++17/fs_path.cc (path::_List::reserve): Limit maximum
5014 size and check for overflows in arithmetic.
5015 (path::operator/=(const path&)): Remove redundant exponential
5016 growth calculation.
5017
5018 2024-01-05 Martin Kttler <martin.kuettler (a] kernkonzept.com>
5019
5020 * src/c++17/fs_path.cc (path::_List::reserve): Avoid
5021 floating-point arithmetic.
5022
5023 2024-01-05 Jonathan Wakely <jwakely (a] redhat.com>
5024
5025 PR libstdc++/113241
5026 * include/std/type_traits (is_convertible_v): Guard use of
5027 built-in with preprocessor check.
5028
5029 2024-01-05 Jonathan Wakely <jwakely (a] redhat.com>
5030
5031 PR libstdc++/113200
5032 * include/bits/char_traits.h (__gnu_cxx::char_traits::move): Use
5033 __builtin_constant_p to check for unrelated pointers that cannot
5034 be compared during constant evaluation.
5035 * testsuite/21_strings/char_traits/requirements/113200.cc: New
5036 test.
5037
5038 2024-01-05 Cassio Neri <cassio.neri (a] gmail.com>
5039
5040 * include/std/chrono: Fix + and - for months and weekdays.
5041 * testsuite/std/time/month/1.cc: Add constexpr tests against overflow.
5042 * testsuite/std/time/month/2.cc: New test for extreme values.
5043 * testsuite/std/time/weekday/1.cc: Add constexpr tests against overflow.
5044 * testsuite/std/time/weekday/2.cc: New test for extreme values.
5045
5046 2024-01-05 Jonathan Wakely <jwakely (a] redhat.com>
5047
5048 PR libstdc++/113099
5049 * include/bits/locale_classes.tcc (__try_use_facet): Use
5050 if-constexpr for C++11 and up.
5051
5052 2024-01-05 Ken Matsui <kmatsui (a] gcc.gnu.org>
5053
5054 * include/std/type_traits: Use _GLIBCXX_USE_BUILTIN_TRAIT.
5055
5056 2024-01-04 Arsen Arsenovi <arsen (a] aarsen.me>
5057
5058 * include/std/generator (_Subyield_state::_M_jump_in): Fix typo
5059 reported by Will Hawkins <hawkinsw (a] obs.cr>.
5060
5061 2024-01-04 Arsen Arsenovi <arsen (a] aarsen.me>
5062
5063 * include/std/generator (_Stateless_alloc): Rename typename _A
5064 to _All.
5065
5066 2024-01-03 Patrick Palka <ppalka (a] redhat.com>
5067
5068 PR testsuite/113175
5069 * testsuite/std/ranges/iota/max_size_type.cc (test02): Reduce
5070 'limit' to 100 from 1000 and adjust 'log2_limit' accordingly.
5071 (test03): Likewise.
5072
5073
5075 Copyright (C) 2024 Free Software Foundation, Inc.
5076
5077 Copying and distribution of this file, with or without modification,
5078 are permitted in any medium without royalty provided the copyright
5079 notice and this notice are preserved.
5080