]> gcc.gnu.org Git - gcc.git/blame - libstdc++-v3/ChangeLog
RISC-V: Move helper functions above expand_const_vector
[gcc.git] / libstdc++-v3 / ChangeLog
CommitLineData
3ff1b91e
GA
12024-08-23 Jonathan Wakely <jwakely@redhat.com>
2
3 * doc/xml/manual/documentation_hacking.xml: Update minimum
4 Doxygen version.
5 * doc/html/*: Regenerate.
6
72024-08-23 Jonathan Wakely <jwakely@redhat.com>
8
9 * include/std/tuple: Do not include implementation details in
10 Doxygen documentation.
11
122024-08-23 Jonathan Wakely <jwakely@redhat.com>
13
14 * include/bits/alloc_traits.h: Improve doxygen docs for
15 allocator_traits specializations.
16 * include/bits/memory_resource.h: Likewise.
17
182024-08-23 Jonathan Wakely <jwakely@redhat.com>
19
20 * include/std/optional (__is_derived_from_optional): New
21 concept.
22 (operator<=>): Use __is_derived_from_optional.
23 * testsuite/20_util/optional/relops/lwg3746.cc: New test.
24
252024-08-23 Jonathan Wakely <jwakely@redhat.com>
26
27 * include/bits/locale_classes.tcc (__try_use_facet): Also avoid
28 dynamic_cast for const-qualified facet types.
29
302024-08-23 Jonathan Wakely <jwakely@redhat.com>
31
32 PR libstdc++/108619
33 * include/bits/alloc_traits.h (__allocator_traits_base): Add
34 variable templates for detecting which allocator operations are
35 supported.
36 (allocator_traits): Use 'if constexpr' instead of dispatching to
37 overloads constrained with enable_if.
38 (allocator_traits<allocator<T>>::construct): Use Construct if
39 construct_at is not supported. Use
40 __is_nothrow_new_constructible for noexcept-specifier.
41 (allocator_traits<allocator<void>>::construct): Use
42 __is_nothrow_new_constructible for noexcept-specifier.
43 * include/bits/new_allocator.h (construct): Likewise.
44 * include/ext/malloc_allocator.h (construct): Likewise.
45 * include/std/type_traits (__is_nothrow_new_constructible): New
46 variable template.
47 * testsuite/20_util/allocator/89510.cc: Adjust expected results.
48 * testsuite/ext/malloc_allocator/89510.cc: Likewise.
49 * testsuite/ext/new_allocator/89510.cc: Likewise.
50 * testsuite/20_util/allocator_traits/members/108619.cc: New test.
51
522024-08-23 Jonathan Wakely <jwakely@redhat.com>
53
54 * include/bits/chrono_io.h (__formatter_chrono::_M_C_y_Y):
55 Ignore modifiers unless the formatting locale is not the C
56 locale.
57 (__formatter_chrono::_M_d_e): Likewise.
58 (__formatter_chrono::_M_H_I): Likewise.
59 (__formatter_chrono::_M_m): Likewise.
60 (__formatter_chrono::_M_M): Likewise.
61 (__formatter_chrono::_M_S): Likewise.
62 (__formatter_chrono::_M_u_w): Likewise.
63 (__formatter_chrono::_M_U_V_W): Likewise.
64
652024-08-23 Jonathan Wakely <jwakely@redhat.com>
66
67 PR libstdc++/115939
68 * include/bits/hashtable_policy.h (_Node_iterator): Add
69 operator== and operator!=.
70 (_Node_const_iterator): Likewise.
71 * testsuite/23_containers/unordered_map/115939.cc: New test.
72
732024-08-23 Giovanni Bajo <rasky@develer.com>
74 Jonathan Wakely <jwakely@redhat.com>
75
76 PR libstdc++/88935
77 * include/bits/stl_algo.h (random_shuffle) [RAND_MAX < INT_MAX]:
78 Use xorshift instead of rand().
79 * testsuite/25_algorithms/random_shuffle/88935.cc: New test.
80
812024-08-23 Jonathan Wakely <jwakely@redhat.com>
82
83 PR c++/116369
84 * include/debug/safe_base.h (_Safe_sequence_base::_M_iterators):
85 Add mutable specifier.
86 (_Safe_sequence_base::_M_const_iterators): Likewise.
87
882024-08-23 Jonathan Wakely <jwakely@redhat.com>
89
90 * src/c++11/debug.cc: Replace throw() with noexcept.
91
922024-08-23 Jonathan Wakely <jwakely@redhat.com>
93
94 * include/std/variant [C++20] (_Uninitialized): Always use the
95 primary template.
96 [C++20] (__get_n): Access the _M_storage member directly.
97
982024-08-23 Jonathan Wakely <jwakely@redhat.com>
99
100 PR libstdc++/115098
101 * include/bits/stl_bvector.h (_Bit_reference): Make default
102 constructor private. Declare vector and bit iterators as
103 friends.
104 * include/std/bitset (bitset::reference): Make constructor and
105 data members private.
106 * testsuite/20_util/bitset/115098.cc: New test.
107 * testsuite/23_containers/vector/bool/115098.cc: New test.
108
2cd783be
GA
1092024-08-22 Patrick Palka <ppalka@redhat.com>
110
111 * testsuite/25_algorithms/contains/1.cc: Verify value of
112 __cpp_lib_ranges_contains.
113 * testsuite/25_algorithms/find_last/1.cc: Verify value of
114 __cpp_lib_ranges_find_last.
115 * testsuite/26_numerics/iota/2.cc: Verify value of
116 __cpp_lib_ranges_iota.
117
1182024-08-22 Patrick Palka <ppalka@redhat.com>
119
120 * include/bits/iterator_concepts.h (__detail::__projected): Define
121 an optimized partial specialization for when the projection is
122 std::identity.
123 * testsuite/24_iterators/indirect_callable/projected.cc: Verify the
124 optimization.
125
1262024-08-22 Patrick Palka <ppalka@redhat.com>
127
128 * include/bits/iterator_concepts.h (indirectly_unary_invocable):
129 Relax as per P2997R1.
130 (indirectly_regular_unary_invocable): Likewise.
131 (indirect_unary_predicate): Likewise.
132 (indirect_binary_predicate): Likewise.
133 (indirect_equivalence_relation): Likewise.
134 (indirect_strict_weak_order): Likewise.
135 * include/bits/version.def (ranges): Update value for C++26.
136 * include/bits/version.h: Regenerate.
137 * testsuite/24_iterators/indirect_callable/p2997r1.cc: New test.
138 * testsuite/std/ranges/version_c++23.cc: Remove.
139 * testsuite/std/ranges/headers/ranges/synopsis.cc: Refine the
140 __cpp_lib_ranges checks.
141
1422024-08-22 Patrick Palka <ppalka@redhat.com>
143
144 * include/bits/iterator_concepts.h (__detail::__indirect_value):
145 Define.
146 (__indirect_value_t): Define as per P2609R3.
147 (iter_common_reference_t): Adjust as per P2609R3.
148 (indirectly_unary_invocable): Likewise.
149 (indirectly_regular_unary_invocable): Likewise.
150 (indirect_unary_predicate): Likewise.
151 (indirect_binary_predicate): Likewise.
152 (indirect_equivalence_relation): Likewise.
153 (indirect_strict_weak_order): Likewise.
154 (__detail::__projected::__type): Define member aliases
155 __projected_Iter and __projected_Proj providing the
156 template arguments of the current specialization.
157 * include/bits/version.def (ranges): Update value.
158 * include/bits/version.h: Regenerate.
159 * testsuite/24_iterators/indirect_callable/p2609r3.cc: New test.
160 * testsuite/std/ranges/version_c++23.cc: Update expected value
161 of __cpp_lib_ranges macro.
162
f1555349
GA
1632024-08-21 Jonathan Wakely <jwakely@redhat.com>
164
165 PR tree-optimization/102958
166 * include/bits/char_traits.h (char_traits<char8_t>::length): Use
167 strlen.
168
1692024-08-21 Jonathan Wakely <jwakely@redhat.com>
170
171 PR libstdc++/114862
172 * src/c++98/locale_facets.cc (__num_base::_S_format_float):
173 Check uppercase flag for fixed format.
174 * testsuite/22_locale/num_put/put/char/lwg4084.cc: New test.
175
1762024-08-21 Jonathan Wakely <jwakely@redhat.com>
177
178 PR libstdc++/116381
179 * include/std/variant (variant): Fix conditions for
180 static_assert to match the spec.
181 * testsuite/20_util/variant/types_neg.cc: New test.
182
964c9c24
GA
1832024-08-20 Jonathan Wakely <jwakely@redhat.com>
184
185 * include/std/optional: Remove redundant redeclaration.
186
1872024-08-20 Jonathan Wakely <jwakely@redhat.com>
188
189 * include/std/text_encoding: Fix indentation.
190
1912024-08-20 Jonathan Wakely <jwakely@redhat.com>
192
193 PR libstdc++/115744
194 * testsuite/18_support/headers/new/synopsis.cc [C++26]: Add
195 constexpr to placement operator new and operator new[].
196
f11bc088
GA
1972024-08-18 Gerald Pfeifer <gerald@pfeifer.com>
198
199 * doc/xml/manual/prerequisites.xml: Remove note from the
200 GCC 4.0.1 days.
201 * doc/html/manual/setup.html: Regenerate.
202
0555f651
GA
2032024-08-17 Gerald Pfeifer <gerald@pfeifer.com>
204
205 * doc/xml/manual/abi.xml: Update reference to
206 gcc.gnu.org/onlinedocs.
207 * doc/xml/manual/concurrency_extensions.xml (interface): Ditto.
208 * doc/xml/manual/extensions.xml: Ditto.
209 * doc/xml/manual/parallel_mode.xml: Ditto.
210 * doc/xml/manual/shared_ptr.xml: Ditto.
211 * doc/xml/manual/using_exceptions.xml: Ditto. And change GNU GCC
212 to GCC.
213 * doc/html/manual/abi.html: Regenerate.
214 * doc/html/manual/ext_concurrency_impl.html: Ditto.
215 * doc/html/manual/ext_demangling.html: Ditto.
216 * doc/html/manual/memory.html: Ditto.
217 * doc/html/manual/parallel_mode_design.html: Ditto.
218 * doc/html/manual/parallel_mode_using.html: Ditto.
219 * doc/html/manual/using_exceptions.html: Ditto.
220
2212024-08-17 Gerald Pfeifer <gerald@pfeifer.com>
222
223 * doc/xml/manual/prerequisites.xml: Tweak two links to
224 installation docs. Fix grammar.
225 * doc/html/manual/setup.html: Regenerate.
226
3c9c93f3
GA
2272024-08-16 Hans-Peter Nilsson <hp@axis.com>
228
229 PR libstdc++/116362
230 * configure.ac: Check newlib configuration whether iconv is enabled.
231 * configure: Regenerate.
232
2332024-08-16 Hans-Peter Nilsson <hp@axis.com>
234
235 * testsuite/lib/prune.exp (libstdc++-dg-prune): Prune
236 uncapitalized "in function" warning from linker.
237
77ccfa6a
GA
2382024-08-08 Jakub Jelinek <jakub@redhat.com>
239
240 PR c++/115744
241 * libsupc++/new (__glibcxx_want_constexpr_new): Define before
242 including bits/version.h.
243 (_GLIBCXX_PLACEMENT_CONSTEXPR): Define.
244 (operator new, operator new[]): Use it for placement new instead
245 of inline.
246 * include/bits/version.def (constexpr_new): New FTM.
247 * include/bits/version.h: Regenerate.
248
b120ca0c
GA
2492024-08-06 Jonathan Wakely <jwakely@redhat.com>
250
251 PR libstdc++/116247
252 * include/bits/fs_path.h: Use __UINTPTR_TYPE__ instead of
253 uintptr_t.
254 * include/bits/shared_ptr_atomic.h: Likewise.
255 * include/ext/pointer.h: Include <stdint.h>.
256
7cd71c88
GA
2572024-08-03 Patrick Palka <ppalka@redhat.com>
258
259 * include/bits/move.h (__like_impl): New metafunction.
260 (__like_t): Redefine in terms of __like_impl.
261 (forward_like): Redefine in terms of __like_t.
262 * testsuite/20_util/forward_like/2_neg.cc: Don't expect
263 error outside the immediate context anymore.
264
db9834ae
GA
2652024-08-02 Jonathan Wakely <jwakely@redhat.com>
266
267 * testsuite/libstdc++-prettyprinters/shared_ptr.cc: Include
268 <cstdint>.
269
02e83ff3
GA
2702024-08-01 Jonathan Wakely <jwakely@redhat.com>
271
272 * include/bits/utility.h (__is_in_place_type): Remove.
273 * include/std/variant (__is_in_place_tag): Remove.
274
2752024-08-01 Jonathan Wakely <jwakely@redhat.com>
276
277 * include/bits/align.h (align, assume_aligned): Use
278 __UINTPTR_TYPE__ instead of uintptr_t. Do not include
279 <stdint.h>.
280 * include/bits/atomic_base.h (__atomic_ref): Likewise.
281 * include/bits/atomic_wait.h (__waiter_pool_base::_S_for):
282 Likewise.
283 * include/std/atomic: Include <cstdint>.
284
2852024-08-01 Jonathan Wakely <jwakely@redhat.com>
286
287 * include/bits/atomic_base.h (__atomic_impl::compare_exchange_weak):
288 Remove unused parameter.
289 (__atomic_impl::compare_exchange_strong): Likewise.
290
2912024-08-01 Jonathan Wakely <jwakely@redhat.com>
292
293 PR libstdc++/113807
294 * include/std/bitset (bitset::_M_is_equal()): Use memcmp to
295 optimize operator==.
296
2972024-08-01 Jonathan Wakely <jwakely@redhat.com>
298
299 * testsuite/26_numerics/random/discrete_distribution/operators/values.cc:
300 Use ARGS to limit number of iterations for simulators.
301
3022024-08-01 Jonathan Wakely <jwakely@redhat.com>
303
304 PR libstdc++/113841
305 * include/bits/basic_string.h (basic_string::basic_string()):
306 Constrain so that it's only present if the allocator is default
307 constructible.
308 * include/bits/cow_string.h (basic_string::basic_string()):
309 Likewise.
310 * testsuite/21_strings/basic_string/cons/113841.cc: New test.
311
3122024-08-01 Jonathan Wakely <jwakely@redhat.com>
313
314 PR libstdc++/99942
315 * include/bits/cow_string.h (data()): Change to noexcept(false).
316
3172024-08-01 Jonathan Wakely <jwakely@redhat.com>
318
319 * testsuite/23_containers/map/operators/1_neg.cc (test01): Remove test variable
320 and use 'no match' dg-error patter.
321 * testsuite/23_containers/set/operators/1_neg.cc (test01): Likewise.
322
22c62d33
GA
3232024-07-31 François Dumont <frs.dumont@gmail.com>
324
325 * testsuite/23_containers/map/operators/1_neg.cc (test01): Add test variable
326 declaration.
327 * testsuite/23_containers/set/operators/1_neg.cc (test01): Likewise.
328
3292024-07-31 Jonathan Wakely <jwakely@redhat.com>
330
331 * src/c++20/format.cc [!_GLIBCXX_HAS_GTHREADS] (mutex): Define
332 dummy mutex type.
333 * testsuite/std/time/format_localized.cc: Use loop variable
334 instead of creating the same locale on every iteration.
335
3362024-07-31 Sam James <sam@gentoo.org>
337
338 * testsuite/28_regex/traits/char/translate.cc: Drop bogus 'dg_do run'.
339
3402024-07-31 Jonathan Wakely <jwakely@redhat.com>
341
342 * src/c++11/system_error.cc (strerror_string): Handle
343 non-conforming NULL return from strerror.
344
3452024-07-31 Jonathan Wakely <jwakely@redhat.com>
346
347 * testsuite/lib/libstdc++.exp (check_v3_target_namedlocale):
348 Only append "@euro" to ".ISO8859-15" locales for Glibc.
349
3502024-07-31 Jonathan Wakely <jwakely@redhat.com>
351
352 * include/bits/version.def (format): Update value for C++26.
353 * include/bits/version.h: Regenerate.
354 * include/std/format (runtime_format, wruntime_format): Check
355 __cpp_lib_format instead of __cplusplus.
356 * testsuite/std/format/functions/format.cc: Update expected
357 value of macro for C++26 mode.
358
3592024-07-31 Jonathan Wakely <jwakely@redhat.com>
360
361 PR libstdc++/110356
362 * include/bits/c++config (_GLIBCXX26_DEPRECATED): Define.
363 (_GLIBCXX26_DEPRECATED_SUGGEST): Define.
364 * include/bits/version.def (format): Update for C++26.
365 * include/bits/version.h: Regenerate.
366 * include/std/format (basic_format_arg::visit): New member
367 functions.
368 (visit_format_arg): Add deprecated attribute.
369 * testsuite/std/format/arguments/args.cc: Expect deprecated
370 warnings. Check member visit.
371 * testsuite/std/format/functions/format.cc: Update expected
372 value for __cpp_lib_format macro.
373 * testsuite/std/format/parse_ctx.cc: Add dg-warning for
374 deprecation.
375
3762024-07-31 Jonathan Wakely <jwakely@redhat.com>
377
378 PR libstdc++/110356
379 * include/bits/version.def (variant): Update for C++26.
380 * include/bits/version.h: Regenerate.
381 * include/std/variant (variant::visit): New member functions.
382 * testsuite/20_util/variant/visit.cc: Check second alternative.
383 * testsuite/20_util/variant/visit_member.cc: New test.
384
3852024-07-31 Jonathan Wakely <jwakely@redhat.com>
386
387 PR libstdc++/115776
388 * include/bits/version.def (format): Update for C++26.
389 * include/bits/version.h: Regenerate.
390 * include/std/format (basic_format_parse_context): Remove
391 default argument from constructor and split into two
392 constructors. Make the constructor taking size_t private for
393 C++26 and later.
394 (basic_format_parse_context::check_dynamic_spec): New member
395 function template.
396 (basic_format_parse_context::check_dynamic_spec_integral): New
397 member function.
398 (basic_format_parse_context::check_dynamic_spec_string):
399 Likewise.
400 (__format::_Spec::_S_parse_width_or_precision): Use
401 check_dynamic_spec_integral.
402 (__format::__to_arg_t_enum): New helper function.
403 (basic_format_arg): Declare __to_arg_t_enum as friend.
404 (__format::_Scanner): Define and use a derived parse context
405 type.
406 (__format::_Checking_scanner): Make arg types available to parse
407 context.
408 * testsuite/std/format/functions/format.cc: Check for new values
409 of __cpp_lib_format macro.
410 * testsuite/std/format/parse_ctx.cc: Check all members of
411 basic_format_parse_context.
412 * testsuite/std/format/parse_ctx_neg.cc: New test.
413 * testsuite/std/format/string.cc: Add more checks for dynamic
414 width and precision args.
415
4162024-07-31 Jonathan Wakely <jwakely@redhat.com>
417
418 * include/bits/version.def (format): Update value for P2510R3.
419 * include/bits/version.h: Regenerate.
420 * include/std/format (_GLIBCXX_P2518R3): Remove misspelled macro
421 and check __glibcxx_format instead.
422 * testsuite/std/format/functions/format.cc: Check value of the
423 __cpp_lib_format macro for formatting pointers support.
424 * testsuite/std/format/parse_ctx.cc: Likewise.
425
4262024-07-31 Jonathan Wakely <jwakely@redhat.com>
427
428 PR libstdc++/109162
429 * acinclude.m4 (libtool_VERSION): Update to 6:34:0.
430 * config/abi/pre/gnu.ver: Disambiguate old patters. Add new
431 GLIBCXX_3.4.34 symbol version and new exports.
432 * configure: Regenerate.
433 * include/bits/chrono_io.h (_ChronoSpec::_M_locale_specific):
434 Add new accessor functions to use a reserved bit in _Spec.
435 (__formatter_chrono::_M_parse): Use _M_locale_specific(true)
436 when chrono-specs contains locale-dependent conversion
437 specifiers.
438 (__formatter_chrono::_M_format): Open iconv descriptor if
439 conversion to UTF-8 will be needed.
440 (__formatter_chrono::_M_write): New function to write a
441 localized string with possible character conversion.
442 (__formatter_chrono::_M_a_A, __formatter_chrono::_M_b_B)
443 (__formatter_chrono::_M_p, __formatter_chrono::_M_r)
444 (__formatter_chrono::_M_x, __formatter_chrono::_M_X)
445 (__formatter_chrono::_M_locale_fmt): Use _M_write.
446 * include/bits/version.def (format): Update value.
447 * include/bits/version.h: Regenerate.
448 * include/std/format (_GLIBCXX_P2518R3): Check feature test
449 macro instead of __cplusplus.
450 (basic_format_context): Declare __formatter_chrono as friend.
451 * src/c++20/Makefile.am: Add new file.
452 * src/c++20/Makefile.in: Regenerate.
453 * src/c++20/format.cc: New file.
454 * testsuite/std/time/format_localized.cc: New test.
455 * testsuite/util/testsuite_abi.cc: Add new symbol version.
456
e7f6a5dc
GA
4572024-07-30 Jonathan Wakely <jwakely@redhat.com>
458
459 * include/bits/chrono_io.h (__local_time_fmt_for): New alias
460 template.
461 (formatter<zoned_time<D, P>>): Use __local_time_fmt_for.
462 * testsuite/std/time/zoned_time/io.cc: Check zoned_time<minutes>
463 can be formatted.
464
4652024-07-30 Jonathan Wakely <jwakely@redhat.com>
466
467 * include/bits/chrono_io.h (__local_fmt_t): Remove unused
468 declaration.
469 (__formatter_chrono::_M_format_to_ostream): Add explicit
470 handling for specializations of __local_time_fmt, including the
471 time zone abbreviation in the output if __is_neg is true.
472 (formatter<chrono::tai_time<D>>::format): Add comment.
473 (formatter<chrono::gps_time<D>>::format): Likewise.
474 (formatter<chrono::__detail::__local_time_fmt::format): Call
475 _M_format with true for the __is_neg flag.
476 * testsuite/std/time/clock/gps/io.cc: Remove unused variable.
477 * testsuite/std/time/clock/local/io.cc: Fix test error that
478 checked tai_time instead of local_time. Add tests for
479 local-time-format-t formatting.
480 * testsuite/std/time/clock/system/io.cc: Check empty
481 chrono-specs.
482 * testsuite/std/time/clock/tai/io.cc: Likewise.
483 * testsuite/std/time/zoned_time/io.cc: Likewise.
484
4852024-07-30 Jonathan Wakely <jwakely@redhat.com>
486
487 * include/std/expected (expected(U&&), operator=(U&&))
488 (value_or): Use remove_cv_t on default template argument, as per
489 LWG 3886.
490 * include/std/optional (optional(U&&), operator=(U&&))
491 (value_or): Likewise.
492 * testsuite/20_util/expected/lwg3886.cc: New test.
493 * testsuite/20_util/optional/cons/lwg3886.cc: New test.
494
4952024-07-30 Jonathan Wakely <jwakely@redhat.com>
496
497 * src/c++17/fs_ops.cc: Fix file name in comment.
498
4992024-07-30 Jonathan Wakely <jwakely@redhat.com>
500
501 * src/c++17/fs_ops.cc (auto_win_file_handle): Change constructor
502 parameter from const path& to const wchar_t*.
503 (fs::equiv_files): New function.
504 (fs::equivalent): Use equiv_files.
505 * src/filesystem/ops-common.h (fs::equiv_files): Declare.
506 (do_copy_file): Use equiv_files.
507 * src/filesystem/ops.cc (fs::equiv_files): Define.
508 (fs::copy, fs::equivalent): Use equiv_files.
509 * testsuite/27_io/filesystem/operations/copy.cc: Test
510 overwriting directory contents recursively.
511 * testsuite/27_io/filesystem/operations/copy_file.cc: Test
512 overwriting existing files.
513
5142024-07-30 Lennox Shou Hao Ho <lennoxhoe@gmail.com>
515
516 PR libstdc++/113663
517 * src/c++17/fs_ops.cc (fs::equivalent): Moved helper class
518 auto_handle to anonymous namespace as auto_win_file_handle.
519 (fs::hard_link_count): Changed Windows implementation to use
520 information provided by GetFileInformationByHandle which is more
521 reliable.
522 * testsuite/27_io/filesystem/operations/hard_link_count.cc: New
523 test.
524
1caeabdb
GA
5252024-07-29 Thomas Schwinge <tschwinge@baylibre.com>
526
527 * testsuite/lib/libstdc++.exp (file-io-diff): Polish.
528
b6bf054d
GA
5292024-07-28 Sam James <sam@gentoo.org>
530
531 PR libstdc++/110572
532 * testsuite/18_support/type_info/110572.cc: Fix dg-do directive order.
533
027bde11
GA
5342024-07-27 Jonathan Wakely <jwakely@redhat.com>
535
536 * include/std/charconv (__to_chars_16, __to_chars_10)
537 (__to_chars_8, __to_chars_2, __to_chars): Cast ptrdiff_t to
538 size_t for comparison.
539 (__to_chars_i): Check for first >= last instead of first == last
540 for initial sanity check.
541
5422024-07-27 Jonathan Wakely <jwakely@redhat.com>
543
544 * include/bits/std_function.h: Add comment about LWG 3617 being
545 supported.
546
5472024-07-27 Jonathan Wakely <jwakely@redhat.com>
548
549 * include/bits/stl_algobase.h (__find_if): Remove overloads for
550 dispatching on iterator_category. Do not unroll loop manually.
551 * include/bits/stl_algo.h (__find_if_not): Remove
552 iterator_category argument from __find_if call.
553
18eb6ca1
GA
5542024-07-25 Jonathan Wakely <jwakely@redhat.com>
555
556 * include/std/expected (expected::value): Add assertions for LWG
557 3843 requirements.
558 (expected<cv void, E>::value): Add assertions for LWG 3940
559 requirements.
560
5612024-07-25 Jonathan Wakely <jwakely@redhat.com>
562
563 * include/std/format (basic_format_args): Remove default
564 constructor, as per LWG 4106.
565 * testsuite/std/format/arguments/args.cc: Check it isn't default
566 constructible.
567
5682024-07-25 Jonathan Wakely <jwakely@redhat.com>
569
570 * include/bits/utility.h (_Swallow_assign): Make assignment
571 constexpr for C++11 as well, and add noexcept.
572 * include/std/tuple (_Swallow_assign, ignore): Move to
573 bits/utility.h.
574 * testsuite/20_util/headers/utility/ignore.cc: New test.
575
5762024-07-25 Jonathan Wakely <jwakely@redhat.com>
577
578 * include/std/optional: Reorder parameters in comparison
579 operators as per LWG 2945.
580
5812024-07-25 Patrick Palka <ppalka@redhat.com>
582
583 PR libstdc++/116038
584 * include/std/functional (_Bind_front::operator()): Use __like_t
585 instead of std::forward when forwarding __self.
586 (_Bind_back::operator()): Likewise.
587 * include/std/ranges (_Partial::operator()): Likewise.
588 (_Pipe::operator()): Likewise.
589 * testsuite/20_util/function_objects/bind_back/116038.cc: New test.
590 * testsuite/20_util/function_objects/bind_front/116038.cc: New test.
591 * testsuite/std/ranges/adaptors/116038.cc: New test.
592
5932024-07-25 Jonathan Wakely <jwakely@redhat.com>
594
595 * include/std/expected (bad_expected_access<void>): Add noexcept
596 to special member functions, as per LWG 4031.
597 * testsuite/20_util/expected/bad.cc: Check for nothrow copy and
598 move members.
599
6002024-07-25 Jonathan Wakely <jwakely@redhat.com>
601
602 * include/std/optional (optional): Use C++20 features to
603 simplify overload sets for constructors and assignment
604 operators.
605
6062024-07-25 Jonathan Wakely <jwakely@redhat.com>
607
608 * include/std/optional (optional): Constrain constructors to
609 prevent problematic bool conversions, as per LWG 3836.
610 * testsuite/20_util/optional/cons/lwg3836.cc: New test.
611
6122024-07-25 Jonathan Wakely <jwakely@redhat.com>
613
614 * include/std/expected (expected): Constrain constructors to
615 prevent problematic bool conversions, as per LWG 3836.
616 * testsuite/20_util/expected/lwg3836.cc: New test.
617
6182024-07-25 Jonathan Wakely <jwakely@redhat.com>
619
620 * include/std/optional (_Optional_payload_base::_Storage)
621 [C++20]: Define constrained non-trivial destructor.
622 (_Optional_payload_base::_Storage<U, false>) [C++20]: Do not
623 define partial specialization when primary template has
624 constrained destructor.
625 (_Optional_base) [C++20]: Define constrained trivial copy and
626 move cons and move constructors. Define payload accessors here
627 instead of inheriting them from _Optional_base_impl.
628 (_Optional_base_impl, _Optional_base<T, false, true>)
629 (_Optional_base<T, true, false>, _Optional_base<T, true, true>)
630 [C++20]: Do not define.
631
6322024-07-25 Jonathan Wakely <jwakely@redhat.com>
633
634 * include/std/optional (optional): Add using-declaraction for
635 _Base::_M_get and declare optional<U> as friend.
636 (optional(const optional<U>&)): Use
637 _M_get instead of operator*.
638 (optional(optional<U>&&)): Likewise.
639 (operator=(const optional<U>&)): Likewise.
640 (operator=(optional<U>&&)): Likewise.
641 (and_then, tansform): Likewise.
642
6432024-07-25 Jonathan Wakely <jwakely@redhat.com>
644
645 * include/std/optional (_Optional_base_impl::_M_get()): Move
646 assertions to ...
647 (optional::operator->, optional::operator*): ... here.
648
6492024-07-25 Andrew Pinski <quic_apinski@quicinc.com>
650
651 * testsuite/lib/libstdc++.exp (v3_target_compile): Call
652 string trim on v3_target_compile before calling split.
653
25256af1
GA
6542024-07-24 Jonathan Wakely <jwakely@redhat.com>
655
656 PR libstdc++/116070
657 * include/std/istream: Check feature test macro before using
658 is_class_v and is_same_v.
659 * include/std/ostream: Likewise.
660
6612024-07-24 Jonathan Wakely <jwakely@redhat.com>
662
663 PR libstdc++/116070
664 * include/bits/stl_bvector.h: Check feature test macro before
665 using is_default_constructible_v.
666
6672024-07-24 Michael Levine <mlevine55@bloomberg.net>
668
669 * include/bits/ranges_algobase.h: Remove duplicate include of
670 <bits/stl_algobase.h>.
671
6722024-07-24 Jonathan Wakely <jwakely@redhat.com>
673
674 PR libstdc++/12048
675 * testsuite/ext/stdio_sync_filebuf/wchar_t/12948-1.cc: Move to...
676 * testsuite/ext/stdio_sync_filebuf/wchar_t/12048-1.cc: ...here.
677 * testsuite/ext/stdio_sync_filebuf/wchar_t/12948-2.cc: Move to...
678 * testsuite/ext/stdio_sync_filebuf/wchar_t/12048-2.cc: ...here.
679 * testsuite/ext/stdio_sync_filebuf/wchar_t/12948-3.cc: Move to...
680 * testsuite/ext/stdio_sync_filebuf/wchar_t/12048-3.cc: ...here.
681 * testsuite/ext/stdio_sync_filebuf/wchar_t/12948-4.cc: Move to...
682 * testsuite/ext/stdio_sync_filebuf/wchar_t/12048-4.cc: ...here.
683
6842024-07-24 Jonathan Wakely <jwakely@redhat.com>
685
686 * testsuite/lib/libstdc++.exp (libstdc++_init): Do not copy all
687 data files into test directory.
688
6892024-07-24 Jonathan Wakely <jwakely@redhat.com>
690
691 * testsuite/20_util/hash/chi2_q_document_words.cc: Use
692 dg-additional-files for input text.
693 * testsuite/performance/ext/pb_ds/all_text_find.cc: Likewise.
694 * testsuite/performance/ext/pb_ds/multimap_text_find.hpp:
695 Likewise.
696 * testsuite/performance/ext/pb_ds/multimap_text_insert.hpp:
697 Likewise.
698 * testsuite/performance/ext/pb_ds/multimap_text_insert_mem.hpp:
699 Likewise.
700 * testsuite/performance/ext/pb_ds/priority_queue_text_join.cc:
701 Likewise.
702 * testsuite/performance/ext/pb_ds/priority_queue_text_modify.hpp: Likewise.
703 * testsuite/performance/ext/pb_ds/priority_queue_text_pop_mem.cc: Likewise.
704 * testsuite/performance/ext/pb_ds/priority_queue_text_push.cc:
705 Likewise.
706 * testsuite/performance/ext/pb_ds/priority_queue_text_push_pop.cc: Likewise.
707 * testsuite/performance/ext/pb_ds/tree_text_insert.cc: Likewise.
708 * testsuite/performance/ext/pb_ds/tree_text_lor_find.cc:
709 Likewise.
710
7112024-07-24 Jonathan Wakely <jwakely@redhat.com>
712
713 * testsuite/25_algorithms/advance/istreambuf_iterators/char/2.cc:
714 Use dg-additional-files.
715 * testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/2.cc:
716 Likewise.
717 * testsuite/25_algorithms/copy/streambuf_iterators/char/4.cc:
718 Likewise.
719 * testsuite/25_algorithms/copy/streambuf_iterators/wchar_t/4.cc:
720 Likewise.
721 * testsuite/25_algorithms/copy_n/istreambuf_iterator/2.cc:
722 Likewise.
723 * testsuite/25_algorithms/copy_n/istreambuf_iterator/deque.cc:
724 Likewise.
725 * testsuite/25_algorithms/find/istreambuf_iterators/char/2.cc:
726 Likewise.
727 * testsuite/25_algorithms/find/istreambuf_iterators/wchar_t/2.cc:
728 Likewise.
729
7302024-07-24 Jonathan Wakely <jwakely@redhat.com>
731
732 * testsuite/27_io/basic_filebuf/close/char/1.cc: Remove
733 @require@ and @diff@. Use dg-final file-io-diff action.
734 * testsuite/27_io/basic_istream/extractors_other/char/2.cc:
735 Likewise.
736 * testsuite/27_io/basic_istream/extractors_other/wchar_t/2.cc:
737 Likewise.
738 * testsuite/27_io/basic_istream/get/char/2.cc: Likewise.
739 * testsuite/27_io/basic_istream/get/wchar_t/2.cc: Likewise.
740 * testsuite/27_io/basic_istream/ignore/char/3.cc: Likewise.
741 * testsuite/27_io/basic_istream/ignore/wchar_t/3.cc: Likewise.
742 * testsuite/27_io/basic_istream/peek/char/6414.cc: Likewise.
743 * testsuite/27_io/basic_istream/peek/wchar_t/6414.cc: Likewise.
744 * testsuite/27_io/basic_istream/seekg/char/fstream.cc: Likewise.
745 * testsuite/27_io/basic_istream/seekg/wchar_t/fstream.cc:
746 Likewise.
747 * testsuite/27_io/basic_istream/tellg/char/fstream.cc: Likewise.
748 * testsuite/27_io/basic_istream/tellg/wchar_t/fstream.cc:
749 Likewise.
750 * testsuite/27_io/basic_ofstream/open/char/1.cc: Likewise.
751 * testsuite/27_io/basic_ostream/inserters_other/char/1.cc:
752 Likewise.
753 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/1.cc:
754 Likewise.
755 * testsuite/27_io/ios_base/sync_with_stdio/1.cc: Likewise.
756 * testsuite/27_io/basic_ostream/inserters_other/char/2.cc:
757 Likewise. Check file positions.
758 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/2.cc:
759 Likewise.
760 * testsuite/lib/libstdc++.exp (file-io-diff): New proc.
761
7622024-07-24 Jonathan Wakely <jwakely@redhat.com>
763
764 * testsuite/27_io/basic_filebuf/imbue/char/2.cc: Use
765 dg-additional-files.
766 * testsuite/27_io/basic_filebuf/imbue/wchar_t/2.cc: Likewise.
767 * testsuite/27_io/basic_filebuf/open/char/path.cc: Likewise.
768 * testsuite/27_io/basic_filebuf/pbackfail/char/9761.cc:
769 Likewise.
770 * testsuite/27_io/basic_filebuf/seekoff/char/3-in.cc: Likewise.
771 * testsuite/27_io/basic_filebuf/seekoff/char/3-io.cc: Likewise.
772 * testsuite/27_io/basic_filebuf/seekpos/char/3-in.cc: Likewise.
773 * testsuite/27_io/basic_filebuf/seekpos/char/3-io.cc: Likewise.
774 * testsuite/27_io/basic_filebuf/setbuf/char/1.cc: Likewise.
775 * testsuite/27_io/basic_filebuf/sgetn/char/3.cc: Likewise.
776 * testsuite/27_io/basic_filebuf/underflow/10096.cc: Likewise.
777 * testsuite/27_io/basic_fstream/cons/char/path.cc: Likewise.
778 * testsuite/27_io/basic_fstream/open/char/path.cc: Likewise.
779 * testsuite/27_io/basic_ifstream/assign/1.cc: Likewise.
780 * testsuite/27_io/basic_ifstream/cons/move.cc: Likewise.
781 * testsuite/27_io/basic_ifstream/cons/char/path.cc: Likewise.
782 * testsuite/27_io/basic_ifstream/open/char/path.cc: Likewise.
783 * testsuite/27_io/basic_ifstream/open/wchar_t/1.cc: Likewise.
784 * testsuite/27_io/objects/char/10.cc: Likewise.
785 * testsuite/27_io/objects/char/12048-1.cc: Likewise.
786 * testsuite/27_io/objects/char/12048-2.cc: Likewise.
787 * testsuite/27_io/objects/char/12048-3.cc: Likewise.
788 * testsuite/27_io/objects/char/12048-4.cc: Likewise.
789 * testsuite/27_io/objects/char/12048-5.cc: Likewise.
790 * testsuite/27_io/objects/wchar_t/12048-1.cc: Likewise.
791 * testsuite/27_io/objects/wchar_t/12048-2.cc: Likewise.
792 * testsuite/27_io/objects/wchar_t/12048-3.cc: Likewise.
793 * testsuite/27_io/objects/wchar_t/12048-4.cc: Likewise.
794 * testsuite/27_io/objects/wchar_t/12048-5.cc: Likewise.
795 * testsuite/ext/stdio_sync_filebuf/char/12048-1.cc: Likewise.
796 * testsuite/ext/stdio_sync_filebuf/char/12048-2.cc: Likewise.
797 * testsuite/ext/stdio_sync_filebuf/char/12048-3.cc: Likewise.
798 * testsuite/ext/stdio_sync_filebuf/char/12048-4.cc: Likewise.
799 * testsuite/ext/stdio_sync_filebuf/wchar_t/12948-1.cc: Likewise.
800 * testsuite/ext/stdio_sync_filebuf/wchar_t/12948-2.cc: Likewise.
801 * testsuite/ext/stdio_sync_filebuf/wchar_t/12948-3.cc: Likewise.
802 * testsuite/ext/stdio_sync_filebuf/wchar_t/12948-4.cc: Likewise.
803
8042024-07-24 Jonathan Wakely <jwakely@redhat.com>
805
806 * testsuite/27_io/basic_filebuf/close/char/2.cc: Remove
807 @require@ and @diff@ markup. Use dg-additional-files. Remove
808 unused variable.
809 * testsuite/27_io/basic_filebuf/close/char/3.cc: Remove
810 @require@ and @diff@ markup. Use dg-additional-files.
811 * testsuite/27_io/basic_filebuf/close/char/4.cc: Likewise.
812 * testsuite/27_io/basic_filebuf/close/char/5.cc: Likewise.
813 * testsuite/27_io/basic_filebuf/in_avail/char/1.cc: Likewise.
814 * testsuite/27_io/basic_filebuf/is_open/char/1.cc: Likewise.
815 * testsuite/27_io/basic_filebuf/open/char/1.cc: Likewise.
816 * testsuite/27_io/basic_filebuf/open/char/2.cc: Likewise.
817 * testsuite/27_io/basic_filebuf/sbumpc/char/1-in.cc: Likewise.
818 * testsuite/27_io/basic_filebuf/sbumpc/char/1-io.cc: Likewise.
819 * testsuite/27_io/basic_filebuf/sbumpc/char/2-in.cc: Likewise.
820 * testsuite/27_io/basic_filebuf/sbumpc/char/2-io.cc: Likewise.
821 * testsuite/27_io/basic_filebuf/seekoff/char/1-in.cc: Likewise.
822 * testsuite/27_io/basic_filebuf/seekoff/char/1-out.cc: Likewise.
823 * testsuite/27_io/basic_filebuf/seekoff/char/2-in.cc: Likewise.
824 * testsuite/27_io/basic_filebuf/seekoff/char/2-out.cc: Likewise.
825 * testsuite/27_io/basic_filebuf/seekpos/char/1-in.cc: Likewise.
826 * testsuite/27_io/basic_filebuf/seekpos/char/1-out.cc: Likewise.
827 * testsuite/27_io/basic_filebuf/seekpos/char/2-in.cc: Likewise.
828 * testsuite/27_io/basic_filebuf/seekpos/char/2-out.cc: Likewise.
829 * testsuite/27_io/basic_filebuf/sgetc/char/1-in.cc: Likewise.
830 * testsuite/27_io/basic_filebuf/sgetc/char/1-io.cc: Likewise.
831 * testsuite/27_io/basic_filebuf/sgetc/char/2-in.cc: Likewise.
832 * testsuite/27_io/basic_filebuf/sgetc/char/2-io.cc: Likewise.
833 * testsuite/27_io/basic_filebuf/sgetn/char/1-in.cc: Likewise.
834 * testsuite/27_io/basic_filebuf/sgetn/char/1-io.cc: Likewise.
835 * testsuite/27_io/basic_filebuf/sgetn/char/2-in.cc: Likewise.
836 * testsuite/27_io/basic_filebuf/sgetn/char/2-io.cc: Likewise.
837 * testsuite/27_io/basic_filebuf/snextc/char/1-in.cc: Likewise.
838 * testsuite/27_io/basic_filebuf/snextc/char/1-io.cc: Likewise.
839 * testsuite/27_io/basic_filebuf/snextc/char/1-out.cc: Likewise.
840 * testsuite/27_io/basic_filebuf/snextc/char/2-in.cc: Likewise.
841 * testsuite/27_io/basic_filebuf/snextc/char/2-io.cc: Likewise.
842 * testsuite/27_io/basic_filebuf/sputbackc/char/1-in.cc:
843 Likewise.
844 * testsuite/27_io/basic_filebuf/sputbackc/char/2-in.cc:
845 Likewise.
846 * testsuite/27_io/basic_filebuf/sputc/char/1-in.cc: Likewise.
847 * testsuite/27_io/basic_filebuf/sputc/char/2-in.cc: Likewise.
848 * testsuite/27_io/basic_filebuf/sputc/char/2-io.cc: Likewise.
849 * testsuite/27_io/basic_filebuf/sputn/char/1-in.cc: Likewise.
850 * testsuite/27_io/basic_filebuf/sputn/char/1-io.cc: Likewise.
851 Remove unused variable.
852 * testsuite/27_io/basic_filebuf/sputn/char/2-in.cc: Remove
853 @require@ and @diff@ markup. Use dg-additional-files.
854 * testsuite/27_io/basic_filebuf/sungetc/char/1-in.cc: Likewise.
855 * testsuite/27_io/basic_filebuf/sungetc/char/2-in.cc: Likewise.
856 * testsuite/27_io/basic_ifstream/cons/char/1.cc: Likewise.
857 * testsuite/27_io/basic_ifstream/open/char/1.cc: Likewise.
858 * testsuite/27_io/basic_ifstream/rdbuf/char/2832.cc: Likewise.
859 * testsuite/27_io/basic_istream/readsome/char/6746-2.cc:
860 Likewise.
861 * testsuite/27_io/basic_istream/readsome/wchar_t/6746-2.cc:
862 Likewise.
863 * testsuite/27_io/basic_istream/seekg/char/sstream.cc: Likewise.
864 * testsuite/27_io/basic_istream/seekg/wchar_t/sstream.cc:
865 Likewise.
866 * testsuite/27_io/basic_istream/tellg/char/1.cc: Likewise.
867 * testsuite/27_io/basic_istream/tellg/char/sstream.cc: Likewise.
868 * testsuite/27_io/basic_istream/tellg/wchar_t/1.cc: Likewise.
869 * testsuite/27_io/basic_istream/tellg/wchar_t/sstream.cc:
870 Likewise.
871 * testsuite/27_io/basic_ofstream/open/char/1.cc: Likewise.
872 * testsuite/lib/dg-options.exp (dg-additional-files): Append to
873 v3_additional_files instead of replacing.
874 * testsuite/lib/libstdc++.exp (v3_target_compile): Reset
875 v3_additional_files after copying files.
876
8772024-07-24 Jonathan Wakely <jwakely@redhat.com>
878
879 * testsuite/27_io/basic_filebuf/close/char/4879.cc: Remove
880 @require@ and @diff@ comments.
881 * testsuite/27_io/basic_filebuf/close/char/9964.cc: Likewise.
882 * testsuite/27_io/basic_filebuf/open/char/3.cc: Likewise.
883 * testsuite/27_io/basic_filebuf/open/char/9507.cc: Likewise.
884 * testsuite/27_io/basic_filebuf/sbumpc/char/1-out.cc: Likewise.
885 * testsuite/27_io/basic_filebuf/sbumpc/char/2-out.cc: Likewise.
886 * testsuite/27_io/basic_filebuf/sgetc/char/1-out.cc: Likewise.
887 * testsuite/27_io/basic_filebuf/sgetc/char/2-out.cc: Likewise.
888 * testsuite/27_io/basic_filebuf/sgetn/char/1-out.cc: Likewise.
889 * testsuite/27_io/basic_filebuf/sgetn/char/2-out.cc: Likewise.
890 * testsuite/27_io/basic_filebuf/snextc/char/2-out.cc: Likewise.
891 * testsuite/27_io/basic_filebuf/sputbackc/char/1-io.cc:
892 Likewise.
893 * testsuite/27_io/basic_filebuf/sputbackc/char/1-out.cc:
894 Likewise.
895 * testsuite/27_io/basic_filebuf/sputbackc/char/2-io.cc:
896 Likewise.
897 * testsuite/27_io/basic_filebuf/sputbackc/char/2-out.cc:
898 Likewise.
899 * testsuite/27_io/basic_filebuf/sputc/char/1-out.cc: Likewise.
900 * testsuite/27_io/basic_filebuf/sputc/char/2-out.cc: Likewise.
901 * testsuite/27_io/basic_filebuf/sputn/char/1-out.cc: Likewise.
902 * testsuite/27_io/basic_filebuf/sputn/char/2-out.cc: Likewise.
903 * testsuite/27_io/basic_filebuf/sungetc/char/1-io.cc: Likewise.
904 * testsuite/27_io/basic_filebuf/sungetc/char/1-out.cc: Likewise.
905 * testsuite/27_io/basic_filebuf/sungetc/char/2-io.cc: Likewise.
906 * testsuite/27_io/basic_filebuf/sungetc/char/2-out.cc: Likewise.
907 * testsuite/27_io/basic_filebuf/sputc/char/1-io.cc: Likewise.
908 Remove unused variable.
909 * testsuite/27_io/basic_filebuf/sputn/char/2-io.cc: Likewise.
910 * testsuite/27_io/basic_ofstream/cons/char/1.cc: Remove
911 @require@ and @diff@ comments. Remove unused variables.
912 * testsuite/27_io/basic_ofstream/rdbuf/char/2832.cc: Remove
913 * testsuite/27_io/ios_base/sync_with_stdio/2.cc: Likewise.
914
daedc197
GA
9152024-07-23 Jonathan Wakely <jwakely@redhat.com>
916
917 * src/c++23/print.cc (__open_terminal): Use [[maybe_unused]] on
918 parameter.
919
9202024-07-23 Detlef Vollmann <dv@vollmann.ch>
921
922 PR libstdc++/115482
923 * src/c++23/print.cc (__open_terminal) [__AVR__]: Do not use
924 isatty.
925
e20ea6bc
GA
9262024-07-18 Patrick Palka <ppalka@redhat.com>
927
928 * include/experimental/socket
929 (basic_socket_iostream::basic_socket_iostream): Fix typo.
930 * include/tr2/dynamic_bitset
931 (__dynamic_bitset_base::_M_is_proper_subset_of): Likewise.
932
2ee5b58b
GA
9332024-07-12 Alexandre Oliva <oliva@adacore.com>
934
935 * testsuite/decimal/binary-arith.cc: Require dfprt.
936 * testsuite/decimal/comparison.cc: Likewise.
937 * testsuite/decimal/compound-assignment.cc: Likewise.
938 * testsuite/decimal/compound-assignment-memfunc.cc: Likewise.
939 * testsuite/decimal/make-decimal.cc: Likewise.
940 * testsuite/decimal/pr54036-1.cc: Likewise.
941 * testsuite/decimal/pr54036-2.cc: Likewise.
942 * testsuite/decimal/pr54036-3.cc: Likewise.
943 * testsuite/decimal/unary-arith.cc: Likewise.
944
88ff0504
GA
9452024-07-11 Jonathan Wakely <jwakely@redhat.com>
946
947 * testsuite/29_atomics/atomic_ref/bool.cc: New test.
948
9492024-07-11 Damien Lebrun-Grandie <dalg24@gmail.com>
950
951 * include/bits/atomic_base.h (__atomic_ref): Do not use integral
952 specialization for bool.
953
9542024-07-11 Gerald Pfeifer <gerald@pfeifer.com>
955
956 * doc/xml/manual/using.xml: Switch gcc.gnu.org links to https.
957 * doc/html/manual/using_concurrency.html: Regenerate.
958 * doc/html/manual/using_dynamic_or_shared.html: Ditto.
959 * doc/html/manual/using_headers.html: Ditto.
960 * doc/html/manual/using_namespaces.html: Ditto.
961
9622024-07-11 Jonathan Wakely <jwakely@redhat.com>
963
964 PR libstdc++/108636
965 * testsuite/27_io/filesystem/path/108636.cc: Require normal
966 mode.
967
f777ab31
GA
9682024-07-10 Jonathan Wakely <jwakely@redhat.com>
969
970 PR libstdc++/114387
971 * include/std/format (basic_format_context): Define copy
972 operations as deleted, as per LWG 4061.
973 * testsuite/std/format/context.cc: New test.
974
9752024-07-10 Jonathan Wakely <jwakely@redhat.com>
976
977 * src/c++26/text_encoding.cc (__locale_encoding): Add to unnamed
978 namespace.
979 (std::locale::encoding): Optimize for "C" and "*" names.
980
9812024-07-10 Jonathan Wakely <jwakely@redhat.com>
982
983 PR libstdc++/115854
984 * include/bits/stl_bvector.h (_Bvector_base): Convert allocator
985 to rebound type explicitly.
986 * testsuite/23_containers/vector/allocator/115854.cc: New test.
987 * testsuite/23_containers/vector/bool/allocator/115854.cc: New test.
988
9892024-07-10 Jonathan Wakely <jwakely@redhat.com>
990
991 PR libstdc++/115799
992 * include/bits/ranges_util.h (__find_fn): Make conversion
993 from difference type ti size_t explicit.
994 * testsuite/25_algorithms/find/bytes.cc: Check ranges::find with
995 __gnu_test::test_contiguous_range.
996 * testsuite/std/ranges/range.cc: Adjust expected difference_type
997 for __gnu_test::test_contiguous_range.
998 * testsuite/util/testsuite_iterators.h (contiguous_iterator_wrapper):
999 Use __max_diff_type as difference type.
1000 (test_range::sentinel, test_sized_range_sized_sent::sentinel):
1001 Ensure that operator- returns difference_type.
1002
10032024-07-10 Marek Polacek <polacek@redhat.com>
1004
1005 * testsuite/std/ranges/access/101782.cc: Don't compile with
1006 -fconcepts-ts.
1007
ceb944ad
GA
10082024-07-08 Jonathan Wakely <jwakely@redhat.com>
1009
1010 PR libstdc++/115807
1011 * include/c_compatibility/stdatomic.h (_Atomic): Ensure it
1012 refers to std::atomic in the global namespace.
1013 * testsuite/29_atomics/headers/stdatomic.h/115807.cc: New test.
1014
53eef791
GA
10152024-07-07 Gerald Pfeifer <gerald@pfeifer.com>
1016
1017 * doc/xml/manual/configure.xml: Update Autobook 14 link.
1018 Update GCC installation instructions link.
1019 * doc/html/manual/configure.html: Regenerate.
1020
10212024-07-07 Jonathan Wakely <jwakely@redhat.com>
1022
1023 PR libstdc++/115799
1024 * include/bits/stl_algo.h (find): Use 'if constexpr' so that
1025 memchr optimization is a discarded statement for non-contiguous
1026 iterators.
1027 * testsuite/25_algorithms/find/bytes.cc: Check with input
1028 iterators.
1029
10302024-07-07 Jonathan Wakely <jwakely@redhat.com>
1031
1032 PR libstdc++/115799
1033 * include/bits/ranges_util.h (__find_fn): Return iterator
1034 instead of sentinel.
1035 * testsuite/25_algorithms/find/constrained.cc: Check non-common
1036 contiguous sized range of char.
1037
e78c5d0a
GA
10382024-07-06 Jonathan Wakely <jwakely@redhat.com>
1039
1040 * testsuite/17_intro/headers/c++1998/all_attributes.cc: Add
1041 attribute names from later standards and remove dg-options.
1042 * testsuite/17_intro/headers/c++1998/stdc++.cc: Add c++98_only
1043 target selector.
1044 * testsuite/17_intro/headers/c++1998/stdc++_multiple_inclusion.cc:
1045 Remove content and include stdc++.cc twice instead.
1046 * testsuite/17_intro/headers/c++2011/stdc++.cc: Replace
1047 dg-options with c++11 target selector.
1048 * testsuite/17_intro/headers/c++2011/stdc++_multiple_inclusion.cc:
1049 Remove content and include stdc++.cc twice instead.
1050 * testsuite/17_intro/headers/c++2011/all_attributes.cc: Removed.
1051 * testsuite/17_intro/headers/c++2011/all_no_exceptions.cc: Removed.
1052 * testsuite/17_intro/headers/c++2011/all_no_rtti.cc: Removed.
1053 * testsuite/17_intro/headers/c++2011/all_pedantic_errors.cc: Removed.
1054 * testsuite/17_intro/headers/c++2011/charset.cc: Removed.
1055 * testsuite/17_intro/headers/c++2011/operator_names.cc: Removed.
1056 * testsuite/17_intro/headers/c++2014/all_attributes.cc: Removed.
1057 * testsuite/17_intro/headers/c++2014/all_no_exceptions.cc: Removed.
1058 * testsuite/17_intro/headers/c++2014/all_no_rtti.cc: Removed.
1059 * testsuite/17_intro/headers/c++2014/all_pedantic_errors.cc: Removed.
1060 * testsuite/17_intro/headers/c++2014/charset.cc: Removed.
1061 * testsuite/17_intro/headers/c++2014/operator_names.cc: Removed.
1062 * testsuite/17_intro/headers/c++2014/stdc++.cc: Removed.
1063 * testsuite/17_intro/headers/c++2014/stdc++_multiple_inclusion.cc: Removed.
1064 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Removed.
1065 * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc: Removed.
1066 * testsuite/17_intro/headers/c++2017/all_no_rtti.cc: Removed.
1067 * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc: Removed.
1068 * testsuite/17_intro/headers/c++2017/charset.cc: Removed.
1069 * testsuite/17_intro/headers/c++2017/operator_names.cc: Removed.
1070 * testsuite/17_intro/headers/c++2017/stdc++.cc: Removed.
1071 * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc: Removed.
1072 * testsuite/17_intro/headers/c++2020/all_attributes.cc: Removed.
1073 * testsuite/17_intro/headers/c++2020/all_no_exceptions.cc: Removed.
1074 * testsuite/17_intro/headers/c++2020/all_no_rtti.cc: Removed.
1075 * testsuite/17_intro/headers/c++2020/all_pedantic_errors.cc: Removed.
1076 * testsuite/17_intro/headers/c++2020/charset.cc: Removed.
1077 * testsuite/17_intro/headers/c++2020/operator_names.cc: Removed.
1078 * testsuite/17_intro/headers/c++2020/stdc++.cc: Removed.
1079 * testsuite/17_intro/headers/c++2020/stdc++_multiple_inclusion.cc: Removed.
1080
10812024-07-06 Jonathan Wakely <jwakely@redhat.com>
1082
1083 * include/std/variant (_Variant_storage::_M_reset): Use
1084 __unlikely__ form of attribute instead of unlikely.
1085
10862024-07-06 Jonathan Wakely <jwakely@redhat.com>
1087
1088 PR libstdc++/115797
1089 * include/std/type_traits: Ensure "C++" language linkage.
1090 * testsuite/17_intro/headers/c++2011/linkage.cc: Replace
1091 dg-options with c++11 target selector.
1092
92e4d73d
GA
10932024-07-05 Jonathan Wakely <jwakely@redhat.com>
1094
1095 PR c++/115747
1096 * testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc:
1097 Add dg-error for new C++26 diagnostics.
1098
10992024-07-05 Jonathan Wakely <jwakely@redhat.com>
1100
1101 * include/bits/stl_uninitialized.h (_UninitDestroyGuard): New
1102 class template and partial specialization.
1103 (__do_uninit_copy, __do_uninit_fill, __do_uninit_fill_n)
1104 (__uninitialized_copy_a, __uninitialized_fill_a)
1105 (__uninitialized_fill_n_a, __uninitialized_copy_move)
1106 (__uninitialized_move_copy, __uninitialized_fill_move)
1107 (__uninitialized_move_fill, __uninitialized_default_1)
1108 (__uninitialized_default_n_a, __uninitialized_default_novalue_1)
1109 (__uninitialized_default_novalue_n_1, __uninitialized_copy_n)
1110 (__uninitialized_copy_n_pair): Use it.
1111
11122024-07-05 Jonathan Wakely <jwakely@redhat.com>
1113
1114 PR libstdc++/88545
1115 PR libstdc++/115040
1116 * include/bits/cpp_type_traits.h (__can_use_memchr_for_find):
1117 New variable template.
1118 * include/bits/ranges_util.h (__find_fn): Use memchr when
1119 possible.
1120 * include/bits/stl_algo.h (find): Likewise.
1121 * testsuite/25_algorithms/find/bytes.cc: New test.
1122
304b6464
GA
11232024-07-04 John David Anglin <danglin@gcc.gnu.org>
1124
1125 PR libstdc++/98678
1126 * testsuite/30_threads/future/members/poll.cc: Skip on hppa*-*-linux*.
1127
614fd0fb
GA
11282024-06-28 Jonathan Wakely <jwakely@redhat.com>
1129
1130 PR libstdc++/115585
1131 * src/c++11/assert_fail.cc (__glibcxx_assert_fail): Add
1132 definition for non-verbose builds.
1133
11342024-06-28 Jonathan Wakely <jwakely@redhat.com>
1135
1136 PR libstdc++/101485
1137 * include/bits/stl_algobase.h (__equal_aux1): Check for
1138 std::byte as well.
1139 * testsuite/25_algorithms/equal/101485.cc: New test.
1140
11412024-06-28 Jonathan Wakely <jwakely@redhat.com>
1142
1143 PR libstdc++/104395
1144 * include/bits/new_allocator.h: Disable extended alignment
1145 support in C++98 mode.
1146 * include/bits/stl_tempbuf.h: Likewise.
1147 * include/ext/bitmap_allocator.h: Likewise.
1148 * include/ext/malloc_allocator.h: Likewise.
1149 * include/ext/mt_allocator.h: Likewise.
1150 * include/ext/pool_allocator.h: Likewise.
1151 * testsuite/ext/104395.cc: New test.
1152
11532024-06-28 Jonathan Wakely <jwakely@redhat.com>
1154
1155 * include/ext/aligned_buffer.h (__aligned_membuf): Use
1156 alignas(T) directly instead of defining a struct and using 9its
1157 alignment.
1158 (__aligned_buffer): Remove use of std::aligned_storage.
1159 * testsuite/abi/aligned_buffers.cc: New test.
1160
4fda39e7
GA
11612024-06-27 Jonathan Wakely <jwakely@redhat.com>
1162
1163 PR libstdc++/37475
1164 * config/locale/gnu/codecvt_members.cc (Guard): New RAII type.
1165 (do_out, do_in): Return partial if the destination is empty but
1166 the source is not. Use Guard to restore locale on scope exit.
1167 Return immediately on any conversion error.
1168 (do_encoding, do_max_length, do_length): Use Guard.
1169 * testsuite/22_locale/codecvt/in/char/37475.cc: New test.
1170 * testsuite/22_locale/codecvt/in/wchar_t/37475.cc: New test.
1171 * testsuite/22_locale/codecvt/out/char/37475.cc: New test.
1172 * testsuite/22_locale/codecvt/out/wchar_t/37475.cc: New test.
1173
11742024-06-27 Alexandre Oliva <oliva@adacore.com>
1175
1176 PR libstdc++/115454
1177 * testsuite/experimental/simd/pr115454_find_last_set.cc: Defer
1178 to check_vect_support_and_set_flags's default dg-do action.
1179
11802024-06-27 Jonathan Wakely <jwakely@redhat.com>
1181
1182 PR libstdc++/115668
1183 * include/bits/chrono_io.h (formatter<duration<R,P, C>::format):
1184 Do not use chrono::abs.
1185 * testsuite/20_util/duration/io.cc: Check formatting a duration
1186 with unsigned rep.
1187
11882024-06-27 Jonathan Wakely <jwakely@redhat.com>
1189
1190 PR libstdc++/103191
1191 * include/bits/stl_bvector.h (vector<bool>::operator[])
1192 (vector<bool>::front, vector<bool>::back): Add debug assertions.
1193 * testsuite/23_containers/vector/bool/element_access/constexpr.cc:
1194 Remove dg-error that no longer triggers.
1195
11962024-06-27 Jonathan Wakely <jwakely@redhat.com>
1197
1198 PR libstdc++/111250
1199 * include/debug/assertions.h (__glibcxx_requires_non_empty_range)
1200 (__glibcxx_requires_nonempty, __glibcxx_requires_subscript):
1201 Define to __glibcxx_assert expressions or to debug mode
1202 __glibcxx_check_xxx expressions.
1203 * testsuite/23_containers/array/element_access/constexpr_c++17.cc:
1204 Add checks for out-of-bounds accesses in constant expressions.
1205 * testsuite/23_containers/vector/element_access/constexpr.cc:
1206 Likewise.
1207
9c56dc7f
GA
12082024-06-26 Jonathan Wakely <jwakely@redhat.com>
1209
1210 * scripts/update_release_branch.sh: New file.
1211
12122024-06-26 Jonathan Wakely <jwakely@redhat.com>
1213
1214 * testsuite/20_util/specialized_algorithms/uninitialized_copy/808590.cc:
1215 Copy defaulted assignment operator from 808590-cxx11.cc to
1216 suppress a warning.
1217 * testsuite/20_util/specialized_algorithms/uninitialized_copy/808590-cxx11.cc:
1218 Removed.
1219
12202024-06-26 Jonathan Wakely <jwakely@redhat.com>
1221
1222 PR libstdc++/90276
1223 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
1224 Increase timeout for debug mode.
1225 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
1226 Likewise.
1227 * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
1228 Likewise.
1229 * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
1230 Likewise.
1231 * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
1232 Likewise.
1233 * testsuite/25_algorithms/pstl/alg_sorting/set_symmetric_difference.cc:
1234 Likewise.
1235
12362024-06-26 Jonathan Wakely <jwakely@redhat.com>
1237
1238 PR libstdc++/90276
1239 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc
1240 [_GLIBCXX_DEBUG]: Add xfail-run-if for debug mode.
1241 * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc
1242 [_GLIBCXX_DEBUG]: Reduce size of test data.
1243 * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
1244 Likewise.
1245 * testsuite/25_algorithms/pstl/alg_sorting/set_util.h:
1246 Likewise.
1247
12482024-06-26 Jonathan Wakely <jwakely@redhat.com>
1249
1250 * src/c++20/tzdb.cc (minmax_year, minmax_year2): Remove.
1251 (years_from_to): New class replacing minmax_year and
1252 minmax_year2.
1253 (format_abbrev_str, select_std_or_dst_abbrev): Move earlier in
1254 the file. Handle "-" for letters.
1255 (ZoneInfo::to): Use format_abbrev_str to expand %z.
1256 (ZoneInfo::set_abbrev): Remove exception. Change parameter from
1257 reference to value.
1258 (operator>>(istream&, Rule&)): Do not clear letters when it
1259 contains "-".
1260 (time_zone::_M_get_sys_info): Add missing logic to find the Rule
1261 in effect before the time point.
1262 * testsuite/std/time/tzdb/1.cc: Adjust for vanguard format using
1263 "GMT" as the Zone name, not as a Link to "Etc/GMT".
1264 * testsuite/std/time/time_zone/sys_info_abbrev.cc: New test.
1265
12662024-06-26 Alexandre Oliva <oliva@adacore.com>
1267 Marc Poulhiès <poulhies@adacore.com>
1268
1269 * testsuite/lib/dg-options.exp (add_options_for_libatomic):
1270 None for *-*-vxworks*.
1271
9fe669ce
GA
12722024-06-25 Jonathan Wakely <jwakely@redhat.com>
1273
1274 * include/bits/valarray_array.h (_Array_default_ctor): Remove.
1275 (__valarray_default_construct): Inline it into here.
1276 (_Array_init_ctor): Remove.
1277 (__valarray_fill_construct): Inline it into here.
1278 (_Array_copy_ctor): Remove.
1279 (__valarray_copy_construct(const T*, const T*, T*)): Inline it
1280 into here.
1281 (__valarray_copy_construct(const T*, size_t, size_t, T*)):
1282 Use _GLIBCXX17_CONSTEXPR for constant condition.
1283
12842024-06-25 Jonathan Wakely <jwakely@redhat.com>
1285
1286 * doc/xml/faq.xml: Replace viewcvs links with cgit links.
1287 * doc/xml/manual/allocator.xml: Likewise.
1288 * doc/xml/manual/mt_allocator.xml: Likewise.
1289 * doc/html/*: Regenerate.
1290
00848ba8
GA
12912024-06-22 Gerald Pfeifer <gerald@pfeifer.com>
1292
1293 * doc/xml/manual/debug.xml: Move gcc.gnu.org link to https.
1294 Ditto for sourceware.org links.
1295 * doc/html/manual/debug.html: Regenerate.
1296
69fdcd0c
GA
12972024-06-21 Jonathan Wakely <jwakely@redhat.com>
1298
1299 PR libstdc++/115497
1300 * include/bits/cpp_type_traits.h (__is_pointer, __is_scalar):
1301 Remove.
1302 (__is_arithmetic): Do not use __is_pointer in the primary
1303 template. Add partial specialization for pointers.
1304
13052024-06-21 Jonathan Wakely <jwakely@redhat.com>
1306
1307 PR libstdc++/115497
1308 * include/bits/cpp_type_traits.h (__is_void): Remove.
1309 * include/debug/helper_functions.h (_Distance_traits):
1310 Adjust partial specialization to match void directly, instead of
1311 using __is_void<T>::__type and matching __true_type.
1312
13132024-06-21 Jonathan Wakely <jwakely@redhat.com>
1314
1315 PR libstdc++/115497
1316 * include/bits/deque.tcc (__lex_cmp_dit): Replace __is_pointer
1317 class template with __is_pointer(T) built-in.
1318 (__lexicographical_compare_aux1): Likewise.
1319 * include/bits/stl_algobase.h (__equal_aux1): Likewise.
1320 (__lexicographical_compare_aux1): Likewise.
1321
13222024-06-21 Jonathan Wakely <jwakely@redhat.com>
1323
1324 PR libstdc++/115497
1325 * include/bits/valarray_array.h (__valarray_default_construct):
1326 Use __is_trivial(_Tp). instead of __is_scalar<_Tp>.
1327
13282024-06-21 Jonathan Wakely <jwakely@redhat.com>
1329
1330 PR libstdc++/109150
1331 * include/bits/stl_algobase.h (__fill_a1): Combine the
1332 !__is_scalar and __is_scalar overloads into one and rewrite the
1333 condition used to decide whether to perform the load outside the
1334 loop.
1335 * testsuite/25_algorithms/fill/109150.cc: New test.
1336 * testsuite/25_algorithms/fill_n/109150.cc: New test.
1337
13382024-06-21 Matthias Kretz <m.kretz@gsi.de>
1339
1340 PR libstdc++/115575
1341 * testsuite/experimental/simd/pr115454_find_last_set.cc: Require
1342 avx512f_runtime. Don't memcpy fixed_size masks.
1343
13442024-06-21 Jonathan Wakely <jwakely@redhat.com>
1345
1346 * include/bits/stl_uninitialized.h (uninitialized_default_construct)
1347 (uninitialized_default_construct_n, uninitialized_value_construct)
1348 (uninitialized_value_construct_n): Qualify calls to prevent ADL.
1349
13502024-06-21 Jonathan Wakely <jwakely@redhat.com>
1351
1352 * include/std/any (any_cast(any*), any_cast(const any*)): Add
1353 static assertion to reject void types, as per LWG 3305.
1354 * testsuite/20_util/any/misc/lwg3305.cc: New test.
1355
13562024-06-21 Jonathan Wakely <jwakely@redhat.com>
1357
1358 * include/bits/memory_resource.h (polymorphic_allocator::destroy):
1359 Remove deprecated attribute.
1360
13612024-06-21 Jonathan Wakely <jwakely@redhat.com>
1362
1363 * include/backward/backward_warning.h: Adjust comments to
1364 suggest <spanstream> as another alternative to <strstream>.
1365 * include/backward/strstream (strstreambuf, istrstream)
1366 (ostrstream, strstream): Add deprecated attribute.
1367
13682024-06-21 Jonathan Wakely <jwakely@redhat.com>
1369
1370 * include/bits/locale_conv.h (wstring_convert): Add deprecated
1371 attribute for C++17 and later.
1372 (wbuffer_convert): Likewise.
1373 * testsuite/22_locale/codecvt/codecvt_utf16/79980.cc: Disable
1374 deprecated warnings.
1375 * testsuite/22_locale/codecvt/codecvt_utf8/79980.cc: Likewise.
1376 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/79511.cc:
1377 Likewise.
1378 * testsuite/22_locale/conversions/buffer/1.cc: Add dg-warning.
1379 * testsuite/22_locale/conversions/buffer/2.cc: Likewise.
1380 * testsuite/22_locale/conversions/buffer/3.cc: Likewise.
1381 * testsuite/22_locale/conversions/buffer/requirements/typedefs.cc:
1382 Likewise.
1383 * testsuite/22_locale/conversions/string/1.cc: Likewise.
1384 * testsuite/22_locale/conversions/string/2.cc: Likewise.
1385 * testsuite/22_locale/conversions/string/3.cc: Likewise.
1386 * testsuite/22_locale/conversions/string/66441.cc: Likewise.
1387 * testsuite/22_locale/conversions/string/requirements/typedefs-2.cc:
1388 Likewise.
1389 * testsuite/22_locale/conversions/string/requirements/typedefs.cc:
1390 Likewise.
1391
13922024-06-21 Jonathan Wakely <jwakely@redhat.com>
1393
1394 * include/bits/version.def (chrono): Add cxx11abi = yes.
1395 * include/bits/version.h: Regenerate.
1396 * testsuite/std/time/syn_c++20.cc: Adjust expected value for
1397 the feature test macro.
1398
13992024-06-21 Jonathan Wakely <jwakely@redhat.com>
1400
1401 PR libstdc++/115522
1402 * include/std/array (to_array): Workaround the fact that
1403 std::is_trivial is not sufficient to check that a type is
1404 trivially default constructible and assignable.
1405 * testsuite/23_containers/array/creation/115522.cc: New test.
1406
14072024-06-21 Jonathan Wakely <jwakely@redhat.com>
1408
1409 * testsuite/util/testsuite_allocator.h (tracker_allocator):
1410 Initialize base class in copy constructor.
1411
e71481ed
GA
14122024-06-20 Matthias Kretz <m.kretz@gsi.de>
1413
1414 PR libstdc++/115454
1415 * include/experimental/bits/simd_x86.h (_S_not_equal_to): Use
1416 neq comparison instead of bitwise negation after eq.
1417 (_S_find_last_set): Clear unused high bits before computing
1418 bit_width.
1419 * testsuite/experimental/simd/pr115454_find_last_set.cc: New
1420 test.
1421
ebfffb6c
GA
14222024-06-19 Jonathan Wakely <jwakely@redhat.com>
1423
1424 * include/std/future: Adjust whitespace to use tabs for
1425 indentation.
1426
14272024-06-19 Jonathan Wakely <jwakely@redhat.com>
1428
1429 * include/std/future (_State_baseV2::_Setter<R, void>): Add
1430 noexcept to call operator.
1431 (_State_baseV2::_Setter<R, __exception_ptr_tag>): Likewise.
1432
14332024-06-19 Jonathan Wakely <jwakely@redhat.com>
1434
1435 * include/bits/stl_pair.h [__cpp_lib_concepts] (pair()): Add
1436 conditional noexcept.
1437
14382024-06-19 Jonathan Wakely <jwakely@redhat.com>
1439
1440 * include/bits/stl_tempbuf.h (__get_temporary_buffer): Cast
1441 argument to size_t to handle negative values and suppress
1442 -Wsign-compare warning.
1443 (_Temporary_buffer): Move diagnostic pragmas to new location of
1444 call to std::get_temporary_buffer.
1445
a008fa34
GA
14462024-06-18 Jonathan Wakely <jwakely@redhat.com>
1447
1448 * include/bits/cpp_type_traits.h: Fix outdated comment about the
1449 number of standard integer types.
1450
471fb092
GA
14512024-06-14 Jonathan Wakely <jwakely@redhat.com>
1452
1453 PR libstdc++/110572
1454 * libsupc++/typeinfo (type_info::operator==): Add always_inline
1455 attribute for targets where the ABI requries equality to be
1456 non-inline.
1457 * testsuite/18_support/type_info/110572.cc: New test.
1458
14592024-06-14 Jonathan Wakely <jwakely@redhat.com>
1460
1461 * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Fix declaration of
1462 posix_memalign.
1463
028cd77d
GA
14642024-06-13 Alexandre Oliva <oliva@adacore.com>
1465
1466 PR libstdc++/114359
1467 * testsuite/26_numerics/random/binomial_distribution/114359.cc:
1468 Require cmath.
1469
14702024-06-13 Ken Matsui <kmatsui@gcc.gnu.org>
1471
1472 * include/std/type_traits (__add_rval_ref_t): Use
1473 __add_rvalue_reference built-in trait.
1474
14752024-06-13 Ken Matsui <kmatsui@gcc.gnu.org>
1476
1477 * include/std/type_traits (__add_lval_ref_t): Use
1478 __add_lvalue_reference built-in trait.
1479
14802024-06-13 Ken Matsui <kmatsui@gcc.gnu.org>
1481 Jonathan Wakely <jwakely@redhat.com>
1482
1483 * include/bits/cpp_type_traits.h (__is_pointer): Use
1484 __is_pointer built-in trait.
1485 * include/std/type_traits (is_pointer): Likewise. Optimize its
1486 implementation.
1487 (is_pointer_v): Likewise.
1488
14892024-06-13 Jonathan Wakely <jwakely@redhat.com>
1490
1491 * include/bits/ranges_base.h (range_common_reference_t): New
1492 alias template, as per LWG 3860.
1493 * testsuite/std/ranges/range.cc: Check it.
1494
14952024-06-13 Jonathan Wakely <jwakely@redhat.com>
1496
1497 * include/bits/ranges_base.h (const_iterator_t): Change
1498 preprocessor condition to use __glibcxx_ranges_as_const.
1499 (const_sentinel_t, range_const_reference_t): Likewise.
1500 (__access::__possibly_const_range, cbegin, cend, crbegin)
1501 (crend, cdata): Likewise.
1502 * include/bits/stl_iterator.h (iter_const_reference_t)
1503 (basic_const_iterator, const_iterator, const_sentinel)
1504 (make_const_iterator): Likewise.
1505
15062024-06-13 Jonathan Wakely <jwakely@redhat.com>
1507
1508 PR libstdc++/115420
1509 * include/bits/hashtable.h (_Hashtable): Add static_assert to
1510 check that hash function is copy constructible.
1511 * testsuite/23_containers/unordered_map/115420.cc: New test.
1512
15132024-06-13 Jonathan Wakely <jwakely@redhat.com>
1514
1515 PR libstdc++/113376
1516 * include/pstl/pstl_config.h: Use #if instead of #ifdef to test
1517 the _PSTL_USAGE_WARNINGS macro.
1518
15192024-06-13 Ken Matsui <kmatsui@gcc.gnu.org>
1520
1521 * include/std/type_traits (is_nothrow_invocable): Use
1522 __is_nothrow_invocable built-in trait.
1523 * testsuite/20_util/is_nothrow_invocable/incomplete_args_neg.cc:
1524 Handle the new error from __is_nothrow_invocable.
1525 * testsuite/20_util/is_nothrow_invocable/incomplete_neg.cc:
1526 Likewise.
1527
15282024-06-13 Ken Matsui <kmatsui@gcc.gnu.org>
1529
1530 * include/std/type_traits (is_invocable): Use __is_invocable
1531 built-in trait.
1532 * testsuite/20_util/is_invocable/incomplete_args_neg.cc: Handle
1533 the new error from __is_invocable.
1534 * testsuite/20_util/is_invocable/incomplete_neg.cc: Likewise.
1535
15362024-06-13 Ken Matsui <kmatsui@gcc.gnu.org>
1537
1538 * include/std/type_traits (rank): Use __array_rank built-in
1539 trait.
1540 (rank_v): Likewise.
1541
15422024-06-13 Ken Matsui <kmatsui@gcc.gnu.org>
1543
1544 * include/std/type_traits (decay): Use __decay built-in trait.
1545
15462024-06-13 Ken Matsui <kmatsui@gcc.gnu.org>
1547
1548 * include/std/type_traits (remove_all_extents): Use
1549 __remove_all_extents built-in trait.
1550
15512024-06-13 Ken Matsui <kmatsui@gcc.gnu.org>
1552
1553 * include/std/type_traits (remove_extent): Use __remove_extent
1554 built-in trait.
1555
15562024-06-13 Ken Matsui <kmatsui@gcc.gnu.org>
1557
1558 * include/std/type_traits (add_pointer): Use __add_pointer
1559 built-in trait.
1560
15612024-06-13 Ken Matsui <kmatsui@gcc.gnu.org>
1562
1563 * include/std/type_traits (is_unbounded_array_v): Use
1564 __is_unbounded_array built-in trait.
1565
15662024-06-13 Ken Matsui <kmatsui@gcc.gnu.org>
1567
1568 * include/std/type_traits (is_volatile): Use __is_volatile
1569 built-in trait.
1570 (is_volatile_v): Likewise.
1571
15722024-06-13 Ken Matsui <kmatsui@gcc.gnu.org>
1573
1574 * include/std/type_traits (is_const): Use __is_const built-in
1575 trait.
1576 (is_const_v): Likewise.
1577
158ce8ad
GA
15782024-06-12 Alexandre Oliva <oliva@adacore.com>
1579
1580 * testsuite/26_numerics/headers/cmath/constexpr_std_c++23.cc:
1581 Require cmath.
1582 * testsuite/26_numerics/headers/cmath/functions_std_c++23.cc:
1583 Likewise.
1584 * testsuite/26_numerics/headers/cmath/nextafter_c++23.cc:
1585 Likewise.
1586
15872024-06-12 Alexandre Oliva <oliva@adacore.com>
1588
1589 * testsuite/20_util/from_chars/8.cc: Skip float128_t testing
1590 on aarch64-rtems*.
1591 * testsuite/20_util/to_chars/float128_c++23.cc: Xfail run on
1592 aarch64-rtems*.
1593
15942024-06-12 Jonathan Wakely <jwakely@redhat.com>
1595
1596 PR libstdc++/115399
1597 * include/tr2/dynamic_bitset (operator>>=): Remove redundant
1598 call to _M_do_sanitize.
1599 * include/tr2/dynamic_bitset.tcc (_M_do_left_shift): Zero out
1600 low bits in words that should no longer be populated.
1601 (_M_do_right_shift): Likewise for high bits.
1602 * testsuite/tr2/dynamic_bitset/pr115399.cc: New test.
1603
16042024-06-12 Jonathan Wakely <jwakely@redhat.com>
1605
1606 * include/bits/hashtable.h (_Hashtable::clear): Do not use
1607 memset to zero out bucket pointers.
1608 (_Hashtable::_M_assign_elements): Likewise.
1609
7fa4b335
GA
16102024-06-11 Jonathan Wakely <jwakely@redhat.com>
1611
1612 * include/std/chrono (leap_seconds): Add comment.
1613 * testsuite/std/time/leap_seconds/io.cc: New test.
1614
097bc0ae
GA
16152024-06-10 François Dumont <fdumont@gcc.gnu.org>
1616
1617 * include/bits/hashtable.h (~_Hashtable()): Replace clear call with
1618 a _M_deallocate_nodes call.
1619
e1a24239
GA
16202024-06-08 Deev Patel <dkp10000@gmail.com>
1621 Jonathan Wakely <jwakely@redhat.com>
1622
1623 * include/bits/atomic_base.h (__atomic_impl::__clear_padding):
1624 Add missing constexpr specifier.
1625 * testsuite/29_atomics/atomic_float/constinit.cc: New test.
1626
16272024-06-08 Michael Levine <mlevine55@bloomberg.net>
1628
1629 PR libstdc++/108760
1630 * include/bits/ranges_algo.h (ranges::out_value_result):
1631 Move to <bits/ranges_algobase.h>.
1632 (ranges::iota_result, ranges::__iota_fn, ranges::iota): Move to
1633 <numeric>.
1634 * include/bits/ranges_algobase.h (ranges::out_value_result):
1635 Move to here.
1636 * include/std/numeric (ranges::iota_result, ranges::__iota_fn)
1637 (ranges::iota): Move to here.
1638 * testsuite/25_algorithms/iota/1.cc: Renamed to ...
1639 * testsuite/26_numerics/iota/2.cc: ... here.
1640
16412024-06-08 Jonathan Wakely <jwakely@redhat.com>
1642
1643 * include/std/algorithm: Define __glibcxx_want_ranges.
1644 * testsuite/25_algorithms/headers/algorithm/synopsis.cc: Check
1645 feature test macro in C++20 mode.
1646
6e5f77fd
GA
16472024-06-07 Jonathan Wakely <jwakely@redhat.com>
1648
1649 * include/bits/ranges_algobase.h: Include <bits/stl_algobase.h>.
1650
16512024-06-07 Alexandre Oliva <oliva@adacore.com>
1652
1653 * include/std/variant: Drop obsolete workaround.
1654
16552024-06-07 Jonathan Wakely <jwakely@redhat.com>
1656
1657 * include/bits/ptr_traits.h (to_address): Optimize.
1658 * testsuite/20_util/to_address/1_neg.cc: Adjust dg-error text.
1659
6af18e8c
GA
16602024-06-06 Alexandre Oliva <oliva@adacore.com>
1661
1662 * include/bits/c++config (_GLIBCXX_CLANG): Define or undefine.
1663 * include/bits/locale_facets_nonio.tcc: Test for it.
1664 * include/bits/stl_bvector.h: Likewise.
1665 * include/c_compatibility/stdatomic.h: Likewise.
1666 * include/experimental/bits/simd.h: Likewise.
1667 * include/experimental/bits/simd_builtin.h: Likewise.
1668 * include/experimental/bits/simd_detail.h: Likewise.
1669 * include/experimental/bits/simd_x86.h: Likewise.
1670 * include/experimental/simd: Likewise.
1671 * include/std/complex: Likewise.
1672 * include/std/ranges: Likewise.
1673 * include/std/variant: Likewise.
1674 * include/pstl/pstl_config.h: Likewise.
1675
10cb3336
GA
16762024-06-05 Gerald Pfeifer <gerald@pfeifer.com>
1677
1678 * doc/xml/faq.xml: Move gcc.gnu.org to https.
1679 * doc/html/faq.html: Regenerate.
1680
904fbe96
GA
16812024-06-04 Jonathan Wakely <jwakely@redhat.com>
1682
1683 PR libstdc++/115335
1684 * include/std/span (span::at): Guard with feature test macro.
1685
16862024-06-04 Matthias Kretz <m.kretz@gsi.de>
1687
1688 PR libstdc++/115308
1689 * include/experimental/bits/simd.h (__int_for_sizeof): Remove
1690 special cases for __clang__.
1691 (_SimdWrapper): Change constructor overload set to allow
1692 conversion from vector types with integral conversions via bit
1693 reinterpretation.
1694
b40827ed
GA
16952024-06-03 Jonathan Wakely <jwakely@redhat.com>
1696
1697 * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
1698 Use __detail::__get_temporary_buffer.
1699 (basic_stacktrace::_Impl::_M_deallocate): Use
1700 __detail::__return_temporary_buffer.
1701
17022024-06-03 Jonathan Wakely <jwakely@redhat.com>
1703
1704 PR libstdc++/105258
1705 * include/bits/stl_tempbuf.h (__detail::__get_temporary_buffer):
1706 New function to do allocation for get_temporary_buffer, with
1707 extended alignment support.
1708 (__detail::__return_temporary_buffer): Support extended
1709 alignment.
1710 (get_temporary_buffer): Use __get_temporary_buffer.
1711 (return_temporary_buffer): Support extended alignment. Add
1712 deprecated attribute.
1713 (_Temporary_buffer): Move allocation and deallocation into a
1714 subobject and remove try-catch block in constructor.
1715 (__uninitialized_construct_buf): Use argument deduction for
1716 value type.
1717 * testsuite/20_util/temporary_buffer.cc: Add dg-warning for new
1718 deprecated warning.
1719 * testsuite/25_algorithms/stable_sort/overaligned.cc: New test.
1720
17212024-06-03 François Dumont <frs.dumont@gmail.com>
1722
1723 PR libstdc++/109849
1724 * include/bits/vector.tcc
1725 (std::vector<>::_M_range_insert(iterator, _FwdIt, _FwdIt,
1726 forward_iterator_tag))[__cplusplus < 201103L]: Add __builtin_unreachable
1727 expression to tell the compiler that the allocated buffer is large enough to
1728 receive current elements plus the elements of the range to insert.
1729
17302024-06-03 Jonathan Wakely <jwakely@redhat.com>
1731
1732 * include/std/string_view (starts_with(basic_string_view)):
1733 Compare lengths first and then call traits_type::compare
1734 directly.
1735
cbf2ed4b
GA
17362024-06-02 Gerald Pfeifer <gerald@pfeifer.com>
1737
1738 * doc/xml/api.xml: Move gcc.gnu.org links to https.
1739 * doc/html/api.html: Regenerate.
1740
3c7301f9
GA
17412024-06-01 Jonathan Wakely <jwakely@redhat.com>
1742
1743 PR libstdc++/115269
1744 * doc/xml/manual/using.xml: Replace link to gcc-4.3.2 docs.
1745 Replace list of -std=... options with a single entry for -std.
1746 * doc/html/manual/using.html: Regenerate.
1747
0ab64355
GA
17482024-05-30 Alexandre Oliva <oliva@adacore.com>
1749
1750 * configure.ac [*-*-rtems*]: Set chdir, chmod and mkdir as
1751 available.
1752 * configure: Rebuilt.
1753
d815d9ad
GA
17542024-05-29 François Dumont <fdumont@gcc.gnu.org>
1755
1756 * include/bits/vector.tcc (_Guard): Move all the nested duplicated class...
1757 * include/bits/stl_vector.h (_Guard_alloc): ...here and rename.
1758 (_M_allocate_and_copy): Use latter.
1759 (_M_initialize_dispatch): Small code simplification.
1760 (_M_range_initialize): Likewise and set _M_finish first from the result
1761 of __uninitialize_fill_n_a that can throw.
1762
17632024-05-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1764
1765 PR libstdc++/111641
1766 * src/libbacktrace/Makefile.am (AM_CFLAGS): Add -funwind-tables.
1767 * src/libbacktrace/Makefile.in: Regenerate.
1768 * testsuite/19_diagnostics/stacktrace/current.cc (dg-options): Add
1769 -funwind-tables.
1770 * testsuite/19_diagnostics/stacktrace/entry.cc: Likewise.
1771 * testsuite/19_diagnostics/stacktrace/hash.cc: Likewise.
1772 * testsuite/19_diagnostics/stacktrace/output.cc: Likewise.
1773 * testsuite/19_diagnostics/stacktrace/stacktrace.cc: Likewise.
1774
17752024-05-29 Matthias Kretz <m.kretz@gsi.de>
1776
1777 PR libstdc++/115247
1778 * include/experimental/bits/simd.h (__as_vector): Don't use
1779 vector_size(8) on __i386__.
1780 (__vec_shuffle): Never return MMX vectors, widen to 16 bytes
1781 instead.
1782 (concat): Fix padding calculation to pick up widening logic from
1783 __as_vector.
1784
ee492101
GA
17852024-05-23 Patrick Palka <ppalka@redhat.com>
1786
1787 * include/bits/version.def (ranges_concat): Define.
1788 * include/bits/version.h: Regenerate.
1789 * include/std/ranges (__detail::__concat_reference_t): Define
1790 for C++26.
1791 (__detail::__concat_value_t): Likewise.
1792 (__detail::__concat_rvalue_reference_t): Likewise.
1793 (__detail::__concat_indirectly_readable_impl): Likewise.
1794 (__detail::__concat_indirectly_readable): Likewise.
1795 (__detail::__concatable): Likewise.
1796 (__detail::__all_but_last_common): Likewise.
1797 (__detail::__concat_is_random_access): Likewise.
1798 (__detail::__concat_is_bidirectional): Likewise.
1799 (__detail::__last_is_common): Likewise.
1800 (concat_view): Likewise.
1801 (__detail::__concat_view_iter_cat): Likewise.
1802 (concat_view::iterator): Likewise.
1803 (views::__detail::__can_concat_view): Likewise.
1804 (views::_Concat, views::concat): Likewise.
1805 * testsuite/std/ranges/concat/1.cc: New test.
1806
0c23f152
GA
18072024-05-22 Jonathan Wakely <jwakely@redhat.com>
1808
1809 * include/bits/locale_classes.h (locale::combine)
1810 (locale::name, locale::operator==, locale::operator!=)
1811 (locale::operator(), locale::classic): Add nodiscard
1812 attribute.
1813 * include/bits/locale_classes.tcc (has_facet, use_facet):
1814 Likewise.
1815 * testsuite/22_locale/locale/cons/12438.cc: Add dg-warning for
1816 nodiscard diagnostic.
1817 * testsuite/22_locale/locale/cons/2.cc: Cast use_facet
1818 expression to void, to suppress diagnostic.
1819 * testsuite/22_locale/locale/cons/unicode.cc: Likewise.
1820 * testsuite/22_locale/locale/operations/2.cc: Add dg-warning.
1821
18222024-05-22 Jonathan Wakely <jwakely@redhat.com>
1823
1824 PR libstdc++/108323
1825 * include/bits/locale_classes.tcc (locale(const locale&, Facet*)):
1826 Return a copy of the first argument when the facet pointer is
1827 null, as per LWG 2295.
1828 (locale::combine): Ensure the result is unnamed.
1829 * src/c++11/localename.cc (_M_replace_categories): Ignore
1830 whether the second locale has a name when cat == none, as per
1831 LWG 3676.
1832 * src/c++98/locale.cc (_M_install_facet): Use __builtin_expect
1833 to predict that the facet pointer is non-null.
1834 * testsuite/22_locale/locale/cons/names.cc: New test.
1835
18362024-05-22 Jonathan Wakely <jwakely@redhat.com>
1837
1838 PR libstdc++/114940
1839 * include/bits/version.def (generator): Depend on
1840 __cpp_sized_deallocation.
1841 * include/bits/version.h: Regenerate.
1842 * include/std/stacktrace (_GLIBCXX_SIZED_DELETE): New macro.
1843 (basic_stacktrace::_Impl::_M_deallocate): Use it.
1844
18452024-05-22 Jonathan Wakely <jwakely@redhat.com>
1846
1847 PR libstdc++/115099
1848 * include/bits/std_thread.h: Declare formatter as friend of
1849 thread::id.
1850 * include/std/thread (operator<<): Convert non-void pointers to
1851 void pointers for output.
1852 (formatter): Add constraint that thread::native_handle_type is a
1853 pointer or integer.
1854 (formatter::format): Reimplement without basic_ostringstream.
1855 * testsuite/30_threads/thread/id/output.cc: Check output
1856 compiles before <sstream> has been included.
1857
18582024-05-22 Jonathan Wakely <jwakely@redhat.com>
1859
1860 PR libstdc++/115145
1861 * include/std/variant (operator==, operator!=, operator<)
1862 (operator<=, operator>, operator>=): Add trailing-return-type to
1863 lambda expressions to trigger conversion to bool.
1864 * testsuite/20_util/variant/relops/115145.cc: New test.
1865
8713d5ee
GA
18662024-05-17 Björn Schäpers <bjoern@hazardy.de>
1867
1868 * acinclude.m4 (GLIBCXX_ENABLE_BACKTACE): Add check for
1869 tlhelp32.h, matching libbacktrace.
1870 * config.h.in: Regenerate.
1871 * configure: Regenerate.
1872
18732024-05-17 Jonathan Wakely <jwakely@redhat.com>
1874
1875 PR libstdc++/115119
1876 * include/bits/unicode.h (_Iterator::operator++(int)): Fix typo
1877 in increment expression.
1878 * testsuite/ext/unicode/grapheme_view.cc: Check post-increment
1879 on view's iterator.
1880
25456c0e
GA
18812024-05-15 Jonathan Wakely <jwakely@redhat.com>
1882
1883 PR libstdc++/77704
1884 * include/bits/basic_ios.h (basic_ios::fill()): Do not modify
1885 _M_fill and _M_fill_init in a const member function.
1886 (basic_ios::fill(char_type)): Use _M_fill directly instead of
1887 calling fill(). Set _M_fill_init to true.
1888 * include/bits/basic_ios.tcc (basic_ios::init): Set _M_fill and
1889 _M_fill_init here instead.
1890 * testsuite/27_io/basic_ios/fill/char/1.cc: New test.
1891 * testsuite/27_io/basic_ios/fill/wchar_t/1.cc: New test.
1892
18932024-05-15 Jonathan Wakely <jwakely@redhat.com>
1894
1895 * include/std/variant (__detail::__variant::__compare): New
1896 function template.
1897 (operator==, operator!=, operator<, operator>, operator<=)
1898 (operator>=): Replace macro definition with handwritten function
1899 calling __detail::__variant::__compare.
1900 (operator<=>): Call __detail::__variant::__compare.
1901
19022024-05-15 Jonathan Wakely <jwakely@redhat.com>
1903
1904 PR libstdc++/89624
1905 * include/bits/atomic_base.h (memory_order): Use int as
1906 underlying type.
1907 * testsuite/29_atomics/atomic/89624.cc: New test.
1908
3700bd68
GA
19092024-05-14 Jonathan Wakely <jwakely@redhat.com>
1910
1911 PR libstdc++/115015
1912 * src/c++23/print.cc (__open_terminal(streambuf*)) [!__cpp_rtti]:
1913 Do not use dynamic_cast.
1914
19152024-05-14 Jonathan Wakely <jwakely@redhat.com>
1916
1917 * doc/xml/manual/strings.xml: Clarify that GCC 4.5 added
1918 std::string::shrink_to_fit.
1919 * doc/html/manual/strings.html: Regenerate.
1920
19212024-05-14 Jonathan Wakely <jwakely@redhat.com>
1922
1923 PR libstdc++/115063
1924 * include/std/stacktrace (basic_stacktrace::max_size): Fix typo
1925 in reference to _M_alloc member.
1926 * testsuite/19_diagnostics/stacktrace/stacktrace.cc: Check
1927 max_size() compiles.
1928
dd594aab
GA
19292024-05-13 Matthias Kretz <m.kretz@gsi.de>
1930
1931 PR libstdc++/114958
1932 * include/experimental/bits/simd.h (__as_vector): Return scalar
1933 simd as one-element vector. Return vector from single-vector
1934 fixed_size simd.
1935 (__vec_shuffle): New.
1936 (__extract_part): Adjust return type signature.
1937 (split): Use __extract_part for any split into non-fixed_size
1938 simds.
1939 (concat): If the return type stores a single vector, use
1940 __vec_shuffle (which calls __builtin_shufflevector) to produce
1941 the return value.
1942 * include/experimental/bits/simd_builtin.h
1943 (__shift_elements_right): Removed.
1944 (__extract_part): Return single elements directly. Use
1945 __vec_shuffle (which calls __builtin_shufflevector) to for all
1946 non-trivial cases.
1947 * include/experimental/bits/simd_fixed_size.h (__extract_part):
1948 Return single elements directly.
1949 * testsuite/experimental/simd/pr114958.cc: New test.
1950
d508d708
GA
19512024-05-07 Jonathan Wakely <jwakely@redhat.com>
1952
1953 * include/bits/unicode.h (_Unicode_view::_M_read_utf8): Ensure
1954 count of characters consumed is correct when the end of the
1955 input is reached unexpectedly.
1956 * testsuite/ext/unicode/view.cc: Test incomplete UTF-8
1957 sequences.
1958
19592024-05-07 Jonathan Wakely <jwakely@redhat.com>
1960
1961 PR libstdc++/114866
1962 * include/bits/out_ptr.h [!_GLIBCXX_HOSTED]: Don't refer to
1963 shared_ptr, __shared_ptr or __is_shred_ptr.
1964 * testsuite/20_util/headers/memory/114866.cc: New test.
1965
19662024-05-07 Jonathan Wakely <jwakely@redhat.com>
1967
1968 * include/std/variant (_VARIANT_RELATION_FUNCTION_TEMPLATE):
1969 Simplify.
1970
19712024-05-07 Jonathan Wakely <jwakely@redhat.com>
1972
1973 * include/bits/stl_pair.h (operator==): Add constraint.
1974 * include/bits/version.def (constrained_equality): Define.
1975 * include/bits/version.h: Regenerate.
1976 * include/std/optional: Define feature test macro.
1977 (__optional_rep_op_t): Use is_convertible_v instead of
1978 is_convertible.
1979 * include/std/tuple: Define feature test macro.
1980 (operator==, __tuple_cmp, operator<=>): Reimplement C++20
1981 comparisons using lambdas. Add constraints.
1982 * include/std/utility: Define feature test macro.
1983 * include/std/variant: Define feature test macro.
1984 (_VARIANT_RELATION_FUNCTION_TEMPLATE): Add constraints.
1985 (variant): Remove unnecessary friend declarations for comparison
1986 operators.
1987 * testsuite/20_util/optional/relops/constrained.cc: New test.
1988 * testsuite/20_util/pair/comparison_operators/constrained.cc:
1989 New test.
1990 * testsuite/20_util/tuple/comparison_operators/constrained.cc:
1991 New test.
1992 * testsuite/20_util/variant/relops/constrained.cc: New test.
1993 * testsuite/20_util/tuple/comparison_operators/overloaded.cc:
1994 Disable for C++20 and later.
1995 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
1996 Remove dg-error line for target c++20.
1997
19982024-05-07 Jonathan Wakely <jwakely@redhat.com>
1999
2000 * include/backward/auto_ptr.h: Use https for URL in comment.
2001 * include/bits/basic_ios.h: Likewise.
2002 * include/std/iostream: Likewise.
2003
20042024-05-07 Jonathan Wakely <jwakely@redhat.com>
2005
2006 * testsuite/util/testsuite_abi.cc: Update latest versions to
2007 new versions that should be used in future.
2008
20092024-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2010
2011 * src/Makefile.am [ENABLE_SYMVERS_SUN]
2012 (libstdc++-symbols.ver-sun): Pass $(libstdc___la_OBJECTS),
2013 $(libstdc___la_LIBADD) to make_sunver.pl unmodified.
2014 * src/Makefile.in: Regenerate.
2015
20162024-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2017
2018 * testsuite/lib/dg-options.exp (add_options_for_net_ts)
2019 <*-*-solaris2*>: Don't link with -lsocket -lnsl.
2020
3e3d115c
GA
20212024-05-03 Andreas Schwab <schwab@linux-m68k.org>
2022
2023 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
2024 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
2025
fd48e674
GA
20262024-05-01 Jonathan Wakely <jwakely@redhat.com>
2027
2028 PR libstdc++/114891
2029 * include/std/generator: Check feature test macro before using
2030 is_pointer_interconvertible_v.
2031
610415bb
GA
20322024-04-30 Christophe Lyon <christophe.lyon@linaro.org>
2033
2034 * testsuite/lib/gdb-test.exp (gdb-test): Fix regexp. Quote
2035 newlines in logs.
2036
42d2e2f5
GA
20372024-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2038
2039 Backported from master:
2040 2024-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2041
2042 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
2043 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
2044 Likewise.
2045 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
2046 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
2047 Likewise.
2048
20492024-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2050
2051 Backported from master:
2052 2024-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2053
2054 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
2055 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
2056 Likewise.
2057 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
2058 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
2059 Likewise.
2060
2781d809
GA
20612024-04-26 Jonathan Wakely <jwakely@redhat.com>
2062
2063 PR libstdc++/114863
2064 * include/std/format (__formatter_fp::format): Only use
2065 _M_localized for finite values.
2066 * testsuite/std/format/functions/format.cc: Check localized
2067 formatting of NaN and initiny.
2068
20692024-04-26 Jonathan Wakely <jwakely@redhat.com>
2070
2071 * doc/html/manual/status.html: Regenerate.
2072 * doc/xml/manual/status_cxx1998.xml: Adjust whitespace.
2073 * doc/xml/manual/status_cxx2011.xml: Likewise.
2074 * doc/xml/manual/status_cxx2014.xml: Likewise.
2075 * doc/xml/manual/status_cxx2017.xml: Likewise.
2076 * doc/xml/manual/status_cxx2020.xml: Likewise.
2077 * doc/xml/manual/status_cxx2023.xml: Likewise.
2078 * doc/xml/manual/status_cxxtr1.xml: Likewise.
2079 * doc/xml/manual/status_cxxtr24733.xml: Likewise.
2080
9353f6f4
GA
20812024-04-25 Jonathan Wakely <jwakely@redhat.com>
2082
2083 * scripts/run_doxygen: Rename man pages for nested types.
2084
20852024-04-25 Jonathan Wakely <jwakely@redhat.com>
2086
2087 * include/std/chrono (tzdb_list): Fix typo in Doxygen comment.
2088
20892024-04-25 Jonathan Wakely <jwakely@redhat.com>
2090
2091 * scripts/run_doxygen: Adjust sed pattern to match '\fR' for
2092 new man output that Doxygen 1.10 generates.
2093
20942024-04-25 Jonathan Wakely <jwakely@redhat.com>
2095
2096 * doc/doxygen/stdheader.cc (init_map): Add missing headers.
2097 * doc/doxygen/user.cfg.in (EXCLUDE): Exclude generated files for
2098 std::format and std::text_encoding.
2099
21002024-04-25 Jonathan Wakely <jwakely@redhat.com>
2101
2102 * include/std/variant: Add comment to #include.
2103
8c6ee63b
GA
21042024-04-22 Matthias Kretz <m.kretz@gsi.de>
2105
2106 PR libstdc++/114803
2107 * include/experimental/bits/simd_builtin.h
2108 (_SimdBase2::operator __vector_type_t): There is no __builtin()
2109 function in _SimdWrapper, instead use its conversion operator.
2110 * testsuite/experimental/simd/pr114803_vecbuiltin_cvt.cc: New
2111 test.
2112
21132024-04-22 Matthias Kretz <m.kretz@gsi.de>
2114
2115 * include/experimental/bits/simd.h: Ignore -Wnarrowing for
2116 arm_neon.h.
2117 (__int_for_sizeof): Replace tautological compare with checking
2118 for invalid template parameter value.
2119 * include/experimental/bits/simd_builtin.h (__extract_part):
2120 Remove tautological compare by combining two static_assert.
2121
21222024-04-22 Jakub Jelinek <jakub@redhat.com>
2123
2124 * testsuite/17_intro/names.cc (d, f): Undefine on s390*-linux*.
2125 * testsuite/17_intro/headers/c++1998/all_attributes.cc (packed): Don't
2126 define on s390.
2127 * testsuite/17_intro/headers/c++2011/all_attributes.cc (packed):
2128 Likewise.
2129 * testsuite/17_intro/headers/c++2014/all_attributes.cc (packed):
2130 Likewise.
2131 * testsuite/17_intro/headers/c++2017/all_attributes.cc (packed):
2132 Likewise.
2133 * testsuite/17_intro/headers/c++2020/all_attributes.cc (packed):
2134 Likewise.
2135
90ded751
GA
21362024-04-19 Jonathan Wakely <jwakely@redhat.com>
2137
2138 * include/bits/refwrap.h (operator<=>): Simplify constraints.
2139
21402024-04-19 Jonathan Wakely <jwakely@redhat.com>
2141
2142 PR libstdc++/114770
2143 * src/c++20/tzdb.cc (do_locate_zone): Support links that have
2144 another link as their target.
2145 * testsuite/std/time/tzdb/1.cc: Check that all zones and links
2146 can be found by locate_zone.
2147 * testsuite/std/time/tzdb/links.cc: New test.
2148
85c187b2
GA
21492024-04-18 Alexandre Oliva <oliva@adacore.com>
2150
2151 * testsuite/29_atomics/atomic/compare_exchange_padding.cc:
2152 Disable SRA.
2153
21542024-04-18 Alexandre Oliva <oliva@adacore.com>
2155
2156 * testsuite/20_util/from_chars/8.cc: Skip float128_t testing
2157 on aarch64-vxworks.
2158 * testsuite/20_util/to_chars/float128_c++23.cc: Xfail run on
2159 aarch64-vxworks.
2160
21612024-04-18 Alexandre Oliva <oliva@adacore.com>
2162
2163 * src/c++20/tzdb.cc (__gnu_cxx::zoneinfo_dir_override): Define
2164 on VxWorks non-RTP.
2165
69576bc0
GA
21662024-04-17 Jonathan Wakely <jwakely@redhat.com>
2167
2168 * include/std/ostream (println(ostream&)): Define new overload.
2169 * include/std/print (println(FILE*), println()): Likewise.
2170 * testsuite/27_io/basic_ostream/print/2.cc: New test.
2171 * testsuite/27_io/print/1.cc: Remove unused header.
2172 * testsuite/27_io/print/3.cc: New test.
2173
21742024-04-17 Matthias Kretz <m.kretz@gsi.de>
2175
2176 * include/experimental/bits/numeric_traits.h: Add include guard.
2177
21782024-04-17 Matthias Kretz <m.kretz@gsi.de>
2179
2180 PR libstdc++/114750
2181 * include/experimental/bits/simd_builtin.h
2182 (_SimdImplBuiltin::_S_load, _S_store): Fall back to copying
2183 scalars if the memory type cannot be vectorized for the target.
2184
9c7cf5d7
GA
21852024-04-16 Jonathan Wakely <jwakely@redhat.com>
2186
2187 * config/locale/dragonfly/numeric_members.cc: Fix typos in
2188 comments.
2189 * config/locale/gnu/numeric_members.cc: Likewise.
2190
e1d4c8e4
GA
21912024-04-15 Jonathan Wakely <jwakely@redhat.com>
2192
2193 * doc/xml/manual/abi.xml: Replace "<next>" with "14.1.0".
2194 * doc/html/manual/abi.html: Regenerate.
2195
21962024-04-15 Jonathan Wakely <jwakely@redhat.com>
2197
2198 * include/bits/refwrap.h (reference_wrapper): Add comparison
2199 operators as proposed by P2944R3.
2200 * include/bits/version.def (reference_wrapper): Define.
2201 * include/bits/version.h: Regenerate.
2202 * include/std/functional: Enable feature test macro.
2203 * testsuite/20_util/reference_wrapper/compare.cc: New test.
2204
22052024-04-15 Jonathan Wakely <jwakely@redhat.com>
2206
2207 PR libstdc++/113386
2208 * include/bits/stl_pair.h (operator==, operator<=>): Support
2209 heterogeneous comparisons, as per LWG 3865.
2210 * testsuite/20_util/pair/comparison_operators/lwg3865.cc: New
2211 test.
2212
22132024-04-15 Jonathan Wakely <jwakely@redhat.com>
2214
2215 PR libstdc++/93672
2216 * src/c++98/istream.cc (istream::ignore(streamsize, int_type)):
2217 Treat all negative delimiter values as eof().
2218 * testsuite/27_io/basic_istream/ignore/char/93672.cc: New test.
2219 * testsuite/27_io/basic_istream/ignore/wchar_t/93672.cc: New
2220 test.
2221
22222024-04-15 Andreas Schwab <schwab@suse.de>
2223
2224 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
2225
3319d1a4
GA
22262024-04-13 H.J. Lu <hjl.tools@gmail.com>
2227
2228 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
2229 Updated.
2230
d1a21a6f
GA
22312024-04-11 Jakub Jelinek <jakub@redhat.com>
2232
2233 * doc/xml/manual/abi.xml: Add latest library versions.
2234 * doc/html/manual/abi.html: Regenerate.
2235
22362024-04-11 Jakub Jelinek <jakub@redhat.com>
2237
2238 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
2239 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
2240 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
2241 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
2242 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
2243 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
2244 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
2245 * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: Update.
2246 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
2247
22482024-04-11 Jonathan Wakely <jwakely@redhat.com>
2249
2250 PR libstdc++/114692
2251 * config/abi/pre/gnu.ver (GLIBCXX_3.4.32): Move new exports for
2252 __basic_file::native_handle to ...
2253 (GLIBCXX_3.4.33): ... here. Adjust to not match wchar_t
2254 specialization, which isn't used.
2255 * testsuite/util/testsuite_abi.cc: Add GLIBCXX_3.4.33 and update
2256 latest version check.
2257
22582024-04-11 Jakub Jelinek <jakub@redhat.com>
2259
2260 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
2261 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
2262 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
2263 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
2264 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
2265 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
2266 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
2267 * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: Update.
2268 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
2269
0f3e76ee
GA
22702024-04-10 Jonathan Wakely <jwakely@redhat.com>
2271
2272 * testsuite/27_io/manipulators/extended/get_time/char/2.cc:
2273 Adjust input string so that it matches %a with or without a
2274 trailing period.
2275 * testsuite/std/time/year_month_day/io.cc: Adjust expected
2276 format for %x in the fr_FR locale.
2277
22782024-04-10 Jonathan Wakely <jwakely@redhat.com>
2279
2280 * src/c++17/fs_ops.cc (remove_all) [__FreeBSD__ || __DragonFly__]:
2281 Check for EMLINK as well as ELOOP.
2282 [__NetBSD__]: Check for EFTYPE as well as ELOOP.
2283
0753ae15
GA
22842024-04-09 Jonathan Wakely <jwakely@redhat.com>
2285
2286 PR libstdc++/114633
2287 * include/bits/chrono_io.h (_Parser::operator()) <'S'>: Use
2288 stream extraction if std::from_chars is not available.
2289
45532e3a
GA
22902024-04-08 Jonathan Wakely <jwakely@redhat.com>
2291
2292 PR libstdc++/114519
2293 * include/bits/unicode.h (_Utf8_view) [!__cpp_char8_t]: Define
2294 using char instead of char8_t.
2295 * testsuite/ext/unicode/view.cc: Use u8""sv literals to create
2296 string views, instead of std::u8string_view.
2297
22982024-04-08 Jonathan Wakely <jwakely@redhat.com>
2299
2300 * testsuite/20_util/integer_comparisons/equal_neg.cc: Use
2301 no-opts selector for errors that depend on -fchar8_t.
2302 * testsuite/20_util/integer_comparisons/greater_equal_neg.cc:
2303 Likewise.
2304 * testsuite/20_util/integer_comparisons/greater_neg.cc:
2305 Likewise.
2306 * testsuite/20_util/integer_comparisons/in_range_neg.cc:
2307 Likewise.
2308 * testsuite/20_util/integer_comparisons/less_equal_neg.cc:
2309 Likewise.
2310 * testsuite/20_util/integer_comparisons/less_neg.cc: Likewise.
2311 * testsuite/20_util/integer_comparisons/not_equal_neg.cc:
2312 Likewise.
2313 * testsuite/21_strings/basic_string/hash/hash_char8_t.cc: Skip
2314 if -fno-char8_t is used.
2315 * testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc:
2316 Likewise.
2317 * testsuite/27_io/basic_ostream/inserters_character/char/deleted.cc:
2318 Likewise.
2319 * testsuite/27_io/basic_ostream/inserters_character/wchar_t/deleted.cc:
2320 Likewise.
2321 * testsuite/27_io/filesystem/path/factory/u8path-depr.cc: Use
2322 char for u8 literal if char8_t is not available.
2323 * testsuite/27_io/headers/iosfwd/synopsis.cc: Check
2324 __cpp_char8_t.
2325 * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
2326 * testsuite/29_atomics/headers/atomic/types_std_c++20_neg.cc:
2327 Remove check for _GLIBCXX_USE_CHAR8_T.
2328
23292024-04-08 Jonathan Wakely <jwakely@redhat.com>
2330
2331 * testsuite/20_util/from_chars/1_neg.cc: Add char8_t cases,
2332 using a struct of that name if -fno-char8_t is active.
2333 * testsuite/20_util/from_chars/1_c++20_neg.cc: Removed.
2334
88ce7fbc
GA
23352024-04-03 Jonathan Wakely <jwakely@redhat.com>
2336
2337 PR libstdc++/104606
2338 * include/std/optional (operator<=>(const optional<T>&, const U&)):
2339 Reverse order of three_way_comparable_with template arguments.
2340 * testsuite/20_util/optional/relops/104606.cc: New test.
2341
a1e6798a
GA
23422024-04-02 Jonathan Wakely <jwakely@redhat.com>
2343
2344 PR libstdc++/114519
2345 * include/bits/unicode.h (_Utf8_view): Guard with check for
2346 char8_t being enabled.
2347 (__literal_encoding_is_unicode): Guard use of char8_t with check
2348 for it being enabled.
2349 * testsuite/std/format/functions/114519.cc: New test.
2350
23512024-04-02 Patrick Palka <ppalka@redhat.com>
2352
2353 * include/std/ranges (ranges::__detail::_Empty): Rename to ...
2354 (ranges::__detail::_Absent): ... this. Turn into a template
2355 parameterized by the absent type _Tp and discriminator _Disc.
2356 (ranges::__detail::__maybe_present_t): Add an optional
2357 discriminator parameter.
2358 (slide_view::_M_cached_begin): Pass a discriminator argument to
2359 __maybe_present_t.
2360 (slide_view::_M_cached_end): Likewise.
2361 * testsuite/std/ranges/adaptors/sizeof.cc: Verify the size of
2362 slide_view<V> is 3 instead 4 pointers.
2363
23642024-04-02 Jakub Jelinek <jakub@redhat.com>
2365
2366 * acinclude.m4: Fix duplicated words; file file -> file can.
2367 * configure.host: Fix duplicated words; the the -> the.
2368
4921bd8c
GA
23692024-03-29 Arsen Arsenović <arsen@aarsen.me>
2370
2371 * testsuite/24_iterators/range_generators/01.cc: Drop GCC
2372 Runtime Library Exception.
2373 * testsuite/24_iterators/range_generators/02.cc: Drop GCC
2374 Runtime Library Exception.
2375 * testsuite/24_iterators/range_generators/copy.cc: Drop GCC
2376 Runtime Library Exception.
2377 * testsuite/24_iterators/range_generators/except.cc: Drop GCC
2378 Runtime Library Exception.
2379 * testsuite/24_iterators/range_generators/subrange.cc: Drop GCC
2380 Runtime Library Exception.
2381 * testsuite/24_iterators/range_generators/synopsis.cc: Drop GCC
2382 Runtime Library Exception.
2383 * testsuite/24_iterators/range_generators/iter_deref_return.cc:
2384 Drop GCC Runtime Library Exception from the "You should have
2385 received a copy" paragraph.
2386
feafff04
GA
23872024-03-27 Matthias Kretz <m.kretz@gsi.de>
2388
2389 * include/experimental/bits/simd_x86.h (_S_masked_unary):
2390 Cast inputs < 16 bytes to 16 byte vectors before calling the
2391 right subtraction builtin. Before returning, truncate to the
2392 return vector type.
2393
23942024-03-27 Matthias Kretz <m.kretz@gsi.de>
2395
2396 * include/experimental/bits/simd_x86.h (_S_masked_unary): Call
2397 the 4- and 8-byte variants of __builtin_ia32_subp[ds] without
2398 rounding direction argument.
2399
24002024-03-27 Srinivas Yadav Singanaboina <vasu.srinivasvasu.14@gmail.com>
2401
2402 * include/Makefile.am: Add simd_sve.h.
2403 * include/Makefile.in: Add simd_sve.h.
2404 * include/experimental/bits/simd.h: Add new SveAbi.
2405 * include/experimental/bits/simd_builtin.h: Use
2406 __no_sve_deduce_t to support existing Neon Abi.
2407 * include/experimental/bits/simd_converter.h: Convert
2408 sequentially when sve is available.
2409 * include/experimental/bits/simd_detail.h: Define sve
2410 specific macro.
2411 * include/experimental/bits/simd_math.h: Fallback frexp
2412 to execute sequntially when sve is available, to handle
2413 fixed_size_simd return type that always uses sve.
2414 * include/experimental/simd: Include bits/simd_sve.h.
2415 * testsuite/experimental/simd/tests/bits/main.h: Enable
2416 testing for sve128, sve256, sve512.
2417 * include/experimental/bits/simd_sve.h: New file.
2418
4b8e7b57
GA
24192024-03-26 Arsen Arsenović <arsen@aarsen.me>
2420
2421 * include/std/generator (generator::_Iterator::operator*): Fix
2422 return type.
2423 * testsuite/24_iterators/range_generators/iter_deref_return.cc:
2424 New test.
2425
24262024-03-26 Arsen Arsenović <arsen@aarsen.me>
2427
2428 * include/std/generator: Fix _V badname.
2429
24302024-03-26 Jonathan Wakely <jwakely@redhat.com>
2431
2432 * testsuite/19_diagnostics/stacktrace/current.cc: Check for
2433 __cpp_lib_stacktrace instead of check for stacktrace ET.
2434 * testsuite/19_diagnostics/stacktrace/entry.cc: Likewise.
2435 * testsuite/19_diagnostics/stacktrace/hash.cc: Likewise.
2436 * testsuite/19_diagnostics/stacktrace/output.cc: Likewise.
2437 * testsuite/19_diagnostics/stacktrace/stacktrace.cc: Likewise.
2438 * testsuite/19_diagnostics/stacktrace/synopsis.cc: Likewise.
2439 * testsuite/19_diagnostics/stacktrace/version.cc: Likewise.
2440 * testsuite/23_containers/vector/debug/assign4_backtrace_neg.cc:
2441 Likewise.
2442 * testsuite/lib/libstdc++.exp (check_effective_target_stacktrace):
2443 Remove.
2444
24452024-03-26 Jonathan Wakely <jwakely@redhat.com>
2446
2447 * testsuite/lib/dg-options.exp (dg-require-cpp-feature-test):
2448 New proc.
2449 * testsuite/lib/libstdc++.exp (check_v3_target_cpp_feature_test):
2450 New proc.
2451 * testsuite/std/text_encoding/cons.cc: Use new directive to skip
2452 the test if the __cpp_lib_text_encoding feature test macro is
2453 not defined.
2454 * testsuite/std/text_encoding/requirements.cc: Likewise.
2455
7e6cdec4
GA
24562024-03-25 Jonathan Wakely <jwakely@redhat.com>
2457
2458 * testsuite/std/text_encoding/requirements.cc: #undef the
2459 correct macro.
2460
bb04a114
GA
24612024-03-23 Jonathan Wakely <jwakely@redhat.com>
2462
2463 * include/std/format (formatter): Disable specializations that
2464 would allow sequences of narrow characters to be formatted as
2465 wchar_t without conversion, as per LWG 3944.
2466 * testsuite/std/format/formatter/lwg3944.cc: New test.
2467
24682024-03-23 Jonathan Wakely <jwakely@redhat.com>
2469
2470 * include/bits/utility.h (__is_in_place_index_v): New variable
2471 template.
2472 * include/std/variant (__not_in_place_tag): Define in terms of
2473 variable templates not a class template.
2474
24752024-03-23 Jonathan Wakely <jwakely@redhat.com>
2476
2477 PR libstdc++/114400
2478 * include/std/string_view (operator==): Use std::type_identity_t
2479 in C++20 instead of our own __type_identity_t.
2480
e8985864
GA
24812024-03-22 Jonathan Wakely <jwakely@redhat.com>
2482
2483 PR libstdc++/114401
2484 * include/bits/hashtable.h (_Hashtable::_M_reinsert_node): Call
2485 release() on node handle instead of just zeroing its pointer.
2486 (_Hashtable::_M_reinsert_node_multi): Likewise.
2487 (_Hashtable::_M_merge_unique): Likewise.
2488 (_Hashtable::_M_merge_multi): Likewise.
2489 * include/bits/node_handle.h (_Node_handle_common::release()):
2490 New member function.
2491 (_Node_handle_common::_Optional_alloc::_M_empty): Remove
2492 unnecessary union member.
2493 (_Node_handle_common): Declare _Hashtable as a friend.
2494 * include/bits/stl_tree.h (_Rb_tree::_M_reinsert_node_unique):
2495 Call release() on node handle instead of just zeroing its
2496 pointer.
2497 (_Rb_tree::_M_reinsert_node_equal): Likewise.
2498 (_Rb_tree::_M_reinsert_node_hint_unique): Likewise.
2499 (_Rb_tree::_M_reinsert_node_hint_equal): Likewise.
2500 * testsuite/23_containers/multiset/modifiers/114401.cc: New test.
2501 * testsuite/23_containers/set/modifiers/114401.cc: New test.
2502 * testsuite/23_containers/unordered_multiset/modifiers/114401.cc: New test.
2503 * testsuite/23_containers/unordered_set/modifiers/114401.cc: New test.
2504
25052024-03-22 Jonathan Wakely <jwakely@redhat.com>
2506
2507 PR libstdc++/113841
2508 * include/bits/allocator.h (allocator<cv T>): Add default
2509 constructor to partial specializations for cv-qualified types.
2510 * include/bits/stl_vector.h (_Vector_impl::_Vector_impl()):
2511 Constrain so that it's only present if the allocator is default
2512 constructible.
2513 * include/bits/stl_bvector.h (_Bvector_impl::_Bvector_impl()):
2514 Likewise.
2515 * testsuite/23_containers/vector/cons/113841.cc: New test.
2516
25172024-03-22 Jonathan Wakely <jwakely@redhat.com>
2518
2519 * include/bits/stl_construct.h (destroy_at, construct_at): Guard
2520 with feature test macros instead of just __cplusplus.
2521
25222024-03-22 Jonathan Wakely <jwakely@redhat.com>
2523
2524 * include/bits/version.def (generator, tuple_like): Move earlier
2525 in the file.
2526 * include/bits/version.h: Regenerate.
2527
25282024-03-22 Jonathan Wakely <jwakely@redhat.com>
2529
2530 PR libstdc++/114394
2531 * include/std/functional (bind): Use __invoke_result_t instead
2532 of result_of::type.
2533 * include/std/type_traits (__invoke_result_t): New alias
2534 template.
2535 * testsuite/20_util/bind/ref_neg.cc: Adjust prune pattern.
2536
af376184
GA
25372024-03-20 François Dumont <fdumont@gcc.gnu.org>
2538
2539 * include/bits/version.def (null_iterators): Remove extra_cond.
2540 * include/bits/version.h: Regenerate.
2541
cc606a91
GA
25422024-03-19 Jonathan Wakely <jwakely@redhat.com>
2543
2544 PR libstdc++/114359
2545 * include/bits/random.tcc (binomial_distribution::param_type):
2546 Ensure arithmetic is done as type double.
2547 * testsuite/26_numerics/random/binomial_distribution/114359.cc: New test.
2548
25492024-03-19 Jonathan Wakely <jwakely@redhat.com>
2550
2551 PR libstdc++/101228
2552 * include/pstl/parallel_backend_tbb.h (TBB_SUPPRESS_DEPRECATED_MESSAGES):
2553 Define before including <tbb/task.h> then undef afterwards.
2554
25552024-03-19 Jonathan Wakely <jwakely@redhat.com>
2556
2557 * include/Makefile.am [MAINTAINER_MODE]: Add target to
2558 automatically update <bits/version.h>.
2559 * include/Makefile.in: Regenerate.
2560
25612024-03-19 Jonathan Wakely <jwakely@redhat.com>
2562
2563 * doc/xml/manual/build_hacking.xml: Document generated files.
2564 Update list of convenience libraries and sub-directories under
2565 the src directory.
2566 * doc/html/*: Regenerate.
2567
25682024-03-19 Jonathan Wakely <jwakely@redhat.com>
2569
2570 * include/bits/text_encoding-data.h: Regenerate.
2571 * include/bits/unicode-data.h: Regenerate.
2572 * scripts/gen_text_encoding_data.py: Fix header of generated
2573 file to name the correct script.
2574
25752024-03-19 Jonathan Wakely <jwakely@redhat.com>
2576
2577 * testsuite/util/pstl/test_utils.h: Fix typos in comments.
2578
25792024-03-19 Jonathan Wakely <jwakely@redhat.com>
2580
2581 PR libstdc++/114367
2582 * include/bits/stl_bvector.h (_M_allocate): Use allocator's
2583 construct function to begin lifetime of words.
2584
25852024-03-19 Iain Sandoe <iain@sandoe.co.uk>
2586
2587 * testsuite/lib/dg-options.exp (atomic_link_flags): Emit a -B
2588 option for the path to the uninstalled libatomic.
2589
25902024-03-19 Iain Sandoe <iain@sandoe.co.uk>
2591
2592 * testsuite/lib/libstdc++.exp (v3_target_compile): Instead of
2593 /dev/null, use a temporary file for test executables on Darwin.
2594
23409731
GA
25952024-03-18 François Dumont <fdumont@gcc.gnu.org>
2596
2597 * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_can_advance):
2598 Accept 0 offset advance on value-initialized iterator.
2599 * testsuite/23_containers/vector/debug/n3644.cc: New test case.
2600
26012024-03-18 François Dumont <fdumont@gcc.gnu.org>
2602
2603 * include/debug/safe_local_iterator.tcc
2604 (_Safe_local_iterator::_M_valid_range): Add _M_value_initialized and
2605 _M_singular checks.
2606 * testsuite/23_containers/unordered_set/debug/114316.cc: New test case.
2607
27d2e933
GA
26082024-03-17 François Dumont <fdumont@gcc.gnu.org>
2609
2610 PR libstdc++/114316
2611 * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range):
2612 First check if both iterators are value-initialized before checking if
2613 singular.
2614 * testsuite/23_containers/set/debug/114316.cc: New test case.
2615 * testsuite/23_containers/vector/debug/114316.cc: New test case.
2616
c1f6690b
GA
26172024-03-14 Jonathan Wakely <jwakely@redhat.com>
2618
2619 PR libstdc++/114325
2620 * include/std/format (_Scanner::_M_scan): Pass correct length to
2621 __to_chars_10_impl.
2622 * testsuite/std/format/functions/format.cc: Check negative
2623 integers with empty format-spec.
2624
26252024-03-14 Jonathan Wakely <jwakely@redhat.com>
2626
2627 * include/bits/stl_algo.h (find_end, all_of, none_of, any_of)
2628 (find_if_not, is_partitioned, partition_point, remove)
2629 (remove_if, unique, lower_bound, upper_bound, equal_range)
2630 (binary_search, includes, is_sorted, is_sorted_until, minmax)
2631 (minmax_element, is_permutation, clamp, find_if, find_first_of)
2632 (adjacent_find, count, count_if, search, search_n, min_element)
2633 (max_element): Add nodiscard attribute.
2634 * include/bits/stl_algobase.h (min, max, lower_bound, equal)
2635 (lexicographical_compare, lexicographical_compare_three_way)
2636 (mismatch): Likewise.
2637 * include/bits/stl_heap.h (is_heap, is_heap_until): Likewise.
2638 * testsuite/25_algorithms/equal/debug/1_neg.cc: Add dg-warning.
2639 * testsuite/25_algorithms/equal/debug/2_neg.cc: Likewise.
2640 * testsuite/25_algorithms/equal/debug/3_neg.cc: Likewise.
2641 * testsuite/25_algorithms/find_first_of/concept_check_1.cc:
2642 Likewise.
2643 * testsuite/25_algorithms/is_permutation/2.cc: Likewise.
2644 * testsuite/25_algorithms/lexicographical_compare/71545.cc:
2645 Likewise.
2646 * testsuite/25_algorithms/lower_bound/33613.cc: Likewise.
2647 * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc:
2648 Likewise.
2649 * testsuite/25_algorithms/lower_bound/debug/partitioned_neg.cc:
2650 Likewise.
2651 * testsuite/25_algorithms/lower_bound/debug/partitioned_pred_neg.cc:
2652 Likewise.
2653 * testsuite/25_algorithms/minmax/3.cc: Likewise.
2654 * testsuite/25_algorithms/search/78346.cc: Likewise.
2655 * testsuite/25_algorithms/search_n/58358.cc: Likewise.
2656 * testsuite/25_algorithms/unique/1.cc: Likewise.
2657 * testsuite/25_algorithms/unique/11480.cc: Likewise.
2658 * testsuite/25_algorithms/upper_bound/33613.cc: Likewise.
2659 * testsuite/25_algorithms/upper_bound/debug/partitioned_neg.cc:
2660 Likewise.
2661 * testsuite/25_algorithms/upper_bound/debug/partitioned_pred_neg.cc:
2662 Likewise.
2663 * testsuite/ext/concept_checks.cc: Likewise.
2664 * testsuite/ext/is_heap/47709.cc: Likewise.
2665 * testsuite/ext/is_sorted/cxx0x.cc: Likewise.
2666
26672024-03-14 xndcn <xndchn@gmail.com>
2668
2669 * include/bits/atomic_base.h (__atomic_float::__atomic_float(Fp)):
2670 Clear padding.
2671 * testsuite/29_atomics/atomic_float/compare_exchange_padding.cc:
2672 New test.
2673
26742024-03-14 Jonathan Wakely <jwakely@redhat.com>
2675
2676 PR libstdc++/66146
2677 * doc/xml/manual/status_cxx2011.xml: Remove mention of Linux in
2678 note about std::call_once.
2679 * doc/xml/manual/status_cxx2014.xml: Likewise.
2680 * doc/xml/manual/status_cxx2017.xml: Likewise.
2681 * doc/html/manual/status.html: Regenerate.
2682
26832024-03-14 Jonathan Wakely <jwakely@redhat.com>
2684
2685 * doc/xml/manual/status_cxx2023.xml: Update C++23 status table.
2686 * doc/html/manual/status.html: Regenerate.
2687 * include/bits/version.def: Fix typo in comment.
2688
746b71e2
GA
26892024-03-13 Jonathan Wakely <jwakely@redhat.com>
2690
2691 * testsuite/libstdc++-prettyprinters/cxx11.cc: Move custom_cat
2692 to namespace scope.
2693
26942024-03-13 Jonathan Wakely <jwakely@redhat.com>
2695
2696 * doc/xml/manual/debug.xml: Improve docs on debug builds and
2697 using ASan. Mention _GLIBCXX_ASSERTIONS. Reorder sections to put
2698 the most relevant ones first.
2699 * doc/xml/manual/using.xml: Add comma.
2700 * doc/html/*: Regenerate.
2701
27022024-03-13 Jonathan Wakely <jwakely@redhat.com>
2703
2704 * doc/xml/manual/debug.xml: Document that concept checking might
2705 be removed in future.
2706 * doc/xml/manual/extensions.xml: Likewise.
2707
3e05eb94
GA
27082024-03-09 Jonathan Wakely <jwakely@redhat.com>
2709
2710 PR libstdc++/114240
2711 * include/bits/chrono_io.h (_Parser::operator()): Assume
2712 hours(0) for a time_point, so that a time is not required
2713 to be present.
2714 * testsuite/std/time/parse/114240.cc: New test.
2715
27162024-03-09 Jonathan Wakely <jwakely@redhat.com>
2717
2718 PR libstdc++/114279
2719 * include/bits/chrono_io.h (_Parser::_M_is_leap_second): New
2720 data member.
2721 (_Parser::_M_reserved): Reserve padding bits for future use.
2722 (_Parser::operator()): Set _M_is_leap_second if %S reads 60s.
2723 (from_stream): Only allow _M_is_leap_second for utc_time and
2724 local_time. Adjust arithmetic for utc_time so that leap seconds
2725 are preserved. Use time_point_cast to convert to a possibly
2726 lower-precision result type.
2727 * testsuite/std/time/parse.cc: Move to ...
2728 * testsuite/std/time/parse/parse.cc: ... here.
2729 * testsuite/std/time/parse/114279.cc: New test.
2730
1e74c758
GA
27312024-03-07 Jonathan Wakely <jwakely@redhat.com>
2732
2733 * include/bits/chrono_io.h (_Parser::operator()): Use
2734 std::from_chars to parse fractional seconds.
2735
27362024-03-07 Jonathan Wakely <jwakely@redhat.com>
2737
2738 PR libstdc++/114244
2739 * include/bits/chrono_io.h (_Parser::operator()): Remove
2740 redundant uses of duration_cast. Use chrono::round to convert
2741 long double value to durations with integer representations.
2742 Check represenation type when deciding whether to skip parsing
2743 fractional seconds.
2744 * testsuite/20_util/duration/114244.cc: New test.
2745 * testsuite/20_util/duration/io.cc: Check that a floating-point
2746 duration with ratio<1> precision can be parsed.
2747
27482024-03-07 Jonathan Wakely <jwakely@redhat.com>
2749
2750 PR libstdc++/114103
2751 * include/bits/version.def (atomic_lock_free_type_aliases): Add
2752 extra_cond to check for at least one always-lock-free type.
2753 * include/bits/version.h: Regenerate.
2754 * include/std/atomic (atomic_signed_lock_free)
2755 (atomic_unsigned_lock_free): Only use always-lock-free types.
2756 * src/c++20/tzdb.cc (time_zone::_Impl::RulesCounter): Don't use
2757 atomic counter if lock-free aliases aren't available.
2758 * testsuite/29_atomics/atomic/lock_free_aliases.cc: XFAIL for
2759 targets without lock-free word-size compare_exchange.
2760
27612024-03-07 Jonathan Wakely <jwakely@redhat.com>
2762
2763 * include/std/chrono (__get_leap_second_info): Update expiry
2764 time for hardcoded list of leap seconds.
2765 * testsuite/std/time/tzdb/leap_seconds.cc: Update comment.
2766
27672024-03-07 Jonathan Wakely <jwakely@redhat.com>
2768
2769 * testsuite/23_containers/deque/allocator/default_init.cc: Use
2770 std::memset instead of __builtin_memset.
2771 * testsuite/23_containers/forward_list/allocator/default_init.cc:
2772 Likewise.
2773 * testsuite/23_containers/list/allocator/default_init.cc:
2774 Likewise.
2775 * testsuite/23_containers/map/allocator/default_init.cc:
2776 Likewise.
2777 * testsuite/23_containers/set/allocator/default_init.cc:
2778 Likewise.
2779 * testsuite/23_containers/unordered_map/allocator/default_init.cc:
2780 Likewise.
2781 * testsuite/23_containers/unordered_set/allocator/default_init.cc:
2782 Likewise.
2783 * testsuite/23_containers/vector/allocator/default_init.cc:
2784 Likewise.
2785 * testsuite/23_containers/vector/bool/allocator/default_init.cc:
2786 Likewise.
2787 * testsuite/29_atomics/atomic/compare_exchange_padding.cc:
2788 Likewise.
2789 * testsuite/util/atomic/wait_notify_util.h: Likewise.
2790
27912024-03-07 Jonathan Wakely <jwakely@redhat.com>
2792
2793 * include/std/format (_Arg_store::_S_make_elt): Add two
2794 static_assert checks to give more user-friendly error messages.
2795 * testsuite/lib/prune.exp (libstdc++-dg-prune): Prune another
2796 form of "in requirements with" note.
2797 * testsuite/std/format/arguments/args_neg.cc: Check for
2798 user-friendly diagnostics for non-formattable types.
2799 * testsuite/std/format/string_neg.cc: Likewise.
2800
264e3ad4
GA
28012024-03-04 Jonathan Wakely <jwakely@redhat.com>
2802
2803 PR libstdc++/114147
2804 * include/std/tuple (tuple::tuple(allocator_arg_t, const Alloc&)):
2805 Add missing overload of allocator-extended default constructor.
2806 (tuple<T1,T2>::tuple(allocator_arg_t, const Alloc&)): Likewise.
2807 * testsuite/20_util/tuple/cons/114147.cc: New test.
2808
b05f474c
GA
28092024-02-29 Jonathan Wakely <jwakely@redhat.com>
2810
2811 * include/std/format (basic_format_arg::handle::__maybe_const_t):
2812 Fix condition to check if const type is formattable.
2813 (basic_format_arg::handle::handle(T&)): Remove redundant
2814 static_assert.
2815 * testsuite/std/format/formatter/basic.cc: New test.
2816
28172024-02-29 Jonathan Wakely <jwakely@redhat.com>
2818
2819 PR libstdc++/113960
2820 * include/bits/stl_algobase.h (__is_byte_iter): Replace with ...
2821 (__memcmp_ordered_with): New concept.
2822 (lexicographical_compare_three_way): Use __memcmp_ordered_with
2823 instead of __is_byte_iter. Use correct length for memcmp.
2824 * testsuite/25_algorithms/lexicographical_compare_three_way/113960.cc:
2825 New test.
2826
fd52355a
GA
28272024-02-28 Jonathan Wakely <jwakely@redhat.com>
2828
2829 PR libstdc++/114152
2830 * include/experimental/scope (scope_exit scope_fail): Make
2831 destructor unconditionally noexcept.
2832 (scope_sucess): Fix noexcept-specifier.
2833 * testsuite/experimental/scopeguard/114152.cc: New test.
2834
28352024-02-28 Jonathan Wakely <jwakely@redhat.com>
2836
2837 * doc/xml/manual/appendix_contributing.xml: Change URLs to use
2838 https.
2839 * doc/html/manual/*: Regenerate.
2840
28412024-02-28 Jonathan Wakely <jwakely@redhat.com>
2842
2843 * doc/xml/manual/appendix_contributing.xml: Replace outdated
2844 info on ChangeLog entries.
2845 * doc/html/manual/appendix_contributing.html: Regenerate.
2846
28472024-02-28 Jonathan Wakely <jwakely@redhat.com>
2848
2849 * include/bits/stl_bvector.h (vector<bool, A>::at): Add
2850 nodiscard.
2851 * include/bits/stl_vector.h (vector<T, A>::at): Likewise.
2852 (operator==, operator<=>, operator<, operator!=, operator>)
2853 (operator<=, operator>=): Likewise.
2854 * include/debug/vector (operator==, operator<=>, operator<)
2855 (operator!=, operator>, operator<=, operator>=): Likewise.
2856 * testsuite/23_containers/vector/nodiscard.cc: New test.
2857
28582024-02-28 Jonathan Wakely <jwakely@redhat.com>
2859
2860 * include/bits/atomic_base.h (operator|, operator&): Add
2861 noexcept.
2862 * include/bits/fs_fwd.h (operator&, operator|, operator^)
2863 (operator~): Add nodiscard to overloads for copy_options, perms,
2864 perm_options, and directory_options.
2865 * include/bits/ios_base.h (operator&, operator|, operator^)
2866 (operator~): Add nodiscard and noexcept to overloads for
2867 _Ios_Fmtflags, _Ios_Openmode, and _Ios_Iostate.
2868 (operator|=, operator&=, operator^=): Add constexpr for C++14.
2869 * include/bits/regex_constants.h (operator&, operator|, operator^)
2870 (operator~): Add nodiscard and noexcept to overloads for
2871 syntax_option_type and match_flag_type.
2872 (operator|=, operator&=, operator^=): Add noexcept.
2873 * include/std/charconv (operator&, operator|, operator^)
2874 (operator~): Add nodiscard to overloads for chars_format.
2875 * include/std/future (operator&, operator|, operator^)
2876 (operator~): Add nodiscard for overloads for launch.
2877 (operator&=, operator|=, operator^=): Add constexpr for C++14.
2878 * include/experimental/bits/fs_fwd.h (operator&, operator|)
2879 (operator^, operator~): Add nodiscard to overloads for
2880 copy_options, perms, and directory_options.
2881 * testsuite/27_io/ios_base/types/fmtflags/bitmask_operators.cc:
2882 Add dg-warning for nodiscard warnings.
2883 * testsuite/27_io/ios_base/types/iostate/bitmask_operators.cc:
2884 Likewise.
2885 * testsuite/27_io/ios_base/types/openmode/bitmask_operators.cc:
2886 Likewise.
2887 * testsuite/27_io/filesystem/operations/bitmask_types.cc:
2888 New test.
2889
28902024-02-28 Jonathan Wakely <jwakely@redhat.com>
2891
2892 * testsuite/27_io/basic_ostream/print/1.cc: Check error
2893 handling.
2894 * testsuite/27_io/print/1.cc: Likewise.
2895
28962024-02-28 Jonathan Wakely <jwakely@redhat.com>
2897
2898 * include/std/ostream (vprint_unicode) [__CYGWIN__]: Use POSIX
2899 code path for Cygwin instead of Windows.
2900 * include/std/print (vprint_unicode) [__CYGWIN__]: Likewise.
2901 * testsuite/27_io/basic_ostream/print/1.cc: Only add -lstdc++exp
2902 for *-*-mingw* targets.
2903 * testsuite/27_io/print/1.cc: Likewise.
2904
29052024-02-28 Jonathan Wakely <jwakely@redhat.com>
2906
2907 * include/bits/alloc_traits.h: Include <bits/stl_iterator.h> for
2908 __make_move_if_noexcept_iterator.
2909
29102024-02-28 Jonathan Wakely <jwakely@redhat.com>
2911
2912 * include/std/stacktrace: Add nodiscard attribute to all
2913 functions without side effects.
2914
b4c88cc7
GA
29152024-02-20 François Dumont <fdumont@gcc.gnu.org>
2916
2917 * include/bits/stl_algobase.h (std::__niter_wrap): Add a call to
2918 std::__niter_base on res iterator.
2919
52490278
GA
29202024-02-19 Iain Sandoe <iain@sandoe.co.uk>
2921 Jonathan Wakely <jwakely@redhat.com>
2922
2923 PR target/112397
2924 * configure: Regenerate.
2925 * configure.ac: Detect if we are building for Darwin.
2926 * libsupc++/Makefile.am: If we are building for Darwin, then
2927 suppress hot/cold partitioning for the array allocators.
2928 * libsupc++/Makefile.in: Regenerated.
2929
c1d15713
GA
29302024-02-17 François Dumont <fdumont@gcc.gnu.org>
2931
2932 * include/bits/stl_algobase.h (std::__niter_base): Redefine the overload
2933 definitions for __gnu_debug::_Safe_iterator.
2934 * include/debug/safe_iterator.tcc (std::__niter_base): Adapt declarations.
2935
d70f155b
GA
29362024-02-16 Jonathan Wakely <jwakely@redhat.com>
2937
2938 PR libstdc++/87744
2939 PR libstdc++/113961
2940 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2941 line number.
2942
29432024-02-16 Jonathan Wakely <jwakely@redhat.com>
2944
2945 PR libstdc++/87744
2946 PR libstdc++/113931
2947 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2948 line number.
2949
29502024-02-16 Jonathan Wakely <jwakely@redhat.com>
2951
2952 * doc/xml/manual/debug_mode.xml: Update docs for backtraces.
2953 * doc/html/manual/debug_mode_using.html: Regenerate.
2954
29552024-02-16 Jonathan Wakely <jwakely@redhat.com>
2956
2957 * doc/xml/manual/test.xml: Fix spelling of <envar> elements.
2958 * doc/html/manual/test.html: Regenerate.
2959
5c30ecfa
GA
29602024-02-15 Jonathan Wakely <jwakely@redhat.com>
2961
2962 PR libstdc++/113806
2963 * include/std/bitset (bitset::operator>>=): Remove redundant
2964 call to _M_do_sanitize.
2965
29662024-02-15 Jonathan Wakely <jwakely@redhat.com>
2967
2968 PR libstdc++/113807
2969 * include/std/bitset (bitset::set()): Use memset instead of a
2970 loop over the individual words.
2971
29722024-02-15 Jonathan Wakely <jwakely@redhat.com>
2973
2974 PR libstdc++/113811
2975 * include/bits/stl_algo.h (__rotate): Use unsigned values for
2976 division.
2977
29782024-02-15 Jonathan Wakely <jwakely@redhat.com>
2979
2980 PR libstdc++/99117
2981 * include/std/valarray (valarray::operator=(const _Expr&)):
2982 Use loop to copy instead of __valarray_copy with _Array.
2983 * testsuite/26_numerics/valarray/99117.cc: New test.
2984
29852024-02-15 Jonathan Wakely <jwakely@redhat.com>
2986
2987 * src/c++20/tzdata.zi: Import new file from 2024a release.
2988 * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds)
2989 Update expiry date for leap seconds list.
2990
29912024-02-15 Jonathan Wakely <jwakely@redhat.com>
2992
2993 PR libstdc++/87744
2994 * include/bits/random.h [!__SIZEOF_INT128__] (_Select_uint_least_t):
2995 Define specialization for 64-bit generators with
2996 non-power-of-two modulus and large constants.
2997 (__mod): Use if constexpr unconditionally.
2998 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2999 line number.
3000 * testsuite/26_numerics/random/linear_congruential_engine/87744.cc:
3001 New test.
3002
5266f930
GA
30032024-02-14 Gerald Pfeifer <gerald@pfeifer.com>
3004
3005 * doc/xml/manual/status_cxx2023.xml: Fix C++ item p2442 to be
3006 version 1.
3007 * doc/html/manual/status.html: Regenerate.
3008
bf074ee4
GA
30092024-02-12 Paul Keir <paul.keir@uws.ac.uk>
3010
3011 PR libstdc++/113294
3012 * include/bits/basic_string.h (basic_string::operator=): Use
3013 _M_use_local_data() instead of _M_local_buf on the moved-from
3014 string.
3015 * testsuite/21_strings/basic_string/modifiers/constexpr.cc
3016 (test_move): New test.
3017
2523654a
GA
30182024-02-09 Ken Matsui <kmatsui@gcc.gnu.org>
3019
3020 * include/bits/c++config (_GLIBCXX_HAVE_BUILTIN_IS_SAME):
3021 Removed.
3022 * include/std/type_traits (is_same): Use
3023 _GLIBCXX_USE_BUILTIN_TRAIT instead of
3024 _GLIBCXX_HAVE_BUILTIN_IS_SAME.
3025 (is_same_v): Likewise.
3026
90586e27
GA
30272024-02-08 Jonathan Wakely <jwakely@redhat.com>
3028
3029 * include/bits/shared_ptr_atomic.h: Fix typo in comment.
3030
30312024-02-08 Jonathan Wakely <jwakely@redhat.com>
3032
3033 PR libstdc++/100147
3034 * include/bits/gslice.h (operator=): Add comment about lack of
3035 self-assignment check.
3036
30372024-02-08 Jonathan Wakely <jwakely@redhat.com>
3038
3039 * include/tr2/type_traits (bases, direct_bases): Use
3040 __has_builtin to check if required built-ins are supported.
3041
0535c203
GA
30422024-02-07 Patrick Palka <ppalka@redhat.com>
3043
3044 PR testsuite/113710
3045 PR c++/113814
3046 * include/bits/stl_pair.h (tuple_element): Add forward
3047 declaration of the partial specialization for tuple.
3048
3e4c4c5e
GA
30492024-02-06 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
3050
3051 * testsuite/lib/libstdc++.exp: Use "nul" for Windows, "/dev/null"
3052 for other environments.
3053
72319171
GA
30542024-02-04 Jonathan Wakely <jwakely@redhat.com>
3055
3056 * include/std/format (__format::_Spec::_M_reserved): Define new
3057 bit-field members to reserve padding bits for future extensions.
3058
30592024-02-04 Jonathan Wakely <jwakely@redhat.com>
3060
3061 * src/experimental/Makefile.am: Use libstdc++fsconvenience.a
3062 instead of libstdc++fs.a.
3063 * src/experimental/Makefile.in: Regenerate.
3064 * src/filesystem/Makefile.am: Build libstdc++fsconvenience.a as
3065 well.
3066 * src/filesystem/Makefile.in: Regenerate.
3067
30682024-02-04 Jonathan Wakely <jwakely@redhat.com>
3069
3070 * include/bits/text_encoding-data.h: Regenerate.
3071 * include/bits/unicode-data.h: Regenerate.
3072 * scripts/gen_text_encoding_data.py: Add copyright and license
3073 text to the output.
3074
4b7d4d8a
GA
30752024-02-02 Jonathan Wakely <jwakely@redhat.com>
3076
3077 PR libstdc++/113335
3078 * include/bits/std_function.h (__function_guide_helper): Add
3079 partial specialization for explicit object member functions, as
3080 per LWG 3617.
3081 * testsuite/20_util/function/cons/deduction_c++23.cc: Check
3082 explicit object member functions.
3083 * testsuite/30_threads/packaged_task/cons/deduction_c++23.cc:
3084 Likewise.
3085
30862024-02-02 Jonathan Wakely <jwakely@redhat.com>
3087
3088 * testsuite/17_intro/names.cc [_AIX]: Undefine "u".
3089
30902024-02-02 Jonathan Wakely <jwakely@redhat.com>
3091
3092 * include/experimental/internet (network_v6::network): Define.
3093 (network_v6::hosts): Finish implementing.
3094 (network_v6::to_string): Do not concatenate std::string to
3095 arbitrary std::basic_string specialization.
3096 * testsuite/experimental/net/internet/network/v6/cons.cc: New
3097 test.
3098
30992024-02-02 Jonathan Wakely <jwakely@redhat.com>
3100
3101 PR libstdc++/90276
3102 * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc: Fix
3103 comparison function to use less-than instead of equality.
3104
31052024-02-02 Jonathan Wakely <jwakely@redhat.com>
3106
3107 PR libstdc++/90276
3108 * testsuite/util/pstl/test_utils.h (reverse_invoker): Do not use
3109 perfect forwarding for iterator arguments.
3110
31112024-02-02 Jonathan Wakely <jwakely@redhat.com>
3112
3113 * include/std/string_view (basic_string_view(R&&)): Remove
3114 constraint that traits_type must be the same, as per LWG 3857.
3115 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc:
3116 Explicit conversion between different specializations should be
3117 allowed.
3118 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc:
3119 Likewise.
3120
31212024-02-02 Jonathan Wakely <jwakely@redhat.com>
3122
3123 * include/std/syncstream (basic_osyncstream::operator=): Remove
3124 noexcept, as per LWG 3867.
3125
31262024-02-02 Jonathan Wakely <jwakely@redhat.com>
3127
3128 * include/std/generator (promise_type::yield_value): Remove
3129 noexcept from fourth overload, as per LWG 3894.
3130
e2554540
GA
31312024-02-01 Patrick Palka <ppalka@redhat.com>
3132
3133 PR libstdc++/113309
3134 PR libstdc++/109203
3135 * include/bits/ranges_util.h (__detail::__pair_like): Don't
3136 define in C++23 mode.
3137 (__detail::__pair_like_convertible_from): Adjust as per P2165R4.
3138 (__detail::__is_subrange<subrange>): Moved from <ranges>.
3139 (__detail::__is_tuple_like_v<subrange>): Likewise.
3140 * include/bits/stl_iterator.h: Include <bits/utility.h> for
3141 C++23.
3142 (__different_from): Move to <concepts>.
3143 (__iter_key_t): Adjust for C++23 as per P2165R4.
3144 (__iter_val_t): Likewise.
3145 * include/bits/stl_pair.h (pair, array): Forward declare.
3146 (get): Forward declare all overloads relevant to P2165R4
3147 tuple-like constructors.
3148 (__is_tuple_v): Define for C++23.
3149 (__is_tuple_like_v): Define for C++23.
3150 (__tuple_like): Define for C++23 as per P2165R4.
3151 (__pair_like): Define for C++23 as per P2165R4.
3152 (__eligibile_tuple_like): Define for C++23.
3153 (__eligibile_pair_like): Define for C++23.
3154 (pair::_S_constructible_from_pair_like): Define for C++23.
3155 (pair::_S_convertible_from_pair_like): Define for C++23.
3156 (pair::_S_dangles_from_pair_like): Define for C++23.
3157 (pair::pair): Define overloads taking a tuple-like type for
3158 C++23 as per P2165R4.
3159 (pair::_S_assignable_from_tuple_like): Define for C++23.
3160 (pair::_S_const_assignable_from_tuple_like): Define for C++23.
3161 (pair::operator=): Define overloads taking a tuple-like type for
3162 C++23 as per P2165R4.
3163 * include/bits/utility.h (ranges::__detail::__is_subrange):
3164 Moved from <ranges>.
3165 * include/bits/version.def (tuple_like): Define for C++23.
3166 * include/bits/version.h: Regenerate.
3167 * include/std/concepts (__different_from): Moved from
3168 <bits/stl_iterator.h>.
3169 (ranges::__swap::__adl_swap): Clarify which __detail namespace.
3170 * include/std/map (__cpp_lib_tuple_like): Define C++23.
3171 * include/std/ranges (__detail::__is_subrange): Moved to
3172 <bits/utility.h>.
3173 (__detail::__is_subrange<subrange>): Moved to <bits/ranges_util.h>
3174 (__detail::__has_tuple_element): Adjust for C++23 as per P2165R4.
3175 (__detail::__tuple_or_pair): Remove as per P2165R4. Replace all
3176 uses with plain tuple as per P2165R4.
3177 * include/std/tuple (__cpp_lib_tuple_like): Define for C++23.
3178 (__tuple_like_tag_t): Define for C++23.
3179 (__tuple_cmp): Forward declare for C++23.
3180 (_Tuple_impl::_Tuple_impl): Define overloads taking
3181 __tuple_like_tag_t and a tuple-like type for C++23.
3182 (_Tuple_impl::_M_assign): Likewise.
3183 (tuple::__constructible_from_tuple_like): Define for C++23.
3184 (tuple::__convertible_from_tuple_like): Define for C++23.
3185 (tuple::__dangles_from_tuple_like): Define for C++23.
3186 (tuple::tuple): Define overloads taking a tuple-like type for
3187 C++23 as per P2165R4.
3188 (tuple::__assignable_from_tuple_like): Define for C++23.
3189 (tuple::__const_assignable_from_tuple_like): Define for C++23.
3190 (tuple::operator=): Define overloads taking a tuple-like type
3191 for C++23 as per P2165R4.
3192 (tuple::__tuple_like_common_comparison_category): Define for C++23.
3193 (tuple::operator<=>): Define overload taking a tuple-like type
3194 for C++23 as per P2165R4.
3195 (array, get): Forward declarations moved to <bits/stl_pair.h>.
3196 (tuple_cat): Constrain with __tuple_like for C++23 as per P2165R4.
3197 (apply): Likewise.
3198 (make_from_tuple): Likewise.
3199 (__tuple_like_common_reference): Define for C++23.
3200 (basic_common_reference): Adjust as per P2165R4.
3201 (__tuple_like_common_type): Define for C++23.
3202 (common_type): Adjust as per P2165R4.
3203 * include/std/unordered_map (__cpp_lib_tuple_like): Define for
3204 C++23.
3205 * include/std/utility (__cpp_lib_tuple_like): Define for C++23.
3206 * testsuite/std/ranges/zip/1.cc (test01): Adjust to handle pair
3207 and 2-tuple interchangeably.
3208 (test05): New test.
3209 * testsuite/20_util/pair/p2165r4.cc: New test.
3210 * testsuite/20_util/tuple/p2165r4.cc: New test.
3211
32122024-02-01 Patrick Palka <ppalka@redhat.com>
3213
3214 * include/bits/stl_pair.h (pair::_S_const_assignable): Define,
3215 factored out from ...
3216 (pair::operator=): ... the constraints of the const overloads.
3217
32182024-02-01 Jonathan Wakely <jwakely@redhat.com>
3219
3220 * include/bits/version.tpl: Do not use def-file-line for each
3221 macro being defined.
3222 * include/bits/version.h: Regenerate.
3223
32242024-02-01 Jonathan Wakely <jwakely@redhat.com>
3225
3226 * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Adjust
3227 dg-error pattern.
3228 * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc:
3229 Likewise.
3230 * testsuite/25_algorithms/equal/debug/constexpr_neg.cc:
3231 Likewise.
3232 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc:
3233 Likewise.
3234 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc:
3235 Likewise.
3236 * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc:
3237 Likewise.
3238 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc:
3239 Likewise.
3240 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc:
3241 Likewise.
3242 * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc:
3243 Likewise.
3244
32452024-02-01 Jonathan Wakely <jwakely@redhat.com>
3246
3247 * include/experimental/internet (network_v4::to_string()):
3248 Remove lambda and use of resize_and_overwrite.
3249
dd3455f6
GA
32502024-01-31 Jonathan Wakely <jwakely@redhat.com>
3251
3252 * acinclude.m4 (GLIBCXX_CHECK_TEXT_ENCODING): Use <xlocale.h> if
3253 needed for newlocale.
3254 * configure: Regenerate.
3255 * src/c++26/text_encoding.cc: Use <xlocale.h>.
3256
32572024-01-31 Jonathan Wakely <jwakely@redhat.com>
3258 Ewan Higgs <ewan.higgs@gmail.com>
3259
3260 * include/bits/text_encoding-data.h: Regenerate.
3261 * scripts/gen_text_encoding_data.py: Add extra_aliases dict
3262 containing "ASCII".
3263 * testsuite/std/text_encoding/cons.cc: Check "ascii" is known.
3264
32652024-01-31 Jonathan Wakely <jwakely@redhat.com>
3266
3267 * doc/xml/manual/using.xml: Update tables of supported headers.
3268 * doc/html/*: Regenerate.
3269
32702024-01-31 Jonathan Wakely <jwakely@redhat.com>
3271
3272 * include/std/bitset (_Base_bitset::_M_do_to_ullong): Avoid
3273 -Wshift-count-overflow warning.
3274
097ddd55
GA
32752024-01-30 Jonathan Wakely <jwakely@redhat.com>
3276
3277 * testsuite/std/time/clock/gps/io.cc: Fix expected result in
3278 assertion and call test_format() from main.
3279
f0706819
GA
32802024-01-29 François Dumont <fdumont@gcc.gnu.org>
3281
3282 * doc/xml/manual/debug_mode.xml: Link against libstdc++exp.a to use
3283 _GLIBCXX_DEBUG_BACKTRACE macro.
3284
2a9637b2
GA
32852024-01-24 Huanghui Nie <nnnjkk@gmail.com>
3286 Théo Papadopoulo <papadopoulo@gmail.com>
3287
3288 * include/bits/hashtable.h (_Hahstable<>::_M_remove_bucket_begin): Remove
3289 _M_before_begin check and cleanup implementation.
3290
e2d1f858
GA
32912024-01-22 Jonathan Wakely <jwakely@redhat.com>
3292
3293 * testsuite/std/time/clock/file/io.cc: Fix expected result in
3294 assertion and call test_format() from main.
3295
d9ed3ac2
GA
32962024-01-21 Jonathan Wakely <jwakely@redhat.com>
3297
3298 PR libstdc++/113500
3299 * include/bits/chrono_io.h (__formatter_chrono::_M_S): Fix
3300 printing of subseconds with floating-point rep.
3301 (__formatter_chrono::_M_format_to_ostream): Do not write
3302 time_point specializations directly to the ostream.
3303 (formatter<chrono::sys_time<D>, C>::parse): Do not allow an
3304 empty chrono-spec if the type fails to meet the constraints for
3305 writing to an ostream with operator<<.
3306 * testsuite/std/time/clock/file/io.cc: Check formatting
3307 non-integral times with empty chrono-specs.
3308 * testsuite/std/time/clock/gps/io.cc: Likewise.
3309 * testsuite/std/time/clock/utc/io.cc: Likewise.
3310 * testsuite/std/time/hh_mm_ss/io.cc: Likewise.
3311
33122024-01-21 Jonathan Wakely <jwakely@redhat.com>
3313
3314 * include/bits/chrono.h (__file_clock::from_sys)
3315 (__file_clock::to_sys, __file_clock::_S_from_sys)
3316 (__file_clock::_S_to_sys): Use common_type for return type.
3317 * testsuite/std/time/clock/file/members.cc: Check round trip
3318 conversion for time with lower precision that seconds.
3319
33202024-01-21 Jonathan Wakely <jwakely@redhat.com>
3321
3322 PR libstdc++/113512
3323 * include/std/format (__formatter_fp::format): Fix logic for
3324 alternate forms.
3325 * testsuite/std/format/functions/format.cc: Check buggy cases of
3326 alternate forms with g presentation type.
3327
11a5f26c
GA
33282024-01-20 Marek Polacek <polacek@redhat.com>
3329
3330 PR c++/111410
3331 * include/std/ranges: Add #pragma to disable -Wdangling-reference with
3332 std::ranges::views::__adaptor::operator|.
3333
c2544854
GA
33342024-01-19 Jonathan Wakely <jwakely@redhat.com>
3335
3336 * include/std/format (_Spec::_M_parse_fill_and_align): Do not
3337 use CTAD for _Utf32_view.
3338
33392024-01-19 Jonathan Wakely <jwakely@redhat.com>
3340
3341 PR libstdc++/108822
3342 * include/std/tuple (__glibcxx_no_dangling_refs) [C++17]: Fix
3343 wrong fold-operator.
3344 * testsuite/20_util/tuple/dangling_ref.cc: Check tuples with one
3345 element and three elements. Check allocator-extended
3346 constructors.
3347
33482024-01-19 Patrick Palka <ppalka@redhat.com>
3349
3350 * include/precompiled/stdc++.h [_GLIBCXX_HOSTED]: Include
3351 <print> and <text_encoding> for C++23 and C++26 respectively.
3352
bb0f96ab
GA
33532024-01-18 Patrick Palka <ppalka@redhat.com>
3354
3355 * include/bits/stl_pair.h [__cplusplus > 202002L]:
3356 Guard P2321R2 changes with __glibcxx_ranges_zip instead.
3357
33582024-01-18 Patrick Palka <ppalka@redhat.com>
3359
3360 * include/std/tuple [__cplusplus > 202002L]: Guard P2321R2
3361 changes with __cpp_lib_ranges_zip instead.
3362
33632024-01-18 Patrick Palka <ppalka@redhat.com>
3364
3365 PR libstdc++/109536
3366 * include/debug/safe_base.h (_Safe_sequence_base::_M_swap):
3367 Remove _GLIBCXX20_CONSTEXPR from non-inline member function.
3368 * include/debug/safe_iterator.h
3369 (_GLIBCXX20_CONSTEXPR_NON_LITERAL_SCOPE_BEGIN): Define.
3370 (_GLIBCXX20_CONSTEXPR_NON_LITERAL_SCOPE_END): Define.
3371 (_Safe_iterator::operator=): Use them around the code path that
3372 defines a variable of type __gnu_cxx::__scoped_lock.
3373 (_Safe_iterator::operator++): Likewise.
3374 (_Safe_iterator::operator--): Likewise.
3375 (_Safe_iterator::operator+=): Likewise.
3376 (_Safe_iterator::operator-=): Likewise.
3377 * testsuite/23_containers/vector/element_access/constexpr.cc
3378 (test_iterators): Test more iterator operations.
3379 * testsuite/23_containers/vector/bool/element_access/constexpr.cc
3380 (test_iterators): Likewise.
3381 * testsuite/std/ranges/adaptors/all.cc (test08) [_GLIBCXX_DEBUG]:
3382 Remove.
3383
33842024-01-18 Jonathan Wakely <jwakely@redhat.com>
3385
3386 * include/bits/unicode.h (__charset_alias_match): Initialize
3387 __var_a and __var_b.
3388
33892024-01-18 Jonathan Wakely <jwakely@redhat.com>
3390
3391 PR libstdc++/113450
3392 * testsuite/std/format/functions/format.cc: Use signed char
3393 instead of int8_t.
3394
2c213ac9
GA
33952024-01-17 Jonathan Wakely <jwakely@redhat.com>
3396
3397 PR libstdc++/113318
3398 * acinclude.m4 (GLIBCXX_CONFIGURE): Add c++26 directory.
3399 (GLIBCXX_CHECK_TEXT_ENCODING): Define.
3400 * config.h.in: Regenerate.
3401 * configure: Regenerate.
3402 * configure.ac: Use GLIBCXX_CHECK_TEXT_ENCODING.
3403 * include/Makefile.am: Add new headers.
3404 * include/Makefile.in: Regenerate.
3405 * include/bits/locale_classes.h (locale::encoding): Declare new
3406 member function.
3407 * include/bits/unicode.h (__charset_alias_match): New function.
3408 * include/bits/text_encoding-data.h: New file.
3409 * include/bits/version.def (text_encoding): Define.
3410 * include/bits/version.h: Regenerate.
3411 * include/std/text_encoding: New file.
3412 * src/Makefile.am: Add new subdirectory.
3413 * src/Makefile.in: Regenerate.
3414 * src/c++26/Makefile.am: New file.
3415 * src/c++26/Makefile.in: New file.
3416 * src/c++26/text_encoding.cc: New file.
3417 * src/experimental/Makefile.am: Include c++26 convenience
3418 library.
3419 * src/experimental/Makefile.in: Regenerate.
3420 * python/libstdcxx/v6/printers.py (StdTextEncodingPrinter): New
3421 printer.
3422 * scripts/gen_text_encoding_data.py: New file.
3423 * testsuite/22_locale/locale/encoding.cc: New test.
3424 * testsuite/ext/unicode/charset_alias_match.cc: New test.
3425 * testsuite/std/text_encoding/cons.cc: New test.
3426 * testsuite/std/text_encoding/members.cc: New test.
3427 * testsuite/std/text_encoding/requirements.cc: New test.
3428
34292024-01-17 Jonathan Wakely <jwakely@redhat.com>
3430
3431 * include/bits/unicode.h (_Grapheme_cluster_view): Require view.
3432 Do not use CTAD for _Utf32_view.
3433 (__format_width, __truncate): Do not use CTAD.
3434 (enable_borrowed_range<_Utf_view<T, R>>): Define specialization.
3435 (enable_borrowed_range<_Grapheme_cluster_view<R>>): Likewise.
3436
34372024-01-17 Patrick Palka <ppalka@redhat.com>
3438
3439 * include/std/ranges (views::_CartesianProduct::operator()):
3440 Adjust identity case as per P2540R1.
3441 * testsuite/std/ranges/cartesian_product/1.cc (test01):
3442 Adjust expected result of the identity case.
3443
be035ec4
GA
34442024-01-15 Patrick Palka <ppalka@redhat.com>
3445
3446 * include/std/variant (__detail::__variant::_Variadic_union):
3447 Add bool __trivially_destructible template parameter.
3448 (__detail::__variant::_Variadic_union::~_Variadic_union):
3449 Use __trivially_destructible in constraints instead.
3450 (__detail::__variant::_Variant_storage): Pass
3451 __trivially_destructible value to _Variadic_union.
3452
34532024-01-15 Patrick Palka <ppalka@redhat.com>
3454
3455 * include/bits/stl_iterator.h (const_iterator): Define conversion
3456 operators as per P2836R1.
3457 * include/bits/version.def (ranges_as_const): Update value.
3458 * include/bits/version.h: Regenerate.
3459 * testsuite/24_iterators/const_iterator/1.cc (test04): New test.
3460 * testsuite/std/ranges/adaptors/as_const/1.cc: Adjust expected
3461 value of __cpp_lib_ranges_as_const.
3462 * testsuite/std/ranges/version_c++23.cc: Likewise.
3463
34642024-01-15 Jonathan Wakely <jwakely@redhat.com>
3465
3466 PR libstdc++/108822
3467 * include/std/tuple (__assignable, __is_nothrow_assignable):
3468 Move pre-C++20 definitions adjacent to their use.
3469
34702024-01-15 Jonathan Wakely <jwakely@redhat.com>
3471
3472 PR testsuite/113366
3473 * include/std/format (basic_format_arg): Use __formattable
3474 variable template instead of __format::__formattable_with
3475 concept.
3476
34772024-01-15 Jonathan Wakely <jwakely@redhat.com>
3478
3479 * src/c++20/tzdata.zi: Import new file from 2023d release.
3480 * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds)
3481 Update expiry date for leap seconds list.
3482
ed5bf208
GA
34832024-01-13 Jonathan Wakely <jwakely@redhat.com>
3484
3485 PR libstdc++/108822
3486 * include/std/tuple (tuple): Add checks for dangling references.
3487 Reimplement constraints and constant expressions using C++20
3488 features.
3489 * include/std/type_traits [C++20]
3490 (__is_implicitly_default_constructible_v): Define.
3491 (__is_implicitly_default_constructible): Use variable template.
3492 * testsuite/20_util/tuple/dangling_ref.cc: New test.
3493
34942024-01-13 Patrick Palka <ppalka@redhat.com>
3495
3496 PR libstdc++/108827
3497 PR libstdc++/111327
3498 * include/bits/version.def (bind_back): Define.
3499 * include/bits/version.h: Regenerate.
3500 * include/std/functional (_Bind_back): Define for C++23.
3501 (bind_back): Likewise.
3502 * testsuite/20_util/function_objects/bind_back/1.cc: New test
3503 (adapted from corresponding bind_front test).
3504 * testsuite/20_util/function_objects/bind_back/111327.cc: Likewise.
3505
35062024-01-13 Patrick Palka <ppalka@redhat.com>
3507
3508 * include/std/functional (_Bind_front): Remove =default special
3509 member function declarations.
3510 (_Bind_front::operator()): Implement using C++23 deducing this
3511 when available.
3512 * testsuite/20_util/function_objects/bind_front/111327.cc:
3513 Adjust testcase to expect better errors in C++23 mode.
3514
35152024-01-13 Patrick Palka <ppalka@redhat.com>
3516
3517 * include/std/ranges (views::__adaptor::operator|): Perform
3518 perfect forwarding of arguments.
3519 (views::__adaptor::_RangeAdaptor::operator()): Pass dummy
3520 first argument to _Partial.
3521 (views::__adaptor::_Partial::_Partial): Likewise. Add dummy
3522 first parameter.
3523 (views::__adaptor::_Pipe::_Pipe): Perform perfect forwarding
3524 of arguments.
3525 (to): Pass dummy first argument to _Partial.
3526
444a31f3
GA
35272024-01-13 Jonathan Wakely <jwakely@redhat.com>
3528
3529 PR libstdc++/107466
3530 * include/bits/random.tcc (subtract_with_carry_engine::seed):
3531 Implement proposed resolution of LWG 4014.
3532 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
3533 line number.
3534 * testsuite/26_numerics/random/subtract_with_carry_engine/cons/lwg3809.cc:
3535 Check for expected result of 64-bit engine with seed that
3536 doesn't fit in 32-bits.
3537
35382024-01-12 Jonathan Wakely <jwakely@redhat.com>
3539
3540 PR libstdc++/113320
3541 * include/std/format (__format::_Runtime_format_string): Add
3542 constructor and disable copy operations.
3543 (basic_format_string(_Runtime_format_string)): Add noexcept and
3544 take parameter by value not rvalue reference.
3545 (runtime_format): Add noexcept.
3546 * testsuite/std/format/runtime_format.cc: Check noexcept. Check
3547 that construction is only possible from prvalues, not xvalues.
3548
35492024-01-12 Jonathan Wakely <jwakely@redhat.com>
3550
3551 PR libstdc++/105505
3552 * include/bits/stl_pair.h (pair::pair(U1&&, U2&&)) [C++23]: Add
3553 default template arguments, as per P1951R1.
3554 * testsuite/20_util/pair/cons/default_tmpl_args.cc: New test.
3555
35562024-01-12 Jonathan Wakely <jwakely@redhat.com>
3557
3558 * include/std/format (__format::_Arg_store): Fix PR number in
3559 comment. Simplify preprocessor code.
3560
1a80e955
GA
35612024-01-11 Jonathan Wakely <jwakely@redhat.com>
3562
3563 * doc/xml/manual/evolution.xml: Fix spelling.
3564 * doc/html/manual/api.html: Regenerate.
3565
35662024-01-11 Jonathan Wakely <jwakely@redhat.com>
3567
3568 * doc/xml/manual/evolution.xml: Document addition of
3569 libstdc++exp.a.
3570 * doc/html/*: Regenerate.
3571
35722024-01-11 Marcus Haehnel <marcus.haehnel@kernkonzept.com>
3573
3574 * libsupc++/eh_unex_handler.cc: Adjust definition type to
3575 declaration.
3576
35772024-01-11 Michael Levine <mlevine55@bloomberg.net>
3578
3579 * include/std/ranges (__glibcxx_want_ranges_iota): Remove
3580 duplicate definition.
3581
35822024-01-11 François Dumont <fdumont@gcc.gnu.org>
3583
3584 PR libstdc++/112477
3585 * src/c++11/debug.cc
3586 (_Safe_iterator_base::_M_attach): Reset _M_version to 0 if attaching to null
3587 sequence.
3588 (_Safe_iterator_base::_M_attach_single): Likewise.
3589 (_Safe_local_iterator_base::_M_attach): Likewise.
3590 (_Safe_local_iterator_base::_M_attach_single): Likewise.
3591 * testsuite/23_containers/map/debug/112477.cc: New test case.
3592
35932024-01-11 Patrick Palka <ppalka@redhat.com>
3594
3595 * include/bits/move.h (__like_t): Define in C++23 mode.
3596 * include/std/ranges (views::__adaptor::Partial::operator()):
3597 Implement using C++23 deducing this when available.
3598 (views::__adaptor::_Pipe::operator()): Likewise.
3599 * testsuite/std/ranges/adaptors/100577.cc: Adjust testcase to
3600 accept new "no match for call" errors issued in C++23 mode.
3601 * testsuite/std/ranges/adaptors/lazy_split_neg.cc: Likewise.
3602
36032024-01-11 Jonathan Wakely <jwakely@redhat.com>
3604
3605 * python/libstdcxx/v6/printers.py (StdIntegralConstantPrinter):
3606 Add printer for std::integral_constant.
3607 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test it.
3608
36092024-01-11 Jonathan Wakely <jwakely@redhat.com>
3610
3611 PR libstdc++/113258
3612 * libsupc++/new_opa.cc: Prefer to use posix_memalign if
3613 available.
3614
36152024-01-11 Ken Matsui <kmatsui@gcc.gnu.org>
3616
3617 * src/filesystem/ops-common.h (stat_type): Use using.
3618
36192024-01-11 Ken Matsui <kmatsui@gcc.gnu.org>
3620
3621 PR libstdc++/113250
3622 * src/c++17/fs_ops.cc (fs::equivalent): Use || instead of &&.
3623 * src/filesystem/ops.cc (fs::equivalent): Likewise.
3624 * testsuite/27_io/filesystem/operations/equivalent.cc: Handle
3625 error codes.
3626 * testsuite/experimental/filesystem/operations/equivalent.cc:
3627 Likewise.
3628
36292024-01-11 Ken Matsui <kmatsui@gcc.gnu.org>
3630
3631 * include/std/type_traits (is_compound): Do not use __not_.
3632 (is_compound_v): Use is_fundamental_v instead.
3633
45af8962
GA
36342024-01-11 Patrick Palka <ppalka@redhat.com>
3635
3636 * include/bits/utility.h (_Nth_type): Use
3637 _GLIBCXX_USE_BUILTIN_TRAIT instead of __has_builtin.
3638
73ce73fc
GA
36392024-01-09 Jonathan Wakely <jwakely@redhat.com>
3640
3641 * include/bits/unicode-data.h: Regenerate.
3642 * include/bits/unicode.h (_Utf_iterator::operator++()): Fix off
3643 by one error.
3644 (__incb_property): Add missing check for values before the
3645 first edge.
3646 (__is_extended_pictographic): Invert return values to fix
3647 copy&pasted logic.
3648 (_Grapheme_cluster_view::_Iterator): Remove second iterator
3649 member and find end of cluster lazily.
3650 * testsuite/ext/unicode/grapheme_view.cc: New test.
3651 * testsuite/ext/unicode/properties.cc: New test.
3652 * testsuite/ext/unicode/view.cc: New test.
3653
36542024-01-09 Andreas Schwab <schwab@linux-m68k.org>
3655
3656 * scripts/extract_symvers.in: Require final colon to only match
3657 .dsynsym in the header of the dynamic symtab.
3658
36592024-01-09 Jonathan Wakely <jwakely@redhat.com>
3660
3661 * include/bits/chrono_io.h (__formatter_chrono::_M_F): Simplify
3662 handling of string returned from std::format.
3663 (__formatter_chrono::_M_R_T): Likewise.
3664
6b1d6a2d
GA
36652024-01-08 Jonathan Wakely <jwakely@redhat.com>
3666
3667 * include/bits/unicode.h (__null_sentinel): Remove.
3668 * testsuite/17_intro/names.cc: Add __null_sentinel.
3669
36702024-01-08 Jonathan Wakely <jwakely@redhat.com>
3671
3672 * include/std/format (__format::_Runtime_format_string): Define
3673 new class template.
3674 (basic_format_string): Add non-consteval constructor for runtime
3675 format strings.
3676 (runtime_format): Define new function for C++26.
3677 * testsuite/std/format/runtime_format.cc: New test.
3678
36792024-01-08 Jonathan Wakely <jwakely@redhat.com>
3680
3681 * include/bits/chrono_io.h (__formatter_chrono): Always use
3682 lvalue arguments to make_format_args.
3683 * include/std/format (make_format_args): Change parameter pack
3684 from forwarding references to lvalue references. Remove use of
3685 remove_reference_t which is now unnecessary.
3686 (format_to, formatted_size): Remove incorrect forwarding of
3687 arguments.
3688 * include/std/ostream (print): Remove forwarding of arguments.
3689 * include/std/print (print): Likewise.
3690 * testsuite/20_util/duration/io.cc: Use lvalues as arguments to
3691 make_format_args.
3692 * testsuite/std/format/arguments/args.cc: Likewise.
3693 * testsuite/std/format/arguments/lwg3810.cc: Likewise.
3694 * testsuite/std/format/functions/format.cc: Likewise.
3695 * testsuite/std/format/functions/vformat_to.cc: Likewise.
3696 * testsuite/std/format/string.cc: Likewise.
3697 * testsuite/std/time/day/io.cc: Likewise.
3698 * testsuite/std/time/month/io.cc: Likewise.
3699 * testsuite/std/time/weekday/io.cc: Likewise.
3700 * testsuite/std/time/year/io.cc: Likewise.
3701 * testsuite/std/time/year_month_day/io.cc: Likewise.
3702 * testsuite/std/format/arguments/args_neg.cc: New test.
3703
37042024-01-08 Jonathan Wakely <jwakely@redhat.com>
3705
3706 * include/Makefile.am: Add new headers.
3707 * include/Makefile.in: Regenerate.
3708 * include/bits/unicode.h: New file.
3709 * include/bits/unicode-data.h: New file.
3710 * include/std/format: Include <bits/unicode.h>.
3711 (__literal_encoding_is_utf8): Move to <bits/unicode.h>.
3712 (_Spec::_M_fill): Change type to char32_t.
3713 (_Spec::_M_parse_fill_and_align): Read a Unicode scalar value
3714 instead of a single character.
3715 (__write_padded): Change __fill_char parameter to char32_t and
3716 encode it into the output.
3717 (__formatter_str::format): Use new __unicode::__field_width and
3718 __unicode::__truncate functions.
3719 * include/std/ostream: Adjust namespace qualification for
3720 __literal_encoding_is_utf8.
3721 * include/std/print: Likewise.
3722 * src/c++23/print.cc: Add [[unlikely]] attribute to error path.
3723 * testsuite/ext/unicode/view.cc: New test.
3724 * testsuite/std/format/functions/format.cc: Add missing examples
3725 from the standard demonstrating alignment with non-ASCII
3726 characters. Add examples checking correct handling of extended
3727 grapheme clusters.
3728
37292024-01-08 Jonathan Wakely <jwakely@redhat.com>
3730
3731 * include/bits/version.def (format_uchar): Define.
3732 * include/bits/version.h: Regenerate.
3733 * include/std/format (formatter<C, C>::format): Check for
3734 _Pres_c and call _M_format_character directly. Cast C to its
3735 unsigned equivalent for formatting as an integer.
3736 (formatter<char, wchar_t>::format): Likewise.
3737 (basic_format_arg(T&)): Store char arguments as unsigned char
3738 for formatting to a wide string.
3739 * testsuite/std/format/functions/format.cc: Adjust test. Check
3740 formatting of
3741
59e0c218
GA
37422024-01-07 Jonathan Wakely <jwakely@redhat.com>
3743
3744 PR libstdc++/112997
3745 * libsupc++/unwind-cxx.h (__cxa_call_terminate): Change first
3746 parameter to void*.
3747
37482024-01-07 Jonathan Wakely <jwakely@redhat.com>
3749
3750 * testsuite/20_util/variant/87619.cc: Remove dg-timeout-factor.
3751
37522024-01-07 Jonathan Wakely <jwakely@redhat.com>
3753
3754 * include/std/type_traits (is_trivially_destructible_v): Use
3755 built-in directly when concepts are supported.
3756 * testsuite/20_util/is_trivially_destructible/value_v.cc: New
3757 test.
3758
b368d799
GA
37592024-01-06 Gwenole Beauchesne <gb.devel@gmail.com>
3760
3761 * testsuite/tr1/8_c_compatibility/cinttypes/functions.cc: Use
3762 nonnull arguments to strtoimax() and wcstoimax() functions.
3763
f38103f5
GA
37642024-01-05 Jonathan Wakely <jwakely@redhat.com>
3765
3766 * src/c++17/fs_path.cc (path::_List::reserve): Limit maximum
3767 size and check for overflows in arithmetic.
3768 (path::operator/=(const path&)): Remove redundant exponential
3769 growth calculation.
3770
37712024-01-05 Martin Küttler <martin.kuettler@kernkonzept.com>
3772
3773 * src/c++17/fs_path.cc (path::_List::reserve): Avoid
3774 floating-point arithmetic.
3775
37762024-01-05 Jonathan Wakely <jwakely@redhat.com>
3777
3778 PR libstdc++/113241
3779 * include/std/type_traits (is_convertible_v): Guard use of
3780 built-in with preprocessor check.
3781
37822024-01-05 Jonathan Wakely <jwakely@redhat.com>
3783
3784 PR libstdc++/113200
3785 * include/bits/char_traits.h (__gnu_cxx::char_traits::move): Use
3786 __builtin_constant_p to check for unrelated pointers that cannot
3787 be compared during constant evaluation.
3788 * testsuite/21_strings/char_traits/requirements/113200.cc: New
3789 test.
3790
37912024-01-05 Cassio Neri <cassio.neri@gmail.com>
3792
3793 * include/std/chrono: Fix + and - for months and weekdays.
3794 * testsuite/std/time/month/1.cc: Add constexpr tests against overflow.
3795 * testsuite/std/time/month/2.cc: New test for extreme values.
3796 * testsuite/std/time/weekday/1.cc: Add constexpr tests against overflow.
3797 * testsuite/std/time/weekday/2.cc: New test for extreme values.
3798
37992024-01-05 Jonathan Wakely <jwakely@redhat.com>
3800
3801 PR libstdc++/113099
3802 * include/bits/locale_classes.tcc (__try_use_facet): Use
3803 if-constexpr for C++11 and up.
3804
81d1a6e9
GA
38052024-01-05 Ken Matsui <kmatsui@gcc.gnu.org>
3806
3807 * include/std/type_traits: Use _GLIBCXX_USE_BUILTIN_TRAIT.
3808
38092024-01-04 Arsen Arsenović <arsen@aarsen.me>
3810
3811 * include/std/generator (_Subyield_state::_M_jump_in): Fix typo
3812 reported by Will Hawkins <hawkinsw@obs.cr>.
3813
38142024-01-04 Arsen Arsenović <arsen@aarsen.me>
3815
3816 * include/std/generator (_Stateless_alloc): Rename typename _A
3817 to _All.
3818
eb84e8d3
GA
38192024-01-03 Patrick Palka <ppalka@redhat.com>
3820
3821 PR testsuite/113175
3822 * testsuite/std/ranges/iota/max_size_type.cc (test02): Reduce
3823 'limit' to 100 from 1000 and adjust 'log2_limit' accordingly.
3824 (test03): Likewise.
3825
b4df5e92 3826\f
8c22aed4 3827Copyright (C) 2024 Free Software Foundation, Inc.
b4df5e92
JW
3828
3829Copying and distribution of this file, with or without modification,
3830are permitted in any medium without royalty provided the copyright
3831notice and this notice are preserved.
This page took 1.806405 seconds and 6 git commands to generate.